From 1603536467b3729b111be34f5bade9218cbb3adb Mon Sep 17 00:00:00 2001
From: Benjamin Renard <benjamin.renard@akka.eu>
Date: Fri, 22 May 2015 14:45:30 +0200
Subject: [PATCH] First commit

---
 .gitignore                                                                          |     9 +++++++++
 .project                                                                            |    11 +++++++++++
 amda_plus/README                                                                    |    12 ++++++++++++
 amda_plus/amdalib/a2000.pro                                                         |    64 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/a2000omni.pro                                                     |    64 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/average.pro                                                       |   149 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/averagelap.pro                                                    |    88 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/averagemip.pro                                                    |    90 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/ba2000_0_init.pro                                                 |    41 +++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/ba2000_1_init.pro                                                 |    41 +++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/ba2000_2_init.pro                                                 |    41 +++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/ba2000_init.pro                                                   |   110 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/bcain_mso_0_init.pro                                              |    28 ++++++++++++++++++++++++++++
 amda_plus/amdalib/bcain_mso_1_init.pro                                              |    28 ++++++++++++++++++++++++++++
 amda_plus/amdalib/bcain_mso_2_init.pro                                              |    28 ++++++++++++++++++++++++++++
 amda_plus/amdalib/bcain_mso_init.pro                                                |    73 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/bcain_tot_init.pro                                                |    28 ++++++++++++++++++++++++++++
 amda_plus/amdalib/bmorsch_mso_0_init.pro                                            |    28 ++++++++++++++++++++++++++++
 amda_plus/amdalib/bmorsch_mso_1_init.pro                                            |    28 ++++++++++++++++++++++++++++
 amda_plus/amdalib/bmorsch_mso_2_init.pro                                            |    28 ++++++++++++++++++++++++++++
 amda_plus/amdalib/bmorsch_mso_init.pro                                              |    73 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/bmorsch_tot_init.pro                                              |    28 ++++++++++++++++++++++++++++
 amda_plus/amdalib/bt96_0_init.pro                                                   |    41 +++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/bt96_1_init.pro                                                   |    41 +++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/bt96_2_init.pro                                                   |    41 +++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/bt96_init.pro                                                     |   108 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/c1_hia_pad_init.pro                                               |    33 +++++++++++++++++++++++++++++++++
 amda_plus/amdalib/c1_whi_ne_.pro                                                    |    50 ++++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/c1_whi_ne_init.pro                                                |    38 ++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/c2_whi_ne_.pro                                                    |    50 ++++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/c2_whi_ne_init.pro                                                |    38 ++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/c3_hia_pad_init.pro                                               |    33 +++++++++++++++++++++++++++++++++
 amda_plus/amdalib/c3_whi_ne_.pro                                                    |    50 ++++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/c3_whi_ne_init.pro                                                |    38 ++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/c4_whi_ne_.pro                                                    |    50 ++++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/c4_whi_ne_init.pro                                                |    38 ++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/cain.pro                                                          |    26 ++++++++++++++++++++++++++
 amda_plus/amdalib/doubl2jd.pro                                                      |    22 ++++++++++++++++++++++
 amda_plus/amdalib/dst_init.pro                                                      |    23 +++++++++++++++++++++++
 amda_plus/amdalib/dstplot.pro                                                       |    33 +++++++++++++++++++++++++++++++++
 amda_plus/amdalib/e_mgs_omni_init.pro                                               |    64 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/earthorbaxis.pro                                                  |   121 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/elscntplot.pro                                                    |   133 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/elsspecplot.pro                                                   |   160 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/get_ica_spec.pro                                                  |    46 ++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/get_ima_o_spec.pro                                                |    56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/get_imam_h_spec.pro                                               |    78 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/get_mode_peir.pro                                                 |    48 ++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/get_multi.pro                                                     |    86 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/get_scatter.pro                                                   |   108 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/get_th_e_sp.pro                                                   |    42 ++++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/get_vexmex_dens.pro                                               |    58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/get_vexmex_qual.pro                                               |    48 ++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/get_vexmex_scan.pro                                               |    46 ++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/get_vexmex_temp.pro                                               |    49 +++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/get_vexmex_vel.pro                                                |    50 ++++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/getcdfvar.pro                                                     |    63 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/getcefvar.pro                                                     |    48 ++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/getmex_n_sw.pro                                                   |    46 ++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/getmex_v_sw.pro                                                   |    46 ++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/getncvar.pro                                                      |    53 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/getros_lap_sweep.pro                                              |    60 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/getros_mip_surv.pro                                               |    55 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/getros_mip_survphase.pro                                          |    55 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/gettxtvar.pro                                                     |    40 ++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/ica_spec_com.pro                                                  |    57 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/icacntplot.pro                                                    |   104 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/icaspecplot.pro                                                   |   186 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/ima_h_spec_com.pro                                                |    72 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/ima_o_spec_com.pro                                                |    70 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/imacntplot.pro                                                    |    93 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/imaspecplot.pro                                                   |   172 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/legend_multi.pro                                                  |    11 +++++++++++
 amda_plus/amdalib/lep_g_0_init.pro                                                  |    24 ++++++++++++++++++++++++
 amda_plus/amdalib/lep_g_1_3_init.pro                                                |    42 ++++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/lep_g_1_init.pro                                                  |    17 +++++++++++++++++
 amda_plus/amdalib/lep_g_2_init.pro                                                  |    17 +++++++++++++++++
 amda_plus/amdalib/lep_g_3_init.pro                                                  |    17 +++++++++++++++++
 amda_plus/amdalib/lep_g_4_init.pro                                                  |    15 +++++++++++++++
 amda_plus/amdalib/lep_g_5_6_init.pro                                                |    29 +++++++++++++++++++++++++++++
 amda_plus/amdalib/lep_g_5_init.pro                                                  |    15 +++++++++++++++
 amda_plus/amdalib/lep_g_6_init.pro                                                  |    15 +++++++++++++++
 amda_plus/amdalib/median_.pro                                                       |    18 ++++++++++++++++++
 amda_plus/amdalib/mercorbaxis.pro                                                   |   110 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/mex_els_spec_init.pro                                             |    61 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/mex_h_dens_.pro                                                   |    54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/mex_h_dens_init.pro                                               |    24 ++++++++++++++++++++++++
 amda_plus/amdalib/mex_h_dens_restr_.pro                                             |    52 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/mex_h_dens_restr_init.pro                                         |    24 ++++++++++++++++++++++++
 amda_plus/amdalib/mex_h_qual_.pro                                                   |    49 +++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/mex_h_qual_init.pro                                               |    26 ++++++++++++++++++++++++++
 amda_plus/amdalib/mex_h_qual_restr_.pro                                             |    47 +++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/mex_h_qual_restr_init.pro                                         |    26 ++++++++++++++++++++++++++
 amda_plus/amdalib/mex_h_spec_.pro                                                   |    63 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/mex_h_spec_init.pro                                               |    71 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/mex_h_spec_restr_.pro                                             |    63 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/mex_h_spec_restr_init.pro                                         |    74 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/mex_h_temp_init.pro                                               |    33 +++++++++++++++++++++++++++++++++
 amda_plus/amdalib/mex_h_temp_restr_.pro                                             |    48 ++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/mex_h_temp_restr_init.pro                                         |    31 +++++++++++++++++++++++++++++++
 amda_plus/amdalib/mex_h_vel_.pro                                                    |    48 ++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/mex_h_vel_0_init.pro                                              |    18 ++++++++++++++++++
 amda_plus/amdalib/mex_h_vel_1_init.pro                                              |    18 ++++++++++++++++++
 amda_plus/amdalib/mex_h_vel_2_init.pro                                              |    17 +++++++++++++++++
 amda_plus/amdalib/mex_h_vel_init.pro                                                |    47 +++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/mex_h_vel_restr_.pro                                              |    46 ++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/mex_h_vel_restr_0_init.pro                                        |    18 ++++++++++++++++++
 amda_plus/amdalib/mex_h_vel_restr_1_init.pro                                        |    18 ++++++++++++++++++
 amda_plus/amdalib/mex_h_vel_restr_2_init.pro                                        |    17 +++++++++++++++++
 amda_plus/amdalib/mex_h_vel_restr_init.pro                                          |    47 +++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/mex_n_sw_com.pro                                                  |    34 ++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/mex_n_sw_init.pro                                                 |    31 +++++++++++++++++++++++++++++++
 amda_plus/amdalib/mex_o_dens_.pro                                                   |    55 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/mex_o_dens_init.pro                                               |    23 +++++++++++++++++++++++
 amda_plus/amdalib/mex_o_dens_restr_.pro                                             |    54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/mex_o_dens_restr_init.pro                                         |    23 +++++++++++++++++++++++
 amda_plus/amdalib/mex_o_qual_.pro                                                   |    48 ++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/mex_o_qual_init.pro                                               |    30 ++++++++++++++++++++++++++++++
 amda_plus/amdalib/mex_o_qual_restr_.pro                                             |    46 ++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/mex_o_qual_restr_init.pro                                         |    30 ++++++++++++++++++++++++++++++
 amda_plus/amdalib/mex_o_spec_.pro                                                   |    49 +++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/mex_o_spec_init.pro                                               |    74 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/mex_o_spec_restr_.pro                                             |    49 +++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/mex_o_spec_restr_init.pro                                         |    74 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/mex_o_temp_.pro                                                   |    50 ++++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/mex_o_temp_init.pro                                               |    34 ++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/mex_o_temp_restr_.pro                                             |    48 ++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/mex_o_temp_restr_init.pro                                         |    32 ++++++++++++++++++++++++++++++++
 amda_plus/amdalib/mex_o_vel_.pro                                                    |    48 ++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/mex_o_vel_0_init.pro                                              |    17 +++++++++++++++++
 amda_plus/amdalib/mex_o_vel_1_init.pro                                              |    17 +++++++++++++++++
 amda_plus/amdalib/mex_o_vel_2_init.pro                                              |    17 +++++++++++++++++
 amda_plus/amdalib/mex_o_vel_init.pro                                                |    47 +++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/mex_o_vel_restr_.pro                                              |    46 ++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/mex_o_vel_restr_0_init.pro                                        |    17 +++++++++++++++++
 amda_plus/amdalib/mex_o_vel_restr_1_init.pro                                        |    17 +++++++++++++++++
 amda_plus/amdalib/mex_o_vel_restr_init.pro                                          |    47 +++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/mex_scan_.pro                                                     |    48 ++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/mex_scan_init.pro                                                 |    29 +++++++++++++++++++++++++++++
 amda_plus/amdalib/mex_scan_restr_.pro                                               |    46 ++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/mex_scan_restr_init.pro                                           |    29 +++++++++++++++++++++++++++++
 amda_plus/amdalib/mex_v_sw_com.pro                                                  |    34 ++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/mex_v_sw_init.pro                                                 |    32 ++++++++++++++++++++++++++++++++
 amda_plus/amdalib/mode_peir_com.pro                                                 |    46 ++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/morsch.pro                                                        |    25 +++++++++++++++++++++++++
 amda_plus/amdalib/multi_com.pro                                                     |    99 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/multi_init.pro                                                    |    42 ++++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/orb_plot.pro                                                      |   122 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/plot_multi.pro                                                    |    45 +++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/plot_scatter.pro                                                  |    43 +++++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/plot_whi_ne.pro                                                   |   106 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/plot_whi_ne_new.pro                                               |   107 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/plotimasw.pro                                                     |   106 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/plotmodereduced.pro                                               |    77 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/plotscal_new.pro                                                  |   117 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/plotspecgen.pro                                                   |   157 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/plotspeclap.pro                                                   |   172 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/plotspecmip.pro                                                   |   147 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/plotspecthemisel.pro                                              |   120 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/plotten_comp_new.pro                                              |    61 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/plotvec.pro                                                       |    99 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/plotvec_.pro                                                      |    69 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/plotvec_comp_.pro                                                 |    98 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/plotvec_comp_new.pro                                              |   116 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/plotveccain.pro                                                   |    93 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/plotveccompcain.pro                                               |    93 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/plotwsdspec.pro                                                   |   135 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/print_com.pro                                                     |   140 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/ros_ica_en_init.pro                                               |    72 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/ros_lap1_isweep_init.pro                                          |    73 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/ros_lap2_isweep_init.pro                                          |    73 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/ros_lap_sweep_com.pro                                             |    53 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/ros_mip_surv_com.pro                                              |    63 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/ros_mip_surv_init.pro                                             |    75 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/ros_mip_survphase_com.pro                                         |    63 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/ros_mip_survphase_init.pro                                        |    75 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/scatter_com.pro                                                   |    62 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/scatter_init.pro                                                  |    25 +++++++++++++++++++++++++
 amda_plus/amdalib/search_com.pro                                                    |    65 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/shiftn_.pro                                                       |    69 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/shiftt_.pro                                                       |    69 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/skr_e_init.pro                                                    |    35 +++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/skr_lh_e_0_init.pro                                               |    15 +++++++++++++++
 amda_plus/amdalib/skr_lh_e_1_init.pro                                               |    15 +++++++++++++++
 amda_plus/amdalib/skr_lh_init.pro                                                   |    51 +++++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/skr_rh_e_0_init.pro                                               |    15 +++++++++++++++
 amda_plus/amdalib/skr_rh_e_1_init.pro                                               |    15 +++++++++++++++
 amda_plus/amdalib/skr_rh_init.pro                                                   |    51 +++++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/skr_v_init.pro                                                    |    51 +++++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/spec3d_comp_plot.pro                                              |    65 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/spec_comp_plot.pro                                                |    78 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/src/mars/FSU_mars90                                               |  4189 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/src/mars/GetTime.c                                                |    39 +++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/src/mars/Makefile                                                 |    86 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/src/mars/Makefile.apus                                            |    88 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/src/mars/Makefile.manunja                                         |    88 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/src/mars/V_ext_day.txt                                            |    36 ++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/src/mars/V_ext_night.txt                                          |   121 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/src/mars/V_int.txt                                                | 12321 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/src/mars/ac2mso.pro                                               |    17 +++++++++++++++++
 amda_plus/amdalib/src/mars/g2c.h                                                    |   236 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/src/mars/idl_cain.c                                               |    80 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/src/mars/idl_mexcom.c                                             |    66 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/src/mars/idl_morsch.c                                             |    53 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/src/mars/mexcom.h                                                 |    25 +++++++++++++++++++++++++
 amda_plus/amdalib/src/mars/mflpgms4.c                                               |   506 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/src/mars/morsch.c                                                 |   390 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/src/mars/mso2ac.pro                                               |    24 ++++++++++++++++++++++++
 amda_plus/amdalib/src/mars/mso2pc.c                                                 |    72 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/sta_swea_pad_init.pro                                             |    42 ++++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/stb_swea_pad_init.pro                                             |    42 ++++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/sw_monitor_.pro                                                   |    48 ++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/sw_monitor_a99_.pro                                               |    47 +++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/sw_monitor_a99_omni_.pro                                          |    22 ++++++++++++++++++++++
 amda_plus/amdalib/sw_monitor_init.pro                                               |    31 +++++++++++++++++++++++++++++++
 amda_plus/amdalib/sw_monitor_omni_.pro                                              |    20 ++++++++++++++++++++
 amda_plus/amdalib/swea_psd_plot.pro                                                 |    89 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/t96.pro                                                           |    43 +++++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/t96omni.pro                                                       |    43 +++++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/th_e_sp_com.pro                                                   |    62 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/vex_els_spec_init.pro                                             |    62 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/vex_h_dens_init.pro                                               |    22 ++++++++++++++++++++++
 amda_plus/amdalib/vex_h_qual_init.pro                                               |    26 ++++++++++++++++++++++++++
 amda_plus/amdalib/vex_h_spec_init.pro                                               |    74 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/vex_h_temp_init.pro                                               |    36 ++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/vex_h_vel_0_init.pro                                              |    17 +++++++++++++++++
 amda_plus/amdalib/vex_h_vel_1_init.pro                                              |    17 +++++++++++++++++
 amda_plus/amdalib/vex_h_vel_2_init.pro                                              |    17 +++++++++++++++++
 amda_plus/amdalib/vex_h_vel_init.pro                                                |    47 +++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/vex_o_dens_init.pro                                               |    23 +++++++++++++++++++++++
 amda_plus/amdalib/vex_o_qual_init.pro                                               |    30 ++++++++++++++++++++++++++++++
 amda_plus/amdalib/vex_o_spec_init.pro                                               |    73 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/vex_o_temp_init.pro                                               |    35 +++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/vex_o_vel_0_init.pro                                              |    17 +++++++++++++++++
 amda_plus/amdalib/vex_o_vel_1_init.pro                                              |    17 +++++++++++++++++
 amda_plus/amdalib/vex_o_vel_2_init.pro                                              |    17 +++++++++++++++++
 amda_plus/amdalib/vex_o_vel_init.pro                                                |    46 ++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/amdalib/vex_scan_init.pro                                                 |    30 ++++++++++++++++++++++++++++++
 amda_plus/ddlib/DD_Graph.pro                                                        |   738 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/predefined/getmapskp_caps_espc_electron_counts.pro                        |    34 ++++++++++++++++++++++++++++++++++
 amda_plus/predefined/getmapskp_caps_ispc_ion_counts.pro                             |    33 +++++++++++++++++++++++++++++++++
 amda_plus/predefined/getmapskp_rpws_key_electric_spectral_densities.pro             |    35 +++++++++++++++++++++++++++++++++++
 amda_plus/predefined/getmapskp_rpws_key_magnetic_spectral_densities.pro             |    35 +++++++++++++++++++++++++++++++++++
 amda_plus/predefined/mapskp_caps_espc_electron_counts_com.pro                       |    54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/predefined/mapskp_caps_ispc_ion_counts_com.pro                            |    54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/predefined/mapskp_rpws_key_electric_spectral_densities_com.pro            |    57 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/predefined/mapskp_rpws_key_electric_spectral_densities_init.pro           |    40 ++++++++++++++++++++++++++++++++++++++++
 amda_plus/predefined/mapskp_rpws_key_magnetic_spectral_densities_com.pro            |    55 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/predefined/mapskp_rpws_key_magnetic_spectral_densities_init.pro           |    40 ++++++++++++++++++++++++++++++++++++++++
 amda_plus/pro/ba2000_.pro                                                           |    46 ++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/pro/bcain_mso_.pro                                                        |    46 ++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/pro/bcain_tot_.pro                                                        |    47 +++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/pro/bmorsch_mso_.pro                                                      |    46 ++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/pro/bmorsch_tot_.pro                                                      |    47 +++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/pro/bt96_.pro                                                             |    44 ++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/pro/c1_hia_pad_.pro                                                       |    42 ++++++++++++++++++++++++++++++++++++++++++
 amda_plus/pro/c3_hia_pad_.pro                                                       |    42 ++++++++++++++++++++++++++++++++++++++++++
 amda_plus/pro/e_mgs_omni_.pro                                                       |    59 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/pro/hia_padflux_c1_.pro                                                   |    42 ++++++++++++++++++++++++++++++++++++++++++
 amda_plus/pro/hia_padflux_c3_.pro                                                   |    42 ++++++++++++++++++++++++++++++++++++++++++
 amda_plus/pro/mex_els_spec_.pro                                                     |   136 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/pro/mex_h_spec_.pro                                                       |    64 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/pro/sta_swea_pad_.pro                                                     |    71 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/pro/stb_swea_pad_.pro                                                     |    71 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/pro/vex_els_spec_.pro                                                     |   135 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/pro/vex_h_spec_.pro                                                       |    50 ++++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/pro/vex_o_spec_.pro                                                       |    53 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/templates/getlocalparam.pro                                               |    68 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/templates/getnewparam.pro                                                 |    45 +++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/templates/getws.pro                                                       |   118 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/templates/getwsd.pro                                                      |   114 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/templates/localparam_.pro                                                 |   132 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/templates/localparam_com.pro                                              |    78 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/templates/localparam_init.pro                                             |   163 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/templates/newparam_.pro                                                   |    91 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/templates/newparam_XXX_init.pro                                           |    28 ++++++++++++++++++++++++++++
 amda_plus/templates/newparam_com.pro                                                |    58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/templates/newparam_comp_init.pro                                          |    28 ++++++++++++++++++++++++++++
 amda_plus/templates/newparam_init.pro                                               |    94 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/templates/thX_YYYY_mode_Z_init.pro                                        |    18 ++++++++++++++++++
 amda_plus/templates/thX_YYYY_mode_init.pro                                          |    40 ++++++++++++++++++++++++++++++++++++++++
 amda_plus/templates/thX_YYYY_n_.pro                                                 |    75 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/templates/thX_YYYY_n_init.pro                                             |    38 ++++++++++++++++++++++++++++++++++++++
 amda_plus/templates/thX_YYYY_pot_init.pro                                           |    38 ++++++++++++++++++++++++++++++++++++++
 amda_plus/templates/thX_YYYY_sp_init.pro                                            |    45 +++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/templates/thX_YYYY_t_.pro                                                 |    76 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/templates/thX_YYYY_t_Z_init.pro                                           |    18 ++++++++++++++++++
 amda_plus/templates/thX_YYYY_t_init.pro                                             |    46 ++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/templates/thX_YYYY_v_.pro                                                 |    76 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/templates/thX_YYYY_v_Z_init.pro                                           |    18 ++++++++++++++++++
 amda_plus/templates/thX_YYYY_v_init.pro                                             |    54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/templates/thX_bh_Z_init.pro                                               |    18 ++++++++++++++++++
 amda_plus/templates/thX_bh_init.pro                                                 |    54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/templates/thX_el_sp_init.pro                                              |    46 ++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/templates/ws_.pro                                                         |   156 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/templates/ws_com.pro                                                      |    71 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/templates/ws_init.pro                                                     |    35 +++++++++++++++++++++++++++++++++++
 amda_plus/templates/wsd_.pro                                                        |   114 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 amda_plus/templates/wsd_com.pro                                                     |    39 +++++++++++++++++++++++++++++++++++++++
 amda_plus/templates/wsd_init.pro                                                    |    78 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 desktop.php                                                                         |   222 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 favicon.ico                                                                         | Bin 0 -> 1131 bytes
 generic_data/Feedback/Feedback.xml                                                  |    12 ++++++++++++
 generic_data/Filters/filters_info.xml                                               |   223 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 generic_data/Filters/filters_selectLists.xml                                        |    70 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 generic_data/Functions/constants.xml                                                |    31 +++++++++++++++++++++++++++++++
 generic_data/Functions/functions.xml                                                |   143 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 generic_data/Hst/hstVOtable-jupiter.xml                                             |  9652 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 generic_data/Hst/hstVOtable-saturn.xml                                              |  4828 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 generic_data/Hst/hstVOtable-uranus.xml                                              |  1372 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 generic_data/Param/Args/ba2000.xml                                                  |    13 +++++++++++++
 generic_data/Param/Args/bcain_mso.xml                                               |    11 +++++++++++
 generic_data/Param/Args/bcain_tot.xml                                               |    11 +++++++++++
 generic_data/Param/Args/bmorsch_mso.xml                                             |    11 +++++++++++
 generic_data/Param/Args/bmorsch_tot.xml                                             |    11 +++++++++++
 generic_data/Param/Args/bt96.xml                                                    |    13 +++++++++++++
 generic_data/Param/Args/c1_hia_pad.xml                                              |    22 ++++++++++++++++++++++
 generic_data/Param/Args/c3_hia_pad.xml                                              |    22 ++++++++++++++++++++++
 generic_data/Param/Args/e_mgs_omni.xml                                              |    11 +++++++++++
 generic_data/Param/Args/impex___LESIA_MAG_Jupiter_Btot.xml                          |    30 ++++++++++++++++++++++++++++++
 generic_data/Param/Args/impex___LESIA_MAG_Jupiter_Bx_By_Bz.xml                      |    30 ++++++++++++++++++++++++++++++
 generic_data/Param/Args/impex___LESIA_MAG_Jupiter_Bx_By_Bz_Bx.xml                   |    30 ++++++++++++++++++++++++++++++
 generic_data/Param/Args/impex___LESIA_MAG_Jupiter_Bx_By_Bz_By.xml                   |    30 ++++++++++++++++++++++++++++++
 generic_data/Param/Args/impex___LESIA_MAG_Jupiter_Bx_By_Bz_Bz.xml                   |    30 ++++++++++++++++++++++++++++++
 generic_data/Param/Args/lep_g.xml                                                   |    13 +++++++++++++
 generic_data/Param/Args/mex_els_spec.xml                                            |     7 +++++++
 generic_data/Param/Args/mex_h_spec.xml                                              |    10 ++++++++++
 generic_data/Param/Args/mex_n_sw.xml                                                |    12 ++++++++++++
 generic_data/Param/Args/mex_o_spec.xml                                              |    10 ++++++++++
 generic_data/Param/Args/mex_v_sw.xml                                                |    12 ++++++++++++
 generic_data/Param/Args/mgs_e_flux.xml                                              |    14 ++++++++++++++
 generic_data/Param/Args/paramArguments.xml                                          |    13 +++++++++++++
 generic_data/Param/Args/paramPlotSettings.xml                                       |    21 +++++++++++++++++++++
 generic_data/Param/Args/ros_ica_en.xml                                              |    12 ++++++++++++
 generic_data/Param/Args/sta_hee.xml                                                 |     6 ++++++
 generic_data/Param/Args/sta_swea_pad.xml                                            |    17 +++++++++++++++++
 generic_data/Param/Args/stb_hee.xml                                                 |     6 ++++++
 generic_data/Param/Args/stb_swea_pad.xml                                            |    11 +++++++++++
 generic_data/Param/Args/tha_psef_sp.xml                                             |     2 ++
 generic_data/Param/Args/tha_psif_sp.xml                                             |     2 ++
 generic_data/Param/Args/thb_psef_sp.xml                                             |     2 ++
 generic_data/Param/Args/thb_psif_sp.xml                                             |     2 ++
 generic_data/Param/Args/thc_psef_sp.xml                                             |     2 ++
 generic_data/Param/Args/thc_psif_sp.xml                                             |     2 ++
 generic_data/Param/Args/thd_psef_sp.xml                                             |     2 ++
 generic_data/Param/Args/thd_psif_sp.xml                                             |     2 ++
 generic_data/Param/Args/the_psef_sp.xml                                             |     2 ++
 generic_data/Param/Args/the_psif_sp.xml                                             |     2 ++
 generic_data/Param/Args/vex_els_spec.xml                                            |     7 +++++++
 generic_data/Param/Args/vex_h_spec.xml                                              |    10 ++++++++++
 generic_data/Param/Args/vex_o_spec.xml                                              |    10 ++++++++++
 generic_data/Param/Args/xyz_p67_hee.xml                                             |     6 ++++++
 generic_data/Plot/DD_Request.res                                                    |     4 ++++
 generic_data/SimuTemplate/templateGUMICS.xml                                        |    34 ++++++++++++++++++++++++++++++++++
 generic_data/SpecialSettings/Groups.xml                                             |     4 ++++
 generic_data/SpecialSettings/Rosetta/REQ/req_0                                      |     1 +
 generic_data/SpecialSettings/Rosetta/REQ/req_1                                      |     2 ++
 generic_data/SpecialSettings/Rosetta/REQ/req_2                                      |     1 +
 generic_data/SpecialSettings/Rosetta/WS/Filters.xml                                 |     5 +++++
 generic_data/SpecialSettings/Rosetta/WS/Request.xml                                 |    11 +++++++++++
 generic_data/SpecialSettings/Rosetta/WS/State.xml                                   |     6 ++++++
 generic_data/jobs.json                                                              |    13 +++++++++++++
 generic_data/operations.json                                                        |     4 ++++
 generic_data/rank.json                                                              |     4 ++++
 generic_data/resources.json                                                         |    18 ++++++++++++++++++
 generic_data/wsdl.location                                                          |     2 ++
 help.html                                                                           |    14 ++++++++++++++
 help/ABC                                                                            |    28 ++++++++++++++++++++++++++++
 help/Gumics                                                                         |    30 ++++++++++++++++++++++++++++++
 help/MexInv                                                                         |    20 ++++++++++++++++++++
 help/RemoteDataHelp                                                                 |     7 +++++++
 help/RosettaHelp                                                                    |    12 ++++++++++++
 help/SKR.html                                                                       |    34 ++++++++++++++++++++++++++++++++++
 help/STEREO.html                                                                    |    43 +++++++++++++++++++++++++++++++++++++++++++
 help/SampHelp                                                                       |    30 ++++++++++++++++++++++++++++++
 help/SampMain                                                                       |    10 ++++++++++
 help/VEXGRAZ.html                                                                   |    35 +++++++++++++++++++++++++++++++++++
 help/VexInv                                                                         |    19 +++++++++++++++++++
 help/about                                                                          |    21 +++++++++++++++++++++
 help/about.html                                                                     |   121 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 help/advancedFeatures                                                               |    25 +++++++++++++++++++++++++
 help/aliases                                                                        |    22 ++++++++++++++++++++++
 help/autoLayout                                                                     |     3 +++
 help/autoScale                                                                      |     4 ++++
 help/content.json                                                                   |   159 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 help/dataMiningHOWTO                                                                |     5 +++++
 help/dataminingHelp                                                                 |    60 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 help/downloadDataHelp                                                               |    34 ++++++++++++++++++++++++++++++++++
 help/downloadHOWTO                                                                  |     7 +++++++
 help/downloadHelp                                                                   |    37 +++++++++++++++++++++++++++++++++++++
 help/downloadTTHelp                                                                 |     8 ++++++++
 help/fileMask                                                                       |    25 +++++++++++++++++++++++++
 help/filterHOWTO                                                                    |     5 +++++
 help/filters                                                                        |    21 +++++++++++++++++++++
 help/functionsHelp                                                                  |     4 ++++
 help/hubbleImages                                                                   |     4 ++++
 help/images/RemoteData.png                                                          | Bin 0 -> 59489 bytes
 help/images/SampAMDA.png                                                            | Bin 0 -> 24460 bytes
 help/images/SampDisconnect.png                                                      | Bin 0 -> 7322 bytes
 help/images/SampNo.png                                                              | Bin 0 -> 27939 bytes
 help/images/SampSecure.png                                                          | Bin 0 -> 61286 bytes
 help/images/SampSend.png                                                            | Bin 0 -> 16067 bytes
 help/images/SampTaskBar.png                                                         | Bin 0 -> 3123 bytes
 help/images/abc_1.png                                                               | Bin 0 -> 24797 bytes
 help/images/abc_2.png                                                               | Bin 0 -> 11059 bytes
 help/images/alias1.png                                                              | Bin 0 -> 35154 bytes
 help/images/alias2.png                                                              | Bin 0 -> 22246 bytes
 help/images/cancel.png                                                              | Bin 0 -> 842 bytes
 help/images/cursor_plus.png                                                         | Bin 0 -> 242 bytes
 help/images/datamining.png                                                          | Bin 0 -> 67911 bytes
 help/images/derived.png                                                             | Bin 0 -> 10815 bytes
 help/images/derived1.png                                                            | Bin 0 -> 25269 bytes
 help/images/derived2.png                                                            | Bin 0 -> 10675 bytes
 help/images/derived3.png                                                            | Bin 0 -> 15964 bytes
 help/images/download.png                                                            | Bin 0 -> 19270 bytes
 help/images/downloadTT.png                                                          | Bin 0 -> 36691 bytes
 help/images/download_button.png                                                     | Bin 0 -> 976 bytes
 help/images/edit.png                                                                | Bin 0 -> 590 bytes
 help/images/filtre.png                                                              | Bin 0 -> 31925 bytes
 help/images/interop.png                                                             | Bin 0 -> 1234 bytes
 help/images/job.png                                                                 | Bin 0 -> 9311 bytes
 help/images/jobs.png                                                                | Bin 0 -> 65263 bytes
 help/images/jobs_1.png                                                              | Bin 0 -> 19789 bytes
 help/images/jobs_2.png                                                              | Bin 0 -> 26321 bytes
 help/images/mining1.png                                                             | Bin 0 -> 26478 bytes
 help/images/mining2.png                                                             | Bin 0 -> 5131 bytes
 help/images/mining3.png                                                             | Bin 0 -> 3052 bytes
 help/images/mining4.png                                                             | Bin 0 -> 23452 bytes
 help/images/mining6.png                                                             | Bin 0 -> 13967 bytes
 help/images/mining8.png                                                             | Bin 0 -> 10033 bytes
 help/images/mining9.png                                                             | Bin 0 -> 14811 bytes
 help/images/mydata.png                                                              | Bin 0 -> 67582 bytes
 help/images/operationTab.png                                                        | Bin 0 -> 20234 bytes
 help/images/operations.png                                                          | Bin 0 -> 24429 bytes
 help/images/optionDownloadTT.png                                                    | Bin 0 -> 6207 bytes
 help/images/parameter.png                                                           | Bin 0 -> 85640 bytes
 help/images/params.png                                                              | Bin 0 -> 10351 bytes
 help/images/paramtree.png                                                           | Bin 0 -> 19407 bytes
 help/images/picto_amda.png                                                          | Bin 0 -> 6203 bytes
 help/images/plot_1.png                                                              | Bin 0 -> 26175 bytes
 help/images/plot_10.png                                                             | Bin 0 -> 14893 bytes
 help/images/plot_11.png                                                             | Bin 0 -> 27624 bytes
 help/images/plot_12.png                                                             | Bin 0 -> 22572 bytes
 help/images/plot_13.png                                                             | Bin 0 -> 5771 bytes
 help/images/plot_14.png                                                             | Bin 0 -> 27212 bytes
 help/images/plot_15.png                                                             | Bin 0 -> 9279 bytes
 help/images/plot_16.png                                                             | Bin 0 -> 51418 bytes
 help/images/plot_17.png                                                             | Bin 0 -> 14543 bytes
 help/images/plot_18.png                                                             | Bin 0 -> 60019 bytes
 help/images/plot_2.png                                                              | Bin 0 -> 14620 bytes
 help/images/plot_3.png                                                              | Bin 0 -> 11495 bytes
 help/images/plot_4.png                                                              | Bin 0 -> 24361 bytes
 help/images/plot_5.png                                                              | Bin 0 -> 8711 bytes
 help/images/plot_6.png                                                              | Bin 0 -> 15779 bytes
 help/images/plot_7.png                                                              | Bin 0 -> 5925 bytes
 help/images/plot_8.png                                                              | Bin 0 -> 44984 bytes
 help/images/plot_9.png                                                              | Bin 0 -> 14598 bytes
 help/images/plot_type_1.png                                                         | Bin 0 -> 6820 bytes
 help/images/plot_type_3.png                                                         | Bin 0 -> 4757 bytes
 help/images/remote1.png                                                             | Bin 0 -> 23379 bytes
 help/images/remote2.png                                                             | Bin 0 -> 2168 bytes
 help/images/request.png                                                             | Bin 0 -> 1498 bytes
 help/images/resources.png                                                           | Bin 0 -> 25198 bytes
 help/images/resourcesTree.png                                                       | Bin 0 -> 12082 bytes
 help/images/resourcestop.png                                                        | Bin 0 -> 22247 bytes
 help/images/result.png                                                              | Bin 0 -> 9296 bytes
 help/images/rosettaFilter.png                                                       | Bin 0 -> 12733 bytes
 help/images/rosettaReq.png                                                          | Bin 0 -> 11388 bytes
 help/images/save.png                                                                | Bin 0 -> 941 bytes
 help/images/timeTT.png                                                              | Bin 0 -> 23663 bytes
 help/images/tools.png                                                               | Bin 0 -> 10171 bytes
 help/images/ttOperations.png                                                        | Bin 0 -> 40187 bytes
 help/images/ttOpers.png                                                             | Bin 0 -> 37770 bytes
 help/images/tt_1.png                                                                | Bin 0 -> 17649 bytes
 help/images/tt_filter.png                                                           | Bin 0 -> 43091 bytes
 help/images/tt_operations.png                                                       | Bin 0 -> 8562 bytes
 help/images/tt_tree.png                                                             | Bin 0 -> 14369 bytes
 help/images/ttcols.png                                                              | Bin 0 -> 22045 bytes
 help/images/ttdown.png                                                              | Bin 0 -> 17008 bytes
 help/images/ttfilt.png                                                              | Bin 0 -> 40784 bytes
 help/images/upload.png                                                              | Bin 0 -> 48935 bytes
 help/images/uploadTT.png                                                            | Bin 0 -> 78773 bytes
 help/images/uploadTT_2.png                                                          | Bin 0 -> 6937 bytes
 help/images/uploadfile_1.png                                                        | Bin 0 -> 60955 bytes
 help/images/uploadfile_2.png                                                        | Bin 0 -> 14674 bytes
 help/images/uploadfile_3.png                                                        | Bin 0 -> 34031 bytes
 help/images/uploadtt_1.png                                                          | Bin 0 -> 17563 bytes
 help/images/uploadurl.png                                                           | Bin 0 -> 4029 bytes
 help/interSession                                                                   |    35 +++++++++++++++++++++++++++++++++++
 help/jobsHelp                                                                       |    39 +++++++++++++++++++++++++++++++++++++++
 help/licenceAction.do.html                                                          |   128 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 help/multiPlot                                                                      |    29 +++++++++++++++++++++++++++++
 help/myDataHOWTO                                                                    |     6 ++++++
 help/myParameterHOWTO                                                               |     5 +++++
 help/mydataparameter                                                                |     3 +++
 help/ncTimeFormat                                                                   |    13 +++++++++++++
 help/operationsHelp                                                                 |    11 +++++++++++
 help/panelSettings                                                                  |    49 +++++++++++++++++++++++++++++++++++++++++++++++++
 help/paramSettings                                                                  |    35 +++++++++++++++++++++++++++++++++++
 help/parameterHelp                                                                  |    36 ++++++++++++++++++++++++++++++++++++
 help/parameters/A2000_help                                                          |    22 ++++++++++++++++++++++
 help/parameters/AE                                                                  |    21 +++++++++++++++++++++
 help/parameters/BaiTemp                                                             |    25 +++++++++++++++++++++++++
 help/parameters/Cain_help                                                           |    23 +++++++++++++++++++++++
 help/parameters/CassiniCAPS                                                         |   117 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 help/parameters/CassiniEphem                                                        |    30 ++++++++++++++++++++++++++++++
 help/parameters/CassiniLEMMS                                                        |   603 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 help/parameters/CassiniLp                                                           |    30 ++++++++++++++++++++++++++++++
 help/parameters/CassiniMag                                                          |    46 ++++++++++++++++++++++++++++++++++++++++++++++
 help/parameters/CassiniQTN                                                          |    23 +++++++++++++++++++++++
 help/parameters/CassiniRPWS                                                         |    17 +++++++++++++++++
 help/parameters/CassiniRPWSNeproxy                                                  |    18 ++++++++++++++++++
 help/parameters/CassiniRPWSTitan                                                    |    17 +++++++++++++++++
 help/parameters/CassiniRPWSUI                                                       |    15 +++++++++++++++
 help/parameters/CassiniSKRPhase                                                     |    21 +++++++++++++++++++++
 help/parameters/CassiniSLS4Long                                                     |    10 ++++++++++
 help/parameters/CassiniSkr                                                          |    38 ++++++++++++++++++++++++++++++++++++++
 help/parameters/DST                                                                 |    15 +++++++++++++++
 help/parameters/EFWgse                                                              |    12 ++++++++++++
 help/parameters/EFWisr2                                                             |    21 +++++++++++++++++++++
 help/parameters/GTLMgfEdA                                                           |    19 +++++++++++++++++++
 help/parameters/GTLMgfEdB                                                           |    19 +++++++++++++++++++
 help/parameters/GiottoEphemeris                                                     |    58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 help/parameters/GiottoIms                                                           |    28 ++++++++++++++++++++++++++++
 help/parameters/GiottoJpa                                                           |    30 ++++++++++++++++++++++++++++++
 help/parameters/GiottoMag                                                           |    25 +++++++++++++++++++++++++
 help/parameters/GiottoMission                                                       |    13 +++++++++++++
 help/parameters/GllEphem                                                            |     8 ++++++++
 help/parameters/GllKhurana                                                          |     6 ++++++
 help/parameters/GllMag                                                              |    68 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 help/parameters/GllPLS                                                              |   172 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 help/parameters/GllPWS                                                              |  1479 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 help/parameters/IceMag                                                              |    34 ++++++++++++++++++++++++++++++++++
 help/parameters/IceMission                                                          |    20 ++++++++++++++++++++
 help/parameters/MGSProxy                                                            |    16 ++++++++++++++++
 help/parameters/MIT                                                                 |   111 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 help/parameters/Messenger                                                           |    44 ++++++++++++++++++++++++++++++++++++++++++++
 help/parameters/MessengerEphemeris                                                  |   136 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 help/parameters/MessengerFips                                                       |     6 ++++++
 help/parameters/MexMarsis                                                           |    12 ++++++++++++
 help/parameters/MexVexSW                                                            |    10 ++++++++++
 help/parameters/MgsEr                                                               |    22 ++++++++++++++++++++++
 help/parameters/MgsMag                                                              |    28 ++++++++++++++++++++++++++++
 help/parameters/Morsch_help                                                         |     8 ++++++++
 help/parameters/ONERAPlasma                                                         |     7 +++++++
 help/parameters/P10Ephem                                                            |    33 +++++++++++++++++++++++++++++++++
 help/parameters/P10Mag                                                              |    40 ++++++++++++++++++++++++++++++++++++++++
 help/parameters/P11Ephem                                                            |    33 +++++++++++++++++++++++++++++++++
 help/parameters/P11Mag                                                              |    40 ++++++++++++++++++++++++++++++++++++++++
 help/parameters/PVOEphem                                                            |    40 ++++++++++++++++++++++++++++++++++++++++
 help/parameters/PVOMag                                                              |    34 ++++++++++++++++++++++++++++++++++
 help/parameters/RosettaEphemeris                                                    |    97 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 help/parameters/RosettaMission                                                      |    54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 help/parameters/Stereo                                                              |    42 ++++++++++++++++++++++++++++++++++++++++++
 help/parameters/T96_help                                                            |    23 +++++++++++++++++++++++
 help/parameters/TaoModel                                                            |    25 +++++++++++++++++++++++++
 help/parameters/UlysseIoTorus                                                       |    23 +++++++++++++++++++++++
 help/parameters/VEXMAG                                                              |    26 ++++++++++++++++++++++++++
 help/parameters/VO2UranusCRS                                                        |    34 ++++++++++++++++++++++++++++++++++
 help/parameters/VO2UranusLECP15m                                                    |    27 +++++++++++++++++++++++++++
 help/parameters/VO2UranusLECPFlux                                                   |    27 +++++++++++++++++++++++++++
 help/parameters/VO2UranusPLSEleBr                                                   |    26 ++++++++++++++++++++++++++
 help/parameters/VO2UranusPLSEleFit                                                  |    26 ++++++++++++++++++++++++++
 help/parameters/VO2UranusPLSIonBr                                                   |    26 ++++++++++++++++++++++++++
 help/parameters/VO2UranusPLSIonFit                                                  |    27 +++++++++++++++++++++++++++
 help/parameters/VO2UranusPWS48s                                                     |    27 +++++++++++++++++++++++++++
 help/parameters/VexMex                                                              |    10 ++++++++++
 help/parameters/Whisper                                                             |    18 ++++++++++++++++++
 help/parameters/doc/ONERA_Jupiter_plasma_db_for_AMDA.pdf                            | Bin 0 -> 621963 bytes
 help/parameters/doc/globalHee.png                                                   | Bin 0 -> 19047 bytes
 help/parameters/doc/whisper_contrast.png                                            | Bin 0 -> 13627 bytes
 help/parameters/doc/whisper_contrast_unc.png                                        | Bin 0 -> 17805 bytes
 help/parameters/doc/whisper_unc.png                                                 | Bin 0 -> 14417 bytes
 help/parameters/mSWiM                                                               |    16 ++++++++++++++++
 help/parametersTree                                                                 |    39 +++++++++++++++++++++++++++++++++++++++
 help/plotHOWTO                                                                      |     5 +++++
 help/plotHelp                                                                       |     3 +++
 help/plotSettings                                                                   |    33 +++++++++++++++++++++++++++++++++
 help/plotStart                                                                      |    27 +++++++++++++++++++++++++++
 help/plotType                                                                       |     9 +++++++++
 help/policy.html                                                                    |    50 ++++++++++++++++++++++++++++++++++++++++++++++++++
 help/releaseNotes.1.1                                                               |    21 +++++++++++++++++++++
 help/releaseNotes.1.2                                                               |    23 +++++++++++++++++++++++
 help/releaseNotes.1.3                                                               |    27 +++++++++++++++++++++++++++
 help/releaseNotes.1.3.1                                                             |    27 +++++++++++++++++++++++++++
 help/remoteIntro                                                                    |    29 +++++++++++++++++++++++++++++
 help/resourceHelp                                                                   |    10 ++++++++++
 help/resourceTree                                                                   |    20 ++++++++++++++++++++
 help/simu/Gumics                                                                    |    30 ++++++++++++++++++++++++++++++
 help/simu/TargetsSimu.xml                                                           |    22 ++++++++++++++++++++++
 help/standardTimeFormat                                                             |    34 ++++++++++++++++++++++++++++++++++
 help/statisticalHelp                                                                |     8 ++++++++
 help/timetableHOWTO                                                                 |     4 ++++
 help/timetableHelp                                                                  |    19 +++++++++++++++++++
 help/timetables                                                                     |    18 ++++++++++++++++++
 help/ttOperationsHOWTO                                                              |     6 ++++++
 help/ttOperationsHelp                                                               |    16 ++++++++++++++++
 help/ttShared                                                                       |     4 ++++
 help/uploadDataHelp                                                                 |    49 +++++++++++++++++++++++++++++++++++++++++++++++++
 help/uploadHelp                                                                     |    81 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 help/uploadTTHelp                                                                   |    34 ++++++++++++++++++++++++++++++++++
 help/userTimeFormat                                                                 |    30 ++++++++++++++++++++++++++++++
 help/variableSampling                                                               |     6 ++++++
 index.html                                                                          |     1 +
 install_notes/AMDAUPDATE                                                            |    40 ++++++++++++++++++++++++++++++++++++++++
 install_notes/AMDA_PLUS                                                             |    12 ++++++++++++
 install_notes/CDF_VERSION_UPDATE                                                    |    13 +++++++++++++
 install_notes/CEF                                                                   |     5 +++++
 install_notes/DataBaseLog                                                           |    15 +++++++++++++++
 install_notes/EPN_RESOURCES                                                         |    80 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 install_notes/REMOTEPARAM                                                           |    81 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 install_notes/UPLOAD_DATA                                                           |     7 +++++++
 install_notes/UserWsTransfer                                                        |    20 ++++++++++++++++++++
 js/app/AmdaApp.js                                                                   |   656 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/app/app.js                                                                       |    12 ++++++++++++
 js/app/controllers/AboutModule.js                                                   |    98 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/app/controllers/AmdaModule.js                                                    |   115 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/app/controllers/AmdaStateProvider.js                                             |   134 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/app/controllers/AstroImagesModule.js                                             |    90 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/app/controllers/DownloadModule.js                                                |    60 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/app/controllers/DynamicModule.js                                                 |    77 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/app/controllers/ExplorerModule.js                                                |   300 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/app/controllers/FeedbackModule.js                                                |    54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/app/controllers/FiltersModule.js                                                 |    53 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/app/controllers/HelpModule.js                                                    |   122 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/app/controllers/InteractiveModule.js                                             |   257 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/app/controllers/InteractivePlotMgr.js                                            |   316 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/app/controllers/InteropModule.js                                                 |   466 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/app/controllers/JobsMgr.js                                                       |   134 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/app/controllers/MyDataModule.js                                                  |    42 ++++++++++++++++++++++++++++++++++++++++++
 js/app/controllers/ParameterModule.js                                               |    43 +++++++++++++++++++++++++++++++++++++++++++
 js/app/controllers/PlotModule.js                                                    |   196 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/app/controllers/ResourcesMgrModule.js                                            |    58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/app/controllers/ResultModule.js                                                  |   143 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/app/controllers/SampModule.js                                                    |   282 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/app/controllers/SearchModule.js                                                  |    51 +++++++++++++++++++++++++++++++++++++++++++++++++++
 js/app/controllers/TimeTableModule.js                                               |    54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/app/controllers/TimeTableOperationModule.js                                      |    40 ++++++++++++++++++++++++++++++++++++++++
 js/app/controllers/UploadModule.js                                                  |    59 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/app/help.js                                                                      |    69 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/app/models/AliasNode.js                                                          |   155 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/app/models/AmdaNode.js                                                           |   194 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/app/models/AmdaObject.js                                                         |    49 +++++++++++++++++++++++++++++++++++++++++++++++++
 js/app/models/AmdaTimeObject.js                                                     |    91 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/app/models/ArgGroups.js                                                          |    50 ++++++++++++++++++++++++++++++++++++++++++++++++++
 js/app/models/BkgJobNode.js                                                         |   477 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/app/models/Constant.js                                                           |    42 ++++++++++++++++++++++++++++++++++++++++++
 js/app/models/DerivedParamNode.js                                                   |    70 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/app/models/Download.js                                                           |   125 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/app/models/DownloadNode.js                                                       |   301 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/app/models/ExecutableNode.js                                                     |   170 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/app/models/FileObject.js                                                         |    41 +++++++++++++++++++++++++++++++++++++++++
 js/app/models/FileParamObject.js                                                    |    66 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/app/models/FilterDef.js                                                          |   119 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/app/models/FilterInfo.js                                                         |   189 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/app/models/Function.js                                                           |    46 ++++++++++++++++++++++++++++++++++++++++++++++
 js/app/models/InteractiveNode.js                                                    |   808 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/app/models/LocalParamNode.js                                                     |   254 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/app/models/MyDataNode.js                                                         |   207 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/app/models/MyDataParamNode.js                                                    |   249 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/app/models/Parameter.js                                                          |    56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/app/models/Plot.js                                                               |   130 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/app/models/PlotNode.js                                                           |   127 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/app/models/PlotObject.js                                                         |    31 +++++++++++++++++++++++++++++++
 js/app/models/PlotPanel.js                                                          |   110 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/app/models/PlotParam.js                                                          |    68 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/app/models/RemoteParamNode.js                                                    |   154 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/app/models/RemoteSimuParamNode.js                                                |   175 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/app/models/Search.js                                                             |    76 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/app/models/SearchNode.js                                                         |   111 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/app/models/TimeTable.js                                                          |   182 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/app/models/TimeTableNode.js                                                      |   175 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/app/models/sharedTimeTableNode.js                                                |    51 +++++++++++++++++++++++++++++++++++++++++++++++++++
 js/app/routes.js                                                                    |    18 ++++++++++++++++++
 js/app/stores/AmdaTreeReader.js                                                     |    80 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/app/stores/ExplorerReader.js                                                     |    55 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/app/stores/PlotReader.js                                                         |    32 ++++++++++++++++++++++++++++++++
 js/app/views/APISImagesUI.js                                                        |   129 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/app/views/AliasUI.js                                                             |   199 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/app/views/AstroImagesUI.js                                                       |   712 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/app/views/CalculatorUI.js                                                        |   490 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/app/views/DownloadUI.js                                                          |   660 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/app/views/ExplorerUI.js                                                          |  1114 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/app/views/FeedbackUI.js                                                          |   269 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/app/views/FiltersUI.js                                                           |  1130 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/app/views/HstUI.js                                                               |    80 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/app/views/InteractiveIntervalPlugin.js                                           |   370 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/app/views/InteractivePlotUI.js                                                   |   410 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/app/views/InteropImpexUI.js                                                      |   410 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/app/views/InteropUI.js                                                           |   129 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/app/views/IntervalUI.js                                                          |   238 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/app/views/MyDataUI.js                                                            |   816 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/app/views/OperationsTT.js                                                        |   190 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/app/views/ParamEditorPlugin.js                                                   |   420 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/app/views/ParameterUI.js                                                         |   450 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/app/views/ParamsMgrUI.js                                                         |   423 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/app/views/PlotTabResultUI.js                                                     |   703 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/app/views/PlotUI.js                                                              |  1550 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/app/views/RemoteSearchPlugin.js                                                  |   114 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/app/views/ResourcesMgrUI.js                                                      |   343 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/app/views/ResultUI.js                                                            |    85 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/app/views/SampToolBarUI.js                                                       |    79 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/app/views/SearchParamEditorPlugin.js                                             |   248 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/app/views/SearchUI.js                                                            |   522 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/app/views/SendToSampButtonUI.js                                                  |   130 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/app/views/StatisticalPlug.js                                                     |   185 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/app/views/TabPlotUI.js                                                           |   109 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/app/views/TabResultUI.js                                                         |   343 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/app/views/TimeSelectorUI.js                                                      |   270 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/app/views/TimeTableOperationUI.js                                                |   309 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/app/views/TimeTableUI.js                                                         |   791 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/app/views/UploadPanelUI.js                                                       |   528 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/app/views/UploadUI.js                                                            |    64 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/app/views/Viewport.js                                                            |    94 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/lib/JSBuilder/bin/Dispatch.js                                                    |    37 +++++++++++++++++++++++++++++++++++++
 js/lib/JSBuilder/bin/Generator.js                                                   |     6 ++++++
 js/lib/JSBuilder/bin/JSBuilder.js                                                   |     2 ++
 js/lib/JSBuilder/jsdb                                                               | Bin 0 -> 2068364 bytes
 js/lib/JSBuilder/src/Build.js                                                       |    62 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/lib/JSBuilder/src/Cli.js                                                         |   140 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/lib/JSBuilder/src/Cmd.js                                                         |    11 +++++++++++
 js/lib/JSBuilder/src/Ext.js                                                         |   267 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/lib/JSBuilder/src/Filesystem.js                                                  |   111 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/lib/JSBuilder/src/Generator.js                                                   |   203 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/lib/JSBuilder/src/JSBuilder.js                                                   |    77 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/lib/JSBuilder/src/Loader.js                                                      |    74 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/lib/JSBuilder/src/Logger.js                                                      |     8 ++++++++
 js/lib/JSBuilder/src/Package.js                                                     |     5 +++++
 js/lib/JSBuilder/src/Parser.js                                                      |   156 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/lib/JSBuilder/src/Parser.old.js                                                  |   116 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/lib/JSBuilder/src/Parser/Statement.js                                            |   103 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/lib/JSBuilder/src/Parser/Statement/Debug.js                                      |    38 ++++++++++++++++++++++++++++++++++++++
 js/lib/JSBuilder/src/Parser/Statement/Deprecated.js                                 |    14 ++++++++++++++
 js/lib/JSBuilder/src/Parser/Statement/Else.js                                       |    10 ++++++++++
 js/lib/JSBuilder/src/Parser/Statement/Elseif.js                                     |    22 ++++++++++++++++++++++
 js/lib/JSBuilder/src/Parser/Statement/If.js                                         |    57 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/lib/JSBuilder/src/Parser/Statement/Uncomment.js                                  |    17 +++++++++++++++++
 js/lib/JSBuilder/src/Platform.js                                                    |     4 ++++
 js/lib/JSBuilder/src/Project.js                                                     |   217 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/lib/JSBuilder/src/Target.js                                                      |   216 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/lib/JSBuilder/src/Template.js                                                    |   275 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/lib/JSBuilder/src/XTemplate.js                                                   |   469 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/lib/JSBuilder/src/generators/app/Application.js                                  |    91 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/lib/JSBuilder/src/generators/app/files/app/routes.js                             |    18 ++++++++++++++++++
 js/lib/JSBuilder/src/generators/app/files/index.html                                |    38 ++++++++++++++++++++++++++++++++++++++
 js/lib/JSBuilder/src/generators/app/files/lib/JSBuilder/bin/Dispatch.js             |    37 +++++++++++++++++++++++++++++++++++++
 js/lib/JSBuilder/src/generators/app/files/lib/jasmine/MIT.LICENSE                   |    20 ++++++++++++++++++++
 js/lib/JSBuilder/src/generators/app/files/lib/jasmine/jasmine-html.js               |   182 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/lib/JSBuilder/src/generators/app/files/lib/jasmine/jasmine.css                   |   166 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/lib/JSBuilder/src/generators/app/files/lib/jasmine/jasmine.js                    |  2421 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/lib/JSBuilder/src/generators/app/files/lib/sencha-jasmine/matchers/Controller.js |    10 ++++++++++
 js/lib/JSBuilder/src/generators/app/files/lib/sencha-jasmine/matchers/Model.js      |    54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/lib/JSBuilder/src/generators/app/files/lib/sencha-jasmine/sencha-jasmine.css     |   226 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/lib/JSBuilder/src/generators/app/files/lib/sencha-jasmine/sencha-jasmine.js      |    88 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/lib/JSBuilder/src/generators/app/files/public/resources/css/application.css      |     3 +++
 js/lib/JSBuilder/src/generators/app/files/sencha.sh                                 |    11 +++++++++++
 js/lib/JSBuilder/src/generators/app/files/test/unit/.htaccess                       |     2 ++
 js/lib/JSBuilder/src/generators/app/files/test/unit/SpecOptions.js                  |     9 +++++++++
 js/lib/JSBuilder/src/generators/app/files/test/unit/index.html                      |    69 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/lib/JSBuilder/src/generators/app/templates/Application.js                        |    12 ++++++++++++
 js/lib/JSBuilder/src/generators/app/templates/Viewport.js                           |    93 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/lib/JSBuilder/src/generators/controller/Controller.js                            |    30 ++++++++++++++++++++++++++++++
 js/lib/JSBuilder/src/generators/controller/templates/Controller.js                  |     9 +++++++++
 js/lib/JSBuilder/src/generators/controller/templates/ControllerSpec.js              |    12 ++++++++++++
 js/lib/JSBuilder/src/generators/model/Model.js                                      |    47 +++++++++++++++++++++++++++++++++++++++++++++++
 js/lib/JSBuilder/src/generators/model/templates/Fixture.js                          |     9 +++++++++
 js/lib/JSBuilder/src/generators/model/templates/Model.js                            |     9 +++++++++
 js/lib/JSBuilder/src/generators/model/templates/ModelSpec.js                        |     9 +++++++++
 js/lib/JSBuilder/tests/builder.js                                                   |     6 ++++++
 js/lib/JSBuilder/tests/parser.js                                                    |    51 +++++++++++++++++++++++++++++++++++++++++++++++++++
 js/lib/JSBuilder/tests/parser/after1.js                                             |     9 +++++++++
 js/lib/JSBuilder/tests/parser/after2.js                                             |     2 ++
 js/lib/JSBuilder/tests/parser/after3.js                                             |     9 +++++++++
 js/lib/JSBuilder/tests/parser/after4.js                                             |     1 +
 js/lib/JSBuilder/tests/parser/before1.js                                            |    17 +++++++++++++++++
 js/lib/JSBuilder/tests/parser/before2.js                                            |     9 +++++++++
 js/lib/JSBuilder/tests/parser/before3.js                                            |    23 +++++++++++++++++++++++
 js/lib/JSBuilder/tests/parser/before4.js                                            |     5 +++++
 js/lib/JSBuilder/tests/run.js                                                       |    50 ++++++++++++++++++++++++++++++++++++++++++++++++++
 js/lib/JSBuilder/ycompressor/ycompressor.jar                                        | Bin 0 -> 851219 bytes
 js/lib/SAMP/jsamp/samp.js                                                           |  1308 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/lib/compat/ext3-compat.css                                                       |   138 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/lib/compat/ext3-compat.js                                                        |  1808 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/lib/compat/ext3-core-compat.js                                                   |   735 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/lib/ext-override.js                                                              |   130 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/lib/jasmine/MIT.LICENSE                                                          |    20 ++++++++++++++++++++
 js/lib/jasmine/jasmine-html.js                                                      |   182 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/lib/jasmine/jasmine.css                                                          |   166 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/lib/jasmine/jasmine.js                                                           |  2421 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/lib/sencha-jasmine/matchers/Controller.js                                        |    10 ++++++++++
 js/lib/sencha-jasmine/matchers/Model.js                                             |    54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/lib/sencha-jasmine/sencha-jasmine.css                                            |   226 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/lib/sencha-jasmine/sencha-jasmine.js                                             |    88 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/lib/ux/Browser.js                                                                |   186 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/lib/ux/ColorCombo.js                                                             |   115 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/lib/ux/FisheyeMenu.js                                                            |   379 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/lib/ux/SelectableTextArea.js                                                     |    91 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/lib/ux/desktop/App.js                                                            |   175 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/lib/ux/desktop/Desktop.js                                                        |   470 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/lib/ux/desktop/FitAllLayout.js                                                   |    63 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/lib/ux/desktop/Module.js                                                         |    34 ++++++++++++++++++++++++++++++++++
 js/lib/ux/desktop/ShortcutModel.js                                                  |    20 ++++++++++++++++++++
 js/lib/ux/desktop/StartMenu.js                                                      |   101 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/lib/ux/desktop/TaskBar.js                                                        |   261 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/lib/ux/desktop/Video.js                                                          |   136 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/lib/ux/desktop/Wallpaper.js                                                      |    79 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/lib/ux/desktop/exampleModules/AccordionWindow.js                                 |   142 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/lib/ux/desktop/exampleModules/BogusMenuModule.js                                 |    34 ++++++++++++++++++++++++++++++++++
 js/lib/ux/desktop/exampleModules/BogusModule.js                                     |    41 +++++++++++++++++++++++++++++++++++++++++
 js/lib/ux/desktop/exampleModules/GridWindow.js                                      |   131 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/lib/ux/desktop/exampleModules/Notepad.js                                         |    63 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/lib/ux/desktop/exampleModules/Settings.js                                        |   156 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/lib/ux/desktop/exampleModules/SystemStatus.js                                    |   425 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/lib/ux/desktop/exampleModules/TabWindow.js                                       |    75 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/lib/ux/desktop/exampleModules/VideoWindow.js                                     |   128 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/lib/ux/desktop/exampleModules/WallpaperModel.js                                  |    14 ++++++++++++++
 js/lib/ux/desktop/exampleModules/app.jsb3                                           |  1050 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/lib/ux/grid/HeaderToolTip.js                                                     |    43 +++++++++++++++++++++++++++++++++++++++++++
 js/resources/css/AccueilAmda.css                                                    |     1 +
 js/resources/css/FisheyeMenu.css                                                    |    62 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/resources/css/amda.css                                                           |   387 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/resources/css/application.css                                                    |     3 +++
 js/resources/css/desktop.css                                                        |   355 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/resources/css/login.css                                                          |    24 ++++++++++++++++++++++++
 js/resources/css/styles.css                                                         |   194 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/resources/css/styles2.css                                                        |    34 ++++++++++++++++++++++++++++++++++
 js/resources/fonts/orbitron-bold.eot                                                | Bin 0 -> 9428 bytes
 js/resources/fonts/orbitron-bold.svg                                                |   503 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/resources/fonts/orbitron-bold.ttf                                                | Bin 0 -> 23576 bytes
 js/resources/fonts/orbitron-bold.woff                                               | Bin 0 -> 12388 bytes
 js/resources/fonts/orbitron-light.eot                                               | Bin 0 -> 9370 bytes
 js/resources/fonts/orbitron-light.svg                                               |   453 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/resources/fonts/orbitron-light.ttf                                               | Bin 0 -> 24840 bytes
 js/resources/fonts/orbitron-light.woff                                              | Bin 0 -> 12612 bytes
 js/resources/fonts/orbitron-medium.eot                                              | Bin 0 -> 8891 bytes
 js/resources/fonts/orbitron-medium.svg                                              |   473 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 js/resources/fonts/orbitron-medium.ttf                                              | Bin 0 -> 24820 bytes
 js/resources/fonts/orbitron-medium.woff                                             | Bin 0 -> 12024 bytes
 js/resources/fonts/stylesheet.css                                                   |    45 +++++++++++++++++++++++++++++++++++++++++++++
 js/resources/images/10x10/circle_blue.png                                           | Bin 0 -> 657 bytes
 js/resources/images/10x10/circle_green.png                                          | Bin 0 -> 609 bytes
 js/resources/images/10x10/circle_grey.png                                           | Bin 0 -> 510 bytes
 js/resources/images/10x10/circle_orange.png                                         | Bin 0 -> 672 bytes
 js/resources/images/10x10/circle_red.png                                            | Bin 0 -> 669 bytes
 js/resources/images/10x10/circle_yellow.png                                         | Bin 0 -> 485 bytes
 js/resources/images/12x12/circle_blue.png                                           | Bin 0 -> 696 bytes
 js/resources/images/12x12/circle_blue_.png                                          | Bin 0 -> 492 bytes
 js/resources/images/12x12/circle_green.png                                          | Bin 0 -> 648 bytes
 js/resources/images/12x12/circle_green_.png                                         | Bin 0 -> 451 bytes
 js/resources/images/12x12/circle_grey.png                                           | Bin 0 -> 548 bytes
 js/resources/images/12x12/circle_orange.png                                         | Bin 0 -> 711 bytes
 js/resources/images/12x12/circle_orange_.png                                        | Bin 0 -> 473 bytes
 js/resources/images/12x12/circle_red.png                                            | Bin 0 -> 708 bytes
 js/resources/images/12x12/circle_yellow.png                                         | Bin 0 -> 626 bytes
 js/resources/images/12x12/table.png                                                 | Bin 0 -> 528 bytes
 js/resources/images/14x14/circle_grey.png                                           | Bin 0 -> 565 bytes
 js/resources/images/14x14/table.png                                                 | Bin 0 -> 681 bytes
 js/resources/images/16x16/arrow_circle_double.png                                   | Bin 0 -> 832 bytes
 js/resources/images/16x16/button_cancel.png                                         | Bin 0 -> 842 bytes
 js/resources/images/16x16/calculator.png                                            | Bin 0 -> 658 bytes
 js/resources/images/16x16/catalog.png                                               | Bin 0 -> 704 bytes
 js/resources/images/16x16/circle_blue.png                                           | Bin 0 -> 782 bytes
 js/resources/images/16x16/circle_green.png                                          | Bin 0 -> 722 bytes
 js/resources/images/16x16/circle_grey.png                                           | Bin 0 -> 606 bytes
 js/resources/images/16x16/circle_orange.png                                         | Bin 0 -> 810 bytes
 js/resources/images/16x16/circle_red.png                                            | Bin 0 -> 805 bytes
 js/resources/images/16x16/circle_yellow.png                                         | Bin 0 -> 706 bytes
 js/resources/images/16x16/connected.png                                             | Bin 0 -> 968 bytes
 js/resources/images/16x16/disconnected.png                                          | Bin 0 -> 982 bytes
 js/resources/images/16x16/download_manager.png                                      | Bin 0 -> 749 bytes
 js/resources/images/16x16/edit.png                                                  | Bin 0 -> 590 bytes
 js/resources/images/16x16/equals.png                                                | Bin 0 -> 217 bytes
 js/resources/images/16x16/error.png                                                 | Bin 0 -> 821 bytes
 js/resources/images/16x16/filter.png                                                | Bin 0 -> 694 bytes
 js/resources/images/16x16/greater_than.png                                          | Bin 0 -> 359 bytes
 js/resources/images/16x16/help.png                                                  | Bin 0 -> 916 bytes
 js/resources/images/16x16/info.png                                                  | Bin 0 -> 796 bytes
 js/resources/images/16x16/info_mini.png                                             | Bin 0 -> 647 bytes
 js/resources/images/16x16/interop.png                                               | Bin 0 -> 1270 bytes
 js/resources/images/16x16/ivoa.png                                                  | Bin 0 -> 653 bytes
 js/resources/images/16x16/less_than.png                                             | Bin 0 -> 354 bytes
 js/resources/images/16x16/mail.png                                                  | Bin 0 -> 776 bytes
 js/resources/images/16x16/manageRsrc.png                                            | Bin 0 -> 838 bytes
 js/resources/images/16x16/mydata.png                                                | Bin 0 -> 713 bytes
 js/resources/images/16x16/new.png                                                   | Bin 0 -> 503 bytes
 js/resources/images/16x16/operations.png                                            | Bin 0 -> 913 bytes
 js/resources/images/16x16/plot.png                                                  | Bin 0 -> 829 bytes
 js/resources/images/16x16/plus_Orange.png                                           | Bin 0 -> 3411 bytes
 js/resources/images/16x16/results.png                                               | Bin 0 -> 862 bytes
 js/resources/images/16x16/search.png                                                | Bin 0 -> 672 bytes
 js/resources/images/16x16/table.png                                                 | Bin 0 -> 327 bytes
 js/resources/images/16x16/timeTable.png                                             | Bin 0 -> 868 bytes
 js/resources/images/16x16/user.png                                                  | Bin 0 -> 758 bytes
 js/resources/images/16x16/view_tree.png                                             | Bin 0 -> 551 bytes
 js/resources/images/16x16/workspaces.png                                            | Bin 0 -> 706 bytes
 js/resources/images/16x16/wsManager.png                                             | Bin 0 -> 3644 bytes
 js/resources/images/32x32/fav_amda.png                                              | Bin 0 -> 3193 bytes
 js/resources/images/32x32/new.png                                                   | Bin 0 -> 821 bytes
 js/resources/images/64x64/catalog.png                                               | Bin 0 -> 2393 bytes
 js/resources/images/64x64/download_manager.png                                      | Bin 0 -> 4946 bytes
 js/resources/images/64x64/edit.png                                                  | Bin 0 -> 3521 bytes
 js/resources/images/64x64/help.png                                                  | Bin 0 -> 6269 bytes
 js/resources/images/64x64/interop.png                                               | Bin 0 -> 8232 bytes
 js/resources/images/64x64/ivoa.png                                                  | Bin 0 -> 7676 bytes
 js/resources/images/64x64/mydata.png                                                | Bin 0 -> 5325 bytes
 js/resources/images/64x64/operations.png                                            | Bin 0 -> 8528 bytes
 js/resources/images/64x64/picto_amda.png                                            | Bin 0 -> 6203 bytes
 js/resources/images/64x64/plot.png                                                  | Bin 0 -> 5157 bytes
 js/resources/images/64x64/search.png                                                | Bin 0 -> 4698 bytes
 js/resources/images/64x64/timeTable.png                                             | Bin 0 -> 6130 bytes
 js/resources/images/Couvercle_complet.png                                           | Bin 0 -> 419247 bytes
 js/resources/images/Logo_CDPP_off.png                                               | Bin 0 -> 7126 bytes
 js/resources/images/Logo_CDPP_over.png                                              | Bin 0 -> 7670 bytes
 js/resources/images/LogosPartenaires.png                                            | Bin 0 -> 34239 bytes
 js/resources/images/_notes/bouton_off.png.mno                                       |     1 +
 js/resources/images/_notes/bouton_over.png.mno                                      |     1 +
 js/resources/images/_notes/couvercle.png.mno                                        |     1 +
 js/resources/images/_notes/fondvide.jpg.mno                                         |     1 +
 js/resources/images/amda_samp.jpg                                                   | Bin 0 -> 1684 bytes
 js/resources/images/bouton_off.png                                                  | Bin 0 -> 1997 bytes
 js/resources/images/bouton_over.png                                                 | Bin 0 -> 2728 bytes
 js/resources/images/ciel10.jpg                                                      | Bin 0 -> 58237 bytes
 js/resources/images/desktop/accordian.gif                                           | Bin 0 -> 943 bytes
 js/resources/images/desktop/accordionLarge.png                                      | Bin 0 -> 3488 bytes
 js/resources/images/desktop/bogus.png                                               | Bin 0 -> 478 bytes
 js/resources/images/desktop/chart48x48.png                                          | Bin 0 -> 2670 bytes
 js/resources/images/desktop/desktop.gif                                             | Bin 0 -> 63601 bytes
 js/resources/images/desktop/desktop3.jpg                                            | Bin 0 -> 158508 bytes
 js/resources/images/desktop/gears.gif                                               | Bin 0 -> 996 bytes
 js/resources/images/desktop/gears.png                                               | Bin 0 -> 967 bytes
 js/resources/images/desktop/grid.png                                                | Bin 0 -> 513 bytes
 js/resources/images/desktop/grid32x32.gif                                           | Bin 0 -> 1353 bytes
 js/resources/images/desktop/grid48x48.gif                                           | Bin 0 -> 2067 bytes
 js/resources/images/desktop/grid48x48.png                                           | Bin 0 -> 1501 bytes
 js/resources/images/desktop/gridLarge.png                                           | Bin 0 -> 3706 bytes
 js/resources/images/desktop/hatch.gif                                               | Bin 0 -> 842 bytes
 js/resources/images/desktop/hd-bg.gif                                               | Bin 0 -> 992 bytes
 js/resources/images/desktop/hd-tb-bg.gif                                            | Bin 0 -> 808 bytes
 js/resources/images/desktop/icon_padlock.png                                        | Bin 0 -> 400 bytes
 js/resources/images/desktop/icons-bg.png                                            | Bin 0 -> 191 bytes
 js/resources/images/desktop/im32x32.gif                                             | Bin 0 -> 1517 bytes
 js/resources/images/desktop/im48x48.gif                                             | Bin 0 -> 2153 bytes
 js/resources/images/desktop/im48x48.png                                             | Bin 0 -> 3997 bytes
 js/resources/images/desktop/launcher-bg.gif                                         | Bin 0 -> 944 bytes
 js/resources/images/desktop/launcher-btn.gif                                        | Bin 0 -> 1247 bytes
 js/resources/images/desktop/logout.gif                                              | Bin 0 -> 1104 bytes
 js/resources/images/desktop/logout.png                                              | Bin 0 -> 505 bytes
 js/resources/images/desktop/member.gif                                              | Bin 0 -> 972 bytes
 js/resources/images/desktop/member.png                                              | Bin 0 -> 832 bytes
 js/resources/images/desktop/notepadLarge.png                                        | Bin 0 -> 4982 bytes
 js/resources/images/desktop/powered-by-ext-js.png                                   | Bin 0 -> 2233 bytes
 js/resources/images/desktop/s.gif                                                   | Bin 0 -> 43 bytes
 js/resources/images/desktop/statusLarge.png                                         | Bin 0 -> 5882 bytes
 js/resources/images/desktop/tabs.gif                                                | Bin 0 -> 917 bytes
 js/resources/images/desktop/taskbar/black/item-over.gif                             | Bin 0 -> 166 bytes
 js/resources/images/desktop/taskbar/black/scroll-left.gif                           | Bin 0 -> 1405 bytes
 js/resources/images/desktop/taskbar/black/scroll-right.gif                          | Bin 0 -> 1405 bytes
 js/resources/images/desktop/taskbar/black/start-menu-left-corners.png               | Bin 0 -> 206 bytes
 js/resources/images/desktop/taskbar/black/start-menu-left-right.png                 | Bin 0 -> 143 bytes
 js/resources/images/desktop/taskbar/black/start-menu-right-corners.png              | Bin 0 -> 224 bytes
 js/resources/images/desktop/taskbar/black/start-menu-right.png                      | Bin 0 -> 141 bytes
 js/resources/images/desktop/taskbar/black/start-menu-top-bottom.png                 | Bin 0 -> 158 bytes
 js/resources/images/desktop/taskbar/black/startbutton-icon.gif                      | Bin 0 -> 748 bytes
 js/resources/images/desktop/taskbar/black/startbutton.gif                           | Bin 0 -> 2419 bytes
 js/resources/images/desktop/taskbar/black/taskbar-split-h.gif                       | Bin 0 -> 327 bytes
 js/resources/images/desktop/taskbar/black/taskbar-start-panel-bg.gif                | Bin 0 -> 890 bytes
 js/resources/images/desktop/taskbar/black/taskbutton.gif                            | Bin 0 -> 1894 bytes
 js/resources/images/desktop/taskbar/black/taskbuttons-panel-bg.gif                  | Bin 0 -> 195 bytes
 js/resources/images/desktop/taskbar/fav_amda.png                                    | Bin 0 -> 3193 bytes
 js/resources/images/desktop/taskbar/sencha.gif                                      | Bin 0 -> 551 bytes
 js/resources/images/desktop/taskbar/sencha.ico                                      | Bin 0 -> 1150 bytes
 js/resources/images/desktop/wallpapers/Blue-Sencha.jpg                              | Bin 0 -> 98631 bytes
 js/resources/images/desktop/wallpapers/Cdpp.jpg                                     | Bin 0 -> 58237 bytes
 js/resources/images/desktop/wallpapers/Cdpp2.jpg                                    | Bin 0 -> 70377 bytes
 js/resources/images/desktop/wallpapers/Dark-Sencha.jpg                              | Bin 0 -> 86420 bytes
 js/resources/images/desktop/wallpapers/Wood-Sencha.jpg                              | Bin 0 -> 181768 bytes
 js/resources/images/desktop/wallpapers/blue.jpg                                     | Bin 0 -> 68025 bytes
 js/resources/images/desktop/wallpapers/desk.jpg                                     | Bin 0 -> 53422 bytes
 js/resources/images/desktop/wallpapers/desktop.jpg                                  | Bin 0 -> 84237 bytes
 js/resources/images/desktop/wallpapers/desktop2.jpg                                 | Bin 0 -> 79548 bytes
 js/resources/images/desktop/wallpapers/ext.gif                                      | Bin 0 -> 3765 bytes
 js/resources/images/desktop/wallpapers/rosetta.jpg                                  | Bin 0 -> 71664 bytes
 js/resources/images/desktop/wallpapers/rosetta2.jpg                                 | Bin 0 -> 80396 bytes
 js/resources/images/desktop/wallpapers/shiny.gif                                    | Bin 0 -> 1466 bytes
 js/resources/images/desktop/wallpapers/sky.jpg                                      | Bin 0 -> 59065 bytes
 js/resources/images/desktop/winbar-bg.gif                                           | Bin 0 -> 888 bytes
 js/resources/images/desktop/winbar-btn.gif                                          | Bin 0 -> 1316 bytes
 js/resources/images/desktop/windows-bg.gif                                          | Bin 0 -> 830 bytes
 js/resources/images/icons/comet.png                                                 | Bin 0 -> 973 bytes
 js/resources/images/icons/earth.png                                                 | Bin 0 -> 894 bytes
 js/resources/images/icons/fam/SILK.txt                                              |     3 +++
 js/resources/images/icons/fam/accept.gif                                            | Bin 0 -> 603 bytes
 js/resources/images/icons/fam/accept.png                                            | Bin 0 -> 781 bytes
 js/resources/images/icons/fam/add.gif                                               | Bin 0 -> 994 bytes
 js/resources/images/icons/fam/add.png                                               | Bin 0 -> 733 bytes
 js/resources/images/icons/fam/application_go.png                                    | Bin 0 -> 634 bytes
 js/resources/images/icons/fam/application_view_list.png                             | Bin 0 -> 473 bytes
 js/resources/images/icons/fam/book.png                                              | Bin 0 -> 593 bytes
 js/resources/images/icons/fam/cog.gif                                               | Bin 0 -> 614 bytes
 js/resources/images/icons/fam/cog.png                                               | Bin 0 -> 512 bytes
 js/resources/images/icons/fam/cog_edit.png                                          | Bin 0 -> 865 bytes
 js/resources/images/icons/fam/connect.gif                                           | Bin 0 -> 998 bytes
 js/resources/images/icons/fam/connect.png                                           | Bin 0 -> 748 bytes
 js/resources/images/icons/fam/control_rewind.png                                    | Bin 0 -> 614 bytes
 js/resources/images/icons/fam/cross.gif                                             | Bin 0 -> 944 bytes
 js/resources/images/icons/fam/delete.gif                                            | Bin 0 -> 989 bytes
 js/resources/images/icons/fam/error.gif                                             | Bin 0 -> 365 bytes
 js/resources/images/icons/fam/error.png                                             | Bin 0 -> 666 bytes
 js/resources/images/icons/fam/feed_add.png                                          | Bin 0 -> 763 bytes
 js/resources/images/icons/fam/feed_delete.png                                       | Bin 0 -> 746 bytes
 js/resources/images/icons/fam/feed_error.png                                        | Bin 0 -> 770 bytes
 js/resources/images/icons/fam/folder_go.gif                                         | Bin 0 -> 595 bytes
 js/resources/images/icons/fam/folder_go.png                                         | Bin 0 -> 694 bytes
 js/resources/images/icons/fam/folder_wrench.png                                     | Bin 0 -> 740 bytes
 js/resources/images/icons/fam/grid.png                                              | Bin 0 -> 513 bytes
 js/resources/images/icons/fam/image_add.png                                         | Bin 0 -> 653 bytes
 js/resources/images/icons/fam/information.png                                       | Bin 0 -> 778 bytes
 js/resources/images/icons/fam/plugin.gif                                            | Bin 0 -> 988 bytes
 js/resources/images/icons/fam/plugin_add.gif                                        | Bin 0 -> 1010 bytes
 js/resources/images/icons/fam/rss_go.png                                            | Bin 0 -> 635 bytes
 js/resources/images/icons/fam/table_refresh.png                                     | Bin 0 -> 795 bytes
 js/resources/images/icons/fam/user.gif                                              | Bin 0 -> 987 bytes
 js/resources/images/icons/fam/user.png                                              | Bin 0 -> 741 bytes
 js/resources/images/icons/fam/user_add.gif                                          | Bin 0 -> 1001 bytes
 js/resources/images/icons/fam/user_add.png                                          | Bin 0 -> 746 bytes
 js/resources/images/icons/fam/user_comment.png                                      | Bin 0 -> 743 bytes
 js/resources/images/icons/fam/user_delete.gif                                       | Bin 0 -> 1001 bytes
 js/resources/images/icons/fam/user_delete.png                                       | Bin 0 -> 767 bytes
 js/resources/images/icons/fam/user_edit.png                                         | Bin 0 -> 833 bytes
 js/resources/images/icons/fam/user_female.gif                                       | Bin 0 -> 978 bytes
 js/resources/images/icons/fam/user_female.png                                       | Bin 0 -> 663 bytes
 js/resources/images/icons/fam/user_gray.png                                         | Bin 0 -> 706 bytes
 js/resources/images/icons/fam/user_green.gif                                        | Bin 0 -> 985 bytes
 js/resources/images/icons/fam/user_green.png                                        | Bin 0 -> 722 bytes
 js/resources/images/icons/fam/user_orange.png                                       | Bin 0 -> 723 bytes
 js/resources/images/icons/fam/user_red.png                                          | Bin 0 -> 717 bytes
 js/resources/images/icons/fam/user_suit.gif                                         | Bin 0 -> 988 bytes
 js/resources/images/icons/fam/user_suit.png                                         | Bin 0 -> 748 bytes
 js/resources/images/icons/jupiter.png                                               | Bin 0 -> 824 bytes
 js/resources/images/icons/mars.png                                                  | Bin 0 -> 837 bytes
 js/resources/images/icons/mercury.png                                               | Bin 0 -> 863 bytes
 js/resources/images/icons/moon.png                                                  | Bin 0 -> 919 bytes
 js/resources/images/icons/neptune.png                                               | Bin 0 -> 895 bytes
 js/resources/images/icons/rosetta.png                                               | Bin 0 -> 522 bytes
 js/resources/images/icons/saturn.png                                                | Bin 0 -> 836 bytes
 js/resources/images/icons/space.png                                                 | Bin 0 -> 770 bytes
 js/resources/images/icons/sun.png                                                   | Bin 0 -> 965 bytes
 js/resources/images/icons/sw.png                                                    | Bin 0 -> 991 bytes
 js/resources/images/icons/uranus.png                                                | Bin 0 -> 910 bytes
 js/resources/images/icons/venus.png                                                 | Bin 0 -> 1009 bytes
 js/resources/images/less.png                                                        | Bin 0 -> 178 bytes
 js/resources/images/login/bg-panel.jpg                                              | Bin 0 -> 79068 bytes
 js/resources/images/login/install.gif                                               | Bin 0 -> 1091 bytes
 js/resources/images/login/login.gif                                                 | Bin 0 -> 1086 bytes
 js/resources/images/login/logo-extjs.gif                                            | Bin 0 -> 989 bytes
 js/resources/images/login/logo-qwikioffice.png                                      | Bin 0 -> 13314 bytes
 js/resources/images/login/screenshot.png                                            | Bin 0 -> 25677 bytes
 js/resources/images/login/send.gif                                                  | Bin 0 -> 1086 bytes
 js/resources/images/more.png                                                        | Bin 0 -> 178 bytes
 js/resources/images/redLine.png                                                     | Bin 0 -> 177 bytes
 js/resources/images/right.png                                                       | Bin 0 -> 1600 bytes
 js/resources/images/s.gif                                                           | Bin 0 -> 43 bytes
 js/resources/images/small_cancel.png                                                | Bin 0 -> 524 bytes
 js/resources/images/small_cancel_centered.png                                       | Bin 0 -> 548 bytes
 js/resources/images/trou.jpg                                                        | Bin 0 -> 82107 bytes
 js/test/unit/.htaccess                                                              |     2 ++
 js/test/unit/SpecOptions.js                                                         |     9 +++++++++
 js/test/unit/index.html                                                             |    69 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 php/AMDA_METHODS_WSDL.php                                                           |    18 ++++++++++++++++++
 php/AmdaUpdate.php                                                                  |   164 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 php/MultiRequestMgr.php                                                             |   240 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 php/TTCacheDump.php                                                                 |    12 ++++++++++++
 php/XML/VOTable-1.0.xsd                                                             |   430 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 php/XML/VOTable-1.1.xsd                                                             |   466 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 php/XML/VOTable-1.2.xsd                                                             |   558 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 php/XML/base.xsl                                                                    |    23 +++++++++++++++++++++++
 php/XML/basesRaw2bases.xsl                                                          |    18 ++++++++++++++++++
 php/XML/dd2WStree.xsl                                                               |   103 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 php/XML/dd2tree.xsl                                                                 |    93 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 php/XML/xml2all.xsl                                                                 |    18 ++++++++++++++++++
 php/XML/xml2iso.xsl                                                                 |    19 +++++++++++++++++++
 php/XML/xml2vot.xsl                                                                 |    40 ++++++++++++++++++++++++++++++++++++++++
 php/amda_version.php                                                                |    11 +++++++++++
 php/api.php                                                                         |    36 ++++++++++++++++++++++++++++++++++++
 php/arguments.php                                                                   |   345 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 php/classes/APISMgr.php                                                             |   126 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 php/classes/AliasMgr.php                                                            |   120 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 php/classes/AmdaAction.php                                                          |  1182 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 php/classes/AmdaClient.php                                                          |   771 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 php/classes/AmdaObjectMgr.php                                                       |   339 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 php/classes/AmdaStats.php                                                           |   307 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 php/classes/BaseManager.php                                                         |   533 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 php/classes/BestRunsMgr.php                                                         |   217 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 php/classes/BuildVOTable.php                                                        |   633 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 php/classes/DerivedParamMgr.php                                                     |   413 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 php/classes/EPNResourcesManager.php                                                 |  1042 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 php/classes/FeedbackMgr.php                                                         |    98 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 php/classes/FilesMgr.php                                                            |  1229 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 php/classes/FilterRes.php                                                           |    75 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 php/classes/FilterResParam.php                                                      |   327 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 php/classes/FilterResSimu.php                                                       |   283 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 php/classes/FiltersMgr.php                                                          |   399 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 php/classes/Guest.php                                                               |   135 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 php/classes/HstMgr.php                                                              |   147 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 php/classes/InfoProvider.php                                                        |    30 ++++++++++++++++++++++++++++++
 php/classes/JobsMgr.php                                                             |   489 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 php/classes/ParamMgr.php                                                            |   415 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 php/classes/ParamsInfoMgr.php                                                       |   980 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 php/classes/PlotMgr.php                                                             |   388 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 php/classes/PostProcessing.php                                                      |   213 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 php/classes/RequestMgr.php                                                          |  2456 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 php/classes/SimuArgsMgr.php                                                         |   144 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 php/classes/SimuParamMgr.php                                                        |   383 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 php/classes/StateMgr.php                                                            |    65 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 php/classes/TimeTableCacheMgr.php                                                   |  1488 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 php/classes/TimeTableMgr.php                                                        |   806 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 php/classes/UserDeleteObsolete.php                                                  |   185 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 php/classes/UserMgr.php                                                             |   738 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 php/classes/UserWsTransfer.php                                                      |   624 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 php/classes/VOTableMgr.php                                                          |   576 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 php/classes/WSUserMgr.php                                                           |    60 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 php/classes/WebServer.php                                                           |   971 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 php/classes/WsrParamMgr.php                                                         |   166 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 php/config.php                                                                      |   372 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 php/firephp/FirePHP.class.php                                                       |  1784 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 php/firephp/LICENSE                                                                 |    29 +++++++++++++++++++++++++++++
 php/firephp/fb.php                                                                  |   276 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 php/impex_config.php                                                                |    33 +++++++++++++++++++++++++++++++++
 php/log                                                                             |     0
 php/makeMultiMission.php                                                            |   186 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 php/makeOrbits.php                                                                  |    13 +++++++++++++
 php/my_config.php                                                                   |    44 ++++++++++++++++++++++++++++++++++++++++++++
 php/old_amda/DateClass.php                                                          |    70 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 php/old_amda/ParamBuilder.php                                                       |   526 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 php/old_amda/Parser.php                                                             |   264 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 php/old_amda/getFileNames.php                                                       |    21 +++++++++++++++++++++
 php/old_amda/getViStart.php                                                         |    11 +++++++++++
 php/old_amda/getViStop.php                                                          |    10 ++++++++++
 php/old_amda/getVotVar.php                                                          |    66 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 php/old_amda/moreData.php                                                           |    79 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 php/old_amda/paramBuild.php                                                         |    88 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 php/old_amda/param_info.pro                                                         |   255 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 php/old_amda/simple_html_dom.php                                                    |   975 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 php/rest/asciiURL_to_votableURL.php                                                 |   168 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 php/rest/getDatasetData.php                                                         |    38 ++++++++++++++++++++++++++++++++++++++
 php/rest/getObsDataTree.php                                                         |    24 ++++++++++++++++++++++++
 php/rest/getOrbites.php                                                             |    23 +++++++++++++++++++++++
 php/rest/getParameter.php                                                           |    23 +++++++++++++++++++++++
 php/rest/getParameterList.php                                                       |    24 ++++++++++++++++++++++++
 php/rest/getTimeTable.php                                                           |    25 +++++++++++++++++++++++++
 php/rest/getTimeTablesList.php                                                      |    25 +++++++++++++++++++++++++
 php/rest/getVOtable.php                                                             |    32 ++++++++++++++++++++++++++++++++
 php/rest/getVotableFromASCII.php                                                    |   182 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 php/router.php                                                                      |   139 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 php/src/Makefile                                                                    |    98 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 php/src/cdfinfo.c                                                                   |   187 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 php/src/cdfsamplingfromdata.c                                                       |   168 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 php/src/cdfstartstopfromdata.c                                                      |   127 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 php/src/cdfvarinfo.c                                                                |   296 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 php/src/cefinfo.c                                                                   |    50 ++++++++++++++++++++++++++++++++++++++++++++++++++
 php/src/cefsampling.c                                                               |    45 +++++++++++++++++++++++++++++++++++++++++++++
 php/src/cefstartstop.c                                                              |    45 +++++++++++++++++++++++++++++++++++++++++++++
 php/src/ceftimeinfo.c                                                               |    53 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 php/src/cefvarinfo.c                                                                |    73 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 php/src/getncvars.c                                                                 |    50 ++++++++++++++++++++++++++++++++++++++++++++++++++
 php/src/nctimeinfo.c                                                                |    88 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 php/src/nctimestring2double.c                                                       |   171 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 php/src/ncvarinfo.c                                                                 |    70 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 php/uploadFile.php                                                                  |   299 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 public/WebServices/XML/AmdaPlots.xml                                                |    49 +++++++++++++++++++++++++++++++++++++++++++++++++
 public/wsdl/Methods_AMDA.wsdl                                                       |  1264 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 sencha.sh                                                                           |    11 +++++++++++
 1172 files changed, 134559 insertions(+), 0 deletions(-)
 create mode 100644 .gitignore
 create mode 100644 .project
 create mode 100644 amda_plus/README
 create mode 100644 amda_plus/amdalib/a2000.pro
 create mode 100644 amda_plus/amdalib/a2000omni.pro
 create mode 100644 amda_plus/amdalib/average.pro
 create mode 100644 amda_plus/amdalib/averagelap.pro
 create mode 100644 amda_plus/amdalib/averagemip.pro
 create mode 100644 amda_plus/amdalib/ba2000_0_init.pro
 create mode 100644 amda_plus/amdalib/ba2000_1_init.pro
 create mode 100644 amda_plus/amdalib/ba2000_2_init.pro
 create mode 100644 amda_plus/amdalib/ba2000_init.pro
 create mode 100644 amda_plus/amdalib/bcain_mso_0_init.pro
 create mode 100644 amda_plus/amdalib/bcain_mso_1_init.pro
 create mode 100644 amda_plus/amdalib/bcain_mso_2_init.pro
 create mode 100644 amda_plus/amdalib/bcain_mso_init.pro
 create mode 100644 amda_plus/amdalib/bcain_tot_init.pro
 create mode 100644 amda_plus/amdalib/bmorsch_mso_0_init.pro
 create mode 100644 amda_plus/amdalib/bmorsch_mso_1_init.pro
 create mode 100644 amda_plus/amdalib/bmorsch_mso_2_init.pro
 create mode 100644 amda_plus/amdalib/bmorsch_mso_init.pro
 create mode 100644 amda_plus/amdalib/bmorsch_tot_init.pro
 create mode 100644 amda_plus/amdalib/bt96_0_init.pro
 create mode 100644 amda_plus/amdalib/bt96_1_init.pro
 create mode 100644 amda_plus/amdalib/bt96_2_init.pro
 create mode 100644 amda_plus/amdalib/bt96_init.pro
 create mode 100644 amda_plus/amdalib/c1_hia_pad_init.pro
 create mode 100644 amda_plus/amdalib/c1_whi_ne_.pro
 create mode 100644 amda_plus/amdalib/c1_whi_ne_init.pro
 create mode 100644 amda_plus/amdalib/c2_whi_ne_.pro
 create mode 100644 amda_plus/amdalib/c2_whi_ne_init.pro
 create mode 100644 amda_plus/amdalib/c3_hia_pad_init.pro
 create mode 100644 amda_plus/amdalib/c3_whi_ne_.pro
 create mode 100644 amda_plus/amdalib/c3_whi_ne_init.pro
 create mode 100644 amda_plus/amdalib/c4_whi_ne_.pro
 create mode 100644 amda_plus/amdalib/c4_whi_ne_init.pro
 create mode 100644 amda_plus/amdalib/cain.pro
 create mode 100644 amda_plus/amdalib/doubl2jd.pro
 create mode 100644 amda_plus/amdalib/dst_init.pro
 create mode 100644 amda_plus/amdalib/dstplot.pro
 create mode 100644 amda_plus/amdalib/e_mgs_omni_init.pro
 create mode 100644 amda_plus/amdalib/earthorbaxis.pro
 create mode 100755 amda_plus/amdalib/elscntplot.pro
 create mode 100755 amda_plus/amdalib/elsspecplot.pro
 create mode 100644 amda_plus/amdalib/get_ica_spec.pro
 create mode 100644 amda_plus/amdalib/get_ima_o_spec.pro
 create mode 100644 amda_plus/amdalib/get_imam_h_spec.pro
 create mode 100644 amda_plus/amdalib/get_mode_peir.pro
 create mode 100644 amda_plus/amdalib/get_multi.pro
 create mode 100644 amda_plus/amdalib/get_scatter.pro
 create mode 100644 amda_plus/amdalib/get_th_e_sp.pro
 create mode 100644 amda_plus/amdalib/get_vexmex_dens.pro
 create mode 100644 amda_plus/amdalib/get_vexmex_qual.pro
 create mode 100644 amda_plus/amdalib/get_vexmex_scan.pro
 create mode 100644 amda_plus/amdalib/get_vexmex_temp.pro
 create mode 100644 amda_plus/amdalib/get_vexmex_vel.pro
 create mode 100644 amda_plus/amdalib/getcdfvar.pro
 create mode 100644 amda_plus/amdalib/getcefvar.pro
 create mode 100644 amda_plus/amdalib/getmex_n_sw.pro
 create mode 100644 amda_plus/amdalib/getmex_v_sw.pro
 create mode 100644 amda_plus/amdalib/getncvar.pro
 create mode 100644 amda_plus/amdalib/getros_lap_sweep.pro
 create mode 100644 amda_plus/amdalib/getros_mip_surv.pro
 create mode 100644 amda_plus/amdalib/getros_mip_survphase.pro
 create mode 100644 amda_plus/amdalib/gettxtvar.pro
 create mode 100644 amda_plus/amdalib/ica_spec_com.pro
 create mode 100644 amda_plus/amdalib/icacntplot.pro
 create mode 100644 amda_plus/amdalib/icaspecplot.pro
 create mode 100644 amda_plus/amdalib/ima_h_spec_com.pro
 create mode 100644 amda_plus/amdalib/ima_o_spec_com.pro
 create mode 100644 amda_plus/amdalib/imacntplot.pro
 create mode 100644 amda_plus/amdalib/imaspecplot.pro
 create mode 100644 amda_plus/amdalib/legend_multi.pro
 create mode 100644 amda_plus/amdalib/lep_g_0_init.pro
 create mode 100644 amda_plus/amdalib/lep_g_1_3_init.pro
 create mode 100644 amda_plus/amdalib/lep_g_1_init.pro
 create mode 100644 amda_plus/amdalib/lep_g_2_init.pro
 create mode 100644 amda_plus/amdalib/lep_g_3_init.pro
 create mode 100644 amda_plus/amdalib/lep_g_4_init.pro
 create mode 100644 amda_plus/amdalib/lep_g_5_6_init.pro
 create mode 100644 amda_plus/amdalib/lep_g_5_init.pro
 create mode 100644 amda_plus/amdalib/lep_g_6_init.pro
 create mode 100644 amda_plus/amdalib/median_.pro
 create mode 100644 amda_plus/amdalib/mercorbaxis.pro
 create mode 100644 amda_plus/amdalib/mex_els_spec_init.pro
 create mode 100644 amda_plus/amdalib/mex_h_dens_.pro
 create mode 100644 amda_plus/amdalib/mex_h_dens_init.pro
 create mode 100644 amda_plus/amdalib/mex_h_dens_restr_.pro
 create mode 100644 amda_plus/amdalib/mex_h_dens_restr_init.pro
 create mode 100644 amda_plus/amdalib/mex_h_qual_.pro
 create mode 100644 amda_plus/amdalib/mex_h_qual_init.pro
 create mode 100644 amda_plus/amdalib/mex_h_qual_restr_.pro
 create mode 100644 amda_plus/amdalib/mex_h_qual_restr_init.pro
 create mode 100644 amda_plus/amdalib/mex_h_spec_.pro
 create mode 100644 amda_plus/amdalib/mex_h_spec_init.pro
 create mode 100644 amda_plus/amdalib/mex_h_spec_restr_.pro
 create mode 100644 amda_plus/amdalib/mex_h_spec_restr_init.pro
 create mode 100644 amda_plus/amdalib/mex_h_temp_init.pro
 create mode 100644 amda_plus/amdalib/mex_h_temp_restr_.pro
 create mode 100644 amda_plus/amdalib/mex_h_temp_restr_init.pro
 create mode 100644 amda_plus/amdalib/mex_h_vel_.pro
 create mode 100644 amda_plus/amdalib/mex_h_vel_0_init.pro
 create mode 100644 amda_plus/amdalib/mex_h_vel_1_init.pro
 create mode 100644 amda_plus/amdalib/mex_h_vel_2_init.pro
 create mode 100644 amda_plus/amdalib/mex_h_vel_init.pro
 create mode 100644 amda_plus/amdalib/mex_h_vel_restr_.pro
 create mode 100644 amda_plus/amdalib/mex_h_vel_restr_0_init.pro
 create mode 100644 amda_plus/amdalib/mex_h_vel_restr_1_init.pro
 create mode 100644 amda_plus/amdalib/mex_h_vel_restr_2_init.pro
 create mode 100644 amda_plus/amdalib/mex_h_vel_restr_init.pro
 create mode 100644 amda_plus/amdalib/mex_n_sw_com.pro
 create mode 100644 amda_plus/amdalib/mex_n_sw_init.pro
 create mode 100644 amda_plus/amdalib/mex_o_dens_.pro
 create mode 100644 amda_plus/amdalib/mex_o_dens_init.pro
 create mode 100644 amda_plus/amdalib/mex_o_dens_restr_.pro
 create mode 100644 amda_plus/amdalib/mex_o_dens_restr_init.pro
 create mode 100644 amda_plus/amdalib/mex_o_qual_.pro
 create mode 100644 amda_plus/amdalib/mex_o_qual_init.pro
 create mode 100644 amda_plus/amdalib/mex_o_qual_restr_.pro
 create mode 100644 amda_plus/amdalib/mex_o_qual_restr_init.pro
 create mode 100644 amda_plus/amdalib/mex_o_spec_.pro
 create mode 100644 amda_plus/amdalib/mex_o_spec_init.pro
 create mode 100644 amda_plus/amdalib/mex_o_spec_restr_.pro
 create mode 100644 amda_plus/amdalib/mex_o_spec_restr_init.pro
 create mode 100644 amda_plus/amdalib/mex_o_temp_.pro
 create mode 100644 amda_plus/amdalib/mex_o_temp_init.pro
 create mode 100644 amda_plus/amdalib/mex_o_temp_restr_.pro
 create mode 100644 amda_plus/amdalib/mex_o_temp_restr_init.pro
 create mode 100644 amda_plus/amdalib/mex_o_vel_.pro
 create mode 100644 amda_plus/amdalib/mex_o_vel_0_init.pro
 create mode 100644 amda_plus/amdalib/mex_o_vel_1_init.pro
 create mode 100644 amda_plus/amdalib/mex_o_vel_2_init.pro
 create mode 100644 amda_plus/amdalib/mex_o_vel_init.pro
 create mode 100644 amda_plus/amdalib/mex_o_vel_restr_.pro
 create mode 100644 amda_plus/amdalib/mex_o_vel_restr_0_init.pro
 create mode 100644 amda_plus/amdalib/mex_o_vel_restr_1_init.pro
 create mode 100644 amda_plus/amdalib/mex_o_vel_restr_init.pro
 create mode 100644 amda_plus/amdalib/mex_scan_.pro
 create mode 100644 amda_plus/amdalib/mex_scan_init.pro
 create mode 100644 amda_plus/amdalib/mex_scan_restr_.pro
 create mode 100644 amda_plus/amdalib/mex_scan_restr_init.pro
 create mode 100644 amda_plus/amdalib/mex_v_sw_com.pro
 create mode 100644 amda_plus/amdalib/mex_v_sw_init.pro
 create mode 100644 amda_plus/amdalib/mode_peir_com.pro
 create mode 100644 amda_plus/amdalib/morsch.pro
 create mode 100644 amda_plus/amdalib/multi_com.pro
 create mode 100644 amda_plus/amdalib/multi_init.pro
 create mode 100644 amda_plus/amdalib/orb_plot.pro
 create mode 100644 amda_plus/amdalib/plot_multi.pro
 create mode 100644 amda_plus/amdalib/plot_scatter.pro
 create mode 100644 amda_plus/amdalib/plot_whi_ne.pro
 create mode 100644 amda_plus/amdalib/plot_whi_ne_new.pro
 create mode 100644 amda_plus/amdalib/plotimasw.pro
 create mode 100644 amda_plus/amdalib/plotmodereduced.pro
 create mode 100644 amda_plus/amdalib/plotscal_new.pro
 create mode 100644 amda_plus/amdalib/plotspecgen.pro
 create mode 100644 amda_plus/amdalib/plotspeclap.pro
 create mode 100644 amda_plus/amdalib/plotspecmip.pro
 create mode 100644 amda_plus/amdalib/plotspecthemisel.pro
 create mode 100644 amda_plus/amdalib/plotten_comp_new.pro
 create mode 100644 amda_plus/amdalib/plotvec.pro
 create mode 100644 amda_plus/amdalib/plotvec_.pro
 create mode 100644 amda_plus/amdalib/plotvec_comp_.pro
 create mode 100644 amda_plus/amdalib/plotvec_comp_new.pro
 create mode 100644 amda_plus/amdalib/plotveccain.pro
 create mode 100644 amda_plus/amdalib/plotveccompcain.pro
 create mode 100644 amda_plus/amdalib/plotwsdspec.pro
 create mode 100644 amda_plus/amdalib/print_com.pro
 create mode 100644 amda_plus/amdalib/ros_ica_en_init.pro
 create mode 100644 amda_plus/amdalib/ros_lap1_isweep_init.pro
 create mode 100644 amda_plus/amdalib/ros_lap2_isweep_init.pro
 create mode 100644 amda_plus/amdalib/ros_lap_sweep_com.pro
 create mode 100644 amda_plus/amdalib/ros_mip_surv_com.pro
 create mode 100644 amda_plus/amdalib/ros_mip_surv_init.pro
 create mode 100644 amda_plus/amdalib/ros_mip_survphase_com.pro
 create mode 100644 amda_plus/amdalib/ros_mip_survphase_init.pro
 create mode 100644 amda_plus/amdalib/scatter_com.pro
 create mode 100644 amda_plus/amdalib/scatter_init.pro
 create mode 100644 amda_plus/amdalib/search_com.pro
 create mode 100644 amda_plus/amdalib/shiftn_.pro
 create mode 100644 amda_plus/amdalib/shiftt_.pro
 create mode 100644 amda_plus/amdalib/skr_e_init.pro
 create mode 100644 amda_plus/amdalib/skr_lh_e_0_init.pro
 create mode 100644 amda_plus/amdalib/skr_lh_e_1_init.pro
 create mode 100644 amda_plus/amdalib/skr_lh_init.pro
 create mode 100644 amda_plus/amdalib/skr_rh_e_0_init.pro
 create mode 100644 amda_plus/amdalib/skr_rh_e_1_init.pro
 create mode 100644 amda_plus/amdalib/skr_rh_init.pro
 create mode 100644 amda_plus/amdalib/skr_v_init.pro
 create mode 100644 amda_plus/amdalib/spec3d_comp_plot.pro
 create mode 100644 amda_plus/amdalib/spec_comp_plot.pro
 create mode 100644 amda_plus/amdalib/src/mars/FSU_mars90
 create mode 100644 amda_plus/amdalib/src/mars/GetTime.c
 create mode 100755 amda_plus/amdalib/src/mars/Makefile
 create mode 100755 amda_plus/amdalib/src/mars/Makefile.apus
 create mode 100755 amda_plus/amdalib/src/mars/Makefile.manunja
 create mode 100644 amda_plus/amdalib/src/mars/V_ext_day.txt
 create mode 100644 amda_plus/amdalib/src/mars/V_ext_night.txt
 create mode 100644 amda_plus/amdalib/src/mars/V_int.txt
 create mode 100644 amda_plus/amdalib/src/mars/ac2mso.pro
 create mode 100644 amda_plus/amdalib/src/mars/g2c.h
 create mode 100644 amda_plus/amdalib/src/mars/idl_cain.c
 create mode 100644 amda_plus/amdalib/src/mars/idl_mexcom.c
 create mode 100644 amda_plus/amdalib/src/mars/idl_morsch.c
 create mode 100644 amda_plus/amdalib/src/mars/mexcom.h
 create mode 100644 amda_plus/amdalib/src/mars/mflpgms4.c
 create mode 100644 amda_plus/amdalib/src/mars/morsch.c
 create mode 100644 amda_plus/amdalib/src/mars/mso2ac.pro
 create mode 100755 amda_plus/amdalib/src/mars/mso2pc.c
 create mode 100644 amda_plus/amdalib/sta_swea_pad_init.pro
 create mode 100644 amda_plus/amdalib/stb_swea_pad_init.pro
 create mode 100644 amda_plus/amdalib/sw_monitor_.pro
 create mode 100644 amda_plus/amdalib/sw_monitor_a99_.pro
 create mode 100644 amda_plus/amdalib/sw_monitor_a99_omni_.pro
 create mode 100644 amda_plus/amdalib/sw_monitor_init.pro
 create mode 100644 amda_plus/amdalib/sw_monitor_omni_.pro
 create mode 100644 amda_plus/amdalib/swea_psd_plot.pro
 create mode 100644 amda_plus/amdalib/t96.pro
 create mode 100644 amda_plus/amdalib/t96omni.pro
 create mode 100644 amda_plus/amdalib/th_e_sp_com.pro
 create mode 100644 amda_plus/amdalib/vex_els_spec_init.pro
 create mode 100755 amda_plus/amdalib/vex_h_dens_init.pro
 create mode 100644 amda_plus/amdalib/vex_h_qual_init.pro
 create mode 100644 amda_plus/amdalib/vex_h_spec_init.pro
 create mode 100644 amda_plus/amdalib/vex_h_temp_init.pro
 create mode 100644 amda_plus/amdalib/vex_h_vel_0_init.pro
 create mode 100644 amda_plus/amdalib/vex_h_vel_1_init.pro
 create mode 100644 amda_plus/amdalib/vex_h_vel_2_init.pro
 create mode 100644 amda_plus/amdalib/vex_h_vel_init.pro
 create mode 100644 amda_plus/amdalib/vex_o_dens_init.pro
 create mode 100644 amda_plus/amdalib/vex_o_qual_init.pro
 create mode 100644 amda_plus/amdalib/vex_o_spec_init.pro
 create mode 100644 amda_plus/amdalib/vex_o_temp_init.pro
 create mode 100644 amda_plus/amdalib/vex_o_vel_0_init.pro
 create mode 100644 amda_plus/amdalib/vex_o_vel_1_init.pro
 create mode 100644 amda_plus/amdalib/vex_o_vel_2_init.pro
 create mode 100644 amda_plus/amdalib/vex_o_vel_init.pro
 create mode 100644 amda_plus/amdalib/vex_scan_init.pro
 create mode 100755 amda_plus/ddlib/DD_Graph.pro
 create mode 100644 amda_plus/predefined/getmapskp_caps_espc_electron_counts.pro
 create mode 100644 amda_plus/predefined/getmapskp_caps_ispc_ion_counts.pro
 create mode 100644 amda_plus/predefined/getmapskp_rpws_key_electric_spectral_densities.pro
 create mode 100644 amda_plus/predefined/getmapskp_rpws_key_magnetic_spectral_densities.pro
 create mode 100644 amda_plus/predefined/mapskp_caps_espc_electron_counts_com.pro
 create mode 100644 amda_plus/predefined/mapskp_caps_ispc_ion_counts_com.pro
 create mode 100644 amda_plus/predefined/mapskp_rpws_key_electric_spectral_densities_com.pro
 create mode 100644 amda_plus/predefined/mapskp_rpws_key_electric_spectral_densities_init.pro
 create mode 100644 amda_plus/predefined/mapskp_rpws_key_magnetic_spectral_densities_com.pro
 create mode 100644 amda_plus/predefined/mapskp_rpws_key_magnetic_spectral_densities_init.pro
 create mode 100644 amda_plus/pro/ba2000_.pro
 create mode 100644 amda_plus/pro/bcain_mso_.pro
 create mode 100644 amda_plus/pro/bcain_tot_.pro
 create mode 100644 amda_plus/pro/bmorsch_mso_.pro
 create mode 100644 amda_plus/pro/bmorsch_tot_.pro
 create mode 100644 amda_plus/pro/bt96_.pro
 create mode 100644 amda_plus/pro/c1_hia_pad_.pro
 create mode 100644 amda_plus/pro/c3_hia_pad_.pro
 create mode 100644 amda_plus/pro/e_mgs_omni_.pro
 create mode 100644 amda_plus/pro/hia_padflux_c1_.pro
 create mode 100644 amda_plus/pro/hia_padflux_c3_.pro
 create mode 100644 amda_plus/pro/mex_els_spec_.pro
 create mode 100644 amda_plus/pro/mex_h_spec_.pro
 create mode 100644 amda_plus/pro/sta_swea_pad_.pro
 create mode 100644 amda_plus/pro/stb_swea_pad_.pro
 create mode 100644 amda_plus/pro/vex_els_spec_.pro
 create mode 100644 amda_plus/pro/vex_h_spec_.pro
 create mode 100644 amda_plus/pro/vex_o_spec_.pro
 create mode 100755 amda_plus/templates/getlocalparam.pro
 create mode 100755 amda_plus/templates/getnewparam.pro
 create mode 100755 amda_plus/templates/getws.pro
 create mode 100644 amda_plus/templates/getwsd.pro
 create mode 100755 amda_plus/templates/localparam_.pro
 create mode 100755 amda_plus/templates/localparam_com.pro
 create mode 100644 amda_plus/templates/localparam_init.pro
 create mode 100755 amda_plus/templates/newparam_.pro
 create mode 100644 amda_plus/templates/newparam_XXX_init.pro
 create mode 100755 amda_plus/templates/newparam_com.pro
 create mode 100644 amda_plus/templates/newparam_comp_init.pro
 create mode 100755 amda_plus/templates/newparam_init.pro
 create mode 100644 amda_plus/templates/thX_YYYY_mode_Z_init.pro
 create mode 100644 amda_plus/templates/thX_YYYY_mode_init.pro
 create mode 100644 amda_plus/templates/thX_YYYY_n_.pro
 create mode 100644 amda_plus/templates/thX_YYYY_n_init.pro
 create mode 100644 amda_plus/templates/thX_YYYY_pot_init.pro
 create mode 100644 amda_plus/templates/thX_YYYY_sp_init.pro
 create mode 100644 amda_plus/templates/thX_YYYY_t_.pro
 create mode 100644 amda_plus/templates/thX_YYYY_t_Z_init.pro
 create mode 100644 amda_plus/templates/thX_YYYY_t_init.pro
 create mode 100644 amda_plus/templates/thX_YYYY_v_.pro
 create mode 100644 amda_plus/templates/thX_YYYY_v_Z_init.pro
 create mode 100644 amda_plus/templates/thX_YYYY_v_init.pro
 create mode 100644 amda_plus/templates/thX_bh_Z_init.pro
 create mode 100644 amda_plus/templates/thX_bh_init.pro
 create mode 100644 amda_plus/templates/thX_el_sp_init.pro
 create mode 100644 amda_plus/templates/ws_.pro
 create mode 100755 amda_plus/templates/ws_com.pro
 create mode 100755 amda_plus/templates/ws_init.pro
 create mode 100755 amda_plus/templates/wsd_.pro
 create mode 100755 amda_plus/templates/wsd_com.pro
 create mode 100755 amda_plus/templates/wsd_init.pro
 create mode 100644 desktop.php
 create mode 100644 favicon.ico
 create mode 100644 generic_data/Feedback/Feedback.xml
 create mode 100644 generic_data/Filters/filters_info.xml
 create mode 100644 generic_data/Filters/filters_selectLists.xml
 create mode 100755 generic_data/Functions/constants.xml
 create mode 100644 generic_data/Functions/functions.xml
 create mode 100644 generic_data/Hst/hstVOtable-jupiter.xml
 create mode 100644 generic_data/Hst/hstVOtable-saturn.xml
 create mode 100644 generic_data/Hst/hstVOtable-uranus.xml
 create mode 100644 generic_data/Param/Args/ba2000.xml
 create mode 100644 generic_data/Param/Args/bcain_mso.xml
 create mode 100644 generic_data/Param/Args/bcain_tot.xml
 create mode 100644 generic_data/Param/Args/bmorsch_mso.xml
 create mode 100644 generic_data/Param/Args/bmorsch_tot.xml
 create mode 100644 generic_data/Param/Args/bt96.xml
 create mode 100644 generic_data/Param/Args/c1_hia_pad.xml
 create mode 100644 generic_data/Param/Args/c3_hia_pad.xml
 create mode 100644 generic_data/Param/Args/e_mgs_omni.xml
 create mode 100755 generic_data/Param/Args/impex___LESIA_MAG_Jupiter_Btot.xml
 create mode 100755 generic_data/Param/Args/impex___LESIA_MAG_Jupiter_Bx_By_Bz.xml
 create mode 100755 generic_data/Param/Args/impex___LESIA_MAG_Jupiter_Bx_By_Bz_Bx.xml
 create mode 100755 generic_data/Param/Args/impex___LESIA_MAG_Jupiter_Bx_By_Bz_By.xml
 create mode 100755 generic_data/Param/Args/impex___LESIA_MAG_Jupiter_Bx_By_Bz_Bz.xml
 create mode 100644 generic_data/Param/Args/lep_g.xml
 create mode 100644 generic_data/Param/Args/mex_els_spec.xml
 create mode 100644 generic_data/Param/Args/mex_h_spec.xml
 create mode 100644 generic_data/Param/Args/mex_n_sw.xml
 create mode 100644 generic_data/Param/Args/mex_o_spec.xml
 create mode 100644 generic_data/Param/Args/mex_v_sw.xml
 create mode 100644 generic_data/Param/Args/mgs_e_flux.xml
 create mode 100644 generic_data/Param/Args/paramArguments.xml
 create mode 100644 generic_data/Param/Args/paramPlotSettings.xml
 create mode 100644 generic_data/Param/Args/ros_ica_en.xml
 create mode 100644 generic_data/Param/Args/sta_hee.xml
 create mode 100644 generic_data/Param/Args/sta_swea_pad.xml
 create mode 100644 generic_data/Param/Args/stb_hee.xml
 create mode 100644 generic_data/Param/Args/stb_swea_pad.xml
 create mode 100644 generic_data/Param/Args/tha_psef_sp.xml
 create mode 100644 generic_data/Param/Args/tha_psif_sp.xml
 create mode 100644 generic_data/Param/Args/thb_psef_sp.xml
 create mode 100644 generic_data/Param/Args/thb_psif_sp.xml
 create mode 100644 generic_data/Param/Args/thc_psef_sp.xml
 create mode 100644 generic_data/Param/Args/thc_psif_sp.xml
 create mode 100644 generic_data/Param/Args/thd_psef_sp.xml
 create mode 100644 generic_data/Param/Args/thd_psif_sp.xml
 create mode 100644 generic_data/Param/Args/the_psef_sp.xml
 create mode 100644 generic_data/Param/Args/the_psif_sp.xml
 create mode 100644 generic_data/Param/Args/vex_els_spec.xml
 create mode 100644 generic_data/Param/Args/vex_h_spec.xml
 create mode 100644 generic_data/Param/Args/vex_o_spec.xml
 create mode 100644 generic_data/Param/Args/xyz_p67_hee.xml
 create mode 100644 generic_data/Plot/DD_Request.res
 create mode 100644 generic_data/SimuTemplate/templateGUMICS.xml
 create mode 100644 generic_data/SpecialSettings/Groups.xml
 create mode 100644 generic_data/SpecialSettings/Rosetta/REQ/req_0
 create mode 100644 generic_data/SpecialSettings/Rosetta/REQ/req_1
 create mode 100644 generic_data/SpecialSettings/Rosetta/REQ/req_2
 create mode 100644 generic_data/SpecialSettings/Rosetta/WS/Filters.xml
 create mode 100644 generic_data/SpecialSettings/Rosetta/WS/Request.xml
 create mode 100644 generic_data/SpecialSettings/Rosetta/WS/State.xml
 create mode 100644 generic_data/jobs.json
 create mode 100644 generic_data/operations.json
 create mode 100644 generic_data/rank.json
 create mode 100644 generic_data/resources.json
 create mode 100644 generic_data/wsdl.location
 create mode 100644 help.html
 create mode 100644 help/ABC
 create mode 100755 help/Gumics
 create mode 100644 help/MexInv
 create mode 100644 help/RemoteDataHelp
 create mode 100644 help/RosettaHelp
 create mode 100755 help/SKR.html
 create mode 100755 help/STEREO.html
 create mode 100644 help/SampHelp
 create mode 100644 help/SampMain
 create mode 100755 help/VEXGRAZ.html
 create mode 100644 help/VexInv
 create mode 100644 help/about
 create mode 100755 help/about.html
 create mode 100644 help/advancedFeatures
 create mode 100644 help/aliases
 create mode 100644 help/autoLayout
 create mode 100644 help/autoScale
 create mode 100644 help/content.json
 create mode 100644 help/dataMiningHOWTO
 create mode 100644 help/dataminingHelp
 create mode 100755 help/downloadDataHelp
 create mode 100644 help/downloadHOWTO
 create mode 100644 help/downloadHelp
 create mode 100755 help/downloadTTHelp
 create mode 100755 help/fileMask
 create mode 100644 help/filterHOWTO
 create mode 100644 help/filters
 create mode 100644 help/functionsHelp
 create mode 100644 help/hubbleImages
 create mode 100644 help/images/RemoteData.png
 create mode 100644 help/images/SampAMDA.png
 create mode 100644 help/images/SampDisconnect.png
 create mode 100644 help/images/SampNo.png
 create mode 100644 help/images/SampSecure.png
 create mode 100644 help/images/SampSend.png
 create mode 100644 help/images/SampTaskBar.png
 create mode 100644 help/images/abc_1.png
 create mode 100644 help/images/abc_2.png
 create mode 100644 help/images/alias1.png
 create mode 100644 help/images/alias2.png
 create mode 100755 help/images/cancel.png
 create mode 100644 help/images/cursor_plus.png
 create mode 100644 help/images/datamining.png
 create mode 100644 help/images/derived.png
 create mode 100644 help/images/derived1.png
 create mode 100644 help/images/derived2.png
 create mode 100644 help/images/derived3.png
 create mode 100644 help/images/download.png
 create mode 100644 help/images/downloadTT.png
 create mode 100644 help/images/download_button.png
 create mode 100755 help/images/edit.png
 create mode 100644 help/images/filtre.png
 create mode 100755 help/images/interop.png
 create mode 100644 help/images/job.png
 create mode 100644 help/images/jobs.png
 create mode 100644 help/images/jobs_1.png
 create mode 100644 help/images/jobs_2.png
 create mode 100644 help/images/mining1.png
 create mode 100644 help/images/mining2.png
 create mode 100644 help/images/mining3.png
 create mode 100644 help/images/mining4.png
 create mode 100644 help/images/mining6.png
 create mode 100644 help/images/mining8.png
 create mode 100644 help/images/mining9.png
 create mode 100644 help/images/mydata.png
 create mode 100644 help/images/operationTab.png
 create mode 100644 help/images/operations.png
 create mode 100644 help/images/optionDownloadTT.png
 create mode 100644 help/images/parameter.png
 create mode 100644 help/images/params.png
 create mode 100644 help/images/paramtree.png
 create mode 100755 help/images/picto_amda.png
 create mode 100644 help/images/plot_1.png
 create mode 100644 help/images/plot_10.png
 create mode 100644 help/images/plot_11.png
 create mode 100644 help/images/plot_12.png
 create mode 100644 help/images/plot_13.png
 create mode 100644 help/images/plot_14.png
 create mode 100644 help/images/plot_15.png
 create mode 100644 help/images/plot_16.png
 create mode 100644 help/images/plot_17.png
 create mode 100644 help/images/plot_18.png
 create mode 100644 help/images/plot_2.png
 create mode 100644 help/images/plot_3.png
 create mode 100644 help/images/plot_4.png
 create mode 100644 help/images/plot_5.png
 create mode 100644 help/images/plot_6.png
 create mode 100644 help/images/plot_7.png
 create mode 100644 help/images/plot_8.png
 create mode 100644 help/images/plot_9.png
 create mode 100644 help/images/plot_type_1.png
 create mode 100644 help/images/plot_type_3.png
 create mode 100644 help/images/remote1.png
 create mode 100644 help/images/remote2.png
 create mode 100644 help/images/request.png
 create mode 100644 help/images/resources.png
 create mode 100644 help/images/resourcesTree.png
 create mode 100644 help/images/resourcestop.png
 create mode 100644 help/images/result.png
 create mode 100644 help/images/rosettaFilter.png
 create mode 100644 help/images/rosettaReq.png
 create mode 100644 help/images/save.png
 create mode 100644 help/images/timeTT.png
 create mode 100644 help/images/tools.png
 create mode 100644 help/images/ttOperations.png
 create mode 100644 help/images/ttOpers.png
 create mode 100644 help/images/tt_1.png
 create mode 100644 help/images/tt_filter.png
 create mode 100644 help/images/tt_operations.png
 create mode 100644 help/images/tt_tree.png
 create mode 100644 help/images/ttcols.png
 create mode 100644 help/images/ttdown.png
 create mode 100644 help/images/ttfilt.png
 create mode 100644 help/images/upload.png
 create mode 100644 help/images/uploadTT.png
 create mode 100644 help/images/uploadTT_2.png
 create mode 100644 help/images/uploadfile_1.png
 create mode 100644 help/images/uploadfile_2.png
 create mode 100644 help/images/uploadfile_3.png
 create mode 100644 help/images/uploadtt_1.png
 create mode 100644 help/images/uploadurl.png
 create mode 100644 help/interSession
 create mode 100644 help/jobsHelp
 create mode 100755 help/licenceAction.do.html
 create mode 100644 help/multiPlot
 create mode 100644 help/myDataHOWTO
 create mode 100644 help/myParameterHOWTO
 create mode 100644 help/mydataparameter
 create mode 100644 help/ncTimeFormat
 create mode 100644 help/operationsHelp
 create mode 100644 help/panelSettings
 create mode 100644 help/paramSettings
 create mode 100644 help/parameterHelp
 create mode 100644 help/parameters/A2000_help
 create mode 100644 help/parameters/AE
 create mode 100644 help/parameters/BaiTemp
 create mode 100644 help/parameters/Cain_help
 create mode 100644 help/parameters/CassiniCAPS
 create mode 100755 help/parameters/CassiniEphem
 create mode 100644 help/parameters/CassiniLEMMS
 create mode 100644 help/parameters/CassiniLp
 create mode 100644 help/parameters/CassiniMag
 create mode 100644 help/parameters/CassiniQTN
 create mode 100644 help/parameters/CassiniRPWS
 create mode 100644 help/parameters/CassiniRPWSNeproxy
 create mode 100644 help/parameters/CassiniRPWSTitan
 create mode 100644 help/parameters/CassiniRPWSUI
 create mode 100755 help/parameters/CassiniSKRPhase
 create mode 100755 help/parameters/CassiniSLS4Long
 create mode 100644 help/parameters/CassiniSkr
 create mode 100644 help/parameters/DST
 create mode 100644 help/parameters/EFWgse
 create mode 100644 help/parameters/EFWisr2
 create mode 100644 help/parameters/GTLMgfEdA
 create mode 100644 help/parameters/GTLMgfEdB
 create mode 100644 help/parameters/GiottoEphemeris
 create mode 100644 help/parameters/GiottoIms
 create mode 100644 help/parameters/GiottoJpa
 create mode 100644 help/parameters/GiottoMag
 create mode 100644 help/parameters/GiottoMission
 create mode 100755 help/parameters/GllEphem
 create mode 100755 help/parameters/GllKhurana
 create mode 100644 help/parameters/GllMag
 create mode 100644 help/parameters/GllPLS
 create mode 100644 help/parameters/GllPWS
 create mode 100644 help/parameters/IceMag
 create mode 100644 help/parameters/IceMission
 create mode 100644 help/parameters/MGSProxy
 create mode 100644 help/parameters/MIT
 create mode 100644 help/parameters/Messenger
 create mode 100644 help/parameters/MessengerEphemeris
 create mode 100644 help/parameters/MessengerFips
 create mode 100644 help/parameters/MexMarsis
 create mode 100644 help/parameters/MexVexSW
 create mode 100644 help/parameters/MgsEr
 create mode 100644 help/parameters/MgsMag
 create mode 100644 help/parameters/Morsch_help
 create mode 100755 help/parameters/ONERAPlasma
 create mode 100644 help/parameters/P10Ephem
 create mode 100644 help/parameters/P10Mag
 create mode 100644 help/parameters/P11Ephem
 create mode 100644 help/parameters/P11Mag
 create mode 100644 help/parameters/PVOEphem
 create mode 100644 help/parameters/PVOMag
 create mode 100644 help/parameters/RosettaEphemeris
 create mode 100644 help/parameters/RosettaMission
 create mode 100755 help/parameters/Stereo
 create mode 100644 help/parameters/T96_help
 create mode 100644 help/parameters/TaoModel
 create mode 100644 help/parameters/UlysseIoTorus
 create mode 100644 help/parameters/VEXMAG
 create mode 100644 help/parameters/VO2UranusCRS
 create mode 100644 help/parameters/VO2UranusLECP15m
 create mode 100644 help/parameters/VO2UranusLECPFlux
 create mode 100644 help/parameters/VO2UranusPLSEleBr
 create mode 100644 help/parameters/VO2UranusPLSEleFit
 create mode 100644 help/parameters/VO2UranusPLSIonBr
 create mode 100644 help/parameters/VO2UranusPLSIonFit
 create mode 100644 help/parameters/VO2UranusPWS48s
 create mode 100644 help/parameters/VexMex
 create mode 100755 help/parameters/Whisper
 create mode 100755 help/parameters/doc/ONERA_Jupiter_plasma_db_for_AMDA.pdf
 create mode 100755 help/parameters/doc/globalHee.png
 create mode 100644 help/parameters/doc/whisper_contrast.png
 create mode 100644 help/parameters/doc/whisper_contrast_unc.png
 create mode 100644 help/parameters/doc/whisper_unc.png
 create mode 100755 help/parameters/mSWiM
 create mode 100644 help/parametersTree
 create mode 100644 help/plotHOWTO
 create mode 100644 help/plotHelp
 create mode 100644 help/plotSettings
 create mode 100644 help/plotStart
 create mode 100644 help/plotType
 create mode 100755 help/policy.html
 create mode 100644 help/releaseNotes.1.1
 create mode 100644 help/releaseNotes.1.2
 create mode 100644 help/releaseNotes.1.3
 create mode 100644 help/releaseNotes.1.3.1
 create mode 100644 help/remoteIntro
 create mode 100644 help/resourceHelp
 create mode 100644 help/resourceTree
 create mode 100755 help/simu/Gumics
 create mode 100644 help/simu/TargetsSimu.xml
 create mode 100755 help/standardTimeFormat
 create mode 100644 help/statisticalHelp
 create mode 100644 help/timetableHOWTO
 create mode 100755 help/timetableHelp
 create mode 100644 help/timetables
 create mode 100644 help/ttOperationsHOWTO
 create mode 100755 help/ttOperationsHelp
 create mode 100644 help/ttShared
 create mode 100755 help/uploadDataHelp
 create mode 100755 help/uploadHelp
 create mode 100755 help/uploadTTHelp
 create mode 100755 help/userTimeFormat
 create mode 100755 help/variableSampling
 create mode 100644 index.html
 create mode 100644 install_notes/AMDAUPDATE
 create mode 100644 install_notes/AMDA_PLUS
 create mode 100644 install_notes/CDF_VERSION_UPDATE
 create mode 100644 install_notes/CEF
 create mode 100644 install_notes/DataBaseLog
 create mode 100644 install_notes/EPN_RESOURCES
 create mode 100644 install_notes/REMOTEPARAM
 create mode 100644 install_notes/UPLOAD_DATA
 create mode 100644 install_notes/UserWsTransfer
 create mode 100755 js/app/AmdaApp.js
 create mode 100644 js/app/app.js
 create mode 100644 js/app/controllers/AboutModule.js
 create mode 100644 js/app/controllers/AmdaModule.js
 create mode 100644 js/app/controllers/AmdaStateProvider.js
 create mode 100644 js/app/controllers/AstroImagesModule.js
 create mode 100644 js/app/controllers/DownloadModule.js
 create mode 100644 js/app/controllers/DynamicModule.js
 create mode 100644 js/app/controllers/ExplorerModule.js
 create mode 100644 js/app/controllers/FeedbackModule.js
 create mode 100644 js/app/controllers/FiltersModule.js
 create mode 100644 js/app/controllers/HelpModule.js
 create mode 100644 js/app/controllers/InteractiveModule.js
 create mode 100644 js/app/controllers/InteractivePlotMgr.js
 create mode 100644 js/app/controllers/InteropModule.js
 create mode 100644 js/app/controllers/JobsMgr.js
 create mode 100644 js/app/controllers/MyDataModule.js
 create mode 100644 js/app/controllers/ParameterModule.js
 create mode 100644 js/app/controllers/PlotModule.js
 create mode 100644 js/app/controllers/ResourcesMgrModule.js
 create mode 100644 js/app/controllers/ResultModule.js
 create mode 100644 js/app/controllers/SampModule.js
 create mode 100644 js/app/controllers/SearchModule.js
 create mode 100644 js/app/controllers/TimeTableModule.js
 create mode 100644 js/app/controllers/TimeTableOperationModule.js
 create mode 100644 js/app/controllers/UploadModule.js
 create mode 100644 js/app/help.js
 create mode 100644 js/app/models/AliasNode.js
 create mode 100644 js/app/models/AmdaNode.js
 create mode 100644 js/app/models/AmdaObject.js
 create mode 100644 js/app/models/AmdaTimeObject.js
 create mode 100644 js/app/models/ArgGroups.js
 create mode 100644 js/app/models/BkgJobNode.js
 create mode 100644 js/app/models/Constant.js
 create mode 100644 js/app/models/DerivedParamNode.js
 create mode 100644 js/app/models/Download.js
 create mode 100644 js/app/models/DownloadNode.js
 create mode 100644 js/app/models/ExecutableNode.js
 create mode 100644 js/app/models/FileObject.js
 create mode 100644 js/app/models/FileParamObject.js
 create mode 100644 js/app/models/FilterDef.js
 create mode 100644 js/app/models/FilterInfo.js
 create mode 100644 js/app/models/Function.js
 create mode 100644 js/app/models/InteractiveNode.js
 create mode 100644 js/app/models/LocalParamNode.js
 create mode 100644 js/app/models/MyDataNode.js
 create mode 100644 js/app/models/MyDataParamNode.js
 create mode 100644 js/app/models/Parameter.js
 create mode 100644 js/app/models/Plot.js
 create mode 100644 js/app/models/PlotNode.js
 create mode 100644 js/app/models/PlotObject.js
 create mode 100644 js/app/models/PlotPanel.js
 create mode 100644 js/app/models/PlotParam.js
 create mode 100644 js/app/models/RemoteParamNode.js
 create mode 100644 js/app/models/RemoteSimuParamNode.js
 create mode 100644 js/app/models/Search.js
 create mode 100644 js/app/models/SearchNode.js
 create mode 100644 js/app/models/TimeTable.js
 create mode 100644 js/app/models/TimeTableNode.js
 create mode 100644 js/app/models/sharedTimeTableNode.js
 create mode 100644 js/app/routes.js
 create mode 100644 js/app/stores/AmdaTreeReader.js
 create mode 100644 js/app/stores/ExplorerReader.js
 create mode 100644 js/app/stores/PlotReader.js
 create mode 100644 js/app/views/APISImagesUI.js
 create mode 100644 js/app/views/AliasUI.js
 create mode 100644 js/app/views/AstroImagesUI.js
 create mode 100644 js/app/views/CalculatorUI.js
 create mode 100644 js/app/views/DownloadUI.js
 create mode 100644 js/app/views/ExplorerUI.js
 create mode 100644 js/app/views/FeedbackUI.js
 create mode 100644 js/app/views/FiltersUI.js
 create mode 100644 js/app/views/HstUI.js
 create mode 100644 js/app/views/InteractiveIntervalPlugin.js
 create mode 100644 js/app/views/InteractivePlotUI.js
 create mode 100644 js/app/views/InteropImpexUI.js
 create mode 100644 js/app/views/InteropUI.js
 create mode 100644 js/app/views/IntervalUI.js
 create mode 100644 js/app/views/MyDataUI.js
 create mode 100644 js/app/views/OperationsTT.js
 create mode 100644 js/app/views/ParamEditorPlugin.js
 create mode 100755 js/app/views/ParameterUI.js
 create mode 100644 js/app/views/ParamsMgrUI.js
 create mode 100644 js/app/views/PlotTabResultUI.js
 create mode 100755 js/app/views/PlotUI.js
 create mode 100644 js/app/views/RemoteSearchPlugin.js
 create mode 100755 js/app/views/ResourcesMgrUI.js
 create mode 100644 js/app/views/ResultUI.js
 create mode 100644 js/app/views/SampToolBarUI.js
 create mode 100644 js/app/views/SearchParamEditorPlugin.js
 create mode 100755 js/app/views/SearchUI.js
 create mode 100644 js/app/views/SendToSampButtonUI.js
 create mode 100644 js/app/views/StatisticalPlug.js
 create mode 100644 js/app/views/TabPlotUI.js
 create mode 100644 js/app/views/TabResultUI.js
 create mode 100644 js/app/views/TimeSelectorUI.js
 create mode 100644 js/app/views/TimeTableOperationUI.js
 create mode 100755 js/app/views/TimeTableUI.js
 create mode 100644 js/app/views/UploadPanelUI.js
 create mode 100644 js/app/views/UploadUI.js
 create mode 100644 js/app/views/Viewport.js
 create mode 100644 js/lib/JSBuilder/bin/Dispatch.js
 create mode 100644 js/lib/JSBuilder/bin/Generator.js
 create mode 100644 js/lib/JSBuilder/bin/JSBuilder.js
 create mode 100755 js/lib/JSBuilder/jsdb
 create mode 100644 js/lib/JSBuilder/src/Build.js
 create mode 100644 js/lib/JSBuilder/src/Cli.js
 create mode 100644 js/lib/JSBuilder/src/Cmd.js
 create mode 100644 js/lib/JSBuilder/src/Ext.js
 create mode 100644 js/lib/JSBuilder/src/Filesystem.js
 create mode 100644 js/lib/JSBuilder/src/Generator.js
 create mode 100644 js/lib/JSBuilder/src/JSBuilder.js
 create mode 100644 js/lib/JSBuilder/src/Loader.js
 create mode 100644 js/lib/JSBuilder/src/Logger.js
 create mode 100644 js/lib/JSBuilder/src/Package.js
 create mode 100644 js/lib/JSBuilder/src/Parser.js
 create mode 100644 js/lib/JSBuilder/src/Parser.old.js
 create mode 100644 js/lib/JSBuilder/src/Parser/Statement.js
 create mode 100644 js/lib/JSBuilder/src/Parser/Statement/Debug.js
 create mode 100644 js/lib/JSBuilder/src/Parser/Statement/Deprecated.js
 create mode 100644 js/lib/JSBuilder/src/Parser/Statement/Else.js
 create mode 100644 js/lib/JSBuilder/src/Parser/Statement/Elseif.js
 create mode 100644 js/lib/JSBuilder/src/Parser/Statement/If.js
 create mode 100644 js/lib/JSBuilder/src/Parser/Statement/Uncomment.js
 create mode 100644 js/lib/JSBuilder/src/Platform.js
 create mode 100644 js/lib/JSBuilder/src/Project.js
 create mode 100644 js/lib/JSBuilder/src/Target.js
 create mode 100644 js/lib/JSBuilder/src/Template.js
 create mode 100644 js/lib/JSBuilder/src/XTemplate.js
 create mode 100644 js/lib/JSBuilder/src/generators/app/Application.js
 create mode 100644 js/lib/JSBuilder/src/generators/app/files/app/routes.js
 create mode 100644 js/lib/JSBuilder/src/generators/app/files/index.html
 create mode 100644 js/lib/JSBuilder/src/generators/app/files/lib/JSBuilder/bin/Dispatch.js
 create mode 100644 js/lib/JSBuilder/src/generators/app/files/lib/jasmine/MIT.LICENSE
 create mode 100644 js/lib/JSBuilder/src/generators/app/files/lib/jasmine/jasmine-html.js
 create mode 100644 js/lib/JSBuilder/src/generators/app/files/lib/jasmine/jasmine.css
 create mode 100644 js/lib/JSBuilder/src/generators/app/files/lib/jasmine/jasmine.js
 create mode 100644 js/lib/JSBuilder/src/generators/app/files/lib/sencha-jasmine/matchers/Controller.js
 create mode 100644 js/lib/JSBuilder/src/generators/app/files/lib/sencha-jasmine/matchers/Model.js
 create mode 100644 js/lib/JSBuilder/src/generators/app/files/lib/sencha-jasmine/sencha-jasmine.css
 create mode 100644 js/lib/JSBuilder/src/generators/app/files/lib/sencha-jasmine/sencha-jasmine.js
 create mode 100644 js/lib/JSBuilder/src/generators/app/files/public/resources/css/application.css
 create mode 100755 js/lib/JSBuilder/src/generators/app/files/sencha.sh
 create mode 100644 js/lib/JSBuilder/src/generators/app/files/test/unit/.htaccess
 create mode 100644 js/lib/JSBuilder/src/generators/app/files/test/unit/SpecOptions.js
 create mode 100644 js/lib/JSBuilder/src/generators/app/files/test/unit/index.html
 create mode 100644 js/lib/JSBuilder/src/generators/app/templates/Application.js
 create mode 100644 js/lib/JSBuilder/src/generators/app/templates/Viewport.js
 create mode 100644 js/lib/JSBuilder/src/generators/controller/Controller.js
 create mode 100644 js/lib/JSBuilder/src/generators/controller/templates/Controller.js
 create mode 100644 js/lib/JSBuilder/src/generators/controller/templates/ControllerSpec.js
 create mode 100644 js/lib/JSBuilder/src/generators/model/Model.js
 create mode 100644 js/lib/JSBuilder/src/generators/model/templates/Fixture.js
 create mode 100644 js/lib/JSBuilder/src/generators/model/templates/Model.js
 create mode 100644 js/lib/JSBuilder/src/generators/model/templates/ModelSpec.js
 create mode 100644 js/lib/JSBuilder/tests/builder.js
 create mode 100644 js/lib/JSBuilder/tests/parser.js
 create mode 100644 js/lib/JSBuilder/tests/parser/after1.js
 create mode 100644 js/lib/JSBuilder/tests/parser/after2.js
 create mode 100644 js/lib/JSBuilder/tests/parser/after3.js
 create mode 100644 js/lib/JSBuilder/tests/parser/after4.js
 create mode 100644 js/lib/JSBuilder/tests/parser/before1.js
 create mode 100644 js/lib/JSBuilder/tests/parser/before2.js
 create mode 100644 js/lib/JSBuilder/tests/parser/before3.js
 create mode 100644 js/lib/JSBuilder/tests/parser/before4.js
 create mode 100644 js/lib/JSBuilder/tests/run.js
 create mode 100644 js/lib/JSBuilder/ycompressor/ycompressor.jar
 create mode 100644 js/lib/SAMP/jsamp/samp.js
 create mode 100644 js/lib/compat/ext3-compat.css
 create mode 100644 js/lib/compat/ext3-compat.js
 create mode 100644 js/lib/compat/ext3-core-compat.js
 create mode 100644 js/lib/ext-override.js
 create mode 100644 js/lib/jasmine/MIT.LICENSE
 create mode 100644 js/lib/jasmine/jasmine-html.js
 create mode 100644 js/lib/jasmine/jasmine.css
 create mode 100644 js/lib/jasmine/jasmine.js
 create mode 100644 js/lib/sencha-jasmine/matchers/Controller.js
 create mode 100644 js/lib/sencha-jasmine/matchers/Model.js
 create mode 100644 js/lib/sencha-jasmine/sencha-jasmine.css
 create mode 100644 js/lib/sencha-jasmine/sencha-jasmine.js
 create mode 100644 js/lib/ux/Browser.js
 create mode 100644 js/lib/ux/ColorCombo.js
 create mode 100644 js/lib/ux/FisheyeMenu.js
 create mode 100644 js/lib/ux/SelectableTextArea.js
 create mode 100755 js/lib/ux/desktop/App.js
 create mode 100755 js/lib/ux/desktop/Desktop.js
 create mode 100644 js/lib/ux/desktop/FitAllLayout.js
 create mode 100755 js/lib/ux/desktop/Module.js
 create mode 100644 js/lib/ux/desktop/ShortcutModel.js
 create mode 100755 js/lib/ux/desktop/StartMenu.js
 create mode 100755 js/lib/ux/desktop/TaskBar.js
 create mode 100755 js/lib/ux/desktop/Video.js
 create mode 100644 js/lib/ux/desktop/Wallpaper.js
 create mode 100755 js/lib/ux/desktop/exampleModules/AccordionWindow.js
 create mode 100644 js/lib/ux/desktop/exampleModules/BogusMenuModule.js
 create mode 100644 js/lib/ux/desktop/exampleModules/BogusModule.js
 create mode 100755 js/lib/ux/desktop/exampleModules/GridWindow.js
 create mode 100755 js/lib/ux/desktop/exampleModules/Notepad.js
 create mode 100755 js/lib/ux/desktop/exampleModules/Settings.js
 create mode 100644 js/lib/ux/desktop/exampleModules/SystemStatus.js
 create mode 100755 js/lib/ux/desktop/exampleModules/TabWindow.js
 create mode 100755 js/lib/ux/desktop/exampleModules/VideoWindow.js
 create mode 100644 js/lib/ux/desktop/exampleModules/WallpaperModel.js
 create mode 100644 js/lib/ux/desktop/exampleModules/app.jsb3
 create mode 100644 js/lib/ux/grid/HeaderToolTip.js
 create mode 100644 js/resources/css/AccueilAmda.css
 create mode 100644 js/resources/css/FisheyeMenu.css
 create mode 100644 js/resources/css/amda.css
 create mode 100644 js/resources/css/application.css
 create mode 100644 js/resources/css/desktop.css
 create mode 100644 js/resources/css/login.css
 create mode 100755 js/resources/css/styles.css
 create mode 100755 js/resources/css/styles2.css
 create mode 100755 js/resources/fonts/orbitron-bold.eot
 create mode 100755 js/resources/fonts/orbitron-bold.svg
 create mode 100755 js/resources/fonts/orbitron-bold.ttf
 create mode 100755 js/resources/fonts/orbitron-bold.woff
 create mode 100755 js/resources/fonts/orbitron-light.eot
 create mode 100755 js/resources/fonts/orbitron-light.svg
 create mode 100755 js/resources/fonts/orbitron-light.ttf
 create mode 100755 js/resources/fonts/orbitron-light.woff
 create mode 100755 js/resources/fonts/orbitron-medium.eot
 create mode 100755 js/resources/fonts/orbitron-medium.svg
 create mode 100755 js/resources/fonts/orbitron-medium.ttf
 create mode 100755 js/resources/fonts/orbitron-medium.woff
 create mode 100755 js/resources/fonts/stylesheet.css
 create mode 100644 js/resources/images/10x10/circle_blue.png
 create mode 100644 js/resources/images/10x10/circle_green.png
 create mode 100644 js/resources/images/10x10/circle_grey.png
 create mode 100644 js/resources/images/10x10/circle_orange.png
 create mode 100644 js/resources/images/10x10/circle_red.png
 create mode 100644 js/resources/images/10x10/circle_yellow.png
 create mode 100644 js/resources/images/12x12/circle_blue.png
 create mode 100644 js/resources/images/12x12/circle_blue_.png
 create mode 100644 js/resources/images/12x12/circle_green.png
 create mode 100644 js/resources/images/12x12/circle_green_.png
 create mode 100644 js/resources/images/12x12/circle_grey.png
 create mode 100644 js/resources/images/12x12/circle_orange.png
 create mode 100644 js/resources/images/12x12/circle_orange_.png
 create mode 100644 js/resources/images/12x12/circle_red.png
 create mode 100644 js/resources/images/12x12/circle_yellow.png
 create mode 100644 js/resources/images/12x12/table.png
 create mode 100644 js/resources/images/14x14/circle_grey.png
 create mode 100644 js/resources/images/14x14/table.png
 create mode 100644 js/resources/images/16x16/arrow_circle_double.png
 create mode 100644 js/resources/images/16x16/button_cancel.png
 create mode 100755 js/resources/images/16x16/calculator.png
 create mode 100644 js/resources/images/16x16/catalog.png
 create mode 100644 js/resources/images/16x16/circle_blue.png
 create mode 100644 js/resources/images/16x16/circle_green.png
 create mode 100644 js/resources/images/16x16/circle_grey.png
 create mode 100644 js/resources/images/16x16/circle_orange.png
 create mode 100644 js/resources/images/16x16/circle_red.png
 create mode 100644 js/resources/images/16x16/circle_yellow.png
 create mode 100644 js/resources/images/16x16/connected.png
 create mode 100644 js/resources/images/16x16/disconnected.png
 create mode 100755 js/resources/images/16x16/download_manager.png
 create mode 100755 js/resources/images/16x16/edit.png
 create mode 100644 js/resources/images/16x16/equals.png
 create mode 100644 js/resources/images/16x16/error.png
 create mode 100644 js/resources/images/16x16/filter.png
 create mode 100644 js/resources/images/16x16/greater_than.png
 create mode 100755 js/resources/images/16x16/help.png
 create mode 100755 js/resources/images/16x16/info.png
 create mode 100755 js/resources/images/16x16/info_mini.png
 create mode 100755 js/resources/images/16x16/interop.png
 create mode 100755 js/resources/images/16x16/ivoa.png
 create mode 100644 js/resources/images/16x16/less_than.png
 create mode 100755 js/resources/images/16x16/mail.png
 create mode 100644 js/resources/images/16x16/manageRsrc.png
 create mode 100644 js/resources/images/16x16/mydata.png
 create mode 100644 js/resources/images/16x16/new.png
 create mode 100644 js/resources/images/16x16/operations.png
 create mode 100755 js/resources/images/16x16/plot.png
 create mode 100755 js/resources/images/16x16/plus_Orange.png
 create mode 100644 js/resources/images/16x16/results.png
 create mode 100755 js/resources/images/16x16/search.png
 create mode 100644 js/resources/images/16x16/table.png
 create mode 100755 js/resources/images/16x16/timeTable.png
 create mode 100644 js/resources/images/16x16/user.png
 create mode 100755 js/resources/images/16x16/view_tree.png
 create mode 100755 js/resources/images/16x16/workspaces.png
 create mode 100755 js/resources/images/16x16/wsManager.png
 create mode 100644 js/resources/images/32x32/fav_amda.png
 create mode 100644 js/resources/images/32x32/new.png
 create mode 100644 js/resources/images/64x64/catalog.png
 create mode 100644 js/resources/images/64x64/download_manager.png
 create mode 100644 js/resources/images/64x64/edit.png
 create mode 100644 js/resources/images/64x64/help.png
 create mode 100755 js/resources/images/64x64/interop.png
 create mode 100755 js/resources/images/64x64/ivoa.png
 create mode 100644 js/resources/images/64x64/mydata.png
 create mode 100644 js/resources/images/64x64/operations.png
 create mode 100644 js/resources/images/64x64/picto_amda.png
 create mode 100644 js/resources/images/64x64/plot.png
 create mode 100644 js/resources/images/64x64/search.png
 create mode 100644 js/resources/images/64x64/timeTable.png
 create mode 100644 js/resources/images/Couvercle_complet.png
 create mode 100644 js/resources/images/Logo_CDPP_off.png
 create mode 100644 js/resources/images/Logo_CDPP_over.png
 create mode 100644 js/resources/images/LogosPartenaires.png
 create mode 100644 js/resources/images/_notes/bouton_off.png.mno
 create mode 100644 js/resources/images/_notes/bouton_over.png.mno
 create mode 100644 js/resources/images/_notes/couvercle.png.mno
 create mode 100644 js/resources/images/_notes/fondvide.jpg.mno
 create mode 100644 js/resources/images/amda_samp.jpg
 create mode 100644 js/resources/images/bouton_off.png
 create mode 100644 js/resources/images/bouton_over.png
 create mode 100644 js/resources/images/ciel10.jpg
 create mode 100644 js/resources/images/desktop/accordian.gif
 create mode 100644 js/resources/images/desktop/accordionLarge.png
 create mode 100644 js/resources/images/desktop/bogus.png
 create mode 100644 js/resources/images/desktop/chart48x48.png
 create mode 100644 js/resources/images/desktop/desktop.gif
 create mode 100644 js/resources/images/desktop/desktop3.jpg
 create mode 100644 js/resources/images/desktop/gears.gif
 create mode 100644 js/resources/images/desktop/gears.png
 create mode 100644 js/resources/images/desktop/grid.png
 create mode 100644 js/resources/images/desktop/grid32x32.gif
 create mode 100644 js/resources/images/desktop/grid48x48.gif
 create mode 100644 js/resources/images/desktop/grid48x48.png
 create mode 100644 js/resources/images/desktop/gridLarge.png
 create mode 100644 js/resources/images/desktop/hatch.gif
 create mode 100644 js/resources/images/desktop/hd-bg.gif
 create mode 100644 js/resources/images/desktop/hd-tb-bg.gif
 create mode 100644 js/resources/images/desktop/icon_padlock.png
 create mode 100644 js/resources/images/desktop/icons-bg.png
 create mode 100644 js/resources/images/desktop/im32x32.gif
 create mode 100644 js/resources/images/desktop/im48x48.gif
 create mode 100644 js/resources/images/desktop/im48x48.png
 create mode 100644 js/resources/images/desktop/launcher-bg.gif
 create mode 100644 js/resources/images/desktop/launcher-btn.gif
 create mode 100644 js/resources/images/desktop/logout.gif
 create mode 100644 js/resources/images/desktop/logout.png
 create mode 100644 js/resources/images/desktop/member.gif
 create mode 100644 js/resources/images/desktop/member.png
 create mode 100644 js/resources/images/desktop/notepadLarge.png
 create mode 100644 js/resources/images/desktop/powered-by-ext-js.png
 create mode 100644 js/resources/images/desktop/s.gif
 create mode 100644 js/resources/images/desktop/statusLarge.png
 create mode 100644 js/resources/images/desktop/tabs.gif
 create mode 100644 js/resources/images/desktop/taskbar/black/item-over.gif
 create mode 100644 js/resources/images/desktop/taskbar/black/scroll-left.gif
 create mode 100644 js/resources/images/desktop/taskbar/black/scroll-right.gif
 create mode 100644 js/resources/images/desktop/taskbar/black/start-menu-left-corners.png
 create mode 100644 js/resources/images/desktop/taskbar/black/start-menu-left-right.png
 create mode 100644 js/resources/images/desktop/taskbar/black/start-menu-right-corners.png
 create mode 100644 js/resources/images/desktop/taskbar/black/start-menu-right.png
 create mode 100644 js/resources/images/desktop/taskbar/black/start-menu-top-bottom.png
 create mode 100644 js/resources/images/desktop/taskbar/black/startbutton-icon.gif
 create mode 100644 js/resources/images/desktop/taskbar/black/startbutton.gif
 create mode 100644 js/resources/images/desktop/taskbar/black/taskbar-split-h.gif
 create mode 100644 js/resources/images/desktop/taskbar/black/taskbar-start-panel-bg.gif
 create mode 100644 js/resources/images/desktop/taskbar/black/taskbutton.gif
 create mode 100644 js/resources/images/desktop/taskbar/black/taskbuttons-panel-bg.gif
 create mode 100755 js/resources/images/desktop/taskbar/fav_amda.png
 create mode 100644 js/resources/images/desktop/taskbar/sencha.gif
 create mode 100644 js/resources/images/desktop/taskbar/sencha.ico
 create mode 100644 js/resources/images/desktop/wallpapers/Blue-Sencha.jpg
 create mode 100644 js/resources/images/desktop/wallpapers/Cdpp.jpg
 create mode 100755 js/resources/images/desktop/wallpapers/Cdpp2.jpg
 create mode 100644 js/resources/images/desktop/wallpapers/Dark-Sencha.jpg
 create mode 100644 js/resources/images/desktop/wallpapers/Wood-Sencha.jpg
 create mode 100644 js/resources/images/desktop/wallpapers/blue.jpg
 create mode 100644 js/resources/images/desktop/wallpapers/desk.jpg
 create mode 100644 js/resources/images/desktop/wallpapers/desktop.jpg
 create mode 100644 js/resources/images/desktop/wallpapers/desktop2.jpg
 create mode 100644 js/resources/images/desktop/wallpapers/ext.gif
 create mode 100644 js/resources/images/desktop/wallpapers/rosetta.jpg
 create mode 100644 js/resources/images/desktop/wallpapers/rosetta2.jpg
 create mode 100644 js/resources/images/desktop/wallpapers/shiny.gif
 create mode 100644 js/resources/images/desktop/wallpapers/sky.jpg
 create mode 100644 js/resources/images/desktop/winbar-bg.gif
 create mode 100644 js/resources/images/desktop/winbar-btn.gif
 create mode 100644 js/resources/images/desktop/windows-bg.gif
 create mode 100644 js/resources/images/icons/comet.png
 create mode 100644 js/resources/images/icons/earth.png
 create mode 100644 js/resources/images/icons/fam/SILK.txt
 create mode 100644 js/resources/images/icons/fam/accept.gif
 create mode 100644 js/resources/images/icons/fam/accept.png
 create mode 100644 js/resources/images/icons/fam/add.gif
 create mode 100644 js/resources/images/icons/fam/add.png
 create mode 100644 js/resources/images/icons/fam/application_go.png
 create mode 100644 js/resources/images/icons/fam/application_view_list.png
 create mode 100644 js/resources/images/icons/fam/book.png
 create mode 100644 js/resources/images/icons/fam/cog.gif
 create mode 100644 js/resources/images/icons/fam/cog.png
 create mode 100644 js/resources/images/icons/fam/cog_edit.png
 create mode 100644 js/resources/images/icons/fam/connect.gif
 create mode 100644 js/resources/images/icons/fam/connect.png
 create mode 100644 js/resources/images/icons/fam/control_rewind.png
 create mode 100644 js/resources/images/icons/fam/cross.gif
 create mode 100644 js/resources/images/icons/fam/delete.gif
 create mode 100644 js/resources/images/icons/fam/error.gif
 create mode 100644 js/resources/images/icons/fam/error.png
 create mode 100644 js/resources/images/icons/fam/feed_add.png
 create mode 100644 js/resources/images/icons/fam/feed_delete.png
 create mode 100644 js/resources/images/icons/fam/feed_error.png
 create mode 100644 js/resources/images/icons/fam/folder_go.gif
 create mode 100644 js/resources/images/icons/fam/folder_go.png
 create mode 100644 js/resources/images/icons/fam/folder_wrench.png
 create mode 100644 js/resources/images/icons/fam/grid.png
 create mode 100644 js/resources/images/icons/fam/image_add.png
 create mode 100644 js/resources/images/icons/fam/information.png
 create mode 100644 js/resources/images/icons/fam/plugin.gif
 create mode 100644 js/resources/images/icons/fam/plugin_add.gif
 create mode 100644 js/resources/images/icons/fam/rss_go.png
 create mode 100644 js/resources/images/icons/fam/table_refresh.png
 create mode 100644 js/resources/images/icons/fam/user.gif
 create mode 100644 js/resources/images/icons/fam/user.png
 create mode 100644 js/resources/images/icons/fam/user_add.gif
 create mode 100644 js/resources/images/icons/fam/user_add.png
 create mode 100644 js/resources/images/icons/fam/user_comment.png
 create mode 100644 js/resources/images/icons/fam/user_delete.gif
 create mode 100644 js/resources/images/icons/fam/user_delete.png
 create mode 100644 js/resources/images/icons/fam/user_edit.png
 create mode 100644 js/resources/images/icons/fam/user_female.gif
 create mode 100644 js/resources/images/icons/fam/user_female.png
 create mode 100644 js/resources/images/icons/fam/user_gray.png
 create mode 100644 js/resources/images/icons/fam/user_green.gif
 create mode 100644 js/resources/images/icons/fam/user_green.png
 create mode 100644 js/resources/images/icons/fam/user_orange.png
 create mode 100644 js/resources/images/icons/fam/user_red.png
 create mode 100644 js/resources/images/icons/fam/user_suit.gif
 create mode 100644 js/resources/images/icons/fam/user_suit.png
 create mode 100644 js/resources/images/icons/jupiter.png
 create mode 100644 js/resources/images/icons/mars.png
 create mode 100644 js/resources/images/icons/mercury.png
 create mode 100644 js/resources/images/icons/moon.png
 create mode 100644 js/resources/images/icons/neptune.png
 create mode 100755 js/resources/images/icons/rosetta.png
 create mode 100644 js/resources/images/icons/saturn.png
 create mode 100644 js/resources/images/icons/space.png
 create mode 100644 js/resources/images/icons/sun.png
 create mode 100644 js/resources/images/icons/sw.png
 create mode 100644 js/resources/images/icons/uranus.png
 create mode 100644 js/resources/images/icons/venus.png
 create mode 100644 js/resources/images/less.png
 create mode 100644 js/resources/images/login/bg-panel.jpg
 create mode 100644 js/resources/images/login/install.gif
 create mode 100644 js/resources/images/login/login.gif
 create mode 100644 js/resources/images/login/logo-extjs.gif
 create mode 100644 js/resources/images/login/logo-qwikioffice.png
 create mode 100644 js/resources/images/login/screenshot.png
 create mode 100644 js/resources/images/login/send.gif
 create mode 100644 js/resources/images/more.png
 create mode 100644 js/resources/images/redLine.png
 create mode 100644 js/resources/images/right.png
 create mode 100644 js/resources/images/s.gif
 create mode 100644 js/resources/images/small_cancel.png
 create mode 100644 js/resources/images/small_cancel_centered.png
 create mode 100644 js/resources/images/trou.jpg
 create mode 100644 js/test/unit/.htaccess
 create mode 100644 js/test/unit/SpecOptions.js
 create mode 100644 js/test/unit/index.html
 create mode 100644 php/AMDA_METHODS_WSDL.php
 create mode 100644 php/AmdaUpdate.php
 create mode 100644 php/MultiRequestMgr.php
 create mode 100644 php/TTCacheDump.php
 create mode 100644 php/XML/VOTable-1.0.xsd
 create mode 100644 php/XML/VOTable-1.1.xsd
 create mode 100644 php/XML/VOTable-1.2.xsd
 create mode 100644 php/XML/base.xsl
 create mode 100644 php/XML/basesRaw2bases.xsl
 create mode 100644 php/XML/dd2WStree.xsl
 create mode 100644 php/XML/dd2tree.xsl
 create mode 100755 php/XML/xml2all.xsl
 create mode 100755 php/XML/xml2iso.xsl
 create mode 100755 php/XML/xml2vot.xsl
 create mode 100644 php/amda_version.php
 create mode 100644 php/api.php
 create mode 100644 php/arguments.php
 create mode 100644 php/classes/APISMgr.php
 create mode 100644 php/classes/AliasMgr.php
 create mode 100644 php/classes/AmdaAction.php
 create mode 100644 php/classes/AmdaClient.php
 create mode 100644 php/classes/AmdaObjectMgr.php
 create mode 100644 php/classes/AmdaStats.php
 create mode 100755 php/classes/BaseManager.php
 create mode 100644 php/classes/BestRunsMgr.php
 create mode 100644 php/classes/BuildVOTable.php
 create mode 100644 php/classes/DerivedParamMgr.php
 create mode 100644 php/classes/EPNResourcesManager.php
 create mode 100644 php/classes/FeedbackMgr.php
 create mode 100644 php/classes/FilesMgr.php
 create mode 100644 php/classes/FilterRes.php
 create mode 100644 php/classes/FilterResParam.php
 create mode 100644 php/classes/FilterResSimu.php
 create mode 100644 php/classes/FiltersMgr.php
 create mode 100644 php/classes/Guest.php
 create mode 100644 php/classes/HstMgr.php
 create mode 100644 php/classes/InfoProvider.php
 create mode 100644 php/classes/JobsMgr.php
 create mode 100644 php/classes/ParamMgr.php
 create mode 100644 php/classes/ParamsInfoMgr.php
 create mode 100644 php/classes/PlotMgr.php
 create mode 100755 php/classes/PostProcessing.php
 create mode 100644 php/classes/RequestMgr.php
 create mode 100644 php/classes/SimuArgsMgr.php
 create mode 100755 php/classes/SimuParamMgr.php
 create mode 100644 php/classes/StateMgr.php
 create mode 100644 php/classes/TimeTableCacheMgr.php
 create mode 100644 php/classes/TimeTableMgr.php
 create mode 100644 php/classes/UserDeleteObsolete.php
 create mode 100644 php/classes/UserMgr.php
 create mode 100644 php/classes/UserWsTransfer.php
 create mode 100644 php/classes/VOTableMgr.php
 create mode 100644 php/classes/WSUserMgr.php
 create mode 100644 php/classes/WebServer.php
 create mode 100644 php/classes/WsrParamMgr.php
 create mode 100644 php/config.php
 create mode 100644 php/firephp/FirePHP.class.php
 create mode 100644 php/firephp/LICENSE
 create mode 100644 php/firephp/fb.php
 create mode 100644 php/impex_config.php
 create mode 100644 php/log
 create mode 100644 php/makeMultiMission.php
 create mode 100644 php/makeOrbits.php
 create mode 100644 php/my_config.php
 create mode 100755 php/old_amda/DateClass.php
 create mode 100644 php/old_amda/ParamBuilder.php
 create mode 100755 php/old_amda/Parser.php
 create mode 100644 php/old_amda/getFileNames.php
 create mode 100644 php/old_amda/getViStart.php
 create mode 100644 php/old_amda/getViStop.php
 create mode 100644 php/old_amda/getVotVar.php
 create mode 100644 php/old_amda/moreData.php
 create mode 100644 php/old_amda/paramBuild.php
 create mode 100644 php/old_amda/param_info.pro
 create mode 100755 php/old_amda/simple_html_dom.php
 create mode 100644 php/rest/asciiURL_to_votableURL.php
 create mode 100755 php/rest/getDatasetData.php
 create mode 100644 php/rest/getObsDataTree.php
 create mode 100644 php/rest/getOrbites.php
 create mode 100644 php/rest/getParameter.php
 create mode 100644 php/rest/getParameterList.php
 create mode 100644 php/rest/getTimeTable.php
 create mode 100644 php/rest/getTimeTablesList.php
 create mode 100644 php/rest/getVOtable.php
 create mode 100644 php/rest/getVotableFromASCII.php
 create mode 100644 php/router.php
 create mode 100644 php/src/Makefile
 create mode 100644 php/src/cdfinfo.c
 create mode 100644 php/src/cdfsamplingfromdata.c
 create mode 100644 php/src/cdfstartstopfromdata.c
 create mode 100644 php/src/cdfvarinfo.c
 create mode 100644 php/src/cefinfo.c
 create mode 100644 php/src/cefsampling.c
 create mode 100644 php/src/cefstartstop.c
 create mode 100644 php/src/ceftimeinfo.c
 create mode 100644 php/src/cefvarinfo.c
 create mode 100644 php/src/getncvars.c
 create mode 100644 php/src/nctimeinfo.c
 create mode 100644 php/src/nctimestring2double.c
 create mode 100644 php/src/ncvarinfo.c
 create mode 100644 php/uploadFile.php
 create mode 100755 public/WebServices/XML/AmdaPlots.xml
 create mode 100644 public/wsdl/Methods_AMDA.wsdl
 create mode 100755 sencha.sh

diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..1c9e232
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,9 @@
+AMDA_IHM/data/
+AMDA_IHM/generic_data/EPNResources/*.xml
+AMDA_IHM/generic_data/LocalData/
+AMDA_IHM/generic_data/Param/*.xml
+AMDA_IHM/generic_data/RemoteData/
+AMDA_IHM/generic_data/Statistics/
+AMDA_IHM/generic_data/newKernelDDBase/
+AMDA_IHM/js/lib/ext
+AMDA_IHM/help/simu/simu*
diff --git a/.project b/.project
new file mode 100644
index 0000000..4ede4b4
--- /dev/null
+++ b/.project
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>AMDA-NG4</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+	</buildSpec>
+	<natures>
+	</natures>
+</projectDescription>
diff --git a/amda_plus/README b/amda_plus/README
new file mode 100644
index 0000000..784154e
--- /dev/null
+++ b/amda_plus/README
@@ -0,0 +1,12 @@
+These idl codes should be added to old AMDA installation in order AMDA-NG to work.
+
+Copy 
+
+     amdalib/* to /AMDALIB/lib
+     ddlib/*   to /DDLIB/lib
+     predefined/*  to  pro specific for amda-ng don't copy; keep as it is 
+     pro/* to   pro specific for amda-ng don't copy; keep as it is 
+     templates/* - pro specific for amda-ng don't copy; keep as it is
+
+Normally there should be no interference between old AMDA and AMDA-NG (TO CHECK)
+So AMDA installation could be used with old AMDA as well as with AMDA-NG
\ No newline at end of file
diff --git a/amda_plus/amdalib/a2000.pro b/amda_plus/amdalib/a2000.pro
new file mode 100644
index 0000000..ac7d573
--- /dev/null
+++ b/amda_plus/amdalib/a2000.pro
@@ -0,0 +1,64 @@
+pro a2000, Time, Orbit
+
+  StepDefaut = 3600.0
+  FillValue = -1.e31
+  Number = N_elements(Time)
+  Bgsm = fltarr(3)
+  xyz = fltarr(3)
+  
+
+  num31 = where(Orbit[0,*] ne FillValue, Index31)
+  if (Index31 le 0) then return
+
+  Time = Time[num31]
+  Orbit = Orbit[*,num31]
+
+ ; StepAve = (Time[Number-1] - Time[0])/20.0 > StepDefaut
+  StepAve = StepDefaut;
+  TimeIntDst = StepAve > 3600.;
+  TimeIntDstS = call_external(!DDLIB + 'DD_idl.so','GetTime', double(TimeIntDst), /S_Value)
+  StepAveS = call_external(!DDLIB + 'DD_idl.so','GetTime', double(StepAve), /S_Value)
+      
+      
+      bm = fltarr(3);
+      bdd = fltarr(3,7);
+      UT = lonarr(7);
+ 
+   p = [2., 1., 1., 1., 1., 1., 1.];
+   result = call_external(!PROJLIB + 'a2012fa_idl.so', 'pstatus', p);
+   for TimeCurr = Time[0], Time[Number-1], double(StepAve) do begin
+
+        numOrb = where((Time - TimeCurr LT StepAve) AND (Time - TimeCurr GE 0.0), IndexOrb)
+        if (IndexOrb LE 0) then continue
+        
+        params = sw_monitor_a99_(TimeCurr,StepAve,Orbit[*,numOrb[IndexOrb/2]])
+        STime = call_external(!DDLIB + 'DD_idl.so','GetTime', double(TimeCurr+StepAve/2.0), /S_Value)
+       
+         AE = ae_(STime, StepAveS, TimeDst, RetSize, Sampling, /CLOSE);
+         AL = RetSize GT 0 ? mean(AE[1,*]) : -100.0;
+  
+        Dst = dst_(STime, TimeIntDstS, TimeDst, RetSize, Sampling, /CLOSE);
+        Dst_av = RetSize GT 0 ? mean(Dst) : -10.;
+        ro = params[0];
+        v = params[1];
+        bimf =params[2:4];
+
+        for i = 0, IndexOrb - 1 do begin 
+          res = call_external(!DDLIB + 'DD_idl.so','GetGavTime', UT, double(TimeCurr+StepAve/2.0));
+         
+	  x = Orbit[*,numOrb[i]];      
+  
+          result = call_external(!PROJLIB + 'a2012fa_idl.so', 'model',  $
+                                                UT[0], UT[1], UT[2], float(UT[3]),$
+						ro, v, bimf, Dst_av, AL, $
+					        x, bm, bdd);
+          if bm[0] eq 0.0 then bm(*) = FillValue ;  
+          Orbit[*,numOrb[i]] = bm;        
+        endfor         
+  endfor
+
+ return
+end
+
+  
+  
\ No newline at end of file
diff --git a/amda_plus/amdalib/a2000omni.pro b/amda_plus/amdalib/a2000omni.pro
new file mode 100644
index 0000000..ab3c23b
--- /dev/null
+++ b/amda_plus/amdalib/a2000omni.pro
@@ -0,0 +1,64 @@
+pro a2000omni, Time, Orbit
+
+  StepDefaut = 3600.0
+  FillValue = -1.e31
+  Number = N_elements(Time)
+  Bgsm = fltarr(3)
+  xyz = fltarr(3)
+  
+
+  num31 = where(Orbit[0,*] ne FillValue, Index31)
+  if (Index31 le 0) then return
+
+  Time = Time[num31]
+  Orbit = Orbit[*,num31]
+
+ ; StepAve = (Time[Number-1] - Time[0])/20.0 > StepDefaut
+  StepAve = StepDefaut;
+  TimeIntDst = StepAve > 3600.;
+  TimeIntDstS = call_external(!DDLIB + 'DD_idl.so','GetTime', double(TimeIntDst), /S_Value)
+  StepAveS = call_external(!DDLIB + 'DD_idl.so','GetTime', double(StepAve), /S_Value)
+      
+      
+      bm = fltarr(3);
+      bdd = fltarr(3,7);
+      UT = lonarr(7);
+ 
+   p = [2., 1., 1., 1., 1., 1., 1.];
+   result = call_external(!PROJLIB + 'a2012fa_idl.so', 'pstatus', p);
+   for TimeCurr = Time[0], Time[Number-1], double(StepAve) do begin
+
+        numOrb = where((Time - TimeCurr LT StepAve) AND (Time - TimeCurr GE 0.0), IndexOrb)
+        if (IndexOrb LE 0) then continue
+        
+        params = sw_monitor_a99_omni_(TimeCurr,StepAve,Orbit[*,numOrb[IndexOrb/2]])
+        STime = call_external(!DDLIB + 'DD_idl.so','GetTime', double(TimeCurr+StepAve/2.0), /S_Value)
+       
+         AE = ae_(STime, StepAveS, TimeDst, RetSize, Sampling, /CLOSE);
+         AL = RetSize GT 0 ? mean(AE[1,*]) : -100.0;
+  
+        Dst = dst_(STime, TimeIntDstS, TimeDst, RetSize, Sampling, /CLOSE);
+        Dst_av = RetSize GT 0 ? mean(Dst) : -10.;
+        ro = params[0];
+        v = params[1];
+        bimf =params[2:4];
+
+        for i = 0, IndexOrb - 1 do begin 
+          res = call_external(!DDLIB + 'DD_idl.so','GetGavTime', UT, double(TimeCurr+StepAve/2.0));
+         
+	  x = Orbit[*,numOrb[i]];      
+  
+          result = call_external(!PROJLIB + 'a2012fa_idl.so', 'model',  $
+                                                UT[0], UT[1], UT[2], float(UT[3]),$
+						ro, v, bimf, Dst_av, AL, $
+					        x, bm, bdd);
+          if bm[0] eq 0.0 then bm(*) = FillValue ;  
+          Orbit[*,numOrb[i]] = bm;        
+        endfor         
+  endfor
+
+ return
+end
+
+  
+  
\ No newline at end of file
diff --git a/amda_plus/amdalib/average.pro b/amda_plus/amdalib/average.pro
new file mode 100644
index 0000000..ead8957
--- /dev/null
+++ b/amda_plus/amdalib/average.pro
@@ -0,0 +1,149 @@
+; $Id: average.pro,v 1.6 2012/07/06 13:24:01 budnik Exp $
+;====================================================================
+;--------------- Averaging for 1D & 2D arrays (second dim -> Time) 
+;====================================================================
+
+pro AVERAGE, AverStructure, T, Val 
+common GraphC, Graph, GraphN, Item
+
+ FillValue = Graph[GraphN].FillValue[Item]
+ Yinfo = SIZE(Val) 
+ if (Yinfo[0] GT 2) then RETURN
+ RetSize = Yinfo[0] eq 2 ? Yinfo[2] : Yinfo[1]
+
+ if (Yinfo[0] eq 2) then index =  Yinfo[1] eq 1 ? 0 : Yinfo[1]/2 ;  
+ 
+ specialCase = 0; 
+ 
+ if (Graph[GraphN].Step GT AverStructure.Sampling*2.0) then begin
+           if (finite(FillValue)) then begin
+
+              if (Yinfo[0] eq 1) then num31 = where(Val ne FillValue, Index31) $
+              else begin
+                 num31 = where(Val[index,0:RetSize-1] ne FillValue, Index31);
+ ; artificial truc for different spectra definitions....
+                if (index gt 1) then begin                 
+                  num31_1 = where(Val[1,0:RetSize-1] ne FillValue, Index31_1);
+                  if (Index31_1 ne Index31) then begin                       
+                        specialCase = 1;                                                                     
+                  endif else begin
+                        if (Index31 le 0) then begin
+                            numTest =  where(Val[*,0:RetSize-1] ne FillValue, IndexTest);
+                            if (IndexTest gt Yinfo[1]) then specialCase = 1;  
+                        endif
+                  endelse
+              endif
+              endelse 
+           endif else begin
+             if (Yinfo[0] eq 1) then num31 = where(finite(Val), Index31) $
+             else begin
+                num31 = where(finite(Val[index,0:RetSize-1]), Index31); 
+; artificial truc for different spectra definitions....
+                if (index gt 1) then begin                 
+                  num31_1 = where(finite(Val[1,0:RetSize-1]), Index31_1);
+                  if (Index31_1 ne Index31) then begin                       
+                        specialCase = 1;                                                                     
+                  endif else begin
+                        if (Index31 le 0) then begin
+                            numTest =  where(finite(Val[*,0:RetSize-1]), IndexTest);
+                            if (IndexTest gt Yinfo[1]) then specialCase = 1;  
+                        endif
+                  endelse
+              endif
+            endelse    
+        endelse
+   
+         if (specialCase) then Index31 = n_elements(T);
+ 
+         if (Index31 le 0) then begin
+               AverStructure.Nres = -1L
+             return
+         endif
+  
+       if (specialCase) then begin          
+            Val = REFORM(Val[*,*],Yinfo[1]*Index31)
+       endif else begin 
+            T = T[num31]
+            Val = Yinfo[0] eq 2 ? REFORM(Val[*,num31],Yinfo[1]*Index31) : Val[num31];
+       endelse
+   
+      MF =  AverStructure.Nres eq -1L ? Val : [*(AverStructure.LastVal),VAL]
+      Time = AverStructure.Nres eq -1L ? T : [*(AverStructure.LastTime),T]
+      N_Time = N_elements(Time)
+      NAve = long(((Time[N_Time-1] < Graph[GraphN].TotalTime) - Time[0]) / Graph[GraphN].Step + 1)> 1L
+     
+      if Yinfo[0] eq 2 then MF = REFORM(MF, Yinfo[1], N_Time) 
+
+       numStart = where(abs((*AverStructure.Time)-Time[0]) LE Graph[GraphN].Step/2.0, IndexStart)
+       if (IndexStart le 0) then begin
+            AverStructure.Nres = -1L
+            return
+       endif
+       NStart = numStart[0]
+             
+      for i = NStart, NStart+NAve-1L  do begin   
+         num = where(abs((*AverStructure.Time)[i]-Time) LE Graph[GraphN].Step/2.0, Index)
+         if (Index LE 0) AND (Graph[GraphN].Sampling[Item] LT Graph[GraphN].MaxSampling[Item]) then $
+              num = where(abs((*AverStructure.Time)[i]-Time) LE Graph[GraphN].MaxSampling[Item]/2.0, Index)
+         if (Index GT 0) then begin
+          if (Yinfo[0] eq 2) then begin
+             if (specialCase) then begin
+                 for k = 0, Yinfo[1]-1 do begin
+                    if (Index GT 1) then begin
+                        temp = 0.0;
+                        numK = 0;
+                        for kk = 0, Index-1 do begin
+                           if  (finite(FillValue)) then begin
+                                if (finite(MF[k,num[kk]])) then begin
+                                    temp += MF[k,num[kk]];
+                                    numK++;
+                                endif
+                          endif else begin
+                                if (MF[k,num[kk]] ne FillValue ) then begin
+                                    temp += MF[k,num[kk]];
+                                    numK++;
+                                endif
+                          endelse
+                         endfor                          
+                        (*AverStructure.Val)[i*Yinfo[1]+k]  = temp/ numK; 
+                    endif else (*AverStructure.Val)[i*Yinfo[1]+k] = MF[k,num[0]]
+                 endfor
+             endif else (*AverStructure.Val)[i*Yinfo[1]:i*Yinfo[1]+Yinfo[1]-1] = Index GT 1 ? total(MF[*,num],2)/Index : MF[*,num[0]] 
+          endif else (*AverStructure.Val)[i] = Index GT 1 ? total(MF[num])/Index : MF[num[0]]
+         endif  
+      endfor  
+      AverStructure.Nres = Index GT 0 ? (num[Index-1]+1) < (N_Time-1) : -1L  
+      
+      if (Graph[GraphN].CurrentSec LT (Graph[GraphN].Sections-1)) AND (AverStructure.Nres ne -1) then begin
+            *(AverStructure.LastTime) = Time[AverStructure.NRes:*]
+            *(AverStructure.LastVal) = Yinfo[0] eq 2 ? REFORM(MF[*,AverStructure.NRes:N_Time-1], Yinfo[1]*(N_Time-AverStructure.Nres)) :   MF[AverStructure.NRes:N_Time-1] 
+      endif
+      
+      if (Graph[GraphN].CurrentSec eq (Graph[GraphN].Sections-1)) then begin
+        if ptr_valid(AverStructure.LastTime) then ptr_free, AverStructure.LastTime
+        if ptr_valid(AverStructure.LastVal) then ptr_free, AverStructure.LastVal
+      endif
+      
+   endif else begin ;if (Step GT Sampling*2.0)
+
+     records = N_elements(*AverStructure.Time);
+ 
+     if Yinfo[0] eq 2 then Val = reform(Val, Yinfo[1]*RetSize);
+     if (records eq 0) then begin
+         (*AverStructure.Time) = T; : [*AverStructure.Time,T]
+         (*AverStructure.Val) =  Val;
+     endif else begin 
+         numBefore = where((*AverStructure.Time)[records-1] GT T, IndexBefore);
+         if (IndexBefore eq 0) then begin
+                (*AverStructure.Time) =  [*AverStructure.Time,T];
+                (*AverStructure.Val) =   [*AverStructure.Val,Val];
+         endif else begin
+                (*AverStructure.Time) =  [*AverStructure.Time,T[IndexBefore-1:RetSize-1]];
+                if (Yinfo[0] eq 1) then  (*AverStructure.Val) =  [*AverStructure.Val,Val[IndexBefore-1:RetSize-1]]
+                if (Yinfo[0] eq 2) then  (*AverStructure.Val) =  [*AverStructure.Val,Val[Yinfo[1]*(IndexBefore-1):Yinfo[1]*RetSize-1]]  
+         endelse
+     endelse
+    endelse  
+
+return
+end
\ No newline at end of file
diff --git a/amda_plus/amdalib/averagelap.pro b/amda_plus/amdalib/averagelap.pro
new file mode 100644
index 0000000..ee0c395
--- /dev/null
+++ b/amda_plus/amdalib/averagelap.pro
@@ -0,0 +1,88 @@
+; $Id:   $
+;====================================================================
+;---------- Special LAP averaging  2D array
+;====================================================================
+
+pro AVERAGELAP, AverStructure, T, Val 
+common GraphC, Graph, GraphN, Item
+ 
+ Yinfo = SIZE(Val)  
+ RetSize =  Yinfo[2];
+ Val = reform(Val, Yinfo[1]*RetSize);
+
+ if (Graph[GraphN].Step GT AverStructure.Sampling*2.0) then begin
+  
+      MF =  AverStructure.Nres eq -1L ? Val : [*(AverStructure.LastVal),VAL]
+      Time = AverStructure.Nres eq -1L ? T : [*(AverStructure.LastTime),T]
+      N_Time = N_elements(Time)
+      NAve = long(((Time[N_Time-1] < Graph[GraphN].TotalTime) - Time[0]) / Graph[GraphN].Step + 1)> 1L
+ 
+      MF = REFORM(MF, Yinfo[1], N_Time) 
+
+       numStart = where(abs((*AverStructure.Time)-Time[0]) LE Graph[GraphN].Step/2.0, IndexStart)
+       if (IndexStart le 0) then begin
+            AverStructure.Nres = -1L
+            return
+       endif
+
+      NStart = numStart[0]
+             
+      for i = NStart, NStart+NAve-1L  do begin 
+  
+         num = where(abs((*AverStructure.Time)[i]-Time) LE Graph[GraphN].Step/2.0, Index)
+         if (Index LE 0) AND (Graph[GraphN].Sampling[Item] LT Graph[GraphN].MaxSampling[Item]) then $
+              num = where(abs((*AverStructure.Time)[i]-Time) LE Graph[GraphN].MaxSampling[Item]/2.0, Index)
+
+         if (Index GT 0) then begin         
+                 for k = 0, Yinfo[1]-2 do begin
+                    if (Index GT 1) then begin
+                        temp = 0.0;
+                        numK = 0;
+                        for kk = 0, Index-1 do begin                         
+                                if (finite(MF[k,num[kk]])) then begin
+                                    temp += MF[k,num[kk]];
+                                    numK++;
+                                endif  ; if (finite                      
+                         endfor   ; for kk                        
+                        (*AverStructure.Val)[i*Yinfo[1]+k]  = temp/ numK; 
+                    endif else (*AverStructure.Val)[i*Yinfo[1]+k] = MF[k,num[0]] ; if (Index GT 1)
+               endfor ;   for k = 0,  
+                (*AverStructure.Val)[i*Yinfo[1]+Yinfo[1]-1] = MF[Yinfo[1]-1,num[0]]               
+         endif ; if (Index GT 0)
+  
+      endfor  ; for i = NStart
+
+      AverStructure.Nres = Index GT 0 ? (num[Index-1]+1) < (N_Time-1) : -1L  
+      
+      if (Graph[GraphN].CurrentSec LT (Graph[GraphN].Sections-1)) AND (AverStructure.Nres ne -1) then begin
+ 
+            *(AverStructure.LastTime) = Time[AverStructure.NRes:*]
+            *(AverStructure.LastVal) = REFORM(MF[*,AverStructure.NRes:N_Time-1], Yinfo[1]*(N_Time-AverStructure.Nres)) 
+      endif
+      
+      if (Graph[GraphN].CurrentSec eq (Graph[GraphN].Sections-1)) then begin
+        if ptr_valid(AverStructure.LastTime) then ptr_free, AverStructure.LastTime
+        if ptr_valid(AverStructure.LastVal) then ptr_free, AverStructure.LastVal
+      endif
+      
+   endif else begin ;if (Step GT Sampling*2.0)
+
+     records = N_elements(*AverStructure.Time);
+     
+     if (records eq 0) then begin
+         (*AverStructure.Time) = T; : [*AverStructure.Time,T]
+         (*AverStructure.Val) =  Val;
+     endif else begin 
+         numBefore = where((*AverStructure.Time)[records-1] GT T, IndexBefore);
+         if (IndexBefore eq 0) then begin
+                (*AverStructure.Time) =  [*AverStructure.Time,T];
+                (*AverStructure.Val) =   [*AverStructure.Val,Val];
+         endif else begin
+                (*AverStructure.Time) =  [*AverStructure.Time,T[IndexBefore-1:RetSize-1]];              
+                (*AverStructure.Val) =  [*AverStructure.Val,Val[Yinfo[1]*(IndexBefore-1):Yinfo[1]*RetSize-1]]  
+         endelse
+     endelse
+    endelse  
+
+return
+end
diff --git a/amda_plus/amdalib/averagemip.pro b/amda_plus/amdalib/averagemip.pro
new file mode 100644
index 0000000..4d6c1d7
--- /dev/null
+++ b/amda_plus/amdalib/averagemip.pro
@@ -0,0 +1,90 @@
+; $Id:   $
+;====================================================================
+;---------- Special MIP averaging  2D array
+;====================================================================
+
+pro AVERAGEMIP, AverStructure, T, Val 
+common GraphC, Graph, GraphN, Item
+
+ Yinfo = SIZE(Val)  
+
+ if (Yinfo[0] eq 2) then begin
+      Val = reform(Val, Yinfo[1]*Yinfo[2]);
+      RetSize = Yinfo[2];
+endif else RetSize = Yinfo[1];
+ 
+ if (Graph[GraphN].Step GT AverStructure.Sampling*2.0) then begin 
+      MF =  AverStructure.Nres eq -1L ? Val : [*(AverStructure.LastVal),VAL]
+      Time = AverStructure.Nres eq -1L ? T : [*(AverStructure.LastTime),T]
+      N_Time = N_elements(Time)
+      NAve = long(((Time[N_Time-1] < Graph[GraphN].TotalTime) - Time[0]) / Graph[GraphN].Step + 1)> 1L   
+   
+      MF = REFORM(MF, Yinfo[1], N_Time) 
+
+       numStart = where(abs((*AverStructure.Time)-Time[0]) LE Graph[GraphN].Step/2.0, IndexStart)
+       if (IndexStart le 0) then begin
+            AverStructure.Nres = -1L
+            return
+       endif
+
+      NStart = numStart[0]
+             
+      for i = NStart, NStart+NAve-1L  do begin 
+  
+         num = where(abs((*AverStructure.Time)[i]-Time) LE Graph[GraphN].Step/2.0, Index)
+         if (Index LE 0) AND (Graph[GraphN].Sampling[Item] LT Graph[GraphN].MaxSampling[Item]) then $
+              num = where(abs((*AverStructure.Time)[i]-Time) LE Graph[GraphN].MaxSampling[Item]/2.0, Index)
+
+         if (Index GT 0) then begin         
+                 for k = 0, Yinfo[1]-1 do begin
+                    if (Index GT 1) then begin
+                        temp = 0.0;
+                        numK = 0;
+                        for kk = 0, Index-1 do begin                         
+                            ;    if (finite(MF[k,num[kk]])) then begin
+                                if (MF[k,num[kk]] GT  Graph[GraphN].FillValue[Item]) then begin
+                                    temp += MF[k,num[kk]];
+                                    numK++;
+                                endif                        
+                         endfor                   
+                        (*AverStructure.Val)[i*Yinfo[1]+k]  = numK GT 0 ? temp/ numK : Graph[GraphN].FillValue[Item] ; 
+                    endif else begin 
+                         (*AverStructure.Val)[i*Yinfo[1]+k] = MF[k,num[0]]
+                     endelse
+               endfor                      
+         endif
+  
+      endfor  
+      AverStructure.Nres = Index GT 0 ? (num[Index-1]+1) < (N_Time-1) : -1L  
+      
+      if (Graph[GraphN].CurrentSec LT (Graph[GraphN].Sections-1)) AND (AverStructure.Nres ne -1) then begin
+            *(AverStructure.LastTime) = Time[AverStructure.NRes:*]; 
+            *(AverStructure.LastVal) = REFORM(MF[*,AverStructure.NRes:N_Time-1], Yinfo[1]*(N_Time-AverStructure.Nres))
+  endif
+      
+      if (Graph[GraphN].CurrentSec eq (Graph[GraphN].Sections-1)) then begin
+        if ptr_valid(AverStructure.LastTime) then ptr_free, AverStructure.LastTime
+        if ptr_valid(AverStructure.LastVal) then ptr_free, AverStructure.LastVal
+      endif
+      
+   endif else begin ;if (Step GT Sampling*2.0)
+
+     records = N_elements(*AverStructure.Time);
+
+     if (records eq 0) then begin
+         (*AverStructure.Time) = T; : [*AverStructure.Time,T]
+         (*AverStructure.Val) =  Val;
+     endif else begin 
+         numBefore = where((*AverStructure.Time)[records-1] GT T, IndexBefore);
+         if (IndexBefore eq 0) then begin
+                (*AverStructure.Time) =  [*AverStructure.Time,T];
+                (*AverStructure.Val) =   [*AverStructure.Val,Val];
+         endif else begin
+                (*AverStructure.Time) =  [*AverStructure.Time,T[IndexBefore-1:RetSize-1]];              
+                (*AverStructure.Val) =  [*AverStructure.Val,Val[Yinfo[1]*(IndexBefore-1):Yinfo[1]*RetSize-1]]  
+         endelse
+     endelse
+    endelse  
+
+return
+end
\ No newline at end of file
diff --git a/amda_plus/amdalib/ba2000_0_init.pro b/amda_plus/amdalib/ba2000_0_init.pro
new file mode 100644
index 0000000..a88db44
--- /dev/null
+++ b/amda_plus/amdalib/ba2000_0_init.pro
@@ -0,0 +1,41 @@
+;----------------ENVELOPE-------------------------
+; 
+pro ba2000_0_init, CLUSTER1 = Cluster1, CLUSTER2 = Cluster2, CLUSTER3 = Cluster3, CLUSTER4 = Cluster4, $
+                     THEMISA = ThemisA, THEMISB = ThemisB, THEMISC = ThemisC, $
+                     THEMISD = ThemisD, THEMISE = ThemisE, $
+                     GEOTAIL = Geotail, $
+                     OMNI = OMNI, AMDA = AMDA, $
+                     PSYM = psym, COLOR = color, AY1TITLE = AY1Title, $                    
+                     ; vector
+                     X = x, Y = y, Z = z, TOTAL = total, FRAME = frame, $
+                     DELAY = delay, $                    
+                     ; all additional keywords
+                    _EXTRA = e  
+ 
+  cmd = 'ba2000_init, /X'
+  if KEYWORD_SET(FRAME) then cmd += ',FRAME = ' + frame
+
+  if KEYWORD_SET(COLOR) then cmd += ',COLOR = ' + color;
+  if KEYWORD_SET(AY1TITLE) then cmd += ',AY1TITLE = ' + AY1Title;
+
+  if KEYWORD_SET(CLUSTER1) then cmd += ',/CLUSTER1' 
+  if KEYWORD_SET(CLUSTER2) then cmd += ',/CLUSTER2'  
+  if KEYWORD_SET(CLUSTER3) then cmd += ',/CLUSTER3'
+  if KEYWORD_SET(CLUSTER4) then cmd += ',/CLUSTER4'  
+  
+  if KEYWORD_SET(THEMISA) then cmd += ',/THEMISA' 
+  if KEYWORD_SET(THEMISB) then cmd += ',/THEMISB'  
+  if KEYWORD_SET(THEMISC) then cmd += ',/THEMISC'
+  if KEYWORD_SET(THEMISD) then cmd += ',/THEMISD'  
+  if KEYWORD_SET(THEMISE) then cmd += ',/THEMISE'
+
+  if KEYWORD_SET(GEOTAIL) then cmd += ',/GEOTAIL'
+
+  if KEYWORD_SET(OMNI) then cmd += ',/OMNI' 
+  if KEYWORD_SET(AMDA) then cmd += ',/AMDA' 
+
+  R = execute(cmd)
+
+return
+end
+;------------------------------------------------------------
\ No newline at end of file
diff --git a/amda_plus/amdalib/ba2000_1_init.pro b/amda_plus/amdalib/ba2000_1_init.pro
new file mode 100644
index 0000000..71d614f
--- /dev/null
+++ b/amda_plus/amdalib/ba2000_1_init.pro
@@ -0,0 +1,41 @@
+;----------------ENVELOPE-------------------------
+; 
+pro ba2000_1_init, CLUSTER1 = Cluster1, CLUSTER2 = Cluster2, CLUSTER3 = Cluster3, CLUSTER4 = Cluster4, $
+                     THEMISA = ThemisA, THEMISB = ThemisB, THEMISC = ThemisC, $
+                     THEMISD = ThemisD, THEMISE = ThemisE, $
+                     GEOTAIL = Geotail, $
+                     OMNI = OMNI, AMDA = AMDA, $
+                     PSYM = psym, COLOR = color, AY1TITLE = AY1Title, $                    
+                     ; vector
+                     X = x, Y = y, Z = z, TOTAL = total, FRAME = frame, $
+                     DELAY = delay, $                    
+                     ; all additional keywords
+                    _EXTRA = e  
+ 
+  cmd = 'ba2000_init, /Y'
+  if KEYWORD_SET(FRAME) then cmd += ',FRAME = ' + frame
+
+  if KEYWORD_SET(COLOR) then cmd += ',COLOR = ' + color;
+  if KEYWORD_SET(AY1TITLE) then cmd += ',AY1TITLE = ' + AY1Title;
+
+  if KEYWORD_SET(CLUSTER1) then cmd += ',/CLUSTER1' 
+  if KEYWORD_SET(CLUSTER2) then cmd += ',/CLUSTER2'  
+  if KEYWORD_SET(CLUSTER3) then cmd += ',/CLUSTER3'
+  if KEYWORD_SET(CLUSTER4) then cmd += ',/CLUSTER4'  
+  
+  if KEYWORD_SET(THEMISA) then cmd += ',/THEMISA' 
+  if KEYWORD_SET(THEMISB) then cmd += ',/THEMISB'  
+  if KEYWORD_SET(THEMISC) then cmd += ',/THEMISC'
+  if KEYWORD_SET(THEMISD) then cmd += ',/THEMISD'  
+  if KEYWORD_SET(THEMISE) then cmd += ',/THEMISE'
+
+  if KEYWORD_SET(GEOTAIL) then cmd += ',/GEOTAIL'
+
+  if KEYWORD_SET(OMNI) then cmd += ',/OMNI' 
+  if KEYWORD_SET(AMDA) then cmd += ',/AMDA' 
+
+  R = execute(cmd)
+
+return
+end
+;------------------------------------------------------------
\ No newline at end of file
diff --git a/amda_plus/amdalib/ba2000_2_init.pro b/amda_plus/amdalib/ba2000_2_init.pro
new file mode 100644
index 0000000..cd4d4e8
--- /dev/null
+++ b/amda_plus/amdalib/ba2000_2_init.pro
@@ -0,0 +1,41 @@
+;----------------ENVELOPE-------------------------
+; 
+pro ba2000_2_init, CLUSTER1 = Cluster1, CLUSTER2 = Cluster2, CLUSTER3 = Cluster3, CLUSTER4 = Cluster4, $
+                     THEMISA = ThemisA, THEMISB = ThemisB, THEMISC = ThemisC, $
+                     THEMISD = ThemisD, THEMISE = ThemisE, $
+                     GEOTAIL = Geotail, $
+                     OMNI = OMNI, AMDA = AMDA, $
+                     PSYM = psym, COLOR = color, AY1TITLE = AY1Title, $                    
+                     ; vector
+                     X = x, Y = y, Z = z, TOTAL = total, FRAME = frame, $
+                     DELAY = delay, $                    
+                     ; all additional keywords
+                    _EXTRA = e  
+ 
+  cmd = 'ba2000_init, /Z'
+  if KEYWORD_SET(FRAME) then cmd += ',FRAME = ' + frame
+
+  if KEYWORD_SET(COLOR) then cmd += ',COLOR = ' + color;
+  if KEYWORD_SET(AY1TITLE) then cmd += ',AY1TITLE = ' + AY1Title;
+
+  if KEYWORD_SET(CLUSTER1) then cmd += ',/CLUSTER1' 
+  if KEYWORD_SET(CLUSTER2) then cmd += ',/CLUSTER2'  
+  if KEYWORD_SET(CLUSTER3) then cmd += ',/CLUSTER3'
+  if KEYWORD_SET(CLUSTER4) then cmd += ',/CLUSTER4'  
+  
+  if KEYWORD_SET(THEMISA) then cmd += ',/THEMISA' 
+  if KEYWORD_SET(THEMISB) then cmd += ',/THEMISB'  
+  if KEYWORD_SET(THEMISC) then cmd += ',/THEMISC'
+  if KEYWORD_SET(THEMISD) then cmd += ',/THEMISD'  
+  if KEYWORD_SET(THEMISE) then cmd += ',/THEMISE'
+
+  if KEYWORD_SET(GEOTAIL) then cmd += ',/GEOTAIL'
+
+  if KEYWORD_SET(OMNI) then cmd += ',/OMNI' 
+  if KEYWORD_SET(AMDA) then cmd += ',/AMDA' 
+
+  R = execute(cmd)
+
+return
+end
+;------------------------------------------------------------
\ No newline at end of file
diff --git a/amda_plus/amdalib/ba2000_init.pro b/amda_plus/amdalib/ba2000_init.pro
new file mode 100644
index 0000000..a2db32e
--- /dev/null
+++ b/amda_plus/amdalib/ba2000_init.pro
@@ -0,0 +1,110 @@
+; a2000 field along the orbit
+;  
+
+pro ba2000_init, CLUSTER1 = Cluster1, CLUSTER2 = Cluster2, CLUSTER3 = Cluster3, CLUSTER4 = Cluster4, $
+                     THEMISA = ThemisA, THEMISB = ThemisB, THEMISC = ThemisC, $
+                     THEMISD = ThemisD, THEMISE = ThemisE, $
+                     GEOTAIL = Geotail, $
+                     OMNI = OMNI, AMDA = AMDA, $
+                     PSYM = psym, COLOR = color, AY1TITLE = AY1Title, $                    
+                     ; vector
+                     X = x, Y = y, Z = z, TOTAL = total, FRAME = frame, $
+                     DELAY = delay, $                    
+                     ; all additional keywords
+                    _EXTRA = e  
+
+common GraphC, graph, GraphN, Item
+ 
+
+ names = ['B!DX', 'B!DY', 'B!DZ', 'B']
+ 
+ pen = !dnc-1 & comp = 100 & symbol = -3;
+ 
+ if (KEYWORD_SET(COLOR)) then pen = color; 
+ if (KEYWORD_SET(PSYM)) then symbol = psym;
+     
+     title = 'CL1';
+     graph[GraphN].SetCommonF[0] = 'c1_xyz_com';
+     graph[GraphN].GetDataF[0] = 'getc1_xyz'; 
+ 
+  if KEYWORD_SET(CLUSTER2) then begin
+     title = 'CL2';
+     graph[GraphN].SetCommonF[0] = 'c2_xyz_com';
+     graph[GraphN].GetDataF[0] = 'getc2_xyz'; 
+   endif
+  if KEYWORD_SET(CLUSTER3) then begin     
+     title = 'CL3';
+     graph[GraphN].SetCommonF[0] = 'c3_xyz_com';
+     graph[GraphN].GetDataF[0] = 'getc3_xyz'; 
+   endif
+  if KEYWORD_SET(CLUSTER4) then begin     
+     title = 'CL4'
+     graph[GraphN].SetCommonF[0] = 'c4_xyz_com';
+     graph[GraphN].GetDataF[0] = 'getc4_xyz'; 
+   endif
+  if KEYWORD_SET(THEMISA) then begin
+    title = 'THA'
+    graph[GraphN].SetCommonF[0] = 'tha_xyz_com'; 
+    graph[GraphN].GetDataF[0] ='gettha_xyz';
+   endif
+ if KEYWORD_SET(THEMISB) then begin
+    title = 'THB'
+    graph[GraphN].SetCommonF[0] = 'thb_xyz_com'; 
+    graph[GraphN].GetDataF[0] ='getthb_xyz';
+   endif
+ if KEYWORD_SET(THEMISC) then begin
+    title = 'THC'
+    graph[GraphN].SetCommonF[0] = 'thc_xyz_com'; 
+    graph[GraphN].GetDataF[0] ='getthc_xyz';
+   endif
+ if KEYWORD_SET(THEMISD) then begin
+    title = 'THD'
+    graph[GraphN].SetCommonF[0] = 'thd_xyz_com'; 
+    graph[GraphN].GetDataF[0] = 'getthd_xyz';
+   endif
+ if KEYWORD_SET(THEMISE) then begin
+    title = 'THE'
+    graph[GraphN].SetCommonF[0] = 'the_xyz_com'; 
+    graph[GraphN].GetDataF[0] = 'getthe_xyz';
+   endif
+ if KEYWORD_SET(GEOTAIL) then begin
+    title = 'GTL'
+    graph[GraphN].SetCommonF[0] = 'gtl_xyz_com'; 
+    graph[GraphN].GetDataF[0] = 'getgtl_xyz';
+   endif  
+
+
+a2000Function = KEYWORD_SET(OMNI) ? 'A2000OMNI' : 'A2000O'; 
+
+frame = "GSM";
+graph[GraphN].ProcessF= 'gse2gsm;' + a2000Function; 
+  
+if (KEYWORD_SET(FRAME)) then begin 
+  if (frame eq "GSE") then graph[GraphN].ProcessF= 'gse2gsm;' + a2000Function + ';gsm2gse';
+  if (frame eq "SM")  then graph[GraphN].ProcessF= 'gse2gsm;' + a2000Function + ';gse2sm';
+endif 
+
+yTitle = title + ' A2000 B '+frame+', nT';
+
+if (KEYWORD_SET(AY1TITLE)) then graph[GraphN].Ly.title = AY1Title $
+else graph[GraphN].Ly.title = yTitle
+
+graph[GraphN].Type = 'T96_T'
+graph[GraphN].DataN = 1 
+graph[GraphN].DeltaT = (Graph[GraphN].TotalTime + 120.0D0) < 36000.0D0 ; 
+graph[GraphN].AxisF = 'lineaxis,' + string(Graph[GraphN].TotalTime);
+
+if (KEYWORD_SET(X)) then comp = 0;
+if (KEYWORD_SET(Y)) then comp = 1;
+if (KEYWORD_SET(Z)) then comp = 2;
+if (KEYWORD_SET(TOTAL)) then comp = 3;
+
+graph[GraphN].PlotF = comp eq 100 ? 'PlotVec': 'PlotVec_Comp_New, ' + string(comp) +','+ string(pen ) +','+ string(symbol)
+graph[GraphN].names = PTR_NEW(/ALLOCATE_HEAP)
+*(graph[GraphN].names) = (comp le 3) ? names : names[0:2];
+ 
+ 
+graph[GraphN].LastPlotF = 'nodatalast'  
+  
+return
+end
diff --git a/amda_plus/amdalib/bcain_mso_0_init.pro b/amda_plus/amdalib/bcain_mso_0_init.pro
new file mode 100644
index 0000000..0df7c9f
--- /dev/null
+++ b/amda_plus/amdalib/bcain_mso_0_init.pro
@@ -0,0 +1,28 @@
+;----------------ENVELOPE-------------------------
+; 
+pro bcain_mso_0_init, MEX = Mex, MGS = mgs, MAVEN = maven, SAMPLING = sampling,     $
+                     PSYM = psym, COLOR = color, AY1TITLE = AY1Title, $                    
+                     ; vector
+                     X = x, Y = y, Z = z, TOTAL = total, FRAME = frame, $
+                     DELAY = delay, $                    
+                     ; all additional keywords
+                    _EXTRA = e  
+
+  cmd = 'bcain_mso_init, /X, SAMPLING = ' + string(sampling)
+
+  if KEYWORD_SET(COLOR) then cmd += ',COLOR = ' + color;
+
+  if KEYWORD_SET(AY1TITLE) then cmd += ',AY1TITLE = ' + AY1Title;
+
+  if KEYWORD_SET(MEX) then cmd += ',/MEX' 
+    
+  if KEYWORD_SET(MGS) then cmd += ',/MGS' 
+ 
+  if KEYWORD_SET(MAVEN) then cmd += ',/MAVEN'
+  
+
+  R = execute(cmd)
+
+return
+end
+;------------------------------------------------------------
\ No newline at end of file
diff --git a/amda_plus/amdalib/bcain_mso_1_init.pro b/amda_plus/amdalib/bcain_mso_1_init.pro
new file mode 100644
index 0000000..b064b47
--- /dev/null
+++ b/amda_plus/amdalib/bcain_mso_1_init.pro
@@ -0,0 +1,28 @@
+;----------------ENVELOPE-------------------------
+; 
+pro bcain_mso_1_init, MEX = Mex, MGS = mgs, MAVEN = maven, SAMPLING = sampling,     $
+                     PSYM = psym, COLOR = color, AY1TITLE = AY1Title, $                    
+                     ; vector
+                     X = x, Y = y, Z = z, TOTAL = total, FRAME = frame, $
+                     DELAY = delay, $                    
+                     ; all additional keywords
+                    _EXTRA = e  
+
+  cmd = 'bcain_mso_init, /Y, SAMPLING = ' + string(sampling)
+
+  if KEYWORD_SET(COLOR) then cmd += ',COLOR = ' + color;
+
+  if KEYWORD_SET(AY1TITLE) then cmd += ',AY1TITLE = ' + AY1Title;
+
+  if KEYWORD_SET(MEX) then cmd += ',/MEX' 
+    
+  if KEYWORD_SET(MGS) then cmd += ',/MGS' 
+ 
+  if KEYWORD_SET(MAVEN) then cmd += ',/MAVEN'
+  
+
+  R = execute(cmd)
+
+return
+end
+;------------------------------------------------------------
\ No newline at end of file
diff --git a/amda_plus/amdalib/bcain_mso_2_init.pro b/amda_plus/amdalib/bcain_mso_2_init.pro
new file mode 100644
index 0000000..c9f0de7
--- /dev/null
+++ b/amda_plus/amdalib/bcain_mso_2_init.pro
@@ -0,0 +1,28 @@
+;----------------ENVELOPE-------------------------
+; 
+pro bcain_mso_2_init, MEX = Mex, MGS = mgs, MAVEN = maven,   SAMPLING = sampling,   $
+                     PSYM = psym, COLOR = color, AY1TITLE = AY1Title, $                    
+                     ; vector
+                     X = x, Y = y, Z = z, TOTAL = total, FRAME = frame, $
+                     DELAY = delay, $                    
+                     ; all additional keywords
+                    _EXTRA = e  
+
+  cmd = 'bcain_mso_init, /Z, SAMPLING = '+ string(sampling)
+
+  if KEYWORD_SET(COLOR) then cmd += ',COLOR = ' + color;
+
+  if KEYWORD_SET(AY1TITLE) then cmd += ',AY1TITLE = ' + AY1Title;
+
+  if KEYWORD_SET(MEX) then cmd += ',/MEX' 
+    
+  if KEYWORD_SET(MGS) then cmd += ',/MGS' 
+ 
+  if KEYWORD_SET(MAVEN) then cmd += ',/MAVEN'
+  
+
+  R = execute(cmd)
+
+return
+end
+;------------------------------------------------------------
\ No newline at end of file
diff --git a/amda_plus/amdalib/bcain_mso_init.pro b/amda_plus/amdalib/bcain_mso_init.pro
new file mode 100644
index 0000000..256582a
--- /dev/null
+++ b/amda_plus/amdalib/bcain_mso_init.pro
@@ -0,0 +1,73 @@
+; cain field along the orbit
+;  
+
+pro bcain_mso_init,   MEX = Mex, MGS = mgs, MAVEN = maven, SAMPLING = sampling, $
+                     PSYM = psym, COLOR = color, AY1TITLE = AY1Title, $                    
+                     ; vector
+                     X = x, Y = y, Z = z, TOTAL = total, FRAME = frame, $
+                     DELAY = delay, $                    
+                     ; all additional keywords
+                    _EXTRA = e 
+
+common GraphC, graph, GraphN, Item
+ 
+ names = ['B!DX', 'B!DY', 'B!DZ', 'B']
+ 
+ pen = !dnc-1 & comp = 100 & symbol = -3;
+ 
+ if (KEYWORD_SET(COLOR)) then pen = color; 
+ if (KEYWORD_SET(PSYM)) then symbol = psym;
+     
+     title = 'MEX';
+     graph[GraphN].SetCommonF[0] = 'mex_xyz_com';
+     graph[GraphN].GetDataF[0] = 'getmex_xyz'; 
+ 
+  if KEYWORD_SET(MGS) then begin
+     title = 'MGS';
+     graph[GraphN].SetCommonF[0] = 'xyz_mgs_mso_com';
+     graph[GraphN].GetDataF[0] = 'getxyz_mgs_mso'; 
+   endif
+
+  if KEYWORD_SET(MAVEN) then begin     
+     title = 'MAVEN';
+     graph[GraphN].SetCommonF[0] = 'mav_xyz_mso_com';
+     graph[GraphN].GetDataF[0] = 'getmav_xyz_mso'; 
+   endif
+    
+ 
+frame = "MSO";
+graph[GraphN].ProcessF =  "CAIN";
+;if (KEYWORD_SET(FRAME)) then begin 
+;  if (frame eq "AC") then graph[GraphN].ProcessF= 'mso2ac';
+;endif 
+
+graph[GraphN].names = PTR_NEW(/ALLOCATE_HEAP)
+graph[GraphN].Type = 'T96_T'
+graph[GraphN].DataN = 1 
+graph[GraphN].DeltaT = (Graph[GraphN].TotalTime + 120.0D0) < 36000.0D0 ;
+
+yTitle = title + ' Cain B '+frame+', nT';
+
+if (KEYWORD_SET(AY1TITLE)) then graph[GraphN].Ly.title = AY1Title $
+else graph[GraphN].Ly.title = yTitle
+
+graph[GraphN].AxisF = 'lineaxis,' + string(Graph[GraphN].TotalTime)
+
+if (KEYWORD_SET(X)) then comp = 0;
+if (KEYWORD_SET(Y)) then comp = 1;
+if (KEYWORD_SET(Z)) then comp = 2;
+if (KEYWORD_SET(TOTAL)) then comp = 3;
+
+if (KEYWORD_SET(SAMPLING)) then begin 
+    if (Sampling eq 60) then  graph[GraphN].PlotF = comp eq 100 ? 'PlotVec' : 'PlotVec_Comp_New, ' + string(comp) +','+ string(pen ) +','+ string(symbol) $  
+    else graph[GraphN].PlotF = comp eq 100 ? 'PlotVecCain,' + string(sampling) : 'PlotVecCompCain, '  + string(sampling) +','+ string(comp) +','+ string(pen ) +','+ string(symbol)
+endif else begin
+  graph[GraphN].PlotF = comp eq 100 ? 'PlotVec' : 'PlotVec_Comp_New, ' + string(comp) +','+ string(pen ) +','+ string(symbol)
+endelse
+
+graph[GraphN].names = PTR_NEW(/ALLOCATE_HEAP)
+*(graph[GraphN].names) = (comp le 3) ? names : names[0:2];
+ 
+graph[GraphN].LastPlotF = 'nodatalast' 
+return
+end
diff --git a/amda_plus/amdalib/bcain_tot_init.pro b/amda_plus/amdalib/bcain_tot_init.pro
new file mode 100644
index 0000000..8cacf49
--- /dev/null
+++ b/amda_plus/amdalib/bcain_tot_init.pro
@@ -0,0 +1,28 @@
+;----------------ENVELOPE-------------------------
+; 
+pro bcain_tot_init, MEX = Mex, MGS = mgs, MAVEN = maven,  SAMPLING = sampling,    $
+                     PSYM = psym, COLOR = color, AY1TITLE = AY1Title, $                    
+                     ; vector
+                     X = x, Y = y, Z = z, TOTAL = total, FRAME = frame, $
+                     DELAY = delay, $                    
+                     ; all additional keywords
+                    _EXTRA = e  
+
+  cmd = 'bcain_mso_init, /TOT, SAMPLING = ' + string(sampling)
+
+  if KEYWORD_SET(COLOR) then cmd += ',COLOR = ' + color;
+
+  if KEYWORD_SET(AY1TITLE) then cmd += ',AY1TITLE = ' + AY1Title;
+
+  if KEYWORD_SET(MEX) then cmd += ',/MEX' 
+    
+  if KEYWORD_SET(MGS) then cmd += ',/MGS' 
+ 
+  if KEYWORD_SET(MAVEN) then cmd += ',/MAVEN'
+  
+
+  R = execute(cmd)
+
+return
+end
+;------------------------------------------------------------
\ No newline at end of file
diff --git a/amda_plus/amdalib/bmorsch_mso_0_init.pro b/amda_plus/amdalib/bmorsch_mso_0_init.pro
new file mode 100644
index 0000000..7ae1786
--- /dev/null
+++ b/amda_plus/amdalib/bmorsch_mso_0_init.pro
@@ -0,0 +1,28 @@
+;----------------ENVELOPE-------------------------
+; 
+pro bmorsch_mso_0_init, MEX = Mex, MGS = mgs, MAVEN = maven, SAMPLING = sampling,     $
+                     PSYM = psym, COLOR = color, AY1TITLE = AY1Title, $                    
+                     ; vector
+                     X = x, Y = y, Z = z, TOTAL = total, FRAME = frame, $
+                     DELAY = delay, $                    
+                     ; all additional keywords
+                    _EXTRA = e  
+
+  cmd = 'bmorsch_mso_init, /X, SAMPLING = ' + string(sampling)
+
+  if KEYWORD_SET(COLOR) then cmd += ',COLOR = ' + color;
+
+  if KEYWORD_SET(AY1TITLE) then cmd += ',AY1TITLE = ' + AY1Title;
+
+  if KEYWORD_SET(MEX) then cmd += ',/MEX' 
+    
+  if KEYWORD_SET(MGS) then cmd += ',/MGS' 
+ 
+  if KEYWORD_SET(MAVEN) then cmd += ',/MAVEN'
+  
+
+  R = execute(cmd)
+
+return
+end
+;------------------------------------------------------------
\ No newline at end of file
diff --git a/amda_plus/amdalib/bmorsch_mso_1_init.pro b/amda_plus/amdalib/bmorsch_mso_1_init.pro
new file mode 100644
index 0000000..31e7010
--- /dev/null
+++ b/amda_plus/amdalib/bmorsch_mso_1_init.pro
@@ -0,0 +1,28 @@
+;----------------ENVELOPE-------------------------
+; 
+pro bmorsch_mso_1_init, MEX = Mex, MGS = mgs, MAVEN = maven, SAMPLING = sampling,     $
+                     PSYM = psym, COLOR = color, AY1TITLE = AY1Title, $                    
+                     ; vector
+                     X = x, Y = y, Z = z, TOTAL = total, FRAME = frame, $
+                     DELAY = delay, $                    
+                     ; all additional keywords
+                    _EXTRA = e  
+
+  cmd = 'bmorsch_mso_init, /Y, SAMPLING = ' + string(sampling)
+
+  if KEYWORD_SET(COLOR) then cmd += ',COLOR = ' + color;
+
+  if KEYWORD_SET(AY1TITLE) then cmd += ',AY1TITLE = ' + AY1Title;
+
+  if KEYWORD_SET(MEX) then cmd += ',/MEX' 
+    
+  if KEYWORD_SET(MGS) then cmd += ',/MGS' 
+ 
+  if KEYWORD_SET(MAVEN) then cmd += ',/MAVEN'
+  
+
+  R = execute(cmd)
+
+return
+end
+;------------------------------------------------------------
\ No newline at end of file
diff --git a/amda_plus/amdalib/bmorsch_mso_2_init.pro b/amda_plus/amdalib/bmorsch_mso_2_init.pro
new file mode 100644
index 0000000..036a8ae
--- /dev/null
+++ b/amda_plus/amdalib/bmorsch_mso_2_init.pro
@@ -0,0 +1,28 @@
+;----------------ENVELOPE-------------------------
+; 
+pro bmorsch_mso_2_init, MEX = Mex, MGS = mgs, MAVEN = maven, SAMPLING = sampling,     $
+                     PSYM = psym, COLOR = color, AY1TITLE = AY1Title, $                    
+                     ; vector
+                     X = x, Y = y, Z = z, TOTAL = total, FRAME = frame, $
+                     DELAY = delay, $                    
+                     ; all additional keywords
+                    _EXTRA = e  
+
+  cmd = 'bmorsch_mso_init, /Z, SAMPLING = ' + string(sampling)
+
+  if KEYWORD_SET(COLOR) then cmd += ',COLOR = ' + color;
+
+  if KEYWORD_SET(AY1TITLE) then cmd += ',AY1TITLE = ' + AY1Title;
+
+  if KEYWORD_SET(MEX) then cmd += ',/MEX' 
+    
+  if KEYWORD_SET(MGS) then cmd += ',/MGS' 
+ 
+  if KEYWORD_SET(MAVEN) then cmd += ',/MAVEN'
+  
+
+  R = execute(cmd)
+
+return
+end
+;------------------------------------------------------------
\ No newline at end of file
diff --git a/amda_plus/amdalib/bmorsch_mso_init.pro b/amda_plus/amdalib/bmorsch_mso_init.pro
new file mode 100644
index 0000000..71b623e
--- /dev/null
+++ b/amda_plus/amdalib/bmorsch_mso_init.pro
@@ -0,0 +1,73 @@
+; morsch field along the orbit
+;  
+
+pro bmorsch_mso_init,   MEX = Mex, MGS = mgs, MAVEN = maven, SAMPLING = sampling, $
+                     PSYM = psym, COLOR = color, AY1TITLE = AY1Title, $                    
+                     ; vector
+                     X = x, Y = y, Z = z, TOTAL = total, FRAME = frame, $
+                     DELAY = delay, $                    
+                     ; all additional keywords
+                    _EXTRA = e 
+
+common GraphC, graph, GraphN, Item
+ 
+ names = ['B!DX', 'B!DY', 'B!DZ', 'B']
+ 
+ pen = !dnc-1 & comp = 100 & symbol = -3;
+ 
+ if (KEYWORD_SET(COLOR)) then pen = color; 
+ if (KEYWORD_SET(PSYM)) then symbol = psym;
+     
+     title = 'MEX';
+     graph[GraphN].SetCommonF[0] = 'mex_xyz_com';
+     graph[GraphN].GetDataF[0] = 'getmex_xyz'; 
+ 
+  if KEYWORD_SET(MGS) then begin
+     title = 'MGS';
+     graph[GraphN].SetCommonF[0] = 'xyz_mgs_mso_com';
+     graph[GraphN].GetDataF[0] = 'getxyz_mgs_mso'; 
+   endif
+
+  if KEYWORD_SET(MAVEN) then begin     
+     title = 'MAVEN';
+     graph[GraphN].SetCommonF[0] = 'mav_xyz_mso_com';
+     graph[GraphN].GetDataF[0] = 'getmav_xyz_mso'; 
+   endif
+    
+ 
+frame = "MSO";
+graph[GraphN].ProcessF =  "MORSCH";
+;if (KEYWORD_SET(FRAME)) then begin 
+;  if (frame eq "AC") then graph[GraphN].ProcessF= 'mso2ac';
+;endif 
+
+graph[GraphN].names = PTR_NEW(/ALLOCATE_HEAP)
+graph[GraphN].Type = 'T96_T'
+graph[GraphN].DataN = 1 
+graph[GraphN].DeltaT = (Graph[GraphN].TotalTime + 120.0D0) < 36000.0D0 ;
+
+yTitle = title + ' Morschhauser B '+frame+', nT';
+
+if (KEYWORD_SET(AY1TITLE)) then graph[GraphN].Ly.title = AY1Title $
+else graph[GraphN].Ly.title = yTitle
+
+graph[GraphN].AxisF = 'lineaxis,' + string(Graph[GraphN].TotalTime)
+
+if (KEYWORD_SET(X)) then comp = 0;
+if (KEYWORD_SET(Y)) then comp = 1;
+if (KEYWORD_SET(Z)) then comp = 2;
+if (KEYWORD_SET(TOTAL)) then comp = 3;
+
+if (KEYWORD_SET(SAMPLING)) then begin 
+    if (Sampling eq 60) then  graph[GraphN].PlotF = comp eq 100 ? 'PlotVec' : 'PlotVec_Comp_New, ' + string(comp) +','+ string(pen ) +','+ string(symbol) $  
+    else graph[GraphN].PlotF = comp eq 100 ? 'PlotVecCain,' + string(sampling) : 'PlotVecCompCain, '  + string(sampling) +','+ string(comp) +','+ string(pen ) +','+ string(symbol)
+endif else begin
+  graph[GraphN].PlotF = comp eq 100 ? 'PlotVec' : 'PlotVec_Comp_New, ' + string(comp) +','+ string(pen ) +','+ string(symbol)
+endelse
+
+graph[GraphN].names = PTR_NEW(/ALLOCATE_HEAP)
+*(graph[GraphN].names) = (comp le 3) ? names : names[0:2];
+ 
+graph[GraphN].LastPlotF = 'nodatalast' 
+return
+end
diff --git a/amda_plus/amdalib/bmorsch_tot_init.pro b/amda_plus/amdalib/bmorsch_tot_init.pro
new file mode 100644
index 0000000..696e850
--- /dev/null
+++ b/amda_plus/amdalib/bmorsch_tot_init.pro
@@ -0,0 +1,28 @@
+;----------------ENVELOPE-------------------------
+; 
+pro bmorsch_tot_init, MEX = Mex, MGS = mgs, MAVEN = maven,  SAMPLING = sampling,    $
+                     PSYM = psym, COLOR = color, AY1TITLE = AY1Title, $                    
+                     ; vector
+                     X = x, Y = y, Z = z, TOTAL = total, FRAME = frame, $
+                     DELAY = delay, $                    
+                     ; all additional keywords
+                    _EXTRA = e  
+
+  cmd = 'bmorsch_mso_init, /TOT, SAMPLING = ' + string(sampling)
+
+  if KEYWORD_SET(COLOR) then cmd += ',COLOR = ' + color;
+
+  if KEYWORD_SET(AY1TITLE) then cmd += ',AY1TITLE = ' + AY1Title;
+
+  if KEYWORD_SET(MEX) then cmd += ',/MEX' 
+    
+  if KEYWORD_SET(MGS) then cmd += ',/MGS' 
+ 
+  if KEYWORD_SET(MAVEN) then cmd += ',/MAVEN'
+  
+
+  R = execute(cmd)
+
+return
+end
+;------------------------------------------------------------
\ No newline at end of file
diff --git a/amda_plus/amdalib/bt96_0_init.pro b/amda_plus/amdalib/bt96_0_init.pro
new file mode 100644
index 0000000..0544f91
--- /dev/null
+++ b/amda_plus/amdalib/bt96_0_init.pro
@@ -0,0 +1,41 @@
+;----------------ENVELOPE-------------------------
+; 
+pro bt96_0_init,     CLUSTER1 = Cluster1, CLUSTER2 = Cluster2, CLUSTER3 = Cluster3, CLUSTER4 = Cluster4, $
+                     THEMISA = ThemisA, THEMISB = ThemisB, THEMISC = ThemisC, $
+                     THEMISD = ThemisD, THEMISE = ThemisE, $
+                     GEOTAIL = Geotail, $
+                     OMNI = OMNI, AMDA = AMDA, $
+                     PSYM = psym, COLOR = color, AY1TITLE = AY1Title, $                    
+                     ; vector
+                     X = x, Y = y, Z = z, TOTAL = total, FRAME = frame, $
+                     DELAY = delay, $                    
+                     ; all additional keywords
+                    _EXTRA = e  
+
+  cmd = 'bt96_init, /X'
+  if KEYWORD_SET(FRAME) then cmd += ',FRAME = ' + frame
+
+  if KEYWORD_SET(COLOR) then cmd += ',COLOR = ' + color;
+  if KEYWORD_SET(AY1TITLE) then cmd += ',AY1TITLE = ' + AY1Title;
+
+  if KEYWORD_SET(CLUSTER1) then cmd += ',/CLUSTER1' 
+  if KEYWORD_SET(CLUSTER2) then cmd += ',/CLUSTER2'  
+  if KEYWORD_SET(CLUSTER3) then cmd += ',/CLUSTER3'
+  if KEYWORD_SET(CLUSTER4) then cmd += ',/CLUSTER4'  
+  
+  if KEYWORD_SET(THEMISA) then cmd += ',/THEMISA' 
+  if KEYWORD_SET(THEMISB) then cmd += ',/THEMISB'  
+  if KEYWORD_SET(THEMISC) then cmd += ',/THEMISC'
+  if KEYWORD_SET(THEMISD) then cmd += ',/THEMISD'  
+  if KEYWORD_SET(THEMISE) then cmd += ',/THEMISE'
+
+  if KEYWORD_SET(GEOTAIL) then cmd += ',/GEOTAIL'
+
+  if KEYWORD_SET(OMNI) then cmd += ',/OMNI' 
+  if KEYWORD_SET(AMDA) then cmd += ',/AMDA' 
+
+  R = execute(cmd)
+
+return
+end
+;------------------------------------------------------------
\ No newline at end of file
diff --git a/amda_plus/amdalib/bt96_1_init.pro b/amda_plus/amdalib/bt96_1_init.pro
new file mode 100644
index 0000000..814a2f6
--- /dev/null
+++ b/amda_plus/amdalib/bt96_1_init.pro
@@ -0,0 +1,41 @@
+;----------------ENVELOPE-------------------------
+; 
+pro bt96_1_init,     CLUSTER1 = Cluster1, CLUSTER2 = Cluster2, CLUSTER3 = Cluster3, CLUSTER4 = Cluster4, $
+                     THEMISA = ThemisA, THEMISB = ThemisB, THEMISC = ThemisC, $
+                     THEMISD = ThemisD, THEMISE = ThemisE, $
+                     GEOTAIL = Geotail, $
+                     OMNI = OMNI, AMDA = AMDA, $
+                     PSYM = psym, COLOR = color, AY1TITLE = AY1Title, $                    
+                     ; vector
+                     X = x, Y = y, Z = z, TOTAL = total, FRAME = frame, $
+                     DELAY = delay, $                    
+                     ; all additional keywords
+                    _EXTRA = e  
+
+  cmd = 'bt96_init, /Y'
+  if KEYWORD_SET(FRAME) then cmd += ',FRAME = ' + frame
+
+  if KEYWORD_SET(COLOR) then cmd += ',COLOR = ' + color;
+  if KEYWORD_SET(AY1TITLE) then cmd += ',AY1TITLE = ' + AY1Title;
+
+  if KEYWORD_SET(CLUSTER1) then cmd += ',/CLUSTER1' 
+  if KEYWORD_SET(CLUSTER2) then cmd += ',/CLUSTER2'  
+  if KEYWORD_SET(CLUSTER3) then cmd += ',/CLUSTER3'
+  if KEYWORD_SET(CLUSTER4) then cmd += ',/CLUSTER4'  
+  
+  if KEYWORD_SET(THEMISA) then cmd += ',/THEMISA' 
+  if KEYWORD_SET(THEMISB) then cmd += ',/THEMISB'  
+  if KEYWORD_SET(THEMISC) then cmd += ',/THEMISC'
+  if KEYWORD_SET(THEMISD) then cmd += ',/THEMISD'  
+  if KEYWORD_SET(THEMISE) then cmd += ',/THEMISE'
+
+  if KEYWORD_SET(GEOTAIL) then cmd += ',/GEOTAIL'
+
+  if KEYWORD_SET(OMNI) then cmd += ',/OMNI' 
+  if KEYWORD_SET(AMDA) then cmd += ',/AMDA' 
+
+  R = execute(cmd)
+
+return
+end
+;------------------------------------------------------------
\ No newline at end of file
diff --git a/amda_plus/amdalib/bt96_2_init.pro b/amda_plus/amdalib/bt96_2_init.pro
new file mode 100644
index 0000000..ceff15b
--- /dev/null
+++ b/amda_plus/amdalib/bt96_2_init.pro
@@ -0,0 +1,41 @@
+;----------------ENVELOPE-------------------------
+; 
+pro bt96_2_init,     CLUSTER1 = Cluster1, CLUSTER2 = Cluster2, CLUSTER3 = Cluster3, CLUSTER4 = Cluster4, $
+                     THEMISA = ThemisA, THEMISB = ThemisB, THEMISC = ThemisC, $
+                     THEMISD = ThemisD, THEMISE = ThemisE, $
+                     GEOTAIL = Geotail, $
+                     OMNI = OMNI, AMDA = AMDA, $
+                     PSYM = psym, COLOR = color, AY1TITLE = AY1Title, $                    
+                     ; vector
+                     X = x, Y = y, Z = z, TOTAL = total, FRAME = frame, $
+                     DELAY = delay, $                    
+                     ; all additional keywords
+                    _EXTRA = e  
+
+  cmd = 'bt96_init, /Z'
+  if KEYWORD_SET(FRAME) then cmd += ',FRAME = ' + frame
+
+  if KEYWORD_SET(COLOR) then cmd += ',COLOR = ' + color;
+  if KEYWORD_SET(AY1TITLE) then cmd += ',AY1TITLE = ' + AY1Title;
+
+  if KEYWORD_SET(CLUSTER1) then cmd += ',/CLUSTER1' 
+  if KEYWORD_SET(CLUSTER2) then cmd += ',/CLUSTER2'  
+  if KEYWORD_SET(CLUSTER3) then cmd += ',/CLUSTER3'
+  if KEYWORD_SET(CLUSTER4) then cmd += ',/CLUSTER4'  
+  
+  if KEYWORD_SET(THEMISA) then cmd += ',/THEMISA' 
+  if KEYWORD_SET(THEMISB) then cmd += ',/THEMISB'  
+  if KEYWORD_SET(THEMISC) then cmd += ',/THEMISC'
+  if KEYWORD_SET(THEMISD) then cmd += ',/THEMISD'  
+  if KEYWORD_SET(THEMISE) then cmd += ',/THEMISE'
+
+  if KEYWORD_SET(GEOTAIL) then cmd += ',/GEOTAIL'
+
+  if KEYWORD_SET(OMNI) then cmd += ',/OMNI' 
+  if KEYWORD_SET(AMDA) then cmd += ',/AMDA' 
+
+  R = execute(cmd)
+
+return
+end
+;------------------------------------------------------------
\ No newline at end of file
diff --git a/amda_plus/amdalib/bt96_init.pro b/amda_plus/amdalib/bt96_init.pro
new file mode 100644
index 0000000..32d27fc
--- /dev/null
+++ b/amda_plus/amdalib/bt96_init.pro
@@ -0,0 +1,108 @@
+; tsyganenko 96 field along the orbit
+;  
+
+pro bt96_init,   CLUSTER1 = Cluster1, CLUSTER2 = Cluster2, CLUSTER3 = Cluster3, CLUSTER4 = Cluster4, $
+                     THEMISA = ThemisA, THEMISB = ThemisB, THEMISC = ThemisC, $
+                     THEMISD = ThemisD, THEMISE = ThemisE, $
+                     GEOTAIL = Geotail, $
+                     OMNI = OMNI, AMDA = AMDA, $
+                     PSYM = psym, COLOR = color, AY1TITLE = AY1Title, $                    
+                     ; vector
+                     X = x, Y = y, Z = z, TOTAL = total, FRAME = frame, $
+                     DELAY = delay, $                    
+                     ; all additional keywords
+                    _EXTRA = e 
+
+common GraphC, graph, GraphN, Item
+ 
+ names = ['B!DX', 'B!DY', 'B!DZ', 'B']
+ 
+ pen = !dnc-1 & comp = 100 & symbol = -3;
+ 
+ if (KEYWORD_SET(COLOR)) then pen = color; 
+ if (KEYWORD_SET(PSYM)) then symbol = psym;
+     
+     title = 'CL1';
+     graph[GraphN].SetCommonF[0] = 'c1_xyz_com';
+     graph[GraphN].GetDataF[0] = 'getc1_xyz'; 
+ 
+  if KEYWORD_SET(CLUSTER2) then begin
+     title = 'CL2';
+     graph[GraphN].SetCommonF[0] = 'c2_xyz_com';
+     graph[GraphN].GetDataF[0] = 'getc2_xyz'; 
+   endif
+  if KEYWORD_SET(CLUSTER3) then begin     
+     title = 'CL3';
+     graph[GraphN].SetCommonF[0] = 'c3_xyz_com';
+     graph[GraphN].GetDataF[0] = 'getc3_xyz'; 
+   endif
+  if KEYWORD_SET(CLUSTER4) then begin     
+     title = 'CL4'
+     graph[GraphN].SetCommonF[0] = 'c4_xyz_com';
+     graph[GraphN].GetDataF[0] = 'getc4_xyz'; 
+   endif
+  if KEYWORD_SET(THEMISA) then begin
+    title = 'THA'
+    graph[GraphN].SetCommonF[0] = 'tha_xyz_com'; 
+    graph[GraphN].GetDataF[0] ='gettha_xyz';
+   endif
+ if KEYWORD_SET(THEMISB) then begin
+    title = 'THB'
+    graph[GraphN].SetCommonF[0] = 'thb_xyz_com'; 
+    graph[GraphN].GetDataF[0] ='getthb_xyz';
+   endif
+ if KEYWORD_SET(THEMISC) then begin
+    title = 'THC'
+    graph[GraphN].SetCommonF[0] = 'thc_xyz_com'; 
+    graph[GraphN].GetDataF[0] ='getthc_xyz';
+   endif
+ if KEYWORD_SET(THEMISD) then begin
+    title = 'THD'
+    graph[GraphN].SetCommonF[0] = 'thd_xyz_com'; 
+    graph[GraphN].GetDataF[0] = 'getthd_xyz';
+   endif
+ if KEYWORD_SET(THEMISE) then begin
+    title = 'THE'
+    graph[GraphN].SetCommonF[0] = 'the_xyz_com'; 
+    graph[GraphN].GetDataF[0] = 'getthe_xyz';
+   endif
+ if KEYWORD_SET(GEOTAIL) then begin
+    title = 'GTL'
+    graph[GraphN].SetCommonF[0] = 'gtl_xyz_com'; 
+    graph[GraphN].GetDataF[0] = 'getgtl_xyz';
+   endif
+
+t96Function = KEYWORD_SET(OMNI) ? 'T96OMNI' : 'T96';
+ 
+frame = "GSM";
+graph[GraphN].ProcessF= t96Function; 
+  
+if (KEYWORD_SET(FRAME)) then begin 
+  if (frame eq "GSE") then graph[GraphN].ProcessF= t96Function + ';gsm2gse';
+  if (frame eq "SM")  then graph[GraphN].ProcessF= t96Function + ';gse2sm';
+endif 
+
+graph[GraphN].names = PTR_NEW(/ALLOCATE_HEAP)
+graph[GraphN].Type = 'T96_T'
+graph[GraphN].DataN = 1 
+graph[GraphN].DeltaT = (Graph[GraphN].TotalTime + 120.0D0) < 36000.0D0 ;
+
+yTitle = title + ' T96 B '+frame+', nT';
+
+if (KEYWORD_SET(AY1TITLE)) then graph[GraphN].Ly.title = AY1Title $
+else graph[GraphN].Ly.title = yTitle
+
+graph[GraphN].AxisF = 'lineaxis,' + string(Graph[GraphN].TotalTime)
+
+if (KEYWORD_SET(X)) then comp = 0;
+if (KEYWORD_SET(Y)) then comp = 1;
+if (KEYWORD_SET(Z)) then comp = 2;
+if (KEYWORD_SET(TOTAL)) then comp = 3;
+
+graph[GraphN].PlotF = comp eq 100 ? 'PlotVec': 'PlotVec_Comp_New, ' + string(comp) +','+ string(pen ) +','+ string(symbol)
+graph[GraphN].names = PTR_NEW(/ALLOCATE_HEAP)
+*(graph[GraphN].names) = (comp le 3) ? names : names[0:2];
+ 
+graph[GraphN].LastPlotF = 'nodatalast' 
+return
+end
diff --git a/amda_plus/amdalib/c1_hia_pad_init.pro b/amda_plus/amdalib/c1_hia_pad_init.pro
new file mode 100644
index 0000000..72be2d1
--- /dev/null
+++ b/amda_plus/amdalib/c1_hia_pad_init.pro
@@ -0,0 +1,33 @@
+
+pro c1_hia_pad_init,  PA = PA,  ENERGY = energy, LIN = lin, LOG = log
+
+Pitch = '0';
+PitchValue = [  '0-11.25','11.25-22.5','22.5-33.75','33.75-45', $
+		'45-56.25','56.25-67.5','67.5-78.75', $ 
+		'78.75-90','90-101.25','101.25-112.5','112.5-123.75', $
+		'123.75-135','135-146.25','146.25-157.5','157.5-168.75', $
+		'168.75-180'];
+ 
+if (KEYWORD_SET(PA)) then Pitch = string(PA-1);
+    
+En = 31;
+if (KEYWORD_SET(ENERGY)) then En = Energy;
+
+    
+       if (En LT 31) then begin
+          common GraphC, graph, GraphN, Item
+          graph[GraphN].Type = 'FGM_T' 
+	  graph[GraphN].DataN = 1
+	  graph[GraphN].SetCommonF[0] = 'pad_hia_com, 1' 
+	  graph[GraphN].GetDataF[0] ='get_pad_hia, 1'
+	  graph[GraphN].DeltaT = (Graph[GraphN].TotalTime + 60.0D0) <  18000.0D0 
+	  graph[GraphN].Ly.title = 'C1 hia Flux !CP_'+PitchValue[Pitch] + ' E eV '; 
+	  graph[GraphN].AxisF =  KEYWORD_SET(log) ?  'logaxis' : 'lineaxis, 0';
+	  graph[GraphN].PlotF = 'spec3D_comp_plot,' + string(Pitch) +','+string(En);
+   endif else begin
+	  functionName = 'P' + strtrim(Pitch,1) + '_hia_c1_init';
+	  call_procedure, functionName;
+   endelse
+
+return
+end
\ No newline at end of file
diff --git a/amda_plus/amdalib/c1_whi_ne_.pro b/amda_plus/amdalib/c1_whi_ne_.pro
new file mode 100644
index 0000000..af8016a
--- /dev/null
+++ b/amda_plus/amdalib/c1_whi_ne_.pro
@@ -0,0 +1,50 @@
+
+; $Id: whi_ne_c1_.pro,v 1.1 2010/02/22 09:36:19 budnik Exp $
+;
+function c1_whi_ne_, StartTime, TimeInt, Time, RetSize, MaxSampling, close=close 
+ common GraphC, graph, graphN
+ common WHINEC1_COM, ID
+
+   FillValue = -1.0
+ 
+   if n_elements(ID) EQ 0 then ID = -1L
+   Sampling = 1.5
+   MaxSampling = 104.0
+   Size = long(graph[graphN].DeltaT/sampling)
+
+    VI = 'clust1:whi:whi'    
+    Val = fltarr(Size)
+    
+    Time = dblarr(Size)
+
+ 
+    RetSize = call_external(!PROJLIB + 'libParam.so', 'getLocalData', $
+                             ID, VI, 'Density', StartTime, TimeInt, Size, Time, Val)
+ 
+     if KEYWORD_SET(CLOSE) then begin
+      error = call_external(!DDLIB+'DD_idl.so','CloseID',ID)
+      ID = -1L
+     endif
+
+    if (RetSize LE 0) then begin
+      Time = 0.D0
+      return, 0.0
+   endif
+   
+   Time=Time[0:Retsize-1]
+   Val=Val[0:Retsize-1]
+   
+   num_gap = where(Val ne FillValue, Cntr)
+  
+   if Cntr le 0 then begin
+       Retsize = -999
+       Time = 0.D0
+       return, [0.0, 0.0, 0.0]
+   endif
+   
+    Time=Time[num_gap]
+    Val=Val[num_gap]
+    Retsize=Cntr
+  
+return, Val
+end
diff --git a/amda_plus/amdalib/c1_whi_ne_init.pro b/amda_plus/amdalib/c1_whi_ne_init.pro
new file mode 100644
index 0000000..f88465c
--- /dev/null
+++ b/amda_plus/amdalib/c1_whi_ne_init.pro
@@ -0,0 +1,38 @@
+;-----------------WHISPER-PP_INIT--------------------------
+;
+pro c1_whi_ne_INIT,  LIN = LIN, LOG = LOG, PSYM = psym, COLOR = color, CONTRAST = CONTRAST, UNCERTAINTY =  UNCERTAINTY 
+
+common GraphC, graph, GraphN, Item
+common Request, List, StartTime, TimeInt
+   
+ names = ['Contrast', '0.7-1.0', '0.4-0.7', '0.0-0.4', 'other src']  
+ 
+ quality = '0';
+ error = '0';
+
+ pen = !dnc-1  & symbol = -3;
+ 
+ if (KEYWORD_SET(COLOR)) then pen = color; 
+ if (KEYWORD_SET(PSYM)) then symbol = psym;
+
+ if KEYWORD_SET(CONTRAST) then quality = '1'; 
+ if KEYWORD_SET(UNCERTAINTY) then error = '1'; 
+
+graph[GraphN].names = PTR_NEW(/ALLOCATE_HEAP)
+*(graph[GraphN].names) =  names;
+graph[GraphN].Type = 'STAFF_T'
+graph[GraphN].DataN = 3
+graph[GraphN].SetCommonF[0] = 'whi_ne_com, 1'
+graph[GraphN].SetCommonF[1] = 'whi_ne_qual_com, 1'
+graph[GraphN].SetCommonF[2] = 'whi_ne_err_com, 1'
+graph[GraphN].GetDataF[0] ='get_whi_ne, 1'
+graph[GraphN].GetDataF[1] ='get_whi_ne_qual, 1'
+graph[GraphN].GetDataF[2] ='get_whi_ne_err, 1'
+graph[GraphN].DeltaT = (graph[GraphN].TotalTime + 10.0D0) <  18000.0D0 
+graph[GraphN].Ly.title = 'C1 WHI!CNe, cm!U-3 '
+graph[GraphN].AxisF =  KEYWORD_SET(LIN) ?  'lineaxis,0' : 'logaxis'
+graph[GraphN].PlotF = 'plot_whi_ne_new,' + quality + ','+ error + ','+ string(pen) + ',' + string(symbol)
+ 
+return
+end
+;------------------------------------------------------------
diff --git a/amda_plus/amdalib/c2_whi_ne_.pro b/amda_plus/amdalib/c2_whi_ne_.pro
new file mode 100644
index 0000000..ab1b17a
--- /dev/null
+++ b/amda_plus/amdalib/c2_whi_ne_.pro
@@ -0,0 +1,50 @@
+
+; $Id: whi_ne_c2_.pro,v 1.1 2010/02/22 09:36:19 budnik Exp $
+;
+function c2_whi_ne_c, StartTime, TimeInt, Time, RetSize, MaxSampling, close=close 
+ common GraphC, graph, graphN
+ common WHINEC2_COM, ID
+
+   FillValue = -1.0
+ 
+   if n_elements(ID) EQ 0 then ID = -1L
+   Sampling = 1.5
+   MaxSampling = 104.0
+   Size = long(graph[graphN].DeltaT/sampling)
+
+    VI = 'clust2:whi:whi'    
+    Val = fltarr(Size)
+    
+    Time = dblarr(Size)
+
+ 
+    RetSize = call_external(!PROJLIB + 'libParam.so', 'getLocalData', $
+                             ID, VI, 'Density', StartTime, TimeInt, Size, Time, Val)
+ 
+     if KEYWORD_SET(CLOSE) then begin
+      error = call_external(!DDLIB+'DD_idl.so','CloseID',ID)
+      ID = -1L
+     endif
+
+    if (RetSize LE 0) then begin
+      Time = 0.D0
+      return, 0.0
+   endif
+   
+   Time=Time[0:Retsize-1]
+   Val=Val[0:Retsize-1]
+   
+   num_gap = where(Val ne FillValue, Cntr)
+  
+   if Cntr le 0 then begin
+       Retsize = -999
+       Time = 0.D0
+       return, [0.0, 0.0, 0.0]
+   endif
+   
+    Time=Time[num_gap]
+    Val=Val[num_gap]
+    Retsize=Cntr
+  
+return, Val
+end
diff --git a/amda_plus/amdalib/c2_whi_ne_init.pro b/amda_plus/amdalib/c2_whi_ne_init.pro
new file mode 100644
index 0000000..f20686d
--- /dev/null
+++ b/amda_plus/amdalib/c2_whi_ne_init.pro
@@ -0,0 +1,38 @@
+;-----------------WHISPER-PP_INIT--------------------------
+;
+pro c2_whi_ne_INIT,  LIN = LIN, LOG = LOG, PSYM = psym, COLOR = color, CONTRAST = CONTRAST, UNCERTAINTY =  UNCERTAINTY 
+
+common GraphC, graph, GraphN, Item
+common Request, List, StartTime, TimeInt
+   
+ names = ['Contrast', '0.7-1.0', '0.4-0.7', '0.0-0.4', 'other src']  
+ 
+ quality = '0';
+ error = '0';
+
+ pen = !dnc-1  & symbol = -3;
+ 
+ if (KEYWORD_SET(COLOR)) then pen = color; 
+ if (KEYWORD_SET(PSYM)) then symbol = psym;
+
+ if KEYWORD_SET(CONTRAST) then quality = '1'; 
+ if KEYWORD_SET(UNCERTAINTY) then error = '1'; 
+
+graph[GraphN].names = PTR_NEW(/ALLOCATE_HEAP)
+*(graph[GraphN].names) =  names;
+graph[GraphN].Type = 'STAFF_T'
+graph[GraphN].DataN = 3
+graph[GraphN].SetCommonF[0] = 'whi_ne_com, 2'
+graph[GraphN].SetCommonF[1] = 'whi_ne_qual_com, 2'
+graph[GraphN].SetCommonF[2] = 'whi_ne_err_com, 2'
+graph[GraphN].GetDataF[0] ='get_whi_ne, 2'
+graph[GraphN].GetDataF[1] ='get_whi_ne_qual, 2'
+graph[GraphN].GetDataF[2] ='get_whi_ne_err, 2'
+graph[GraphN].DeltaT = (graph[GraphN].TotalTime + 10.0D0) <  18000.0D0 
+graph[GraphN].Ly.title = 'C2 WHI!CNe, cm!U-3 '
+graph[GraphN].AxisF =  KEYWORD_SET(LIN) ?  'lineaxis,0' : 'logaxis'
+graph[GraphN].PlotF = 'plot_whi_ne_new,' + quality + ','+ error + ','+ string(pen) + ',' + string(symbol)
+ 
+return
+end
+;------------------------------------------------------------
diff --git a/amda_plus/amdalib/c3_hia_pad_init.pro b/amda_plus/amdalib/c3_hia_pad_init.pro
new file mode 100644
index 0000000..7df002d
--- /dev/null
+++ b/amda_plus/amdalib/c3_hia_pad_init.pro
@@ -0,0 +1,33 @@
+
+pro c3_hia_pad_init,  PA = PA,  ENERGY = energy, LIN = lin, LOG = log
+
+Pitch = '0';
+PitchValue = [  '0-11.25','11.25-22.5','22.5-33.75','33.75-45', $
+		'45-56.25','56.25-67.5','67.5-78.75', $ 
+		'78.75-90','90-101.25','101.25-112.5','112.5-123.75', $
+		'123.75-135','135-146.25','146.25-157.5','157.5-168.75', $
+		'168.75-180'];
+ 
+if (KEYWORD_SET(PA)) then Pitch = string(PA-1);
+    
+En = 31;
+if (KEYWORD_SET(ENERGY)) then En = Energy;
+
+    
+       if (En LT 31) then begin
+          common GraphC, graph, GraphN, Item
+          graph[GraphN].Type = 'FGM_T' 
+	  graph[GraphN].DataN = 1
+	  graph[GraphN].SetCommonF[0] = 'pad_hia_com, 3' 
+	  graph[GraphN].GetDataF[0] ='get_pad_hia, 3'
+	  graph[GraphN].DeltaT = (Graph[GraphN].TotalTime + 60.0D0) <  18000.0D0 
+	  graph[GraphN].Ly.title = 'C3 hia Flux !CP_'+PitchValue[Pitch] + ' E eV '; 
+	  graph[GraphN].AxisF =  KEYWORD_SET(log) ?  'logaxis' : 'lineaxis, 0';
+	  graph[GraphN].PlotF = 'spec3D_comp_plot,' + string(Pitch) +','+string(En);
+   endif else begin
+	  functionName = 'P' + strtrim(Pitch,1) + '_hia_c3_init';
+	  call_procedure, functionName;
+   endelse
+
+return
+end
\ No newline at end of file
diff --git a/amda_plus/amdalib/c3_whi_ne_.pro b/amda_plus/amdalib/c3_whi_ne_.pro
new file mode 100644
index 0000000..dc1c34c
--- /dev/null
+++ b/amda_plus/amdalib/c3_whi_ne_.pro
@@ -0,0 +1,50 @@
+
+; $Id: whi_ne_c3_.pro,v 1.1 2010/02/22 09:36:19 budnik Exp $
+;
+function c3_whi_ne_, StartTime, TimeInt, Time, RetSize, MaxSampling, close=close 
+ common GraphC, graph, graphN
+ common WHINEC3_COM, ID
+
+   FillValue = -1.0
+ 
+   if n_elements(ID) EQ 0 then ID = -1L
+   Sampling = 1.5
+   MaxSampling = 104.0
+   Size = long(graph[graphN].DeltaT/sampling)
+
+    VI = 'clust3:whi:whi'    
+    Val = fltarr(Size)
+    
+    Time = dblarr(Size)
+
+ 
+    RetSize = call_external(!PROJLIB + 'libParam.so', 'getLocalData', $
+                             ID, VI, 'Density', StartTime, TimeInt, Size, Time, Val)
+ 
+     if KEYWORD_SET(CLOSE) then begin
+      error = call_external(!DDLIB+'DD_idl.so','CloseID',ID)
+      ID = -1L
+     endif
+
+    if (RetSize LE 0) then begin
+      Time = 0.D0
+      return, 0.0
+   endif
+   
+   Time=Time[0:Retsize-1]
+   Val=Val[0:Retsize-1]
+   
+   num_gap = where(Val ne FillValue, Cntr)
+  
+   if Cntr le 0 then begin
+       Retsize = -999
+       Time = 0.D0
+       return, [0.0, 0.0, 0.0]
+   endif
+   
+    Time=Time[num_gap]
+    Val=Val[num_gap]
+    Retsize=Cntr
+  
+return, Val
+end
diff --git a/amda_plus/amdalib/c3_whi_ne_init.pro b/amda_plus/amdalib/c3_whi_ne_init.pro
new file mode 100644
index 0000000..b05ba23
--- /dev/null
+++ b/amda_plus/amdalib/c3_whi_ne_init.pro
@@ -0,0 +1,38 @@
+;-----------------WHISPER-PP_INIT--------------------------
+;
+pro c3_whi_ne_INIT,  LIN = LIN, LOG = LOG, PSYM = psym, COLOR = color, CONTRAST = CONTRAST, UNCERTAINTY =  UNCERTAINTY 
+
+common GraphC, graph, GraphN, Item
+common Request, List, StartTime, TimeInt
+   
+ names = ['Contrast', '0.7-1.0', '0.4-0.7', '0.0-0.4', 'other src']  
+ 
+ quality = '0';
+ error = '0';
+
+ pen = !dnc-1  & symbol = -3;
+ 
+ if (KEYWORD_SET(COLOR)) then pen = color; 
+ if (KEYWORD_SET(PSYM)) then symbol = psym;
+
+ if KEYWORD_SET(CONTRAST) then quality = '1'; 
+ if KEYWORD_SET(UNCERTAINTY) then error = '1'; 
+
+graph[GraphN].names = PTR_NEW(/ALLOCATE_HEAP)
+*(graph[GraphN].names) =  names;
+graph[GraphN].Type = 'STAFF_T'
+graph[GraphN].DataN = 3
+graph[GraphN].SetCommonF[0] = 'whi_ne_com, 3'
+graph[GraphN].SetCommonF[1] = 'whi_ne_qual_com, 3'
+graph[GraphN].SetCommonF[2] = 'whi_ne_err_com, 3'
+graph[GraphN].GetDataF[0] ='get_whi_ne, 3'
+graph[GraphN].GetDataF[1] ='get_whi_ne_qual, 3'
+graph[GraphN].GetDataF[2] ='get_whi_ne_err, 3'
+graph[GraphN].DeltaT = (graph[GraphN].TotalTime + 10.0D0) <  18000.0D0 
+graph[GraphN].Ly.title = 'C3 WHI!CNe, cm!U-3 '
+graph[GraphN].AxisF =  KEYWORD_SET(LIN) ?  'lineaxis,0' : 'logaxis'
+graph[GraphN].PlotF = 'plot_whi_ne_new,' + quality + ','+ error + ','+ string(pen) + ',' + string(symbol)
+ 
+return
+end
+;------------------------------------------------------------
diff --git a/amda_plus/amdalib/c4_whi_ne_.pro b/amda_plus/amdalib/c4_whi_ne_.pro
new file mode 100644
index 0000000..101f787
--- /dev/null
+++ b/amda_plus/amdalib/c4_whi_ne_.pro
@@ -0,0 +1,50 @@
+
+; $Id: whi_ne_c4_.pro,v 1.1 2010/02/22 09:36:19 budnik Exp $
+;
+function c4_whi_ne_, StartTime, TimeInt, Time, RetSize, MaxSampling, close=close 
+ common GraphC, graph, graphN
+ common WHINEC4_COM, ID
+
+   FillValue = -1.0
+ 
+   if n_elements(ID) EQ 0 then ID = -1L
+   Sampling = 1.5
+   MaxSampling = 104.0
+   Size = long(graph[graphN].DeltaT/sampling)
+
+    VI = 'clust4:whi:whi'    
+    Val = fltarr(Size)
+    
+    Time = dblarr(Size)
+
+ 
+    RetSize = call_external(!PROJLIB + 'libParam.so', 'getLocalData', $
+                             ID, VI, 'Density', StartTime, TimeInt, Size, Time, Val)
+ 
+     if KEYWORD_SET(CLOSE) then begin
+      error = call_external(!DDLIB+'DD_idl.so','CloseID',ID)
+      ID = -1L
+     endif
+
+    if (RetSize LE 0) then begin
+      Time = 0.D0
+      return, 0.0
+   endif
+   
+   Time=Time[0:Retsize-1]
+   Val=Val[0:Retsize-1]
+   
+   num_gap = where(Val ne FillValue, Cntr)
+  
+   if Cntr le 0 then begin
+       Retsize = -999
+       Time = 0.D0
+       return, [0.0, 0.0, 0.0]
+   endif
+   
+    Time=Time[num_gap]
+    Val=Val[num_gap]
+    Retsize=Cntr
+  
+return, Val
+end
diff --git a/amda_plus/amdalib/c4_whi_ne_init.pro b/amda_plus/amdalib/c4_whi_ne_init.pro
new file mode 100644
index 0000000..5e3abdc
--- /dev/null
+++ b/amda_plus/amdalib/c4_whi_ne_init.pro
@@ -0,0 +1,38 @@
+;-----------------WHISPER-PP_INIT--------------------------
+;
+pro c4_whi_ne_INIT,  LIN = LIN, LOG = LOG, PSYM = psym, COLOR = color, CONTRAST = CONTRAST, UNCERTAINTY =  UNCERTAINTY 
+
+common GraphC, graph, GraphN, Item
+common Request, List, StartTime, TimeInt
+   
+ names = ['Contrast', '0.7-1.0', '0.4-0.7', '0.0-0.4', 'other src']  
+ 
+ quality = '0';
+ error = '0';
+
+ pen = !dnc-1  & symbol = -3;
+ 
+ if (KEYWORD_SET(COLOR)) then pen = color; 
+ if (KEYWORD_SET(PSYM)) then symbol = psym;
+
+ if KEYWORD_SET(CONTRAST) then quality = '1'; 
+ if KEYWORD_SET(UNCERTAINTY) then error = '1'; 
+
+graph[GraphN].names = PTR_NEW(/ALLOCATE_HEAP)
+*(graph[GraphN].names) =  names;
+graph[GraphN].Type = 'STAFF_T'
+graph[GraphN].DataN = 3
+graph[GraphN].SetCommonF[0] = 'whi_ne_com, 4'
+graph[GraphN].SetCommonF[1] = 'whi_ne_qual_com, 4'
+graph[GraphN].SetCommonF[2] = 'whi_ne_err_com, 4'
+graph[GraphN].GetDataF[0] ='get_whi_ne, 4'
+graph[GraphN].GetDataF[1] ='get_whi_ne_qual, 4'
+graph[GraphN].GetDataF[2] ='get_whi_ne_err, 4'
+graph[GraphN].DeltaT = (graph[GraphN].TotalTime + 10.0D0) <  18000.0D0 
+graph[GraphN].Ly.title = 'C4 WHI!CNe, cm!U-3 '
+graph[GraphN].AxisF =  KEYWORD_SET(LIN) ?  'lineaxis,0' : 'logaxis'
+graph[GraphN].PlotF = 'plot_whi_ne_new,' + quality + ','+ error + ','+ string(pen) + ',' + string(symbol)
+ 
+return
+end
+;------------------------------------------------------------
diff --git a/amda_plus/amdalib/cain.pro b/amda_plus/amdalib/cain.pro
new file mode 100644
index 0000000..e56cba8
--- /dev/null
+++ b/amda_plus/amdalib/cain.pro
@@ -0,0 +1,26 @@
+pro cain, Time, Orbit
+
+  FillValue = -1.e31
+  Number = N_elements(Time)
+  Bmso = fltarr(3)
+  Rm = 3393.0;
+
+  num31 = where(Orbit[0,*] ne FillValue, Index31)
+  if (Index31 le 0) then return
+
+  Time = Time[num31];
+  Orbit = Orbit[*,num31]*Rm;
+  err = call_external(!PROJLIB + '/idl_cain.so', 'CainSetUp');
+
+  for i = 0L, Index31-1L do begin
+          julday = doubl2jd(Time[i]);
+          err = call_external(!PROJLIB + '/idl_cain.so', 'CainField', julday, Orbit[*,i], Bmso);
+          if (Bmso[0] eq 0.0) then Bmso(*) = FillValue; 
+          Orbit[*,i] =  Bmso;                
+  endfor
+
+ return
+end
+
+  
+  
\ No newline at end of file
diff --git a/amda_plus/amdalib/doubl2jd.pro b/amda_plus/amdalib/doubl2jd.pro
new file mode 100644
index 0000000..f5ab926
--- /dev/null
+++ b/amda_plus/amdalib/doubl2jd.pro
@@ -0,0 +1,22 @@
+;----------------------------------------------------------
+;                  IMA COMMON LIB (IDL)
+;                     doubl2jd.pro
+;                         V.1.0
+;
+;    Function which Julian Day time from DD double time
+;
+;    Versions:
+;       Jan 25 2005, V.1.0
+;===========================================================
+ 
+function Doubl2JD, Time  
+     CTimeS =  call_external(!DDLIB + 'DD_idl.so','GetTime', Time, /S_VALUE)
+     Year =  fix(STRMID(CTimeS, 0, 4) )
+     Day =  double(STRMID(CTimeS, 4, 3))
+     Hour =  fix(STRMID(CTimeS, 7, 2))
+     Minute =  fix(STRMID(CTimeS, 9, 2))
+     Second =  fix(STRMID(CTimeS, 11, 2))
+     JDReal = JULDAY(01, 01, Year, Hour, Minute, Second)  +  Day
+   return,JDReal 
+end
+   
diff --git a/amda_plus/amdalib/dst_init.pro b/amda_plus/amdalib/dst_init.pro
new file mode 100644
index 0000000..0cba9aa
--- /dev/null
+++ b/amda_plus/amdalib/dst_init.pro
@@ -0,0 +1,23 @@
+;----------------DST_INIT--------------------------
+; 
+pro DST_INIT, LOG=LOG, LIN=LIN, RED=RED, BLUE=BLUE, GREEN=GREEN
+
+common GraphC, graph, GraphN, Item
+pen = 0
+
+ if KEYWORD_SET(RED) then pen = 3
+ if KEYWORD_SET(BLUE) then pen = 1  
+ if KEYWORD_SET(GREEN) then pen = 2
+   
+graph[GraphN].Type = 'DST_T'
+graph[GraphN].DataN = 1
+graph[GraphN].SetCommonF[0] = 'dstcom' 
+graph[GraphN].GetDataF[0] ='getdst' 
+graph[GraphN].DeltaT = (graph[graphN].TotalTime+120.0D0) < 86400.0D0
+graph[GraphN].Ly.title = 'DST, nT'
+graph[GraphN].AxisF = 'lineaxis,' + string(graph[graphN].TotalTime)
+graph[GraphN].PlotF = 'dstplot,' + string(pen);
+ 
+return
+end
+;------------------------------------------------------------
diff --git a/amda_plus/amdalib/dstplot.pro b/amda_plus/amdalib/dstplot.pro
new file mode 100644
index 0000000..93b41d2
--- /dev/null
+++ b/amda_plus/amdalib/dstplot.pro
@@ -0,0 +1,33 @@
+;============================================================
+;
+;     DST Time Profile PLOT
+;
+;  
+;=============================================================
+
+  pro dstplot, pen
+; procedure to plot prepared data on prepared graph
+     
+  common GraphC, Graph, GraphN
+  colour = [!dnc - 1, !dnc*20/256, !dnc*90/256, !dnc - 2]  
+
+  Time =  Graph[GraphN].Time[0]
+  if (N_elements(*Time) eq 0) then return    
+  Val = (*Graph[GraphN].Val[0])
+  numMinMax = where(Val gt -10000.0, IndexMinMax)
+  if IndexMinMax LE 0 then return 
+  MinVal = min(Val[numMinMax])
+  MaxVal = max(Val[numMinMax]) 
+  if Graph[GraphN].Ly.range[0] eq Graph[GraphN].Ly.range[1] then begin
+                  Graph[GraphN].Ly.range = [MinVal, MaxVal]
+                  Graph[GraphN].Ly.style = 0
+   endif else Graph[GraphN].Ly.style = 1 
+  
+    !y = Graph[GraphN].Ly
+    
+    if (execute(Graph[GraphN].AxisF) NE 1) then plot, *Time, Val, PSYM = 10, color = !DNC-1  else $ 
+    oplot, *Time, Val, PSYM = 10,  color=colour[pen];
+  
+return
+end
+;--------------------------------------------------------------------
diff --git a/amda_plus/amdalib/e_mgs_omni_init.pro b/amda_plus/amdalib/e_mgs_omni_init.pro
new file mode 100644
index 0000000..7fc6ba7
--- /dev/null
+++ b/amda_plus/amdalib/e_mgs_omni_init.pro
@@ -0,0 +1,64 @@
+;---------------------------------------------------
+; $Id: e_mgs_omni_init.pro,v 1.3 2013/03/28 08:40:06 budnik Exp $
+;              MGS ER SPECTRA  OMNI init
+;                
+;----------------------------------------------------
+
+pro e_mgs_omni_init, LOG = log, LIN = lin, PSYM = psym, COLOR = color, AY1TITLE = AY1Title, $
+                     ; spectra
+                     MINCOUNT = minCount, MAXCOUNT = maxCount, BACKGRDCHAN = backgrdChan, BACKGRDVAL = backgrdVal, $
+                     CHANNEL = channel, Energy = energy, ENERGYMIN = energymin, ENERGYMAX =  energymax, $
+                     
+                     ; vector                     
+                     DELAY = delay, $                      
+                     ; all additional keywords
+                    _EXTRA = e
+
+  common Request, List, StartTime, TimeInt
+  common GraphC, graph, GraphN, Item
+
+ pen = !dnc-1 & comp = 100 & symbol = -3;
+ 
+ if (KEYWORD_SET(COLOR)) then pen = color; 
+ if (KEYWORD_SET(PSYM)) then symbol = psym;
+   
+  graph[GraphN].names = PTR_NEW(/ALLOCATE_HEAP)
+  *(graph[GraphN].names) = 'log Flux 1/(cm!U2!N*s*ster*eV)'
+  
+  graph[GraphN].Type = 'ER_T'
+  graph[GraphN].DataN = 1
+  graph[GraphN].SetCommonF[0] = 'e_mgs_omni_com'
+  graph[GraphN].GetDataF[0] = 'get_e_mgs_omni'
+
+  graph[GraphN].DeltaT = (Graph[GraphN].TotalTime + 60.0D0) < 36100.0D0
+
+EnMin = 11;
+EnMax = 16217;
+
+energyTitle = '';
+
+  if (KEYWORD_SET(energymin)) then begin
+   EnMin = energymin;
+   if (KEYWORD_SET(energymax)) then EnMax =  energymax else EnMax = energymin;
+   energyTitle = energymin eq energymax ? '!CE ' + strtrim(string(energymin),1) + 'eV' : '!CE ' + strtrim(string(energymin),1) + '-'+ strtrim(string(energymax),1) + ' eV'; 
+  endif else  energyTitle = '!Call energies';
+
+  options = string(EnMin) +','+string(EnMax);
+
+   
+  if (KEYWORD_SET(ENERGYMIN)) then begin
+	      graph[GraphN].AxisF =  KEYWORD_SET(log) ?  'logaxis' : 'lineaxis, 0';
+	      ytitle = 'MGS e-Flux (cm!U2!N*s*st*eV)!U-1' + energyTitle;
+	      PlotF = 'spec_comp_plot, '+ options;                
+  endif else begin
+     ytitle = 'MGS e-Flux!C Energy, eV' 
+     PlotF = 'e_mgs_omni_plot'
+  endelse
+
+ graph[GraphN].PlotF = PlotF;
+ if (KEYWORD_SET(AY1TITLE)) then graph[GraphN].Ly.title = AY1Title $
+ else graph[GraphN].Ly.title = yTitle
+ 
+return
+end
+;------------------------------------------------------------
diff --git a/amda_plus/amdalib/earthorbaxis.pro b/amda_plus/amdalib/earthorbaxis.pro
new file mode 100644
index 0000000..175ff9a
--- /dev/null
+++ b/amda_plus/amdalib/earthorbaxis.pro
@@ -0,0 +1,121 @@
+;==================================================
+;                 DD  
+;              ORBITAL OBJECTS
+;              mexorbaxis.pro
+;                   V.2.0
+; Modifications:
+;     19 May 2006: V.1.0, Fedorov
+;     09 Dec 2006: V.2.0, Fedorov, New approach for graphical environment
+;---------------------------------------------------
+; Implementation of all types of axis for orbital plot
+; Options:
+;   Key                  ToPlot
+; /CYL - cylindrical XR   0
+; /XY                     1
+; /XZ                     2
+; /YZ                     3
+;====================================================
+
+pro earthorbaxis, ToPlot
+common GraphC, graph, GraphN
+
+;------------ Set graphics Colors ------------------------
+ if (Graph[GraphN].Lx.range[0] eq Graph[GraphN].Lx.range[1]) then begin
+       Graph[GraphN].Lx.range[0] = -20;
+       Graph[GraphN].Lx.range[1] = 10; 
+ endif
+ if (Graph[GraphN].Ly.range[0] eq Graph[GraphN].Ly.range[1]) then begin
+       Graph[GraphN].Ly.range[0] = ToPlot eq 0 ? 0: -20;
+       Graph[GraphN].Ly.range[1] = 10;
+ endif
+ 
+ !x = Graph[GraphN].Lx
+ !y = Graph[GraphN].Ly
+
+  x = !x.range
+  y = !y.range
+  black = !DNC- 1
+  zero = fix(!DNC * 20.0/ 256.0 )
+  planet = fix(!DNC * 10.0/ 256.0)
+  bound =  fix(!DNC * 1.0/ 256.0)
+;------------------------------------------------------------
+
+  ThickPlanet = 2 
+  ThickBound =  2
+
+;------- main axis -----------------
+  case ToPlot of
+  0: begin
+      !x.title = 'X, R!DE'
+      !y.title = 'R, R!DE'
+     end
+  1: begin
+      !x.title = 'X, R!DE'
+      !y.title = 'Y, R!DE'
+     end
+  2: begin
+      !x.title = 'X, R!DE'
+      !y.title = 'Z, R!DE'
+     end
+  3: begin
+      !x.title = 'Y, R!DE'
+      !y.title = 'Z, R!DE'
+     end
+  endcase
+  
+  ;------ Plot main axis. Use common Graph system variables
+  plot,x,y,/nodata,/noerase,xstyle=1,ystyle=1,color=black,xminor=1, yminor=1, charsize=graph[GraphN].Lp.charsize
+     
+  ;------- plot Zero lines --------------------- 
+  oplot,x,[0,0],color=zero, thick = 1
+  oplot,[0,0],y,color=zero, thick = 1
+  
+  ;------- plot Earth ---------------------
+  dal = 2.0 * !PI / 60.
+  if ToPlot EQ 0 then $ 
+       al = dal * findgen(31) $
+  else al = dal * findgen(61) 
+    
+  xx = cos(al)
+  yy = sin(al)
+  oplot,xx,yy,color=black, thick = ThickPlanet
+    
+  if ToPlot EQ 0 then begin
+     ;---- Plot boundaries for cylindrical plot
+     ;----------------------- Bow Shock -----------------------------
+   RamPress = 1.5  
+   theta = (135.*!pi/180.)*findgen(100)/100.
+   
+   
+  ; rr = 2.04/(1.0+1.02*cos(theta))
+   xx = fltarr(100)
+   yy = fltarr(100)
+   
+   epsilon = 0.81
+   L0 = 24.8
+   ramP = 1.8 
+   L_BS = L0*(RamPress/ramP)^(-1./6.)
+
+    rr=L_BS/(1.+epsilon*COS(theta))  
+    xx = rr *cos(theta)
+    yy = rr*sin(theta)
+ 
+   oplot,xx,yy,color=bound,  thick = ThickBound
+   oplot,xx,-yy,color=bound, thick = ThickBound
+
+    ;----------------------- MP Shue-----------------------------
+    Bz = -1.0
+    
+    alpha=(.58-.007*Bz)*(1.+0.024*alog(RamPress))
+    r0=(10.22+1.29*tanh(0.184*(Bz+8.14)))*RamPress^(-1./6.6)
+    rr=r0*(2./(1.+COS(theta)))^alpha
+    
+     xx = rr*cos(theta)
+     yy = rr*sin(theta)
+   
+     oplot,xx,yy,color=bound,  thick = ThickBound
+     oplot,xx,-yy,color=bound, thick = ThickBound
+     
+  endif
+return
+end
diff --git a/amda_plus/amdalib/elscntplot.pro b/amda_plus/amdalib/elscntplot.pro
new file mode 100755
index 0000000..788a6ba
--- /dev/null
+++ b/amda_plus/amdalib/elscntplot.pro
@@ -0,0 +1,133 @@
+;==========================================================
+;                DD DDMARS/DDVEX
+;                 elscntplot.pro
+;    
+;-----------------------------------------------------------
+
+pro elscntplot, Mission, anodStart, anodStop, enMin, enMax
+
+common VexELS, VexELS, VexElsPlus
+common MexELS, MexELS, MexElsPlus
+common GraphC, Graph,GraphN, Item
+common request, List, StartTime, TimeInt
+   
+   cmd = 'ElsPlus = ' + Mission + 'ElsPlus'
+   R = execute(cmd);  
+   
+ ; Expand DeltaT a little : Get Energy Calibration
+ 
+  StD = call_external(!DDLIB+'DD_idl.so','GetDTime', StartTime, /D_VALUE)
+  DtD = call_external(!DDLIB+'DD_idl.so','GetDTime', TimeInt, /D_VALUE)
+  StD = StD - 100.0D0
+  DtD = DtD + 200.0D0
+  stloc = call_external(!DDLIB+'DD_idl.so','GetTime',StD, /S_VALUE)
+  dtloc = call_external(!DDLIB+'DD_idl.so','GetTime',DtD, /S_VALUE)
+  Size = Long(DtD/4. + 2)
+  Nen = 128;
+  Energy = fltarr(Nen, Size)
+  Tm = dblarr(Size)
+  ID = -1L;
+  
+  err = call_external(!PROJLIB + 'libplanetcom.so','SetMission_idl', Mission);
+  RetSize = call_external(!PROJLIB + 'els_idl.so','GetRef',   $
+                                                 ID,    $
+                                                 stloc, $
+                                                 dtloc, $
+                                                 Size,  $
+                                                 Tm,    $
+                                                 Energy)
+  if (err GE 0) then Tm  -= Graph[GraphN].TimeBase
+  err = call_external(!DDLIB +'DD_idl.so','CloseID',ID)
+
+; data 
+ 
+   Time = (*Graph[GraphN].Time[0]); 
+   N_Time = N_elements(Time);
+
+   Val = (*Graph[GraphN].Val[0]);
+   Val = temporary(reform(Val, 16, Nen, N_Time)); 
+   
+   num = where(abs(Tm - Time[N_Time/2]) EQ min(abs(Tm - Time[N_Time/2])));
+
+   E = Energy[*,num[0]]*ElsPlus.Sens[7];
+ 
+   if ((enmin eq enmax) and (enmin eq 0)) then begin      
+            enmax = E[0];
+            enmin = E[126];       
+   endif
+       
+   Data =  anodStop GT anodStart ? total(Val[anodStart:anodStop,*,*],1) : reform(Val[anodStart,*,*], 128, N_Time);
+
+; if reduced Energy Table  
+
+   reducedEnergy = E[0] LT 1000.0 ? 1 : 0; 
+  ; if reduced Energy Table expand time
+     if (reducedEnergy) then begin
+	Nen = 32;
+	enMax = enMax < 158.0; 
+        newTime = dblarr(N_Time*4);
+        for i = 0, N_Time-1 do for j = 0, 3 do newTime[i*4+j] = Time[i] + double(j);
+        Time = newTime; 
+        Data = reform(Data, Nen, N_Time*4);
+        N_Time *= 4;    
+        E = E(0:Nen-1);                   
+     endif  
+     
+    E[Nen-1] = E[Nen-2]; 
+    EBounds = fltarr(Nen+1);
+    EBounds[0] = E[0];
+    EBounds[Nen] = E[Nen-1]; 
+    for ie = 1, Nen-1 do EBounds(ie) = sqrt(E(ie-1)*E(ie)); 
+   
+    num0 = where(EBounds ge enMin, Index0);
+    num1 = where(EBounds ge enMax, Index1);
+ 
+    if (Index1 eq Nen+1) then begin
+	  nodatafortimeinterval
+	  return
+    endif
+
+    if (Index1 eq 0)  then numStop = 0 else  numStop = num1[Index1-1];
+
+    if (Index0 eq Nen+1) then numStart = 31 else numStart = num0[Index0-1];
+
+    Data =  numStart ne numStop ? total(Data[numStop:numStart,*],1) : reform(Data[numStart,*], N_Time);
+ ;   Data = IndexE gt 1 ? total(Data[numE,*],1) : reform(Data[numE[0],*], N_Time);
+
+  ;  if (avEnergy) then Data /= IndexE;
+  ;  if (avAngle) then Data /= (anodStop-anodStart+1); 
+  
+    numMinMax = where(finite(Data), IndexMinMax)
+ 
+  ;--------------------- No DATA - just axes -----------------------
+ 
+  if (IndexMinMax LE 0) then begin
+        nodatafortimeinterval  
+        return
+  endif
+
+  if (Time[0] GT Graph[GraphN].TotalTime) then begin
+        nodatafortimeinterval
+        return
+  endif
+ ;-------------------------------------------------------------------
+  
+  ;TODO test mode   if E(1) EQ E(126) then begin ; The test mode, just plot everything???         
+    MinVal = min(Data[numMinMax]);   
+    MaxVal = max(Data[numMinMax]);
+   
+    if Graph[GraphN].Ly.range[0] eq Graph[GraphN].Ly.range[1] then begin
+                Graph[GraphN].Ly.range = Graph[GraphN].AxisF eq 'logaxis' ? [MinVal, MaxVal] : [0.0, MaxVal]
+                Graph[GraphN].Ly.style = 0
+    endif else Graph[GraphN].Ly.style = 1
+    
+    !y = Graph[GraphN].Ly;
+    
+     
+    if (execute(Graph[GraphN].AxisF) NE 1) then plot, Time, Data, MAX_VALUE=MaxValue,  color = !dnc-1, /NODATA, /NOERASE 
+    oplot, Time, Data,  MAX_VALUE=MaxValue, color = !dnc-1 
+
+        
+return
+end  
+;--------------------------------------------------------------------
diff --git a/amda_plus/amdalib/elsspecplot.pro b/amda_plus/amdalib/elsspecplot.pro
new file mode 100755
index 0000000..828ea3c
--- /dev/null
+++ b/amda_plus/amdalib/elsspecplot.pro
@@ -0,0 +1,160 @@
+;==========================================================
+;                DD DDMARS/DDVEX
+;                 elsetplot.pro
+;                     V.3.2
+;     Constructor of ELSET object
+;     Plot of the ET spectrogram of ELS count.
+; Mandatory arguments: FirstAnode, LastAnode
+; Keywords:            no keywords
+; Resource control the color scale
+;
+; Versions:
+;      28 Jan 2004: V.1.0
+;      18 han 2005: V.2.0  Fedorov, variable energy range
+;      30 May 2007: V.3.2, Fedorov. Anodes interval. Blue background
+;-----------------------------------------------------------
+
+pro elsspecplot, Mission, anodStart, anodStop 
+
+common VexELS, VexELS, VexElsPlus
+common MexELS, MexELS, MexElsPlus
+common GraphC, Graph,GraphN, Item
+common request, List, StartTime, TimeInt
+   
+   cmd = 'ElsPlus = ' + Mission + 'ElsPlus'
+   R = execute(cmd);  
+   
+ ; Expand DeltaT a little : Get Energy Calibration
+ 
+  StD = call_external(!DDLIB+'DD_idl.so','GetDTime', StartTime, /D_VALUE)
+  DtD = call_external(!DDLIB+'DD_idl.so','GetDTime', TimeInt, /D_VALUE)
+  StD = StD - 100.0D0
+  DtD = DtD + 200.0D0
+  stloc = call_external(!DDLIB+'DD_idl.so','GetTime',StD, /S_VALUE)
+  dtloc = call_external(!DDLIB+'DD_idl.so','GetTime',DtD, /S_VALUE)
+  Size = Long(DtD/4. + 2)
+  Energy = fltarr(128, Size)
+  Tm = dblarr(Size)
+  ID = -1L;
+  
+  err = call_external(!PROJLIB + 'libplanetcom.so','SetMission_idl', Mission);
+  RetSize = call_external(!PROJLIB + 'els_idl.so','GetRef',   $
+                                                 ID,    $
+                                                 stloc, $
+                                                 dtloc, $
+                                                 Size,  $
+                                                 Tm,    $
+                                                 Energy)
+
+ 
+  if (err GE 0) then Tm  -= Graph[GraphN].TimeBase
+  err = call_external(!DDLIB +'DD_idl.so','CloseID',ID)
+  
+   Time = (*Graph[GraphN].Time[0])
+   N_Time = N_elements(Time);
+       
+   EnumbFull = 128
+   EnumbReduced = 31
+
+   E = fltarr(EnumbFull)
+
+  ;-------- Cat in the Energy range ------------
+   E0 = Graph[GraphN].Ly.range[0] eq Graph[GraphN].Ly.range[1] ? 0.610171 : Graph[GraphN].Ly.range[0]
+   E1 = Graph[GraphN].Ly.range[0] eq Graph[GraphN].Ly.range[1] ? 20832.0: Graph[GraphN].Ly.range[1]
+   
+    Val = (*Graph[GraphN].Val[0])   
+    Val = temporary(reform(Val, 16, 128, N_Time)) 
+    LocVal =  anodStop GT anodStart ? total(Val[anodStart:anodStop,*,*],1) : reform(Val[anodStart,*,*], 128, N_Time);
+ 
+    numMinMax = where(finite(LocVal), IndexMinMax)
+ 
+   if (Graph[GraphN].Ly.range[0] eq Graph[GraphN].Ly.range[1]) then  $
+                                       Graph[GraphN].Ly.range = [E0, E1]
+         
+  Graph[GraphN].Ly.style = 1
+
+  !y = Graph[GraphN].Ly
+
+   plot_io, graph[GraphN].Lx.range, graph[GraphN].Ly.range, /nodata, /noerase, ystyle = 1, $
+                              ytickformat='yticks', charsize=graph[GraphN].Lp.charsize*0.8, color = !dnc-1
+                                 
+  ;--------------------- No DATA - just axes -----------------------
+ 
+  if (IndexMinMax LE 0) then begin
+        nodatafortimeinterval  
+         return
+  endif
+  if (Time[0] GT Graph[GraphN].TotalTime) then begin
+        nodatafortimeinterval
+         return
+  endif
+  MinVal = min(LocVal[numMinMax]) > 1.0
+  MaxVal = max(LocVal[numMinMax])                            
+
+    Step = Graph[GraphN].Sampling[0] > Graph[GraphN].Step;
+    StepMax = Graph[GraphN].MaxSampling[0] > Step
+ ;-----------   NOW PLOT SPECTRA
+    alogMin = alog(MinVal)
+    KF = float(!DNC - 2) /(alog(MaxVal) - alogMin)
+    xx = fltarr(4) & yy = fltarr(4)
+ 
+     for i = 0, N_Time - 2 do begin
+      
+        num = where(abs(Tm - Time[i]) EQ min(abs(Tm - Time[i])));
+        E =  anodStop GT anodStart ? Energy[*,num[0]]*ElsPlus.Sens[4] : Energy[*,num[0]]*ElsPlus.Sens[anodStart];
+        FullEnergy = 1;  
+        if (mission eq "VEX") then FullEnergy = E[0] GT 1000.0 ? 1 : 0; 
+ 
+         Enumb = FullEnergy ? EnumbFull :EnumbReduced
+
+        eindex = where((E[0:Enumb-1] GE E0) AND $
+			  (E[0:Enumb-1] LE E1) AND $
+			(E[0:Enumb-1] GT 0.0),counte)
+  
+        if (FullEnergy) then E[127] = E[126] 	    		    
+	    if (counte GT 0) AND (E[1] NE E[126]) then begin
+		EBounds = fltarr(ENumb+1)
+		EBounds(min(eindex)) = E(min(eindex))
+		EBounds(max(eindex+1)) = E(max(eindex))
+		for ie = min(eindex+1), max(eindex) do EBounds(ie) = sqrt(E(ie-1)*E(ie))
+	      endif else begin
+	      if E(1) EQ E(126) then begin ; The test mode, just plot everything
+		  eindex = indgen(128)
+		  step = exp(alog(E1/E0)/127.0)
+		  E = E0 * step^findgen(128)
+		  EBounds = fltarr(ENumb+1)
+		  EBounds(min(eindex)) = E(min(eindex))
+		  EBounds(max(eindex+1)) = E(max(eindex))
+		  for ie = min(eindex+1), max(eindex) do EBounds(ie) = sqrt(E(ie-1)*E(ie))
+	      endif else ERRFLAG = 1   
+	    endelse  
+        if (not FullEnergy) then for kk = 0, 30 do for kkk = 1, 3 do LocVal[kk,i] += LocVal[kk+kkk*32,i]/4.0
+
+        xx[0] = Time[i] > 0.0
+        xx[1] = xx[0]
+        xx[2] = Time[i+1] < Time[i] + StepMax
+        if (xx[2] GT graph[GraphN].TotalTime) then xx[2] = graph[GraphN].TotalTime
+        xx[3]= xx[2]
+      
+        if (xx[0] LT graph[GraphN].TotalTime AND xx[2] LE graph[GraphN].TotalTime) then begin
+           for k = min(eindex), max(eindex) do begin
+                  yy[0] = EBounds[k]
+                  yy[1] = EBounds[k+1]
+                  yy[2]=yy[1]
+                  yy[3]=yy[0]
+                  lcount = LocVal[k,i]
+                  cl = finite(lcount) ? fix(KF*(alog(lcount) - alogMin)) > 1 : 0;
+                  if (cl GT !DNC - 2) then  cl = !DNC - 2
+                  PolyFill, xx ,yy, color = cl, /data 
+            endfor          
+        endif
+     endfor
+
+;-------------------- Legend ----------------------------------------
+      spec_legend, MinVal, MaxVal
+;------------------ MIN-MAX------------------------------------------------
+      Graph[GraphN].Min  = MinVal
+ 
+return
+end  
+;--------------------------------------------------------------------
diff --git a/amda_plus/amdalib/get_ica_spec.pro b/amda_plus/amdalib/get_ica_spec.pro
new file mode 100644
index 0000000..a3683d5
--- /dev/null
+++ b/amda_plus/amdalib/get_ica_spec.pro
@@ -0,0 +1,46 @@
+;===========================================================
+;=============================================================
+
+pro Get_Ica_Spec, StartTime, TimeInt 
+
+common IcaSpecCom, Spec
+common GraphC, Graph, GraphN, Item
+common Etab, Flag, Tab
+
+;------------Get data-----------------------------
+
+    ID = Long(graph[GraphN].DataID[Item])
+
+    Size = Spec.DefSize
+    TimeArr = dblarr(Size);
+    Spectra = fltarr(96, 16, 16, Size)
+;    PaccArr = lonarr(Size);
+    EnergyTab = intarr(Size);
+    VI = "ros:ica:all";
+    paramName = "no_counts_summed";
+
+    RetSize = call_external(!PROJLIB + '/libParam.so', 'getLocalData', $   
+                                 ID, VI, paramName, $
+                                 StartTime, TimeInt, Size, $
+                                 TimeArr, Spectra)
+  
+    RetSize = call_external(!PROJLIB + '/libParam.so', 'getLocalData', $   
+                                 ID, VI, "energyTab", $
+                                 StartTime, TimeInt, Size, $
+                                 TimeArr, EnergyTab)
+
+     if (ID GE 0) then  Graph[GraphN].DataID[Item] = ID
+     if (RetSize GT 0) then begin
+         Spectra = temporary(reform(Spectra[*,*,*,0:RetSize-1], 96L*16L*16L, RetSize));
+         TimeArr -= graph[GraphN].TimeBase
+         graph[GraphN].DataFlags[Item] = 1
+         graph[GraphN].dataTime[Item] = TimeArr[0]
+         average, Spec, TimeArr[0:RetSize-1], Spectra
+         if (Flag eq GraphN) then immediate, Tab, TimeArr[0:RetSize-1], float(EnergyTab[0:RetSize-1]);
+     endif; else Graph[GraphN].ErrorFlag = 1
+   
+ 
+   
+return
+end
+;------------------------------------------------------------
diff --git a/amda_plus/amdalib/get_ima_o_spec.pro b/amda_plus/amdalib/get_ima_o_spec.pro
new file mode 100644
index 0000000..c15f5c9
--- /dev/null
+++ b/amda_plus/amdalib/get_ima_o_spec.pro
@@ -0,0 +1,56 @@
+;===========================================================
+;       Get_Vex_H_Spec
+;
+;  18 Mars 2009
+;=============================================================
+
+pro Get_Ima_O_Spec, Mission, StartTime, TimeInt, RESTRICTED = restricted
+
+common VexOSpecCom, VexOSpec
+common MexOSpecCom, MexOSpec
+common GraphC, Graph, GraphN, Item
+common Etab, FlagVex, EtabVex, FlagMex, EtabMex 
+ 
+
+  cmd = 'Spec = ' + Mission + 'OSpec & Tab = Etab' + Mission;
+  R = execute(cmd);
+
+  Flag = Mission eq 'vex' ? FlagVex : FlagMex;
+  
+;------------Get data-----------------------------
+
+    ID = Long(graph[GraphN].DataID[Item])
+
+    Size = Spec.DefSize
+    TimeArr = dblarr(Size);
+    Spectra = fltarr(16, 96, 16, Size)
+    Product = 'HEAVYSPEC';
+    PaccArr = intarr(Size);
+    EnergyTab = intarr(Size);
+
+    if (ID eq -1L) then begin 
+           err = call_external(!PROJLIB + 'libplanetcom.so','SetMission_idl', Mission);
+           if (KEYWORD_SET(RESTRICTED)) then err = call_external(!PROJLIB + 'libplanetcom.so','SetRestriction');
+    endif
+    RetSize = call_external(!PROJLIB + 'libImaExtra.so','GetImaExtra_idl',$
+                                ID, StartTime, TimeInt,$
+                                Product, Size, $
+                                TimeArr, PaccArr, EnergyTab, Spectra)
+ 
+   
+     if (ID GE 0) then  Graph[GraphN].DataID[Item] = ID
+     if (RetSize GT 1) then begin
+         Spectra = temporary(reform(Spectra[*,*,*,0:RetSize-1], 16L*96L*16L,RetSize));
+         TimeArr -= graph[GraphN].TimeBase
+         graph[GraphN].DataFlags[Item] = 1
+         graph[GraphN].dataTime[Item] = TimeArr[0]
+         average, Spec, TimeArr[0:RetSize-1], Spectra
+         if (Flag eq GraphN) then immediate, Tab, TimeArr[0:RetSize-1], float(EnergyTab[0:RetSize-1]);
+     endif; else Graph[GraphN].ErrorFlag = 1
+   
+   cmd = Mission + 'OSpec = Spec & Etab' + Mission +'= Tab'
+   R = execute(cmd);
+   
+return
+end
+;------------------------------------------------------------
diff --git a/amda_plus/amdalib/get_imam_h_spec.pro b/amda_plus/amdalib/get_imam_h_spec.pro
new file mode 100644
index 0000000..8f1b3f3
--- /dev/null
+++ b/amda_plus/amdalib/get_imam_h_spec.pro
@@ -0,0 +1,78 @@
+;===========================================================
+;       Get_Vex_H_Spec
+;
+;  18 Mars 2009
+;=============================================================
+
+pro Get_ImaM_H_Spec, StartTime, TimeInt, RESTRICTED = restricted
+
+common MexHSpecCom, Spec
+common InternalImaMex, Energy
+common GraphC, Graph, GraphN, Item
+common Etab, FlagVex, EtabVex, FlagMex, EtabMex
+
+FORWARD_FUNCTION gfl
+;------------Get data-----------------------------
+
+    ID = Long(graph[GraphN].DataID[Item])
+
+    Size =    Spec.DefSize
+    TimeArr = dblarr(Size);
+    SpectraTot = fltarr(16, 96, 16, 2, Size)
+    Product = 'HPSPEC';
+    PaccArr = intarr(Size);
+    EnergyTab = intarr(Size);
+
+    Mission = "mex";
+    
+    if (ID eq -1L) then begin
+         err = call_external(!PROJLIB + 'libplanetcom.so','SetMission_idl', Mission);
+         if (KEYWORD_SET(RESTRICTED)) then err = call_external(!PROJLIB + 'libplanetcom.so','SetRestriction');
+    endif
+
+    EnNum = 96
+    Energy = fltarr(EnNum)
+       
+    RetSize = call_external(!PROJLIB + 'libImaExtra.so','GetImaExtra_idl',$
+                                ID, StartTime, TimeInt,$
+                                Product, Size, $
+                                TimeArr, PaccArr, EnergyTab, SpectraTot)
+ 
+     if (ID GE 0) then  Graph[GraphN].DataID[Item] = ID
+ 
+     err = call_external(!PROJLIB + 'imainfo.so','GetImaEner_idl', Energy, EnergyTab[0])
+     Energy = temporary(Energy(where(Energy GT 0))); 
+ 
+     if (RetSize GT 1) then begin
+ 
+         Spectra = fltarr(16, 96, 16, RetSize);
+   
+         for i = 0, RetSize - 1 do begin
+
+            if (i ne RetSize - 1) then $ 
+	      if (EnergyTab[i] ne EnergyTab[i+1]) then begin
+		err = call_external(!PROJLIB + 'imainfo.so','GetImaEner_idl', Energy, EnergyTab[i+1])
+		Energy = temporary(Energy(where(Energy GT 0))); 
+	    endif
+
+            for j = 0, N_elements(Energy) - 1 do begin
+               GFeff = gfl(Energy[j], PaccArr[i], 1.0);
+               GFeffG = gfl(Energy[j], PaccArr[i], 0.0); Ghost
+                 
+               coeffH = GFeff GT 0 ? 1.e-5/GFeff : 0.0;
+               coeffG = GFeffG GT 0 ? 1.e-5/GFeffG : 0.0;
+             
+               Spectra[*,j,*,i] = SpectraTot[*,j,*,0,i]*coeffH + SpectraTot[*,j,*,1,i] * coeffG;
+         endfor 
+      endfor
+
+         TimeArr -= graph[GraphN].TimeBase
+         graph[GraphN].DataFlags[Item] = 1
+         graph[GraphN].dataTime[Item] = TimeArr[0]
+         average, Spec, TimeArr[0:RetSize-1], reform(Spectra,16L*96L*16L,RetSize)
+	 if (FlagMex eq GraphN) then immediate, EtabMex, TimeArr[0:RetSize-1], float(EnergyTab[0:RetSize-1]);
+     endif else Graph[GraphN].ErrorFlag = 1
+ 
+return
+end
+;------------------------------------------------------------
diff --git a/amda_plus/amdalib/get_mode_peir.pro b/amda_plus/amdalib/get_mode_peir.pro
new file mode 100644
index 0000000..1969a71
--- /dev/null
+++ b/amda_plus/amdalib/get_mode_peir.pro
@@ -0,0 +1,48 @@
+;-------------------- Get THEMIS Modeity ION -------------------------------
+;  
+;-----------------------------------------------------------------------------
+pro Get_Mode_Peir, THEMIS, st, dt   
+
+common GraphC, Graph, GraphN, Item
+common ThaModePeirCom, ThaMode
+common ThbModePeirCom, ThbMode
+common ThcModePeirCom, ThcMode
+common ThdModePeirCom, ThdMode
+common TheModePeirCom, TheMode 
+ 
+    cmd = 'ThMode = Th'+THEMIS+'Mode'   
+    R = execute(cmd) 
+      
+    sz = ThMode.DefSize
+    T=dblarr(sz)
+    mode = fltarr(3,sz);
+
+    ID = Long(graph[GraphN].DataID[Item])
+
+    VI = 'th'+THEMIS+':peir:mom'
+CONT:
+    RetSize = call_external(!PROJLIB + 'libParam.so', 'getLocalData', $
+                          ID, VI, 'Mode', st, dt, sz, T, mode)
+ 
+    if (Retsize eq -34) OR (Retsize eq -35) OR (Retsize eq -0) then begin  
+                   wait, 3               
+                   goto, CONT
+     endif 
+
+   
+  if (RetSize GT 1) then begin 
+ 
+      Val =  mode[2, 0:Retsize-1]
+      T -= graph[GraphN].TimeBase
+      graph[GraphN].DataID[Item] = ID
+      graph[GraphN].DataFlags[Item] = 1
+      graph[GraphN].dataTime[Item] = T[0] 
+      immediate, ThMode, T[0:RetSize-1], Val
+   endif
+
+  cmd = 'Th'+THEMIS+'Mode = ThMode' 
+  R = execute(cmd)
+       
+return
+end
+;-----------------------------------------------------------
diff --git a/amda_plus/amdalib/get_multi.pro b/amda_plus/amdalib/get_multi.pro
new file mode 100644
index 0000000..fa12b7a
--- /dev/null
+++ b/amda_plus/amdalib/get_multi.pro
@@ -0,0 +1,86 @@
+;;
+;---------------------------------------
+
+pro GET_MULTI, st, dt
+
+common Multi_Commom, getStart, N_VIs,  DataCommon
+common GraphC, graph, GraphN, Item 
+ 
+   FillValue = !Values.F_NAN 
+   
+   StartTime = call_external(!DDLIB +'DD_idl.so','GetDTime', st, /D_VALUE)	      
+   TimeCalc = dindgen(Graph[GraphN].ppp)*Graph[GraphN].Step + StartTime + Graph[GraphN].Step/2.0; 
+   k = 0;
+
+   for i = 0, N_VIs[graphN] - 1 do begin 
+
+     if(Graph[GraphN].CurrentSec EQ Graph[GraphN].Sections-1) then $
+         *(DataCommon[i, GraphN].data) = Call_Function(DataCommon[i, GraphN].name, st, dt, Time, RetSize, Sampling, /close) $
+     else *(DataCommon[i, GraphN].data) = Call_Function(DataCommon[i, GraphN].name, st, dt, Time, RetSize, Sampling)
+ 
+     if (RetSize GT 0) then begin
+    ;
+    ; Different processing if 1D array and RetSize = 1
+    ;
+	  Yinfo = size(*DataCommon[i, GraphN].data);
+	  if  (Yinfo[0] eq 1) then begin
+	    if (RetSize gt 1) then begin 
+		(*DataCommon[i, GraphN].data) = reform((*DataCommon[i, GraphN].data),1, RetSize);
+		  DataCommon[i, GraphN].size[1] = 1;
+	    endif else (*DataCommon[i, GraphN].data) = reform((*DataCommon[i, GraphN].data), Yinfo[1], RetSize);
+	  endif else DataCommon[i, GraphN].size[1] = Yinfo[1]
+ 
+	  *(DataCommon[i, GraphN].Time) = Time;
+ 
+; Several data sections 
+      if (Graph[GraphN].Sections gt 1) then begin 	 
+	  if (N_elements(*(DataCommon[i, GraphN].LastTime)) GT 0) then $
+	      if (*(DataCommon[i, GraphN].LastTime) LT Time[0]) then begin
+		*(DataCommon[i, GraphN].Time) = [*(DataCommon[i, GraphN].LastTime),Time]
+		TempArr = fltarr(DataCommon[i, GraphN].size[1],Retsize+1)
+		TempArr[*,0] = *(DataCommon[i, GraphN].LastData)
+		TempArr[*,1:*] = *(DataCommon[i, GraphN].data)
+		*(DataCommon[i, GraphN].data) = TempArr
+		*(DataCommon[i, GraphN].LastTime) = Time[RetSize-1];
+		*(DataCommon[i, GraphN].LastData) = (*DataCommon[i, GraphN].data)[*,RetSize-1];
+		  RetSize += 1;
+	    endif else begin
+	    *(DataCommon[i, GraphN].LastTime) = Time[RetSize-1];
+	    *(DataCommon[i, GraphN].LastData) = (*DataCommon[i, GraphN].data)[*,RetSize-1];
+	    endelse
+	  endif ;  if (Graph[GraphN].Sections gt 1)
+	  TempArr = 0.0  
+      endif ; if (RetSize GT 0)
+
+	DataCommon[i, GraphN].size[0] = RetSize;
+	DataCommon[i, GraphN].Sampling = Sampling;	           
+ 
+      if (DataCommon[i, GraphN].Sampling LT Graph[GraphN].Step/2.0) then begin		    
+	      Y = reform(replicate(FillValue, DataCommon[i, GraphN].size[1]*Graph[GraphN].ppp), DataCommon[i, GraphN].size[1], Graph[GraphN].ppp);
+	      Flag = intarr(N_elements(TimeCalc));   
+	      averaging_, *(DataCommon[i, GraphN].time), *(DataCommon[i, GraphN].data), TimeCalc, Y, Flag;
+	      *DataCommon[i, GraphN].data = Y;
+	      *(DataCommon[i, GraphN].Time) = TimeCalc;
+      endif  
+    
+      indices = *(DataCommon[i, GraphN].indices);
+ 
+      if (N_Elements(indices) gt 0) then begin
+	for j = 0, N_Elements(indices) - 1 do begin 	 
+		*(Graph[GraphN].Val)[k] =  getStart[GraphN] ? [*(Graph[GraphN].Val)[k],reform((*DataCommon[i, GraphN].data)[indices[j],*])] : reform((*DataCommon[i, GraphN].data)[indices[j],*]);
+                *(Graph[GraphN].Time)[k] = getStart[GraphN] ? [*(Graph[GraphN].Time)[k], *(DataCommon[i, GraphN].Time)-Graph[GraphN].TimeBase] : *(DataCommon[i, GraphN].Time)-Graph[GraphN].TimeBase;
+	         k += 1;
+      endfor
+      endif else begin
+	*(Graph[GraphN].Val)[k] =  getStart[GraphN] ? [*(Graph[GraphN].Val)[k],*(DataCommon[i, GraphN].data)] : *(DataCommon[i, GraphN].data);
+	*(Graph[GraphN].Time)[k] = getStart[GraphN] ? [*(Graph[GraphN].Time)[k], *(DataCommon[i, GraphN].Time)-Graph[GraphN].TimeBase] : *(DataCommon[i, GraphN].Time)-Graph[GraphN].TimeBase;
+        k += 1;
+      endelse
+ 
+ endfor
+
+  Graph[GraphN].DataFlags = 1
+  Graph[GraphN].ErrorFlag = 0
+  getStart[GraphN] = 1;
+return
+end
diff --git a/amda_plus/amdalib/get_scatter.pro b/amda_plus/amdalib/get_scatter.pro
new file mode 100644
index 0000000..e903b5d
--- /dev/null
+++ b/amda_plus/amdalib/get_scatter.pro
@@ -0,0 +1,108 @@
+;;
+;---------------------------------------
+
+pro GET_SCATTER, st, dt
+
+common Scatter_Commom, getStart, N_param, indices, DataCommon
+common GraphC, graph, GraphN, Item 
+ 
+   FillValue = !Values.F_NAN 
+ 
+   for i = 0, N_param[graphN] - 1 do begin 
+     if(Graph[GraphN].CurrentSec EQ Graph[GraphN].Sections-1) then $
+         *(DataCommon[i, GraphN].data) = Call_Function(DataCommon[i, GraphN].name, st, dt, Time, RetSize, Sampling, /close) $
+     else *(DataCommon[i, GraphN].data) = Call_Function(DataCommon[i, GraphN].name, st, dt, Time, RetSize, Sampling)
+  
+    if (RetSize GT 0) then begin
+    ;
+    ; Different processing if 1D array and RetSize = 1
+    ;
+ 
+          Yinfo = size(*DataCommon[i, GraphN].data);
+          if  (Yinfo[0] eq 1) then begin
+            if (RetSize gt 1) then begin 
+                (*DataCommon[i, GraphN].data) = reform((*DataCommon[i, GraphN].data), 1, RetSize);
+                  DataCommon[i, GraphN].size[1] = 1;
+            endif else (*DataCommon[i, GraphN].data) = reform((*DataCommon[i, GraphN].data), Yinfo[1], RetSize);
+          endif else DataCommon[i, GraphN].size[1] = Yinfo[1]
+
+          *(DataCommon[i, GraphN].Time) = Time;
+ 
+; Several data sections 
+      if (Graph[GraphN].Sections gt 1) then begin       
+          if (N_elements(*(DataCommon[i, GraphN].LastTime)) GT 0) then $
+              if (*(DataCommon[i, GraphN].LastTime) LT Time[0]) then begin
+                *(DataCommon[i, GraphN].Time) = [*(DataCommon[i, GraphN].LastTime),Time]
+                TempArr = fltarr(DataCommon[i, GraphN].size[1],Retsize+1)
+                TempArr[*,0] = *(DataCommon[i, GraphN].LastData)
+                TempArr[*,1:*] = *(DataCommon[i, GraphN].data)
+                *(DataCommon[i, GraphN].data) = TempArr
+                *(DataCommon[i, GraphN].LastTime) = Time[RetSize-1];
+                *(DataCommon[i, GraphN].LastData) = (*DataCommon[i, GraphN].data)[*,RetSize-1];
+                  RetSize += 1;
+            endif else begin
+            *(DataCommon[i, GraphN].LastTime) = Time[RetSize-1];
+            *(DataCommon[i, GraphN].LastData) = (*DataCommon[i, GraphN].data)[*,RetSize-1];
+            endelse
+          endif else if (Yinfo[0] gt 1) then DataCommon[i, GraphN].size[1] = Yinfo[1]
+          TempArr = 0.0  
+      endif
+        DataCommon[i, GraphN].size[0] = RetSize;
+        DataCommon[i, GraphN].Sampling = Sampling;               
+    endfor
+ 
+; Processing Y 
+  if (DataCommon[0, GraphN].Sampling LT Graph[GraphN].Step/2.0) then begin
+             StartTime = call_external(!DDLIB+'DD_idl.so','GetDTime',st, /D_VALUE)
+             TimeInterval = call_external(!DDLIB+'DD_idl.so','GetDTime',dt, /D_VALUE)
+              numberPoints = long(TimeInterval/Graph[GraphN].Step + 0.5);
+	      toAverageY = 1;
+	      Time = dindgen(numberPoints)*Graph[GraphN].Step + StartTime+ Graph[GraphN].Step/2.0; 		    
+	      Y = reform(replicate(FillValue, DataCommon[0, GraphN].size[1]*numberPoints), DataCommon[0, GraphN].size[1],numberPoints);     
+              Flag = intarr(N_elements(Time));   
+	      averaging_, *(DataCommon[0, GraphN].time), *(DataCommon[0, GraphN].data), Time, Y, Flag;
+	      if (getStart[graphN]) then begin 
+                   *Graph[GraphN].Val[1] = [*Graph[GraphN].Val[1], reform(Y[indices[0,graphN],*],numberPoints)]                      
+              endif  else begin
+	                *Graph[GraphN].Val[1] =  reform(Y[indices[0,graphN],*],numberPoints);
+              endelse 
+  endif else begin 
+	      toAverageY = 0;
+	      Time = *DataCommon[0, GraphN].time;
+	      if (getStart[graphN]) then *Graph[GraphN].Val[1] = [*Graph[GraphN].Val[1], reform((*DataCommon[0, GraphN].data)[indices[0],*],DataCommon[0, GraphN].size[0])] $
+	      else *Graph[GraphN].Val[1] =  reform((*DataCommon[0, GraphN].data)[indices[0,graphN],*], DataCommon[0, GraphN].size[0]);
+  endelse
+
+; Processing X 
+; the same parameter - different component
+   if (N_param[graphN] eq 1) then begin
+	      if  (toAverageY) then X = reform(Y[indices[1,graphN],*],numberPoints) $
+	      else X = reform((*DataCommon[0, GraphN].data)[indices[1,graphN],*],DataCommon[0, GraphN].size[0]);
+	      if (getStart[graphN]) then *Graph[GraphN].Val[0] = [*Graph[GraphN].Val[0], X] $
+	      else *Graph[GraphN].Val[0] = X;
+   endif else begin
+	      if (toAverageY) then  step = Graph[GraphN].Step $
+	      else step = DataCommon[0, GraphN].Sampling; 
+ 
+	      X = reform(replicate(FillValue, DataCommon[1, GraphN].size[1]*N_Elements(Time)), DataCommon[1, GraphN].size[1], N_Elements(Time));
+	      Flag = intarr(N_elements(Time)); 
+	      if (DataCommon[1, GraphN].Sampling LT step/2.0) then $                 
+		 averaging_, *(DataCommon[1, GraphN].time), (*DataCommon[1, GraphN].data)[indices[1,graphN],*], Time, X, Flag $
+	      else $
+		  interpolation_, *(DataCommon[1, GraphN].time), (*DataCommon[1, GraphN].data)[indices[1,graphN],*], DataCommon[1, GraphN].Sampling*3, Time, X, Flag;
+	       if (getStart[graphN]) then *Graph[GraphN].Val[0] = [*Graph[GraphN].Val[0], reform(X)] $
+	       else *Graph[GraphN].Val[0] = reform(X);
+  endelse
+ 
+  if (toAverageY) then begin
+    if (Graph[GraphN].CurrentSec EQ 0) then *Graph[GraphN].Time[0] =  dindgen(Graph[GraphN].ppp)*Graph[GraphN].Step + StartTime + Graph[GraphN].Step/2.0;  
+  endif else begin 
+   if (getStart[graphN]) then  *Graph[GraphN].Time[0] = [*Graph[GraphN].Time[0], Time] $
+   else *Graph[GraphN].Time[0] = Time
+  endelse
+
+  Graph[GraphN].DataFlags = 1
+  Graph[GraphN].ErrorFlag = 0
+  getStart[GraphN] = 1;
+return
+end
diff --git a/amda_plus/amdalib/get_th_e_sp.pro b/amda_plus/amdalib/get_th_e_sp.pro
new file mode 100644
index 0000000..dfd7e71
--- /dev/null
+++ b/amda_plus/amdalib/get_th_e_sp.pro
@@ -0,0 +1,42 @@
+;-------------------- Get THEMIS SPECTRA ION -------------------------------
+;  
+;-----------------------------------------------------------------------------
+pro Get_Th_E_Sp, THEMIS, st, dt   
+
+common GraphC, Graph, GraphN, Item
+common ThaeSpecCom, ThaeSpec
+common ThbeSpecCom, ThbeSpec
+common ThceSpecCom, ThceSpec
+common ThdeSpecCom, ThdeSpec
+common TheeSpecCom, TheeSpec 
+ 
+    cmd = 'TheSpec = Th'+THEMIS+'eSpec'   
+    R = execute(cmd) 
+      
+    sz = TheSpec.DefSize
+    V=dblarr(32,sz)
+    T=dblarr(sz)
+ 
+    ID = Long(graph[GraphN].DataID[Item])
+
+    VI = 'th'+THEMIS+':esa:l2e'
+ 
+    RetSize = call_external(!PROJLIB + 'libParam.so', 'getLocalData', $
+                          ID, VI, 'Flux', st, dt, sz, T, V);
+ 
+  
+   if (ID GE 0) then  Graph[GraphN].DataID[Item] = ID
+   if (RetSize GT 1) then begin 
+      Val = float(V[*,0:RetSize-1])    
+      T -= graph[GraphN].TimeBase
+      graph[GraphN].DataFlags[Item] = 1
+      graph[GraphN].dataTime[Item] = T[0] 
+      average, TheSpec, T[0:RetSize-1], Val
+   endif else Graph[GraphN].ErrorFlag = 1
+ 
+  cmd = 'Th'+THEMIS+'eSpec = TheSpec' 
+  R = execute(cmd)
+       
+return
+end
+;-----------------------------------------------------------
diff --git a/amda_plus/amdalib/get_vexmex_dens.pro b/amda_plus/amdalib/get_vexmex_dens.pro
new file mode 100644
index 0000000..820ba8d
--- /dev/null
+++ b/amda_plus/amdalib/get_vexmex_dens.pro
@@ -0,0 +1,58 @@
+;-------------------- Get THEMIS ION Velocity -------------------------------
+;  
+;-----------------------------------------------------------------------------
+pro Get_VexMex_Dens, Mission, Product, st, dt, RESTRICTED = restricted
+
+common GraphC, Graph, GraphN, Item
+common VexHDensCom, VexH
+common VexODensCom, VexO
+common MexHDensCom, MexH
+common MexODensCom, MexO
+
+    cmd = 'VEX = ' + Mission + Product; 
+    R = execute(cmd) 
+
+    sz = Vex.DefSize
+     
+    Quality = fltarr(sz)
+    Val = fltarr(sz)
+    Time = dblarr(sz)
+
+    ID = Long(graph[GraphN].DataID[Item])
+
+    VI = Mission + ':ima:param'
+
+    if (KEYWORD_SET(RESTRICTED)) then  VI = Mission + ':imaparam:restricted'
+    
+    ParamNameQ = Product eq "h" ? "Quality_P" : "Quality_O";
+    RetSize = call_external(!PROJLIB + 'libParam.so', 'getLocalData', $
+                          ID, VI, ParamNameQ, st, dt, sz, Time, Quality)
+ 
+    ParamName = Product eq "h" ? "Density_P" : "Density_O";
+    RetSize = call_external(!PROJLIB + 'libParam.so', 'getLocalData', $
+                          ID, VI, ParamName, st, dt, sz, Time, Val)
+ 
+ 
+   if (ID GE 0) then  Graph[GraphN].DataID[Item] = ID
+   if (RetSize GT 1) then begin 
+      stD = call_external(!DDLIB + 'DD_idl.so','GetDTime', st, /D_VALUE) 
+      numTime = where(Time GE stD AND Time LE (stD+graph[graphN].DeltaT), IndexTime)
+      if IndexTime EQ 0 then return
+      Time = temporary(Time[numTime])
+      Val = temporary(Val[numTime])
+      Quality = temporary(Quality[numTime])
+      Density = fltarr(2, IndexTime);
+      Density[0,*] =  Val
+      Density[1,*] =  Quality
+      Time -= graph[GraphN].TimeBase
+      graph[GraphN].DataFlags[Item] = 1
+      graph[GraphN].dataTime[Item] = Time[0] 
+      average, VEX, Time, Density
+   endif; else Graph[GraphN].ErrorFlag = 1
+ 
+  cmd = Mission + Product +' = VEX' 
+  R = execute(cmd)
+       
+return
+end
+;-----------------------------------------------------------
diff --git a/amda_plus/amdalib/get_vexmex_qual.pro b/amda_plus/amdalib/get_vexmex_qual.pro
new file mode 100644
index 0000000..4fac3a2
--- /dev/null
+++ b/amda_plus/amdalib/get_vexmex_qual.pro
@@ -0,0 +1,48 @@
+;-------------------- Get THEMIS ION Velocity -------------------------------
+;  
+;-----------------------------------------------------------------------------
+pro Get_VexMex_Qual, Mission, Product, st, dt, RESTRICTED = restricted
+
+common GraphC, Graph, GraphN, Item
+common VexHQualCom, VexH
+common VexOQualCom, VexO
+common MexHQualCom, MexH
+common MexOQualCom, MexO
+
+    cmd = 'VEX = ' + Mission + Product; 
+    R = execute(cmd) 
+
+    sz = Vex.DefSize
+
+    Val = fltarr(sz)
+    Time = dblarr(sz)
+
+    ID = Long(graph[GraphN].DataID[Item])
+ 
+    VI = Mission + ':ima:param';
+    if (KEYWORD_SET(RESTRICTED)) then  VI = Mission + ':imaparam:restricted';
+
+    ParamName = Product eq "h" ? "Quality_P" : "Quality_O";
+ 
+    RetSize = call_external(!PROJLIB + 'libParam.so', 'getLocalData', $
+                          ID, VI, ParamName, st, dt, sz, Time, Val)
+ 
+   if (ID GE 0) then  Graph[GraphN].DataID[Item] = ID
+   if (RetSize GT 1) then begin 
+      stD = call_external(!DDLIB + 'DD_idl.so','GetDTime', st, /D_VALUE) 
+      numTime = where(Time GE stD AND Time LE (stD+graph[graphN].DeltaT), IndexTime)
+      if IndexTime EQ 0 then return
+      Time = temporary(Time[numTime])
+      Val = temporary(Val[numTime])
+      Time -= graph[GraphN].TimeBase
+      graph[GraphN].DataFlags[Item] = 1
+      graph[GraphN].dataTime[Item] = Time[0]
+      average, VEX, Time, Val
+   endif; else Graph[GraphN].ErrorFlag = 1
+ 
+  cmd = Mission + Product +' = VEX' 
+  R = execute(cmd)
+       
+return
+end
+;-----------------------------------------------------------
diff --git a/amda_plus/amdalib/get_vexmex_scan.pro b/amda_plus/amdalib/get_vexmex_scan.pro
new file mode 100644
index 0000000..3851dbf
--- /dev/null
+++ b/amda_plus/amdalib/get_vexmex_scan.pro
@@ -0,0 +1,46 @@
+;-------------------- Get THEMIS ION Velocity -------------------------------
+;  
+;-----------------------------------------------------------------------------
+pro Get_VexMex_Scan, Mission,  st, dt, RESTRICTED = restricted
+
+common GraphC, Graph, GraphN, Item
+common VexScanCom, VexScan
+common MexScanCom, MexScan
+
+    cmd = 'VEX = ' + Mission + 'Scan';
+    R = execute(cmd) 
+
+    sz = Vex.DefSize
+
+    Val = intarr(sz)
+    Time = dblarr(sz)
+
+    ID = Long(graph[GraphN].DataID[Item])
+ 
+    VI = Mission + ':ima:param';
+    if (KEYWORD_SET(RESTRICTED)) then  VI = Mission + ':imaparam:restricted';
+
+    ParamName = "ScanFlag";
+ 
+    RetSize = call_external(!PROJLIB + 'libParam.so', 'getLocalData', $
+                          ID, VI, ParamName, st, dt, sz, Time, Val)
+ 
+   if (ID GE 0) then  Graph[GraphN].DataID[Item] = ID
+   if (RetSize GT 0) then begin 
+      stD = call_external(!DDLIB + 'DD_idl.so','GetDTime', st, /D_VALUE) 
+      numTime = where(Time GE stD AND Time LE (stD+graph[graphN].DeltaT), IndexTime)
+      if IndexTime EQ 0 then return
+      Time = temporary(Time[numTime])
+      Val = temporary(Val[numTime])
+      Time -= graph[GraphN].TimeBase
+      graph[GraphN].DataFlags[Item] = 1
+      graph[GraphN].dataTime[Item] = Time[0]
+      immediate, VEX, Time, Val
+   endif; else Graph[GraphN].ErrorFlag = 1
+  
+  cmd = Mission +   'Scan  = VEX' 
+  R = execute(cmd)
+       
+return
+end
+;-----------------------------------------------------------
diff --git a/amda_plus/amdalib/get_vexmex_temp.pro b/amda_plus/amdalib/get_vexmex_temp.pro
new file mode 100644
index 0000000..105e763
--- /dev/null
+++ b/amda_plus/amdalib/get_vexmex_temp.pro
@@ -0,0 +1,49 @@
+;-------------------- Get THEMIS ION Velocity -------------------------------
+;  
+;-----------------------------------------------------------------------------
+pro Get_VexMex_Temp, Mission, Product, st, dt, RESTRICTED = restricted
+
+common GraphC, Graph, GraphN, Item
+common VexHTempCom, VexH
+common VexOTempCom, VexO
+common MexHTempCom, MexH
+common MexOTempCom, MexO
+
+    cmd = 'VEX = ' + Mission + Product; 
+    R = execute(cmd) 
+
+    sz = Vex.DefSize
+
+    Val = fltarr(3,sz)
+    Time = dblarr(sz)
+
+    ID = Long(graph[GraphN].DataID[Item])
+ 
+    VI = Mission + ':ima:param'
+    if (KEYWORD_SET(RESTRICTED)) then  VI = Mission + ':imaparam:restricted';
+
+    ParamName = Product eq "h" ? "Temperature_P" : "Temperature_O";
+ 
+    RetSize = call_external(!PROJLIB + 'libParam.so', 'getLocalData', $
+                          ID, VI, ParamName, st, dt, sz, Time, Val)
+
+
+   if (ID GE 0) then  Graph[GraphN].DataID[Item] = ID
+   if (RetSize GT 1) then begin 
+      stD = call_external(!DDLIB + 'DD_idl.so','GetDTime', st, /D_VALUE) 
+      numTime = where(Time GE stD AND Time LE (stD+graph[graphN].DeltaT), IndexTime)
+      if IndexTime EQ 0 then return
+      Time = temporary(Time[numTime])
+      Val = temporary(Val[*,numTime])
+      Time -= graph[GraphN].TimeBase
+      graph[GraphN].DataFlags[Item] = 1
+      graph[GraphN].dataTime[Item] = Time[0] 
+      average, VEX, Time, Val
+   endif; else Graph[GraphN].ErrorFlag = 1
+ 
+  cmd = Mission + Product +' = VEX' 
+  R = execute(cmd)
+       
+return
+end
+;-----------------------------------------------------------
diff --git a/amda_plus/amdalib/get_vexmex_vel.pro b/amda_plus/amdalib/get_vexmex_vel.pro
new file mode 100644
index 0000000..31260fc
--- /dev/null
+++ b/amda_plus/amdalib/get_vexmex_vel.pro
@@ -0,0 +1,50 @@
+;-------------------- Get THEMIS ION Velocity -------------------------------
+;  
+;-----------------------------------------------------------------------------
+pro Get_VexMex_Vel, Mission, Product, st, dt, RESTRICTED = restricted
+
+common GraphC, Graph, GraphN, Item
+common VexHVelCom, VexH
+common VexOVelCom, VexO
+common MexHVelCom, MexH
+common MexOVelCom, MexO
+
+    cmd = 'VEX = ' + Mission + Product; 
+    R = execute(cmd) 
+
+    sz = Vex.DefSize
+
+    Val = fltarr(3,sz)
+    Time = dblarr(sz)
+
+    ID = Long(graph[GraphN].DataID[Item])
+ 
+    VI = Mission + ':ima:param'
+
+    if (KEYWORD_SET(RESTRICTED)) then  VI = Mission + ':imaparam:restricted'
+
+    ParamName = Product eq "h" ? "Velocity_P" : "Velocity_O";
+ 
+    RetSize = call_external(!PROJLIB + 'libParam.so', 'getLocalData', $
+                          ID, VI, ParamName, st, dt, sz, Time, Val)
+
+
+   if (ID GE 0) then  Graph[GraphN].DataID[Item] = ID
+   if (RetSize GT 1) then begin 
+      stD = call_external(!DDLIB + 'DD_idl.so','GetDTime', st, /D_VALUE) 
+      numTime = where(Time GE stD AND Time LE (stD+graph[graphN].DeltaT), IndexTime)
+      if IndexTime EQ 0 then return
+      Time = temporary(Time[numTime])
+      Val = temporary(Val[*,numTime])
+      Time -= graph[GraphN].TimeBase
+      graph[GraphN].DataFlags[Item] = 1
+      graph[GraphN].dataTime[Item] = Time[0] 
+      average, VEX, Time, Val
+   endif; else Graph[GraphN].ErrorFlag = 1
+ 
+  cmd = Mission + Product +' = VEX' 
+  R = execute(cmd)
+       
+return
+end
+;-----------------------------------------------------------
diff --git a/amda_plus/amdalib/getcdfvar.pro b/amda_plus/amdalib/getcdfvar.pro
new file mode 100644
index 0000000..57c3403
--- /dev/null
+++ b/amda_plus/amdalib/getcdfvar.pro
@@ -0,0 +1,63 @@
+function getCdfVar, files,  paramName, dims, StartDouble, IntDouble, Time, Data
+
+ Size = N_elements(Time);
+ TIMESHIFT = 62167219200.D0 
+ startIndex = 0L;
+ 
+ datapath = getenv("USER_DATA_PATH") eq '' ?  '../DATA/' : getenv("USER_DATA_PATH");
+
+ for i = 0, n_elements(files) - 1 do begin
+   
+     fileName = datapath + files[i];
+     id = CDF_OPEN(fileName);
+ 
+     CDF_CONTROL, id, SET_ZMODE=2
+
+    ; CDF_CONTROL, id, GET_VAR_INFO=info, VARIABLE=0, /ZVARIABLE 
+     dataType = "UNKNOWN"
+     timeId = 0L;
+     while (dataType ne "CDF_EPOCH" AND dataType ne "CDF_EPOCH16") do begin
+           rest = cdf_varinq(id, timeId, /ZVARIABLE) 
+           dataType = rest.datatype;
+           timeId += 1L;
+     endwhile
+ 
+     timeId -= 1L;
+     recs = getcdfnbrecs_(FileName, timeId);
+ 
+   ; CDF_CONTROL, id, GET_VAR_INFO=info, VARIABLE=0, /ZVARIABLE 
+    ;EXTENDRECS MAXALLOCREC MAXREC MAXRECS NINDEXENTRIES NINDEXRECORDS
+    
+    if (dataType eq "CDF_EPOCH16") then begin 
+     CDF_VARGET, id,  timeId, EPOCH16, REC_COUNT = recs+1, /ZVARIABLE
+     EPOCH = dblarr(recs);
+     for j = 0, recs -1 do begin
+        CDF_EPOCH16, EPOCH16[j], yr, mo, dy, hr, min, sec, milli, micro, pico, /BREAKDOWN_EPOCH 
+        CDF_EPOCH, EPOCH8, yr, mo, dy, hr, min, sec, milli, /COMPUTE_EPOCH 
+        EPOCH[j] = EPOCH8;
+     endfor
+    endif else CDF_VARGET, id,  timeId, EPOCH, REC_COUNT = recs+1, /ZVARIABLE
+       
+    Time1 =  reform(EPOCH/1000.D0 - TIMESHIFT) 
+ 
+      num = where(Time1 GE StartDouble AND Time1 LT StartDouble+IntDouble, Index);
+   
+      if ((Index eq 0 AND startIndex eq 0) OR (startIndex + Index gt Size))  then begin       
+             return, 0
+      endif
+ 
+      if (Index gt 0) then begin
+            Time[startIndex:startIndex+Index-1] = Time1[num];
+        
+            varId = CDF_VARNUM(id, paramName);
+            CDF_VARGET, id,  varId, data1, REC_COUNT = recs+1, /ZVARIABLE
+        
+            if (dims eq 1) then  Data[startIndex:startIndex+Index-1] = reform(Data1[num])  $
+            else Data[*, startIndex:startIndex+Index-1] = Data1[*, num]
+      endif
+      CDF_CLOSE, id
+      startIndex += Index;     
+  endfor  
+  
+ return,startIndex;
+end
diff --git a/amda_plus/amdalib/getcefvar.pro b/amda_plus/amdalib/getcefvar.pro
new file mode 100644
index 0000000..fb28f15
--- /dev/null
+++ b/amda_plus/amdalib/getcefvar.pro
@@ -0,0 +1,48 @@
+function getCefVar, files,  paramName, dims, StartDouble, IntDouble, Time, Data
+ ; CEF_UNDEF, CEF_INT, CEF_FLOAT, CEF_DOUBLE, CEF_CHAR, CEF_ISO_TIME, CEF_ISO_TIME_RANGE,
+  
+ Size = N_elements(Time);
+ TIMESHIFT =  378691200.D0 ; secs 1970 - 1958
+ 
+ startIndex = 0L;
+
+ datapath = getenv("USER_DATA_PATH") eq '' ?  '../DATA/' : getenv("USER_DATA_PATH");
+
+ for i = 0, n_elements(files) - 1 do begin
+   
+     fileName = datapath + files[i];
+     nrec = CEF_READ(fileName);
+     if (nrec LE 0) then continue;
+
+     if (i EQ 0) then begin
+	dataType = "UNKNOWN"
+	timeId = 0L;
+        vars = CEF_VARNAMES();
+	while (dataType ne "ISO_TIME") do begin
+	      dataType = CEF_VATTR(vars[timeId],"VALUE_TYPE"); 
+	      timeId += 1L;
+	endwhile
+	timeId -= 1L;
+     endif
+
+      Time1 = CEF_VAR(vars[timeId])/1000.D0 -  TIMESHIFT;
+       
+      num = where(Time1 GE StartDouble AND Time1 LT StartDouble+IntDouble, Index);
+ 
+      if ((Index eq 0 AND startIndex eq 0) OR (startIndex + Index gt Size))  then return, 0
+        
+      if (Index gt 0) then begin
+            Time[startIndex:startIndex+Index-1] = Time1[num];
+        
+            Data1 = CEF_VAR(paramName);
+           ; dims = CEF_VATTR(paramName, "SIZES")
+            dims = n_elements(Data1)/n_elements(Time1);
+            if (dims eq 1) then  Data[startIndex:startIndex+Index-1] = Data1[num]  $
+            else Data[*, startIndex:startIndex+Index-1] = Data1[*, num]
+      endif
+      CEF_CLOSE
+      startIndex += Index;     
+  endfor 
+  
+ return,startIndex;
+end
\ No newline at end of file
diff --git a/amda_plus/amdalib/getmex_n_sw.pro b/amda_plus/amdalib/getmex_n_sw.pro
new file mode 100644
index 0000000..2305246
--- /dev/null
+++ b/amda_plus/amdalib/getmex_n_sw.pro
@@ -0,0 +1,46 @@
+;--------------------  -------------------------------
+;  
+;-----------------------------------------------------------------------------
+pro GetMex_N_SW, st, dt
+
+common GraphC, Graph, GraphN, Item
+common Mex_N_SW, Mex
+
+ 
+    sz = Mex.DefSize
+     
+    Quality = fltarr(sz)
+    Val = fltarr(sz)
+    Time = dblarr(sz)
+
+    ID = Long(graph[GraphN].DataID[Item]) 
+    VI = 'mex:ima:sw'
+      
+    RetSize = call_external(!PROJLIB + '/libParam.so', 'getLocalData', $
+                          ID, VI,  'Flag', st, dt, sz, Time, Quality)
+ 
+     
+    RetSize = call_external(!PROJLIB + '/libParam.so', 'getLocalData', $
+                          ID, VI, 'N', st, dt, sz, Time, Val)
+ 
+   if (ID GE 0) then  Graph[GraphN].DataID[Item] = ID
+   if (RetSize GE 1) then begin 
+      stD = call_external(!DDLIB + 'DD_idl.so','GetDTime', st, /D_VALUE) 
+      numTime = where(Time GE stD AND Time LE (stD + graph[graphN].DeltaT), IndexTime)
+      if IndexTime EQ 0 then return
+      Time = temporary(Time[numTime])
+      Val = temporary(Val[numTime])
+      Quality = temporary(Quality[numTime])
+      Density = fltarr(2, IndexTime);
+      Density[0,*] =  Val
+      Density[1,*] =  Quality
+      Time -= graph[GraphN].TimeBase
+      graph[GraphN].DataFlags[Item] = 1
+      graph[GraphN].dataTime[Item] = Time[0] 
+      (*Mex.Time) = N_elements(*Mex.Time) eq 0 ? Time : [*Mex.Time,Time]  
+      (*Mex.Val) =  N_elements(*Mex.Val)  eq 0 ?   reform(Density,2*IndexTime) : [*Mex.Val,reform(Density,2*IndexTime)]
+   endif ;else Graph[GraphN].ErrorFlag = 1
+         
+return
+end
+;-----------------------------------------------------------
diff --git a/amda_plus/amdalib/getmex_v_sw.pro b/amda_plus/amdalib/getmex_v_sw.pro
new file mode 100644
index 0000000..07e84ac
--- /dev/null
+++ b/amda_plus/amdalib/getmex_v_sw.pro
@@ -0,0 +1,46 @@
+;--------------------  -------------------------------
+;  
+;-----------------------------------------------------------------------------
+pro GetMex_v_SW, st, dt
+
+common GraphC, Graph, GraphN, Item
+common Mex_v_SW, Mex
+
+ 
+    sz = Mex.DefSize
+     
+    Quality = fltarr(sz)
+    Val = fltarr(sz)
+    Time = dblarr(sz)
+
+    ID = Long(graph[GraphN].DataID[Item]) 
+    VI = 'mex:ima:sw'
+      
+    RetSize = call_external(!PROJLIB + '/libParam.so', 'getLocalData', $
+                          ID, VI,  'Flag', st, dt, sz, Time, Quality)
+ 
+     
+    RetSize = call_external(!PROJLIB + '/libParam.so', 'getLocalData', $
+                          ID, VI, 'V', st, dt, sz, Time, Val)
+ 
+   if (ID GE 0) then  Graph[GraphN].DataID[Item] = ID
+   if (RetSize GE 1) then begin 
+      stD = call_external(!DDLIB + 'DD_idl.so','GetDTime', st, /D_VALUE) 
+      numTime = where(Time GE stD AND Time LE (stD + graph[graphN].DeltaT), IndexTime)
+      if IndexTime EQ 0 then return
+      Time = temporary(Time[numTime])
+      Val = temporary(Val[numTime])
+      Quality = temporary(Quality[numTime])
+      Density = fltarr(2, IndexTime);
+      Density[0,*] =  Val
+      Density[1,*] =  Quality
+      Time -= graph[GraphN].TimeBase
+      graph[GraphN].DataFlags[Item] = 1
+      graph[GraphN].dataTime[Item] = Time[0] 
+      (*Mex.Time) = N_elements(*Mex.Time) eq 0 ? Time : [*Mex.Time,Time]  
+      (*Mex.Val) =  N_elements(*Mex.Val)  eq 0 ?   reform(Density,2*IndexTime) : [*Mex.Val,reform(Density,2*IndexTime)]
+   endif ;else Graph[GraphN].ErrorFlag = 1
+         
+return
+end
+;-----------------------------------------------------------
diff --git a/amda_plus/amdalib/getncvar.pro b/amda_plus/amdalib/getncvar.pro
new file mode 100644
index 0000000..2458e08
--- /dev/null
+++ b/amda_plus/amdalib/getncvar.pro
@@ -0,0 +1,53 @@
+function getNcVar, files,  paramName, dims, StartDouble, IntDouble, Time, Data
+ 
+ Size = N_elements(Time);
+
+ LastTime = -1;
+
+ startIndex = 0L;
+ datapath = getenv("USER_DATA_PATH") eq '' ?  '../DATA/' : getenv("USER_DATA_PATH");
+
+ for i = 0, n_elements(files) - 1 do begin
+   
+     fileName = datapath + files[i];
+     id = NCDF_OPEN(fileName);
+ 
+     
+     TimeID = NCDF_VARID(id, 'Time');
+     VarID =  NCDF_VARID(id, paramName);
+   
+     res = NCDF_VARINQ(id, VarID);     
+     dims = res.ndims;
+           
+      NCDF_VARGET, id, TimeId, Time1 
+ 
+      num = where(Time1 GE StartDouble AND Time1 LT StartDouble+IntDouble AND Time1 GT LastTime, Index);
+         
+      if (Index eq 0 AND startIndex eq 0 AND i eq (n_elements(files) - 1))  then return, 0
+
+      stopIndex = startIndex + Index;
+ 
+      if (stopIndex gt Size) then begin
+            Time1 = Time1[0:Index-(stopIndex-Size)]
+            num = where(Time1 GE StartDouble AND Time1 LT StartDouble+IntDouble, Index);
+            stopIndex =  Size ; 
+      endif    
+       
+      if (Index GT 0) then begin
+        Time[startIndex:stopIndex-1] = Time1[num];
+        
+        NCDF_VARGET, id, VarId, data1
+    
+        if (dims eq 1) then  Data[startIndex:stopIndex-1] = reform(Data1[num])  $
+        else Data[*, startIndex:stopIndex-1] = Data1[*, num]
+
+      endif 
+
+      NCDF_CLOSE, id
+      startIndex += Index;  
+      LastTime =  Time[stopIndex-1]  
+  endfor  
+ 
+ return, startIndex;
+
+end
\ No newline at end of file
diff --git a/amda_plus/amdalib/getros_lap_sweep.pro b/amda_plus/amdalib/getros_lap_sweep.pro
new file mode 100644
index 0000000..68fdc7a
--- /dev/null
+++ b/amda_plus/amdalib/getros_lap_sweep.pro
@@ -0,0 +1,60 @@
+; $Id: getlocalparam.pro,v 1.5 2011/09/21 16:01:45 budnik Exp $
+;--------------------------------------
+;   GETNEWPARAM - TEMPLATE
+;
+; Fri Sep 21 11:57:01 CEST 2007
+;
+;---------------------------------------
+
+ pro GETros_lap_sweep, LAP, st, dt
+ 
+ 
+common ros_lap1_sweep_Common, Final1
+common ros_lap2_sweep_Common, Final2
+common GraphC, graph, GraphN, Item
+
+    cmd = 'Final = Final'+string(LAP,format='(i1)')
+    R = execute(cmd);
+
+    paramName = 'full_sweep';
+    
+    VI = 'ros:lap'+string(LAP,format='(i1)')+':sweep';
+    ID = Graph[GraphN].DataID[Item];
+
+    Size = Final.DefSize
+    flag = intarr(size); 
+    Time  = dblarr(size);
+
+  
+     RetSize = call_external(!PROJLIB + '/libParam.so', 'getLocalData', $         
+                          ID, VI, 'macros', st, dt, size, Time, flag);
+
+     if (RetSize GT 1) then begin 
+        flag = temporary(flag[0:RetSize-1]);
+           
+        dims = 241L;          
+        Data = fltarr(dims,retSize);       
+        Time  = temporary(Time[0:retSize-1]);    
+        Data1 =  replicate(Graph[GraphN].FillValue[Item], (dims+1L)*retSize);
+    
+        RetSize = call_external(!PROJLIB + '/libParam.so', 'getLocalData', $         
+                            ID, VI, paramName, st, dt, size, Time, Data);
+ 
+        
+         Data1 = temporary(reform(Data1,dims+1L,Retsize));
+         Data1[0:dims-1, *] =  Data[*, 0:Retsize - 1];                                  
+ 
+        Data1[dims,*] = float(flag);       
+        Time = Time - graph[GraphN].TimeBase;
+        graph[GraphN].DataFlags[Item] = 1;
+        graph[GraphN].dataTime[Item] = Time[0];
+         
+        averagelap, Final, Time[ 0:Retsize - 1],Data1  
+      
+    endif;  else Graph[GraphN].ErrorFlag = 1;
+
+    cmd = 'Final'+string(LAP,format='(i1)')+ ' = Final'
+    R = execute(cmd)
+ 
+return
+end
diff --git a/amda_plus/amdalib/getros_mip_surv.pro b/amda_plus/amdalib/getros_mip_surv.pro
new file mode 100644
index 0000000..7ddb614
--- /dev/null
+++ b/amda_plus/amdalib/getros_mip_surv.pro
@@ -0,0 +1,55 @@
+; $Id: getlocalparam.pro,v 1.5 2011/09/21 16:01:45 budnik Exp $
+;--------------------------------------
+;   GETNEWPARAM - TEMPLATE
+;
+; Fri Sep 21 11:57:01 CEST 2007
+;
+;---------------------------------------
+
+ pro GETros_mip_surv, st, dt
+ 
+ 
+common ros_mip_surv_Common, Final 
+common GraphC, graph, GraphN, Item
+
+    paramName = 'SurveyFull';
+    dims = 92L;    
+    VI = 'ros:mip:surv';
+    Size = Final.DefSize
+
+    
+    Data = fltarr(dims,size);       
+    flag = lonarr(size); 
+    Time  =  dblarr(size)
+    Data1 = fltarr(dims+1,size);
+
+   ID = Long(graph[GraphN].DataID[Item])
+   Lag = Graph[GraphN].Lag[0];
+   Sampling =  Graph[GraphN].Sampling[Item];
+ 
+   if (Lag ne 0.0) then begin
+     rt = call_external(!DDLIB+'DD_idl.so', 'GetDTime', st, /D_VALUE)
+     rt -=  Lag
+     st = call_external(!DDLIB+'DD_idl.so', 'GetTime', double(rt), /S_VALUE)
+   endif
+ 
+   RetSize = call_external(!PROJLIB + 'libParam.so', 'getLocalData', $         
+                          ID, VI, paramName, st, dt, size, Time, Data) 
+   
+   RetSize = call_external(!PROJLIB + 'libParam.so', 'getLocalData', $         
+                          ID, VI, 'Frequency_table_idx', st, dt, size, Time, flag) 
+ 
+   if (ID GE 0) then  Graph[GraphN].DataID[Item] = ID    
+    
+   if (RetSize GT 1) then begin  
+         Data1[0:dims-1, 0:RetSize-1] = Data[*,0:RetSize-1];
+         Data1[dims,  0:RetSize-1] = float(flag[0:RetSize-1]);
+   
+         Time = Time - graph[GraphN].TimeBase + Lag;
+         graph[GraphN].DataFlags[Item] = 1;
+         graph[GraphN].dataTime[Item] = Time[0];
+         average, Final, Time[0:RetSize-1], Data1[*,0:RetSize-1]
+   endif;  else Graph[GraphN].ErrorFlag = 1;
+    
+return
+end
diff --git a/amda_plus/amdalib/getros_mip_survphase.pro b/amda_plus/amdalib/getros_mip_survphase.pro
new file mode 100644
index 0000000..595915f
--- /dev/null
+++ b/amda_plus/amdalib/getros_mip_survphase.pro
@@ -0,0 +1,55 @@
+; $Id: getlocalparam.pro,v 1.5 2011/09/21 16:01:45 budnik Exp $
+;--------------------------------------
+;   GETNEWPARAM - TEMPLATE
+;
+; Fri Sep 21 11:57:01 CEST 2007
+;
+;---------------------------------------
+
+ pro GETros_mip_survphase, st, dt
+ 
+ 
+common ros_mip_survphase_Common, Final 
+common GraphC, graph, GraphN, Item
+
+    paramName = 'SurveyFull_Phase';
+    dims = 92L;    
+    VI = 'ros:mip:survphase';
+    Size = Final.DefSize
+
+    
+    Data = fltarr(dims,size);       
+    flag = lonarr(size); 
+    Time  =  dblarr(size)
+    Data1 = fltarr(dims+1,size);
+
+   ID = Long(graph[GraphN].DataID[Item])
+   Lag = Graph[GraphN].Lag[0];
+   Sampling =  Graph[GraphN].Sampling[Item];
+ 
+   if (Lag ne 0.0) then begin
+     rt = call_external(!DDLIB+'DD_idl.so', 'GetDTime', st, /D_VALUE)
+     rt -=  Lag
+     st = call_external(!DDLIB+'DD_idl.so', 'GetTime', double(rt), /S_VALUE)
+   endif
+ 
+   RetSize = call_external(!PROJLIB + 'libParam.so', 'getLocalData', $         
+                          ID, VI, 'Frequency_table_idx', st, dt, size, Time, flag) 
+
+   RetSize = call_external(!PROJLIB + 'libParam.so', 'getLocalData', $         
+                          ID, VI, paramName, st, dt, size, Time, Data) 
+ 
+   if (ID GE 0) then  Graph[GraphN].DataID[Item] = ID    
+    
+   if (RetSize GT 1) then begin  
+         Data1[0:dims-1, 0:RetSize-1] = Data[*,0:RetSize-1];
+         Data1[dims,  0:RetSize-1] = float(flag[0:RetSize-1]);
+   
+         Time = Time - graph[GraphN].TimeBase + Lag;
+         graph[GraphN].DataFlags[Item] = 1;
+         graph[GraphN].dataTime[Item] = Time[0];
+         averagemip, Final, Time[0:RetSize-1], Data1[*,0:RetSize-1]
+   endif ; else Graph[GraphN].ErrorFlag = 1;
+    
+return
+end
diff --git a/amda_plus/amdalib/gettxtvar.pro b/amda_plus/amdalib/gettxtvar.pro
new file mode 100644
index 0000000..a029a4b
--- /dev/null
+++ b/amda_plus/amdalib/gettxtvar.pro
@@ -0,0 +1,40 @@
+function getTxtVar, files,  paramName, dims, StartDouble, IntDouble, Time, Data
+ 
+ Size = N_elements(Time);
+  
+ startIndex = 0L;
+ i_start = long(paramName);
+ i_stop = i_start + dims - 1;
+ 
+ datapath = getenv("USER_DATA_PATH") eq '' ?  '../DATA/' : getenv("USER_DATA_PATH");
+ for i = 0, n_elements(files) - 1 do begin
+ ; print,  i, "FILENEME", files[i]
+     openr, LUN, datapath+files[i], err = err, /GET_LUN ;
+     temp = " ";
+    
+     while not EOF(LUN) do begin
+        readf, LUN, temp
+        arr = strsplit(temp, " ", /EXTRACT);
+        Time1 = N_Elements(Time1) eq 0 ? double(arr[0]) : [Time1,double(arr[0])];   
+        Data1 = N_Elements(Data1) eq 0 ? float(arr[i_start:i_stop]) : [Data1, float(arr[i_start:i_stop])]        
+    endwhile
+
+    close,LUN
+    free_lun,LUN  
+  endfor 
+
+   num = where(Time1 GE StartDouble AND Time1 LT StartDouble+IntDouble, Index);
+ ;  print, "INDEX ",Index, " SIZE ", Size, " INDEX+ ", startIndex + Index 
+   if ((Index eq 0 AND startIndex eq 0) OR (startIndex + Index gt Size))  then return, 0;   
+
+   if (Index GT 0) then begin 
+        Time[startIndex:startIndex+Index-1] = Time1[num];
+        if (dims eq 1) then  Data[startIndex:startIndex+Index-1] = reform(Data1[num])  $
+        else begin 
+                Data1 = reform(Data1,dims,N_elements(Time1))
+                Data[*, startIndex:startIndex+Index-1] = Data1[*, num]
+        endelse      
+   endif
+  startIndex += Index; 
+ return, startIndex;
+end
\ No newline at end of file
diff --git a/amda_plus/amdalib/ica_spec_com.pro b/amda_plus/amdalib/ica_spec_com.pro
new file mode 100644
index 0000000..02b135a
--- /dev/null
+++ b/amda_plus/amdalib/ica_spec_com.pro
@@ -0,0 +1,57 @@
+;===========================================================
+;
+;===================== ========================================
+pro ica_spec_com 
+
+common IcaSpecCom, Spec
+common GraphC, graph, GraphN, Item
+common Etab, Flag, Tab
+Common Record, Record
+
+ if (N_ELEMENTS(Flag) eq 0) then Flag = GraphN
+
+ FillValue =  !Values.F_NAN
+ Sampling = 192.0
+ Sz =  Long((Graph[GraphN].DeltaT)/Sampling + 1)
+
+  Spec = record
+  Spec.DefSize = long(Graph[GraphN].DeltaT/Sampling + 1)
+  Spec.Sampling = Sampling
+  Graph[GraphN].FillValue[Item] = FillValue
+  ; Graph[GraphN].Lag[Item] = double(Delay)
+
+  Spec.Time = PTR_NEW(/ALLOCATE_HEAP)
+  Spec.Val = PTR_NEW(/ALLOCATE_HEAP)
+  Spec.LastTime = PTR_NEW(/ALLOCATE_HEAP)
+  Spec.LastVal = PTR_NEW(/ALLOCATE_HEAP)
+
+  if (Flag eq GraphN) then begin
+      Tab = record;
+      Tab.DefSize = long(Graph[GraphN].DeltaT/Sampling + 1)
+      Tab.Sampling = Sampling
+      
+      Tab.Time = PTR_NEW(/ALLOCATE_HEAP)
+      Tab.Val = PTR_NEW(/ALLOCATE_HEAP)
+      Tab.LastTime = PTR_NEW(/ALLOCATE_HEAP)
+      Tab.LastVal = PTR_NEW(/ALLOCATE_HEAP)
+      Flag = GraphN;
+  endif
+
+  Graph[GraphN].Sampling[Item] =  Sampling
+  Graph[GraphN].Time[Item] =  Spec.Time
+  Graph[GraphN].Val[Item] = Spec.Val
+ 
+  if (Graph[GraphN].Step GT Sampling*2.0) then begin
+    *(Spec.Time) = indgen(Graph[GraphN].ppp)*Graph[GraphN].Step + Graph[GraphN].Step/2.0
+    *(Spec.Val)  =  replicate(FillValue, 16L*96L*16L*Graph[GraphN].ppp)
+    if (Flag eq GraphN) then begin
+	*(Tab.Time) = indgen(Graph[GraphN].ppp)*Graph[GraphN].Step + Graph[GraphN].Step/2.0
+	*(Tab.Val)  =  replicate(FillValue, Graph[GraphN].ppp)
+    endif
+  endif
+  
+
+return
+end
+;------------------------------------------------------------
+
diff --git a/amda_plus/amdalib/icacntplot.pro b/amda_plus/amdalib/icacntplot.pro
new file mode 100644
index 0000000..2538264
--- /dev/null
+++ b/amda_plus/amdalib/icacntplot.pro
@@ -0,0 +1,104 @@
+pro icacntplot, azMin, azMax, enMin, enMax, elevation
+
+  common GraphC, Graph, GraphN, Item
+  common Etab, Flag, ETab
+    
+    ;------- Energy table -----------------    
+   
+    Tab = fix(*ETab[0].val); 
+    VI = "ros:ica:all";
+    ID = Long(graph[GraphN].DataID[Item]);
+    EnNum = 96
+    Energy = fltarr(EnNum)
+    numTab = uniq(Tab,sort(Tab));
+    uniqTab = Tab[numTab];
+    temp = fltarr(96L,2L); 
+
+
+    err = call_external(!PROJLIB + '/libParam.so', 'getInfo', $
+                             ID, VI, "Energy", 2L*96L, temp)
+
+    Energy = temp[*, uniqTab[0]];
+    Energy =  temporary(Energy(where(Energy GT 0)));
+    EnNum = N_elements(Energy)
+    
+  ;-------- Cat in the Energy range ------------
+   E0 =  min(Energy)
+   E1 =  max(Energy)
+   eindex = where((Energy GE E0) AND $
+                  (Energy LE E1) AND $
+                  (Energy GT 0.0),counte)
+   if counte GT 0 then begin
+      EBounds = fltarr(EnNum+1)
+      EBounds(min(eindex)) = Energy(min(eindex))
+      EBounds(max(eindex+1)) = Energy(max(eindex))
+      for ie = min(eindex+1), max(eindex) do EBounds(ie) = sqrt(Energy(ie-1)*Energy(ie))
+   endif else return
+
+;--------------------- No DATA - just axes -----------------------
+   if (N_Elements(*Graph[GraphN].Time[0]) eq 0) then begin
+         nodata
+         return
+   endif
+
+
+    Time = (*Graph[GraphN].Time[0])
+
+    Val = (*Graph[GraphN].Val[0])
+    N_Time = N_elements(Time);
+
+   
+   if (elevation) then begin 
+      Val = temporary(reform(Val, 96, 16, 16, N_Time)) 
+      LocVal =  azMax GT azMin ? total(total(Val[*, azMin:azMax, 0:15, *],2),2) : reform(total(Val[*,azMin,0:15,*],3), 96, N_time);
+      newTime = Time;  
+      deltaT = 96.0;
+      gapT = deltaT*10.0 ;
+  endif else begin
+; elevation as TIME
+      newTime = dblarr(N_Time*16);
+      for i = 0, N_Time - 1 do for j = 0, 15 do newTime[i*16 + j] = Time[i] + j*12.D0
+      N_Time *= 16;
+      Val = temporary(reform(Val, 96, 16, N_Time));
+      LocVal =  azMax GT azMin ? total(Val[*,azMin:azMax,*],2) : reform(Val[*,azMin,*], 96, N_time);  
+      deltaT = 6.0;
+      gapT = deltaT*10.0;
+    endelse
+      
+    num0 = where(EBounds ge enMin, Index0);
+    num1 = where(EBounds ge enMax, Index1);
+    
+    if (Index1 eq 0)  then numStop = 0 else  numStop = num1[Index1-1];
+    if (Index0 eq EnNum+1) then numStart = 95 else numStart = num0[Index0-1];
+    
+    Data =  numStart ne numStop ? total(LocVal[numStop:numStart,*],1) : reform(LocVal[numStart,*], N_Time);   
+    numMinMax = where(finite(Data), IndexMinMax)
+
+    MinVal = min(Data[numMinMax]) > 0.1;   
+    MaxVal = max(Data[numMinMax]);
+   
+     
+   if Graph[GraphN].Ly.range[0] eq Graph[GraphN].Ly.range[1] then begin
+                Graph[GraphN].Ly.range = Graph[GraphN].AxisF eq 'logaxis' ? [MinVal, MaxVal] : [0.0, MaxVal]
+                Graph[GraphN].Ly.style = 0
+    endif else Graph[GraphN].Ly.style = 1
+    
+    !y = Graph[GraphN].Ly;  
+  
+    if (execute(Graph[GraphN].AxisF) NE 1) then plot, newTime, Data, MAX_VALUE=MaxValue,  color = !dnc-1, /NODATA, /NOERASE 
+        
+    plots, newTime[0]+deltaT, Data[0], /DATA
+ 
+    for i = 1, N_elements(newTime) - 1 do begin
+      if (newTime[i] LE Graph[GraphN].TotalTime) then begin
+          if (data[i] lt Graph[GraphN].Ly.range[0]) then data[i] = Graph[GraphN].Ly.range[0];
+          if (data[i] gt Graph[GraphN].Ly.range[1]) then data[i] = Graph[GraphN].Ly.range[1];  
+          if (newTime[i] - newTime[i-1] LE gapT) then $
+                    plots, newTime[i]+deltaT, data[i], color=col, /CONTINUE, /DATA $
+          else   plots, newTime[i]+deltaT, data[i], /DATA 
+        endif
+    endfor
+      
+return
+end
+;--------------------------------------------------------------------
diff --git a/amda_plus/amdalib/icaspecplot.pro b/amda_plus/amdalib/icaspecplot.pro
new file mode 100644
index 0000000..c225f4f
--- /dev/null
+++ b/amda_plus/amdalib/icaspecplot.pro
@@ -0,0 +1,186 @@
+;============================================================
+;
+;=============================================================
+
+pro icaspecplot,  AzMin, AzMax, elevation, minCount, maxCount
+
+   common GraphC, Graph, GraphN, Item
+   common Etab, Flag, ETab
+
+   ;------- Energy table -----------------    
+    
+    VI = "ros:ica:all";
+    ID = Long(graph[GraphN].DataID[Item])
+ 
+    EnNum0 = 96
+    Energy = fltarr(EnNum0);
+    Energy1 = fltarr(EnNum0);
+; set min/max energy
+    EnergyMin = 40000.0;
+    EnergyMax = 0.0;
+ 
+    if (n_elements(*ETab[0].val) eq 0) then begin 
+     !y = Graph[GraphN].Ly
+      plot_io, graph[GraphN].Lx.range, [1., 40000.0], /nodata, /noerase, ystyle = 1, $
+                              ytickformat='yticks', charsize=graph[GraphN].Lp.charsize*0.8, color = !dnc-1
+      nodatafortimeinterval
+     return
+    endif
+
+    Tab = fix(*ETab[0].val); 
+    numTab = uniq(Tab,sort(Tab));
+    uniqTab = Tab[numTab];
+    temp = fltarr(96L,2L);
+
+
+    err = call_external(!PROJLIB + '/libParam.so', 'getInfo', $
+                             ID, VI, "Energy", 2L*96L, temp)
+
+    for i = 0, N_elements(uniqTab) - 1 do begin 
+        if uniqTab[i] lt 0 then continue;
+         Energy1 = temp[*, uniqTab[i]]
+         Energy1 =  temporary(Energy1(where(Energy1 GT 0)));
+        if (min(Energy1) LT EnergyMin) then EnergyMin = min(Energy1);
+        if (max(Energy1) GT EnergyMax) then EnergyMax = max(Energy1);
+    endfor 
+ 
+    Energy = temp[*, uniqTab[0]]
+    Energy =  temporary(Energy(where(Energy GT 0)));
+    EnNum = N_elements(Energy)
+  
+  ;-------- Cat in the Energy range ------------
+   E0 = Graph[GraphN].Ly.range[0] eq Graph[GraphN].Ly.range[1] ?  min(Energy) : Graph[GraphN].Ly.range[0]
+   E1 = Graph[GraphN].Ly.range[0] eq Graph[GraphN].Ly.range[1] ?  max(Energy) : Graph[GraphN].Ly.range[1]
+
+   eindex = where((Energy GE E0) AND $
+                  (Energy LE E1) AND $
+                  (Energy GT 0.0),counte)
+
+   if counte GT 0 then begin
+      EBounds = fltarr(EnNum+1)
+      EBounds(min(eindex)) = Energy(min(eindex))
+      EBounds(max(eindex+1)) = Energy(max(eindex))
+      for ie = min(eindex+1), max(eindex) do EBounds[ie] = sqrt(Energy[ie-1]*Energy[ie])
+   endif else begin
+         !y = Graph[GraphN].Ly
+         plot_io, graph[GraphN].Lx.range, [1., 40000.0], /nodata, /noerase, ystyle = 1, $
+                              ytickformat='yticks', charsize=graph[GraphN].Lp.charsize*0.8, color = !dnc-1
+        nodatafortimeinterval
+        return
+   endelse
+ 
+;--------------------- No DATA - just axes -----------------------
+   if (N_Elements(*Graph[GraphN].Time[0]) eq 0) then begin
+         nodata
+         return
+   endif
+
+    Time = (*Graph[GraphN].Time[0])
+
+    Val = (*Graph[GraphN].Val[0])
+    N_Time = N_elements(Time);
+ 
+   if (elevation) then begin 
+      Val = temporary(reform(Val, 96, 16, 16, N_Time)) 
+      LocVal =  azMax GT azMin ? total(total(Val[*, azMin:azMax, 0:15, *],2),2) : reform(total(Val[*,azMin,0:15,*],3), 96, N_time);
+      newTime = Time;      
+  endif else begin
+; elevation as TIME
+      newTime = dblarr(N_Time*16);
+      for i = 0, N_Time - 1 do for j = 0, 15 do newTime[i*16 + j] = Time[i] + j*12.D0
+      N_Time *= 16;
+      Val = temporary(reform(Val, 96, 16, N_Time));
+      LocVal =  azMax GT azMin ? total(Val[*,azMin:azMax,*],2) : reform(Val[*,azMin,*], 96, N_time);  
+    endelse
+
+  
+   numMinMax = where(LocVal gt 0.0, IndexMinMax)   
+ 
+
+  if (Graph[GraphN].Ly.range[0] eq Graph[GraphN].Ly.range[1]) then  $
+                                      Graph[GraphN].Ly.range = [EnergyMin, EnergyMax]
+       
+   Graph[GraphN].Ly.style = 1
+
+  !y = Graph[GraphN].Ly
+ 
+   plot_io, graph[GraphN].Lx.range, graph[GraphN].Ly.range, /nodata, /noerase, ystyle = 1, $
+                              ytickformat='yticks', charsize=graph[GraphN].Lp.charsize*0.8, color = !dnc-1
+
+   Step = Graph[GraphN].Sampling[0] > Graph[GraphN].Step;  
+   if (not elevation) then Step /= 16.0;    
+
+ ;--------------------- No DATA - just axes -----------------------
+  if (IndexMinMax LE 0) then begin
+         nodatafortimeinterval
+         return
+  endif
+  if (Time[0] GT Graph[GraphN].TotalTime) then begin
+        nodatafortimeinterval
+         return
+  endif
+
+   MinVal = (MinCount ge 0) ? MinCount > 0.1: min(Val[numMinMax]) > 0.1
+   MaxVal = (MaxCount ge 0) ? MaxCount : max(Val[numMinMax]) 
+  
+ ; MinVal = min(LocVal[numMinMax]) > 0.1
+ ; MaxVal = max(LocVal[numMinMax])   
+ 
+ ;-----------   NOW PLOT SPECTRA
+    alogMin = alog(MinVal)
+    KF = float(!DNC - 2) /(alog(MaxVal) - alogMin)
+    xx = fltarr(4) & yy = fltarr(4)
+ 
+     for i = 0, N_Time - 2 do begin
+
+	ii = elevation ? i : i/16 < (N_elements(Tab) - 2);
+ 
+	if (Tab[ii+1] ne Tab[ii] AND Tab[ii+1] GE 0) then begin                
+	      Energy = temp[*,Tab[ii+1]]
+	      Energy =  temporary(Energy(where(Energy GT 0)));
+	      EnNum = N_elements(Energy)
+	      
+	    ;-------- Cat in the Energy range ------------
+	    E0 = Graph[GraphN].Ly.range[0] eq Graph[GraphN].Ly.range[1] ? min(Energy) : Graph[GraphN].Ly.range[0]
+	    E1 = Graph[GraphN].Ly.range[0] eq Graph[GraphN].Ly.range[1] ? max(Energy) : Graph[GraphN].Ly.range[1]
+	    eindex = where((Energy GE E0) AND $
+			    (Energy LE E1) AND $
+			    (Energy GT 0.0),counte)
+	    if counte GT 0 then begin
+		EBounds = fltarr(EnNum+1)
+		EBounds(min(eindex)) = Energy(min(eindex))
+		EBounds(max(eindex+1)) = Energy(max(eindex))
+		for ie = min(eindex+1), max(eindex) do EBounds(ie) = sqrt(Energy(ie-1)*Energy(ie))
+	    endif else return
+	endif
+        xx[0] = newTime[i]  > 0.0
+        xx[1] = xx[0]
+        xx[2] = newTime[i+1] < newTime[i] + Step
+        xx[3] = xx[2]
+
+        if (xx[2] LE graph[GraphN].TotalTime AND xx[0] LT graph[GraphN].TotalTime) then begin
+           for k = min(eindex), max(eindex) do begin
+                  yy[0] = EBounds[k]
+                  yy[1] = EBounds[k+1]
+                  yy[2] = yy[1]
+                  yy[3] = yy[0]
+                  lcount = LocVal[k,i] ;< 1.e5
+                  if finite(lcount) then begin
+                   cl = lcount GT MinVal ? fix(KF*(alog(lcount) - alogMin)) : 1;
+                  endif else cl = 0;
+                  
+                  if (cl GT !DNC - 2) then  cl = !DNC - 2
+                  PolyFill, xx ,yy, color = cl, /data 
+            endfor
+        endif
+     endfor
+  
+;-------------------- Legend ----------------------------------------
+       spec_legend, MinVal, MaxVal
+;------------------ MIN-MAX------------------------------------------------
+      Graph[GraphN].Min  = MinVal
+      Graph[GraphN].Max  = MaxVal
+
+return
+end
+;--------------------------------------------------------------------
diff --git a/amda_plus/amdalib/ima_h_spec_com.pro b/amda_plus/amdalib/ima_h_spec_com.pro
new file mode 100644
index 0000000..891794e
--- /dev/null
+++ b/amda_plus/amdalib/ima_h_spec_com.pro
@@ -0,0 +1,72 @@
+;===========================================================
+;
+;                   VEX_H_SPEC COM
+;  18 Mars 2009
+;===================== ========================================
+pro ima_h_spec_com, Mission
+
+common VexHSpecCom, VexHSpec
+common MexHSpecCom, MexHSpec
+
+common GraphC, graph, GraphN, Item
+Common Record, Record
+common Etab, FlagVex, EtabVex, FlagMex, EtabMex
+
+
+ if (Mission eq 'vex') then begin
+      if (N_ELEMENTS(FlagVex) eq 0) then Flag = GraphN $
+      else Flag = FlagVex;
+ endif else begin
+      if (N_ELEMENTS(FlagMex) eq 0) then Flag = GraphN $
+      else Flag = FlagMex;
+ endelse 
+   
+ FillValue =  !Values.F_NAN
+ Sampling = 192.0
+ Sz =  Long((Graph[GraphN].DeltaT)/Sampling + 1)
+
+  Spec = record
+  Spec.DefSize = long(Graph[GraphN].DeltaT/Sampling + 1)
+  Spec.Sampling = Sampling
+  Graph[GraphN].FillValue[Item] = FillValue
+  ; Graph[GraphN].Lag[Item] = double(Delay)
+
+  Spec.Time = PTR_NEW(/ALLOCATE_HEAP)
+  Spec.Val = PTR_NEW(/ALLOCATE_HEAP)
+  Spec.LastTime = PTR_NEW(/ALLOCATE_HEAP)
+  Spec.LastVal = PTR_NEW(/ALLOCATE_HEAP)
+
+  Graph[GraphN].Sampling[Item] =  Sampling
+  Graph[GraphN].Time[Item] =  Spec.Time
+  Graph[GraphN].Val[Item] = Spec.Val
+
+  if (Flag eq GraphN) then begin
+	Tab = record;
+	Tab.DefSize = long(Graph[GraphN].DeltaT/Sampling + 1)
+	Tab.Sampling = Sampling
+	
+	Tab.Time = PTR_NEW(/ALLOCATE_HEAP)
+	Tab.Val = PTR_NEW(/ALLOCATE_HEAP)
+	Tab.LastTime = PTR_NEW(/ALLOCATE_HEAP)
+	Tab.LastVal = PTR_NEW(/ALLOCATE_HEAP)
+	Flag = GraphN;
+    endif
+ 
+  if (Graph[GraphN].Step GT Sampling*2.0) then begin
+    *(Spec.Time) = indgen(Graph[GraphN].ppp)*Graph[GraphN].Step + Graph[GraphN].Step/2.0
+    *(Spec.Val)  = replicate(FillValue, 16L*96L*16L*Graph[GraphN].ppp)
+    if (Flag eq GraphN) then begin
+	*(Tab.Time) = indgen(Graph[GraphN].ppp)*Graph[GraphN].Step + Graph[GraphN].Step/2.0
+	*(Tab.Val)  =  replicate(FillValue, Graph[GraphN].ppp)
+    endif
+  endif
+  
+  if (Flag eq GraphN) then cmd = Mission + 'HSpec = Spec & Etab' + Mission +'= Tab & Flag'+ Mission +'= Flag' $
+  else cmd = Mission + 'HSpec = Spec';
+
+  R = execute(cmd);
+  
+return
+end
+;------------------------------------------------------------
+
diff --git a/amda_plus/amdalib/ima_o_spec_com.pro b/amda_plus/amdalib/ima_o_spec_com.pro
new file mode 100644
index 0000000..004eb7a
--- /dev/null
+++ b/amda_plus/amdalib/ima_o_spec_com.pro
@@ -0,0 +1,70 @@
+;===========================================================
+;
+;                   VEX_o_SPEC COM
+;  18 Mars 2009
+;===================== ========================================
+pro ima_o_spec_com, Mission
+
+common VexOSpecCom, VexOSpec
+common MexOSpecCom, MexOSpec
+common GraphC, graph, GraphN, Item
+common Etab, FlagVex, EtabVex, FlagMex, EtabMex
+Common Record, Record
+
+ if (Mission eq 'vex') then begin
+      if (N_ELEMENTS(FlagVex) eq 0) then Flag = GraphN $
+      else Flag = FlagVex;
+ endif else begin
+      if (N_ELEMENTS(FlagMex) eq 0) then Flag = GraphN $
+      else Flag = FlagMex;
+ endelse  
+
+ FillValue =  !Values.F_NAN
+ Sampling = 192.0
+ Sz =  Long((Graph[GraphN].DeltaT)/Sampling + 1)
+
+  Spec = record
+  Spec.DefSize = long(Graph[GraphN].DeltaT/Sampling + 1)
+  Spec.Sampling = Sampling
+  Graph[GraphN].FillValue[Item] = FillValue
+  ; Graph[GraphN].Lag[Item] = double(Delay)
+
+  Spec.Time = PTR_NEW(/ALLOCATE_HEAP)
+  Spec.Val = PTR_NEW(/ALLOCATE_HEAP)
+  Spec.LastTime = PTR_NEW(/ALLOCATE_HEAP)
+  Spec.LastVal = PTR_NEW(/ALLOCATE_HEAP)
+
+  if (Flag eq GraphN) then begin
+      Tab = record;
+      Tab.DefSize = long(Graph[GraphN].DeltaT/Sampling + 1)
+      Tab.Sampling = Sampling
+      
+      Tab.Time = PTR_NEW(/ALLOCATE_HEAP)
+      Tab.Val = PTR_NEW(/ALLOCATE_HEAP)
+      Tab.LastTime = PTR_NEW(/ALLOCATE_HEAP)
+      Tab.LastVal = PTR_NEW(/ALLOCATE_HEAP)
+      Flag = GraphN;
+  endif
+
+  Graph[GraphN].Sampling[Item] =  Sampling
+  Graph[GraphN].Time[Item] =  Spec.Time
+  Graph[GraphN].Val[Item] = Spec.Val
+ 
+  if (Graph[GraphN].Step GT Sampling*2.0) then begin
+    *(Spec.Time) = indgen(Graph[GraphN].ppp)*Graph[GraphN].Step + Graph[GraphN].Step/2.0
+    *(Spec.Val)  =  replicate(FillValue, 16L*96L*16L*Graph[GraphN].ppp)
+    if (Flag eq GraphN) then begin
+	*(Tab.Time) = indgen(Graph[GraphN].ppp)*Graph[GraphN].Step + Graph[GraphN].Step/2.0
+	*(Tab.Val)  =  replicate(FillValue, Graph[GraphN].ppp)
+    endif
+  endif
+  
+  if (Flag eq GraphN) then cmd = Mission + 'OSpec = Spec & Etab' + Mission +'= Tab & Flag'+ Mission +'= Flag' $
+  else cmd = Mission + 'OSpec = Spec';
+    
+  R = execute(cmd);
+
+return
+end
+;------------------------------------------------------------
+
diff --git a/amda_plus/amdalib/imacntplot.pro b/amda_plus/amdalib/imacntplot.pro
new file mode 100644
index 0000000..c8f7b72
--- /dev/null
+++ b/amda_plus/amdalib/imacntplot.pro
@@ -0,0 +1,93 @@
+pro imacntplot, Mission, azMin, azMax, enMin, enMax, elevation
+
+  common GraphC, Graph, GraphN, Item
+  common Etab, FlagVex, EtabVex, FlagMex, EtabMex
+
+   ;------- Energy table -----------------
+    if (Mission eq 'vex') then Tab = fix(*EtabVex[0].val) else Tab = fix(*EtabMex[0].val);
+    EnNum = 96
+    Energy = fltarr(EnNum)
+     
+    RetSize = call_external(!PROJLIB + 'imainfo.so','GetImaEner_idl', Energy, Tab[0])
+    Energy = temporary(Energy(where(Energy GT 0)));
+    EnNum = N_elements(Energy)
+    
+  ;-------- Cat in the Energy range ------------
+   E0 =  min(Energy)
+   E1 =  max(Energy)
+   eindex = where((Energy GE E0) AND $
+                  (Energy LE E1) AND $
+                  (Energy GT 0.0),counte)
+   if counte GT 0 then begin
+      EBounds = fltarr(EnNum+1)
+      EBounds(min(eindex)) = Energy(min(eindex))
+      EBounds(max(eindex+1)) = Energy(max(eindex))
+      for ie = min(eindex+1), max(eindex) do EBounds(ie) = sqrt(Energy(ie-1)*Energy(ie))
+   endif else return
+
+
+  ;  FillValue = Graph[GraphN].FillValue[0]
+;--------------------- No DATA - just axes -----------------------
+   if (N_Elements(*Graph[GraphN].Time[0]) eq 0) then begin
+         nodata
+         return
+   endif
+
+    Time = (*Graph[GraphN].Time[0])
+
+    Val = (*Graph[GraphN].Val[0])
+    N_Time = N_elements(Time);
+
+    if (elevation) then begin 
+      Val = temporary(reform(Val, 16, 96, 16, N_Time))  
+      LocVal =  azMax GT azMin ? total(total(Val[azMin:azMax,*,0:15, *],1),2) : reform(total(Val[azMin,*,0:15,*],3), 96, N_time);   
+      newTime = Time;  
+      deltaT = 96.0;
+      gapT = deltaT*10.0 ;
+  endif else begin
+; elevation as TIME
+      newTime = dblarr(N_Time*16);
+      for i = 0, N_Time - 1 do for j = 0, 15 do newTime[i*16 + j] = Time[i] + j*12.D0
+      N_Time *= 16;
+      Val = temporary(reform(Val, 16, 96, N_Time));
+      LocVal =  azMax GT azMin ? total(Val[azMin:azMax,*,*],1) : reform(Val[azMin,*,*], 96, N_time);  
+      deltaT = 6.0;
+      gapT = deltaT*10.0;
+    endelse
+  
+    num0 = where(EBounds ge enMin, Index0);
+    num1 = where(EBounds ge enMax, Index1);
+    
+    if (Index1 eq 0)  then numStop = 0 else  numStop = num1[Index1-1];
+    if (Index0 eq EnNum+1) then numStart = 95 else numStart = num0[Index0-1];
+    
+    Data =  numStart ne numStop ? total(LocVal[numStop:numStart,*],1) : reform(LocVal[numStart,*], N_Time);   
+    numMinMax = where(finite(Data), IndexMinMax)
+    MinVal = min(Data[numMinMax]) > 0.1;   
+    MaxVal = max(Data[numMinMax]);
+   
+     
+   if Graph[GraphN].Ly.range[0] eq Graph[GraphN].Ly.range[1] then begin
+                Graph[GraphN].Ly.range = Graph[GraphN].AxisF eq 'logaxis' ? [MinVal, MaxVal] : [0.0, MaxVal]
+                Graph[GraphN].Ly.style = 0
+    endif else Graph[GraphN].Ly.style = 1
+    
+    !y = Graph[GraphN].Ly;  
+   
+    if (execute(Graph[GraphN].AxisF) NE 1) then plot, newTime, Data, MAX_VALUE=MaxValue,  color = !dnc-1, /NODATA, /NOERASE 
+
+    plots, newTime[0]+deltaT, Data[0], /DATA
+ 
+    for i = 1, N_elements(newTime) - 1 do begin
+      if (newTime[i] LE Graph[GraphN].TotalTime) then begin
+          if (data[i] lt Graph[GraphN].Ly.range[0]) then data[i] = Graph[GraphN].Ly.range[0];
+          if (data[i] gt Graph[GraphN].Ly.range[1]) then data[i] = Graph[GraphN].Ly.range[1];  
+          if (newTime[i] - newTime[i-1] LE gapT) then $
+                    plots, newTime[i]+deltaT, data[i], color=col, /CONTINUE, /DATA $
+          else   plots, newTime[i]+deltaT, data[i], /DATA 
+        endif
+    endfor
+      
+return
+end
+;--------------------------------------------------------------------
diff --git a/amda_plus/amdalib/imaspecplot.pro b/amda_plus/amdalib/imaspecplot.pro
new file mode 100644
index 0000000..1f817b5
--- /dev/null
+++ b/amda_plus/amdalib/imaspecplot.pro
@@ -0,0 +1,172 @@
+;============================================================
+;
+;=============================================================
+
+pro imaspecplot, Mission, AzMin, AzMax, elevation
+
+   common GraphC, Graph, GraphN, Item
+   common Etab, FlagVex, EtabVex, FlagMex, EtabMex
+
+   ;------- Energy table -----------------
+    if (Mission eq 'vex') then begin
+        numTab = where(finite(*EtabVex[0].val) eq 0, indexTab);
+        if (indexTab GT 0) then (*EtabVex[0].val)[numTab] = -1;
+        Tab = fix(*EtabVex[0].val); 
+    endif else begin
+        numTab = where(finite(*EtabMex[0].val) eq 0, indexTab);
+        if (indexTab GT 0) then (*EtabMex[0].val)[numTab] = -1;
+        Tab = fix(*EtabMex[0].val);  
+    endelse
+ 
+    EnNum0 = 96
+    Energy = fltarr(EnNum0);
+    Energy1 = fltarr(EnNum0);
+
+    numTab = uniq(Tab,sort(Tab));
+    uniqTab = Tab[numTab];
+; set min/max energy
+    EnergyMin = 10000.0;
+    EnergyMax = 0.0;
+    for i = 0, N_elements(uniqTab) - 1 do begin 
+        if uniqTab[i] lt 0 then continue;
+        RetSize = call_external(!PROJLIB + 'imainfo.so','GetImaEner_idl', Energy1,  uniqTab[i]); 
+        Energy1 =  temporary(Energy1(where(Energy1 GT 0)));
+        if (min(Energy1) LT EnergyMin) then EnergyMin = min(Energy1);
+        if (max(Energy1) GT EnergyMax) then EnergyMax = max(Energy1);
+    endfor 
+     
+    RetSize = call_external(!PROJLIB + 'imainfo.so','GetImaEner_idl', Energy, Tab[0])
+  
+    Energy =  temporary(Energy(where(Energy GT 0)));
+    EnNum = N_elements(Energy)
+   
+  ;-------- Cat in the Energy range ------------
+   E0 = Graph[GraphN].Ly.range[0] eq Graph[GraphN].Ly.range[1] ?  min(Energy) : Graph[GraphN].Ly.range[0]
+   E1 = Graph[GraphN].Ly.range[0] eq Graph[GraphN].Ly.range[1] ?  max(Energy) : Graph[GraphN].Ly.range[1]
+
+   eindex = where((Energy GE E0) AND $
+                  (Energy LE E1) AND $
+                  (Energy GT 0.0),counte)
+
+   if counte GT 0 then begin
+      EBounds = fltarr(EnNum+1)
+      EBounds(min(eindex)) = Energy(min(eindex))
+      EBounds(max(eindex+1)) = Energy(max(eindex))
+      for ie = min(eindex+1), max(eindex) do EBounds[ie] = sqrt(Energy[ie-1]*Energy[ie])
+   endif else begin
+        nodata
+        return
+   endelse
+
+;--------------------- No DATA - just axes -----------------------
+   if (N_Elements(*Graph[GraphN].Time[0]) eq 0) then begin
+         nodata
+         return
+   endif
+
+    Time = (*Graph[GraphN].Time[0])
+
+    Val = (*Graph[GraphN].Val[0])
+    N_Time = N_elements(Time);
+ 
+   if (elevation) then begin
+      Val = temporary(reform(Val, 16, 96, 16, N_Time)) 
+      LocVal =  azMax GT azMin ? total(total(Val[azMin:azMax,*,0:15, *],1),2) : reform(total(Val[azMin,*,0:15,*],3), 96, N_time);
+      newTime = Time;       
+  endif else begin
+; elevation as TIME
+      newTime = dblarr(N_Time*16);
+      for i = 0, N_Time - 1 do for j = 0, 15 do newTime[i*16 + j] = Time[i] + j*12.D0
+      N_Time *= 16;
+      Val = temporary(reform(Val,16, 96, N_Time));
+      LocVal =  azMax GT azMin ? total(Val[azMin:azMax,*,*],1) : reform(Val[azMin,*,*], 96, N_time);  
+    endelse
+      
+   numMinMax = where(LocVal gt 0.5, IndexMinMax)   
+ 
+  if (Graph[GraphN].Ly.range[0] eq Graph[GraphN].Ly.range[1]) then  $
+                                      Graph[GraphN].Ly.range = [EnergyMin, EnergyMax]
+       
+   Graph[GraphN].Ly.style = 1
+
+  !y = Graph[GraphN].Ly
+
+   plot_io, graph[GraphN].Lx.range, graph[GraphN].Ly.range, /nodata, /noerase, ystyle = 1, $
+                              ytickformat='yticks', charsize=graph[GraphN].Lp.charsize*0.8, color = !dnc-1
+
+   Step = Graph[GraphN].Sampling[0] > Graph[GraphN].Step;  
+   if (not elevation) then Step /= 16.0;    
+
+ ;--------------------- No DATA - just axes -----------------------
+  if (IndexMinMax LE 0) then begin
+         nodatafortimeinterval
+         return
+  endif
+  if (Time[0] GT Graph[GraphN].TotalTime) then begin
+        nodatafortimeinterval
+         return
+  endif
+  
+  
+  MinVal = min(LocVal[numMinMax]) > 0.5
+  MaxVal = max(LocVal[numMinMax])   
+ 
+ ;-----------   NOW PLOT SPECTRA
+    alogMin = alog(MinVal)
+    KF = float(!DNC - 2) /(alog(MaxVal) - alogMin)
+    xx = fltarr(4) & yy = fltarr(4)
+ 
+     for i = 0, N_Time - 2 do begin
+
+	ii = elevation ? i : i/16 < (N_elements(Tab) - 2);
+ 
+	if (Tab[ii+1] ne Tab[ii] AND Tab[ii+1] GE 0) then begin
+              Energy = fltarr(EnNum0)  
+	      RetSize = call_external(!PROJLIB + 'imainfo.so','GetImaEner_idl', Energy, Tab[ii+1])
+	      Energy =  temporary(Energy(where(Energy GT 0)));
+	      EnNum = N_elements(Energy)
+	      
+	    ;-------- Cat in the Energy range ------------
+	    E0 = Graph[GraphN].Ly.range[0] eq Graph[GraphN].Ly.range[1] ? min(Energy) : Graph[GraphN].Ly.range[0]
+	    E1 = Graph[GraphN].Ly.range[0] eq Graph[GraphN].Ly.range[1] ? max(Energy) : Graph[GraphN].Ly.range[1]
+	    eindex = where((Energy GE E0) AND $
+			    (Energy LE E1) AND $
+			    (Energy GT 0.0),counte)
+	    if counte GT 0 then begin
+		EBounds = fltarr(EnNum+1)
+		EBounds(min(eindex)) = Energy(min(eindex))
+		EBounds(max(eindex+1)) = Energy(max(eindex))
+		for ie = min(eindex+1), max(eindex) do EBounds(ie) = sqrt(Energy(ie-1)*Energy(ie))
+	    endif else return
+	endif
+        xx[0] = newTime[i]  > 0.0
+        xx[1] = xx[0]
+        xx[2] = newTime[i+1] < newTime[i] + Step
+        xx[3] = xx[2]
+
+        if (xx[2] LE graph[GraphN].TotalTime AND xx[0] LT graph[GraphN].TotalTime) then begin
+           for k = min(eindex), max(eindex) do begin
+                  yy[0] = EBounds[k]
+                  yy[1] = EBounds[k+1]
+                  yy[2] = yy[1]
+                  yy[3] = yy[0]
+                  lcount = LocVal[k,i] < 1.e5
+                  if finite(lcount) then begin
+                   cl = lcount GT MinVal ? fix(KF*(alog(lcount) - alogMin)) : 1;
+                  endif else cl = 0;
+                  
+                  if (cl GT !DNC - 2) then  cl = !DNC - 2
+                  PolyFill, xx ,yy, color = cl, /data 
+            endfor
+        endif
+     endfor
+
+;-------------------- Legend ----------------------------------------
+      spec_legend, MinVal, MaxVal
+;------------------ MIN-MAX------------------------------------------------
+      Graph[GraphN].Min  = MinVal
+      Graph[GraphN].Max  = MaxVal
+
+return
+end
+;--------------------------------------------------------------------
diff --git a/amda_plus/amdalib/legend_multi.pro b/amda_plus/amdalib/legend_multi.pro
new file mode 100644
index 0000000..0832322
--- /dev/null
+++ b/amda_plus/amdalib/legend_multi.pro
@@ -0,0 +1,11 @@
+pro legend_multi, Names, Colors
+common GraphC, Graph, GraphN, Item
+
+    xy = Graph[GraphN].lp.region
+    y0 = xy[1] + (xy[3] - xy[1])/2. + 0.02*(N_elements(Names)-1)/2
+ 
+   for i = 0, N_elements(Names)-1 do $
+      xyouts, xy[2]+0.02, y0-0.03*i ,Names[i], /NORMAL, charsize=graph[GraphN].Lp.charsize*0.8, color=Colors[i]    
+ 
+return
+end
\ No newline at end of file
diff --git a/amda_plus/amdalib/lep_g_0_init.pro b/amda_plus/amdalib/lep_g_0_init.pro
new file mode 100644
index 0000000..4464ab7
--- /dev/null
+++ b/amda_plus/amdalib/lep_g_0_init.pro
@@ -0,0 +1,24 @@
+;-----------------GTLN_INIT--------------------------
+; 
+pro lep_g_0_INIT, LIN = LIN, LOG = LOG,  RED = RED, BLUE = BLUE, GREEN = GREEN
+
+common GraphC, graph, GraphN, Item
+ 
+ pen = 0
+
+ if KEYWORD_SET(RED) then pen = 3
+ if KEYWORD_SET(BLUE) then pen = 1  
+ if KEYWORD_SET(GREEN) then pen = 2   
+ 
+graph[GraphN].Type = 'HIAM_T' 
+graph[GraphN].DataN = 1
+graph[GraphN].SetCommonF[0] = 'gtlcom' 
+graph[GraphN].GetDataF[0] ='getgtl' 
+graph[GraphN].DeltaT = (Graph[GraphN].TotalTime+30.0D0) <  18000.0D0
+graph[GraphN].Ly.title = 'GTL !C N, cm!U-3'
+graph[GraphN].AxisF =  KEYWORD_SET(LIN) ?  'lineaxis,0' : 'logaxis'
+graph[GraphN].PlotF = 'plotscal, 3,'+ string(pen)
+graph[GraphN].LastPlotF = 'nodatalast'
+return
+end
+;------------------------------------------------------------
diff --git a/amda_plus/amdalib/lep_g_1_3_init.pro b/amda_plus/amdalib/lep_g_1_3_init.pro
new file mode 100644
index 0000000..8bf2ca7
--- /dev/null
+++ b/amda_plus/amdalib/lep_g_1_3_init.pro
@@ -0,0 +1,42 @@
+;-----------------GTLV_INIT--------------------------
+; ---------------------------------------------------------
+pro lep_g_1_3_INIT, X = X, Y = Y, Z = Z, TOT = TOT, GSE = GSE, GSM = GSM, SM = SM, RED = RED, GREEN = GREEN, BLUE = BLUE
+
+common GraphC, graph, GraphN, Item
+  
+   names = ['V!DX', 'V!DY', 'V!DZ', 'V']
+   comp = 4 & pen = 0
+   
+   if KEYWORD_SET(X) then comp = 0
+   if KEYWORD_SET(Y) then comp = 1  
+   if KEYWORD_SET(Z) then comp = 2  
+   if KEYWORD_SET(TOT) then comp = 3
+    if KEYWORD_SET(BLUE) then pen = 1
+    if KEYWORD_SET(GREEN) then pen = 2
+    if KEYWORD_SET(RED) then pen = 3
+
+frame = 'GSE'
+ 
+if KEYWORD_SET(GSM) then begin
+  frame = 'GSM'
+  graph[GraphN].ProcessF='gse2gsm'
+endif
+if KEYWORD_SET(SM) then begin
+  frame = 'SM'
+  graph[GraphN].ProcessF='gse2sm'
+endif 
+
+graph[GraphN].names = PTR_NEW(/ALLOCATE_HEAP) 
+graph[GraphN].Type = 'HIAM_T'
+graph[GraphN].DataN = 1
+graph[GraphN].SetCommonF[0] = 'gtlcom' 
+graph[GraphN].GetDataF[0] ='getgtl'
+graph[GraphN].DeltaT =  (Graph[GraphN].TotalTime+30.0D0) <  18000.0D0
+graph[GraphN].Ly.title =  'GTL !CV '+frame+', km/s'
+graph[GraphN].AxisF = 'lineaxis,' + string(Graph[GraphN].TotalTime)
+*(graph[GraphN].names) = (comp le 3) ? names : names[0:2]
+graph[GraphN].PlotF = (comp le 3) ? 'plotvec_comp_, '+string(comp)+',' +string(pen) : 'plotvec_'
+graph[GraphN].LastPlotF = 'nodatalast'
+return
+end
+;------------------------------------------------------------
diff --git a/amda_plus/amdalib/lep_g_1_init.pro b/amda_plus/amdalib/lep_g_1_init.pro
new file mode 100644
index 0000000..c090912
--- /dev/null
+++ b/amda_plus/amdalib/lep_g_1_init.pro
@@ -0,0 +1,17 @@
+;----------------ENVELOPE-------------------------
+; 
+pro lep_g_1_init, GSE = GSE, GSM = GSM, SM = SM, RED = RED, GREEN = GREEN, BLUE = BLUE
+
+  cmd = 'lep_g_1_3_init, /X'
+  if KEYWORD_SET(GSM) then cmd += ',/GSM'
+  if KEYWORD_SET(SM) then cmd += ',/SM'
+
+  if KEYWORD_SET(BLUE) then cmd += ',/BLUE'
+  if KEYWORD_SET(RED) then cmd += ',/RED'
+  if KEYWORD_SET(GREEN) then cmd += ',/GREEN'
+
+  R = execute(cmd)
+
+return
+end
+;------------------------------------------------------------
\ No newline at end of file
diff --git a/amda_plus/amdalib/lep_g_2_init.pro b/amda_plus/amdalib/lep_g_2_init.pro
new file mode 100644
index 0000000..ff27fed
--- /dev/null
+++ b/amda_plus/amdalib/lep_g_2_init.pro
@@ -0,0 +1,17 @@
+;----------------ENVELOPE-------------------------
+; 
+pro lep_g_2_init, GSE = GSE, GSM = GSM, SM = SM, RED = RED, GREEN = GREEN, BLUE = BLUE
+
+  cmd = 'lep_g_1_3_init, /Y'
+  if KEYWORD_SET(GSM) then cmd += ',/GSM'
+  if KEYWORD_SET(SM) then cmd += ',/SM'
+
+  if KEYWORD_SET(BLUE) then cmd += ',/BLUE'
+  if KEYWORD_SET(RED) then cmd += ',/RED'
+  if KEYWORD_SET(GREEN) then cmd += ',/GREEN'
+
+  R = execute(cmd)
+
+return
+end
+;------------------------------------------------------------
\ No newline at end of file
diff --git a/amda_plus/amdalib/lep_g_3_init.pro b/amda_plus/amdalib/lep_g_3_init.pro
new file mode 100644
index 0000000..8940a90
--- /dev/null
+++ b/amda_plus/amdalib/lep_g_3_init.pro
@@ -0,0 +1,17 @@
+;----------------ENVELOPE-------------------------
+; 
+pro lep_g_3_init, GSE = GSE, GSM = GSM, SM = SM, RED = RED, GREEN = GREEN, BLUE = BLUE
+
+  cmd = 'lep_g_1_3_init, /Z'
+  if KEYWORD_SET(GSM) then cmd += ',/GSM'
+  if KEYWORD_SET(SM) then cmd += ',/SM'
+
+  if KEYWORD_SET(BLUE) then cmd += ',/BLUE'
+  if KEYWORD_SET(RED) then cmd += ',/RED'
+  if KEYWORD_SET(GREEN) then cmd += ',/GREEN'
+
+  R = execute(cmd)
+
+return
+end
+;------------------------------------------------------------
\ No newline at end of file
diff --git a/amda_plus/amdalib/lep_g_4_init.pro b/amda_plus/amdalib/lep_g_4_init.pro
new file mode 100644
index 0000000..d5b6493
--- /dev/null
+++ b/amda_plus/amdalib/lep_g_4_init.pro
@@ -0,0 +1,15 @@
+;----------------ENVELOPE-------------------------
+; 
+pro lep_g_4_init, GSE = GSE, GSM = GSM, SM = SM, RED = RED, GREEN = GREEN, BLUE = BLUE
+
+  cmd = 'lep_g_1_3_init, /TOT'
+  
+  if KEYWORD_SET(BLUE) then cmd += ',/BLUE'
+  if KEYWORD_SET(RED) then cmd += ',/RED'
+  if KEYWORD_SET(GREEN) then cmd += ',/GREEN'
+
+  R = execute(cmd)
+
+return
+end
+;------------------------------------------------------------
\ No newline at end of file
diff --git a/amda_plus/amdalib/lep_g_5_6_init.pro b/amda_plus/amdalib/lep_g_5_6_init.pro
new file mode 100644
index 0000000..bde72db
--- /dev/null
+++ b/amda_plus/amdalib/lep_g_5_6_init.pro
@@ -0,0 +1,29 @@
+;-----------------GTLT_INIT--------------------------
+;         14 Apr, 2004 V2.5
+;-------------------------------------------------------
+pro lep_g_5_6_INIT, PAR=PAR, PERP=PERP, RED = RED, GREEN = GREEN, BLUE = BLUE, LIN = LIN, LOG = LOG
+
+common GraphC, graph, GraphN, Item
+names = ['T!DYY', 'T!DZZ']
+comp = 2 & pen = 0
+ 
+ if KEYWORD_SET(BLUE) then pen = 1
+ if KEYWORD_SET(GREEN) then pen = 2
+ if KEYWORD_SET(RED) then pen = 3
+ if KEYWORD_SET(PAR) then comp = 0
+ if KEYWORD_SET(PERP) then comp = 1
+
+graph[GraphN].names = PTR_NEW(/ALLOCATE_HEAP) 
+graph[GraphN].Type = 'HIAM_T' 
+graph[GraphN].DataN = 1
+graph[GraphN].SetCommonF[0] = 'gtlcom' 
+graph[GraphN].GetDataF[0] = 'getgtl'
+graph[GraphN].DeltaT =  (Graph[GraphN].TotalTime+30.0D0)  <  18000.0D0
+graph[GraphN].Ly.title = 'GTL !C T, eV'
+graph[GraphN].AxisF = 'logaxis'
+*(graph[GraphN].names) = names 
+graph[GraphN].PlotF = (comp le 1) ? 'plotten_comp, 4, 2,'+string(comp)+',' +string(pen) : 'plotten, 4, 2'
+graph(GraphN).LastPlotF = 'nodatalast'
+return
+end
+;------------------------------------------------------------
diff --git a/amda_plus/amdalib/lep_g_5_init.pro b/amda_plus/amdalib/lep_g_5_init.pro
new file mode 100644
index 0000000..f67e436
--- /dev/null
+++ b/amda_plus/amdalib/lep_g_5_init.pro
@@ -0,0 +1,15 @@
+;----------------ENVELOPE-------------------------
+; 
+pro lep_g_5_init,  RED = RED, GREEN = GREEN, BLUE = BLUE, LIN = LIN, LOG = LOG
+
+  cmd = 'lep_g_5_6_init, /PAR'
+ 
+  if KEYWORD_SET(BLUE) then cmd += ',/BLUE'
+  if KEYWORD_SET(RED) then cmd += ',/RED'
+  if KEYWORD_SET(GREEN) then cmd += ',/GREEN'
+
+  R = execute(cmd)
+
+return
+end
+;------------------------------------------------------------
\ No newline at end of file
diff --git a/amda_plus/amdalib/lep_g_6_init.pro b/amda_plus/amdalib/lep_g_6_init.pro
new file mode 100644
index 0000000..bd7694e
--- /dev/null
+++ b/amda_plus/amdalib/lep_g_6_init.pro
@@ -0,0 +1,15 @@
+;----------------ENVELOPE-------------------------
+; 
+pro lep_g_6_init,  RED = RED, GREEN = GREEN, BLUE = BLUE, LIN = LIN, LOG = LOG
+
+  cmd = 'lep_g_5_6_init, /PERP'
+ 
+  if KEYWORD_SET(BLUE) then cmd += ',/BLUE'
+  if KEYWORD_SET(RED) then cmd += ',/RED'
+  if KEYWORD_SET(GREEN) then cmd += ',/GREEN'
+
+  R = execute(cmd)
+
+return
+end
+;------------------------------------------------------------
\ No newline at end of file
diff --git a/amda_plus/amdalib/median_.pro b/amda_plus/amdalib/median_.pro
new file mode 100644
index 0000000..65a56a0
--- /dev/null
+++ b/amda_plus/amdalib/median_.pro
@@ -0,0 +1,18 @@
+function median_, Data, T_AVER
+
+common  InternalCommon, FinalTime, num
+
+     Npoints = N_elements(FinalTime);
+     Nreal = n_elements(num);
+     Timy = FinalTime(num);
+ 
+     FillValue = !Values.F_NAN
+     outPut = replicate(FillValue, Nreal); outPut = fltarr(Nreal);
+ 
+     for  tt = FinalTime[0], FinalTime[Npoints-1]+T_AVER, T_AVER do begin
+         nummi = where(abs(tt - Timy) LE T_AVER/2.0, Index)  
+         if (Index GT 0) then OutPut[nummi] = median(Data[nummi])
+      endfor
+
+return, OutPut
+end
\ No newline at end of file
diff --git a/amda_plus/amdalib/mercorbaxis.pro b/amda_plus/amdalib/mercorbaxis.pro
new file mode 100644
index 0000000..bb5bf1e
--- /dev/null
+++ b/amda_plus/amdalib/mercorbaxis.pro
@@ -0,0 +1,110 @@
+;==================================================
+;                 DD MERCURY
+;              ORBITAL OBJECTS
+;              mercorbaxis.pro
+;                    
+;---------------------------------------------------
+; Implementation of all types of axis for orbital plot
+; Options:
+;   Key                  ToPlot
+; /CYL - cylindrical XR   0
+; /XY                     1
+; /XZ                     2
+; /YZ                     3
+;====================================================
+
+pro mercorbaxis, ToPlot
+common GraphC, graph, GraphN
+
+;------------ Set graphics Colors ------------------------
+ if (Graph[GraphN].Lx.range[0] eq Graph[GraphN].Lx.range[1]) then begin
+       Graph[GraphN].Lx.range[0] = -5;
+       Graph[GraphN].Lx.range[1] = 5; 
+ endif
+ if (Graph[GraphN].Ly.range[0] eq Graph[GraphN].Ly.range[1]) then begin
+       Graph[GraphN].Ly.range[0] = ToPlot eq 0 ? 0: -5;
+       Graph[GraphN].Ly.range[1] = 5;
+ endif
+ 
+ !x = Graph[GraphN].Lx
+ !y = Graph[GraphN].Ly
+
+  x = !x.range
+  y = !y.range
+  black = !DNC- 1
+  zero = fix(!DNC * 20.0/ 256.0 )
+  planet = fix(!DNC * 10.0/ 256.0)
+  bound =  fix(!DNC * 1.0/ 256.0)
+;------------------------------------------------------------
+
+  ThickPlanet = 2 
+  ThickBound =  2
+
+;------- main axis -----------------
+  case ToPlot of
+  0: begin
+      !x.title = 'X, R!DM'
+      !y.title = 'R, R!DM'
+     end
+  1: begin
+      !x.title = 'X, R!DM'
+      !y.title = 'Y, R!DM'
+     end
+  2: begin
+      !x.title = 'X, R!DM'
+      !y.title = 'Z, R!DM'
+     end
+  3: begin
+      !x.title = 'Y, R!DM'
+      !y.title = 'Z, R!DM'
+     end
+  endcase
+  
+  ;------ Plot main axis. Use common Graph system variables
+  plot,x,y,/nodata,/noerase,xstyle=1,ystyle=1,color=black,xminor=1, yminor=1, charsize=graph[GraphN].Lp.charsize
+     
+  ;------- plot Zero lines --------------------- 
+  oplot,x,[0,0],color=zero, thick = 1
+  oplot,[0,0],y,color=zero, thick = 1
+  
+  ;------- plot Mars ---------------------
+  dal = 2.0 * !PI / 60.
+  if ToPlot EQ 0 then $ 
+       al = dal * findgen(31) $
+  else al = dal * findgen(61) 
+    
+  xx = cos(al)
+  yy = sin(al)
+  oplot,xx,yy,color=black, thick = ThickPlanet
+    
+  if ToPlot EQ 0 then begin
+     ;---- Plot boundaries for cylindrical plot
+     ;----------------------- Bow Shock -----------------------------
+   theta = (135.*!pi/180.)*findgen(100)/100.
+
+   rr = 2.96/(1.0+1.02*cos(theta))
+   xx = fltarr(100)
+   yy = fltarr(100)
+
+   for i = 0, 99 do begin
+     xx(i) =  0.5 + rr(i)*cos(theta(i))
+     yy(i) =  rr(i)*sin(theta(i))
+   endfor
+
+   oplot,xx,yy,color=bound,  thick = ThickBound
+   oplot,xx,-yy,color=bound, thick = ThickBound
+
+    ;----------------------- MP Shue-----------------------------
+    alpha = 0.5;
+    r0 = 1.45;
+
+    rr=r0*(2./(1.+COS(theta)))^alpha
+    
+     xx = rr*cos(theta)
+     yy = rr*sin(theta)  
+       
+     oplot,xx,rr,color=bound,  thick = ThickBound
+     oplot,xx,-rr,color=bound, thick = ThickBound
+  endif
+return
+end
diff --git a/amda_plus/amdalib/mex_els_spec_init.pro b/amda_plus/amdalib/mex_els_spec_init.pro
new file mode 100644
index 0000000..f74def0
--- /dev/null
+++ b/amda_plus/amdalib/mex_els_spec_init.pro
@@ -0,0 +1,61 @@
+;==========================================================
+;                DD DDMARS/DDVEX
+;                elspec_init.pro
+;-----------------------------------------------------------
+
+pro mex_els_spec_init, ANODE = Anode, Stop_Anode = Stop_Anode, $
+                      LOG = log, LIN = lin, PSYM = psym, COLOR = color, AY1TITLE = AY1Title, $
+                     ; spectra
+                     MINCOUNT = minCount, MAXCOUNT = maxCount, BACKGRDCHAN = backgrdChan, BACKGRDVAL = backgrdVal, $
+                     CHANNEL = channel, Energy = energy, ENERGYMIN = energymin, ENERGYMAX =  energymax, $
+                     
+                     DELAY = delay, $                      
+                     ; all additional keywords
+                    _EXTRA = e 
+
+common Request, List, StartTime, TimeInt
+common GraphC, graph, GraphN, Item
+
+AnMin = 0
+AnMax = 15
+ 
+EnMin = 1.0;
+EnMax = 2800.0;
+
+if (KEYWORD_SET(ANODE)) then begin
+   AnMin = Anode
+   if (KEYWORD_SET(Stop_Anode)) then AnMax = Stop_Anode $
+   else AnMax = -1;
+endif
+      
+graph[GraphN].Type = 'ELS_T'
+graph[GraphN].DataN = 1
+graph[GraphN].SetCommonF[0] = 'elscom, "mex"'
+graph[GraphN].GetDataF[0] = 'getels, "mex"'
+graph[GraphN].DeltaT = (Graph[GraphN].TotalTime + 60.0D0) < 36100.0D0
+energyTitle = '';
+ 
+if (KEYWORD_SET(energymin)) then begin
+   EnMin = energymin;
+   EnMax =  energymax;  
+   energyTitle = energymin eq energymax ? '!C E ' + string(energymin) + 'eV' : '!C E ' + string(energymin) + '-'+  string(energymax) + 'eV'; 
+      
+      options = '"mex", ' + string(AnMin) +','+string(AnMax) +','  +string(EnMin) +','+string(EnMax);
+      angleTitle =  AnMax GT AnMin ? 'MEX ELS An'+ string(AnMin,format='(i2.2)') +'-'+ string(AnMax,format='(i2.2)') : 'MEX ELS An'+ string(AnMin,format='(i2.2)');
+ 
+      graph[GraphN].AxisF =  KEYWORD_SET(lin) ?  'lineaxis, 0' : 'logaxis';
+      graph[GraphN].Ly.title =  'MEX ELS Cnts ' +  angleTitle + energyTitle					    
+      graph[GraphN].PlotF = 'elscntplot,' + options
+endif else begin 
+      options = '"mex", ' + string(AnMin) +','+string(AnMax);
+
+      graph[GraphN].names = PTR_NEW(/ALLOCATE_HEAP)
+      *(graph[GraphN].names) = 'log Counts'
+ 
+      graph[GraphN].Ly.title = AnMax GT AnMin ? 'MEX ELS An'+ string(AnMin,format='(i2.2)') +'-'+ string(AnMax,format='(i2.2)') +'!C E, eV' : 'MEX ELS An'+ string(AnMin,format='(i2.2)') + '!C E, eV'
+      graph[GraphN].PlotF = 'elsspecplot,' + options
+ 
+endelse
+return
+end
+;------------------------------------------------------------
diff --git a/amda_plus/amdalib/mex_h_dens_.pro b/amda_plus/amdalib/mex_h_dens_.pro
new file mode 100644
index 0000000..2ebd2d9
--- /dev/null
+++ b/amda_plus/amdalib/mex_h_dens_.pro
@@ -0,0 +1,54 @@
+function MEX_H_DENS_, StartTime, TimeInt, Time, RetSize, Sampling, close=close
+common GraphC, graph, GraphN
+common MEXHDENS_COM, ID
+
+   FillValue = !Values.F_NAN 
+   if n_elements(ID) EQ 0 then ID = -1L
+   sampling = 192.0
+   Size = long(graph[GraphN].DeltaT/sampling)
+     
+   Bdata = fltarr(Size)
+   Time = dblarr(Size)
+   Quality = fltarr(Size)
+   Time_Q = dblarr(Size)
+   
+   Mission ="mex";
+ 
+    VI = Mission + ':ima:param'
+    ParamName = "Density_P";
+ 
+    RetSize = call_external(!PROJLIB + 'libParam.so', 'getLocalData', $
+                          ID, VI, ParamName, StartTime, TimeInt, Size, Time, Bdata)
+   
+    ParamName = "Quality_P";
+
+    RetSize = call_external(!PROJLIB + 'libParam.so', 'getLocalData', $
+                          ID, VI, ParamName, StartTime, TimeInt, Size, Time_Q, Quality)
+                          
+   if KEYWORD_SET(CLOSE) then begin
+      error = call_external(!DDLIB+'DD_idl.so','CloseID',ID)
+      ID = -1L
+   endif                        
+  
+   if (RetSize LE 0) then begin
+      Time = 0.D0
+      return, 0.0
+   endif
+   
+   Time=Time[0:Retsize-1]
+   Bdata=Bdata[0:Retsize-1]
+   Quality = Quality[0:Retsize-1]
+ ;  num_gap = where(Quality GE 0.7, Cntr)
+  
+ ;  if Cntr le 0 then begin
+ ;      Retsize = -999
+ ;      Time = 0.D0
+  ;     return, 0.0
+  ; endif
+   
+ ;   Time=Time[num_gap]
+  ;  Bdata=Bdata[num_gap];
+  ;  Retsize=Cntr
+
+return, Bdata
+end
\ No newline at end of file
diff --git a/amda_plus/amdalib/mex_h_dens_init.pro b/amda_plus/amdalib/mex_h_dens_init.pro
new file mode 100644
index 0000000..93c834a
--- /dev/null
+++ b/amda_plus/amdalib/mex_h_dens_init.pro
@@ -0,0 +1,24 @@
+;--------------------------------------
+;
+;---------------------------------------
+
+pro mex_h_dens_INIT,  LIN = LIN, LOG = LOG, COLOR = color, PSYM = psym 
+
+common GraphC, graph, GraphN, Item
+
+names = ['Poor', 'Satisfactory', 'Good', 'Excellent']
+
+Graph[GraphN].names = PTR_NEW(/ALLOCATE_HEAP)
+*(graph[GraphN].names) =  names;
+graph[GraphN].Type = 'FGM_T' 
+graph[GraphN].DataN = 1
+graph[GraphN].SetCommonF[0] = 'vexmex_dens_com, "mex", "h"' 
+
+graph[GraphN].GetDataF[0] ='get_vexmex_dens, "mex", "h"' 
+
+graph[GraphN].DeltaT = (Graph[GraphN].TotalTime + 60.0D0) <  36100.0D0
+graph[GraphN].Ly.title = 'MEX ima-H N, cm!U-3'
+graph[GraphN].AxisF =  KEYWORD_SET(LIN) ?  'lineaxis, 0' : 'logaxis'
+graph[GraphN].PlotF = 'PlotImaDens'
+return
+end
diff --git a/amda_plus/amdalib/mex_h_dens_restr_.pro b/amda_plus/amdalib/mex_h_dens_restr_.pro
new file mode 100644
index 0000000..9df2db5
--- /dev/null
+++ b/amda_plus/amdalib/mex_h_dens_restr_.pro
@@ -0,0 +1,52 @@
+function MEX_H_DENS_RESTR_, StartTime, TimeInt, Time, RetSize, Sampling, close=close
+common GraphC, graph, GraphN
+common MEXHDENS_COM, ID
+
+   FillValue = !Values.F_NAN 
+   if n_elements(ID) EQ 0 then ID = -1L
+   sampling = 192.0
+   Size = long(graph[GraphN].DeltaT/sampling)
+     
+   Bdata = fltarr(Size)
+   Time = dblarr(Size)
+   Quality = fltarr(Size)
+   Time_Q = dblarr(Size)
+    
+    VI = 'mex:imaparam:restricted'
+    ParamName = "Density_P";
+ 
+    RetSize = call_external(!PROJLIB + 'libParam.so', 'getLocalData', $
+                          ID, VI, ParamName, StartTime, TimeInt, Size, Time, Bdata)
+   
+    ParamName = "Quality_P";
+
+    RetSize = call_external(!PROJLIB + 'libParam.so', 'getLocalData', $
+                          ID, VI, ParamName, StartTime, TimeInt, Size, Time_Q, Quality)
+                          
+   if KEYWORD_SET(CLOSE) then begin
+      error = call_external(!DDLIB+'DD_idl.so','CloseID',ID)
+      ID = -1L
+   endif                        
+  
+   if (RetSize LE 0) then begin
+      Time = 0.D0
+      return, 0.0
+   endif
+   
+   Time=Time[0:Retsize-1]
+   Bdata=Bdata[0:Retsize-1]
+   Quality = Quality[0:Retsize-1]
+ ;  num_gap = where(Quality GE 0.7, Cntr)
+  
+ ;  if Cntr le 0 then begin
+ ;      Retsize = -999
+ ;      Time = 0.D0
+  ;     return, 0.0
+  ; endif
+   
+ ;   Time=Time[num_gap]
+  ;  Bdata=Bdata[num_gap];
+  ;  Retsize=Cntr
+
+return, Bdata
+end
\ No newline at end of file
diff --git a/amda_plus/amdalib/mex_h_dens_restr_init.pro b/amda_plus/amdalib/mex_h_dens_restr_init.pro
new file mode 100644
index 0000000..1d6f97c
--- /dev/null
+++ b/amda_plus/amdalib/mex_h_dens_restr_init.pro
@@ -0,0 +1,24 @@
+;--------------------------------------
+;
+;---------------------------------------
+
+pro mex_h_dens_restr_INIT,  LIN = LIN, LOG = LOG, COLOR = color, PSYM = psym 
+
+common GraphC, graph, GraphN, Item
+
+names = ['Poor', 'Satisfactory', 'Good', 'Excellent']
+
+Graph[GraphN].names = PTR_NEW(/ALLOCATE_HEAP)
+*(graph[GraphN].names) =  names;
+graph[GraphN].Type = 'FGM_T' 
+graph[GraphN].DataN = 1
+graph[GraphN].SetCommonF[0] = 'vexmex_dens_com, "mex", "h"' 
+
+graph[GraphN].GetDataF[0] = 'get_vexmex_dens, "mex", "h", /RESTRICTED' 
+
+graph[GraphN].DeltaT = (Graph[GraphN].TotalTime + 60.0D0) <  36100.0D0
+graph[GraphN].Ly.title = 'MEX ima-H N, cm!U-3'
+graph[GraphN].AxisF =  KEYWORD_SET(LIN) ?  'lineaxis, 0' : 'logaxis'
+graph[GraphN].PlotF = 'PlotImaDens'
+return
+end
diff --git a/amda_plus/amdalib/mex_h_qual_.pro b/amda_plus/amdalib/mex_h_qual_.pro
new file mode 100644
index 0000000..79ef760
--- /dev/null
+++ b/amda_plus/amdalib/mex_h_qual_.pro
@@ -0,0 +1,49 @@
+function MEX_H_QUAL_, StartTime, TimeInt, Time, RetSize, Sampling, close=close
+common GraphC, graph, GraphN
+common MEXHQUAL_COM, ID
+
+   FillValue = !Values.F_NAN 
+   if n_elements(ID) EQ 0 then ID = -1L
+   sampling = 192.0
+   Size = long(graph[GraphN].DeltaT/sampling)
+     
+   Bdata=fltarr(Size)
+   Time=dblarr(Size)
+   
+   Mission ="mex";
+ 
+    VI = Mission + ':ima:param'
+    ParamName = "Quality_P";
+ 
+    RetSize = call_external(!PROJLIB + 'libParam.so', 'getLocalData', $
+                          ID, VI, ParamName, StartTime, TimeInt, Size, Time, Bdata)
+                          
+   if KEYWORD_SET(CLOSE) then begin
+      error = call_external(!DDLIB+'DD_idl.so','CloseID',ID)
+      ID = -1L
+   endif                       
+  
+   if (RetSize LE 0) then begin
+      Time = 0.D0
+      return, 0.0
+   endif
+   
+   Time=Time[0:Retsize-1]
+   Bdata=Bdata[0:Retsize-1]
+   
+   num_gap = where(finite(Bdata), Cntr)
+  
+   if Cntr le 0 then begin
+       Retsize = -999
+       Time = 0.D0
+       return, 0.0
+   endif
+   
+    Time=Time[num_gap]
+    Bdata=Bdata[num_gap];
+    Retsize=Cntr
+
+   
+   
+return, Bdata
+end
\ No newline at end of file
diff --git a/amda_plus/amdalib/mex_h_qual_init.pro b/amda_plus/amdalib/mex_h_qual_init.pro
new file mode 100644
index 0000000..50d3832
--- /dev/null
+++ b/amda_plus/amdalib/mex_h_qual_init.pro
@@ -0,0 +1,26 @@
+;--------------------------------------
+;
+;---------------------------------------
+
+pro mex_h_qual_INIT, $
+                     LOG = log, LIN = lin, PSYM = psym, COLOR = color, AY1TITLE = AY1Title, $                   
+                     ; vector
+                     X = x, Y = y, Z = z, TOTAL = total, FRAME = frame, $
+                     DELAY = delay, $
+                     
+                     ; all additional keywords
+                    _EXTRA = e   
+
+common GraphC, graph, GraphN, Item
+
+
+graph[GraphN].Type = 'FGM_T' 
+graph[GraphN].DataN = 1
+graph[GraphN].SetCommonF[0] = 'vexmex_qual_com, "mex", "h"' 
+graph[GraphN].GetDataF[0] ='get_vexmex_qual, "mex", "h"'
+graph[GraphN].DeltaT = (Graph[GraphN].TotalTime + 60.0D0) <  18000.0D0 
+graph[GraphN].Ly.title = 'MEX ima-H Quality'
+graph[GraphN].AxisF = 'lineaxis, 0'
+graph[GraphN].PlotF = 'PlotImaQual'
+return
+end
diff --git a/amda_plus/amdalib/mex_h_qual_restr_.pro b/amda_plus/amdalib/mex_h_qual_restr_.pro
new file mode 100644
index 0000000..d2c4af4
--- /dev/null
+++ b/amda_plus/amdalib/mex_h_qual_restr_.pro
@@ -0,0 +1,47 @@
+function MEX_H_QUAL_RESTR_, StartTime, TimeInt, Time, RetSize, Sampling, close=close
+common GraphC, graph, GraphN
+common MEXHQUAL_COM, ID
+
+   FillValue = !Values.F_NAN 
+   if n_elements(ID) EQ 0 then ID = -1L
+   sampling = 192.0
+   Size = long(graph[GraphN].DeltaT/sampling)
+     
+   Bdata=fltarr(Size)
+   Time=dblarr(Size)
+   
+    VI = 'mex:imaparam:restricted'
+    ParamName = "Quality_P";
+ 
+    RetSize = call_external(!PROJLIB + 'libParam.so', 'getLocalData', $
+                          ID, VI, ParamName, StartTime, TimeInt, Size, Time, Bdata)
+                          
+   if KEYWORD_SET(CLOSE) then begin
+      error = call_external(!DDLIB+'DD_idl.so','CloseID',ID)
+      ID = -1L
+   endif                       
+  
+   if (RetSize LE 0) then begin
+      Time = 0.D0
+      return, 0.0
+   endif
+   
+   Time=Time[0:Retsize-1]
+   Bdata=Bdata[0:Retsize-1]
+   
+   num_gap = where(finite(Bdata), Cntr)
+  
+   if Cntr le 0 then begin
+       Retsize = -999
+       Time = 0.D0
+       return, 0.0
+   endif
+   
+    Time=Time[num_gap]
+    Bdata=Bdata[num_gap];
+    Retsize=Cntr
+
+   
+   
+return, Bdata
+end
\ No newline at end of file
diff --git a/amda_plus/amdalib/mex_h_qual_restr_init.pro b/amda_plus/amdalib/mex_h_qual_restr_init.pro
new file mode 100644
index 0000000..b9a42a1
--- /dev/null
+++ b/amda_plus/amdalib/mex_h_qual_restr_init.pro
@@ -0,0 +1,26 @@
+;--------------------------------------
+;
+;---------------------------------------
+
+pro mex_h_qual_restr_INIT, $
+                     LOG = log, LIN = lin, PSYM = psym, COLOR = color, AY1TITLE = AY1Title, $                   
+                     ; vector
+                     X = x, Y = y, Z = z, TOTAL = total, FRAME = frame, $
+                     DELAY = delay, $
+                     
+                     ; all additional keywords
+                    _EXTRA = e   
+
+common GraphC, graph, GraphN, Item
+
+
+graph[GraphN].Type = 'FGM_T' 
+graph[GraphN].DataN = 1
+graph[GraphN].SetCommonF[0] = 'vexmex_qual_com, "mex", "h"' 
+graph[GraphN].GetDataF[0] ='get_vexmex_qual, "mex", "h", /RESTRICTED'
+graph[GraphN].DeltaT = (Graph[GraphN].TotalTime + 60.0D0) <  18000.0D0 
+graph[GraphN].Ly.title = 'MEX ima-H Quality'
+graph[GraphN].AxisF = 'lineaxis, 0'
+graph[GraphN].PlotF = 'PlotImaQual'
+return
+end
diff --git a/amda_plus/amdalib/mex_h_spec_.pro b/amda_plus/amdalib/mex_h_spec_.pro
new file mode 100644
index 0000000..315259b
--- /dev/null
+++ b/amda_plus/amdalib/mex_h_spec_.pro
@@ -0,0 +1,63 @@
+function mex_h_spec_, StartTime, TimeInt, Time, RetSize, Sampling, close=close
+common GraphC, graph, GraphN
+common MEX_H_COM, ID, Energy
+
+FORWARD_FUNCTION gfl
+
+   FillValue =  !Values.F_NAN
+   
+   if n_elements(ID) EQ 0 then  begin
+     ID = -1L
+     err = call_external(!PROJLIB + 'libplanetcom.so','SetMission_idl', 'mex');
+     
+     EnNum = 96
+     Energy = fltarr(EnNum)
+     err = call_external(!PROJLIB + 'imainfo.so','GetImaEner_idl', Energy, 0)
+     Energy =  temporary(Energy(where(Energy GT 0)));
+   endif
+   
+   sampling = 192.0;
+  
+   Size = long(graph[GraphN].DeltaT/sampling)
+
+   Time=dblarr(Size)
+   SpectraTot = fltarr(16, 96, 16, 2, Size)
+   Product = 'HPSPEC';
+   PaccArr = intarr(Size);
+   EnergyTab = intarr(Size);
+
+    RetSize = call_external(!PROJLIB + 'libImaExtra.so','GetImaExtra_idl',$
+                                ID, StartTime, TimeInt,$
+                                Product, Size, $
+                                Time, PaccArr, EnergyTab, SpectraTot)
+                                
+  
+   if KEYWORD_SET(CLOSE) then begin
+      error = call_external(!DDLIB+'DD_idl.so','CloseID',ID)
+      ID = -1L
+   endif                              
+   
+   if (RetSize LE 0) then begin
+      Time = 0.D0
+      return, replicate(0.0, 96)
+   endif
+ 
+   Spectra = fltarr(16, 96, 16, RetSize);
+   
+         for i = 0, RetSize - 1 do $
+            for j = 0, N_elements(Energy) - 1 do begin
+               GFeff = gfl(Energy[j], PaccArr[i], 1.0);
+               GFeffG = gfl(Energy[j], PaccArr[i], 0.0); Ghost
+                 
+               coeffH = GFeff GT 0 ? 1.e-5/GFeff : 0.0;
+               coeffG = GFeffG GT 0 ? 1.e-5/GFeffG : 0.0;
+             
+               Spectra[*,j,*,i] = SpectraTot[*,j,*,0,i]*coeffH + SpectraTot[*,j,*,1,i] * coeffG;
+         endfor 
+
+   
+   SpectraOut = total(total(Spectra,1),2);
+   Time=Time[0:Retsize-1]
+   
+return, SpectraOut
+end
\ No newline at end of file
diff --git a/amda_plus/amdalib/mex_h_spec_init.pro b/amda_plus/amdalib/mex_h_spec_init.pro
new file mode 100644
index 0000000..a05d372
--- /dev/null
+++ b/amda_plus/amdalib/mex_h_spec_init.pro
@@ -0,0 +1,71 @@
+;====================================================
+;              VEX_h_spec_init
+;                 1.0
+;   Init module of "h_spec" object
+;   HPSPEC from IMAEXTRA product VEX
+;
+;              18 Mars 2009
+;----------------------------------------------------
+
+pro mex_h_spec_init, ANODE = Anode, STOP_ANODE = Stop_Anode, elevationAsTime = elevationAsTime, $
+                     LOG = log, LIN = lin, PSYM = psym, COLOR = color, AY1TITLE = AY1Title, $
+                     ; spectra
+                     MINCOUNT = minCount, MAXCOUNT = maxCount, BACKGRDCHAN = backgrdChan, BACKGRDVAL = backgrdVal, $
+                     CHANNEL = channel, Energy = energy, ENERGYMIN = energymin, ENERGYMAX =  energymax, $
+                     
+                     DELAY = delay, $                      
+                     ; all additional keywords
+                    _EXTRA = e 
+
+  common Request, List, StartTime, TimeInt
+  common GraphC, graph, GraphN, Item
+
+  AzMin = 0
+  AzMax = 15
+
+   elevation = 1;
+   if (KEYWORD_SET(elevationAsTime)) then elevation = 0;
+
+  if (KEYWORD_SET(ANODE)) then begin
+    AzMin = Anode
+   if (KEYWORD_SET(STOP_ANODE)) then AzMax = Stop_Anode $
+   else AzMax = -1;
+  endif
+    
+  graph(GraphN).Type = 'IMA_T'
+  graph(GraphN).DataN = 1
+  graph(GraphN).SetCommonF(0) = 'ima_h_spec_com, "mex"'
+  graph(GraphN).GetDataF(0) = 'get_imam_h_spec'
+  graph[GraphN].DeltaT = (Graph[GraphN].TotalTime + 60.0D0) < 36100.0D0
+
+EnMin = 1.0;
+EnMax = 25000.0;
+
+energyTitle = '';
+
+if (KEYWORD_SET(ENERGYMIN)) then begin
+   EnMin = energymin;
+   EnMax =  energymax;
+   energyTitle = energymin eq energymax ? '!C E ' + string(energymin,format='(f7.1)') + 'eV' : '!C E ' + string(energymin,format='(f7.1)') + '-'+  string(energymax,format='(f7.1)') + 'eV'; 
+    
+    options = '"mex", ' + string(AzMin) +','+string(AzMax) +','+string(EnMin) +','+string(EnMax)+ ',' + string(elevation);;
+
+    angleTitle =   AzMax GT AzMin ?  'MEX IMA H+ An'+ string(AzMin,format='(i2.2)') +'-'+ string(AzMax,format='(i2.2)') : 'MEX IMA H+ An'+ string(AzMin,format='(i2.2)');
+    
+    graph[GraphN].AxisF =  KEYWORD_SET(lin) ?  'lineaxis, 0' : 'logaxis';
+    graph[GraphN].Ly.title =  'MEX H Cnts ' +  angleTitle + energyTitle
+					  
+    graph[GraphN].PlotF = 'imacntplot,' + options
+endif else begin
+    options = '"mex",'+string(AzMin) +','+string(AzMax) + ',' + string(elevation);
+    
+    graph[GraphN].names = PTR_NEW(/ALLOCATE_HEAP)
+    *(graph[GraphN].names) = 'log Counts'
+    
+    
+    graph[GraphN].Ly.title = AzMax GT AzMin ?  'MEX IMA H+ An'+ string(AzMin,format='(i2.2)') +'-'+ string(AzMax,format='(i2.2)') +'!CE/Q, eV' : 'MEX IMA H+ An'+ string(AzMin,format='(i2.2)') + '!C E/Q, eV'
+    graph[GraphN].PlotF =  'imaspecplot,' + options
+endelse
+return
+end
+;------------------------------------------------------------
diff --git a/amda_plus/amdalib/mex_h_spec_restr_.pro b/amda_plus/amdalib/mex_h_spec_restr_.pro
new file mode 100644
index 0000000..34d89f2
--- /dev/null
+++ b/amda_plus/amdalib/mex_h_spec_restr_.pro
@@ -0,0 +1,63 @@
+function mex_h_spec_restr_, StartTime, TimeInt, Time, RetSize, Sampling, close=close
+common GraphC, graph, GraphN
+common MEX_H_COM, ID, Energy
+
+FORWARD_FUNCTION gfl
+
+   FillValue =  !Values.F_NAN
+   
+   if n_elements(ID) EQ 0 then  begin
+     ID = -1L
+     err = call_external(!PROJLIB + 'libplanetcom.so','SetMission_idl', 'mex');
+     err = call_external(!PROJLIB + 'libplanetcom.so','SetRestriction');
+     EnNum = 96
+     Energy = fltarr(EnNum)
+     err = call_external(!PROJLIB + 'imainfo.so','GetImaEner_idl', Energy, 0)
+     Energy =  temporary(Energy(where(Energy GT 0)));
+   endif
+   
+   sampling = 192.0;
+  
+   Size = long(graph[GraphN].DeltaT/sampling)
+
+   Time=dblarr(Size)
+   SpectraTot = fltarr(16, 96, 16, 2, Size)
+   Product = 'HPSPEC';
+   PaccArr = intarr(Size);
+   EnergyTab = intarr(Size);
+
+    RetSize = call_external(!PROJLIB + 'libImaExtra.so','GetImaExtra_idl',$
+                                ID, StartTime, TimeInt,$
+                                Product, Size, $
+                                Time, PaccArr, EnergyTab, SpectraTot)
+                                
+  
+   if KEYWORD_SET(CLOSE) then begin
+      error = call_external(!DDLIB+'DD_idl.so','CloseID',ID)
+      ID = -1L
+   endif                              
+   
+   if (RetSize LE 0) then begin
+      Time = 0.D0
+      return, replicate(0.0, 96)
+   endif
+ 
+   Spectra = fltarr(16, 96, 16, RetSize);
+   
+         for i = 0, RetSize - 1 do $
+            for j = 0, N_elements(Energy) - 1 do begin
+               GFeff = gfl(Energy[j], PaccArr[i], 1.0);
+               GFeffG = gfl(Energy[j], PaccArr[i], 0.0); Ghost
+                 
+               coeffH = GFeff GT 0 ? 1.e-5/GFeff : 0.0;
+               coeffG = GFeffG GT 0 ? 1.e-5/GFeffG : 0.0;
+             
+               Spectra[*,j,*,i] = SpectraTot[*,j,*,0,i]*coeffH + SpectraTot[*,j,*,1,i] * coeffG;
+         endfor 
+
+   
+   SpectraOut = total(total(Spectra,1),2);
+   Time=Time[0:Retsize-1]
+   
+return, SpectraOut
+end
\ No newline at end of file
diff --git a/amda_plus/amdalib/mex_h_spec_restr_init.pro b/amda_plus/amdalib/mex_h_spec_restr_init.pro
new file mode 100644
index 0000000..231f15f
--- /dev/null
+++ b/amda_plus/amdalib/mex_h_spec_restr_init.pro
@@ -0,0 +1,74 @@
+;====================================================
+;              VEX_h_spec_init
+;                 1.0
+;   Init module of "h_spec" object
+;   HPSPEC from IMAEXTRA product VEX
+;
+;              18 Mars 2009
+;----------------------------------------------------
+
+pro mex_h_spec_restr_init, ANODE = Anode, STOP_ANODE = Stop_Anode, elevationAsTime = elevationAsTime, $
+                     LOG = log, LIN = lin, PSYM = psym, COLOR = color, AY1TITLE = AY1Title, $
+                     ; spectra
+                     MINCOUNT = minCount, MAXCOUNT = maxCount, BACKGRDCHAN = backgrdChan, BACKGRDVAL = backgrdVal, $
+                     CHANNEL = channel, Energy = energy, ENERGYMIN = energymin, ENERGYMAX =  energymax, $
+                     
+                     DELAY = delay, $                      
+                     ; all additional keywords
+                    _EXTRA = e 
+
+  common Request, List, StartTime, TimeInt
+  common GraphC, graph, GraphN, Item
+
+  AzMin = 0
+  AzMax = 15
+
+   elevation = 1;
+   if (KEYWORD_SET(elevationAsTime)) then elevation = 0;
+
+  if (KEYWORD_SET(ANODE)) then begin
+    AzMin = Anode
+   if (KEYWORD_SET(STOP_ANODE)) then AzMax = Stop_Anode $
+   else AzMax = -1;
+  endif
+  
+  
+  graph(GraphN).Type = 'IMA_T'
+  graph(GraphN).DataN = 1
+  graph(GraphN).SetCommonF(0) = 'ima_h_spec_com, "mex"'
+  graph(GraphN).GetDataF(0) = 'get_imam_h_spec, /RESTRICTED'
+  graph[GraphN].DeltaT = (Graph[GraphN].TotalTime + 60.0D0) < 36100.0D0
+
+
+EnMin = 1.0;
+EnMax = 25000.0;
+
+energyTitle = '';
+
+
+if (KEYWORD_SET(ENERGYMIN)) then begin
+   EnMin = energymin;
+   EnMax =  energymax;
+   energyTitle = energymin eq energymax ? '!C E ' + string(energymin,format='(f7.1)') + 'eV' : '!C E ' + string(energymin,format='(f7.1)') + '-'+  string(energymax,format='(f7.1)') + 'eV'; 
+    
+    options = '"mex", ' + string(AzMin) +','+string(AzMax) +','+string(EnMin) +','+string(EnMax) + ',' + string(elevation);
+
+    angleTitle =   AzMax GT AzMin ?  'MEX IMA H+ An'+ string(AzMin,format='(i2.2)') +'-'+ string(AzMax,format='(i2.2)') : 'MEX IMA H+ An'+ string(AzMin,format='(i2.2)');
+    
+    graph[GraphN].AxisF =  KEYWORD_SET(lin) ?  'lineaxis, 0' : 'logaxis';
+    graph[GraphN].Ly.title =  'MEX H Cnts ' +  angleTitle + energyTitle
+					  
+    graph[GraphN].PlotF = 'imacntplot,' + options
+endif else begin
+    options = '"mex",'+string(AzMin) +','+string(AzMax) + ',' + string(elevation);
+    
+    graph[GraphN].names = PTR_NEW(/ALLOCATE_HEAP)
+    *(graph[GraphN].names) = 'log Counts'
+    
+    
+    graph[GraphN].Ly.title = AzMax GT AzMin ?  'MEX IMA H+ An'+ string(AzMin,format='(i2.2)') +'-'+ string(AzMax,format='(i2.2)') +'!CE/Q, eV' : 'MEX IMA H+ An'+ string(AzMin,format='(i2.2)') + '!C E/Q, eV'
+    graph[GraphN].PlotF =  'imaspecplot,' + options
+endelse
+return
+end
+;------------------------------------------------------------
diff --git a/amda_plus/amdalib/mex_h_temp_init.pro b/amda_plus/amdalib/mex_h_temp_init.pro
new file mode 100644
index 0000000..bae8d59
--- /dev/null
+++ b/amda_plus/amdalib/mex_h_temp_init.pro
@@ -0,0 +1,33 @@
+;--------------------------------------
+;
+;---------------------------------------
+
+pro mex_h_temp_INIT,  $
+                     LOG = log, LIN = lin, PSYM = psym, COLOR = color, AY1TITLE = AY1Title, $                   
+                     ; vector
+                     X = x, Y = y, Z = z, TOTAL = total, FRAME = frame, $
+                     DELAY = delay, $
+                     
+                     ; all additional keywords
+                    _EXTRA = e
+
+common GraphC, graph, GraphN, Item
+ 
+   pen = !dnc-1  & symbol = -3;
+ 
+ if (KEYWORD_SET(COLOR)) then pen = color; 
+ if (KEYWORD_SET(PSYM)) then symbol = psym;    
+ 
+graph[GraphN].Type = 'FGM_T' 
+graph[GraphN].DataN = 1
+graph[GraphN].SetCommonF[0] = 'vexmex_temp_com, "mex", "h"' 
+graph[GraphN].GetDataF[0] ='get_vexmex_temp, "mex", "h"'
+graph[GraphN].DeltaT = (Graph[GraphN].TotalTime + 60.0D0) <  18000.0D0 
+graph[GraphN].Ly.title = 'MEX ima-H T VSO, eV'
+graph[GraphN].PlotF = 'PlotScal_New, 0,' + string(pen)  + ',' + string(symbol);  
+if (KEYWORD_SET(LOG)) then AxisF = 'logaxis' $
+else AxisF = 'lineaxis, ' + string(Graph[GraphN].TotalTime);
+graph[GraphN].AxisF = AxisF; 
+
+return
+end
diff --git a/amda_plus/amdalib/mex_h_temp_restr_.pro b/amda_plus/amdalib/mex_h_temp_restr_.pro
new file mode 100644
index 0000000..7af0b00
--- /dev/null
+++ b/amda_plus/amdalib/mex_h_temp_restr_.pro
@@ -0,0 +1,48 @@
+function MEX_H_TEMP_RESTR_, StartTime, TimeInt, Time, RetSize, Sampling, close=close
+common GraphC, graph, GraphN
+common MEXHDTEMP_COM, ID
+
+   FillValue = !Values.F_NAN 
+   if n_elements(ID) EQ 0 then ID = -1L
+   sampling = 192.0
+   Size = long(graph[GraphN].DeltaT/sampling)
+     
+   Bdata=fltarr(3,Size)
+   Time=dblarr(Size)
+   
+    VI = 'mex:imaparam:restricted'
+    ParamName = "Temperature_P";
+ 
+    RetSize = call_external(!PROJLIB + 'libParam.so', 'getLocalData', $
+                          ID, VI, ParamName, StartTime, TimeInt, Size, Time, Bdata)
+                          
+  
+   if KEYWORD_SET(CLOSE) then begin
+      error = call_external(!DDLIB+'DD_idl.so','CloseID',ID)
+      ID = -1L
+   endif                        
+  
+   if (RetSize LE 0) then begin
+      Time = 0.D0
+      return, 0.0
+   endif
+   
+   Time=Time[0:Retsize-1]
+   Bdata=Bdata[*,0:Retsize-1]
+   
+   num_gap = where(finite(Bdata[0,*]), Cntr)
+  
+   if Cntr le 0 then begin
+       Retsize = -999
+       Time = 0.D0
+       return, 0.0
+   endif
+   
+    Time=Time[num_gap]
+    Bdata=Bdata[*,num_gap];
+    Retsize=Cntr
+    B = fltarr(Retsize)
+    
+    for i = 0, Retsize - 1 do B[i] = min(Bdata[*,i])
+return, B
+end
\ No newline at end of file
diff --git a/amda_plus/amdalib/mex_h_temp_restr_init.pro b/amda_plus/amdalib/mex_h_temp_restr_init.pro
new file mode 100644
index 0000000..d6086b5
--- /dev/null
+++ b/amda_plus/amdalib/mex_h_temp_restr_init.pro
@@ -0,0 +1,31 @@
+;--------------------------------------
+;
+;---------------------------------------
+
+pro mex_h_temp_RESTR_INIT,  $
+                     LOG = log, LIN = lin, PSYM = psym, COLOR = color, AY1TITLE = AY1Title, $                   
+                     ; vector
+                     X = x, Y = y, Z = z, TOTAL = total, FRAME = frame, $
+                     DELAY = delay, $
+                     
+                     ; all additional keywords
+                    _EXTRA = e
+
+common GraphC, graph, GraphN, Item
+ 
+   pen = !dnc-1 &  symbol = -3;
+ 
+ if (KEYWORD_SET(COLOR)) then pen = color; 
+ if (KEYWORD_SET(PSYM)) then symbol = psym;    
+ 
+graph[GraphN].Type = 'FGM_T' 
+graph[GraphN].DataN = 1
+graph[GraphN].SetCommonF[0] = 'vexmex_temp_com, "mex", "h"' 
+graph[GraphN].GetDataF[0] ='get_vexmex_temp, "mex", "h", /RESTRICTED'
+graph[GraphN].DeltaT = (Graph[GraphN].TotalTime + 60.0D0) <  18000.0D0 
+graph[GraphN].Ly.title = 'MEX ima-H T VSO, eV'
+graph[GraphN].PlotF = 'PlotScal_New, 0,' + string(pen)  + ',' + string(symbol);  
+graph[GraphN].AxisF = 'lineaxis,' + string(graph[graphN].TotalTime)
+
+return
+end
diff --git a/amda_plus/amdalib/mex_h_vel_.pro b/amda_plus/amdalib/mex_h_vel_.pro
new file mode 100644
index 0000000..8dc7a9e
--- /dev/null
+++ b/amda_plus/amdalib/mex_h_vel_.pro
@@ -0,0 +1,48 @@
+function MEX_H_VEL_RESTR_, StartTime, TimeInt, Time, RetSize, Sampling, close=close
+common GraphC, graph, GraphN
+common MEXHDVEL_COM, ID
+
+   FillValue = !Values.F_NAN 
+   if n_elements(ID) EQ 0 then ID = -1L
+   sampling = 192.0
+   Size = long(graph[GraphN].DeltaT/sampling)
+     
+   Bdata=fltarr(3,Size)
+   Time=dblarr(Size)
+   
+   Mission ="mex";
+ 
+    VI = Mission + ':ima:param'
+    ParamName = "Velocity_P";
+ 
+    RetSize = call_external(!PROJLIB + 'libParam.so', 'getLocalData', $
+                          ID, VI, ParamName, StartTime, TimeInt, Size, Time, Bdata)
+                          
+  
+   if KEYWORD_SET(CLOSE) then begin
+      error = call_external(!DDLIB+'DD_idl.so','CloseID',ID)
+      ID = -1L
+   endif                        
+  
+   if (RetSize LE 0) then begin
+      Time = 0.D0
+      return, [0.0,0.0,0.0]
+   endif
+   
+   Time=Time[0:Retsize-1]
+   Bdata=Bdata[*,0:Retsize-1]
+   
+   num_gap = where(finite(Bdata[0,*]), Cntr)
+  
+   if Cntr le 0 then begin
+       Retsize = -999
+       Time = 0.D0
+       return, [0.0,0.0,0.0] 
+   endif
+   
+    Time=Time[num_gap]
+    Bdata=Bdata[*,num_gap];
+    Retsize=Cntr
+ 
+return, Bdata
+end
\ No newline at end of file
diff --git a/amda_plus/amdalib/mex_h_vel_0_init.pro b/amda_plus/amdalib/mex_h_vel_0_init.pro
new file mode 100644
index 0000000..85b634b
--- /dev/null
+++ b/amda_plus/amdalib/mex_h_vel_0_init.pro
@@ -0,0 +1,18 @@
+pro mex_h_vel_0_init, LOG = log, LIN = lin, PSYM = psym, COLOR = color, AY1TITLE = AY1Title, $                   
+                     ; vector
+                     X = x, Y = y, Z = z, TOTAL = total, FRAME = frame, $
+                     DELAY = delay, $
+                     
+                     ; all additional keywords
+                    _EXTRA = e
+ 
+
+  cmd = 'mex_h_vel_init, /X' 
+ 
+  if (KEYWORD_SET(PSYM)) then cmd += ", PSYM=" + string(psym)
+  if (KEYWORD_SET(COLOR)) then cmd += ", COLOR=" + string(color)
+  if (KEYWORD_SET(AY1TITLE)) then  cmd += ", AY1TITLE=" + string(AY1Title)
+  R = execute(cmd) 
+
+return
+end 
diff --git a/amda_plus/amdalib/mex_h_vel_1_init.pro b/amda_plus/amdalib/mex_h_vel_1_init.pro
new file mode 100644
index 0000000..4caea26
--- /dev/null
+++ b/amda_plus/amdalib/mex_h_vel_1_init.pro
@@ -0,0 +1,18 @@
+pro mex_h_vel_1_init, LOG = log, LIN = lin, PSYM = psym, COLOR = color, AY1TITLE = AY1Title, $                   
+                     ; vector
+                     X = x, Y = y, Z = z, TOTAL = total, FRAME = frame, $
+                     DELAY = delay, $
+                     
+                     ; all additional keywords
+                    _EXTRA = e
+ 
+
+  cmd = 'mex_h_vel_init, /Y' 
+ 
+  if (KEYWORD_SET(PSYM)) then cmd += ", PSYM=" + string(psym)
+  if (KEYWORD_SET(COLOR)) then cmd += ", COLOR=" +  string(color)
+  if (KEYWORD_SET(AY1TITLE)) then cmd += ", AY1TITLE=" +  string(AY1Title)
+  R = execute(cmd) 
+
+return
+end 
diff --git a/amda_plus/amdalib/mex_h_vel_2_init.pro b/amda_plus/amdalib/mex_h_vel_2_init.pro
new file mode 100644
index 0000000..1a3774e
--- /dev/null
+++ b/amda_plus/amdalib/mex_h_vel_2_init.pro
@@ -0,0 +1,17 @@
+pro mex_h_vel_2_init, LOG = log, LIN = lin, PSYM = psym, COLOR = color, AY1TITLE = AY1Title, $                   
+                     ; vector
+                     X = x, Y = y, Z = z, TOTAL = total, FRAME = frame, $
+                     DELAY = delay, $                     
+                     ; all additional keywords
+                    _EXTRA = e
+ 
+
+  cmd = 'mex_h_vel_init, /Z' 
+ 
+  if (KEYWORD_SET(PSYM)) then cmd += ", PSYM=" + string(psym)
+  if (KEYWORD_SET(COLOR)) then cmd += ", COLOR=" + string(color)
+  if (KEYWORD_SET(AY1TITLE)) then cmd += ", AY1TITLE=" + string(AY1Title)
+  R = execute(cmd) 
+
+return
+end 
diff --git a/amda_plus/amdalib/mex_h_vel_init.pro b/amda_plus/amdalib/mex_h_vel_init.pro
new file mode 100644
index 0000000..5eca8d9
--- /dev/null
+++ b/amda_plus/amdalib/mex_h_vel_init.pro
@@ -0,0 +1,47 @@
+;--------------------------------------
+;
+;---------------------------------------
+
+pro mex_h_vel_INIT, $
+		     LOG = log, LIN = lin, PSYM = psym, COLOR = color, AY1TITLE = AY1Title, $                   
+                     ; vector
+                     X = x, Y = y, Z = z, TOTAL = total, FRAME = frame, $
+                     DELAY = delay, $
+                     
+                     ; all additional keywords
+                    _EXTRA = e
+
+common GraphC, graph, GraphN, Item
+
+names = ['V!DX', 'V!DY', 'V!DZ', 'V']
+frame = 'MSO'
+
+
+pen = !dnc-1 & comp = 100 & symbol = -3;
+ 
+ if (KEYWORD_SET(COLOR)) then pen = color; 
+ if (KEYWORD_SET(PSYM)) then symbol = psym;   
+  
+   
+   if KEYWORD_SET(X) then comp = 0
+   if KEYWORD_SET(Y) then comp = 1
+   if KEYWORD_SET(Z) then comp = 2
+   if KEYWORD_SET(TOT) then comp = 3
+
+yTitle =  'MEX ima-H V MSO, km/s';
+if (KEYWORD_SET(AY1TITLE)) then graph[GraphN].Ly.title = AY1Title $
+else graph[GraphN].Ly.title = yTitle 
+
+graph[GraphN].names = PTR_NEW(/ALLOCATE_HEAP)
+graph[GraphN].Type = 'FGM_T' 
+graph[GraphN].DataN = 1
+graph[GraphN].SetCommonF[0] = 'vexmex_vel_com, "mex", "h"' 
+graph[GraphN].GetDataF[0] ='get_vexmex_vel, "mex", "h"'
+graph[GraphN].DeltaT = (Graph[GraphN].TotalTime + 60.0D0) <  18000.0D0 
+
+*(graph[GraphN].names) = (comp le 3) ? names : names[0:2]
+graph[GraphN].PlotF = comp eq 100 ? 'PlotVec': 'PlotVec_Comp_New, ' + string(comp) +','+ string(pen ) +','+ string(symbol)
+graph[GraphN].AxisF = 'lineaxis,' + string(graph[graphN].TotalTime)
+ 
+return
+end
diff --git a/amda_plus/amdalib/mex_h_vel_restr_.pro b/amda_plus/amdalib/mex_h_vel_restr_.pro
new file mode 100644
index 0000000..1c26190
--- /dev/null
+++ b/amda_plus/amdalib/mex_h_vel_restr_.pro
@@ -0,0 +1,46 @@
+function MEX_H_VEL_RESTR_, StartTime, TimeInt, Time, RetSize, Sampling, close=close
+common GraphC, graph, GraphN
+common MEXHDVEL_COM, ID
+
+   FillValue = !Values.F_NAN 
+   if n_elements(ID) EQ 0 then ID = -1L
+   sampling = 192.0
+   Size = long(graph[GraphN].DeltaT/sampling)
+     
+   Bdata=fltarr(3,Size)
+   Time=dblarr(Size)   
+    
+    VI = 'mex:imaparam:restricted'
+    ParamName = "Velocity_P";
+ 
+    RetSize = call_external(!PROJLIB + 'libParam.so', 'getLocalData', $
+                          ID, VI, ParamName, StartTime, TimeInt, Size, Time, Bdata)
+                          
+  
+   if KEYWORD_SET(CLOSE) then begin
+      error = call_external(!DDLIB+'DD_idl.so','CloseID',ID)
+      ID = -1L
+   endif                        
+  
+   if (RetSize LE 0) then begin
+      Time = 0.D0
+      return, [0.0,0.0,0.0]
+   endif
+   
+   Time=Time[0:Retsize-1]
+   Bdata=Bdata[*,0:Retsize-1]
+   
+   num_gap = where(finite(Bdata[0,*]), Cntr)
+  
+   if Cntr le 0 then begin
+       Retsize = -999
+       Time = 0.D0
+       return, [0.0,0.0,0.0] 
+   endif
+   
+    Time=Time[num_gap]
+    Bdata=Bdata[*,num_gap];
+    Retsize=Cntr
+ 
+return, Bdata
+end
\ No newline at end of file
diff --git a/amda_plus/amdalib/mex_h_vel_restr_0_init.pro b/amda_plus/amdalib/mex_h_vel_restr_0_init.pro
new file mode 100644
index 0000000..1390a90
--- /dev/null
+++ b/amda_plus/amdalib/mex_h_vel_restr_0_init.pro
@@ -0,0 +1,18 @@
+pro mex_h_vel_restr_0_init, LOG = log, LIN = lin, PSYM = psym, COLOR = color, AY1TITLE = AY1Title, $                   
+                     ; vector
+                     X = x, Y = y, Z = z, TOTAL = total, FRAME = frame, $
+                     DELAY = delay, $
+                     
+                     ; all additional keywords
+                    _EXTRA = e
+ 
+
+  cmd = 'mex_h_vel_restr_init, /X' 
+ 
+  if (KEYWORD_SET(PSYM)) then cmd += ", PSYM=" + string(psym)
+  if (KEYWORD_SET(COLOR)) then cmd += ", COLOR=" + string(color)
+  if (KEYWORD_SET(AY1TITLE)) then  cmd += ", AY1TITLE=" + string(AY1Title)
+  R = execute(cmd) 
+
+return
+end 
diff --git a/amda_plus/amdalib/mex_h_vel_restr_1_init.pro b/amda_plus/amdalib/mex_h_vel_restr_1_init.pro
new file mode 100644
index 0000000..e555fbb
--- /dev/null
+++ b/amda_plus/amdalib/mex_h_vel_restr_1_init.pro
@@ -0,0 +1,18 @@
+pro mex_h_vel_restr_1_init, LOG = log, LIN = lin, PSYM = psym, COLOR = color, AY1TITLE = AY1Title, $                   
+                     ; vector
+                     X = x, Y = y, Z = z, TOTAL = total, FRAME = frame, $
+                     DELAY = delay, $
+                     
+                     ; all additional keywords
+                    _EXTRA = e
+ 
+
+  cmd = 'mex_h_vel_restr_init, /Y' 
+ 
+  if (KEYWORD_SET(PSYM)) then cmd += ", PSYM=" + string(psym)
+  if (KEYWORD_SET(COLOR)) then cmd += ", COLOR=" +  string(color)
+  if (KEYWORD_SET(AY1TITLE)) then cmd += ", AY1TITLE=" +  string(AY1Title)
+  R = execute(cmd) 
+
+return
+end 
diff --git a/amda_plus/amdalib/mex_h_vel_restr_2_init.pro b/amda_plus/amdalib/mex_h_vel_restr_2_init.pro
new file mode 100644
index 0000000..d76e77b
--- /dev/null
+++ b/amda_plus/amdalib/mex_h_vel_restr_2_init.pro
@@ -0,0 +1,17 @@
+pro mex_h_vel_restr_2_init, LOG = log, LIN = lin, PSYM = psym, COLOR = color, AY1TITLE = AY1Title, $                   
+                     ; vector
+                     X = x, Y = y, Z = z, TOTAL = total, FRAME = frame, $
+                     DELAY = delay, $                     
+                     ; all additional keywords
+                    _EXTRA = e
+ 
+
+  cmd = 'mex_h_vel_restr_init, /Z' 
+ 
+  if (KEYWORD_SET(PSYM)) then cmd += ", PSYM=" + string(psym)
+  if (KEYWORD_SET(COLOR)) then cmd += ", COLOR=" + string(color)
+  if (KEYWORD_SET(AY1TITLE)) then cmd += ", AY1TITLE=" + string(AY1Title)
+  R = execute(cmd) 
+
+return
+end 
diff --git a/amda_plus/amdalib/mex_h_vel_restr_init.pro b/amda_plus/amdalib/mex_h_vel_restr_init.pro
new file mode 100644
index 0000000..3ce799a
--- /dev/null
+++ b/amda_plus/amdalib/mex_h_vel_restr_init.pro
@@ -0,0 +1,47 @@
+;--------------------------------------
+;
+;---------------------------------------
+
+pro mex_h_vel_restr_INIT, $
+		     LOG = log, LIN = lin, PSYM = psym, COLOR = color, AY1TITLE = AY1Title, $                   
+                     ; vector
+                     X = x, Y = y, Z = z, TOTAL = total, FRAME = frame, $
+                     DELAY = delay, $
+                     
+                     ; all additional keywords
+                    _EXTRA = e
+
+common GraphC, graph, GraphN, Item
+
+names = ['V!DX', 'V!DY', 'V!DZ', 'V']
+frame = 'MSO'
+
+
+pen = !dnc-1 & comp = 100 & symbol = -3;
+ 
+ if (KEYWORD_SET(COLOR)) then pen = color; 
+ if (KEYWORD_SET(PSYM)) then symbol = psym;   
+  
+   
+   if KEYWORD_SET(X) then comp = 0
+   if KEYWORD_SET(Y) then comp = 1
+   if KEYWORD_SET(Z) then comp = 2
+   if KEYWORD_SET(TOT) then comp = 3
+
+yTitle =  'MEX ima-H V MSO, km/s';
+if (KEYWORD_SET(AY1TITLE)) then graph[GraphN].Ly.title = AY1Title $
+else graph[GraphN].Ly.title = yTitle 
+
+graph[GraphN].names = PTR_NEW(/ALLOCATE_HEAP)
+graph[GraphN].Type = 'FGM_T' 
+graph[GraphN].DataN = 1
+graph[GraphN].SetCommonF[0] = 'vexmex_vel_com, "mex", "h"' 
+graph[GraphN].GetDataF[0] ='get_vexmex_vel, "mex", "h", /RESTRICTED'
+graph[GraphN].DeltaT = (Graph[GraphN].TotalTime + 60.0D0) <  18000.0D0 
+
+*(graph[GraphN].names) = (comp le 3) ? names : names[0:2]
+graph[GraphN].PlotF = comp eq 100 ? 'PlotVec': 'PlotVec_Comp_New, ' + string(comp) +','+ string(pen ) +','+ string(symbol)
+graph[GraphN].AxisF = 'lineaxis,' + string(graph[graphN].TotalTime)
+ 
+return
+end
diff --git a/amda_plus/amdalib/mex_n_sw_com.pro b/amda_plus/amdalib/mex_n_sw_com.pro
new file mode 100644
index 0000000..2025149
--- /dev/null
+++ b/amda_plus/amdalib/mex_n_sw_com.pro
@@ -0,0 +1,34 @@
+;------------------------ THEMIS VELOCITY SET ---------------------
+;  
+;-----------------------------------------------------------------------------------
+pro mex_n_sw_com 
+
+common Mex_N_SW, SWP
+
+common GraphC, graph, GraphN, Item
+Common Record, Record
+
+ FillValue = !Values.F_NAN
+ Sampling = 192.0
+ 
+ 
+ DELAY = 0.0D0
+ Sz =  Long((Graph[GraphN].DeltaT)/Sampling + 1)
+  
+  SWP = record
+  SWP.DefSize = long(Graph[GraphN].DeltaT/Sampling + 1)
+  SWP.Sampling = Sampling 
+  Graph[GraphN].FillValue[Item] = FillValue
+  Graph[GraphN].Lag[Item] = double(Delay) 
+
+  SWP.Time = PTR_NEW(/ALLOCATE_HEAP)
+  SWP.Val = PTR_NEW(/ALLOCATE_HEAP)
+  SWP.LastTime = PTR_NEW(/ALLOCATE_HEAP)
+  SWP.LastVal = PTR_NEW(/ALLOCATE_HEAP)
+  
+  Graph[GraphN].Sampling[Item] = Sampling;
+  Graph[GraphN].Time[Item] =  SWP.Time
+  Graph[GraphN].Val[Item] = SWP.Val
+  
+return
+end
\ No newline at end of file
diff --git a/amda_plus/amdalib/mex_n_sw_init.pro b/amda_plus/amdalib/mex_n_sw_init.pro
new file mode 100644
index 0000000..d0641f7
--- /dev/null
+++ b/amda_plus/amdalib/mex_n_sw_init.pro
@@ -0,0 +1,31 @@
+;--------------------------------------
+;
+;---------------------------------------
+
+pro mex_n_sw_init, DELTAVAL = deltaval, LIN = lin, LOG = log, AY1TITLE = AY1Title, _EXTRA = e
+
+common GraphC, graph, GraphN, Item
+ 
+names = ['Poor', 'Acceptable', 'Good']
+
+val = 5;
+if KEYWORD_SET(DELTAVAL) then val = deltaval
+
+Graph[GraphN].names = PTR_NEW(/ALLOCATE_HEAP)
+*(graph[GraphN].names) =  names;  
+
+graph[GraphN].Type = 'FGM_T' 
+graph[GraphN].DataN = 1
+graph[GraphN].SetCommonF[0] = 'mex_n_sw_com' 
+graph[GraphN].GetDataF[0] ='getmex_n_sw'
+graph[GraphN].DeltaT = (Graph[GraphN].TotalTime + 60.0D0) <  864000.0D0 
+if (KEYWORD_SET(AY1TITLE)) then graph[GraphN].Ly.title = AY1Title $
+else graph[GraphN].Ly.title = '!CMEX ima-H N, cm!U-3'
+
+graph[GraphN].PlotF =  'plotimasw, ' + string(val);
+
+if KEYWORD_SET(LOG) then graph[GraphN].AxisF = 'logaxis' $
+else graph[GraphN].AxisF = 'lineaxis,' + string(graph[graphN].TotalTime)
+ 
+return
+end
diff --git a/amda_plus/amdalib/mex_o_dens_.pro b/amda_plus/amdalib/mex_o_dens_.pro
new file mode 100644
index 0000000..1a706f9
--- /dev/null
+++ b/amda_plus/amdalib/mex_o_dens_.pro
@@ -0,0 +1,55 @@
+function MEX_O_DENS_, StartTime, TimeInt, Time, RetSize, Sampling, close=close
+common GraphC, graph, GraphN
+common MEXODENS_COM, ID
+
+   FillValue = !Values.F_NAN 
+   if n_elements(ID) EQ 0 then ID = -1L
+   sampling = 192.0
+   Size = long(graph[GraphN].DeltaT/sampling)
+     
+   Bdata=fltarr(Size)
+   Time=dblarr(Size)
+   Quality = fltarr(Size)
+   Time_Q = dblarr(Size)
+   
+   Mission ="mex";
+ 
+    VI = Mission + ':ima:param'
+    ParamName = "Density_O";
+ 
+    RetSize = call_external(!PROJLIB + 'libParam.so', 'getLocalData', $
+                          ID, VI, ParamName, StartTime, TimeInt, Size, Time, Bdata)
+                          
+    ParamName = "Quality_O";
+
+    RetSize = call_external(!PROJLIB + 'libParam.so', 'getLocalData', $
+                          ID, VI, ParamName, StartTime, TimeInt, Size, Time_Q, Quality)   
+    
+   if KEYWORD_SET(CLOSE) then begin
+      error = call_external(!DDLIB+'DD_idl.so','CloseID',ID)
+      ID = -1L
+   endif                        
+  
+   if (RetSize LE 0) then begin
+      Time = 0.D0
+      return, 0.0
+   endif
+   
+   Time=Time[0:Retsize-1]
+   Bdata=Bdata[0:Retsize-1]
+   Quality = Quality[0:Retsize-1]
+ ;  num_gap = where(Quality GE 0.7, Cntr)
+  
+  ; if Cntr le 0 then begin
+  ;     Retsize = -999
+  ;;     Time = 0.D0
+ ;      return, 0.0
+ ;  endif
+   
+ ;   Time=Time[num_gap]
+ ;   Bdata=Bdata[num_gap];
+ ;   Retsize=Cntr
+
+ 
+return, Bdata
+end
\ No newline at end of file
diff --git a/amda_plus/amdalib/mex_o_dens_init.pro b/amda_plus/amdalib/mex_o_dens_init.pro
new file mode 100644
index 0000000..aba31e4
--- /dev/null
+++ b/amda_plus/amdalib/mex_o_dens_init.pro
@@ -0,0 +1,23 @@
+;--------------------------------------
+;
+;---------------------------------------
+
+pro mex_o_dens_INIT,  LIN = LIN, LOG = LOG, COLOR = color, PSYM = psym
+
+common GraphC, graph, GraphN, Item
+
+names = ['Poor', 'Satisfactory', 'Good', 'Excellent']
+
+Graph[GraphN].names = PTR_NEW(/ALLOCATE_HEAP)
+*(graph[GraphN].names) =  names;
+
+graph[GraphN].Type = 'FGM_T' 
+graph[GraphN].DataN = 1
+graph[GraphN].SetCommonF[0] = 'vexmex_dens_com, "mex", "o"' 
+graph[GraphN].GetDataF[0] ='get_vexmex_dens, "mex", "o"'
+graph[GraphN].DeltaT = (Graph[GraphN].TotalTime + 60.0D0) <  18000.0D0 
+graph[GraphN].Ly.title = 'MEX ima-O N, cm!U-3'
+graph[GraphN].AxisF =  KEYWORD_SET(LIN) ?  'lineaxis, 0' : 'logaxis'
+graph[GraphN].PlotF = 'PlotImaDens'
+return
+end
diff --git a/amda_plus/amdalib/mex_o_dens_restr_.pro b/amda_plus/amdalib/mex_o_dens_restr_.pro
new file mode 100644
index 0000000..7e9b77c
--- /dev/null
+++ b/amda_plus/amdalib/mex_o_dens_restr_.pro
@@ -0,0 +1,54 @@
+function MEX_O_DENS_RESTR_, StartTime, TimeInt, Time, RetSize, Sampling, close=close
+common GraphC, graph, GraphN
+common MEXODENS_COM, ID
+
+   FillValue = !Values.F_NAN 
+   if n_elements(ID) EQ 0 then ID = -1L
+   sampling = 192.0
+   Size = long(graph[GraphN].DeltaT/sampling)
+     
+   Bdata=fltarr(Size)
+   Time=dblarr(Size)
+   Quality = fltarr(Size)
+   Time_Q = dblarr(Size)
+ 
+ 
+    VI = "mex:imaparam:restricted";
+    ParamName = "Density_O";
+ 
+    RetSize = call_external(!PROJLIB + 'libParam.so', 'getLocalData', $
+                          ID, VI, ParamName, StartTime, TimeInt, Size, Time, Bdata)
+                          
+    ParamName = "Quality_O";
+
+    RetSize = call_external(!PROJLIB + 'libParam.so', 'getLocalData', $
+                          ID, VI, ParamName, StartTime, TimeInt, Size, Time_Q, Quality)   
+    
+   if KEYWORD_SET(CLOSE) then begin
+      error = call_external(!DDLIB+'DD_idl.so','CloseID',ID)
+      ID = -1L
+   endif                        
+  
+   if (RetSize LE 0) then begin
+      Time = 0.D0
+      return, 0.0
+   endif
+   
+   Time=Time[0:Retsize-1]
+   Bdata=Bdata[0:Retsize-1]
+   Quality = Quality[0:Retsize-1]
+ ;  num_gap = where(Quality GE 0.7, Cntr)
+  
+  ; if Cntr le 0 then begin
+  ;     Retsize = -999
+  ;;     Time = 0.D0
+ ;      return, 0.0
+ ;  endif
+   
+ ;   Time=Time[num_gap]
+ ;   Bdata=Bdata[num_gap];
+ ;   Retsize=Cntr
+
+ 
+return, Bdata
+end
\ No newline at end of file
diff --git a/amda_plus/amdalib/mex_o_dens_restr_init.pro b/amda_plus/amdalib/mex_o_dens_restr_init.pro
new file mode 100644
index 0000000..fb231dd
--- /dev/null
+++ b/amda_plus/amdalib/mex_o_dens_restr_init.pro
@@ -0,0 +1,23 @@
+;--------------------------------------
+;
+;---------------------------------------
+
+pro mex_o_dens_restr_INIT,  LIN = LIN, LOG = LOG, COLOR = color, PSYM = psym
+
+common GraphC, graph, GraphN, Item
+
+names = ['Poor', 'Satisfactory', 'Good', 'Excellent']
+
+Graph[GraphN].names = PTR_NEW(/ALLOCATE_HEAP)
+*(graph[GraphN].names) =  names;
+
+graph[GraphN].Type = 'FGM_T' 
+graph[GraphN].DataN = 1
+graph[GraphN].SetCommonF[0] = 'vexmex_dens_com, "mex", "o"' 
+graph[GraphN].GetDataF[0] ='get_vexmex_dens, "mex", "o", /RESTRICTED'
+graph[GraphN].DeltaT = (Graph[GraphN].TotalTime + 60.0D0) <  18000.0D0 
+graph[GraphN].Ly.title = 'MEX ima-O N, cm!U-3'
+graph[GraphN].AxisF =  KEYWORD_SET(LIN) ?  'lineaxis, 0' : 'logaxis'
+graph[GraphN].PlotF = 'PlotImaDens'
+return
+end
diff --git a/amda_plus/amdalib/mex_o_qual_.pro b/amda_plus/amdalib/mex_o_qual_.pro
new file mode 100644
index 0000000..f4db7ec
--- /dev/null
+++ b/amda_plus/amdalib/mex_o_qual_.pro
@@ -0,0 +1,48 @@
+function MEX_O_QUAL_, StartTime, TimeInt, Time, RetSize, Sampling, close=close
+common GraphC, graph, GraphN
+common MEXOQUAL_COM, ID
+
+   FillValue = !Values.F_NAN 
+   if n_elements(ID) EQ 0 then ID = -1L
+   sampling = 192.0
+   Size = long(graph[GraphN].DeltaT/sampling)
+     
+   Bdata=fltarr(Size)
+   Time=dblarr(Size)
+   
+   Mission ="mex";
+ 
+    VI = Mission + ':ima:param'
+    ParamName = "Quality_O";
+ 
+    RetSize = call_external(!PROJLIB + 'libParam.so', 'getLocalData', $
+                          ID, VI, ParamName, StartTime, TimeInt, Size, Time, Bdata)
+
+  if KEYWORD_SET(CLOSE) then begin
+      error = call_external(!DDLIB+'DD_idl.so','CloseID',ID)
+      ID = -1L
+   endif
+  
+   if (RetSize LE 0) then begin
+      Time = 0.D0
+      return, 0.0
+   endif
+   
+   Time=Time[0:Retsize-1]
+   Bdata=Bdata[0:Retsize-1]
+   
+   num_gap = where(finite(Bdata), Cntr)
+  
+   if Cntr le 0 then begin
+       Retsize = -999
+       Time = 0.D0
+       return, 0.0
+   endif
+   
+    Time=Time[num_gap]
+    Bdata=Bdata[num_gap];
+    Retsize=Cntr
+
+   
+return, Bdata
+end
\ No newline at end of file
diff --git a/amda_plus/amdalib/mex_o_qual_init.pro b/amda_plus/amdalib/mex_o_qual_init.pro
new file mode 100644
index 0000000..4ae1803
--- /dev/null
+++ b/amda_plus/amdalib/mex_o_qual_init.pro
@@ -0,0 +1,30 @@
+;--------------------------------------
+;
+;---------------------------------------
+
+pro mex_o_qual_INIT,  $
+                     LOG = log, LIN = lin, PSYM = psym, COLOR = color, AY1TITLE = AY1Title, $                   
+                     ; vector
+                     X = x, Y = y, Z = z, TOTAL = total, FRAME = frame, $
+                     DELAY = delay, $
+                     
+                     ; all additional keywords
+                    _EXTRA = e  
+
+common GraphC, graph, GraphN, Item
+
+names = ['Poor', 'Satisfactory', 'Good', 'Excellent']
+
+Graph[GraphN].names = PTR_NEW(/ALLOCATE_HEAP)
+*(graph[GraphN].names) =  names;
+
+graph[GraphN].Type = 'FGM_T' 
+graph[GraphN].DataN = 1
+graph[GraphN].SetCommonF[0] = 'vexmex_qual_com, "mex", "o"' 
+graph[GraphN].GetDataF[0] ='get_vexmex_qual, "mex", "o"'
+graph[GraphN].DeltaT = (Graph[GraphN].TotalTime + 60.0D0) <  18000.0D0 
+graph[GraphN].Ly.title = 'MEX ima-O Quality'
+graph[GraphN].AxisF = 'lineaxis, 0'
+graph[GraphN].PlotF = 'PlotImaQual'
+return
+end
diff --git a/amda_plus/amdalib/mex_o_qual_restr_.pro b/amda_plus/amdalib/mex_o_qual_restr_.pro
new file mode 100644
index 0000000..fc46a3a
--- /dev/null
+++ b/amda_plus/amdalib/mex_o_qual_restr_.pro
@@ -0,0 +1,46 @@
+function MEX_O_QUAL_RESTR_, StartTime, TimeInt, Time, RetSize, Sampling, close=close
+common GraphC, graph, GraphN
+common MEXOQUAL_COM, ID
+
+   FillValue = !Values.F_NAN 
+   if n_elements(ID) EQ 0 then ID = -1L
+   sampling = 192.0
+   Size = long(graph[GraphN].DeltaT/sampling)
+     
+   Bdata=fltarr(Size)
+   Time=dblarr(Size)
+ 
+    VI =   'mex:imaparam:restricted'
+    ParamName = "Quality_O";
+ 
+    RetSize = call_external(!PROJLIB + 'libParam.so', 'getLocalData', $
+                          ID, VI, ParamName, StartTime, TimeInt, Size, Time, Bdata)
+
+  if KEYWORD_SET(CLOSE) then begin
+      error = call_external(!DDLIB+'DD_idl.so','CloseID',ID)
+      ID = -1L
+   endif
+  
+   if (RetSize LE 0) then begin
+      Time = 0.D0
+      return, 0.0
+   endif
+   
+   Time=Time[0:Retsize-1]
+   Bdata=Bdata[0:Retsize-1]
+   
+   num_gap = where(finite(Bdata), Cntr)
+  
+   if Cntr le 0 then begin
+       Retsize = -999
+       Time = 0.D0
+       return, 0.0
+   endif
+   
+    Time=Time[num_gap]
+    Bdata=Bdata[num_gap];
+    Retsize=Cntr
+
+   
+return, Bdata
+end
\ No newline at end of file
diff --git a/amda_plus/amdalib/mex_o_qual_restr_init.pro b/amda_plus/amdalib/mex_o_qual_restr_init.pro
new file mode 100644
index 0000000..6564d47
--- /dev/null
+++ b/amda_plus/amdalib/mex_o_qual_restr_init.pro
@@ -0,0 +1,30 @@
+;--------------------------------------
+;
+;---------------------------------------
+
+pro mex_o_qual_restr_INIT,  $
+                     LOG = log, LIN = lin, PSYM = psym, COLOR = color, AY1TITLE = AY1Title, $                   
+                     ; vector
+                     X = x, Y = y, Z = z, TOTAL = total, FRAME = frame, $
+                     DELAY = delay, $
+                     
+                     ; all additional keywords
+                    _EXTRA = e  
+
+common GraphC, graph, GraphN, Item
+
+names = ['Poor', 'Satisfactory', 'Good', 'Excellent']
+
+Graph[GraphN].names = PTR_NEW(/ALLOCATE_HEAP)
+*(graph[GraphN].names) =  names;
+
+graph[GraphN].Type = 'FGM_T' 
+graph[GraphN].DataN = 1
+graph[GraphN].SetCommonF[0] = 'vexmex_qual_com, "mex", "o"' 
+graph[GraphN].GetDataF[0] ='get_vexmex_qual, "mex", "o", /RESTRICTED'
+graph[GraphN].DeltaT = (Graph[GraphN].TotalTime + 60.0D0) <  18000.0D0 
+graph[GraphN].Ly.title = 'MEX ima-O Quality'
+graph[GraphN].AxisF = 'lineaxis, 0'
+graph[GraphN].PlotF = 'PlotImaQual'
+return
+end
diff --git a/amda_plus/amdalib/mex_o_spec_.pro b/amda_plus/amdalib/mex_o_spec_.pro
new file mode 100644
index 0000000..cc03ac6
--- /dev/null
+++ b/amda_plus/amdalib/mex_o_spec_.pro
@@ -0,0 +1,49 @@
+function mex_o_spec_, StartTime, TimeInt, Time, RetSize, Sampling, close=close
+common GraphC, graph, GraphN
+common MEX_O_COM, ID, Energy
+
+   FillValue =  !Values.F_NAN
+   
+   if n_elements(ID) EQ 0 then  begin
+     ID = -1L
+     err = call_external(!PROJLIB + 'libplanetcom.so','SetMission_idl', 'mex');
+     
+     EnNum = 96
+     Energy = fltarr(EnNum)
+     err = call_external(!PROJLIB + 'imainfo.so','GetImaEner_idl', Energy, 0)
+     Energy =  temporary(Energy(where(Energy GT 0)));
+   endif
+   
+   sampling = 192.0;
+  
+   Size = long(graph[GraphN].DeltaT/sampling)
+
+   Time=dblarr(Size)
+   Spectra = fltarr(16, 96, 16, Size)
+   Product = 'HEAVYSPEC';
+   PaccArr = intarr(Size);
+   EnergyTab = intarr(Size);
+
+    RetSize = call_external(!PROJLIB + 'libImaExtra.so','GetImaExtra_idl',$
+                                ID, StartTime, TimeInt,$
+                                Product, Size, $
+                                Time, PaccArr, EnergyTab, Spectra)
+                                
+  
+   if KEYWORD_SET(CLOSE) then begin
+      error = call_external(!DDLIB+'DD_idl.so','CloseID',ID)
+      ID = -1L
+   endif                              
+   
+   if (RetSize LE 0) then begin
+      Time = 0.D0
+      return, replicate(0.0, 96)
+   endif
+
+   Spectra = temporary(Spectra[*,*,*,0:RetSize-1]);
+  
+   SpectraOut = total(total(Spectra,1),2);
+   Time=Time[0:Retsize-1]
+   
+return, SpectraOut
+end
\ No newline at end of file
diff --git a/amda_plus/amdalib/mex_o_spec_init.pro b/amda_plus/amdalib/mex_o_spec_init.pro
new file mode 100644
index 0000000..44395a1
--- /dev/null
+++ b/amda_plus/amdalib/mex_o_spec_init.pro
@@ -0,0 +1,74 @@
+;====================================================
+;              VEX_h_spec_init
+;                 1.0
+;   Init module of "h_spec" object
+;   HPSPEC from IMAEXTRA product VEX
+;
+;              18 Mars 2009
+;----------------------------------------------------
+
+pro mex_o_spec_init, ANODE = Anode, STOP_ANODE = Stop_Anode, elevationAsTime = elevationAsTime, $
+                     LOG = log, LIN = lin, PSYM = psym, COLOR = color, AY1TITLE = AY1Title, $
+                     ; spectra
+                     MINCOUNT = minCount, MAXCOUNT = maxCount, BACKGRDCHAN = backgrdChan, BACKGRDVAL = backgrdVal, $
+                     CHANNEL = channel, Energy = energy, ENERGYMIN = energymin, ENERGYMAX =  energymax, $
+                     
+                     DELAY = delay, $                      
+                     ; all additional keywords
+                    _EXTRA = e 
+
+  common Request, List, StartTime, TimeInt
+  common GraphC, graph, GraphN, Item
+
+  AzMin = 0
+  AzMax = 15
+
+   elevation = 1;
+   if (KEYWORD_SET(elevationAsTime)) then elevation = 0;
+
+  if (KEYWORD_SET(ANODE)) then begin
+    AzMin = Anode
+   if (KEYWORD_SET(STOP_ANODE)) then AzMax = Stop_Anode $
+   else AzMax = -1;
+  endif
+  
+  
+  graph(GraphN).Type = 'IMA_T'
+  graph(GraphN).DataN = 1
+  graph(GraphN).SetCommonF(0) = 'ima_o_spec_com, "mex"'
+  graph(GraphN).GetDataF(0) =   'get_ima_o_spec, "mex"';
+  graph[GraphN].DeltaT = (Graph[GraphN].TotalTime + 60.0D0) < 36100.0D0
+
+
+EnMin = 1.0;
+EnMax = 25000.0;
+
+energyTitle = '';
+
+
+if (KEYWORD_SET(ENERGYMIN)) then begin
+   EnMin = energymin;
+   EnMax =  energymax;
+   energyTitle = energymin eq energymax ? '!C E ' + string(energymin,format='(f7.1)') + 'eV' : '!C E ' + string(energymin,format='(f7.1)') + '-'+  string(energymax,format='(f7.1)') + 'eV'; 
+    
+    options = '"mex", ' + string(AzMin) +','+string(AzMax) +','+string(EnMin) +','+string(EnMax)+ ',' + string(elevation);
+
+    angleTitle =   AzMax GT AzMin ?  'MEX IMA Heavy An'+ string(AzMin,format='(i2.2)') +'-'+ string(AzMax,format='(i2.2)') : 'MEX IMA Heavy An'+ string(AzMin,format='(i2.2)');
+    
+    graph[GraphN].AxisF =  KEYWORD_SET(lin) ?  'lineaxis, 0' : 'logaxis';
+    graph[GraphN].Ly.title =  'MEX Heavy Cnts ' +  angleTitle + energyTitle
+					  
+    graph[GraphN].PlotF = 'imacntplot,' + options
+endif else begin
+    options = '"mex",'+string(AzMin) +','+string(AzMax) + ',' + string(elevation);
+    
+    graph[GraphN].names = PTR_NEW(/ALLOCATE_HEAP)
+    *(graph[GraphN].names) = 'log Counts'
+    
+    
+    graph[GraphN].Ly.title = AzMax GT AzMin ?  'MEX IMA Heavy An'+ string(AzMin,format='(i2.2)') +'-'+ string(AzMax,format='(i2.2)') +'!CE/Q, eV' : 'MEX IMA Heavy An'+ string(AzMin,format='(i2.2)') + '!C E/Q, eV'
+    graph[GraphN].PlotF =  'imaspecplot,' + options
+endelse
+return
+end
+;------------------------------------------------------------
diff --git a/amda_plus/amdalib/mex_o_spec_restr_.pro b/amda_plus/amdalib/mex_o_spec_restr_.pro
new file mode 100644
index 0000000..17e9268
--- /dev/null
+++ b/amda_plus/amdalib/mex_o_spec_restr_.pro
@@ -0,0 +1,49 @@
+function mex_o_spec_restr_, StartTime, TimeInt, Time, RetSize, Sampling, close=close
+common GraphC, graph, GraphN
+common MEX_O_COM, ID, Energy
+
+   FillValue =  !Values.F_NAN
+   
+   if n_elements(ID) EQ 0 then  begin
+     ID = -1L
+     err = call_external(!PROJLIB + 'libplanetcom.so','SetMission_idl', 'mex');
+     err = call_external(!PROJLIB + 'libplanetcom.so','SetRestriction');
+     EnNum = 96
+     Energy = fltarr(EnNum)
+     err = call_external(!PROJLIB + 'imainfo.so','GetImaEner_idl', Energy, 0)
+     Energy =  temporary(Energy(where(Energy GT 0)));
+   endif
+   
+   sampling = 192.0;
+  
+   Size = long(graph[GraphN].DeltaT/sampling)
+
+   Time=dblarr(Size)
+   Spectra = fltarr(16, 96, 16, Size)
+   Product = 'HEAVYSPEC';
+   PaccArr = intarr(Size);
+   EnergyTab = intarr(Size);
+
+    RetSize = call_external(!PROJLIB + 'libImaExtra.so','GetImaExtra_idl',$
+                                ID, StartTime, TimeInt,$
+                                Product, Size, $
+                                Time, PaccArr, EnergyTab, Spectra)
+                                
+  
+   if KEYWORD_SET(CLOSE) then begin
+      error = call_external(!DDLIB+'DD_idl.so','CloseID',ID)
+      ID = -1L
+   endif                              
+   
+   if (RetSize LE 0) then begin
+      Time = 0.D0
+      return, replicate(0.0, 96)
+   endif
+
+   Spectra = temporary(Spectra[*,*,*,0:RetSize-1]);
+  
+   SpectraOut = total(total(Spectra,1),2);
+   Time=Time[0:Retsize-1]
+   
+return, SpectraOut
+end
\ No newline at end of file
diff --git a/amda_plus/amdalib/mex_o_spec_restr_init.pro b/amda_plus/amdalib/mex_o_spec_restr_init.pro
new file mode 100644
index 0000000..794acaa
--- /dev/null
+++ b/amda_plus/amdalib/mex_o_spec_restr_init.pro
@@ -0,0 +1,74 @@
+;====================================================
+;              VEX_h_spec_init
+;                 1.0
+;   Init module of "h_spec" object
+;   HPSPEC from IMAEXTRA product VEX
+;
+;              18 Mars 2009
+;----------------------------------------------------
+
+pro mex_o_spec_restr_init, ANODE = Anode, STOP_ANODE = Stop_Anode, elevationAsTime = elevationAsTime, $
+                     LOG = log, LIN = lin, PSYM = psym, COLOR = color, AY1TITLE = AY1Title, $
+                     ; spectra
+                     MINCOUNT = minCount, MAXCOUNT = maxCount, BACKGRDCHAN = backgrdChan, BACKGRDVAL = backgrdVal, $
+                     CHANNEL = channel, Energy = energy, ENERGYMIN = energymin, ENERGYMAX =  energymax, $
+                     
+                     DELAY = delay, $                      
+                     ; all additional keywords
+                    _EXTRA = e 
+
+  common Request, List, StartTime, TimeInt
+  common GraphC, graph, GraphN, Item
+
+  AzMin = 0
+  AzMax = 15
+
+   elevation = 1;
+   if (KEYWORD_SET(elevationAsTime)) then elevation = 0;
+
+  if (KEYWORD_SET(ANODE)) then begin
+    AzMin = Anode
+   if (KEYWORD_SET(STOP_ANODE)) then AzMax = Stop_Anode $
+   else AzMax = -1;
+  endif
+  
+  
+  graph(GraphN).Type = 'IMA_T'
+  graph(GraphN).DataN = 1
+  graph(GraphN).SetCommonF(0) = 'ima_o_spec_com, "mex"'
+  graph(GraphN).GetDataF(0) =   'get_ima_o_spec, "mex", /RESTRICTED';
+  graph[GraphN].DeltaT = (Graph[GraphN].TotalTime + 60.0D0) < 36100.0D0
+
+
+EnMin = 1.0;
+EnMax = 25000.0;
+
+energyTitle = '';
+
+
+if (KEYWORD_SET(ENERGYMIN)) then begin
+   EnMin = energymin;
+   EnMax =  energymax;
+   energyTitle = energymin eq energymax ? '!C E ' + string(energymin,format='(f7.1)') + 'eV' : '!C E ' + string(energymin,format='(f7.1)') + '-'+  string(energymax,format='(f7.1)') + 'eV'; 
+    
+    options = '"mex", ' + string(AzMin) +','+string(AzMax) +','+string(EnMin) +','+string(EnMax) + ',' + string(elevation);
+
+    angleTitle =   AzMax GT AzMin ?  'MEX IMA Heavy An'+ string(AzMin,format='(i2.2)') +'-'+ string(AzMax,format='(i2.2)') : 'MEX IMA Heavy An'+ string(AzMin,format='(i2.2)');
+    
+    graph[GraphN].AxisF =  KEYWORD_SET(lin) ?  'lineaxis, 0' : 'logaxis';
+    graph[GraphN].Ly.title =  'MEX Heavy Cnts ' +  angleTitle + energyTitle
+					  
+    graph[GraphN].PlotF = 'imacntplot,' + options
+endif else begin
+    options = '"mex",'+string(AzMin) +','+string(AzMax) + ',' + string(elevation);
+    
+    graph[GraphN].names = PTR_NEW(/ALLOCATE_HEAP)
+    *(graph[GraphN].names) = 'log Counts'
+    
+    
+    graph[GraphN].Ly.title = AzMax GT AzMin ?  'MEX IMA Heavy An'+ string(AzMin,format='(i2.2)') +'-'+ string(AzMax,format='(i2.2)') +'!CE/Q, eV' : 'MEX IMA Heavy An'+ string(AzMin,format='(i2.2)') + '!C E/Q, eV'
+    graph[GraphN].PlotF =  'imaspecplot,' + options
+endelse
+return
+end
+;------------------------------------------------------------
diff --git a/amda_plus/amdalib/mex_o_temp_.pro b/amda_plus/amdalib/mex_o_temp_.pro
new file mode 100644
index 0000000..dd28c24
--- /dev/null
+++ b/amda_plus/amdalib/mex_o_temp_.pro
@@ -0,0 +1,50 @@
+function MEX_O_TEMP_, StartTime, TimeInt, Time, RetSize, Sampling, close=close
+common GraphC, graph, GraphN
+common MEXODTEMP_COM, ID
+
+   FillValue = !Values.F_NAN 
+   if n_elements(ID) EQ 0 then ID = -1L
+   sampling = 192.0
+   Size = long(graph[GraphN].DeltaT/sampling)
+     
+   Bdata=fltarr(3,Size)
+   Time=dblarr(Size)
+   
+   Mission ="mex";
+ 
+    VI = Mission + ':ima:param'
+    ParamName = "Temperature_O";
+ 
+    RetSize = call_external(!PROJLIB + 'libParam.so', 'getLocalData', $
+                          ID, VI, ParamName, StartTime, TimeInt, Size, Time, Bdata)
+                          
+  
+   if KEYWORD_SET(CLOSE) then begin
+      error = call_external(!DDLIB+'DD_idl.so','CloseID',ID)
+      ID = -1L
+   endif                        
+  
+   if (RetSize LE 0) then begin
+      Time = 0.D0
+      return, 0.0
+   endif
+   
+   Time=Time[0:Retsize-1]
+   Bdata=Bdata[*,0:Retsize-1]
+   
+   num_gap = where(finite(Bdata[0,*]), Cntr)
+  
+   if Cntr le 0 then begin
+       Retsize = -999
+       Time = 0.D0
+       return, 0.0
+   endif
+   
+    Time=Time[num_gap]
+    Bdata=Bdata[*,num_gap];
+    Retsize=Cntr
+    B = fltarr(Retsize)
+    
+    for i = 0, Retsize - 1 do B[i] = min(Bdata[*,i])
+return, B
+end
\ No newline at end of file
diff --git a/amda_plus/amdalib/mex_o_temp_init.pro b/amda_plus/amdalib/mex_o_temp_init.pro
new file mode 100644
index 0000000..129f88e
--- /dev/null
+++ b/amda_plus/amdalib/mex_o_temp_init.pro
@@ -0,0 +1,34 @@
+;--------------------------------------
+;
+;---------------------------------------
+
+pro mex_o_temp_INIT, $
+                     LOG = log, LIN = lin, PSYM = psym, COLOR = color, AY1TITLE = AY1Title, $                   
+                     ; vector
+                     X = x, Y = y, Z = z, TOTAL = total, FRAME = frame, $
+                     DELAY = delay, $
+                     
+                     ; all additional keywords
+                    _EXTRA = e
+
+common GraphC, graph, GraphN, Item
+
+pen = !dnc-1  & symbol = -3;
+ 
+ if (KEYWORD_SET(COLOR)) then pen = color; 
+ if (KEYWORD_SET(PSYM)) then symbol = psym;     
+     
+ 
+graph[GraphN].Type = 'FGM_T' 
+graph[GraphN].DataN = 1
+graph[GraphN].SetCommonF[0] = 'vexmex_temp_com, "mex", "o"' 
+graph[GraphN].GetDataF[0] ='get_vexmex_temp, "mex", "o"'
+graph[GraphN].DeltaT = (Graph[GraphN].TotalTime + 60.0D0) <  18000.0D0 
+graph[GraphN].Ly.title = 'MEX ima-O T VSO, eV'
+graph[GraphN].PlotF = 'PlotScal_New, 0,' + string(pen)  + ',' + string(symbol);    
+if (KEYWORD_SET(LOG)) then AxisF = 'logaxis' $
+else AxisF = 'lineaxis, ' + string(Graph[GraphN].TotalTime);
+graph[GraphN].AxisF = AxisF;
+
+return
+end
diff --git a/amda_plus/amdalib/mex_o_temp_restr_.pro b/amda_plus/amdalib/mex_o_temp_restr_.pro
new file mode 100644
index 0000000..f56b239
--- /dev/null
+++ b/amda_plus/amdalib/mex_o_temp_restr_.pro
@@ -0,0 +1,48 @@
+function MEX_O_TEMP_RESTR_, StartTime, TimeInt, Time, RetSize, Sampling, close=close
+common GraphC, graph, GraphN
+common MEXODTEMP_COM, ID
+
+   FillValue = !Values.F_NAN 
+   if n_elements(ID) EQ 0 then ID = -1L
+   sampling = 192.0
+   Size = long(graph[GraphN].DeltaT/sampling)
+     
+   Bdata=fltarr(3,Size)
+   Time=dblarr(Size)
+   
+    VI =  'mex:imaparam:restricted'
+    ParamName = "Temperature_O";
+ 
+    RetSize = call_external(!PROJLIB + 'libParam.so', 'getLocalData', $
+                          ID, VI, ParamName, StartTime, TimeInt, Size, Time, Bdata)
+                          
+  
+   if KEYWORD_SET(CLOSE) then begin
+      error = call_external(!DDLIB+'DD_idl.so','CloseID',ID)
+      ID = -1L
+   endif                        
+  
+   if (RetSize LE 0) then begin
+      Time = 0.D0
+      return, 0.0
+   endif
+   
+   Time=Time[0:Retsize-1]
+   Bdata=Bdata[*,0:Retsize-1]
+   
+   num_gap = where(finite(Bdata[0,*]), Cntr)
+  
+   if Cntr le 0 then begin
+       Retsize = -999
+       Time = 0.D0
+       return, 0.0
+   endif
+   
+    Time=Time[num_gap]
+    Bdata=Bdata[*,num_gap];
+    Retsize=Cntr
+    B = fltarr(Retsize)
+    
+    for i = 0, Retsize - 1 do B[i] = min(Bdata[*,i])
+return, B
+end
\ No newline at end of file
diff --git a/amda_plus/amdalib/mex_o_temp_restr_init.pro b/amda_plus/amdalib/mex_o_temp_restr_init.pro
new file mode 100644
index 0000000..28e6d69
--- /dev/null
+++ b/amda_plus/amdalib/mex_o_temp_restr_init.pro
@@ -0,0 +1,32 @@
+;--------------------------------------
+;
+;---------------------------------------
+
+pro mex_o_temp_RESTR_INIT, $
+                     LOG = log, LIN = lin, PSYM = psym, COLOR = color, AY1TITLE = AY1Title, $                   
+                     ; vector
+                     X = x, Y = y, Z = z, TOTAL = total, FRAME = frame, $
+                     DELAY = delay, $
+                     
+                     ; all additional keywords
+                    _EXTRA = e
+
+common GraphC, graph, GraphN, Item
+
+pen = !dnc-1  & symbol = -3;
+ 
+ if (KEYWORD_SET(COLOR)) then pen = color; 
+ if (KEYWORD_SET(PSYM)) then symbol = psym;     
+     
+ 
+graph[GraphN].Type = 'FGM_T' 
+graph[GraphN].DataN = 1
+graph[GraphN].SetCommonF[0] = 'vexmex_temp_com, "mex", "o"' 
+graph[GraphN].GetDataF[0] ='get_vexmex_temp, "mex", "o", /RESTRICTED'
+graph[GraphN].DeltaT = (Graph[GraphN].TotalTime + 60.0D0) <  18000.0D0 
+graph[GraphN].Ly.title = 'MEX ima-O T VSO, eV'
+graph[GraphN].PlotF = 'PlotScal_New, 0,' + string(pen)  + ',' + string(symbol);    
+graph[GraphN].AxisF = 'lineaxis,' + string(graph[graphN].TotalTime)
+
+return
+end
diff --git a/amda_plus/amdalib/mex_o_vel_.pro b/amda_plus/amdalib/mex_o_vel_.pro
new file mode 100644
index 0000000..ed9a3ba
--- /dev/null
+++ b/amda_plus/amdalib/mex_o_vel_.pro
@@ -0,0 +1,48 @@
+function MEX_O_VEL_, StartTime, TimeInt, Time, RetSize, Sampling, close=close
+common GraphC, graph, GraphN
+common MEXODVEL_COM, ID
+
+   FillValue = !Values.F_NAN 
+   if n_elements(ID) EQ 0 then ID = -1L
+   sampling = 192.0
+   Size = long(graph[GraphN].DeltaT/sampling)
+     
+   Bdata=fltarr(3,Size)
+   Time=dblarr(Size)
+   
+   Mission ="mex";
+ 
+    VI = Mission + ':ima:param'
+    ParamName = "Velocity_O";
+ 
+    RetSize = call_external(!PROJLIB + 'libParam.so', 'getLocalData', $
+                          ID, VI, ParamName, StartTime, TimeInt, Size, Time, Bdata)
+                          
+   if KEYWORD_SET(CLOSE) then begin
+      error = call_external(!DDLIB+'DD_idl.so','CloseID',ID)
+      ID = -1L
+   endif                       
+  
+   if (RetSize LE 0) then begin
+      Time = 0.D0
+      return, [0.0,0.0,0.0]
+   endif
+   
+   Time=Time[0:Retsize-1]
+   Bdata=Bdata[*,0:Retsize-1]
+   
+   num_gap = where(finite(Bdata[0,*]), Cntr)
+  
+   if Cntr le 0 then begin
+       Retsize = -999
+       Time = 0.D0
+       return, [0.0,0.0,0.0] 
+   endif
+   
+    Time=Time[num_gap]
+    Bdata=Bdata[*,num_gap];
+    Retsize=Cntr
+
+    
+return, Bdata
+end
\ No newline at end of file
diff --git a/amda_plus/amdalib/mex_o_vel_0_init.pro b/amda_plus/amdalib/mex_o_vel_0_init.pro
new file mode 100644
index 0000000..3a22284
--- /dev/null
+++ b/amda_plus/amdalib/mex_o_vel_0_init.pro
@@ -0,0 +1,17 @@
+pro mex_o_vel_0_init, LOG = log, LIN = lin, PSYM = psym, COLOR = color, AY1TITLE = AY1Title, $                   
+                     ; vector
+                     X = x, Y = y, Z = z, TOTAL = total, FRAME = frame, $
+                     DELAY = delay, $                     
+                     ; all additional keywords
+                    _EXTRA = e
+ 
+
+  cmd = 'mex_o_vel_init, /X' 
+ 
+  if (KEYWORD_SET(PSYM)) then cmd += ", PSYM=" + string(psym)
+  if (KEYWORD_SET(COLOR)) then cmd += ", COLOR=" + string(color)
+  if (KEYWORD_SET(AY1TITLE)) then cmd += ", AY1TITLE=" + string(AY1Title)
+  R = execute(cmd) 
+
+return
+end 
diff --git a/amda_plus/amdalib/mex_o_vel_1_init.pro b/amda_plus/amdalib/mex_o_vel_1_init.pro
new file mode 100644
index 0000000..3acc275
--- /dev/null
+++ b/amda_plus/amdalib/mex_o_vel_1_init.pro
@@ -0,0 +1,17 @@
+pro mex_o_vel_1_init, LOG = log, LIN = lin, PSYM = psym, COLOR = color, AY1TITLE = AY1Title, $                   
+                     ; vector
+                     X = x, Y = y, Z = z, TOTAL = total, FRAME = frame, $
+                     DELAY = delay, $                     
+                     ; all additional keywords
+                    _EXTRA = e
+ 
+
+  cmd = 'mex_o_vel_init, /Y' 
+ 
+  if (KEYWORD_SET(PSYM)) then cmd += ", PSYM=" + string(psym)
+  if (KEYWORD_SET(COLOR))  then cmd += ", COLOR=" + string(color)
+  if (KEYWORD_SET(AY1TITLE))  then cmd += ", AY1TITLE=" + string(AY1Title)
+  R = execute(cmd) 
+
+return
+end 
diff --git a/amda_plus/amdalib/mex_o_vel_2_init.pro b/amda_plus/amdalib/mex_o_vel_2_init.pro
new file mode 100644
index 0000000..10176fb
--- /dev/null
+++ b/amda_plus/amdalib/mex_o_vel_2_init.pro
@@ -0,0 +1,17 @@
+pro mex_o_vel_restr_2_init, LOG = log, LIN = lin, PSYM = psym, COLOR = color, AY1TITLE = AY1Title, $                   
+                     ; vector
+                     X = x, Y = y, Z = z, TOTAL = total, FRAME = frame, $
+                     DELAY = delay, $                     
+                     ; all additional keywords
+                    _EXTRA = e
+ 
+
+  cmd = 'mex_o_vel_restr_init, /Z' 
+ 
+  if (KEYWORD_SET(PSYM)) then cmd += ", PSYM=" + string(psym)
+  if (KEYWORD_SET(COLOR)) then cmd += ", COLOR=" +  string(color)
+  if (KEYWORD_SET(AY1TITLE)) then cmd += ", AY1TITLE=" +  string(AY1Title)
+  R = execute(cmd) 
+
+return
+end 
diff --git a/amda_plus/amdalib/mex_o_vel_init.pro b/amda_plus/amdalib/mex_o_vel_init.pro
new file mode 100644
index 0000000..4d5e315
--- /dev/null
+++ b/amda_plus/amdalib/mex_o_vel_init.pro
@@ -0,0 +1,47 @@
+;--------------------------------------
+;
+;---------------------------------------
+
+pro mex_o_vel_INIT, $
+		     LOG = log, LIN = lin, PSYM = psym, COLOR = color, AY1TITLE = AY1Title, $                   
+                     ; vector
+                     X = x, Y = y, Z = z, TOTAL = total, FRAME = frame, $
+                     DELAY = delay, $
+                     
+                     ; all additional keywords
+                    _EXTRA = e
+
+common GraphC, graph, GraphN, Item
+
+names = ['V!DX', 'V!DY', 'V!DZ', 'V']
+frame = 'MSO'
+
+
+pen = !dnc-1 & comp = 100 & symbol = -3;
+ 
+ if (KEYWORD_SET(COLOR)) then pen = color; 
+ if (KEYWORD_SET(PSYM)) then symbol = psym;   
+  
+   
+   if KEYWORD_SET(X) then comp = 0
+   if KEYWORD_SET(Y) then comp = 1
+   if KEYWORD_SET(Z) then comp = 2
+   if KEYWORD_SET(TOT) then comp = 3
+
+yTitle =  'MEX ima-Heavy V MSO, km/s';
+if (KEYWORD_SET(AY1TITLE)) then graph[GraphN].Ly.title = AY1Title $
+else graph[GraphN].Ly.title = yTitle 
+
+graph[GraphN].names = PTR_NEW(/ALLOCATE_HEAP)
+graph[GraphN].Type = 'FGM_T' 
+graph[GraphN].DataN = 1
+graph[GraphN].SetCommonF[0] = 'vexmex_vel_com, "mex", "o"' 
+graph[GraphN].GetDataF[0] ='get_vexmex_vel, "mex", "o"'
+graph[GraphN].DeltaT = (Graph[GraphN].TotalTime + 60.0D0) <  18000.0D0 
+
+*(graph[GraphN].names) = (comp le 3) ? names : names[0:2]
+graph[GraphN].PlotF = comp eq 100 ? 'PlotVec': 'PlotVec_Comp_New, ' + string(comp) +','+ string(pen ) +','+ string(symbol)
+graph[GraphN].AxisF = 'lineaxis,' + string(graph[graphN].TotalTime)
+ 
+return
+end
diff --git a/amda_plus/amdalib/mex_o_vel_restr_.pro b/amda_plus/amdalib/mex_o_vel_restr_.pro
new file mode 100644
index 0000000..5250e08
--- /dev/null
+++ b/amda_plus/amdalib/mex_o_vel_restr_.pro
@@ -0,0 +1,46 @@
+function MEX_O_VEL_RESTR_, StartTime, TimeInt, Time, RetSize, Sampling, close=close
+common GraphC, graph, GraphN
+common MEXODVEL_COM, ID
+
+   FillValue = !Values.F_NAN 
+   if n_elements(ID) EQ 0 then ID = -1L
+   sampling = 192.0
+   Size = long(graph[GraphN].DeltaT/sampling)
+     
+   Bdata=fltarr(3,Size)
+   Time=dblarr(Size)
+   
+    VI = 'mex:imaparam:restricted'
+    ParamName = "Velocity_O";
+ 
+    RetSize = call_external(!PROJLIB + 'libParam.so', 'getLocalData', $
+                          ID, VI, ParamName, StartTime, TimeInt, Size, Time, Bdata)
+                          
+   if KEYWORD_SET(CLOSE) then begin
+      error = call_external(!DDLIB+'DD_idl.so','CloseID',ID)
+      ID = -1L
+   endif                       
+  
+   if (RetSize LE 0) then begin
+      Time = 0.D0
+      return, [0.0,0.0,0.0]
+   endif
+   
+   Time=Time[0:Retsize-1]
+   Bdata=Bdata[*,0:Retsize-1]
+   
+   num_gap = where(finite(Bdata[0,*]), Cntr)
+  
+   if Cntr le 0 then begin
+       Retsize = -999
+       Time = 0.D0
+       return, [0.0,0.0,0.0] 
+   endif
+   
+    Time=Time[num_gap]
+    Bdata=Bdata[*,num_gap];
+    Retsize=Cntr
+
+    
+return, Bdata
+end
\ No newline at end of file
diff --git a/amda_plus/amdalib/mex_o_vel_restr_0_init.pro b/amda_plus/amdalib/mex_o_vel_restr_0_init.pro
new file mode 100644
index 0000000..6604b84
--- /dev/null
+++ b/amda_plus/amdalib/mex_o_vel_restr_0_init.pro
@@ -0,0 +1,17 @@
+pro mex_o_vel_restr_0_init, LOG = log, LIN = lin, PSYM = psym, COLOR = color, AY1TITLE = AY1Title, $                   
+                     ; vector
+                     X = x, Y = y, Z = z, TOTAL = total, FRAME = frame, $
+                     DELAY = delay, $                     
+                     ; all additional keywords
+                    _EXTRA = e
+ 
+
+  cmd = 'mex_o_vel_restr_init, /X' 
+ 
+  if (KEYWORD_SET(PSYM)) then cmd += ", PSYM=" + string(psym)
+  if (KEYWORD_SET(COLOR)) then cmd += ", COLOR=" + string(color)
+  if (KEYWORD_SET(AY1TITLE)) then cmd += ", AY1TITLE=" + string(AY1Title)
+  R = execute(cmd) 
+
+return
+end 
diff --git a/amda_plus/amdalib/mex_o_vel_restr_1_init.pro b/amda_plus/amdalib/mex_o_vel_restr_1_init.pro
new file mode 100644
index 0000000..ba44f96
--- /dev/null
+++ b/amda_plus/amdalib/mex_o_vel_restr_1_init.pro
@@ -0,0 +1,17 @@
+pro mex_o_vel_restr_1_init, LOG = log, LIN = lin, PSYM = psym, COLOR = color, AY1TITLE = AY1Title, $                   
+                     ; vector
+                     X = x, Y = y, Z = z, TOTAL = total, FRAME = frame, $
+                     DELAY = delay, $                     
+                     ; all additional keywords
+                    _EXTRA = e
+ 
+
+  cmd = 'mex_o_vel_restr_init, /Y' 
+ 
+  if (KEYWORD_SET(PSYM)) then cmd += ", PSYM=" + string(psym)
+  if (KEYWORD_SET(COLOR))  then cmd += ", COLOR=" + string(color)
+  if (KEYWORD_SET(AY1TITLE))  then cmd += ", AY1TITLE=" + string(AY1Title)
+  R = execute(cmd) 
+
+return
+end 
diff --git a/amda_plus/amdalib/mex_o_vel_restr_init.pro b/amda_plus/amdalib/mex_o_vel_restr_init.pro
new file mode 100644
index 0000000..0b4b0cd
--- /dev/null
+++ b/amda_plus/amdalib/mex_o_vel_restr_init.pro
@@ -0,0 +1,47 @@
+;--------------------------------------
+;
+;---------------------------------------
+
+pro mex_o_vel_restr_INIT, $
+		     LOG = log, LIN = lin, PSYM = psym, COLOR = color, AY1TITLE = AY1Title, $                   
+                     ; vector
+                     X = x, Y = y, Z = z, TOTAL = total, FRAME = frame, $
+                     DELAY = delay, $
+                     
+                     ; all additional keywords
+                    _EXTRA = e
+
+common GraphC, graph, GraphN, Item
+
+names = ['V!DX', 'V!DY', 'V!DZ', 'V']
+frame = 'MSO'
+
+
+pen = !dnc-1 & comp = 100 & symbol = -3;
+ 
+ if (KEYWORD_SET(COLOR)) then pen = color; 
+ if (KEYWORD_SET(PSYM)) then symbol = psym;   
+  
+   
+   if KEYWORD_SET(X) then comp = 0
+   if KEYWORD_SET(Y) then comp = 1
+   if KEYWORD_SET(Z) then comp = 2
+   if KEYWORD_SET(TOT) then comp = 3
+
+yTitle =  'MEX ima-Heavy V MSO, km/s';
+if (KEYWORD_SET(AY1TITLE)) then graph[GraphN].Ly.title = AY1Title $
+else graph[GraphN].Ly.title = yTitle 
+
+graph[GraphN].names = PTR_NEW(/ALLOCATE_HEAP)
+graph[GraphN].Type = 'FGM_T' 
+graph[GraphN].DataN = 1
+graph[GraphN].SetCommonF[0] = 'vexmex_vel_com, "mex", "o"' 
+graph[GraphN].GetDataF[0] ='get_vexmex_vel, "mex", "o", /RESTRICTED'
+graph[GraphN].DeltaT = (Graph[GraphN].TotalTime + 60.0D0) <  18000.0D0 
+
+*(graph[GraphN].names) = (comp le 3) ? names : names[0:2]
+graph[GraphN].PlotF = comp eq 100 ? 'PlotVec': 'PlotVec_Comp_New, ' + string(comp) +','+ string(pen ) +','+ string(symbol)
+graph[GraphN].AxisF = 'lineaxis,' + string(graph[graphN].TotalTime)
+ 
+return
+end
diff --git a/amda_plus/amdalib/mex_scan_.pro b/amda_plus/amdalib/mex_scan_.pro
new file mode 100644
index 0000000..23b113d
--- /dev/null
+++ b/amda_plus/amdalib/mex_scan_.pro
@@ -0,0 +1,48 @@
+function MEX_SCAN_, StartTime, TimeInt, Time, RetSize, Sampling, close=close
+common GraphC, graph, GraphN
+common MEXSCAN_COM, ID
+
+   FillValue = !Values.F_NAN 
+   if n_elements(ID) EQ 0 then ID = -1L
+   sampling = 192.0
+   Size = long(graph[GraphN].DeltaT/sampling)
+     
+   Bdata=intarr(Size)
+   Time=dblarr(Size)
+   
+   Mission ="mex";
+ 
+    VI = Mission + ':ima:param'
+    ParamName = "ScanFlag";
+ 
+    RetSize = call_external(!PROJLIB + 'libParam.so', 'getLocalData', $
+                          ID, VI, ParamName, StartTime, TimeInt, Size, Time, Bdata)
+
+  if KEYWORD_SET(CLOSE) then begin
+      error = call_external(!DDLIB+'DD_idl.so','CloseID',ID)
+      ID = -1L
+   endif
+  
+   if (RetSize LE 0) then begin
+      Time = 0.D0
+      return, 0.0
+   endif
+   
+   Time=Time[0:Retsize-1]
+   Bdata=Bdata[0:Retsize-1]
+   
+   num_gap = where(finite(Bdata), Cntr)
+  
+   if Cntr le 0 then begin
+       Retsize = -999
+       Time = 0.D0
+       return, 0.0
+   endif
+   
+    Time=Time[num_gap]
+    Bdata=Bdata[num_gap];
+    Retsize=Cntr
+
+   
+return, Bdata
+end
\ No newline at end of file
diff --git a/amda_plus/amdalib/mex_scan_init.pro b/amda_plus/amdalib/mex_scan_init.pro
new file mode 100644
index 0000000..7d86c4a
--- /dev/null
+++ b/amda_plus/amdalib/mex_scan_init.pro
@@ -0,0 +1,29 @@
+;--------------------------------------
+;
+;---------------------------------------
+
+pro mex_scan_INIT,  $
+                     LOG = log, LIN = lin, PSYM = psym, COLOR = color, AY1TITLE = AY1Title, $                   
+                     ; vector
+                     X = x, Y = y, Z = z, TOTAL = total, FRAME = frame, $
+                     DELAY = delay, $
+                     
+                     ; all additional keywords
+                    _EXTRA = e 
+
+common GraphC, graph, GraphN, Item
+ pen = !dnc-1  & symbol = -3;
+ 
+ if (KEYWORD_SET(COLOR)) then pen = color; 
+ if (KEYWORD_SET(PSYM)) then symbol = psym;    
+
+graph[GraphN].Type = 'FGM_T' 
+graph[GraphN].DataN = 1
+graph[GraphN].SetCommonF[0] = 'vexmex_scan_com, "mex"' 
+graph[GraphN].GetDataF[0] ='get_vexmex_scan, "mex"'
+graph[GraphN].DeltaT = (Graph[GraphN].TotalTime + 60.0D0) <  86400.0D0 
+graph[GraphN].Ly.title = 'MEX Scan Flag'
+graph[GraphN].AxisF = 'lineaxis, 0'
+graph[GraphN].PlotF = 'PlotScal_New, 0,' + string(pen)  + ',' + string(symbol);  
+return
+end
diff --git a/amda_plus/amdalib/mex_scan_restr_.pro b/amda_plus/amdalib/mex_scan_restr_.pro
new file mode 100644
index 0000000..3c256f5
--- /dev/null
+++ b/amda_plus/amdalib/mex_scan_restr_.pro
@@ -0,0 +1,46 @@
+function MEX_SCAN_RESTR_, StartTime, TimeInt, Time, RetSize, Sampling, close=close
+common GraphC, graph, GraphN
+common MEXSCAN_COM, ID
+
+   FillValue = !Values.F_NAN 
+   if n_elements(ID) EQ 0 then ID = -1L
+   sampling = 192.0
+   Size = long(graph[GraphN].DeltaT/sampling)
+     
+   Bdata=intarr(Size)
+   Time=dblarr(Size)
+ 
+    VI = 'mex:imaparam:restricted'
+    ParamName = "ScanFlag";
+ 
+    RetSize = call_external(!PROJLIB + 'libParam.so', 'getLocalData', $
+                          ID, VI, ParamName, StartTime, TimeInt, Size, Time, Bdata)
+
+  if KEYWORD_SET(CLOSE) then begin
+      error = call_external(!DDLIB+'DD_idl.so','CloseID',ID)
+      ID = -1L
+   endif
+  
+   if (RetSize LE 0) then begin
+      Time = 0.D0
+      return, 0.0
+   endif
+   
+   Time=Time[0:Retsize-1]
+   Bdata=Bdata[0:Retsize-1]
+   
+   num_gap = where(finite(Bdata), Cntr)
+  
+   if Cntr le 0 then begin
+       Retsize = -999
+       Time = 0.D0
+       return, 0.0
+   endif
+   
+    Time=Time[num_gap]
+    Bdata=Bdata[num_gap];
+    Retsize=Cntr
+
+   
+return, Bdata
+end
\ No newline at end of file
diff --git a/amda_plus/amdalib/mex_scan_restr_init.pro b/amda_plus/amdalib/mex_scan_restr_init.pro
new file mode 100644
index 0000000..72d4fc3
--- /dev/null
+++ b/amda_plus/amdalib/mex_scan_restr_init.pro
@@ -0,0 +1,29 @@
+;--------------------------------------
+;
+;---------------------------------------
+
+pro mex_scan_RESTR_INIT,  $
+                     LOG = log, LIN = lin, PSYM = psym, COLOR = color, AY1TITLE = AY1Title, $                   
+                     ; vector
+                     X = x, Y = y, Z = z, TOTAL = total, FRAME = frame, $
+                     DELAY = delay, $
+                     
+                     ; all additional keywords
+                    _EXTRA = e 
+
+common GraphC, graph, GraphN, Item
+ pen = !dnc-1  & symbol = -3;
+ 
+ if (KEYWORD_SET(COLOR)) then pen = color; 
+ if (KEYWORD_SET(PSYM)) then symbol = psym;    
+
+graph[GraphN].Type = 'FGM_T' 
+graph[GraphN].DataN = 1
+graph[GraphN].SetCommonF[0] = 'vexmex_scan_com, "mex"' 
+graph[GraphN].GetDataF[0] ='get_vexmex_scan, "mex", /RESTRICTED'
+graph[GraphN].DeltaT = (Graph[GraphN].TotalTime + 60.0D0) <  86400.0D0 
+graph[GraphN].Ly.title = 'MEX Scan Flag'
+graph[GraphN].AxisF = 'lineaxis, 0'
+graph[GraphN].PlotF = 'PlotScal_New, 0,' + string(pen)  + ',' + string(symbol);  
+return
+end
diff --git a/amda_plus/amdalib/mex_v_sw_com.pro b/amda_plus/amdalib/mex_v_sw_com.pro
new file mode 100644
index 0000000..87c78c8
--- /dev/null
+++ b/amda_plus/amdalib/mex_v_sw_com.pro
@@ -0,0 +1,34 @@
+;------------------------ THEMIS VELOCITY SET ---------------------
+;  
+;-----------------------------------------------------------------------------------
+pro mex_v_sw_com 
+
+common Mex_v_SW, SWP
+
+common GraphC, graph, GraphN, Item
+Common Record, Record
+
+ FillValue = !Values.F_NAN
+ Sampling = 192.0
+ 
+ 
+ DELAY = 0.0D0
+ Sz =  Long((Graph[GraphN].DeltaT)/Sampling + 1)
+  
+  SWP = record
+  SWP.DefSize = long(Graph[GraphN].DeltaT/Sampling + 1)
+  SWP.Sampling = Sampling 
+  Graph[GraphN].FillValue[Item] = FillValue
+  Graph[GraphN].Lag[Item] = double(Delay) 
+
+  SWP.Time = PTR_NEW(/ALLOCATE_HEAP)
+  SWP.Val = PTR_NEW(/ALLOCATE_HEAP)
+  SWP.LastTime = PTR_NEW(/ALLOCATE_HEAP)
+  SWP.LastVal = PTR_NEW(/ALLOCATE_HEAP)
+  
+  Graph[GraphN].Sampling[Item] = Sampling;
+  Graph[GraphN].Time[Item] =  SWP.Time
+  Graph[GraphN].Val[Item] = SWP.Val
+  
+return
+end
\ No newline at end of file
diff --git a/amda_plus/amdalib/mex_v_sw_init.pro b/amda_plus/amdalib/mex_v_sw_init.pro
new file mode 100644
index 0000000..f75147d
--- /dev/null
+++ b/amda_plus/amdalib/mex_v_sw_init.pro
@@ -0,0 +1,32 @@
+;--------------------------------------
+;
+;---------------------------------------
+
+pro mex_v_sw_init, DELTAVAL = deltaval, LIN = LIN, LOG = LOG, AY1TITLE = AY1Title, _EXTRA = e
+
+common GraphC, graph, GraphN, Item
+ 
+names = ['Poor', 'Acceptable', 'Good']
+
+val = 10;
+if KEYWORD_SET(DELTAVAL) then val = deltaval
+
+Graph[GraphN].names = PTR_NEW(/ALLOCATE_HEAP)
+*(graph[GraphN].names) =  names;  
+
+graph[GraphN].Type = 'FGM_T' 
+graph[GraphN].DataN = 1
+graph[GraphN].SetCommonF[0] = 'mex_v_sw_com' 
+graph[GraphN].GetDataF[0] ='getmex_v_sw'
+
+graph[GraphN].DeltaT = (Graph[GraphN].TotalTime + 60.0D0) <  864000.0D0 
+if (KEYWORD_SET(AY1TITLE)) then graph[GraphN].Ly.title = AY1Title $
+else graph[GraphN].Ly.title =  '!CMEX ima-H V, km/s'
+
+graph[GraphN].PlotF =  'plotimasw, ' + string(val);
+
+if KEYWORD_SET(LOG) then graph[GraphN].AxisF = 'logaxis' $
+else graph[GraphN].AxisF = 'lineaxis,' + string(graph[graphN].TotalTime)
+ 
+return
+end
diff --git a/amda_plus/amdalib/mode_peir_com.pro b/amda_plus/amdalib/mode_peir_com.pro
new file mode 100644
index 0000000..77079f0
--- /dev/null
+++ b/amda_plus/amdalib/mode_peir_com.pro
@@ -0,0 +1,46 @@
+;------------------------ THEMIS DENSITY SET ---------------------
+;  
+;-----------------------------------------------------------------------------------
+pro mode_peir_com, THEMIS
+
+common ThaModePeirCom, ThaMode
+common ThbModePeirCom, ThbMode
+common ThcModePeirCom, ThcMode
+common ThdModePeirCom, ThdMode
+common TheModePeirCom, TheMode 
+common GraphC, graph, GraphN, Item
+Common Record, Record
+
+ FillValue =  !Values.F_NAN
+ Sampling = 3.0
+ 
+ 
+ DELAY = 0.0D0
+ Sz =  Long((Graph(GraphN).DeltaT)/Sampling + 1)
+  
+  SWP = record
+  SWP.DefSize = long(Graph[GraphN].DeltaT/Sampling + 1)
+  SWP.Sampling = Sampling 
+  Graph[GraphN].FillValue[Item] = FillValue
+  Graph[GraphN].Lag[Item] = double(Delay) 
+
+  SWP.Time = PTR_NEW(/ALLOCATE_HEAP)
+  SWP.Val = PTR_NEW(/ALLOCATE_HEAP)
+  SWP.LastTime = PTR_NEW(/ALLOCATE_HEAP)
+  SWP.LastVal = PTR_NEW(/ALLOCATE_HEAP)
+  
+  Graph[GraphN].Sampling[Item] = Sampling
+ ; Graph[GraphN].MaxSampling[Item] = MaxSampling
+  Graph[GraphN].Time[Item] =  SWP.Time
+  Graph[GraphN].Val[Item] = SWP.Val
+
+  if (Graph[GraphN].Step GT Sampling*2.0) then begin
+    *(SWP.Time) = indgen(Graph[GraphN].ppp)*Graph[GraphN].Step + Graph[GraphN].Step/2.0
+    *(SWP.Val)  =  replicate(FillValue, Graph[GraphN].ppp)
+  endif
+ 
+  cmd = 'Th'+THEMIS+'Mode = SWP' 
+  R = execute(cmd)
+
+return
+end
\ No newline at end of file
diff --git a/amda_plus/amdalib/morsch.pro b/amda_plus/amdalib/morsch.pro
new file mode 100644
index 0000000..f4d4049
--- /dev/null
+++ b/amda_plus/amdalib/morsch.pro
@@ -0,0 +1,25 @@
+pro morsch, Time, Orbit
+
+  FillValue = -1.e31
+  Number = N_elements(Time)
+  Bmso = fltarr(3)
+  Rm = 3393.0;
+
+  num31 = where(Orbit[0,*] ne FillValue, Index31)
+  if (Index31 le 0) then return
+
+  Time = Time[num31];
+  Orbit = Orbit[*,num31];
+  err = call_external(!PROJLIB + '/idl_morsch.so', 'MorschSetUp');
+  for i = 0L, Index31-1L do begin
+          julday = doubl2jd(Time[i]);
+          err = call_external(!PROJLIB + '/idl_morsch.so', 'MorschField', julday, Orbit[*,i], Bmso);
+          if (Bmso[0] eq 0.0) then Bmso[*] = FillValue; 
+          Orbit[*,i] =  Bmso;                
+  endfor
+
+ return
+end
+
+  
+  
\ No newline at end of file
diff --git a/amda_plus/amdalib/multi_com.pro b/amda_plus/amdalib/multi_com.pro
new file mode 100644
index 0000000..4cdd5d7
--- /dev/null
+++ b/amda_plus/amdalib/multi_com.pro
@@ -0,0 +1,99 @@
+;--------------------------------------
+ ; Y, X
+;---------------------------------------
+
+pro MULTI_COM, param1, param2, param3, param4, param5
+ 
+common Multi_Commom, getStart, N_VIs, DataCommon
+common GraphC, graph, graphN   
+  
+  nParams = N_Params();
+
+  record = {      name : '   ',                   $ ; procedure name             
+                  size : [1L,1L],                 $ ; Time Dimension, VectorSize
+                  sampling : 1.0 ,                $ ; secs
+                  indices : PTR_NEW(),            $ ; parameters indices
+                  time : PTR_NEW(),               $
+                  data : PTR_NEW(),               $
+                  LastTime: PTR_NEW(),            $ 
+                  LastData: PTR_NEW()             $
+               } 
+ ;                
+   if (N_elements(DataCommon) eq 0) then begin
+          n_graphs = N_Elements(graph); 
+          DataCommon = REPLICATE(record, 5, n_graphs);
+	  N_vis = intarr(n_graphs);         
+	  getStart = intarr(n_graphs);
+   endif
+ 
+   indices = intarr(nParams); 
+ 
+   functNames1 = strsplit(param1,'(',/EXTRACT);
+   if (N_elements(functNames1) gt 1) then begin
+	    ttt = strsplit(functNames1[1], ')', /EXTRACT);
+	    indices[0] = fix(ttt[0]);
+   endif; else indices[0] = -1;  
+   pureFunctNames = [functNames1[0]];   
+ 
+   if (nParams ge 2) then begin
+	functNames2 = strsplit(param2,'(',/EXTRACT);
+	if (N_elements(functNames2) gt 1) then begin
+	    ttt = strsplit(functNames2[1], ')', /EXTRACT);
+	    indices[1] = fix(ttt[0]);
+	endif; else indices[1] = -1;  
+        pureFunctNames = [pureFunctNames,functNames2[0]]; 
+   endif
+
+   if (nParams ge 3) then begin
+          functNames3 = strsplit(param3,'(',/EXTRACT);
+	  if (N_elements(functNames3) gt 1) then begin
+	    ttt = strsplit(functNames3[1], ')', /EXTRACT);
+	    indices[2] = fix(ttt[0]);
+	endif; else indices[2] = -1; 
+        pureFunctNames = [pureFunctNames,functNames3[0]];
+    endif
+
+   if (nParams ge 4) then begin
+           functNames4 = strsplit(param4,'(',/EXTRACT);
+	    if (N_elements(functNames4) gt 1) then begin
+		ttt = strsplit(functNames4[1], ')', /EXTRACT);
+		indices[3] = fix(ttt[0]);
+	    endif; else indices[3] = -1;
+            pureFunctNames = [pureFunctNames,functNames4[0]];
+   endif
+
+   if (nParams eq 5) then begin
+	   functNames5 = strsplit(param5,'(',/EXTRACT);  	 
+	    if (N_elements(functNames5) gt 1) then begin
+		ttt = strsplit(functNames5[1], ')', /EXTRACT);
+		indices[4] = fix(ttt[0]);
+	    endif; else indices[4] = -1;  
+            pureFunctNames = [pureFunctNames,functNames5[0]];
+   endif
+ 
+   realFunctIndex = uniq(pureFunctNames);
+   N_VIs[graphN] = N_Elements(realFunctIndex);
+ 
+   for i = 0, N_VIs[graphN] - 1 do begin 
+
+      ind = where(pureFunctNames(realFunctIndex[i]) eq pureFunctNames);
+      DataCommon[i, GraphN].indices =  PTR_NEW(/ALLOCATE_HEAP);
+      *(DataCommon[i, GraphN].indices) = indices[ind];
+  
+      DataCommon[i, GraphN].name = pureFunctNames[realFunctIndex[i]] + '_';;
+      DataCommon[i, GraphN].time = PTR_NEW(/ALLOCATE_HEAP);
+      DataCommon[i, GraphN].data = PTR_NEW(/ALLOCATE_HEAP);
+      DataCommon[i, GraphN].LastTime = PTR_NEW(/ALLOCATE_HEAP);
+      DataCommon[i, GraphN].LastData = PTR_NEW(/ALLOCATE_HEAP);       
+    endfor 
+ 
+    for i = 0, nParams-1 do begin
+        Graph[GraphN].Val[i] = PTR_NEW(/ALLOCATE_HEAP); 
+        Graph[GraphN].Time[i] = PTR_NEW(/ALLOCATE_HEAP);
+    endfor
+
+   getStart[graphN] = 0;
+ 
+ return
+ end
+ 
\ No newline at end of file
diff --git a/amda_plus/amdalib/multi_init.pro b/amda_plus/amdalib/multi_init.pro
new file mode 100644
index 0000000..18d45de
--- /dev/null
+++ b/amda_plus/amdalib/multi_init.pro
@@ -0,0 +1,42 @@
+;--------------------------------------
+;
+;---------------------------------------
+
+pro MULTI_INIT, A, B, C, D, E
+common GraphC, graph, GraphN, Item
+
+nParams = N_Params();
+graph[GraphN].names = PTR_NEW(/ALLOCATE_HEAP);
+ 
+graph[GraphN].Type = 'FGM_T' 
+graph[GraphN].DataN = 1
+
+graph[GraphN].SetCommonF[0] = 'multi_com,' + '"'+A +'"';
+*Graph[GraphN].names = [A];
+
+if (nParams ge 2) then begin 
+       graph[GraphN].SetCommonF[0] += ',"'+ B +'"';
+       *Graph[GraphN].names = [*Graph[GraphN].names, B];
+endif
+if (nParams ge 3) then begin
+       graph[GraphN].SetCommonF[0] += ',"'+ C +'"';
+       *Graph[GraphN].names = [*Graph[GraphN].names, C];
+endif
+
+if (nParams ge 4) then begin 
+      graph[GraphN].SetCommonF[0] += ',"'+ D +'"'; 
+      *Graph[GraphN].names = [*Graph[GraphN].names, D];  
+endif
+
+if (nParams eq 5) then begin 
+     graph[GraphN].SetCommonF[0] += ',"'+ E +'"';
+     *Graph[GraphN].names = [*Graph[GraphN].names, E];  
+endif
+
+
+graph[GraphN].AxisF = 'lineaxis,'+string(graph[GraphN].TotalTime);
+graph[GraphN].GetDataF[0] ='get_multi';
+graph[GraphN].DeltaT = (Graph[GraphN].TotalTime + 60.0D0) < 86400.0D0;
+graph[GraphN].PlotF =  'plot_multi' 
+return
+end
diff --git a/amda_plus/amdalib/orb_plot.pro b/amda_plus/amdalib/orb_plot.pro
new file mode 100644
index 0000000..d705e94
--- /dev/null
+++ b/amda_plus/amdalib/orb_plot.pro
@@ -0,0 +1,122 @@
+;==================================================
+;                 DD MEX
+;              ORBITAL OBJECTS
+;              mexorb_plot.pro
+;                   V.1.2
+; Modifications:
+;     19 May 2006: V.1.0, Fedorov
+;     09 DEc 2006: V.1.1, Fedorov, some changes
+;     09 DEc 2006: V.1.2, Fedorov, MEX
+;---------------------------------------------------
+; Init module of MEXORB object
+; Plot the final graph. Options
+;   Key                  ToPlot
+; /CYL - cylindrical XR   0
+; /XY                     1
+; /XZ                     2
+; /YZ                     3
+;====================================================
+pro ORB_PLOT, TimeStep, ToPlot
+
+common GraphC, graph, GraphN
+
+ !x = Graph[GraphN].Lx
+ !y = Graph[GraphN].Ly
+
+  RED =  !DNC-2
+  BLUE = !DNC/256.*20
+
+    Time = (*Graph[GraphN].Time[0])
+    if (N_elements(Time) eq 0) then return
+    RealPoints = where(Time le Graph[GraphN].TotalTime, IndexReal)
+    if (IndexReal eq 0) then return
+    OrbSize = N_elements(Time)
+    Orb = reform((*Graph[GraphN].Val[0]),3,OrbSize) 
+    Orb = temporary(Orb[*,RealPoints]);
+ 
+  case ToPlot of
+  0: begin
+       OrbX = Orb[0, *]
+       OrbY = sqrt(Orb[1,*]^2 + Orb[2,*]^2)
+     end
+  1: begin
+       OrbX = Orb[0,*]
+       OrbY = Orb[1,*]
+     end
+  2: begin
+       OrbX = Orb[0,*]
+       OrbY = Orb[2,*] 
+     end
+  3: begin
+       OrbX = Orb[1,*]
+       OrbY = Orb[2,*] 
+     end
+  endcase
+  
+  err = execute(Graph[GraphN].AxisF);
+
+  ;------- plot is standard graphical environment ---------
+  oplot, OrbX, OrbY, color=RED, thick = LineThick
+
+;--------------- Create usersymbol -----------------
+  A = FINDGEN(17) * (!PI*2/16.)
+  AMP = 0.8
+  USERSYM, AMP*COS(A), AMP*SIN(A), /FILL
+
+ 
+  if (OrbX[0] ge Graph[GraphN].Lx.range[0] AND OrbX[0] le Graph[GraphN].Lx.range[1]) AND $
+     (OrbY[0] ge Graph[GraphN].Ly.range[0] AND OrbY[0] le Graph[GraphN].Ly.range[1]) then $
+                                      plots,  OrbX[0], OrbY[0] , /DATA, psym = 5, color = BLACK
+  ;-----plot symbols ---------
+  for i = 1,  IndexReal-1, TimeStep do $
+  if (OrbX[i] ge Graph[GraphN].Lx.range[0] AND OrbX[i] le Graph[GraphN].Lx.range[1]) AND $
+     (OrbY[i] ge Graph[GraphN].Ly.range[0] AND OrbY[i] le Graph[GraphN].Ly.range[1]) then $
+                          plots,  OrbX[i], OrbY[i], /DATA, psym = 8, color = BLUE
+;------------------------------------------------------
+
+;----------- Setting ticks onto orbit line -----------------
+;----------- Start with the first point -------------------
+  xy0 = convert_coord([OrbX[0],OrbY[0]], /DATA, /TO_NORMAL)
+  s = call_external(!DDLIB + 'DD_idl.so','GetTime',double(Time[0] + Graph[GraphN].TimeBase+30.0),/S_VALUE)
+  if (OrbX[0] ge Graph[GraphN].Lx.range[0] AND OrbX[0] le Graph[GraphN].Lx.range[1]) AND $
+     (OrbY[0] ge Graph[GraphN].Ly.range[0] AND OrbY[0] le Graph[GraphN].Ly.range[1]) then $
+         xyouts, xy0[0], xy0[1]+.005, alignment=0.5, strmid(s,7,2)+':'+strmid(s,9,2), /NORMAL, charsize=!P.CHARSIZE*0.8
+
+  dt = (Time[IndexReal-1] - Time[0])/(IndexReal-1.D0);
+  N = fix((Time[IndexReal-1] - Time[0]) / (dt *TimeStep)); 
+  coeff = 1;
+
+  if (N gt 12) then begin
+       coeff = fix(N/12);
+       N = 12;
+  endif
+
+  dtLegend =  3600.0D0 * double(coeff);
+
+  if N GT 0 then begin
+    M = long(Time[0] / dtLegend);
+    t0 = double(M + 1) * dtLegend;
+
+    xy0last = [-1.0, -1.0];
+
+    for i = 0, N+1 do begin
+      tc = t0 + double(i) * dtLegend;
+      k =  fix((tc -  Time[0]) / dt);
+      if ((k LT IndexReal) and (k GE 0)) then begin
+        xy0 = convert_coord([OrbX[k],OrbY[k]], /DATA, /TO_NORMAL)
+        if((abs(xy0[0] - xy0last[0]) GT 0.02) OR $
+           (abs(xy0[1] - xy0last[1]) GT 0.01)) then begin
+          s = call_external(!DDLIB + 'DD_idl.so','GetTime', double(tc + Graph[GraphN].TimeBase), /S_VALUE)
+          if  (OrbX[k] ge Graph[GraphN].Lx.range[0] AND OrbX[k] le Graph[GraphN].Lx.range[1]) AND $
+              (OrbY[k] ge Graph[GraphN].Ly.range[0] AND OrbY[k] le Graph[GraphN].Ly.range[1]) then begin
+                plots,xy0[0], xy0[1], /NORMAL, PSYM=1, color=BLUE
+                xyouts, xy0[0], xy0[1]+.005, alignment=0.5, strmid(s,7,2)+':'+strmid(s,9,2), /NORMAL, charsize=!P.CHARSIZE*0.8
+          endif
+          xy0last = xy0
+        endif
+      endif
+    endfor
+  endif
+  return
+end
+;-------------------------------------------------------------
diff --git a/amda_plus/amdalib/plot_multi.pro b/amda_plus/amdalib/plot_multi.pro
new file mode 100644
index 0000000..7bdb843
--- /dev/null
+++ b/amda_plus/amdalib/plot_multi.pro
@@ -0,0 +1,45 @@
+ 
+ pro Plot_Multi, symbol, pen
+  common GraphC, Graph, GraphN
+
+  Colors =  [!dnc - 1, !dnc * 20/256, !dnc * 90/256, !dnc * 200/256, !dnc - 2];
+
+; pointers 
+  Time = Graph[GraphN].Time;
+  Y = Graph[GraphN].Val;
+ 
+ ; numTime = where((Time-Time[0]) le Graph[GraphN].TotalTime);
+  nPlots = 0;
+  MinYVal = +1.e31;
+  MaxYVal = -1.e31;
+
+  for i = 0, N_Elements(Time) - 1 do begin 
+      if (ptr_valid(Time[i])) then begin	      
+	      MinYVal = min(*Y[i]) lt MinYVal ?  min(*Y[i]) : MinYVal;
+              MaxYVal = max(*Y[i]) gt MaxYVal ?  max(*Y[i]) : MaxYVal;
+              nPlots++; 
+      endif
+  endfor
+ 
+;   numY = where(finite(Y), indexY);
+ 
+   if (Graph[GraphN].Ly.range[0] eq Graph[GraphN].Ly.range[1]) then begin                 
+                   Graph[GraphN].Ly.range = [MinYVal, MaxYVal]
+                   Graph[GraphN].Ly.style = 0
+   endif else Graph[GraphN].Ly.style = 1; 
+
+  !x = Graph[GraphN].Lx;
+  !y = Graph[GraphN].Ly;
+
+ 
+  if (execute(Graph[GraphN].AxisF) NE 1) then plot, *Time[0], *Y[0], /NODATA, /NOERASE, charthick=graph[GraphN].Lp.charthick, charsize = graph[GraphN].Lp.charsize*0.8;
+
+  for i = 0,  nPlots -1 do begin
+    oplot,  *Time[i],  *Y[i], color = Colors[i];
+  endfor
+ 
+ legend_multi, (*Graph[GraphN].names), Colors
+
+return
+end
+;--------------------------------------------------------------------
diff --git a/amda_plus/amdalib/plot_scatter.pro b/amda_plus/amdalib/plot_scatter.pro
new file mode 100644
index 0000000..90d796c
--- /dev/null
+++ b/amda_plus/amdalib/plot_scatter.pro
@@ -0,0 +1,43 @@
+ 
+ pro Plot_Scatter, symbol, pen
+  common GraphC, Graph, GraphN
+
+  ;colour =  [!dnc - 1, !dnc * 20/256, !dnc * 90/256, !dnc - 2];
+ 
+  Time = *Graph[GraphN].Time[0];
+  numTime = where((Time-Time[0]) le Graph[GraphN].TotalTime, IndexN);
+   
+  X = (*Graph[GraphN].Val[0])[numTime];
+  Y = (*Graph[GraphN].Val[1])[numTime];
+  
+   numX = where(finite(X), indexX);
+   numY = where(finite(Y), indexY);
+  MinXVal = min(X[numX]);
+  MaxXVal = max(X[numX]);
+  MinYVal = min(Y[numY]);
+  MaxYVal = max(Y[numY]);
+ 
+  if (Graph[GraphN].Lx.range[0] eq Graph[GraphN].Lx.range[1]) then begin                 
+                  Graph[GraphN].Lx.range = [MinXVal, MaxXVal]
+                  Graph[GraphN].Lx.style = 0
+   endif else Graph[GraphN].Lx.style = 1;
+ 
+  if (Graph[GraphN].Ly.range[0] eq Graph[GraphN].Ly.range[1]) then begin                 
+                  Graph[GraphN].Ly.range = [MinYVal, MaxYVal]
+                  Graph[GraphN].Ly.style = 0
+  endif else Graph[GraphN].Ly.style = 1; 
+
+  !x = Graph[GraphN].Lx;
+  !y = Graph[GraphN].Ly;
+
+   StartTime = call_external(!DDLIB + 'DD_idl.so','GetTime',Time[0], /S_VALUE)
+   StopTime  = call_external(!DDLIB + 'DD_idl.so','GetTime', Time[IndexN-1],/S_VALUE)
+   StartTimeForm = TimeOutput(StartTime, format = 22);
+   StopTimeForm = TimeOutput(StopTime, format = 22);
+  
+  TITLE = StartTimeForm + '-'+ StopTimeForm;
+  plot, X, Y, /NODATA, /NOERASE, charthick=graph[GraphN].Lp.charthick, charsize = graph[GraphN].Lp.charsize*0.8, title = TITLE;
+  oplot, X, Y, PSYM = symbol, color = pen;
+return
+end
+;--------------------------------------------------------------------
diff --git a/amda_plus/amdalib/plot_whi_ne.pro b/amda_plus/amdalib/plot_whi_ne.pro
new file mode 100644
index 0000000..0bf1afb
--- /dev/null
+++ b/amda_plus/amdalib/plot_whi_ne.pro
@@ -0,0 +1,106 @@
+; $Id: plot_whi_ne.pro,v 1.8 2010/10/26 10:06:27 budnik Exp $
+
+;============================================================
+;
+;                      plot WHISPER NUMBER DENSITY
+;  
+;=============================================================
+
+  pro Plot_Whi_Ne, quality, uncent, pen
+
+  common GraphC, Graph, GraphN
+   
+   colour = [!dnc - 1, !dnc*20/256, !dnc*90/256, !dnc - 2] 
+   FillValue = Graph[GraphN].FillValue[0]
+   BLACK = !dnc - 1;
+   RED = !dnc - 2;
+   YELLOW = fix(!dnc / 256.*180.)
+   BLUE = fix(!dnc / 256.*20.)
+;--------------------- No DATA - just axes -----------------------   
+   if (N_Elements(*Graph[GraphN].Time[0]) eq 0) then begin  
+         nodata  
+         return
+   endif
+   
+   Time = (*Graph[GraphN].Time[0])
+
+   if (Time[0] GT Graph[GraphN].TotalTime) then begin
+         nodatafortimeinterval  
+         return
+   endif
+  
+   Val = (*Graph[GraphN].Val[0]) 
+   Qual = (*Graph[GraphN].Val[1])
+   Unc = (*Graph[GraphN].Val[2])
+;-------------------- Min-Max----------------------------------------
+    
+  numMinMax = where(Val ne FillValue, IndexMinMax) 
+  MinValue = 0.0;
+          
+  if (IndexMinMax LE 0) then begin
+         nodatafortimeinterval
+         return
+  endif 
+ 
+  MinVal = min(Val[numMinMax]) > 0.001
+  MaxVal = max(Val[numMinMax]) 
+   
+  if (Graph[GraphN].Ly.range[0] eq Graph[GraphN].Ly.range[1]) then begin
+                  Graph[GraphN].Ly.range = [MinVal, MaxVal]
+                  Graph[GraphN].Ly.style = 0                 
+   endif else Graph[GraphN].Ly.style = 1 
+  
+  !y = Graph[GraphN].Ly
+   QualY = Graph[GraphN].Ly.range[0];
+ 
+    if (execute(Graph[GraphN].AxisF) NE 1) then plot, Time, Val, MIN_VALUE = MinValue,  /nodata, /noerase
+    oplot, Time, Val, color = colour[pen], MIN_VALUE = MinValue
+
+   if (uncent  eq 1) then begin
+       oplot, Time, Val + unc, MIN_VALUE = MinValue, linestyle = 1    
+       oplot, Time, Val - unc, MIN_VALUE = MinValue, linestyle = 1    
+   endif
+
+   if (quality eq 1) then begin
+         for j = 0,IndexMinMax -1 do begin
+             if (Qual[numMinMax[j]] lt 0.0) then Qual[numMinMax[j]] = -1.0
+             if (Qual[numMinMax[j]] lt 0.4 and Qual[numMinMax[j]] ge 0.0)  then Qual[numMinMax[j]] = 0.3
+             if (Qual[numMinMax[j]] lt 0.7 and Qual[numMinMax[j]] ge 0.4)  then Qual[numMinMax[j]] = 0.5;
+             if (Qual[numMinMax[j]] ge 0.7) then Qual[numMinMax[j]] = 0.9	     
+         endfor
+ 
+	i = 0;
+	while (Val[i] eq FillValue) and (i lt N_elements(Time)) do i++;
+	j = 0;
+	if (i eq 0) then i++;
+	while (i lt N_elements(Time)) do begin
+	    if (Qual[i-1]  eq  Qual[i]) then i++ $
+	  else begin
+	    col = BLACK;
+	    if (Qual[j] lt 0.7) then col = BLUE;
+	    if (Qual[j] lt 0.5)  then col = YELLOW;
+            if (Qual[j] lt 0.0) then col = RED;
+	    if (Val[j] ge 0.0)  then oplot, [Time[j], Time[i]], [QualY,QualY], color=col, thick=5; 
+	    j = i;
+	    i++;
+	  endelse   
+	endwhile
+	if (j eq 0) then begin           
+            col = BLACK;
+	    if (Qual[j] lt 0.7) then col = BLUE;
+	    if (Qual[j] lt 0.5)  then col = YELLOW;
+            if (Qual[j] lt 0.0) then col = RED;
+           oplot, [Time[0], Time[N_elements(Time)-1]], [QualY,QualY], color=col, thick=5;
+        endif
+	legend, (*Graph[GraphN].names), [BLACK, BLACK, BLUE, YELLOW, RED] 
+    endif
+;------------------------------- LAG------------------------------------------------
+ if (Graph[GraphN].Lag[0] ne 0.0) then begin
+    xy = Graph[GraphN].lp.region
+    y0 = xy[1] + (xy[3] - xy[1])/2.
+    xyouts, xy[2]+0.03, y0-0.03,'lag '+string(Graph[GraphN].Lag[0],format='(i4)'), /NORMAL,orientation=90, charsize = 0.9
+  endif
+  
+return
+end
+;--------------------------------------------------------------------
diff --git a/amda_plus/amdalib/plot_whi_ne_new.pro b/amda_plus/amdalib/plot_whi_ne_new.pro
new file mode 100644
index 0000000..028c822
--- /dev/null
+++ b/amda_plus/amdalib/plot_whi_ne_new.pro
@@ -0,0 +1,107 @@
+; $Id: plot_whi_ne.pro,v 1.8 2010/10/26 10:06:27 budnik Exp $
+
+;============================================================
+;
+;                      plot WHISPER NUMBER DENSITY
+;  
+;=============================================================
+
+  pro Plot_Whi_Ne_New, quality, uncent, pen, symbol
+
+  common GraphC, Graph, GraphN
+   
+  
+   FillValue = Graph[GraphN].FillValue[0]
+
+   BLACK = !dnc - 1;
+   RED = !dnc - 2;
+   YELLOW = fix(!dnc / 256.*180.)
+   BLUE = fix(!dnc / 256.*20.)
+;--------------------- No DATA - just axes -----------------------   
+   if (N_Elements(*Graph[GraphN].Time[0]) eq 0) then begin  
+         nodata  
+         return
+   endif
+   
+   Time = (*Graph[GraphN].Time[0])
+
+   if (Time[0] GT Graph[GraphN].TotalTime) then begin
+         nodatafortimeinterval  
+         return
+   endif
+  
+   Val = (*Graph[GraphN].Val[0]) 
+   Qual = (*Graph[GraphN].Val[1])
+   Unc = (*Graph[GraphN].Val[2])
+;-------------------- Min-Max----------------------------------------
+    
+  numMinMax = where(Val ne FillValue, IndexMinMax) 
+  MinValue = 0.0;
+          
+  if (IndexMinMax LE 0) then begin
+         nodatafortimeinterval
+         return
+  endif 
+ 
+  MinVal = min(Val[numMinMax]) > 0.001
+  MaxVal = max(Val[numMinMax]) 
+   
+  if (Graph[GraphN].Ly.range[0] eq Graph[GraphN].Ly.range[1]) then begin
+                  Graph[GraphN].Ly.range = [MinVal, MaxVal]
+                  Graph[GraphN].Ly.style = 0                 
+   endif else Graph[GraphN].Ly.style = 1 
+  
+  !y = Graph[GraphN].Ly
+   QualY = Graph[GraphN].Ly.range[0];
+ 
+    if (execute(Graph[GraphN].AxisF) NE 1) then plot, Time, Val, MIN_VALUE = MinValue,  /nodata, /noerase
+    oplot, Time, Val, color = pen, MIN_VALUE = MinValue
+
+   if (uncent  eq 1) then begin
+       oplot, Time, Val + unc, MIN_VALUE = MinValue, linestyle = 1    
+       oplot, Time, Val - unc, MIN_VALUE = MinValue, linestyle = 1    
+   endif
+
+   if (quality eq 1) then begin
+         for j = 0,IndexMinMax -1 do begin
+             if (Qual[numMinMax[j]] lt 0.0) then Qual[numMinMax[j]] = -1.0
+             if (Qual[numMinMax[j]] lt 0.4 and Qual[numMinMax[j]] ge 0.0)  then Qual[numMinMax[j]] = 0.3
+             if (Qual[numMinMax[j]] lt 0.7 and Qual[numMinMax[j]] ge 0.4)  then Qual[numMinMax[j]] = 0.5;
+             if (Qual[numMinMax[j]] ge 0.7) then Qual[numMinMax[j]] = 0.9	     
+         endfor
+ 
+	i = 0;
+	while (Val[i] eq FillValue) and (i lt N_elements(Time)) do i++;
+	j = 0;
+	if (i eq 0) then i++;
+	while (i lt N_elements(Time)) do begin
+	    if (Qual[i-1]  eq  Qual[i]) then i++ $
+	  else begin
+	    col = BLACK;
+	    if (Qual[j] lt 0.7) then col = BLUE;
+	    if (Qual[j] lt 0.5)  then col = YELLOW;
+            if (Qual[j] lt 0.0) then col = RED;
+	    if (Val[j] ge 0.0)  then oplot, [Time[j], Time[i]], [QualY,QualY], color=col, thick=5; 
+	    j = i;
+	    i++;
+	  endelse   
+	endwhile
+	if (j eq 0) then begin           
+            col = BLACK;
+	    if (Qual[j] lt 0.7) then col = BLUE;
+	    if (Qual[j] lt 0.5)  then col = YELLOW;
+            if (Qual[j] lt 0.0) then col = RED;
+           oplot, [Time[0], Time[N_elements(Time)-1]], [QualY,QualY], color=col, thick=5;
+        endif
+	legend, (*Graph[GraphN].names), [BLACK, BLACK, BLUE, YELLOW, RED] 
+    endif
+;------------------------------- LAG------------------------------------------------
+ if (Graph[GraphN].Lag[0] ne 0.0) then begin
+    xy = Graph[GraphN].lp.region
+    y0 = xy[1] + (xy[3] - xy[1])/2.
+    xyouts, xy[2]+0.03, y0-0.03,'lag '+string(Graph[GraphN].Lag[0],format='(i4)'), /NORMAL,orientation=90, charsize = 0.9
+  endif
+  
+return
+end
+;--------------------------------------------------------------------
diff --git a/amda_plus/amdalib/plotimasw.pro b/amda_plus/amdalib/plotimasw.pro
new file mode 100644
index 0000000..dcfea1d
--- /dev/null
+++ b/amda_plus/amdalib/plotimasw.pro
@@ -0,0 +1,106 @@
+; $Id: plotimadens.pro,v 1.5 2011/09/02 15:13:54 budnik Exp $
+
+;============================================================
+;
+;                      plot Scalar
+;  
+;=============================================================
+
+  pro PlotImaSw, deltaVal 
+
+  common GraphC, Graph, GraphN
+   
+   FillValue = Graph[GraphN].FillValue[0]
+   BLACK = !dnc - 1;
+   RED = !dnc - 2;
+   Yellow = fix(!dnc / 256.*100.)
+   BLUE = fix(!dnc / 256.*20.)
+;--------------------- No DATA - just axes -----------------------   
+   if (N_Elements(*Graph[GraphN].Time[0]) eq 0) then begin  
+         nodata  
+         return
+   endif
+    
+   Time = (*Graph[GraphN].Time[0])
+ 
+   if (Time[0] GT Graph[GraphN].TotalTime) then begin
+         nodatafortimeinterval  
+         return
+   endif
+    
+   deltaT = 192.0;
+   gapT = deltaT * 10.0;
+   
+   (*Graph[GraphN].Val[0]) = reform((*Graph[GraphN].Val[0]),2, N_elements(Time)) 
+   Val = (*Graph[GraphN].Val[0])[0,*]  
+   Qual = (*Graph[GraphN].Val[0])[1,*]
+
+
+;-------------------- Min-Max----------------------------------------
+ 
+   MaxValue = 1.e31 
+   MinValue = -1.e31
+   if (finite(FillValue)) then begin
+          numMinMax = where(Val ne FillValue, IndexMinMax) 
+           if (FillValue lt 0.0 ) then MinValue = FillValue
+          if (FillValue gt 0.0 ) then MaxValue = FillValue
+    endif else numMinMax = where(finite(Val),IndexMinMax) 
+   
+
+  if (IndexMinMax LE 0) then begin
+         nodatafortimeinterval
+         return
+  endif 
+;------------------- User Define Symbol
+  A = FINDGEN(17) * (!PI*2/16.)
+  AMP = 0.6
+  USERSYM, AMP*COS(A), AMP*SIN(A), /FILL
+
+
+  MinVal = min(Val[numMinMax]) > 0.01
+  MaxVal = max(Val[numMinMax]) 
+  if (Graph[GraphN].Ly.range[0] eq Graph[GraphN].Ly.range[1]) then begin
+                  Graph[GraphN].Ly.range = [MinVal, MaxVal]
+                  Graph[GraphN].Ly.style = 0
+   endif else Graph[GraphN].Ly.style = 1 
+  
+    !y = Graph[GraphN].Ly
+
+ 
+    if (execute(Graph[GraphN].AxisF) NE 1) then plot, Time, Val, MIN_VALUE = MinValue, MAX_VALUE=MaxValue, /nodata, /noerase
+  
+    if (Val[0] lt Graph[GraphN].Ly.range[0]) then Val[0] = Graph[GraphN].Ly.range[0];
+    if (Val[0] gt Graph[GraphN].Ly.range[1]) then Val[0] = Graph[GraphN].Ly.range[1];  
+    plots, Time[0]+deltaT, Val[0], /DATA
+    for i = 1L, N_elements(Time) - 1L do begin
+       col = RED
+       if (Qual[i] lt 0.85)  then col = YELLOW 
+       if (Qual[i] lt 0.6)  then col = BLUE      
+       if (Val[i] LE minVal) then continue;
+                   
+                   
+      
+        if (Time[i] LE Graph[GraphN].TotalTime) then begin
+          if (Val[i] lt Graph[GraphN].Ly.range[0]) then Val[i] = Graph[GraphN].Ly.range[0];
+          if (Val[i] gt Graph[GraphN].Ly.range[1]) then Val[i] = Graph[GraphN].Ly.range[1];  
+          if ((Time[i] - Time[i-1] LE gapT) AND (Val[i] - Val[i-1] le deltaVal)) then $
+                    plots, Time[i]+deltaT, Val[i], color=col, thick=2, /CONTINUE, /DATA $
+          else   plots, Time[i]+deltaT, Val[i], color=col, psym=8, /DATA 
+        endif
+    endfor
+    
+    legend, (*Graph[GraphN].names), [BLUE, YELLOW, RED] 
+
+    ;------------------------------- LAG------------------------------------------------
+    if (Graph[GraphN].Lag[0] GT 0.0) then begin
+    xy = graph[GraphN].lp.region
+    y0 = xy[1] + (xy[3] - xy[1])/2.
+    xyouts, xy[2]+0.03, y0-0.03,'lag '+string(Graph[GraphN].Lag[0],format='(i4)'), /NORMAL,orientation=90, charsize = 0.9
+    endif
+  
+     Graph(GraphN).Min = MinVal;
+     Graph(GraphN).Max = MaxVal;
+
+return
+end
+;--------------------------------------------------------------------
diff --git a/amda_plus/amdalib/plotmodereduced.pro b/amda_plus/amdalib/plotmodereduced.pro
new file mode 100644
index 0000000..f6f4d5a
--- /dev/null
+++ b/amda_plus/amdalib/plotmodereduced.pro
@@ -0,0 +1,77 @@
+; $Id: plotmodereduced.pro,v 1.1 2010/01/13 17:38:27 budnik Exp $
+
+;============================================================
+;
+;                      plot Scalar
+;  
+;=============================================================
+
+  pro PlotModeReduced, Item
+
+  common GraphC, Graph, GraphN
+  
+   EnergySteps = [32, 32, 24, 16, 16, 32, 24, 32, 16]
+   AngleSteps =  [1,  1,  50, 1,  50, 1,  72, 6,  6]
+    
+   colour = [!dnc - 1, !dnc*20/256, !dnc*90/256, !dnc - 2]  
+   red =  !dnc - 2;
+;--------------------- No DATA - just axes -----------------------   
+   if (N_Elements(*Graph[GraphN].Time[0]) eq 0) then begin  
+         nodata  
+         return
+   endif
+   
+   Time = (*Graph[GraphN].Time[0])
+
+   if (Time[0] GT Graph[GraphN].TotalTime) then begin
+         nodatafortimeinterval  
+         return
+   endif
+ 
+    MinVal = 0;
+    case ITEM of
+      0: MaxVal = 10;
+      1: MaxVal = 35;
+      2: MaxVal = 80;
+      3: MaxVal = 80;
+      else:
+    endcase 
+     
+
+    TimeNum = where(Time LE  Graph[GraphN].TotalTime, IndexTime)
+    if (IndexTime eq 0) then begin
+         nodatafortimeinterval 
+         return
+    endif
+
+    Time = Time[TimeNum]
+  
+    Val = (*Graph[GraphN].Val[0])[TimeNum]
+   
+   
+   if (Graph[GraphN].Ly.range[0] eq Graph[GraphN].Ly.range[1]) then begin                 
+                  Graph[GraphN].Ly.range = [MinVal, MaxVal]
+                  Graph[GraphN].Ly.style = 0
+   endif else Graph[GraphN].Ly.style = 1 
+   
+    !y = Graph[GraphN].Ly
+     
+    
+    if (execute(Graph[GraphN].AxisF) NE 1) then plot, Time, Val, MIN_VALUE = MinValue, MAX_VALUE=MaxValue, /NODATA, /NOERASE
+
+    case ITEM of
+      0:  oplot, Time, Val,  MIN_VALUE = MinValue, MAX_VALUE=MaxValue;   
+      1:  oplot, Time, EnergySteps[Val],  MIN_VALUE = MinValue, MAX_VALUE=MaxValue;        
+      2:  oplot, Time, AngleSteps[Val], MIN_VALUE = MinValue, MAX_VALUE=MaxValue;        
+      3:  begin          
+           oplot, Time, EnergySteps[Val], MIN_VALUE = MinValue, MAX_VALUE=MaxValue                                       
+           oplot, Time, AngleSteps[Val], color = red, MIN_VALUE = MinValue, MAX_VALUE=MaxValue;           
+          end     
+      else:
+    endcase
+    
+
+ 
+return
+end
+;--------------------------------------------------------------------
diff --git a/amda_plus/amdalib/plotscal_new.pro b/amda_plus/amdalib/plotscal_new.pro
new file mode 100644
index 0000000..803387c
--- /dev/null
+++ b/amda_plus/amdalib/plotscal_new.pro
@@ -0,0 +1,117 @@
+; $Id: plotscal.pro,v 1.10 2011/09/16 13:33:26 budnik Exp $
+
+;============================================================
+;
+;                      plot Scalar
+;  
+;=============================================================
+
+  pro PlotScal_New, Place, pen, symbol 
+
+  common GraphC, Graph, GraphN
+   
+  FillValue = Graph[GraphN].FillValue[0] 
+ 
+;--------------------- No DATA - just axes -----------------------   
+   if (N_Elements(*Graph[GraphN].Time[0]) eq 0) then begin  
+         nodata  
+         return
+   endif
+   
+   Time = (*Graph[GraphN].Time[0])
+
+   if (Time[0] GT Graph[GraphN].TotalTime) then begin
+         nodatafortimeinterval  
+         return
+   endif
+
+   Y0 = N_elements(*Graph[GraphN].Val[0])/N_elements(Time)
+ 
+   (*Graph[GraphN].Val[0]) = reform((*Graph[GraphN].Val[0]),Y0, N_elements(Time)) 
+   Val = (*Graph[GraphN].Val[0])[Place,*]  
+ 
+    TimeNum = where(Time LE  Graph[GraphN].TotalTime, IndexTime)
+    if (IndexTime eq 0) then begin
+         nodatafortimeinterval 
+         return
+    endif
+   
+   Time = Time[TimeNum]
+   Val =  Val[TimeNum]
+;-------------------- Min-Max----------------------------------------
+ 
+   MaxValue = 1.e31 
+   MinValue = -1.e31
+   if (finite(FillValue)) then begin
+           numMinMax = where(Val ne FillValue, IndexMinMax) 
+            if (FillValue lt 0.0 ) then MinValue = FillValue*0.95
+            if (FillValue gt 0.0 ) then MaxValue = FillValue*0.95
+	    if (FillValue eq -1.e31 ) then begin
+                    MinValue = -1.e10;
+		    numMinMax = where(Val gt MinValue, IndexMinMax) 
+	    endif
+    endif else numMinMax = where(finite(Val),IndexMinMax) 
+   
+
+  if (IndexMinMax LE 0) then begin
+         nodatafortimeinterval 
+         return
+  endif 
+
+  MinVal = min(Val[numMinMax])
+  MaxVal = max(Val[numMinMax])
+
+; Check if there is data for Logarithmic Plotting
+  if (MinVal eq 0.0) AND (MaxVal eq 0.0) AND (Graph[GraphN].AxisF eq "logaxis") then begin
+         onlyzeroes
+         return
+  endif 
+  
+  if (Graph[GraphN].Ly.range[0] eq Graph[GraphN].Ly.range[1]) then begin                 
+                  Graph[GraphN].Ly.range = [MinVal, MaxVal]
+                  Graph[GraphN].Ly.style = 0
+   endif else Graph[GraphN].Ly.style = 1 
+   
+    !y = Graph[GraphN].Ly
+
+; histogram if few  points
+     psym_ = N_Elements(*Graph[GraphN].Time[0]) gt 30 ? symbol : 10;
+   
+    if (execute(Graph[GraphN].AxisF) NE 1) then plot, Time, Val, MIN_VALUE = MinValue, MAX_VALUE=MaxValue, /NODATA, /NOERASE
+
+; there was average - no gaps check
+    if (Graph[GraphN].Step GT Graph[GraphN].Sampling[0]*2.0) then IndexGap = 0 $
+    else begin 
+        nn = N_elements(Time);
+        dt = dblarr(nn-1);
+        for i = 0, nn-2 do dt[i] = Time[i+1]-Time[i];
+
+        dataGap =  Graph[GraphN].MaxSampling[0] GT 0 ? Graph[GraphN].MaxSampling[0] * 5 : Graph[GraphN].Sampling[0] * 5;
+        numGap = where(dt GT dataGap, IndexGap);
+    endelse
+
+    if (IndexGap eq 0) then oplot, Time, Val, color = pen, MIN_VALUE = MinValue, MAX_VALUE=MaxValue, PSYM = psym_ $
+    else begin
+      jStart = 0L;
+      for j = 0, IndexGap - 1 do begin
+           jStop = numGap[j]; 
+           oplot, Time[jStart:jStop], Val[jStart:jStop], color = pen, MIN_VALUE = MinValue, MAX_VALUE=MaxValue, PSYM = psym_
+           jStart = jStop + 1;          
+       endfor  
+       oplot, Time[jStart:*], Val[jStart:*], color = pen, MIN_VALUE = MinValue, MAX_VALUE=MaxValue, PSYM = psym_ 
+     endelse
+         
+ 
+;------------------------------- LAG------------------------------------------------
+ if (Graph[GraphN].Lag[0] NE 0.0) then begin 
+   xy = graph[GraphN].lp.region
+   y0 = xy[1] + (xy[3] - xy[1])/2.
+   xyouts, xy[2]+0.03, y0-0.03, 'lag '+string(Graph[GraphN].Lag[0],format='(i6)'), /NORMAL,orientation=90, charsize = 0.9
+ endif
+  
+Graph(GraphN).Min = MinVal;
+Graph(GraphN).Max = MaxVal;
+
+return
+end
+;--------------------------------------------------------------------
diff --git a/amda_plus/amdalib/plotspecgen.pro b/amda_plus/amdalib/plotspecgen.pro
new file mode 100644
index 0000000..098340b
--- /dev/null
+++ b/amda_plus/amdalib/plotspecgen.pro
@@ -0,0 +1,157 @@
+;============================================================
+;
+;                Spectra 
+;                Only ONE ITEM -> no processing
+;=============================================================
+
+  pro PlotSpecGen, BackgrdChan, BackgrdVal, MinCount, MaxCount, LIN = lin, LLIN = llin
+
+    common GraphC, Graph, GraphN 
+    
+    FillValue = Graph[GraphN].FillValue[0]
+
+    Energy = *(Graph[GraphN].yaxis)
+ 
+       
+    MinEnergy = Min(Energy);
+    MaxEnergy = Max(Energy);
+ 
+     if (Graph[GraphN].Ly.range[0] eq Graph[GraphN].Ly.range[1]) then begin
+                Graph[GraphN].Ly.range = [MinEnergy, MaxEnergy]
+                Graph[GraphN].Ly.style = 0
+    endif else begin
+                Graph[GraphN].Ly.style = 1
+                MinEnergy = graph[GraphN].Ly.range[0];
+                MaxEnergy = graph[GraphN].Ly.range[1];
+    endelse
+
+ 
+    !y = Graph[GraphN].Ly
+  
+;--------------------- No DATA - just axes -----------------------   
+   if (N_Elements(*Graph[GraphN].Time[0]) eq 0) then begin 
+         nodata
+         return
+   endif
+
+   Time = (*Graph[GraphN].Time[0])
+   if (Time[0] GT Graph[GraphN].TotalTime) then begin
+        nodatafortimeinterval
+         return
+  endif
+  
+   Val = (*Graph[GraphN].Val[0])  
+   N_Time = N_elements(Time);
+   N_Spec = N_elements(Val)/N_Time; 
+   Val = reform((Val),N_Spec,N_Time)  
+
+;Substract background
+
+  if ((BackgrdChan -1 ge 0) and (BackgrdChan -1 lt N_Spec)) then begin
+    for i = 0, N_Time - 1 do begin
+      if (Val[BackgrdChan-1,i] eq FillValue or not FINITE(Val[BackgrdChan-1,i])) then continue
+      for j = 0, N_Spec - 1 do begin
+        if (Val[j,i] eq FillValue) then continue
+        Val[j,i] = (Val[j,i] lt Val[BackgrdChan-1,i]) ? 0 :  Val[j,i] - Val[BackgrdChan-1,i]
+      endfor
+    endfor
+  endif else begin
+    if (BackgrdVal ge 0) then begin
+      for i = 0, N_Time - 1 do begin
+        for j = 0, N_Spec - 1 do begin
+          if (Val[j,i] eq FillValue  or not FINITE(Val[j,i])) then continue
+          Val[j,i] = (Val[j,i] lt BackgrdVal) ? 0 :  Val[j,i] - BackgrdVal
+        endfor
+      endfor
+    endif
+  endelse
+
+; Set value to FillValue when the energy is out of the requested range (used to determine correctly min and max value)
+
+   enMinMax = where(Energy lt MinEnergy, IndexMinMax)
+   if (IndexMinMax gt 0) then begin
+     Val[enMinMax,*] = FillValue
+   endif
+
+   enMinMax = where(Energy gt MaxEnergy, IndexMinMax)
+   if (IndexMinMax gt 0) then begin  
+     Val[enMinMax,*] = FillValue
+   endif     
+
+   numMinMax = where((Val gt 0) and (Val ne FillValue) and FINITE(Val), IndexMinMax)
+
+;--------------------- No DATA - just axes -----------------------      
+  if (IndexMinMax LE 0) then begin
+         nodatafortimeinterval  
+         return
+  endif  
+    MinVal = (MinCount ge 0) ? MinCount : min(Val[numMinMax]) 
+    MaxVal = (MaxCount ge 0) ? MaxCount : max(Val[numMinMax])
+ 
+
+    Step = Graph[GraphN].Sampling[0] > Graph[GraphN].Step
+    StepMax = Graph[GraphN].MaxSampling[0] > Step 
+    
+ ;-----------   NOW PLOT SPECTRA 
+ 
+    if KEYWORD_SET(LIN) then plot,graph[GraphN].Lx.range, graph[GraphN].Ly.range, /nodata, /noerase, ystyle=1, $
+                                                       charsize= graph[GraphN].Lp.charsize*0.8, color = !dnc-1 $
+    else plot_io,graph[GraphN].Lx.range, graph[GraphN].Ly.range, /nodata, /noerase, ystyle=1, $
+                                    ytickformat='yticks', charsize= graph[GraphN].Lp.charsize*0.8, color = !dnc-1
+
+    if KEYWORD_SET(LLIN) then  KF = float(!DNC - 2) /(MaxVal - MinVal) $
+    else KF = float(!DNC - 2) /(alog(MaxVal) - alog(MinVal))
+  
+
+    xx = fltarr(4) & yy = fltarr(4)
+ 
+  ;  if KEYWORD_SET(LLIN) then begin
+  ;      ; GRIS for background 
+  ;      TVLCT, r, g, b, /GET
+  ;      r[1] = 200 & g[1] = 200 & b[1] = 200
+  ;      TVLCT, r, g, b
+  ;  endif
+
+    for i = 0, N_Time - 2 do begin
+        xx[0] = Time[i]  > 0.0
+        xx[1]=xx[0]
+        xx[2]= Time[i+1] < Time[i]+StepMax
+        if (xx[2] GT graph[GraphN].TotalTime) then xx[2] = graph[GraphN].TotalTime
+        xx[3]=xx[2]
+        if (xx[0] LE graph[GraphN].TotalTime) then begin 
+            for k = 0, N_Spec-2 do begin
+               yy[0] = Energy[k]
+               if (yy[0] GT MaxEnergy) or (yy[0] LT MinEnergy) then continue;
+               yy[1] = k lt N_Spec-1 ? Energy[k+1] : MinEnergy
+               if (yy[1] LT MinEnergy) then continue;
+               yy[2] = yy[1]
+               yy[3] = yy[0]
+               lcount = Val[k,i]
+               if (lcount LE 0.0) then lcount = MinVal
+               if ((lcount EQ FillValue) or (FINITE(lcount) EQ 0)) then lcount = 0; continue ;Don't draw fill value data!
+               
+               cl = fix(KF*(alog(lcount) - alog(MinVal)))
+               if KEYWORD_SET(LLIN) then cl = fix(KF*(lcount - MinVal)) $
+               else cl = fix(KF*(alog(lcount) - alog(MinVal)))
+   
+               if (lcount GE  MaxVal) then  cl = !DNC - 2
+               PolyFill, xx, yy, color=(cl > 0), /data
+            endfor
+        endif
+     endfor
+
+
+     PRINT, MinVal, MaxVal
+
+;--------------------- Legend ---------------------------------------- 
+     if KEYWORD_SET(LLIN) then spec_legend_lin, MinVal, MaxVal $ 
+     else spec_legend, MinVal, MaxVal
+
+;------------------ MIN-MAX-------------------------------------------   
+      Graph(GraphN).Min  = MinVal 
+      Graph(GraphN).Max  = MaxVal
+       
+
+return
+end
+;--------------------------------------------------------------------
diff --git a/amda_plus/amdalib/plotspeclap.pro b/amda_plus/amdalib/plotspeclap.pro
new file mode 100644
index 0000000..70ea38a
--- /dev/null
+++ b/amda_plus/amdalib/plotspeclap.pro
@@ -0,0 +1,172 @@
+;============================================================
+;
+;                Spectra 
+;                Only ONE ITEM -> no processing
+;=============================================================
+
+  pro PlotSpecLap, LAP, BackgrdChan, BackgrdVal, MinCount, MaxCount, LIN = lin, LLIN = llin
+
+    common GraphC, Graph, GraphN 
+ 
+    FillValue = Graph[GraphN].FillValue[0]
+    VI = LAP eq 1 ? 'ros:lap1:sweep' : 'ros:lap2:sweep';
+    ID = Graph[GraphN].DataID[0];
+  ;maxCount = 200 
+   Nmacro = intarr(2); 
+ 
+   err = call_external(!PROJLIB + '/libParam.so', 'getInfo', $
+                            ID, VI, 'Nmacros', 2, Nmacro)  
+   Nmacros = long(Nmacro[0]) 
+   
+    Macros = fltarr(Nmacros);
+    Steps = fltarr(Nmacros);
+  
+    err = call_external(!PROJLIB + '/libParam.so', 'getInfo', $
+                            ID, VI, 'Macros', Nmacros, Macros)  
+    err = call_external(!PROJLIB + '/libParam.so', 'getInfo', $
+                             ID, VI, 'Steps', Nmacros, Steps) 
+ 
+  ;  Energy = *(Graph[GraphN].yaxis)
+ 
+ ;   N_Energy = N_Elements(Energy);  
+    MinEnergy = -31.0;
+    MaxEnergy = 30.0;
+  
+     if (Graph[GraphN].Ly.range[0] eq Graph[GraphN].Ly.range[1]) then begin
+                Graph[GraphN].Ly.range = [MinEnergy, MaxEnergy]
+                Graph[GraphN].Ly.style = 0
+    endif else begin
+                Graph[GraphN].Ly.style = 1
+                MinEnergy = graph[GraphN].Ly.range[0];
+                MaxEnergy = graph[GraphN].Ly.range[1];
+    endelse
+
+ 
+    !y = Graph[GraphN].Ly
+  
+;--------------------- No DATA - just axes -----------------------   
+   if (N_Elements(*Graph[GraphN].Time[0]) eq 0) then begin 
+         nodata
+         return
+   endif
+
+   Time = (*Graph[GraphN].Time[0])
+   if (Time[0] GT Graph[GraphN].TotalTime) then begin
+        nodatafortimeinterval
+         return
+  endif
+  
+   Val = (*Graph[GraphN].Val[0])  
+   N_Time = N_elements(Time);
+   N_Spec = N_elements(Val)/N_Time; 
+   Val = reform(temporary(Val),N_Spec,N_Time);  
+ 
+   Spec = Val[0 : N_Spec - 2, *]; nA
+  
+   Flag = reform(Val[N_Spec - 1, *]);
+   
+   numMinMax = where((Spec ne FillValue) and FINITE(Spec), IndexMinMax)
+ 
+;--------------------- No DATA - just axes -----------------------      
+  if (IndexMinMax LE 0) then begin  print, flag[i], N_Energy
+         nodatafortimeinterval  
+         return
+  endif  
+    MinVal = (MinCount ne -1) ? MinCount : min(Spec[numMinMax]) 
+    MaxVal = (MaxCount ne -1) ? MaxCount : max(Spec[numMinMax])
+ 
+    Step = Graph[GraphN].Sampling[0] > Graph[GraphN].Step
+    StepMax = Graph[GraphN].MaxSampling[0] > Step 
+    
+ ;-----------   NOW PLOT SPECTRA 
+ 
+    plot,graph[GraphN].Lx.range, graph[GraphN].Ly.range, /nodata, /noerase, ystyle=1, $
+                                                       charsize= graph[GraphN].Lp.charsize*0.8, color = !dnc-1  
+ 
+    
+    KF = float(!DNC - 2) /(MaxVal - MinVal)
+ 
+    xx = fltarr(4) & yy = fltarr(4);
+
+    Energy = fltarr(N_Spec-1);
+
+    oldFlag = -1;
+ 
+    for i = 0, N_Time - 2 do begin
+
+        if (not finite(flag[i])) then continue;
+
+        if (flag[i] ne oldFlag) then begin       
+          numMacro = where(float(Macros) eq flag[i]); 
+          N_Energy = Steps[numMacro];
+          N_Energy = long(N_Energy[0]);
+
+          ParamName = 'Voltage'+string(flag[i],format='(i3)');
+ 
+          err = call_external(!PROJLIB + '/libParam.so', 'getInfo', $
+                             ID, VI, ParamName, N_Energy, Energy) 
+          oldFlag = flag[i];           
+        endif
+ 
+        xx[0] = Time[i]  > 0.0
+        xx[1] = xx[0]
+        xx[2] = Time[i+1] < Time[i] + StepMax
+        if (xx[2] GT graph[GraphN].TotalTime) then xx[2] = graph[GraphN].TotalTime
+        xx[3] = xx[2]
+ 
+        if (xx[0] LE graph[GraphN].TotalTime) then begin 
+            for k = 0, N_Energy - 1 do begin
+               yy[0] = Energy[k] 
+               if ( k lt N_Energy-1 ) then yy[1] = Energy[k+1] else begin
+                    
+                   yy[1] = Energy[k] lt Energy[k-1] ? Energy[k]+0.2 : Energy[k]-0.2 
+               endelse 
+
+               if (yy[1] LT MinEnergy) then continue;
+
+               yy[2] = yy[1]
+               yy[3] = yy[0]
+ 
+               lcount = Spec[k,i]
+             ;  if (lcount LE 0.0) then lcount = MinVal
+             ;  if ((lcount EQ FillValue) or (FINITE(lcount) EQ 0)) then lcount = 0;  
+               
+               cl = fix(KF*(lcount - MinVal))
+           
+               if (lcount GE  MaxVal) then  cl = !DNC - 2
+               if (lcount LE  MinVal) then  cl = 0
+               PolyFill, xx, yy, color=(cl > 0), /data
+            endfor
+        endif 
+     endfor
+
+  ; output macro number      
+        changeMacros = intarr(1);
+ 
+        flagFinite = where(finite(flag));
+        changeMacros[0] = flagFinite[0];
+
+        for i = 1, N_Elements(flagFinite) - 1 do  $          
+            if (flag[flagFinite[i]] ne flag[flagFinite[i-1]]) then changeMacros = [changeMacros, flagFinite[i]]
+ 
+ 
+        for i = 0, N_elements(changeMacros) - 1 do begin
+          if (Time[changeMacros[i]] lt graph[GraphN].TotalTime) then begin 
+             macro = where(Macros eq flag[changeMacros[i]]); 
+             nSteps = Steps[macro[0]];
+             col = nSteps gt 210 ? 0  : !DNC - 1;            
+             XYOUTS, Time[changeMacros[i]], -27.0, fix(flag[changeMacros[i]]), COLOR = col, ALIGNMENT = 0.5
+          endif
+        endfor
+ 
+;--------------------- Legend ---------------------------------------- 
+      spec_legend_lin, MinVal, MaxVal
+
+;------------------ MIN-MAX-------------------------------------------   
+      Graph(GraphN).Min  = MinVal 
+      Graph(GraphN).Max  = MaxVal
+       
+
+return
+end
+;--------------------------------------------------------------------
diff --git a/amda_plus/amdalib/plotspecmip.pro b/amda_plus/amdalib/plotspecmip.pro
new file mode 100644
index 0000000..32b6fa5
--- /dev/null
+++ b/amda_plus/amdalib/plotspecmip.pro
@@ -0,0 +1,147 @@
+;============================================================
+;       
+;                
+;=============================================================
+
+  pro PlotSpecMip, BackgrdChan, BackgrdVal, MinCount, MaxCount, LIN = lin, LLIN = llin 
+
+   common GraphC, Graph, GraphN 
+
+  FillValue = Graph[GraphN].FillValue[0];
+
+;--------------------- No DATA - just axes -----------------------   
+   if (N_Elements(*Graph[GraphN].Time[0]) eq 0) then begin  
+         nodata
+       return
+   endif
+
+   Time = (*Graph[GraphN].Time[0]);
+   if (Time[0] GT Graph[GraphN].TotalTime) then begin
+        nodatafortimeinterval
+      return
+  endif
+ 
+   Val = (*Graph[GraphN].Val[0])  
+   N_Time = N_elements(Time);
+   N_Spec = N_elements(Val)/N_Time; 
+   Val = reform((Val),N_Spec,N_Time);
+   TabIndex = fix(reform(Val[92,*],N_time));    
+   N_Spec -= 1;
+   Val = reform((Val[0:91,*]),N_Spec,N_Time);
+
+   numMinMax = where(TabIndex gt 0.0, IndexMinMax);
+   if (IndexMinMax eq 0) then begin
+      nodatafortimeinterval
+      return
+   endif
+
+   TabIndex = TabIndex[numMinMax];
+
+   Val = Val[*,numMinMax];
+   Time = Time[numMinMax];
+   
+   N_Time = IndexMinMax; 
+
+  if ((BackgrdChan -1 ge 0) and (BackgrdChan -1 lt N_Spec)) then begin
+    for i = 0, N_Time - 1 do begin
+      if (Val[BackgrdChan-1,i] eq FillValue or not FINITE(Val[BackgrdChan-1,i])) then continue
+      for j = 0, N_Spec - 1 do begin
+        if (Val[j,i] eq FillValue) then continue
+        Val[j,i] = (Val[j,i] lt Val[BackgrdChan-1,i]) ? 0 :  Val[j,i] - Val[BackgrdChan-1,i]
+      endfor
+    endfor
+  endif else begin
+    if (BackgrdVal ge 0) then begin
+      for i = 0, N_Time - 1 do begin
+        for j = 0, N_Spec - 1 do begin
+          if (Val[j,i] eq FillValue  or not FINITE(Val[j,i])) then continue
+          Val[j,i] = (Val[j,i] lt BackgrdVal) ? 0 :  Val[j,i] - BackgrdVal
+        endfor
+      endfor
+    endif
+  endelse
+
+
+   dF = intarr(IndexMinMax-1);
+ 
+   for i = 0, IndexMinMax-2 do dF[i] = TabIndex[i+1] - TabIndex[i];
+
+   tabChangeNum = where( dF ne 0, IndexChangeTab);  
+
+   if (IndexChangeTab gt 0) then begin 
+         energyIndices = uniq(TabIndex,sort(TabIndex)); 
+         MinEnergy =  Min((*Graph[GraphN].yaxis)[*,energyIndices]);
+         MaxEnergy =  Max((*Graph[GraphN].yaxis)[*,energyIndices]);
+         print, 'Freq Tab was changed ', IndexChangeTab, ' times';
+   endif else begin
+         MinEnergy =  Min((*Graph[GraphN].yaxis)[*,TabIndex[0]]);
+         MaxEnergy =  Max((*Graph[GraphN].yaxis)[*,TabIndex[0]]);
+   endelse 
+
+   
+     if (Graph[GraphN].Ly.range[0] eq Graph[GraphN].Ly.range[1]) then begin
+                Graph[GraphN].Ly.range = [MinEnergy, MaxEnergy]
+                Graph[GraphN].Ly.style = 0
+    endif else begin
+                Graph[GraphN].Ly.style = 1
+                MinEnergy = graph[GraphN].Ly.range[0];
+                MaxEnergy = graph[GraphN].Ly.range[1];
+    endelse
+ 
+    !y = Graph[GraphN].Ly
+     
+    if KEYWORD_SET(LIN) then begin
+         plot,graph[GraphN].Lx.range, graph[GraphN].Ly.range, /nodata, /noerase, ystyle=1, $
+                                                                          charsize= graph[GraphN].Lp.charsize*0.8, color = !dnc-1 
+    endif else begin
+        plot_io,graph[GraphN].Lx.range, graph[GraphN].Ly.range, /nodata, /noerase, ystyle=1, $
+                                            ytickformat='yticks', charsize= graph[GraphN].Lp.charsize*0.8, color = !dnc-1 
+   endelse
+ 
+     MinVal = (MinCount ge 0) ? MinCount : min(Val)      
+     MaxVal = (MaxCount ge 0) ? MaxCount : max(Val)  
+ 
+;----------------------------------------- 
+    Step = Graph[GraphN].Sampling[0] > Graph[GraphN].Step
+    StepMax = Graph[GraphN].MaxSampling[0] > Step 
+  
+ ;-----------   NOW PLOT SPECTRA 
+    KF = float(!DNC - 2) /(MaxVal - MinVal)
+    xx = fltarr(4) & yy = fltarr(4)
+ 
+     for i = 0, N_Time - 2 do begin        
+        RE = (*Graph[GraphN].yaxis)[*,TabIndex[i]];       
+        xx[0] = Time[i]  > 0.0
+        xx[1] = xx[0]
+        xx[2] = Time[i+1] < Time[i] + StepMax
+        if (xx[2] GT graph[GraphN].TotalTime) then xx[2] = graph[GraphN].TotalTime
+        xx[3] = xx[2]
+ 
+        if (xx[0] LE graph[GraphN].TotalTime) then begin 
+            for k = 0, N_Spec-2 do begin
+               yy[0] = RE[k]
+               if (yy[0] GT MaxEnergy) or (yy[0] LT MinEnergy or (not finite(yy[0]))) then continue;
+               yy[1] = k lt N_Spec-1 ? RE[k+1] : MinEnergy 
+               if (yy[1] LT MinEnergy or (not finite(yy[1]))) then continue;
+               yy[2] = yy[1]
+               yy[3] = yy[0]
+              
+               lcount = Val[k,i]
+               if (lcount LE 0.0) then lcount = MinVal
+               cl = fix(KF*(lcount - MinVal))
+               if (lcount GE  MaxVal) then  cl = !DNC - 2
+                                   
+               PolyFill,xx,yy,color=(cl > 0), /data
+            endfor
+        endif
+     endfor
+      
+;-------------------- Legend ----------------------------------------
+      spec_legend_lin, MinVal, MaxVal 
+;------------------ MIN-MAX------------------------------------------------            
+      Graph(GraphN).Min  = MinVal 
+      Graph(GraphN).Max  = MaxVal
+       
+return
+end
+;--------------------------------------------------------------------
diff --git a/amda_plus/amdalib/plotspecthemisel.pro b/amda_plus/amdalib/plotspecthemisel.pro
new file mode 100644
index 0000000..25ea59b
--- /dev/null
+++ b/amda_plus/amdalib/plotspecthemisel.pro
@@ -0,0 +1,120 @@
+;============================================================
+;
+;                Spectra THEMIS
+;                Only ONE ITEM -> no processing
+;=============================================================
+
+  pro PlotSpecThemisEl, THEMIS,  LIN = lin
+
+   common GraphC, Graph, GraphN 
+   common request, List, StartTime, TimeInt
+
+    FillValue = Graph[GraphN].FillValue[0]
+ ;    
+      ID = Long(graph[GraphN].DataID[Item])  
+      VI = 'th'+THEMIS+':esa:l2e'
+      sz = 15L
+      Energy1 = fltarr(sz)
+      err = call_external(!PROJLIB + 'libParam.so', 'getInfo', $
+                          ID, VI, 'EnergyReduced', sz, Energy1)
+
+     err = call_external(!DDLIB +'DD_idl.so','CloseID',ID)
+  
+  ;
+    Energy = *(Graph[GraphN].yaxis)
+     
+    MinEnergy = Min(Energy);
+    MaxEnergy = Max(Energy);
+  
+     if (Graph[GraphN].Ly.range[0] eq Graph[GraphN].Ly.range[1]) then begin
+                Graph[GraphN].Ly.range = [MinEnergy, MaxEnergy]
+                Graph[GraphN].Ly.style = 0
+    endif else begin
+                Graph[GraphN].Ly.style = 1
+                MinEnergy = graph[GraphN].Ly.range[0];
+                MaxEnergy = graph[GraphN].Ly.range[1];
+    endelse
+ 
+    !y = Graph[GraphN].Ly
+     
+    if KEYWORD_SET(LIN) then plot,graph[GraphN].Lx.range, graph[GraphN].Ly.range, /nodata, /noerase, ystyle=1, $
+                                                                          charsize= graph[GraphN].Lp.charsize*0.8, color = !dnc-1 $
+    else plot_io,graph[GraphN].Lx.range, graph[GraphN].Ly.range, /nodata, /noerase, ystyle=1, $
+                                            ytickformat='yticks', charsize= graph[GraphN].Lp.charsize*0.8, color = !dnc-1 
+    
+;--------------------- No DATA - just axes -----------------------   
+   if (N_Elements(*Graph[GraphN].Time[0]) eq 0) then begin  
+         nodata
+         return
+   endif
+
+   Time = (*Graph[GraphN].Time[0])
+   if (Time[0] GT Graph[GraphN].TotalTime) then begin
+        nodatafortimeinterval
+         return
+  endif
+ 
+   Val = (*Graph[GraphN].Val[0])  
+   N_Time = N_elements(Time);
+   N_Spec = N_elements(Val)/N_Time; 
+   Val = reform((Val),N_Spec,N_Time)  
+ 
+   numMinMax = where(Val gt 0.0, IndexMinMax)
+;--------------------- No DATA - just axes -----------------------      
+  if (IndexMinMax LE 0) then begin
+         nodatafortimeinterval  
+         return
+  endif  
+    MinVal = min(Val[numMinMax]) 
+    MaxVal = max(Val[numMinMax])
+ 
+;----------------------------------------- 
+    Step = Graph[GraphN].Sampling[0] > Graph[GraphN].Step
+    StepMax = Graph[GraphN].MaxSampling[0] > Step 
+    
+ ;-----------   NOW PLOT SPECTRA 
+    KF = float(!DNC - 2) /(alog(MaxVal) - alog(MinVal))
+    xx = fltarr(4) & yy = fltarr(4)
+ ;
+     for i = 0, N_Time - 2 do begin
+        xx[0] = Time[i]  > 0.0
+        xx[1]=xx[0]
+        xx[2]= Time[i+1] < Time[i]+StepMax
+        if (xx[2] GT graph[GraphN].TotalTime) then xx[2] = graph[GraphN].TotalTime
+        xx[3]=xx[2] 
+        if (xx[0] LE graph[GraphN].TotalTime) then begin
+        numNaN = where(finite(Val[*,i]), indexNan);
+        if (indexNaN eq 15) then begin
+                RE = Energy1 
+                Nspec = 15
+        endif else begin
+                RE = Energy 
+                Nspec = 32
+        endelse 
+            for k = 0, N_Spec-2 do begin
+               yy[0] = RE[k]
+               if (yy[0] GT MaxEnergy) or (yy[0] LT MinEnergy or (not finite(yy[0]))) then continue;
+               yy[1] = k lt N_Spec-1 ? RE[k+1] : MinEnergy 
+               if (yy[1] LT MinEnergy or (not finite(yy[1]))) then continue;
+               yy[2] = yy[1]
+               yy[3] = yy[0]
+              
+               lcount = Val[k,i]
+               if (lcount LE 0.0) then lcount = MinVal
+               cl = fix(KF*(alog(lcount) - alog(MinVal)))
+               if (lcount GE  MaxVal) then  cl = !DNC - 2
+                                   
+               PolyFill,xx,yy,color=(cl > 0), /data
+            endfor
+        endif
+     endfor
+      
+;-------------------- Legend ----------------------------------------
+      spec_legend, MinVal, MaxVal 
+;------------------ MIN-MAX------------------------------------------------            
+      Graph(GraphN).Min  = MinVal 
+      Graph(GraphN).Max  = MaxVal
+       
+return
+end
+;--------------------------------------------------------------------
diff --git a/amda_plus/amdalib/plotten_comp_new.pro b/amda_plus/amdalib/plotten_comp_new.pro
new file mode 100644
index 0000000..b75f15a
--- /dev/null
+++ b/amda_plus/amdalib/plotten_comp_new.pro
@@ -0,0 +1,61 @@
+;============================================================
+;
+;                      plot Tensor Component
+;  
+;=============================================================
+
+  pro PlotTen_Comp_new, Start, Number, comp, pen, symbol 
+
+  common GraphC, Graph, GraphN
+   
+   FillValue = Graph[GraphN].FillValue[0]
+   
+   ;--------------------- No DATA - just axes -----------------------   
+   if (N_Elements(*Graph[GraphN].Time[0]) eq 0) then begin  
+         nodata
+         return
+   endif
+   Time =  Graph[GraphN].Time[0]
+
+   Y0 = N_elements(*Graph[GraphN].Val[0])/N_elements(*Time)
+   (*Graph[GraphN].Val[0]) = reform((*Graph[GraphN].Val[0]),Y0, N_elements(*Time)) 
+   Val = (*Graph[GraphN].Val[0])[Start:Start+Number-1,*]  
+
+;-------------------- Min-Max----------------------------------------
+   if (finite(FillValue)) then begin 
+            numMinMax = where(abs(Val[comp, *]) lt abs(FillValue), IndexMinMax)  
+            minValue = FillValue/10.0
+   endif else begin   
+       numMinMax = where(finite(Val[comp, *]),IndexMinMax) 
+       minValue = FillValue
+   endelse
+   
+;--------------------- No DATA - just axes -----------------------      
+    if (IndexMinMax LE 0) then begin
+         nodata
+         return
+     endif    
+
+  MinVal = min(Val[comp,numMinMax])
+  MaxVal = max(Val[comp,numMinMax]) 
+
+   if (Graph[GraphN].Ly.range[0] eq Graph[GraphN].Ly.range[1]) then begin
+                  Graph[GraphN].Ly.range = [MinVal, MaxVal]
+                  Graph[GraphN].Ly.style = 0
+   endif else Graph[GraphN].Ly.style = 1 
+  
+    !y = Graph[GraphN].Ly
+     
+
+    if (execute(Graph[GraphN].AxisF) NE 1) then plot_io, *Time, Val[comp,*], color = pen, PSYM = symbol, MIN_VALUE = MinValue else $ 
+    oplot, *Time, Val[comp,*], color = pen, MIN_VALUE = MinValue, PSYM = symbol       
+
+;------------------------------- LAG------------------------------------------------
+   legend,(*Graph[GraphN].names)[comp],pen
+ 
+;------------------------------ Min-Max------------------------------------------------
+     Graph(GraphN).Min  = MinVal 
+     Graph(GraphN).Max  = MaxVal  
+return
+end
+;--------------------------------------------------------------------
diff --git a/amda_plus/amdalib/plotvec.pro b/amda_plus/amdalib/plotvec.pro
new file mode 100644
index 0000000..96cbc98
--- /dev/null
+++ b/amda_plus/amdalib/plotvec.pro
@@ -0,0 +1,99 @@
+;============================================================
+;
+;                    Vector -> 3 components
+;                Only ONE ITEM -> no processing
+;=============================================================
+
+  pro PlotVec
+
+    common GraphC, Graph, GraphN 
+    
+    col = [!dnc-1, !dnc*20/256, !dnc-2];
+
+    FillValue =  Graph[GraphN].FillValue[0];
+ ;--------------------- No DATA - just axes -----------------------   
+   if (N_Elements(*Graph[GraphN].Time[0]) eq 0) then begin  
+         nodata
+         return
+   endif
+
+    Time = (*Graph[GraphN].Time[0])
+    
+    Val = (*Graph[GraphN].Val[0])  
+   
+    Val = reform((Val),3,N_elements(Time)) 
+
+    MaxValue = 1.e31 
+    MinValue = -1.e31
+ 
+    if (finite(FillValue)) then begin
+          numMinMax = where(Val ne FillValue, IndexMinMax) 
+          if (FillValue lt 0.0 ) then MinValue = FillValue/1.1
+          if (FillValue gt 0.0 ) then MaxValue = FillValue/1.1
+    endif else numMinMax = where(finite(Val),IndexMinMax)  
+         
+;--------------------- No DATA - just axes -----------------------      
+  if (IndexMinMax LE 0) then begin
+         nodata
+         return
+   endif 
+
+ ; FillValue after processing is changed!!!!
+    if (graph[GraphN].ProcessF ne '') then begin
+         isNan = 0;
+         cmd_arr = STRSPLIT(graph[GraphN].ProcessF,';',/EXTRACT)
+         for i = 0, N_elements(cmd_arr) - 1 do begin
+           cmd = cmd_arr[i]+', Time+Graph[GraphN].TimeBase, Val' 
+           res = execute(cmd)
+         endfor
+         if (graph[GraphN].ProcessF[0] EQ 'cain' OR graph[GraphN].ProcessF[0] EQ 'morsch') then isNan = 1
+         if (isNan) then numMinMax = where(finite(Val), IndexMinMax) else  numMinMax = where(Val GT -1.e31, IndexMinMax); 
+         if (IndexMinMax LE 0) then begin
+            nodata
+         return
+        endif                   
+    endif  
+
+    MinVal = min(Val[numMinMax])
+    MaxVal = max(Val[numMinMax])
+    
+
+    if Graph[GraphN].Ly.range[0] eq Graph[GraphN].Ly.range[1] then begin
+                Graph[GraphN].Ly.range = [MinVal, MaxVal]
+                Graph[GraphN].Ly.style = 0
+    endif else Graph[GraphN].Ly.style = 1
+    
+    !y = Graph[GraphN].Ly
+    psym_ = N_Elements(*Graph[GraphN].Time[0]) gt 30 ? 0 : 10
+; there was average - no gaps check
+    if (Graph[GraphN].Step GT Graph[GraphN].Sampling[0]*2.0) then IndexGap = 0 $
+    else begin 
+        nn = N_elements(Time);
+        dt = dblarr(nn-1);
+        for i = 0, nn-2 do dt[i] = Time[i+1]-Time[i];
+
+        dataGap =  Graph[GraphN].MaxSampling[0] GT 0 ? Graph[GraphN].MaxSampling[0] * 5 : Graph[GraphN].Sampling[0] * 5;
+        numGap = where(dt GT dataGap, IndexGap);
+    endelse
+
+    if (execute(Graph[GraphN].AxisF) NE 1) then plot, Time, Val[0,*], MIN_VALUE=MinValue, MAX_VALUE=MaxValue,  color = !dnc-1, /NODATA, /NOERASE 
+    if (IndexGap eq 0) then begin              
+        for i = 0, 2 do oplot, Time, Val[i,*], MIN_VALUE = MinValue, MAX_VALUE=MaxValue, PSYM = psym_, color = col[i]                
+    endif else begin
+      jStart = 0L;
+      for j = 0, IndexGap - 1 do begin
+           jStop = numGap[j]; 
+            for i = 0, 2 do oplot, Time[jStart:jStop], Val[i,jStart:jStop], MIN_VALUE = MinValue, MAX_VALUE=MaxValue, PSYM = psym_, color = col[i]    
+            jStart = jStop + 1;          
+       endfor  
+       for i = 0, 2 do oplot, Time[jStart:*], Val[i,jStart:*], color = col[i], MIN_VALUE = MinValue, MAX_VALUE=MaxValue, PSYM = psym_ 
+     endelse
+                            
+;-------------------- Legend ----------------------------------------
+    legend, (*Graph[GraphN].names), [!dnc-1, !dnc*20/256, !dnc-2]
+     
+     Graph(GraphN).Min = MinVal;
+     Graph(GraphN).Max = MaxVal;
+return
+end
+;--------------------------------------------------------------------
diff --git a/amda_plus/amdalib/plotvec_.pro b/amda_plus/amdalib/plotvec_.pro
new file mode 100644
index 0000000..78bc8a5
--- /dev/null
+++ b/amda_plus/amdalib/plotvec_.pro
@@ -0,0 +1,69 @@
+;============================================================
+;
+;                    Vector -> 3 components
+;                Only ONE ITEM -> no processing
+;=============================================================
+
+  pro PlotVec_
+
+      common GraphC, Graph, GraphN 
+    
+    FillValue = Graph[GraphN].FillValue[0]
+ ;--------------------- No DATA - just axes -----------------------   
+   if (N_Elements(*Graph[GraphN].Time[0]) eq 0) then begin  
+         nodata
+         return
+   endif
+
+    Time =  (*Graph[GraphN].Time[0])
+    
+    Y0 = N_elements(*Graph[GraphN].Val[0])/N_elements(Time)
+    (*Graph[GraphN].Val[0]) = reform((*Graph[GraphN].Val[0]),Y0, N_elements(Time)) 
+    Val = (*Graph[GraphN].Val[0])[0:2,*]
+   
+  if (finite(FillValue)) then begin
+	MinValue = FillValue/10.0;
+        if (FillValue eq -1.e31) then MinValue = -1.e10;
+        numMinMax = where(Val gt  MinValue, IndexMinMax)  
+        
+  endif else begin
+        numMinMax = where(finite(Val),IndexMinMax)
+        MinValue = FillValue;
+  endelse
+ 
+;--------------------- No DATA - just axes -----------------------      
+  if (IndexMinMax LE 0) then begin
+         nodata
+         return
+  endif   
+
+    if (graph[GraphN].ProcessF ne '') then begin
+         cmd = graph[GraphN].ProcessF+', Time+Graph[GraphN].TimeBase, Val' 
+         res = execute(cmd)
+    endif
+ 
+     
+    MinVal = min(Val[numMinMax])
+    MaxVal = max(Val[numMinMax])
+      
+    if Graph[GraphN].Ly.range[0] eq Graph[GraphN].Ly.range[1] then begin
+                Graph[GraphN].Ly.range = [MinVal, MaxVal]
+                Graph[GraphN].Ly.style = 0
+    endif else Graph[GraphN].Ly.style = 1
+    
+    !y = Graph[GraphN].Ly
+     psym_ = N_Elements(*Graph[GraphN].Time[0]) gt 30 ? 0 : 10
+
+    if (execute(Graph[GraphN].AxisF) NE 1) then plot, Time, Val[0,*], MIN_VALUE=MinValue, PSYM = psym_, color = !dnc-1  else oplot, Time, Val[0,*], MIN_VALUE = MinValue, PSYM = psym_, color = !dnc-1
+  
+    oplot, Time, Val[1,*],  MIN_VALUE = MinValue, PSYM = psym_, color = !dnc*20/256
+    oplot, Time, Val[2,*],  MIN_VALUE = MinValue, PSYM = psym_, color = !dnc-2
+;-------------------- Legend ----------------------------------------
+    legend, (*Graph[GraphN].names), [!dnc-1, !dnc*20/256, !dnc-2]
+;------------------ MIN-MAX------------------------------------------------            
+     Graph(GraphN).Min  = MinVal 
+     Graph(GraphN).Max  = MaxVal
+       
+return
+end
+;--------------------------------------------------------------------
diff --git a/amda_plus/amdalib/plotvec_comp_.pro b/amda_plus/amdalib/plotvec_comp_.pro
new file mode 100644
index 0000000..5bbb0a1
--- /dev/null
+++ b/amda_plus/amdalib/plotvec_comp_.pro
@@ -0,0 +1,98 @@
+;============================================================
+;
+;                    Vector - One Component
+;                      Only ONE ITEM -> no processing
+;  
+;=============================================================
+
+  pro PlotVec_Comp_, comp, pen
+ 
+    common GraphC, Graph, GraphN
+
+    FillValue = Graph[GraphN].FillValue[0]
+    colour = [!dnc - 1, !dnc*20/256, !dnc*90/256, !dnc - 2]
+  ;--------------------- No DATA - just axes -----------------------   
+   if (N_Elements(*Graph[GraphN].Time[0]) eq 0) then begin  
+         nodata
+         return
+   endif
+
+    Time =  (*Graph[GraphN].Time[0])
+    Y0 = N_elements(*Graph[GraphN].Val[0])/N_elements(Time)
+    (*Graph[GraphN].Val[0]) = reform((*Graph[GraphN].Val[0]),Y0, N_elements(Time)) 
+    Val = (*Graph[GraphN].Val[0])[0:2,*]
+
+    if (finite(FillValue)) then begin
+	  MinValue = FillValue/10.0
+	  if (FillValue eq -1.e31) then MinValue = -1.e10;
+          numMinMax = where(Val[comp < 2,*] gt MinValue, IndexMinMax)          
+    endif else begin
+       numMinMax = where(finite(Val[comp < 2,*]), IndexMinMax)
+       MinValue = FillValue;
+   endelse 
+ ;--------------------- No DATA - just axes -----------------------      
+    if (IndexMinMax LE 0) then begin
+         nodata
+         return
+     endif   
+
+    if graph[GraphN].ProcessF ne '' then begin
+         cmd = graph[GraphN].ProcessF+', Time+Graph[GraphN].TimeBase, Val' 
+         res = execute(cmd)
+    endif
+   
+    deltaT = graph[graphN].sampling[0] GT Graph[GraphN].step ?   graph[graphN].sampling[0]/2.0 : Graph[GraphN].step/2.0;
+    gapT = deltaT * 4.0;
+
+    MinVal = min(Val[comp < 2,numMinMax])
+    MaxVal = max(Val[comp < 2,numMinMax])
+  
+    if (comp LT 3) then MF = Val[comp,*] else begin
+     MF = fltarr(N_elements(Time))
+      
+        if (finite(FillValue)) then begin
+          for i = 0, N_elements(Time) - 1 do   MF[i] = Val[0,i] lt MinValue ? MinValue  : sqrt(total(Val[*,i]^2))
+        endif else begin
+           for i = 0, N_elements(Time) - 1 do MF[i] = finite(Val[0,i]) ? sqrt(total(Val[*,i]^2)) : FillValue
+        endelse 
+      
+     MinVal = min(MF[numMinMax])
+     MaxVal = max(MF[numMinMax])
+    endelse
+    
+    if Graph[GraphN].Ly.range[0] eq Graph[GraphN].Ly.range[1] then begin
+               Graph[GraphN].Ly.range = [MinVal, MaxVal]
+               Graph[GraphN].Ly.style = 0
+    endif else Graph[GraphN].Ly.style = 1
+    
+    !y = Graph[GraphN].Ly
+ 
+    if (execute(Graph[GraphN].AxisF) NE 1) then plot, Time, MF, /NODATA, /NOERASE  
+    
+         if (MF[0] lt Graph[GraphN].Ly.range[0]) then MF[0] = Graph[GraphN].Ly.range[0];
+         if (MF[0] gt Graph[GraphN].Ly.range[1]) then MF[0] = Graph[GraphN].Ly.range[1];          
+         plots, Time[0] + deltaT, MF[0], /DATA
+         for i = 1, N_elements(Time) - 1 do begin
+ 
+          if (Time[i] LE Graph[GraphN].TotalTime)  then begin
+               if (MF[i] lt Graph[GraphN].Ly.range[0]) then MF[i] = Graph[GraphN].Ly.range[0];
+               if (MF[i] gt Graph[GraphN].Ly.range[1]) then MF[i] = Graph[GraphN].Ly.range[1];
+               To_Continue = (Time[i] - Time[i-1] LE gapT);
+               if To_Continue then $ 
+                        plots, Time[i] + deltaT, MF[i], color=colour[pen], /CONTINUE, /DATA  $
+              else  plots, Time[i] + deltaT, MF[i], /DATA, psym = 5, color = colour[pen]
+          endif
+        endfor
+     
+;------------------ Legend -----------------------------------------
+     
+    legend,(*Graph[GraphN].names)[comp],colour[pen]
+  
+;---------------------- MIN-MAX---------------------- 
+
+     Graph(GraphN).Min  = MinVal 
+     Graph(GraphN).Max  = MaxVal
+  
+  return
+end
+;--------------------------------------------------------------------
diff --git a/amda_plus/amdalib/plotvec_comp_new.pro b/amda_plus/amdalib/plotvec_comp_new.pro
new file mode 100644
index 0000000..08cee3b
--- /dev/null
+++ b/amda_plus/amdalib/plotvec_comp_new.pro
@@ -0,0 +1,116 @@
+;============================================================
+;
+;                    Vector - One Component
+;                      Only ONE ITEM -> no processing
+;  
+;=============================================================
+
+  pro PlotVec_Comp_New, comp, pen, symbol
+ 
+    common GraphC, Graph, GraphN
+
+    FillValue = Graph[GraphN].FillValue[0]
+  ;  colour = [!dnc - 1, !dnc*20/256, !dnc*90/256, !dnc - 2]
+  
+;--------------------- No DATA - just axes -----------------------   
+   if (N_Elements(*Graph[GraphN].Time[0]) eq 0) then begin  
+         nodata
+         return
+    endif
+
+    Time = (*Graph[GraphN].Time[0])
+    if (N_elements(Time) eq 0) then return
+    Val = (*Graph[GraphN].Val[0])
+
+    MaxValue = 1.e31 
+    MinValue = -1.e31
+
+    Val = reform(Val, 3, N_elements(Time)) 
+
+    if (finite(FillValue)) then begin
+             numMinMax = where(Val[comp < 2,*] ne FillValue, IndexMinMax)
+    endif else begin
+            numMinMax = where(finite(Val[comp < 2,*]),IndexMinMax) 
+     ;       MinValue = FillValue;
+    endelse
+    
+ ;--------------------- No DATA - just axes -----------------------    
+     if (IndexMinMax LE 0) then begin
+         nodata
+         return
+     endif    
+    
+    Val = Val[*,numMinMax];
+    Time = Time[numMinMax]; 
+
+ ; FillValue after processing is changed!!!!
+    if (graph[GraphN].ProcessF ne '') then begin
+         fillValue = -1.e31;
+         cmd_arr = STRSPLIT(graph[GraphN].ProcessF,';',/EXTRACT)
+         for i = 0, N_elements(cmd_arr) - 1 do begin
+           cmd = cmd_arr[i]+', Time+Graph[GraphN].TimeBase, Val' 
+           res = execute(cmd)
+         endfor
+         if (graph[GraphN].ProcessF[0] EQ 'cain' OR graph[GraphN].ProcessF[0] EQ 'morsch') then fillValue = !Values.F_NAN
+         if (finite(fillValue)) then  numMinMax = where(Val GT fillValue, IndexMinMax)  else  numMinMax = where(finite(Val), IndexMinMax);
+         if (IndexMinMax LE 0) then begin
+            nodata
+         return
+        endif       
+    endif
+
+    if (finite(FillValue)) then begin
+            numMinMax = where(Val[comp < 2,*] ne FillValue, IndexMinMax)
+            if (FillValue lt 0.0 ) then MinValue = FillValue/1.1
+            if (FillValue gt 0.0 ) then MaxValue = FillValue/1.1
+	    if (FillValue eq -1.e31) then begin
+		MinValue = -1.e10;
+		numMinMax = where(Val[comp < 2,*] gt MinValue, IndexMinMax)
+	    endif
+    endif else begin
+            numMinMax = where(finite(Val[comp < 2,*]),IndexMinMax) 
+     ;       MinValue = FillValue;
+    endelse
+
+    if (IndexMinMax LE 0) then begin
+            nodata
+         return
+    endif  
+    
+   MinVal = min(Val[comp < 2,numMinMax])
+   MaxVal = max(Val[comp < 2,numMinMax])
+    
+    if (comp LT 3) then MF = Val[comp,*] else begin
+     MF = fltarr(N_elements(Time))
+     if (finite(FillValue)) then begin
+           for i = 0, N_elements(Time)-1 do MF[i] = Val[0,i] eq FillValue ? FillValue  : sqrt(total(Val[*,i]^2))
+        endif else begin
+           for i = 0, N_elements(Time)-1 do  MF[i] = finite(Val[0,i]) ? sqrt(total(Val[*,i]^2)) : FillValue
+        endelse 
+     MinVal = min(MF[numMinMax])
+     MaxVal = max(MF[numMinMax])
+    endelse
+    
+    if Graph[GraphN].Ly.range[0] eq Graph[GraphN].Ly.range[1] then begin
+               Graph[GraphN].Ly.range = [MinVal, MaxVal]
+               Graph[GraphN].Ly.style = 0
+    endif else Graph[GraphN].Ly.style = 1
+    
+    !y = Graph[GraphN].Ly
+     psym_ = N_Elements(*Graph[GraphN].Time[0]) gt 30 ? symbol : 10; 
+
+    if (execute(Graph[GraphN].AxisF) NE 1) then plot, Time, MF, MIN_VALUE=MinValue, MAX_VALUE = MaxValue, PSYM = psym, color = pen  $
+             else oplot, Time, MF, MIN_VALUE = MinValue,MAX_VALUE = MaxValue, PSYM = psym_, color = pen
+
+;------------------ Legend -----------------------------------------
+     
+    legend,(*Graph[GraphN].names)[comp],pen
+  
+;---------------------- MIN-MAX---------------------- 
+
+     Graph(GraphN).Min  = MinVal 
+     Graph(GraphN).Max  = MaxVal
+  
+  return
+end
+;--------------------------------------------------------------------
diff --git a/amda_plus/amdalib/plotveccain.pro b/amda_plus/amdalib/plotveccain.pro
new file mode 100644
index 0000000..07d1ceb
--- /dev/null
+++ b/amda_plus/amdalib/plotveccain.pro
@@ -0,0 +1,93 @@
+;============================================================
+;
+;                    Vector -> 3 components
+;                Only ONE ITEM -> no processing
+;=============================================================
+
+  pro PlotVecCain, sampling
+
+    common GraphC, Graph, GraphN 
+    
+    col = [!dnc-1, !dnc*20/256, !dnc-2];
+   
+
+    FillValue =  Graph[GraphN].FillValue[0];
+ ;--------------------- No DATA - just axes -----------------------   
+   if (N_Elements(*Graph[GraphN].Time[0]) eq 0) then begin  
+         nodata
+         return
+   endif
+
+     Time = (*Graph[GraphN].Time[0])
+
+    Val = (*Graph[GraphN].Val[0])     
+    Val = reform((Val),3,N_elements(Time)) 
+
+    MaxValue = 1.e31 
+    MinValue = -1.e31
+ 
+    if (finite(FillValue)) then begin
+          numMinMax = where(Val ne FillValue, IndexMinMax) 
+          if (FillValue lt 0.0 ) then MinValue = FillValue/1.1
+          if (FillValue gt 0.0 ) then MaxValue = FillValue/1.1
+    endif else numMinMax = where(finite(Val),IndexMinMax)  
+         
+;--------------------- No DATA - just axes -----------------------      
+  if (IndexMinMax LE 0) then begin
+         nodata
+         return
+   endif 
+    coeff = Graph[GraphN].Sampling[0] / sampling
+    TimeSize = long(n_elements(Time)*coeff);
+  
+    FinalTime = dindgen(TimeSize)*Sampling;//Time[0];
+
+    Flag = intarr(TimeSize);
+    Y = reform(replicate(FillValue, 3L*TimeSize),3L, TimeSize);
+    interpolation_, Time, Val, Graph[GraphN].Sampling[0]* 3.0, FinalTime, Y, Flag;
+    cmd = graph[GraphN].ProcessF + ', FinalTime+Graph[GraphN].TimeBase, Y'; 
+    res = execute(cmd)
+ 
+    num = where(finite(Y));     
+    MinVal = min(Y[num])
+    MaxVal = max(Y[num])
+ 
+    if Graph[GraphN].Ly.range[0] eq Graph[GraphN].Ly.range[1] then begin
+                Graph[GraphN].Ly.range = [MinVal, MaxVal]
+                Graph[GraphN].Ly.style = 0
+    endif else Graph[GraphN].Ly.style = 1
+    
+    !y = Graph[GraphN].Ly
+    psym_ = N_Elements(*Graph[GraphN].Time[0]) gt 30 ? 0 : 10
+; there was average - no gaps check
+    if (Graph[GraphN].Step GT Graph[GraphN].Sampling[0]*2.0) then IndexGap = 0 $
+    else begin 
+        nn = N_elements(FinalTime);
+        dt = dblarr(nn-1);
+        for i = 0L, nn-2L do dt[i] = FinalTime[i+1]-FinalTime[i];
+
+        dataGap =  Sampling * 5.0;
+        numGap = where(dt GT dataGap, IndexGap);
+    endelse
+
+    if (execute(Graph[GraphN].AxisF) NE 1) then plot, FinalTime, Y[0,*], MIN_VALUE=MinValue, MAX_VALUE=MaxValue,  color = !dnc-1, /NODATA, /NOERASE 
+    if (IndexGap eq 0) then begin              
+        for i = 0, 2 do oplot, FinalTime, Y[i,*], MIN_VALUE = MinValue, MAX_VALUE=MaxValue, PSYM = psym_, color = col[i]                
+    endif else begin
+      jStart = 0L;
+      for j = 0, IndexGap - 1 do begin
+           jStop = numGap[j]; 
+            for i = 0, 2 do oplot, FinalTime[jStart:jStop], Y[i,jStart:jStop], MIN_VALUE = MinValue, MAX_VALUE=MaxValue, PSYM = psym_, color = col[i]    
+            jStart = jStop + 1;          
+       endfor  
+       for i = 0, 2 do oplot, FinalTime[jStart:*], Y[i,jStart:*], color = col[i], MIN_VALUE = MinValue, MAX_VALUE=MaxValue, PSYM = psym_ 
+     endelse
+                            
+;-------------------- Legend ----------------------------------------
+    legend, (*Graph[GraphN].names), [!dnc-1, !dnc*20/256, !dnc-2]
+     
+     Graph(GraphN).Min = MinVal;
+     Graph(GraphN).Max = MaxVal;
+return
+end
+;--------------------------------------------------------------------
diff --git a/amda_plus/amdalib/plotveccompcain.pro b/amda_plus/amdalib/plotveccompcain.pro
new file mode 100644
index 0000000..63169f2
--- /dev/null
+++ b/amda_plus/amdalib/plotveccompcain.pro
@@ -0,0 +1,93 @@
+;============================================================
+;
+;                    Vector - One Component
+;                      Only ONE ITEM -> no processing
+;  
+;=============================================================
+
+  pro PlotVecCompCain, sampling, comp, pen, symbol
+ 
+    common GraphC, Graph, GraphN
+
+    FillValue = Graph[GraphN].FillValue[0]
+  ;  colour = [!dnc - 1, !dnc*20/256, !dnc*90/256, !dnc - 2]
+  
+;--------------------- No DATA - just axes -----------------------   
+   if (N_Elements(*Graph[GraphN].Time[0]) eq 0) then begin  
+         nodata
+         return
+    endif
+
+    Time = (*Graph[GraphN].Time[0])
+    if (N_elements(Time) eq 0) then return
+    Val = (*Graph[GraphN].Val[0])
+
+    MaxValue = 1.e31 
+    MinValue = -1.e31
+
+    Val = reform(Val, 3, N_elements(Time)) 
+
+    if (finite(FillValue)) then begin
+             numMinMax = where(Val[comp < 2,*] ne FillValue, IndexMinMax)
+    endif else begin
+            numMinMax = where(finite(Val[comp < 2,*]),IndexMinMax) 
+     ;       MinValue = FillValue;
+    endelse
+    
+ ;--------------------- No DATA - just axes -----------------------    
+     if (IndexMinMax LE 0) then begin
+         nodata
+         return
+     endif  
+  
+    coeff = Graph[GraphN].Sampling[0] / sampling
+    TimeSize = long(n_elements(Time)*coeff);
+  
+    FinalTime = dindgen(TimeSize)*Sampling; + Time[0];
+    Flag = intarr(TimeSize);
+    Y = reform(replicate(FillValue, 3L*TimeSize),3L, TimeSize);
+    interpolation_, Time, Val, Graph[GraphN].Sampling[0]* 3.0, FinalTime, Y, Flag;
+
+     cmd = graph[GraphN].ProcessF + ', FinalTime+Graph[GraphN].TimeBase, Y'; 
+    res = execute(cmd)
+  
+    num = where(finite(Y[comp < 2,*]),IndexNum);     
+
+    if (comp LT 3) then begin
+        MF = Y[comp,*]
+        MinVal = min(MF[num])
+        MaxVal = max(MF[num])       
+    endif else begin
+     MF = fltarr(IndexNum)
+     if (finite(FillValue)) then begin
+           for i = 0, IndexNum-1 do MF[i] = Y[0,num[i]] eq FillValue ? FillValue  : sqrt(total(Y[*,num[i]]^2))
+        endif else begin
+           for i = 0, IndexNum-1 do  MF[i] = finite(Y[0,num[i]]) ? sqrt(total(Y[*,num[i]]^2)) : FillValue
+        endelse 
+     MinVal = min(MF[num])
+     MaxVal = max(MF[num])
+    endelse
+    
+    if Graph[GraphN].Ly.range[0] eq Graph[GraphN].Ly.range[1] then begin
+               Graph[GraphN].Ly.range = [MinVal, MaxVal]
+               Graph[GraphN].Ly.style = 0
+    endif else Graph[GraphN].Ly.style = 1
+    
+    !y = Graph[GraphN].Ly
+     psym_ = N_Elements(*Graph[GraphN].Time[0]) gt 30 ? symbol : 10; 
+
+    if (execute(Graph[GraphN].AxisF) NE 1) then plot, FinalTime[num], MF, MIN_VALUE=MinValue, MAX_VALUE = MaxValue, PSYM = psym, color = pen  $
+             else oplot, FinalTime[num], MF, MIN_VALUE = MinValue,MAX_VALUE = MaxValue, PSYM = psym_, color = pen
+
+;------------------ Legend -----------------------------------------
+     
+    legend,(*Graph[GraphN].names)[comp],pen
+  
+;---------------------- MIN-MAX---------------------- 
+
+     Graph(GraphN).Min  = MinVal 
+     Graph(GraphN).Max  = MaxVal
+  
+  return
+end
+;--------------------------------------------------------------------
diff --git a/amda_plus/amdalib/plotwsdspec.pro b/amda_plus/amdalib/plotwsdspec.pro
new file mode 100644
index 0000000..60e0d11
--- /dev/null
+++ b/amda_plus/amdalib/plotwsdspec.pro
@@ -0,0 +1,135 @@
+;============================================================
+;
+;                Spectra 
+;                Only ONE ITEM -> no processing
+;=============================================================
+
+  pro PlotWsdSpec, LIN = lin, LLIN = llin
+
+    common GraphC, Graph, GraphN 
+    
+    FillValue = Graph[GraphN].FillValue[0]
+
+    Energy = *(Graph[GraphN].yaxis)
+ 
+       
+    MinEnergy = Min(Energy);
+    MaxEnergy = Max(Energy);
+ 
+     if (Graph[GraphN].Ly.range[0] eq Graph[GraphN].Ly.range[1]) then begin
+                Graph[GraphN].Ly.range = [MinEnergy, MaxEnergy]
+                Graph[GraphN].Ly.style = 0
+    endif else begin
+                Graph[GraphN].Ly.style = 1
+                MinEnergy = graph[GraphN].Ly.range[0];
+                MaxEnergy = graph[GraphN].Ly.range[1];
+    endelse
+
+ 
+    !y = Graph[GraphN].Ly
+  
+;--------------------- No DATA - just axes -----------------------   
+   if (N_Elements(*Graph[GraphN].Time[0]) eq 0) then begin 
+         nodata
+         return
+   endif
+
+   Time = (*Graph[GraphN].Time[0])
+   if (Time[0] GT Graph[GraphN].TotalTime) then begin
+        nodatafortimeinterval
+         return
+  endif
+  
+   Val = (*Graph[GraphN].Val[0])  
+   N_Time = N_elements(Time);
+   N_Spec = N_elements(Val)/N_Time; 
+   Val = reform((Val),N_Spec,N_Time)  
+ 
+
+; Set value to FillValue when the energy is out of the requested range (used to determine correctly min and max value)
+
+   enMinMax = where(Energy lt MinEnergy, IndexMinMax)
+   if (IndexMinMax gt 0) then begin
+     Val[enMinMax,*] = FillValue
+   endif
+
+   enMinMax = where(Energy gt MaxEnergy, IndexMinMax)
+   if (IndexMinMax gt 0) then begin  
+     Val[enMinMax,*] = FillValue
+   endif     
+
+   numMinMax = where((Val gt 0) and (Val ne FillValue) and FINITE(Val), IndexMinMax)
+
+;--------------------- No DATA - just axes -----------------------      
+  if (IndexMinMax LE 0) then begin
+         nodatafortimeinterval  
+         return
+  endif  
+    MinVal =  min(Val[numMinMax]) 
+    MaxVal =  max(Val[numMinMax])
+ 
+
+    Step = Graph[GraphN].Sampling[0] > Graph[GraphN].Step
+    StepMax = Graph[GraphN].MaxSampling[0] > Step 
+    
+ ;-----------   NOW PLOT SPECTRA 
+
+    if KEYWORD_SET(LIN) then plot,graph[GraphN].Lx.range, graph[GraphN].Ly.range, /nodata, /noerase, ystyle=1, $
+                                                       charsize= graph[GraphN].Lp.charsize*0.8, color = !dnc-1 $
+    else plot_io,graph[GraphN].Lx.range, graph[GraphN].Ly.range, /nodata, /noerase, ystyle=1, $
+                                    ytickformat='yticks', charsize= graph[GraphN].Lp.charsize*0.8, color = !dnc-1
+
+    if KEYWORD_SET(LLIN) then  KF = float(!DNC - 2) /(MaxVal - MinVal) $
+    else KF = float(!DNC - 2) /(alog(MaxVal) - alog(MinVal))
+  
+
+    xx = fltarr(4) & yy = fltarr(4)
+ 
+  ;  if KEYWORD_SET(LLIN) then begin
+  ;      ; GRIS for background 
+  ;      TVLCT, r, g, b, /GET
+  ;      r[1] = 200 & g[1] = 200 & b[1] = 200
+  ;      TVLCT, r, g, b
+  ;  endif
+
+    for i = 0, N_Time - 2 do begin
+        xx[0] = Time[i]  > 0.0
+        xx[1]=xx[0]
+        xx[2]= Time[i+1] < Time[i]+StepMax
+        if (xx[2] GT graph[GraphN].TotalTime) then xx[2] = graph[GraphN].TotalTime
+        xx[3]=xx[2]
+        if (xx[0] LE graph[GraphN].TotalTime) then begin 
+            for k = 0, N_Spec-1 do begin
+               yy[0] = Energy[k]
+               if (yy[0] GT MaxEnergy) or (yy[0] LT MinEnergy) then continue;
+               yy[1] = k le N_Spec-1 ? Energy[k+1] : MinEnergy
+               if (yy[1] LT MinEnergy) then continue;
+               yy[2] = yy[1]
+               yy[3] = yy[0]
+               lcount = Val[k,i]
+               if (lcount LE 0.0) then lcount = MinVal;
+               if ((lcount EQ FillValue) or (FINITE(lcount) EQ 0)) then lcount = 0; continue ;Don't draw fill value data!
+               
+               cl = fix(KF*(alog(lcount) - alog(MinVal)))
+               if KEYWORD_SET(LLIN) then cl = fix(KF*(lcount - MinVal)) $
+               else cl = fix(KF*(alog(lcount) - alog(MinVal)))
+   
+               if (lcount GE  MaxVal) then  cl = !DNC - 2
+               PolyFill, xx, yy, color=(cl > 0), /data
+            endfor
+        endif
+     endfor
+
+
+;--------------------- Legend ---------------------------------------- 
+     if KEYWORD_SET(LLIN) then spec_legend_lin, MinVal, MaxVal $ 
+     else spec_legend, MinVal, MaxVal
+
+;------------------ MIN-MAX-------------------------------------------   
+      Graph(GraphN).Min  = MinVal 
+      Graph(GraphN).Max  = MaxVal
+       
+
+return
+end
+;--------------------------------------------------------------------
diff --git a/amda_plus/amdalib/print_com.pro b/amda_plus/amdalib/print_com.pro
new file mode 100644
index 0000000..eeedd39
--- /dev/null
+++ b/amda_plus/amdalib/print_com.pro
@@ -0,0 +1,140 @@
+;--------------------------------------
+;   PRINT_COMMON
+;    V.1.1
+;  12 Sept 2006 - V.1.0
+; Fri Sep 21 11:30:37 CEST 2007 - V.1.1 - numReal = N_elements(ParamsReal) eq 0 ...
+;---------------------------------------
+
+ pro PRINT_COM
+ 
+common Print_Commom, Type_of_File, TimeFormat, N_Param, Params_Uniq, TimeAver, DataCommon, FinalTime
+common WS_Par, N_Pars, Params, WSParam, Timing, numReal, numWS, File_Name 
+common GraphC, graph
+common Request, StartTime, TimeInt
+common ParName, ParName
+ 
+;-------------------- Read resource file named "print.res"--------------
+  get_lun,unit
+  openr,unit, 'print.res',error=err
+  if (err EQ 0) then begin
+    temp = ' '  
+    typeF = ' ' 
+    compress = ' '
+    readf, unit, temp;   
+    readf, unit, typeF;
+    readf, unit, compress;
+    readf, unit, TimeFormat;
+  endif
+  close, unit
+  free_lun,unit
+ 
+  Type_of_File = STRSPLIT(typeF,' ', /EXTRACT)
+  if (Type_of_File[0] eq 'uniq') then TimeAver = float(Type_of_File[1]) else TimeAver = -1.0
+  Params = STRSPLIT(STRUPCASE(temp), ' ', /EXTRACT)
+ ; Params = Params(sort(Params))
+
+  N_Pars = N_Elements(Params)
+
+
+;-------------------- Separate or Combined file
+ 
+   case type_of_file[0] of
+    "multi" : begin
+               file_name = strarr(N_Pars)
+               for i = 0, N_Pars-1 do begin
+                  ParName = StrLowCase(Params[i])
+                 if (strcmp('WS_', Params[i], 3) eq 1) then begin  
+                   file_name[i] = StrUpCase(ParName) +'.txt'
+                   openw, LUN, file_name[i], /GET_LUN
+     
+                 endif else begin
+      
+                    file_name[i] = StrUpCase(ParName)+'.txt'
+                    openw, LUN, file_name[i], /GET_LUN
+      
+                  endelse
+                   close, LUN
+                   free_lun, LUN
+               endfor
+              end
+    "uniq" :  begin
+                file_name = 'ALL.txt'               
+                Output = ''
+                OutputWS = ''     
+                for i = 0, N_Pars-1 do begin
+                  ParName = StrLowCase(Params[i])
+                  if (strcmp('WS_', Params[i], 3) eq 1) then  begin
+                        OutputWS += StrUpCase(ParName)+"?" 
+                      endif  else begin          
+                   Output += StrUpCase(ParName)+"?" 
+                  endelse
+                endfor
+                 Output += OutputWS      
+                openw, LUN, "header.txt", /GET_LUN
+                printf, LUN, Output      
+                close, LUN
+               free_lun, LUN
+              end
+     else :
+   endcase
+   
+  Timing = fltarr(N_Pars)
+  WSParam = strarr(N_Pars)
+  
+   for i = 0, N_Pars - 1 do $
+       if (strcmp('WS_', Params[i], 3) eq 1) then begin
+         numWS = N_elements(NumWS) eq 0 ? i : [numWS,i]
+         get_lun, unit
+         openr,unit, STRLOWCASE(Params[i])+'.res', error=err
+         if (err EQ 0) then begin
+                realParams = ' '                  
+                readf, unit, realParams
+                readf, unit, Timepar
+          endif
+          close, unit
+          free_lun,unit
+          Timing[i] = TimePar 
+
+; replace ":" par "_" for remote params
+	   if (STRPOS(realParams, ':') gt 0) then begin
+	     tempArr = STRSPLIT(realParams, ':', /EXTRACT);
+	     realParams = STRJOIN(tempArr, '_');	    
+	   endif
+
+ ;         NewPars = parser_p(CalcString,Params[i])
+ 
+          NewPars = strsplit(realParams, " ", /EXTRACT)
+          for j = 0, N_elements(NewPars) - 1 do WSParam[i] += NewPars(j) + ' '
+          ParamsReal = N_elements(ParamsReal) eq 0 ? NewPars : [ParamsReal,NewPars[*]]
+       endif else begin 
+            numReal = N_elements(ParamsReal) eq 0 OR  N_elements(numReal) eq 0 ? i : [numReal,i]
+            ParamsReal = N_elements(ParamsReal) eq 0 ? Params[i] : [ParamsReal,Params[i]] 
+       endelse
+
+  Params_Uniq = CleanUp(ParamsReal)
+  
+  record = {      name : '   ',                   $ ; Get procedure name             
+                  size : [1L,1L],                 $ ; Time Dimension, VectorSize
+                  sampling : 1.0 ,                $ ; secs
+                  time : PTR_NEW(),               $
+                  data : PTR_NEW(),               $
+                  LastTime: PTR_NEW(),            $ 
+                  LastData: PTR_NEW()             $
+                  } 
+                   
+ 
+  N_Param = N_elements(Params_Uniq)
+  DataCommon = REPLICATE(record,N_Param)
+  
+   
+  for i = 0, N_Param-1 do begin  
+   DataCommon(i).name = Params_Uniq(i)+'_'
+   DataCommon(i).time = PTR_NEW(/ALLOCATE_HEAP)
+   DataCommon(i).data = PTR_NEW(/ALLOCATE_HEAP)
+   DataCommon(i).LastTime = PTR_NEW(/ALLOCATE_HEAP)
+   DataCommon(i).LastData = PTR_NEW(/ALLOCATE_HEAP) 
+  endfor
+   
+ return
+ end
+ 
\ No newline at end of file
diff --git a/amda_plus/amdalib/ros_ica_en_init.pro b/amda_plus/amdalib/ros_ica_en_init.pro
new file mode 100644
index 0000000..f77fe8a
--- /dev/null
+++ b/amda_plus/amdalib/ros_ica_en_init.pro
@@ -0,0 +1,72 @@
+;====================================================
+; Rosetta ICA Energy Spectra 
+;----------------------------------------------------
+
+pro ros_ica_en_init, ANODE = Anode, STOP_ANODE = Stop_Anode, elevationAsTime = elevationAsTime, $
+                     LOG = log, LIN = lin, PSYM = psym, COLOR = color, AY1TITLE = AY1Title, $
+                     ; spectra
+                     MINCOUNT = minCount, MAXCOUNT = maxCount, BACKGRDCHAN = backgrdChan, BACKGRDVAL = backgrdVal, $
+                     CHANNEL = channel, Energy = energy, ENERGYMIN = energymin, ENERGYMAX =  energymax, $                     
+                     DELAY = delay, $                      
+                     ; all additional keywords
+                    _EXTRA = e 
+
+  common Request, List, StartTime, TimeInt
+  common GraphC, graph, GraphN, Item
+
+  AzMin = 0
+  AzMax = 15
+   elevation = 1;
+   if (KEYWORD_SET(elevationAsTime)) then elevation = 0;
+
+  if (KEYWORD_SET(ANODE)) then begin
+    AzMin = Anode
+   if (KEYWORD_SET(STOP_ANODE)) then AzMax = Stop_Anode $
+   else AzMax = -1;
+  endif
+  
+  
+  graph(GraphN).Type = 'IMA_T'
+  graph(GraphN).DataN = 1
+  graph(GraphN).SetCommonF(0) = 'ica_spec_com'
+  graph(GraphN).GetDataF(0) =   'get_ica_spec';
+  graph[GraphN].DeltaT = (Graph[GraphN].TotalTime + 60.0D0) < 36100.0D0
+
+
+EnMin = 1.0;
+EnMax = 40000.0;
+
+energyTitle = '';
+
+
+if (KEYWORD_SET(ENERGYMIN)) then begin
+   EnMin = energymin;
+   EnMax =  energymax;
+   energyTitle = energymin eq energymax ? '!C E:' + string(energymin,format='(f7.1)') + 'eV' : '!C E ' + string(energymin,format='(f7.1)') + '-'+  string(energymax,format='(f7.1)') + 'eV'; 
+    
+    options =   string(AzMin) +','+string(AzMax) +','+string(EnMin) +','+string(EnMax) + ',' + string(elevation);;
+
+    angleTitle =   AzMax GT AzMin ?  'ICA An'+ string(AzMin,format='(i2.2)') +'-'+ string(AzMax,format='(i2.2)') : 'ICA An'+ string(AzMin,format='(i2.2)');
+    
+    graph[GraphN].AxisF =  KEYWORD_SET(lin) ?  'lineaxis, 0' : 'logaxis';
+    graph[GraphN].Ly.title =  'ICA Cnts ' +  angleTitle + energyTitle
+					  
+    graph[GraphN].PlotF = 'icacntplot,' + options
+endif else begin
+     
+    options = string(AzMin) +','+string(AzMax) + ',' + string(elevation);
+    if (KEYWORD_SET(MINCOUNT)) then options = options+', '+string(MINCOUNT) $
+    else options = options+', -1';
+
+    if (KEYWORD_SET(MAXCOUNT)) then options = options+', '+string(MAXCOUNT) $
+    else options = options+', -1';
+
+    graph[GraphN].names = PTR_NEW(/ALLOCATE_HEAP)
+    *(graph[GraphN].names) = 'Counts'
+        
+    graph[GraphN].Ly.title = AzMax GT AzMin ?  'ICA An'+ string(AzMin,format='(i2.2)') +'-'+ string(AzMax,format='(i2.2)') +'!CE/Q, eV' : 'ICA An'+ string(AzMin,format='(i2.2)') + '!C E/Q, eV'
+    graph[GraphN].PlotF =  'icaspecplot,' + options
+endelse
+return
+end
+;------------------------------------------------------------
diff --git a/amda_plus/amdalib/ros_lap1_isweep_init.pro b/amda_plus/amdalib/ros_lap1_isweep_init.pro
new file mode 100644
index 0000000..d9acdd6
--- /dev/null
+++ b/amda_plus/amdalib/ros_lap1_isweep_init.pro
@@ -0,0 +1,73 @@
+;   
+;--------------------------------------
+;  ros_mip_surv_INIT made from TEMPLATE newparam_init
+;
+;    
+;---------------------------------------
+
+pro ros_lap1_isweep_INIT, LOG = log, LIN = lin, PSYM = psym, COLOR = color, AY1TITLE = AY1Title, $
+                     ; spectra
+                     MINCOUNT = minCount, MAXCOUNT = maxCount, BACKGRDCHAN = backgrdChan, BACKGRDVAL = backgrdVal, $
+                     CHANNEL = channel, Energy = energy, ENERGYMIN = minenergy,  ENERGYMAX = maxenergy, $
+                     LLOG = llog, LLIN = llin, $ ; Z axis scaling                    
+                     DELAY = delay, $                    
+                    _EXTRA = e
+
+common GraphC, graph, GraphN, Item
+
+yTitle = 'LAP1, Bias,V';
+legend = 'Current (nA)';
+dims   = 241L;
+plottype = 'SPECTR';
+
+pen = !dnc-1 & comp = 100 & symbol = -3;
+ 
+if (KEYWORD_SET(COLOR)) then pen = color; 
+if (KEYWORD_SET(PSYM)) then symbol = psym;
+ 
+graph[GraphN].Type = 'FGM_T'; 
+graph[GraphN].DataN = 1;
+graph[GraphN].SetCommonF[0] = 'ros_lap_sweep_com, 1'; 
+graph[GraphN].GetDataF[0] = 'getros_lap_sweep, 1';
+graph[GraphN].DeltaT = (Graph[GraphN].TotalTime + 60.0D0) <  86400.0D0 
+
+if (KEYWORD_SET(AY1TITLE)) then graph[GraphN].Ly.title = AY1Title $
+else graph[GraphN].Ly.title = yTitle
+
+if (KEYWORD_SET(LOG)) then AxisF = 'logaxis' $
+else AxisF = 'lineaxis, ' + string(Graph[GraphN].TotalTime);
+graph[GraphN].AxisF = AxisF;
+ 
+graph[GraphN].names = PTR_NEW(/ALLOCATE_HEAP)
+*(graph[GraphN].names) = strsplit(legend,';',/EXTRACT)
+
+ if (KEYWORD_SET(channel) or KEYWORD_SET(energy)) then begin
+        location = KEYWORD_SET(channel) ? channel-1 : energy;
+        PlotF = 'PlotScal_New, '+ string(location) +',' + string(pen) +','+ string(symbol)
+        graph[GraphN].Ly.title += '  ch ' + strtrim(string(location+1),1);          
+ endif else begin
+        graph[GraphN].names = PTR_NEW(/ALLOCATE_HEAP)
+        *(graph[GraphN].names) = strsplit(legend,';',/EXTRACT)
+        arg = ''
+
+        if (KEYWORD_SET(BACKGRDCHAN)) then arg = arg+', '+string(BACKGRDCHAN) $
+        else arg = arg+', -1';
+        if (KEYWORD_SET(BACKGRDVAL)) then arg = arg+', '+string(BACKGRDVAL) $
+        else arg = arg+', -1';
+        if (KEYWORD_SET(MINCOUNT)) then arg = arg+', '+string(MINCOUNT) $
+        else arg = arg+', -1';
+        if (KEYWORD_SET(MAXCOUNT)) then arg = arg+', '+string(MAXCOUNT) $
+        else arg = arg+', -1';
+        if (KEYWORD_SET(LIN)) then arg = arg+', /LIN'
+        if (KEYWORD_SET(LLIN)) then arg = arg+', /LLIN'
+
+        if (strmid(strlowcase(plottype),0,6) eq 'spectr') then PlotF = 'PlotSpecLap, 1 '+arg $
+        else  PlotF = 'PlotTen, 0,' + string(dims)
+ endelse  
+   
+graph[GraphN].PlotF =  PlotF;
+
+if KEYWORD_SET(DELAY) then Graph[GraphN].Lag[0] = double(delay);
+ 
+return
+end
diff --git a/amda_plus/amdalib/ros_lap2_isweep_init.pro b/amda_plus/amdalib/ros_lap2_isweep_init.pro
new file mode 100644
index 0000000..c83f525
--- /dev/null
+++ b/amda_plus/amdalib/ros_lap2_isweep_init.pro
@@ -0,0 +1,73 @@
+;   
+;--------------------------------------
+;  ros_mip_surv_INIT made from TEMPLATE newparam_init
+;
+;    
+;---------------------------------------
+
+pro ros_lap2_isweep_INIT, LOG = log, LIN = lin, PSYM = psym, COLOR = color, AY1TITLE = AY1Title, $
+                     ; spectra
+                     MINCOUNT = minCount, MAXCOUNT = maxCount, BACKGRDCHAN = backgrdChan, BACKGRDVAL = backgrdVal, $
+                     CHANNEL = channel, Energy = energy, ENERGYMIN = minenergy,  ENERGYMAX = maxenergy, $
+                     LLOG = llog, LLIN = llin, $ ; Z axis scaling                    
+                     DELAY = delay, $                    
+                    _EXTRA = e
+
+common GraphC, graph, GraphN, Item
+
+yTitle = 'LAP2, Bias,V';
+legend = 'Current (nA)';
+dims   = 241L;
+plottype = 'SPECTR';
+
+pen = !dnc-1 & comp = 100 & symbol = -3;
+ 
+if (KEYWORD_SET(COLOR)) then pen = color; 
+if (KEYWORD_SET(PSYM)) then symbol = psym;
+ 
+graph[GraphN].Type = 'FGM_T'; 
+graph[GraphN].DataN = 1;
+graph[GraphN].SetCommonF[0] = 'ros_lap_sweep_com, 2'; 
+graph[GraphN].GetDataF[0] = 'getros_lap_sweep, 2';
+graph[GraphN].DeltaT = (Graph[GraphN].TotalTime + 60.0D0) <  86400.0D0 
+
+if (KEYWORD_SET(AY1TITLE)) then graph[GraphN].Ly.title = AY1Title $
+else graph[GraphN].Ly.title = yTitle
+
+if (KEYWORD_SET(LOG)) then AxisF = 'logaxis' $
+else AxisF = 'lineaxis, ' + string(Graph[GraphN].TotalTime);
+graph[GraphN].AxisF = AxisF;
+ 
+graph[GraphN].names = PTR_NEW(/ALLOCATE_HEAP)
+*(graph[GraphN].names) = strsplit(legend,';',/EXTRACT)
+
+ if (KEYWORD_SET(channel) or KEYWORD_SET(energy)) then begin
+        location = KEYWORD_SET(channel) ? channel-1 : energy;
+        PlotF = 'PlotScal_New, '+ string(location) +',' + string(pen) +','+ string(symbol)
+        graph[GraphN].Ly.title += '  ch ' + strtrim(string(location+1),1);          
+ endif else begin
+        graph[GraphN].names = PTR_NEW(/ALLOCATE_HEAP)
+        *(graph[GraphN].names) = strsplit(legend,';',/EXTRACT)
+        arg = ''
+
+        if (KEYWORD_SET(BACKGRDCHAN)) then arg = arg+', '+string(BACKGRDCHAN) $
+        else arg = arg+', -1';
+        if (KEYWORD_SET(BACKGRDVAL)) then arg = arg+', '+string(BACKGRDVAL) $
+        else arg = arg+', -1';
+        if (KEYWORD_SET(MINCOUNT)) then arg = arg+', '+string(MINCOUNT) $
+        else arg = arg+', -1';
+        if (KEYWORD_SET(MAXCOUNT)) then arg = arg+', '+string(MAXCOUNT) $
+        else arg = arg+', -1';
+        if (KEYWORD_SET(LIN)) then arg = arg+', /LIN'
+        if (KEYWORD_SET(LLIN)) then arg = arg+', /LLIN'
+
+        if (strmid(strlowcase(plottype),0,6) eq 'spectr') then PlotF = 'PlotSpecLap, 2'+arg $
+        else  PlotF = 'PlotTen, 0,' + string(dims)
+ endelse  
+   
+graph[GraphN].PlotF =  PlotF;
+
+if KEYWORD_SET(DELAY) then Graph[GraphN].Lag[0] = double(delay);
+ 
+return
+end
diff --git a/amda_plus/amdalib/ros_lap_sweep_com.pro b/amda_plus/amdalib/ros_lap_sweep_com.pro
new file mode 100644
index 0000000..23b3d99
--- /dev/null
+++ b/amda_plus/amdalib/ros_lap_sweep_com.pro
@@ -0,0 +1,53 @@
+; $Id: localparam_com.pro,v 1.6 2012/03/16 08:47:15 benjamin Exp $
+;--------------------------------------
+;   NEWPARAM_COMMON - TEMPLATE
+;
+; Fri Sep 21 11:57:01 CEST 2007
+;
+;---------------------------------------
+
+ pro ros_lap_sweep_com, LAP
+ 
+common ros_lap1_sweep_Common, Final1
+common ros_lap2_sweep_Common, Final2
+common GraphC, Graph, GraphN, Item
+common record, Record
+ 
+;------------- Get Info --------------------------------
+ ID = -1L  
+
+  VI = LAP eq 1 ? 'ros:lap1:sweep' : 'ros:lap2:sweep';
+ 
+ Graph[GraphN].DataID[Item] = ID
+
+ Sampling = 62.0
+ maxSampling = 512.0
+ dims = 241L
+       
+  FillValue = !Values.F_NAN
+              
+  Final = record
+  Final.DefSize = long(Graph[GraphN].DeltaT/Sampling + 1)
+  Final.Sampling = Sampling   
+  Graph[GraphN].FillValue[Item] = FillValue
+  Graph[GraphN].Sampling[Item] = Sampling
+  if (maxSampling GT Sampling) then Graph[GraphN].MaxSampling[Item] = maxSampling;
+
+  Final.Time = PTR_NEW(/ALLOCATE_HEAP)
+  Final.Val = PTR_NEW(/ALLOCATE_HEAP)
+  Final.LastTime = PTR_NEW(/ALLOCATE_HEAP)
+  Final.LastVal = PTR_NEW(/ALLOCATE_HEAP)
+ 
+  Graph[GraphN].Time[Item] =  Final.Time
+  Graph[GraphN].Val[Item] = Final.Val
+
+  if (Graph[GraphN].Step GT Sampling*2.0) then begin
+    *(Final.Time) = indgen(Graph[GraphN].ppp)*Graph[GraphN].Step + Graph[GraphN].Step/2.0
+    *(Final.Val)  =  replicate(FillValue, (dims+1L)*Graph[GraphN].ppp)
+  endif   
+
+ cmd = 'Final'+string(LAP,format='(i1)')+ ' = Final' 
+ R = execute(cmd) 
+
+ return
+ end
diff --git a/amda_plus/amdalib/ros_mip_surv_com.pro b/amda_plus/amdalib/ros_mip_surv_com.pro
new file mode 100644
index 0000000..9d9c19b
--- /dev/null
+++ b/amda_plus/amdalib/ros_mip_surv_com.pro
@@ -0,0 +1,63 @@
+; $Id: localparam_com.pro,v 1.6 2012/03/16 08:47:15 benjamin Exp $
+;--------------------------------------
+;   NEWPARAM_COMMON - TEMPLATE
+;
+; Fri Sep 21 11:57:01 CEST 2007
+;
+;---------------------------------------
+
+ pro ros_mip_surv_com
+ 
+common ros_mip_surv_Common, Final
+common GraphC, Graph, GraphN, Item
+common record, Record
+ 
+;------------- Get Info --------------------------------
+    
+       ID = Graph[GraphN].DataID[Item]
+       Sampling = 4.0
+       maxSampling = 32.0
+       dims = 92L
+       nTab = 8L;
+       FillValue = -999.9 
+       
+      
+; Close VI to update info if there are several params from the same VI 
+       if (ID ge 0) then err=call_external(!DDLIB + 'DD_idl.so', 'CloseID', ID)
+       ID = -1L  
+       Graph[GraphN].DataID[Item] = ID
+
+;------------- Get Energy info on spectro case --------------------------------
+
+       VI = 'ros:mip:surv'  
+
+       FrequencyTab = fltarr(dims,Ntab)
+      
+       err = call_external(!PROJLIB + 'libParam.so', 'getInfo', $
+                             ID, VI, 'Frequency', dims*Ntab, FrequencyTab)                 
+      
+       Graph[GraphN].yaxis = PTR_NEW(/ALLOCATE_HEAP)
+      *(Graph[GraphN].yaxis) = FrequencyTab;
+    
+;---------------------- General Structure ------------------------- 
+  Final = record
+  Final.DefSize = long(Graph[GraphN].DeltaT/Sampling + 1)
+  Final.Sampling = Sampling   
+  Graph[GraphN].FillValue[Item] = FillValue
+  Graph[GraphN].Sampling[Item] = Sampling
+  if (maxSampling GT Sampling) then Graph[GraphN].MaxSampling[Item] = maxSampling;
+
+  Final.Time = PTR_NEW(/ALLOCATE_HEAP)
+  Final.Val = PTR_NEW(/ALLOCATE_HEAP)
+  Final.LastTime = PTR_NEW(/ALLOCATE_HEAP)
+  Final.LastVal = PTR_NEW(/ALLOCATE_HEAP)
+ 
+  Graph[GraphN].Time[Item] =  Final.Time
+  Graph[GraphN].Val[Item] = Final.Val
+
+  if (Graph[GraphN].Step GT Sampling*2.0) then begin
+    *(Final.Time) = indgen(Graph[GraphN].ppp)*Graph[GraphN].Step + Graph[GraphN].Step/2.0
+    *(Final.Val)  =  replicate(FillValue, (dims+1)*Graph[GraphN].ppp)
+  endif   
+ return
+ end
diff --git a/amda_plus/amdalib/ros_mip_surv_init.pro b/amda_plus/amdalib/ros_mip_surv_init.pro
new file mode 100644
index 0000000..c535de9
--- /dev/null
+++ b/amda_plus/amdalib/ros_mip_surv_init.pro
@@ -0,0 +1,75 @@
+; $Id: localparam_init.pro,v 1.10 2012/03/16 08:47:15 benjamin Exp $
+;--------------------------------------
+;  ros_mip_surv_INIT made from TEMPLATE newparam_init
+;
+;   Tue Jun 11 16:32:21 CEST 2007
+;
+;---------------------------------------
+
+pro ros_mip_surv_INIT, LOG = log, LIN = lin, PSYM = psym, COLOR = color, AY1TITLE = AY1Title, $
+                     ; spectra
+                     MINCOUNT = minCount, MAXCOUNT = maxCount, BACKGRDCHAN = backgrdChan, BACKGRDVAL = backgrdVal, $
+                     CHANNEL = channel, Energy = energy, ENERGYMIN = minenergy,  ENERGYMAX = maxenergy, $
+                     LLOG = llog, LLIN = llin, $ ; Z axis scaling                    
+                     DELAY = delay, $                    
+                    _EXTRA = e
+
+common GraphC, graph, GraphN, Item
+
+yTitle = 'MIP, Frequency,!CkHz';
+legend = 'Survey (dB)';
+dims   = 92L;
+plottype = 'SPECTR';
+paramName = 'ros_mip_surv';
+
+pen = !dnc-1 & comp = 100 & symbol = -3;
+ 
+if (KEYWORD_SET(COLOR)) then pen = color; 
+if (KEYWORD_SET(PSYM)) then symbol = psym;
+ 
+graph[GraphN].Type = 'FGM_T'; 
+graph[GraphN].DataN = 1;
+graph[GraphN].SetCommonF[0] = 'ros_mip_surv_com'; 
+graph[GraphN].GetDataF[0] = 'getros_mip_surv';
+graph[GraphN].DeltaT = (Graph[GraphN].TotalTime + 60.0D0) <  86400.0D0 
+
+if (KEYWORD_SET(AY1TITLE)) then graph[GraphN].Ly.title = AY1Title $
+else graph[GraphN].Ly.title = yTitle
+
+if (KEYWORD_SET(LOG)) then AxisF = 'logaxis' $
+else AxisF = 'lineaxis, ' + string(Graph[GraphN].TotalTime);
+graph[GraphN].AxisF = AxisF;
+ 
+graph[GraphN].names = PTR_NEW(/ALLOCATE_HEAP)
+*(graph[GraphN].names) = strsplit(legend,';',/EXTRACT)
+
+ if (KEYWORD_SET(channel) or KEYWORD_SET(energy)) then begin
+        location = KEYWORD_SET(channel) ? channel-1 : energy;
+        PlotF = 'PlotScal_New, '+ string(location) +',' + string(pen) +','+ string(symbol)
+        graph[GraphN].Ly.title += '  ch ' + strtrim(string(location+1),1);          
+ endif else begin
+        graph[GraphN].names = PTR_NEW(/ALLOCATE_HEAP)
+        *(graph[GraphN].names) = strsplit(legend,';',/EXTRACT)
+        arg = ''
+
+        if (KEYWORD_SET(BACKGRDCHAN)) then arg = arg+', '+string(BACKGRDCHAN) $
+        else arg = arg+', -1';
+        if (KEYWORD_SET(BACKGRDVAL)) then arg = arg+', '+string(BACKGRDVAL) $
+        else arg = arg+', -1';
+        if (KEYWORD_SET(MINCOUNT)) then arg = arg+', '+string(MINCOUNT) $
+        else arg = arg+', -1';
+        if (KEYWORD_SET(MAXCOUNT)) then arg = arg+', '+string(MAXCOUNT) $
+        else arg = arg+', -1';
+        if (KEYWORD_SET(LIN)) then arg = arg+', /LIN'
+        if (KEYWORD_SET(LLIN)) then arg = arg+', /LLIN'
+
+        if (strmid(strlowcase(plottype),0,6) eq 'spectr') then PlotF = 'PlotSpecMip'+arg $
+        else  PlotF = 'PlotTen, 0,' + string(dims)
+ endelse  
+   
+graph[GraphN].PlotF =  PlotF;
+
+if KEYWORD_SET(DELAY) then Graph[GraphN].Lag[0] = double(delay);
+ 
+return
+end
diff --git a/amda_plus/amdalib/ros_mip_survphase_com.pro b/amda_plus/amdalib/ros_mip_survphase_com.pro
new file mode 100644
index 0000000..431c01a
--- /dev/null
+++ b/amda_plus/amdalib/ros_mip_survphase_com.pro
@@ -0,0 +1,63 @@
+; $Id: localparam_com.pro,v 1.6 2012/03/16 08:47:15 benjamin Exp $
+;--------------------------------------
+;   NEWPARAM_COMMON - TEMPLATE
+;
+; Fri Sep 21 11:57:01 CEST 2007
+;
+;---------------------------------------
+
+ pro ros_mip_survphase_com
+ 
+common ros_mip_survphase_Common, Final
+common GraphC, Graph, GraphN, Item
+common record, Record
+ 
+;------------- Get Info --------------------------------
+    
+       ID = Graph[GraphN].DataID[Item]
+       Sampling = 4.0
+       maxSampling = 32.0
+       dims = 92L
+       nTab = 8L;
+       FillValue = -999.9 
+       
+      
+; Close VI to update info if there are several params from the same VI 
+       if (ID ge 0) then err=call_external(!DDLIB + 'DD_idl.so', 'CloseID', ID)
+       ID = -1L  
+       Graph[GraphN].DataID[Item] = ID
+
+;------------- Get Energy info on spectro case --------------------------------
+
+       VI = 'ros:mip:survphase'  
+
+       FrequencyTab = fltarr(dims,Ntab)
+      
+       err = call_external(!PROJLIB + 'libParam.so', 'getInfo', $
+                             ID, VI, 'Frequency', dims*Ntab, FrequencyTab)                 
+      
+       Graph[GraphN].yaxis = PTR_NEW(/ALLOCATE_HEAP)
+      *(Graph[GraphN].yaxis) = FrequencyTab;
+    
+;---------------------- General Structure ------------------------- 
+  Final = record
+  Final.DefSize = long(Graph[GraphN].DeltaT/Sampling + 1)
+  Final.Sampling = Sampling   
+  Graph[GraphN].FillValue[Item] = FillValue
+  Graph[GraphN].Sampling[Item] = Sampling
+  if (maxSampling GT Sampling) then Graph[GraphN].MaxSampling[Item] = maxSampling;
+
+  Final.Time = PTR_NEW(/ALLOCATE_HEAP)
+  Final.Val = PTR_NEW(/ALLOCATE_HEAP)
+  Final.LastTime = PTR_NEW(/ALLOCATE_HEAP)
+  Final.LastVal = PTR_NEW(/ALLOCATE_HEAP)
+ 
+  Graph[GraphN].Time[Item] =  Final.Time
+  Graph[GraphN].Val[Item] = Final.Val
+
+  if (Graph[GraphN].Step GT Sampling*2.0) then begin
+    *(Final.Time) = indgen(Graph[GraphN].ppp)*Graph[GraphN].Step + Graph[GraphN].Step/2.0
+    *(Final.Val)  =  replicate(FillValue, (dims+1)*Graph[GraphN].ppp)
+  endif   
+ return
+ end
diff --git a/amda_plus/amdalib/ros_mip_survphase_init.pro b/amda_plus/amdalib/ros_mip_survphase_init.pro
new file mode 100644
index 0000000..0e46081
--- /dev/null
+++ b/amda_plus/amdalib/ros_mip_survphase_init.pro
@@ -0,0 +1,75 @@
+; $Id: localparam_init.pro,v 1.10 2012/03/16 08:47:15 benjamin Exp $
+;--------------------------------------
+;  ros_mip_surv_INIT made from TEMPLATE newparam_init
+;
+;   Tue Jun 11 16:32:21 CEST 2007
+;
+;---------------------------------------
+
+pro ros_mip_survphase_INIT, LOG = log, LIN = lin, PSYM = psym, COLOR = color, AY1TITLE = AY1Title, $
+                     ; spectra
+                     MINCOUNT = minCount, MAXCOUNT = maxCount, BACKGRDCHAN = backgrdChan, BACKGRDVAL = backgrdVal, $
+                     CHANNEL = channel, Energy = energy, ENERGYMIN = minenergy,  ENERGYMAX = maxenergy, $
+                     LLOG = llog, LLIN = llin, $ ; Z axis scaling                    
+                     DELAY = delay, $                    
+                    _EXTRA = e
+
+common GraphC, graph, GraphN, Item
+
+yTitle = 'MIP, Frequency,!CkHz';
+legend = 'SurveyPhase (deg)';
+dims   = 92L;
+plottype = 'SPECTR';
+paramName = 'ros_mip_survphase';
+
+pen = !dnc-1 & comp = 100 & symbol = -3;
+ 
+if (KEYWORD_SET(COLOR)) then pen = color; 
+if (KEYWORD_SET(PSYM)) then symbol = psym;
+ 
+graph[GraphN].Type = 'FGM_T'; 
+graph[GraphN].DataN = 1;
+graph[GraphN].SetCommonF[0] = 'ros_mip_survphase_com'; 
+graph[GraphN].GetDataF[0] = 'getros_mip_survphase';
+graph[GraphN].DeltaT = (Graph[GraphN].TotalTime + 60.0D0) <  86400.0D0 
+
+if (KEYWORD_SET(AY1TITLE)) then graph[GraphN].Ly.title = AY1Title $
+else graph[GraphN].Ly.title = yTitle
+
+if (KEYWORD_SET(LOG)) then AxisF = 'logaxis' $
+else AxisF = 'lineaxis, ' + string(Graph[GraphN].TotalTime);
+graph[GraphN].AxisF = AxisF;
+ 
+graph[GraphN].names = PTR_NEW(/ALLOCATE_HEAP)
+*(graph[GraphN].names) = strsplit(legend,';',/EXTRACT)
+
+ if (KEYWORD_SET(channel) or KEYWORD_SET(energy)) then begin
+        location = KEYWORD_SET(channel) ? channel-1 : energy;
+        PlotF = 'PlotScal_New, '+ string(location) +',' + string(pen) +','+ string(symbol)
+        graph[GraphN].Ly.title += '  ch ' + strtrim(string(location+1),1);          
+ endif else begin
+        graph[GraphN].names = PTR_NEW(/ALLOCATE_HEAP)
+        *(graph[GraphN].names) = strsplit(legend,';',/EXTRACT)
+        arg = ''
+
+        if (KEYWORD_SET(BACKGRDCHAN)) then arg = arg+', '+string(BACKGRDCHAN) $
+        else arg = arg+', -1';
+        if (KEYWORD_SET(BACKGRDVAL)) then arg = arg+', '+string(BACKGRDVAL) $
+        else arg = arg+', -1';
+        if (KEYWORD_SET(MINCOUNT)) then arg = arg+', '+string(MINCOUNT) $
+        else arg = arg+', 0';
+        if (KEYWORD_SET(MAXCOUNT)) then arg = arg+', '+string(MAXCOUNT) $
+        else arg = arg+', 360';
+        if (KEYWORD_SET(LIN)) then arg = arg+', /LIN'
+        if (KEYWORD_SET(LLIN)) then arg = arg+', /LLIN'
+
+        if (strmid(strlowcase(plottype),0,6) eq 'spectr') then PlotF = 'PlotSpecMip'+arg $
+        else  PlotF = 'PlotTen, 0,' + string(dims)
+ endelse  
+   
+graph[GraphN].PlotF =  PlotF;
+
+if KEYWORD_SET(DELAY) then Graph[GraphN].Lag[0] = double(delay);
+ 
+return
+end
diff --git a/amda_plus/amdalib/scatter_com.pro b/amda_plus/amdalib/scatter_com.pro
new file mode 100644
index 0000000..32544a3
--- /dev/null
+++ b/amda_plus/amdalib/scatter_com.pro
@@ -0,0 +1,62 @@
+;--------------------------------------
+ ; Y, X
+;---------------------------------------
+
+pro SCATTER_COM, param1, param2
+ 
+common Scatter_Commom, getStart, N_param, indices, DataCommon
+common GraphC, graph, graphN   
+  
+  record = {      name : '   ',                   $ ; procedure name             
+                  size : [1L,1L],                 $ ; Time Dimension, VectorSize
+                  sampling : 1.0 ,                $ ; secs
+                  time : PTR_NEW(),               $
+                  data : PTR_NEW(),               $
+                  LastTime: PTR_NEW(),            $ 
+                  LastData: PTR_NEW()             $
+               } 
+                   
+   if (N_elements(DataCommon) eq 0) then begin
+          n_graphs = N_Elements(graph); 
+          DataCommon = REPLICATE(record, 2, n_graphs);
+	  N_param = intarr(n_graphs);
+          indices = intarr(2, n_graphs);
+	  getStart = intarr(n_graphs);
+   endif
+ 
+   xArray = strsplit(param1,'(',/EXTRACT);
+   yArray = strsplit(param2,'(',/EXTRACT);
+
+   N_param[graphN] = 2;
+ 
+   if (N_elements(yArray) gt 1) then begin
+      ttt = strsplit(yArray[1], ')', /EXTRACT);
+      indices[0, graphN] = fix(ttt[0]);
+   endif else indices[0, graphN] = 0;   
+
+   if (N_elements(xArray) gt 1) then begin
+      ttt = strsplit(xArray[1], ')', /EXTRACT);
+      indices[1, graphN] = fix(ttt[0]);
+   endif else indices[1, graphN] = 0;   
+
+   if (xArray[0] EQ yArray[0]) then N_param[graphN] = 1 
+
+; DataCommon[0] - Y;  DataCommon[1] -  X   
+   DataCommon[0, GraphN].name = yArray[0] + '_' 
+   if (N_param[graphN] eq 2) then DataCommon[1, GraphN].name = xArray[0] + '_';
+
+    for i = 0, N_param[graphN] - 1 do begin
+      DataCommon[i, GraphN].time = PTR_NEW(/ALLOCATE_HEAP);
+      DataCommon[i, GraphN].data = PTR_NEW(/ALLOCATE_HEAP);
+      DataCommon[i, GraphN].LastTime = PTR_NEW(/ALLOCATE_HEAP);
+      DataCommon[i, GraphN].LastData = PTR_NEW(/ALLOCATE_HEAP);       
+    endfor
+   
+    for i = 0, 1 do Graph[GraphN].Val[i] = PTR_NEW(/ALLOCATE_HEAP); 
+    Graph[GraphN].Time[0] = PTR_NEW(/ALLOCATE_HEAP);
+ 
+   getStart[graphN] = 0;
+ 
+ return
+ end
+ 
\ No newline at end of file
diff --git a/amda_plus/amdalib/scatter_init.pro b/amda_plus/amdalib/scatter_init.pro
new file mode 100644
index 0000000..57b3944
--- /dev/null
+++ b/amda_plus/amdalib/scatter_init.pro
@@ -0,0 +1,25 @@
+;--------------------------------------
+;
+;---------------------------------------
+
+pro SCATTER_INIT, Y, X, PSYM = psym, COLOR = color, Y1TITLE = Y1TITLE, XTITLE = XTITLE
+common GraphC, graph, GraphN, Item
+ 
+   pen = !DNC - 1;
+; line and points
+   symbol = -3;
+
+   if KEYWORD_SET(color) then pen = color;
+    
+   if KEYWORD_SET(PSYM) then symbol = psym;
+ 
+graph[GraphN].Type = 'FGM_XYZ' 
+graph[GraphN].DataN = 1
+graph[GraphN].SetCommonF[0] = 'scatter_com,' + '"'+X +'",' + '"'+Y+'"'; 
+graph[GraphN].GetDataF[0] ='get_scatter';
+graph[GraphN].DeltaT = (Graph[GraphN].TotalTime + 60.0D0) < 86400.0D0;
+graph[GraphN].Lx.title = KEYWORD_SET(XTITLE) ? XTITLE : X; 
+graph[GraphN].Ly.title = KEYWORD_SET(Y1TITLE) ? Y1TITLE : Y;
+graph[GraphN].PlotF =  'plot_scatter, ' + string(symbol) + ',' + string(pen);  
+return
+end
diff --git a/amda_plus/amdalib/search_com.pro b/amda_plus/amdalib/search_com.pro
new file mode 100644
index 0000000..3f97505
--- /dev/null
+++ b/amda_plus/amdalib/search_com.pro
@@ -0,0 +1,65 @@
+;--------------------------------------
+;   COMPOUND_COMMON
+;    V.3.0
+; Tue Jun 28 16:32:21 CEST 2005
+; Tue Jun 27 12:00:15 CEST 2006 New version for DD_Search.pro
+; Wed Jul  5 11:13:02 CEST 2006 added -> sampling : 0.0 , 
+; Thu Jul  6 14:54:32 CEST 2006 Without Resampling Parameter
+;---------------------------------------
+
+ pro SEARCH_COM
+ 
+common Compound_Commom, N_Param, TimeAver, Thresh, DataCommon, FinalPar, FinalTime
+common GraphC, graph
+common Chain, theChain, FileName
+ 
+;-------------------- Read resource file named "search.cond"--------------
+  get_lun,unit
+  openr,unit, 'search.res',error=err
+  if (err EQ 0) then begin
+    temp = ' '  
+    readf, unit, temp 
+    FileName = temp
+    readf, unit, temp 
+    theChain = temp;
+    readf, unit, temp 
+    readf, unit, TimeAver
+    readf, unit, THRESH
+  endif
+  close, unit
+  free_lun,unit
+
+ ; replace ":" par "_" for remote params
+	   if (STRPOS(temp, ':') gt 0) then begin
+	     tempArr = STRSPLIT(temp, ':', /EXTRACT);
+	     temp = STRJOIN(tempArr, '_');	    
+	   endif
+
+  Params = strsplit(temp, " ", /EXTRACT);
+  
+
+  record = {      name : '   ',                   $ ; procedure name             
+                  size : [1L,1L],                 $ ; Time Dimension, VectorSize
+                  sampling : 1.0 ,                $ ; secs
+                  time : PTR_NEW(),               $
+                  data : PTR_NEW(),               $
+                  LastTime: PTR_NEW(),            $ 
+                  LastData: PTR_NEW()             $
+                  } 
+                   
+ 
+  N_Param = N_elements(Params)
+  DataCommon = REPLICATE(record,N_Param)
+  
+   
+  for i = 0, N_Param-1 do begin  
+   DataCommon[i].name = Params[i]+'_'
+   DataCommon[i].time = PTR_NEW(/ALLOCATE_HEAP)
+   DataCommon[i].data = PTR_NEW(/ALLOCATE_HEAP)
+   DataCommon[i].LastTime = PTR_NEW(/ALLOCATE_HEAP)
+   DataCommon[i].LastData = PTR_NEW(/ALLOCATE_HEAP) 
+  endfor
+   
+ return
+ end
+ 
\ No newline at end of file
diff --git a/amda_plus/amdalib/shiftn_.pro b/amda_plus/amdalib/shiftn_.pro
new file mode 100644
index 0000000..4d32e3d
--- /dev/null
+++ b/amda_plus/amdalib/shiftn_.pro
@@ -0,0 +1,69 @@
+function shiftn_, Data, n_points 
+common GraphC, graph, GraphN
+common  InternalCommon, FinalTime, num
+common  ShiftNOnly, LastNStructure
+     
+     FillValue = !Values.F_NAN
+     n_data = long(n_elements(FinalTime));
+     n_real = n_elements(Data);
+
+     LastStructureN = GraphN;
+
+; !!!! to distinguish Plot Graph[10] et DownLoad Graph[1]
+     if (N_elements(Graph) eq 1) then  GraphN = 0;
+     if (n_points GT 0) then begin
+	  if (not KEYWORD_SET(LastStructure)) then begin                           
+			    LastStructure = replicate({ LastData: PTR_NEW(), $
+						LastNum : PTR_NEW() }, 10);         
+	  endif 
+
+	  num_last = where(num GE (n_data - n_points), Index, COMPLEMENT=num_first, NCOMPLEMENT = IndexFirst);
+      
+	  if not ptr_valid(LastStructure[LastStructureN].LastNum) then begin
+		LastStructure[LastStructureN].LastData = PTR_NEW(/ALLOCATE_HEAP)
+		LastStructure[LastStructureN].LastNum = PTR_NEW(/ALLOCATE_HEAP)
+	  endif 
+      
+	  if (Index GT 0) and ((n_elements(*(LastStructure[LastStructureN].LastNum)) GT 0) or (Graph[GraphN].CurrentSec eq 0)) then begin
+	      if (Graph[GraphN].CurrentSec ne 0) then begin
+			  if (n_elements(*(LastStructure[LastStructureN].LastNum)) GE Index) then begin
+			      num_before = (*LastStructure[LastStructureN].LastNum)[0:Index-1]
+			      DataBefore = (*LastStructure[LastStructureN].LastData)[num_before] 
+			  endif else begin   
+				num_before = indgen(Index);
+				num_before[*(LastStructure[LastStructureN].LastNum)] = *(LastStructure[LastStructureN].LastNum)
+				DataBefore =  replicate(FillValue, Index);
+				DataBefore[*(LastStructure[LastStructureN].LastNum)] =  *(LastStructure[LastStructureN].LastData);   
+			  endelse ; if (n_elements(*(LastStructure[LastStructureN].LastNum)) GE Index) 
+	      endif else begin  
+			    num_before = indgen(Index);  
+			    DataBefore = replicate(FillValue, Index); 
+	      endelse   ;  if (Graph[GraphN].CurrentSec ne 0)
+	      *(LastStructure[LastStructureN].LastData) = Data[num_last];
+	      *(LastStructure[LastStructureN].LastNum) = num[num_last] - (n_data - n_points);
+	    endif  else begin
+	    
+		  *(LastStructure[LastStructureN].LastNum) = 0;
+		  *(LastStructure[LastStructureN].LastData) = FillValue; 
+		  DataBefore =  replicate(FillValue, n_points);
+	  endelse ; if (Index GT 0)
+	
+	   OutPut =  [DataBefore, Data[num_first]];
+      ; Dirty stuff - temporary  
+	  n_output = n_elements(OutPut)
+	  if (n_output gt n_real) then OutPut = OutPut[0:n_real-1]
+	  if (n_output lt n_real) then OutPut = [OutPut, replicate(FillValue,n_real-n_output)]
+	
+	  if (Graph[GraphN].CurrentSec eq Graph[GraphN].Sections-1) then begin
+		  if ptr_valid(LastStructure[LastStructureN].LastData) then ptr_free, LastStructure[LastStructureN].LastData
+		  if ptr_valid(LastStructure[LastStructureN].LastNum) then ptr_free, LastStructure[LastStructureN].LastNum
+	  endif 
+	return, OutPut
+       endif else  begin
+          n_points = abs(n_points);
+          OutPut = replicate(FillValue,n_data+n_points);
+          OutPut[num] = Data;
+          return, OutPut[num+n_points];             
+      endelse
+      return, Data
+end
diff --git a/amda_plus/amdalib/shiftt_.pro b/amda_plus/amdalib/shiftt_.pro
new file mode 100644
index 0000000..b631b92
--- /dev/null
+++ b/amda_plus/amdalib/shiftt_.pro
@@ -0,0 +1,69 @@
+function shiftt_, Data, TimeInt
+common GraphC, graph, GraphN
+common  InternalCommon, FinalTime, num
+common  ShiftOnly, LastStructure
+
+     FillValue = !Values.F_NAN
+     n_points = long(TimeInt/(FinalTime[1] -  FinalTime[0]));
+     n_data = long(n_elements(FinalTime));
+     n_real = n_elements(Data);
+  
+     LastStructureN = GraphN;
+
+; !!!! to distinguish Plot Graph[10] et DownLoad Graph[1]
+     if (N_elements(Graph) eq 1) then  GraphN = 0;
+     if (n_points GT 0) then begin    
+            if (not KEYWORD_SET(LastStructure)) then begin                          
+				LastStructure = replicate({ LastData: PTR_NEW(), $
+						    LastNum : PTR_NEW() }, 10);         
+	      endif   
+	      num_last = where(num GE (n_data - n_points), Index, COMPLEMENT=num_first, NCOMPLEMENT = IndexFirst);
+   
+	      if not ptr_valid(LastStructure[LastStructureN].LastNum) then begin
+		    LastStructure[LastStructureN].LastData = PTR_NEW(/ALLOCATE_HEAP)
+		    LastStructure[LastStructureN].LastNum = PTR_NEW(/ALLOCATE_HEAP)
+	      endif 
+	  
+	      if (Index GT 0) and  ((n_elements(*(LastStructure[LastStructureN].LastNum)) GT 0) or (Graph[GraphN].CurrentSec eq 0)) then begin
+		  if (Graph[GraphN].CurrentSec ne 0) then begin
+			      if (n_elements(*(LastStructure[LastStructureN].LastNum)) GE Index) then begin
+				  num_before = (*LastStructure[LastStructureN].LastNum)[0:Index-1]
+				  DataBefore = (*LastStructure[LastStructureN].LastData)[num_before]  
+			      endif else begin   
+				    num_before = indgen(Index);
+				    num_before[*(LastStructure[LastStructureN].LastNum)] = *(LastStructure[LastStructureN].LastNum)
+				    DataBefore =  replicate(FillValue, Index);
+				    DataBefore[*(LastStructure[LastStructureN].LastNum)] =  *(LastStructure[LastStructureN].LastData);   
+			      endelse ; if (n_elements(*(LastStructure[LastStructureN].LastNum)) GE Index) 
+		  endif else begin  
+				num_before = indgen(Index);  
+				DataBefore = replicate(FillValue, Index); 
+		  endelse   ;  if (Graph[GraphN].CurrentSec ne 0)
+		  *(LastStructure[LastStructureN].LastData) = Data[num_last];
+		  *(LastStructure[LastStructureN].LastNum) = num[num_last] - (n_data - n_points);
+
+		endif  else begin ; if (Index GT 0) and  (n_elements(*(LastStructure[LastStructureN].LastNum)) GT 0)      
+		      *(LastStructure[LastStructureN].LastNum) = 0;
+		      *(LastStructure[LastStructureN].LastData) = FillValue;
+		      DataBefore =  replicate(FillValue, n_points);
+	      endelse ; if (Index GT 0)
+	    
+	      OutPut =  [DataBefore, Data[num_first]];
+	  ; Dirty stuff - temporary  
+	      n_output = n_elements(OutPut)
+	      if (n_output gt n_real) then OutPut = OutPut[0:n_real-1]
+	      if (n_output lt n_real) then OutPut = [OutPut, replicate(FillValue,n_real-n_output)]  
+	      if (Graph[GraphN].CurrentSec eq Graph[GraphN].Sections-1) then begin
+		      if ptr_valid(LastStructure[LastStructureN].LastData) then ptr_free, LastStructure[LastStructureN].LastData
+		      if ptr_valid(LastStructure[LastStructureN].LastNum) then ptr_free, LastStructure[LastStructureN].LastNum
+	      endif 	  
+	  return, OutPut
+        endif else  begin
+
+          n_points = abs(n_points);
+          OutPut = replicate(FillValue, n_data+n_points);
+          OutPut[num] = Data;
+          return, OutPut[num+n_points];             
+        endelse
+        return, Data
+end
\ No newline at end of file
diff --git a/amda_plus/amdalib/skr_e_init.pro b/amda_plus/amdalib/skr_e_init.pro
new file mode 100644
index 0000000..6b8c95f
--- /dev/null
+++ b/amda_plus/amdalib/skr_e_init.pro
@@ -0,0 +1,35 @@
+;-----------------SKR RH Received Integral Power--------------------------
+; ---------------------------------------------------------
+pro skr_e_init, R1 = R1, R2 = R2, L1 = L1, L2 = L2,  LIN = LIN, LOG = LOG, PSYM = psym, COLOR = color, AY1TITLE = AY1Title, _EXTRA = e
+
+common GraphC, graph, GraphN, Item
+  
+   names = ['RH 100-400', 'LH 100-400', 'RH 10-1000', 'LH 10-1000']
+   
+  pen = !dnc-1 & comp = 4 & symbol = -3;
+ 
+ if (KEYWORD_SET(COLOR)) then pen = color; 
+ if (KEYWORD_SET(PSYM)) then symbol = psym;
+ 
+   if KEYWORD_SET(R1) then comp = 0
+   if KEYWORD_SET(R2) then comp = 2  
+   if KEYWORD_SET(L1) then comp = 1
+   if KEYWORD_SET(L2) then comp = 3   
+if (KEYWORD_SET(AY1TITLE)) then graph[GraphN].Ly.title = AY1Title $
+else graph[GraphN].Ly.title =  'Cass RPWS !CEmitted Power, W/sr'; 
+     
+if (Graph[GraphN].Ly.range[0] eq Graph[GraphN].Ly.range[1]) then  Graph[GraphN].Ly.range = [1.e2, 1.e10]
+ 
+graph[GraphN].names = PTR_NEW(/ALLOCATE_HEAP)
+graph[GraphN].Type = 'FGM_T'
+graph[GraphN].DataN = 1
+graph[GraphN].SetCommonF[0] = 'skr_e_com' 
+graph[GraphN].GetDataF[0] ='get_skr_e'
+graph[GraphN].DeltaT =  (graph[graphN].TotalTime+10.0D0) <  18000.0D0
+if (comp le 3) then graph[GraphN].Ly.title += '!C' + names[comp];
+graph[GraphN].AxisF = KEYWORD_SET(LIN) ? 'lineaxis,' + string(graph[graphN].TotalTime) : 'logaxis'
+*(graph[GraphN].names) =  names
+graph[GraphN].PlotF = (comp le 3) ? 'plotscal_new,'+string(comp)+','+string(pen)+','+string(symbol) : 'plotskr'
+return
+end
+;------------------------------------------------------------
diff --git a/amda_plus/amdalib/skr_lh_e_0_init.pro b/amda_plus/amdalib/skr_lh_e_0_init.pro
new file mode 100644
index 0000000..498926e
--- /dev/null
+++ b/amda_plus/amdalib/skr_lh_e_0_init.pro
@@ -0,0 +1,15 @@
+pro skr_LH_e_0_INIT, LOG = log, LIN = lin, PSYM = psym, COLOR = color, AY1TITLE = AY1Title  
+
+  cmd = 'skr_e_init, /L1'
+  
+  if KEYWORD_SET(LOG) then cmd += ',/LOG';
+  if KEYWORD_SET(LIN) then cmd += ',/LIN';
+  if KEYWORD_SET(PSYM) then cmd += ',PSYM = '+string(psym);
+  if KEYWORD_SET(COLOR) then cmd += ',COLOR = '+string(color);
+  if KEYWORD_SET(AY1TITLE) then cmd += ',AY1TITLE = '+string(AY1Title);
+
+   
+  R = execute(cmd)
+
+return
+end
\ No newline at end of file
diff --git a/amda_plus/amdalib/skr_lh_e_1_init.pro b/amda_plus/amdalib/skr_lh_e_1_init.pro
new file mode 100644
index 0000000..fbe7462
--- /dev/null
+++ b/amda_plus/amdalib/skr_lh_e_1_init.pro
@@ -0,0 +1,15 @@
+pro skr_LH_e_1_INIT, LOG = log, LIN = lin, PSYM = psym, COLOR = color, AY1TITLE = AY1Title  
+
+  cmd = 'skr_e_init, /L2'
+  
+  if KEYWORD_SET(LOG) then cmd += ',/LOG';
+  if KEYWORD_SET(LIN) then cmd += ',/LIN';
+  if KEYWORD_SET(PSYM) then cmd += ',PSYM = '+string(psym);
+  if KEYWORD_SET(COLOR) then cmd += ',COLOR = '+string(color);
+  if KEYWORD_SET(AY1TITLE) then cmd += ',AY1TITLE = '+string(AY1Title);
+
+   
+  R = execute(cmd)
+
+return
+end
\ No newline at end of file
diff --git a/amda_plus/amdalib/skr_lh_init.pro b/amda_plus/amdalib/skr_lh_init.pro
new file mode 100644
index 0000000..52b9f70
--- /dev/null
+++ b/amda_plus/amdalib/skr_lh_init.pro
@@ -0,0 +1,51 @@
+;--------------------------------------
+;   SKR RH Spectra
+;
+;    
+;
+;---------------------------------------
+
+pro SKR_LH_INIT, LOG = log, LIN = lin, PSYM = psym, COLOR = color, AY1TITLE = AY1Title, $
+                     ; spectra
+                     MINCOUNT = minCount, MAXCOUNT = maxCount, BACKGRDCHAN = backgrdChan, BACKGRDVAL = backgrdVal, $
+                     CHANNEL = channel, Energy = energy, MINENERGY = minenergy, MAXENERGY = maxenergy, $                                     
+                     DELAY = delay, _EXTRA = e
+
+
+common GraphC, graph, GraphN, Item
+
+pen = !dnc-1  & symbol = -3;
+ 
+ if (KEYWORD_SET(COLOR)) then pen = color; 
+ if (KEYWORD_SET(PSYM)) then symbol = psym;
+ 
+graph[GraphN].Type = 'FGM_T' 
+graph[GraphN].DataN = 1
+graph[GraphN].SetCommonF[0] = 'skr_com, "Lh"' 
+graph[GraphN].GetDataF[0] ='get_skr, "LH"'
+graph[GraphN].DeltaT = (Graph[GraphN].TotalTime + 60.0D0) <  18000.0D0 
+
+graph[GraphN].names = PTR_NEW(/ALLOCATE_HEAP)
+*(graph[GraphN].names) = 'log Spectral Density'
+
+if (KEYWORD_SET(channel) or KEYWORD_SET(energy)) then begin
+    if (KEYWORD_SET(LOG)) then AxisF = 'logaxis' $
+    else AxisF = 'lineaxis, ' + string(Graph[GraphN].TotalTime);
+    graph[GraphN].AxisF = AxisF;
+    location = KEYWORD_SET(channel) ? channel-1 : energy;
+    PlotF = 'PlotScal, '+ string(location) +',' + string(pen) +','+ string(symbol)
+		  
+    ytitle = 'Cass Rpws SKR LH!CW/m2/Hz ch ' + strtrim(string(location+1),1);                
+
+  endif else begin
+    ytitle = 'Cass Rpws SKR LH!C Freq, kHz'
+    PlotF = KEYWORD_SET(LIN) ? 'PlotSpecSkr, /LIN' : 'PlotSpecSkr';
+endelse
+
+if (KEYWORD_SET(AY1TITLE)) then graph[GraphN].Ly.title = AY1Title $
+else graph[GraphN].Ly.title = yTitle
+ 
+graph[GraphN].PlotF = PlotF
+
+return
+end
diff --git a/amda_plus/amdalib/skr_rh_e_0_init.pro b/amda_plus/amdalib/skr_rh_e_0_init.pro
new file mode 100644
index 0000000..ff34337
--- /dev/null
+++ b/amda_plus/amdalib/skr_rh_e_0_init.pro
@@ -0,0 +1,15 @@
+pro skr_RH_e_0_INIT, LOG = log, LIN = lin, PSYM = psym, COLOR = color, AY1TITLE = AY1Title  
+
+  cmd = 'skr_e_init, /R1'
+  
+  if KEYWORD_SET(LOG) then cmd += ',/LOG';
+  if KEYWORD_SET(LIN) then cmd += ',/LIN';
+  if KEYWORD_SET(PSYM) then cmd += ',PSYM = '+string(psym);
+  if KEYWORD_SET(COLOR) then cmd += ',COLOR = '+string(color);
+  if KEYWORD_SET(AY1TITLE) then cmd += ',AY1TITLE = '+string(AY1Title);
+
+   
+  R = execute(cmd)
+
+return
+end
\ No newline at end of file
diff --git a/amda_plus/amdalib/skr_rh_e_1_init.pro b/amda_plus/amdalib/skr_rh_e_1_init.pro
new file mode 100644
index 0000000..2d63eb2
--- /dev/null
+++ b/amda_plus/amdalib/skr_rh_e_1_init.pro
@@ -0,0 +1,15 @@
+pro skr_RH_e_1_INIT, LOG = log, LIN = lin, PSYM = psym, COLOR = color, AY1TITLE = AY1Title  
+
+  cmd = 'skr_e_init, /R2'
+  
+  if KEYWORD_SET(LOG) then cmd += ',/LOG';
+  if KEYWORD_SET(LIN) then cmd += ',/LIN';
+  if KEYWORD_SET(PSYM) then cmd += ',PSYM = '+string(psym);
+  if KEYWORD_SET(COLOR) then cmd += ',COLOR = '+string(color);
+  if KEYWORD_SET(AY1TITLE) then cmd += ',AY1TITLE = '+string(AY1Title);
+
+   
+  R = execute(cmd)
+
+return
+end
\ No newline at end of file
diff --git a/amda_plus/amdalib/skr_rh_init.pro b/amda_plus/amdalib/skr_rh_init.pro
new file mode 100644
index 0000000..bae4dc8
--- /dev/null
+++ b/amda_plus/amdalib/skr_rh_init.pro
@@ -0,0 +1,51 @@
+;--------------------------------------
+;   SKR RH Spectra
+;
+;    
+;
+;---------------------------------------
+
+pro SKR_RH_INIT, LOG = log, LIN = lin, PSYM = psym, COLOR = color, AY1TITLE = AY1Title, $
+                     ; spectra
+                     MINCOUNT = minCount, MAXCOUNT = maxCount, BACKGRDCHAN = backgrdChan, BACKGRDVAL = backgrdVal, $
+                     CHANNEL = channel, Energy = energy, MINENERGY = minenergy, MAXENERGY = maxenergy, $                                     
+                     DELAY = delay, _EXTRA = e
+
+
+common GraphC, graph, GraphN, Item
+
+pen = !dnc-1  & symbol = -3;
+ 
+ if (KEYWORD_SET(COLOR)) then pen = color; 
+ if (KEYWORD_SET(PSYM)) then symbol = psym;
+ 
+graph[GraphN].Type = 'FGM_T' 
+graph[GraphN].DataN = 1
+graph[GraphN].SetCommonF[0] = 'skr_com, "Rh"' 
+graph[GraphN].GetDataF[0] ='get_skr, "RH"'
+graph[GraphN].DeltaT = (Graph[GraphN].TotalTime + 60.0D0) <  18000.0D0 
+
+graph[GraphN].names = PTR_NEW(/ALLOCATE_HEAP)
+*(graph[GraphN].names) = 'log Spectral Density'
+
+if (KEYWORD_SET(channel) or KEYWORD_SET(energy)) then begin
+    if (KEYWORD_SET(LOG)) then AxisF = 'logaxis' $
+    else AxisF = 'lineaxis, ' + string(Graph[GraphN].TotalTime);
+    graph[GraphN].AxisF = AxisF;
+    location = KEYWORD_SET(channel) ? channel-1 : energy;
+    PlotF = 'PlotScal, '+ string(location) +',' + string(pen) +','+ string(symbol)
+		  
+    ytitle = 'Cass Rpws SKR RH!CW/m2/Hz ch ' + strtrim(string(location+1),1);                
+
+  endif else begin
+    ytitle = 'Cass Rpws SKR RH!C Freq, kHz'
+    PlotF = KEYWORD_SET(LIN) ? 'PlotSpecSkr, /LIN' : 'PlotSpecSkr';
+endelse
+
+if (KEYWORD_SET(AY1TITLE)) then graph[GraphN].Ly.title = AY1Title $
+else graph[GraphN].Ly.title = yTitle
+ 
+graph[GraphN].PlotF = PlotF
+
+return
+end
diff --git a/amda_plus/amdalib/skr_v_init.pro b/amda_plus/amdalib/skr_v_init.pro
new file mode 100644
index 0000000..fbc0b35
--- /dev/null
+++ b/amda_plus/amdalib/skr_v_init.pro
@@ -0,0 +1,51 @@
+;--------------------------------------
+;   SKR RH Spectra
+;
+;    
+;
+;---------------------------------------
+
+pro SKR_V_INIT, LOG = log, LIN = lin, PSYM = psym, COLOR = color, AY1TITLE = AY1Title, $
+                     ; spectra
+                     MINCOUNT = minCount, MAXCOUNT = maxCount, BACKGRDCHAN = backgrdChan, BACKGRDVAL = backgrdVal, $
+                     CHANNEL = channel, Energy = energy, MINENERGY = minenergy, MAXENERGY = maxenergy, $                                     
+                     DELAY = delay, _EXTRA = e
+
+
+common GraphC, graph, GraphN, Item
+
+pen = !dnc-1  & symbol = -3;
+ 
+ if (KEYWORD_SET(COLOR)) then pen = color; 
+ if (KEYWORD_SET(PSYM)) then symbol = psym;
+ 
+graph[GraphN].Type = 'FGM_T' 
+graph[GraphN].DataN = 1
+graph[GraphN].SetCommonF[0] = 'skr_com, "V"' 
+graph[GraphN].GetDataF[0] ='get_skr, "V"'
+graph[GraphN].DeltaT = (Graph[GraphN].TotalTime + 60.0D0) <  18000.0D0 
+
+graph[GraphN].names = PTR_NEW(/ALLOCATE_HEAP)
+*(graph[GraphN].names) = 'polarisation degree'
+
+if (KEYWORD_SET(channel) or KEYWORD_SET(energy)) then begin
+    if (KEYWORD_SET(LOG)) then AxisF = 'logaxis' $
+    else AxisF = 'lineaxis, ' + string(Graph[GraphN].TotalTime);
+    graph[GraphN].AxisF = AxisF;
+    location = KEYWORD_SET(channel) ? channel-1 : energy;
+    PlotF = 'PlotScal, '+ string(location) +',' + string(pen) +','+ string(symbol)
+		  
+    ytitle = 'Cass Rpws SKR!polarisation deg ch ' + strtrim(string(location+1),1);                
+
+  endif else begin
+    ytitle = 'Cass Rpws SKR!C Freq, kHz'
+    PlotF = 'PlotSpecLinSkr, -0.8, 0.8'
+endelse
+
+if (KEYWORD_SET(AY1TITLE)) then graph[GraphN].Ly.title = AY1Title $
+else graph[GraphN].Ly.title = yTitle
+ 
+graph[GraphN].PlotF = PlotF
+
+return
+end
diff --git a/amda_plus/amdalib/spec3d_comp_plot.pro b/amda_plus/amdalib/spec3d_comp_plot.pro
new file mode 100644
index 0000000..4b04495
--- /dev/null
+++ b/amda_plus/amdalib/spec3d_comp_plot.pro
@@ -0,0 +1,65 @@
+;============================================================
+;
+;                Spectra 
+;                Only ONE ITEM -> no processing
+;=============================================================
+
+  pro spec3D_comp_plot, angle, en 
+
+     common GraphC, Graph, GraphN
+    
+    FillValue = Graph[GraphN].FillValue[0]
+
+    Energy = *(Graph[GraphN].yaxis)
+    N_Spec = N_Elements(Energy);
+ 
+ 
+ ;--------------------- No DATA - just axes -----------------------   
+   if (N_Elements(*Graph[GraphN].Time[0]) eq 0) then begin  
+         nodata
+         return
+   endif
+ 
+    Time = (*Graph[GraphN].Time[0])
+    if (Time[0] GT Graph[GraphN].TotalTime) then begin
+        nodatafortimeinterval
+         return
+    endif
+ 
+    Val = (*Graph[GraphN].Val[0])  
+    N_Time = N_elements(Time);
+        
+    N_data = N_elements(Val)/N_Time;
+
+    
+    N_fast = N_Spec - 1;
+    N_slow = N_data/N_fast;
+    Val = reform(Val, N_fast, N_slow, N_Time)    
+    Val = reform(Val[en,angle,*]);
+    
+    numMinMax = where(Val gt 0.0, IndexMinMax)
+
+;--------------------- No DATA - just axes -----------------------      
+  if (IndexMinMax LE 0) then begin
+         nodatafortimeinterval  
+         return
+  endif  
+    MinVal = min(Val[numMinMax]) 
+    MaxVal = max(Val[numMinMax])
+
+  graph[GraphN].Ly.title += strtrim(string(Energy[en], format='(f8.1)'), 1) + '-' +strtrim(string(Energy[en-1], format='(f8.1)'),1);
+
+  if Graph[GraphN].Ly.range[0] eq Graph[GraphN].Ly.range[1] then begin
+                Graph[GraphN].Ly.range = Graph[GraphN].AxisF eq 'logaxis' ? [MinVal, MaxVal] : [0.0, MaxVal]
+                Graph[GraphN].Ly.style = 0
+    endif else Graph[GraphN].Ly.style = 1
+    
+    !y = Graph[GraphN].Ly;
+         
+    if (execute(Graph[GraphN].AxisF) NE 1) then plot, Time,Val, MIN_VALUE = MinVal, MAX_VALUE=MaxValue,  color = !dnc-1, /NODATA, /NOERASE 
+    oplot, Time, Val, MIN_VALUE = MinVal, MAX_VALUE=MaxValue, color = !dnc-1 
+  
+     
+return
+end
+;--------------------------------------------------------------------
diff --git a/amda_plus/amdalib/spec_comp_plot.pro b/amda_plus/amdalib/spec_comp_plot.pro
new file mode 100644
index 0000000..1e7c886
--- /dev/null
+++ b/amda_plus/amdalib/spec_comp_plot.pro
@@ -0,0 +1,78 @@
+;============================================================
+; $Id:  $
+; energy bounds if N_SPEC == N_ENERGY-1
+; energy => indexing from High to Low
+;=============================================================
+
+  pro spec_comp_plot, enMin, enMax
+
+    common GraphC, Graph, GraphN 
+    
+    FillValue = Graph[GraphN].FillValue[0]
+
+    Energy = *(Graph[GraphN].yaxis);
+    N_Energy = N_Elements(Energy);
+
+;--------------------- No DATA - just axes -----------------------   
+   if (N_Elements(*Graph[GraphN].Time[0]) eq 0) then begin  
+         nodata
+         return
+   endif
+
+   Time = (*Graph[GraphN].Time[0])
+   if (Time[0] GT Graph[GraphN].TotalTime) then begin
+        nodatafortimeinterval
+         return
+  endif
+  
+   Val = (*Graph[GraphN].Val[0])  
+   N_Time = long(N_elements(Time));
+   N_Spec = long(N_elements(Val)) / N_time; 
+   Data = reform((Val),N_Spec,N_Time)  
+  
+  if ((enmin eq enmax) and (enmin eq 0)) then begin      
+            enmax = Energy[0];
+            enmin = Energy[N_Energy-1];       
+   endif
+
+  num0 = where(Energy ge enMin, Index0);
+  num1 = where(Energy ge enMax, Index1);
+
+; maximum of requested energy is lower than measured minimum value
+  if (Index1 eq  N_Energy) then begin
+	 nodatafortimeinterval
+         return
+  endif
+    
+  Data =  num0[Index0 - 1] eq num1[Index1 - 1] ? total(Data[num1[Index1 - 1]:num0[Index0 - 1],*],1) : reform(Data[num0[Index0 - 1],*], N_Time);
+   
+  numMinMax = where(Data gt 0.0, IndexMinMax)
+ 
+  ;--------------------- No DATA - just axes -----------------------
+ 
+  if (IndexMinMax LE 0) then begin
+        nodatafortimeinterval  
+        return
+  endif
+
+  if (Time[0] GT Graph[GraphN].TotalTime) then begin
+        nodatafortimeinterval
+        return
+  endif
+    MinVal = min(Data[numMinMax]);   
+    MaxVal = max(Data[numMinMax]);
+   
+    if Graph[GraphN].Ly.range[0] eq Graph[GraphN].Ly.range[1] then begin
+                Graph[GraphN].Ly.range = Graph[GraphN].AxisF eq 'logaxis' ? [MinVal, MaxVal] : [0.0, MaxVal]
+                Graph[GraphN].Ly.style = 0
+    endif else Graph[GraphN].Ly.style = 1
+    
+    !y = Graph[GraphN].Ly;
+    
+     
+    if (execute(Graph[GraphN].AxisF) NE 1) then plot, Time, Data, MAX_VALUE=MaxValue,  color = !dnc-1, /NODATA, /NOERASE 
+    oplot, Time, Data,  MAX_VALUE=MaxValue, color = !dnc-1 
+  
+return
+end
+;--------------------------------------------------------------------
diff --git a/amda_plus/amdalib/src/mars/FSU_mars90 b/amda_plus/amdalib/src/mars/FSU_mars90
new file mode 100644
index 0000000..5592981
--- /dev/null
+++ b/amda_plus/amdalib/src/mars/FSU_mars90
@@ -0,0 +1,4189 @@
+ n*=90 to Mars data (AB1,AB2night,AB2day,MPO,SPO)
+ 3390.0 1998.0 1998.0 2004.6493
+  1  0     -1.89681733
+  1  1     -0.32750675     -0.30552042
+  2  0      0.17241816
+  2  1      1.12438285      0.11043704
+  2  2      1.29938209      0.80120724
+  3  0      0.88161999
+  3  1     -0.65117228      0.23495910
+  3  2     -1.10130453     -0.72806001
+  3  3     -1.03623295     -0.33552536
+  4  0     -0.88718134
+  4  1     -0.68644154     -1.42301595
+  4  2      0.04659459     -1.20928466
+  4  3      2.11879015      0.19786221
+  4  4      0.48397222      0.56527835
+  5  0      0.97637248
+  5  1      0.26610789      1.88454819
+  5  2      0.36165920      0.93803716
+  5  3     -0.26021850     -1.12032938
+  5  4      0.42507660     -1.14779806
+  5  5      0.51022935     -1.13813221
+  6  0     -1.02752626
+  6  1     -0.12612420     -0.84659147
+  6  2     -0.20070577     -0.08594634
+  6  3     -1.70379055      0.12564772
+  6  4      0.41586179      0.69410640
+  6  5      0.34569693      1.14121413
+  6  6     -0.92122191      0.25896543
+  7  0      1.41242445
+  7  1      1.21852839     -0.59291315
+  7  2     -0.70168102      0.50037068
+  7  3      0.53016746      0.86246312
+  7  4      0.11845449     -0.30717063
+  7  5      0.50789297      0.13198221
+  7  6      1.07706451     -0.53148580
+  7  7      1.45102537     -0.81432050
+  8  0     -0.71785337
+  8  1     -3.31553912     -0.38838780
+  8  2      0.86958253     -2.00175405
+  8  3      1.34301722     -0.98541546
+  8  4     -0.69741231     -0.78848422
+  8  5     -0.91714710     -0.21346827
+  8  6     -1.04841399      1.94913352
+  8  7     -2.08253264      1.26873732
+  8  8     -0.72891325     -0.34214562
+  9  0     -1.12129009
+  9  1      3.04769039      0.95334351
+  9  2      1.56529999      1.84535599
+  9  3     -1.51175511      0.89362162
+  9  4     -0.33557650      0.18780582
+  9  5      0.72781777     -0.11598818
+  9  6      0.82973462     -0.30145490
+  9  7      0.47684935     -0.79059249
+  9  8      0.61222839      0.05565894
+  9  9      1.49782896     -0.99266195
+ 10  0      2.57711291
+ 10  1     -0.41855848     -0.18731329
+ 10  2     -4.08497000     -0.77453834
+ 10  3     -0.67589009     -1.23494995
+ 10  4      1.86593246     -0.02669465
+ 10  5      0.81686383     -0.54235739
+ 10  6     -0.40188006     -1.58525693
+ 10  7     -0.26591566      0.38428894
+ 10  8     -0.95286423      0.78435755
+ 10  9     -1.87160873      0.61423528
+ 10 10     -0.75040656      0.83559197
+ 11  0     -2.14136958
+ 11  1     -2.26744223     -0.43049997
+ 11  2      2.97690535     -0.27474850
+ 11  3      2.37497497      0.47753578
+ 11  4     -1.04706764      0.34905747
+ 11  5     -1.97396553      0.96701699
+ 11  6     -0.40978086      1.46674812
+ 11  7      0.18932171      0.41680250
+ 11  8      0.67357862     -0.50815111
+ 11  9      0.68911624     -0.05370222
+ 11 10      1.11456025     -1.78193808
+ 11 11      0.92179829     -1.53988409
+ 12  0      0.67413080
+ 12  1      3.45322299      0.28641337
+ 12  2     -0.01021258     -0.72400218
+ 12  3     -2.20968843     -0.38744813
+ 12  4     -1.79624510     -0.83562446
+ 12  5      0.77798706     -0.88006508
+ 12  6      1.41321194     -0.32301754
+ 12  7     -0.14778028     -0.83659661
+ 12  8     -0.30261481     -0.54167414
+ 12  9      0.70100051     -0.03140472
+ 12 10     -1.71225500      1.92893541
+ 12 11     -2.47337866      1.14817882
+ 12 12     -2.74445057      1.38858128
+ 13  0      0.10406694
+ 13  1     -2.86244202     -0.05376575
+ 13  2     -2.12506223      1.90384173
+ 13  3      2.24985385      0.53434527
+ 13  4      3.68037152     -0.49266347
+ 13  5      1.19021881     -0.65770346
+ 13  6     -0.43831930      0.10262407
+ 13  7     -0.69832593      0.85885227
+ 13  8     -0.02631155      0.11611410
+ 13  9      0.21315734      0.96518761
+ 13 10      1.07534993      0.21723412
+ 13 11      2.51744533     -1.82991171
+ 13 12      2.09179640     -2.15182877
+ 13 13     -0.10741667     -0.98373705
+ 14  0     -2.74180388
+ 14  1      0.51985002      0.46067604
+ 14  2      2.77256417     -0.57529545
+ 14  3     -0.85655409     -1.24094737
+ 14  4     -2.20495486      1.33337688
+ 14  5     -2.17661548      1.13284802
+ 14  6     -0.07035115     -0.30525550
+ 14  7      1.02643502     -0.61426908
+ 14  8      0.41755265      0.13340025
+ 14  9      0.52585441      0.04258008
+ 14 10      1.17398298      0.20792811
+ 14 11     -1.33591676      2.62227082
+ 14 12     -1.74827302      0.67439181
+ 14 13     -2.51068616      0.27443498
+ 14 14     -1.77344322      0.02691313
+ 15  0      3.89675307
+ 15  1      0.55645311     -1.97378898
+ 15  2     -3.09920621     -1.43198729
+ 15  3     -1.66122866      1.45712924
+ 15  4      0.55119759      0.46090534
+ 15  5      2.09471130     -0.37175599
+ 15  6      0.18499652     -0.21036947
+ 15  7     -0.23901305      0.99141490
+ 15  8     -1.07214224      0.70886469
+ 15  9     -1.09511864     -0.18146621
+ 15 10     -1.32275915      0.44477320
+ 15 11     -0.61973834      0.20882262
+ 15 12      0.77915609      0.28058445
+ 15 13      2.58295631     -0.36424237
+ 15 14      1.65219283     -0.69743758
+ 15 15      0.61975878      0.22953221
+ 16  0     -2.50345922
+ 16  1     -3.39577866      1.29269874
+ 16  2      2.12976432      0.92432755
+ 16  3      3.98706484     -0.49289185
+ 16  4     -0.08147272     -1.96645510
+ 16  5     -1.60107112      0.51839745
+ 16  6     -0.88983977      1.92884922
+ 16  7     -0.75133806     -0.85485560
+ 16  8      0.57262808     -1.76997268
+ 16  9      0.43797675     -1.39750600
+ 16 10      1.08089793     -2.08358955
+ 16 11      1.27775288     -2.28392434
+ 16 12      0.44929320      0.52929956
+ 16 13      0.21215250      0.41457519
+ 16 14     -1.91056931     -0.13559245
+ 16 15     -1.15128076     -0.06476037
+ 16 16     -0.06860875     -2.21226335
+ 17  0     -1.50811207
+ 17  1      5.62957954      0.86820167
+ 17  2      0.49156821     -0.26336998
+ 17  3     -4.15792370     -1.96018779
+ 17  4     -0.96756005      0.62719125
+ 17  5      1.55788636     -0.65102512
+ 17  6      2.51085997     -2.23071408
+ 17  7     -0.24815364     -1.27136624
+ 17  8     -0.43194863      1.58299613
+ 17  9     -0.37998039      1.67392564
+ 17 10     -0.50058198      2.35063887
+ 17 11     -0.86200082      1.48865533
+ 17 12     -0.42703873     -0.73763049
+ 17 13     -0.80960447     -0.32649222
+ 17 14      1.94992614      0.16878925
+ 17 15      1.15540373     -0.44376680
+ 17 16      1.32400846      1.04515028
+ 17 17      0.85663360      0.59850931
+ 18  0      3.31983685
+ 18  1     -5.63484812     -2.67338109
+ 18  2     -4.31257153      0.39517668
+ 18  3      1.72455060      1.43193471
+ 18  4      2.83781171      1.27256513
+ 18  5     -0.09284672      0.16771898
+ 18  6     -1.61511946      0.82109118
+ 18  7      1.16492689      2.84489274
+ 18  8     -0.50657701      0.82022196
+ 18  9      0.43128440     -0.36334243
+ 18 10      0.80850661     -1.50721550
+ 18 11      1.54904163     -0.99048209
+ 18 12      2.04483008     -1.13887691
+ 18 13      0.82002681      0.80333716
+ 18 14     -0.11047585      0.97063673
+ 18 15     -0.60202020      0.70016885
+ 18 16     -0.32522050      0.40934733
+ 18 17      0.27504960     -1.05541432
+ 18 18     -0.99301481     -1.57949412
+ 19  0     -2.75487685
+ 19  1      0.57394361      0.09768170
+ 19  2      6.30722809     -0.82322741
+ 19  3      0.98103333      0.41164222
+ 19  4     -3.05471611     -1.50000584
+ 19  5     -2.17822266      0.39698872
+ 19  6      0.30752331      0.18537948
+ 19  7      1.51762962     -2.90335846
+ 19  8      0.32853290     -2.64113307
+ 19  9     -0.51361114     -2.00434566
+ 19 10     -1.29770923      0.19858491
+ 19 11     -2.97992921      1.81543815
+ 19 12     -2.84632516      1.85819852
+ 19 13     -0.51661921     -1.30356562
+ 19 14     -0.20945081     -0.12696987
+ 19 15      0.84705484     -0.37837452
+ 19 16     -0.08857699     -3.27255964
+ 19 17      0.04464132     -0.23339978
+ 19 18      1.00842202      0.73811817
+ 19 19     -1.48242545      1.34036672
+ 20  0      3.68609786
+ 20  1      3.45235538      1.04853594
+ 20  2     -5.49898195     -1.47420967
+ 20  3     -3.62899995     -1.11308610
+ 20  4      2.19607544     -0.66834092
+ 20  5      1.92568541     -0.37819323
+ 20  6     -0.56088156      0.80755860
+ 20  7     -1.63318086      1.08239043
+ 20  8      1.46085572      2.56673360
+ 20  9      0.41785243      1.79312289
+ 20 10      1.04032636      1.19412589
+ 20 11      2.84233904     -2.06608248
+ 20 12      2.52633929     -0.17798576
+ 20 13      1.59211743      0.08138485
+ 20 14      0.53068733     -0.10845862
+ 20 15      0.12343892      0.98857164
+ 20 16      0.57467115      1.69369757
+ 20 17      0.26201400      1.71302652
+ 20 18      0.52012682      0.45949876
+ 20 19      0.61924046     -0.46935084
+ 20 20     -0.96247751      0.13578786
+ 21  0     -3.19718051
+ 21  1     -3.73428130      0.35526904
+ 21  2      2.11472583      1.71020615
+ 21  3      4.54908276      0.01833338
+ 21  4      0.59395629      0.90906239
+ 21  5     -0.31545424     -0.62894958
+ 21  6     -0.01111745     -0.94307894
+ 21  7      0.80391330      1.16165495
+ 21  8     -1.19109535     -0.61940217
+ 21  9     -0.20801063     -0.78597707
+ 21 10      1.00189483     -2.00833678
+ 21 11     -0.09002221     -0.41345176
+ 21 12     -1.57797539      0.00819554
+ 21 13     -2.96866632      1.11100805
+ 21 14     -1.22378767      0.31845155
+ 21 15     -0.76067126      1.67155111
+ 21 16      0.47817972      1.34682763
+ 21 17      1.00641763     -2.25784564
+ 21 18     -0.49298903     -2.01153088
+ 21 19     -1.00595033     -1.04747331
+ 21 20     -1.17147624      1.40567660
+ 21 21     -1.14901030      2.73501396
+ 22  0      0.69960362
+ 22  1      3.64419961     -1.30370414
+ 22  2      1.20009279     -1.04088831
+ 22  3     -3.70992064     -0.57041287
+ 22  4     -2.62437034      0.31571093
+ 22  5      0.27543861      0.78002125
+ 22  6      0.59578025     -0.68983072
+ 22  7     -0.52748525     -0.76877737
+ 22  8     -0.57992208      0.20086049
+ 22  9      1.05974996      1.16507995
+ 22 10     -1.60229766      2.44752073
+ 22 11     -1.13303447      2.62513781
+ 22 12      1.11973846     -0.74990779
+ 22 13      1.90591919     -1.93348992
+ 22 14      1.23953784     -0.41781408
+ 22 15     -0.54771906     -2.55333114
+ 22 16     -2.09801269     -1.04454768
+ 22 17     -0.51253051      0.60858762
+ 22 18      0.41658929      1.01064229
+ 22 19      1.00007331      2.06234336
+ 22 20      1.18141007     -0.80941832
+ 22 21      0.39734748     -1.32914829
+ 22 22      1.45429087      0.18332788
+ 23  0      1.58807540
+ 23  1     -4.83449221     -0.51772213
+ 23  2     -2.85109878     -0.99600214
+ 23  3      3.00602412      1.16766191
+ 23  4      2.05012655      0.76274937
+ 23  5     -1.04103041      0.74619782
+ 23  6     -0.52371246      1.68516099
+ 23  7      0.45497063     -0.09643061
+ 23  8      1.62305319     -0.04099358
+ 23  9     -1.39368105     -1.43793654
+ 23 10     -1.46884978     -0.44058001
+ 23 11      1.11774039     -1.95280826
+ 23 12      0.11895771      1.56236756
+ 23 13     -1.24402952      0.74351335
+ 23 14     -1.92525029      0.06787679
+ 23 15      1.26596105      0.53994924
+ 23 16      1.81392992      0.71269870
+ 23 17      1.13284445      1.75777066
+ 23 18      1.24758410      0.20954731
+ 23 19     -1.11322689     -1.61238873
+ 23 20     -0.00412042     -1.31208074
+ 23 21     -1.65061224     -0.08358184
+ 23 22     -1.30889750      2.52841687
+ 23 23      0.72177911      1.04229617
+ 24  0     -1.53361475
+ 24  1      3.05039167      1.79296291
+ 24  2      1.82893980      0.70000738
+ 24  3     -1.12980628     -2.53544021
+ 24  4     -1.12103498     -2.57947922
+ 24  5     -0.39860949     -1.17123806
+ 24  6     -0.63627213     -0.71570629
+ 24  7     -1.06412411     -0.18620814
+ 24  8     -0.87271196      0.38363013
+ 24  9      0.80972773      1.29799032
+ 24 10      2.27957201     -1.37689507
+ 24 11     -0.98953229      0.38605598
+ 24 12     -1.61967301      0.54804885
+ 24 13      0.89090091     -0.78133178
+ 24 14      2.21448755     -0.69531929
+ 24 15     -0.15404987      0.88340336
+ 24 16     -1.49105918     -1.49590516
+ 24 17     -2.19916391     -2.35054111
+ 24 18     -1.86455691     -1.36373293
+ 24 19     -0.99591821      0.24922112
+ 24 20     -0.12328809      1.90135920
+ 24 21      0.67314613      0.30973053
+ 24 22      1.48085511     -3.42836142
+ 24 23      1.53040087     -1.41246152
+ 24 24      1.88927746     -0.22336523
+ 25  0      1.17801750
+ 25  1     -0.10719827     -0.43822223
+ 25  2     -1.16775787     -0.21456231
+ 25  3     -0.79888582      0.06652525
+ 25  4      2.35637999      0.20897444
+ 25  5      1.35301101      0.32238722
+ 25  6     -0.24559389     -0.02473235
+ 25  7      0.19631699      1.70688796
+ 25  8     -0.30345717      0.93233699
+ 25  9      0.00024197     -0.71430087
+ 25 10     -0.31118330     -0.20441292
+ 25 11      0.25889000      0.88926065
+ 25 12      0.01976084     -1.17069101
+ 25 13     -1.00449002      0.05536369
+ 25 14     -2.06863308      0.55594015
+ 25 15     -2.47665715     -0.49163869
+ 25 16      0.97181338      2.25405645
+ 25 17      2.80637479      1.51219261
+ 25 18      0.84468442      1.06182158
+ 25 19      0.90587354      0.35637584
+ 25 20     -1.53845298     -2.73010731
+ 25 21     -1.15843332     -1.06602883
+ 25 22     -0.13501161      1.71244311
+ 25 23     -1.99925208      1.63884652
+ 25 24     -0.15103050      0.09926568
+ 25 25     -0.18529253     -1.59057140
+ 26  0     -0.63782901
+ 26  1     -0.27966705     -0.73915827
+ 26  2      2.01903486      0.48061448
+ 26  3      0.71220481      1.33227468
+ 26  4     -2.69121718      0.36061299
+ 26  5     -0.23999935     -0.11794241
+ 26  6      0.39860815     -0.28419280
+ 26  7      0.02098355     -1.77098572
+ 26  8     -0.80093503     -2.52932763
+ 26  9     -2.41512513     -0.34107080
+ 26 10     -1.48803079      2.15937543
+ 26 11      2.11751819     -0.66289735
+ 26 12      0.83445513      0.20735610
+ 26 13      0.06195544      0.05186625
+ 26 14      1.08578849     -0.23777872
+ 26 15      3.53706670     -1.70968139
+ 26 16     -0.03536030     -0.58389860
+ 26 17     -1.00203121     -0.07602195
+ 26 18      0.27540728     -1.09451008
+ 26 19     -0.77992553     -1.00809383
+ 26 20     -0.12979564     -1.07658184
+ 26 21      0.04721538      0.01394145
+ 26 22      0.93590796      0.13281469
+ 26 23      1.63150585     -0.55611449
+ 26 24      1.04243362      0.33004484
+ 26 25      2.60718727      0.73350221
+ 26 26      0.28985569     -1.05542731
+ 27  0      1.22760880
+ 27  1      0.21158546      1.11098766
+ 27  2     -2.22789335     -1.84375405
+ 27  3      0.17360891     -0.76984483
+ 27  4      0.37628999      0.27253088
+ 27  5      0.68841887     -0.33441672
+ 27  6      0.56645679     -0.71160853
+ 27  7      0.64491981      0.30934200
+ 27  8      1.77442908      2.15076923
+ 27  9      0.66888338      1.21646380
+ 27 10     -0.95195007     -1.68203282
+ 27 11     -1.98211980     -1.25176632
+ 27 12      1.37717450      0.14516243
+ 27 13      1.40843678      0.62412661
+ 27 14     -0.25910184      0.47893837
+ 27 15     -1.85506618      0.89297867
+ 27 16     -2.25028300     -0.06796671
+ 27 17     -1.99235046      1.05583751
+ 27 18     -0.44019172      0.56992728
+ 27 19     -0.57027233      2.58920169
+ 27 20      0.68775856      2.19375014
+ 27 21     -0.22158577     -2.16672206
+ 27 22     -0.74436682     -2.37986374
+ 27 23     -0.18915348     -0.75065255
+ 27 24     -2.57467961      1.95002842
+ 27 25     -2.06849790      0.93171155
+ 27 26     -0.46171346     -0.88462639
+ 27 27      0.14415176     -1.80319154
+ 28  0     -1.01800358
+ 28  1      0.41879439     -0.20603606
+ 28  2      1.54733837      0.49595967
+ 28  3      1.33135879     -0.73472494
+ 28  4      0.58881509     -0.44680431
+ 28  5     -1.67389023     -0.61062443
+ 28  6      0.20809507      0.57043487
+ 28  7      0.76701021      0.36319056
+ 28  8     -0.73650599     -0.46327603
+ 28  9      1.24818027     -1.60221708
+ 28 10      1.78672206      0.21888496
+ 28 11     -0.87381530      2.24040055
+ 28 12     -1.70905519     -0.14952159
+ 28 13     -1.23773479     -0.51031554
+ 28 14     -1.07450283     -0.41841996
+ 28 15      1.71637583      0.21429129
+ 28 16      3.26643562     -0.32088295
+ 28 17      1.30831063     -2.32565212
+ 28 18      0.01704948     -0.31057250
+ 28 19      1.90496290     -1.83566558
+ 28 20      1.17062795     -1.80147386
+ 28 21      1.42232358      0.90582955
+ 28 22      1.74864948      1.47627127
+ 28 23      0.37355071      0.81624043
+ 28 24      1.69676542     -0.81263548
+ 28 25      1.61328089     -0.77218336
+ 28 26      0.79583657      3.83630896
+ 28 27     -0.74431670      1.85982168
+ 28 28     -0.59931278     -0.29208112
+ 29  0     -0.29034898
+ 29  1     -1.08497226      0.05099284
+ 29  2     -0.17747842      3.13445997
+ 29  3     -1.72965169      0.28611758
+ 29  4      1.35750246     -0.56355065
+ 29  5      1.32768130      0.87727779
+ 29  6     -2.00738025     -0.21556437
+ 29  7     -1.76505709     -0.38512382
+ 29  8     -1.13091075     -0.05832037
+ 29  9     -0.11050743      1.96252835
+ 29 10      0.98226833      1.60693681
+ 29 11      0.49326509     -0.85147947
+ 29 12     -1.82998276     -1.02625954
+ 29 13      0.41718310      0.33508715
+ 29 14      0.79246789      1.27922499
+ 29 15     -1.07311308     -0.18266153
+ 29 16     -2.44091034     -0.00079200
+ 29 17     -0.35005713      0.77932435
+ 29 18     -0.04056233      1.04642415
+ 29 19     -1.51545274     -0.74673826
+ 29 20     -2.24992037      0.78269976
+ 29 21     -1.61424661      2.30724597
+ 29 22      0.06759857      0.08312619
+ 29 23      0.07655070     -1.17611718
+ 29 24      1.95313442     -0.01691663
+ 29 25     -1.58299601     -0.73588920
+ 29 26     -1.49160409     -1.17805064
+ 29 27      0.62967777     -0.20720357
+ 29 28     -0.41454986     -1.43848681
+ 29 29      0.12177087      0.25191265
+ 30  0     -0.34654093
+ 30  1      0.29324186     -0.01494650
+ 30  2     -0.07690179     -1.99780285
+ 30  3      0.10476761      0.38271067
+ 30  4     -1.01184034      0.28814143
+ 30  5     -0.12721260     -0.16927272
+ 30  6     -0.17570543     -0.89973164
+ 30  7      0.83909833     -0.50384152
+ 30  8      1.92771316     -0.28670636
+ 30  9     -1.34466648     -1.38374627
+ 30 10     -2.06198764     -1.77518702
+ 30 11      0.24894011     -0.36406904
+ 30 12      1.77746117      1.52916837
+ 30 13     -0.17197068     -0.17743096
+ 30 14      0.14643161     -2.11786246
+ 30 15      0.38525343     -1.52936935
+ 30 16      1.66547287      1.00450027
+ 30 17      1.41429436      1.16551232
+ 30 18      0.18766856     -1.73255432
+ 30 19      0.56938678     -0.35981640
+ 30 20      3.72150636     -0.61911631
+ 30 21      0.72958648     -0.72910726
+ 30 22      1.13157701      1.55101025
+ 30 23      0.47661710      3.29188561
+ 30 24     -0.96737999      2.01340461
+ 30 25      1.26037085      2.00065804
+ 30 26      0.44057062     -0.69666517
+ 30 27      0.66745442     -0.60460103
+ 30 28     -0.43285003      1.88577855
+ 30 29     -0.89662766      1.17932951
+ 30 30      1.46307147      0.19720085
+ 31  0      2.29215956
+ 31  1      0.00188374     -1.59909141
+ 31  2     -0.99266696     -2.41667342
+ 31  3      0.52200150      0.78243095
+ 31  4     -0.98924643     -0.40422177
+ 31  5      1.54923403     -0.98241884
+ 31  6      3.55496621      0.24086541
+ 31  7     -0.36569759     -0.26985931
+ 31  8     -1.61613238     -0.44385710
+ 31  9     -0.08351870      0.29150859
+ 31 10     -0.31998932      0.69038796
+ 31 11      0.49779093      0.55673015
+ 31 12      1.15186238      0.64452136
+ 31 13     -0.27602595      0.41416711
+ 31 14     -0.53486812      0.18798782
+ 31 15      0.42614701      1.61300433
+ 31 16     -2.69674253     -0.09836048
+ 31 17     -2.70539308     -0.27684695
+ 31 18     -0.87811708      1.17903793
+ 31 19      0.01864765      1.20000958
+ 31 20     -1.78974509     -0.60638744
+ 31 21     -0.68021262     -1.11066508
+ 31 22     -1.82393312     -1.90008616
+ 31 23     -1.07727993     -1.72417235
+ 31 24     -1.39153588     -1.42652929
+ 31 25      0.22039254     -0.28696352
+ 31 26      1.49930429      1.71725476
+ 31 27      1.15961170      1.05202758
+ 31 28      0.46764871     -1.75114775
+ 31 29      1.18953216     -2.80644894
+ 31 30     -0.59202957     -1.49105549
+ 31 31     -0.91380882      0.43502402
+ 32  0     -1.17697716
+ 32  1      0.36364985      1.53962719
+ 32  2      0.64026582      3.13243866
+ 32  3      0.53861266     -2.23565412
+ 32  4      1.84235859     -0.18165390
+ 32  5     -1.47348082      0.99824822
+ 32  6     -2.32471061      0.78239048
+ 32  7     -0.34944755      1.03047419
+ 32  8     -0.14387912      0.53145397
+ 32  9      2.27193904      0.03079195
+ 32 10      1.32938302     -1.17884505
+ 32 11     -1.42922556     -0.49435744
+ 32 12     -1.83292496     -0.19762480
+ 32 13     -0.95811617      0.59849429
+ 32 14     -1.16844594      0.24370277
+ 32 15     -1.89094698     -1.13081038
+ 32 16      1.65156472     -1.75499964
+ 32 17      4.28328896     -1.33682013
+ 32 18      1.60751283     -0.20303911
+ 32 19      0.30593008     -1.28756142
+ 32 20      0.41101310      0.40150243
+ 32 21      3.21999121      0.29225266
+ 32 22      1.31986523      1.88082492
+ 32 23      0.48849386      1.10670209
+ 32 24      2.14843893      1.30165470
+ 32 25     -0.38724470     -0.26530573
+ 32 26     -1.10991716      1.10640800
+ 32 27     -1.08562291     -0.10503656
+ 32 28      0.53680527      1.21004331
+ 32 29      0.44396904      1.84579980
+ 32 30     -1.19662261     -0.26914552
+ 32 31      1.85479724      1.04393709
+ 32 32      0.35344258      1.00379562
+ 33  0     -0.07232130
+ 33  1     -0.26860932      0.99178463
+ 33  2     -0.59941375     -0.28593084
+ 33  3     -0.86707783      0.67627609
+ 33  4      0.76551288      1.04464614
+ 33  5     -0.81410664     -1.10477710
+ 33  6      0.30873173     -2.41012621
+ 33  7      2.50878835     -0.22296016
+ 33  8     -0.17356946     -0.61252558
+ 33  9     -1.28366458     -0.50043011
+ 33 10     -0.40774086      0.58569735
+ 33 11     -0.98800910      0.32206142
+ 33 12     -0.06808966     -1.58853936
+ 33 13      1.83360922     -1.61419845
+ 33 14      2.38489199      0.55391520
+ 33 15      1.97136331      1.02446580
+ 33 16      2.19803357      0.75506777
+ 33 17     -2.45411325      0.53589779
+ 33 18     -3.56642866      0.15613399
+ 33 19     -0.74932349      0.25884977
+ 33 20      1.53288054      1.51998103
+ 33 21     -1.96487868      0.96022820
+ 33 22      0.16129291      0.97644550
+ 33 23     -2.04444408      0.12759735
+ 33 24     -1.06655061     -1.21919453
+ 33 25     -0.60378003     -1.77076793
+ 33 26     -0.90440404     -1.15066636
+ 33 27      1.12514257      2.40753150
+ 33 28     -0.48211122      1.14732778
+ 33 29      1.27753901      0.22406961
+ 33 30      2.94765401     -1.13242757
+ 33 31     -0.72319812     -1.51704824
+ 33 32     -0.17011756     -1.70338631
+ 33 33     -0.71777844      0.04137087
+ 34  0     -0.73277104
+ 34  1      0.18980779     -2.63543105
+ 34  2      2.32674193     -0.66162872
+ 34  3     -0.77671397      2.18478703
+ 34  4     -2.72688484     -2.63413048
+ 34  5      2.28478456     -0.74061483
+ 34  6     -0.32935545      1.72040904
+ 34  7     -1.49458551     -0.71811062
+ 34  8      0.96871424     -0.62209868
+ 34  9     -0.82703257      0.32722491
+ 34 10     -0.63461155      0.72953910
+ 34 11      2.59664941     -0.84884715
+ 34 12      1.59769988      0.57885456
+ 34 13     -1.00720561      1.68537915
+ 34 14     -1.45554233      0.70480490
+ 34 15     -1.91864324     -0.00735823
+ 34 16     -5.16547012     -0.72188509
+ 34 17     -0.71938765      0.86507803
+ 34 18      3.78960204      0.09619334
+ 34 19      2.40085745     -0.45385310
+ 34 20     -0.23700558     -2.07213545
+ 34 21     -0.65877897     -1.27486145
+ 34 22      0.32600766     -1.21102071
+ 34 23      1.36896694      0.40191308
+ 34 24     -1.55641270      1.29763794
+ 34 25      0.14426418      0.30484435
+ 34 26      0.83041435     -0.80506456
+ 34 27     -0.23533989     -2.03231382
+ 34 28     -0.24421148     -0.40074277
+ 34 29     -0.48997903      0.56411469
+ 34 30     -1.04611897      0.73265988
+ 34 31      0.74282521      0.59886432
+ 34 32      0.24607864      0.44569379
+ 34 33     -0.30736992     -0.00912108
+ 34 34     -2.09137106      1.97781610
+ 35  0      3.01040006
+ 35  1      0.62621927      1.21853209
+ 35  2     -3.33690619     -1.27972078
+ 35  3      0.41629997     -1.74394584
+ 35  4      0.99814951      2.65061450
+ 35  5      0.73846489      2.68279195
+ 35  6      1.05704939     -0.79670316
+ 35  7      0.65965557     -1.41612530
+ 35  8      0.84877306      1.37930608
+ 35  9     -0.38798198     -0.33410954
+ 35 10      0.53827161     -1.86970329
+ 35 11      1.15647709      0.82307285
+ 35 12     -1.01762962      1.61035883
+ 35 13     -2.00793648     -0.84931296
+ 35 14      0.46265188     -2.29818583
+ 35 15      1.93351352      0.02603447
+ 35 16      3.63789153      0.85819906
+ 35 17      3.73951793     -0.97156894
+ 35 18     -1.30224311     -0.39559668
+ 35 19     -2.92679286      0.70477366
+ 35 20     -1.71742976     -0.06771528
+ 35 21      1.42596114      0.68560553
+ 35 22      0.27557418      1.13735044
+ 35 23      1.44584560      0.24725316
+ 35 24      1.14400029     -0.75858456
+ 35 25     -0.14202319      0.62891769
+ 35 26      2.13018489      1.69182408
+ 35 27     -0.65363973      0.02005905
+ 35 28     -0.48634735      1.32867265
+ 35 29     -0.13658208     -0.11332560
+ 35 30      0.31425929      0.96858805
+ 35 31      1.18629789      0.60845059
+ 35 32      2.07073832     -0.48890123
+ 35 33      2.24629807     -0.49585798
+ 35 34      0.89281118     -2.80870438
+ 35 35     -2.30632901     -0.60513288
+ 36  0     -2.88807011
+ 36  1     -2.75546670      1.57770514
+ 36  2      1.50255251     -0.68869412
+ 36  3      3.67119217     -0.30604380
+ 36  4      1.18904567      0.62811059
+ 36  5     -2.92809701     -2.45056558
+ 36  6      0.68571615     -0.08554530
+ 36  7     -1.12285113      2.77008343
+ 36  8     -1.94737327     -0.01301389
+ 36  9      2.31274319     -0.65431535
+ 36 10      0.11637145      0.80152488
+ 36 11     -5.36526680      1.10298634
+ 36 12     -1.61223125     -2.45590878
+ 36 13      2.41121960     -1.56051981
+ 36 14      1.17839170      1.13223648
+ 36 15     -0.35539973      1.34234715
+ 36 16      0.76931888      0.06595927
+ 36 17     -3.89742947     -0.37085065
+ 36 18     -1.95615983      1.01575911
+ 36 19      2.14663815      0.02882921
+ 36 20      2.78891206      0.97178268
+ 36 21      0.74474806     -0.19478337
+ 36 22     -0.32339430     -0.14218439
+ 36 23     -1.81208527     -0.63407719
+ 36 24     -0.04548787      0.47484031
+ 36 25     -1.04219377      0.58819526
+ 36 26     -1.28539062     -0.12903358
+ 36 27      0.31628790      1.06582272
+ 36 28     -0.09672774     -1.86387086
+ 36 29      1.01617658      0.23010471
+ 36 30      1.64513469     -1.94490278
+ 36 31     -0.76119030      0.59362608
+ 36 32     -1.21155751      0.51687431
+ 36 33     -1.18967795      0.45679197
+ 36 34      1.14385855      0.88809431
+ 36 35     -1.71337450     -1.19794858
+ 36 36     -3.26016974     -0.70178872
+ 37  0      0.57922262
+ 37  1      4.30988264     -1.02659559
+ 37  2     -0.67820609      2.14781594
+ 37  3     -5.20256996     -1.06148195
+ 37  4     -1.47246444     -2.41995788
+ 37  5      0.81024134      2.15688968
+ 37  6     -1.38345563      1.25082767
+ 37  7      2.35074162     -2.17155457
+ 37  8      2.03279448     -2.23917389
+ 37  9     -0.62524623      1.27864206
+ 37 10     -1.74837756      0.01902342
+ 37 11      2.34025717     -1.58422482
+ 37 12      4.38072014     -0.13377279
+ 37 13      1.05418622      2.40127182
+ 37 14     -2.71087241      0.05181435
+ 37 15     -1.32472444     -1.77773631
+ 37 16     -0.73944938     -0.11527824
+ 37 17      2.99567175      1.57104707
+ 37 18      4.11536741     -1.23579240
+ 37 19      0.88675404      0.53344935
+ 37 20     -1.96444345      1.18636715
+ 37 21     -2.89614320      0.02128273
+ 37 22     -1.25558531     -0.18090516
+ 37 23     -0.54488486     -0.03808384
+ 37 24      0.36265948      0.16463020
+ 37 25      1.60433888     -1.60976076
+ 37 26     -0.02097269     -1.67700887
+ 37 27      1.52895534      1.73693550
+ 37 28     -1.16772699      1.93518138
+ 37 29     -1.28870428      1.38077915
+ 37 30     -0.84203160      1.23927653
+ 37 31      0.68758339      0.90419549
+ 37 32      1.17145097     -0.69769907
+ 37 33     -0.53964716      0.54798585
+ 37 34     -1.18226898     -0.34998789
+ 37 35      2.57962704     -0.42631629
+ 37 36      2.55935788      1.21434331
+ 37 37     -0.69777715     -0.92451823
+ 38  0      2.09745145
+ 38  1     -3.67120242     -0.77595717
+ 38  2     -0.69008642      0.24188259
+ 38  3      1.76617038      0.53984553
+ 38  4      1.20999002      0.52251244
+ 38  5      1.88886833     -0.75883687
+ 38  6      0.16723606     -1.83124137
+ 38  7     -0.40170914      0.35741016
+ 38  8     -1.48784530      2.04089880
+ 38  9     -1.16910326     -1.13247728
+ 38 10      4.04251909     -1.79471409
+ 38 11      2.98962116      1.15239322
+ 38 12     -5.32886887      2.48077202
+ 38 13     -4.34029913     -1.28051913
+ 38 14      0.56066680     -1.07502317
+ 38 15      0.07902093     -0.44425249
+ 38 16     -0.60676920      0.74508584
+ 38 17     -1.05612087     -0.31694552
+ 38 18     -4.20227575      0.33768484
+ 38 19     -3.00469708      1.48674297
+ 38 20      0.86751890     -1.63440883
+ 38 21      3.07569122     -0.82079464
+ 38 22      2.21367216      1.02863133
+ 38 23      1.18530631      0.74923474
+ 38 24     -0.31591010     -0.68003535
+ 38 25     -0.64192337     -0.14139612
+ 38 26      0.10240122      0.40133822
+ 38 27     -1.28348434     -0.82240629
+ 38 28     -0.64924085      0.84087157
+ 38 29     -0.15014867     -3.61320949
+ 38 30      0.30208781     -1.44943368
+ 38 31      2.13423800     -0.53611392
+ 38 32     -0.11933196      0.87634671
+ 38 33      0.68356878      0.18261531
+ 38 34      1.24450791      0.64821190
+ 38 35     -1.50808918      0.58122814
+ 38 36     -0.77386940     -2.72700548
+ 38 37     -0.52617443     -0.04132195
+ 38 38      1.33575451     -0.21562539
+ 39  0     -2.83938670
+ 39  1      2.96043396      0.50046718
+ 39  2      3.16499066     -1.89433730
+ 39  3      0.20886989      1.61657107
+ 39  4     -0.66855747      0.14264487
+ 39  5     -0.79309064     -0.20694253
+ 39  6      0.41527143      2.62453008
+ 39  7     -1.38748586      1.59613645
+ 39  8      1.31309831     -0.59691072
+ 39  9      1.49548376     -0.12138087
+ 39 10     -2.09956002      2.38398552
+ 39 11     -3.55809450     -0.28296989
+ 39 12      1.88767827     -1.59159172
+ 39 13      4.85238314     -0.59555936
+ 39 14      3.53320646      1.02175689
+ 39 15      0.08809813      1.18471861
+ 39 16      0.92051476     -1.81888735
+ 39 17     -0.35071924     -1.05167067
+ 39 18      2.71819019      0.10976987
+ 39 19      3.10523820     -2.86458850
+ 39 20      0.80063593      0.56211215
+ 39 21     -0.71864730      1.80790412
+ 39 22     -2.34433246      0.55917573
+ 39 23     -1.60063183     -0.11388054
+ 39 24     -0.76581556      1.86302340
+ 39 25     -1.73652303      1.80049968
+ 39 26      1.04384005      0.50738913
+ 39 27      0.42411357     -0.74589181
+ 39 28      1.92056656      0.70645553
+ 39 29     -1.12958884      2.58008838
+ 39 30     -3.11737823      1.18881428
+ 39 31     -3.15593696      1.14075816
+ 39 32     -0.06210863     -0.47229397
+ 39 33     -0.50154954     -0.37826774
+ 39 34     -0.46638423     -2.37984538
+ 39 35     -1.11853838     -0.94093788
+ 39 36     -0.31462380      1.26600909
+ 39 37     -0.05379893     -0.68025500
+ 39 38     -0.42337847      1.94724691
+ 39 39      0.57583070     -0.65785146
+ 40  0      1.08266461
+ 40  1     -1.10959339      0.76262695
+ 40  2     -3.19156742      0.20229131
+ 40  3      0.20348619     -1.02760696
+ 40  4      0.25273216      0.16057870
+ 40  5     -1.60957086      0.34784982
+ 40  6      0.54339272     -2.07182813
+ 40  7      1.59454381     -0.97467613
+ 40  8     -1.51178586      0.08939295
+ 40  9     -1.51092041      1.29567385
+ 40 10     -1.27129626     -1.22221339
+ 40 11      3.34335375     -1.96393311
+ 40 12      3.21108198     -1.44922900
+ 40 13     -4.05153990      0.88842297
+ 40 14     -3.95451522     -1.25969326
+ 40 15     -0.59032291      0.42864609
+ 40 16     -0.78593105      0.02399328
+ 40 17      0.18315949      0.37311023
+ 40 18     -0.01958007     -0.19232088
+ 40 19     -2.43252897      1.64481854
+ 40 20     -2.17101479      2.26381993
+ 40 21     -0.38440594     -0.56253552
+ 40 22      1.01424003     -2.07573986
+ 40 23      0.75228977     -1.41578877
+ 40 24      0.58917958     -1.10785985
+ 40 25      0.94278705     -1.51783884
+ 40 26     -0.05527524     -2.27728748
+ 40 27     -0.41390321     -0.00327910
+ 40 28     -2.25085831     -1.48757279
+ 40 29     -1.08036172     -0.35632682
+ 40 30      2.04421210     -3.39934659
+ 40 31      1.51983666     -2.58710337
+ 40 32      0.94187409     -1.16993964
+ 40 33     -1.75308561     -0.52241844
+ 40 34      1.68759203      1.23376131
+ 40 35      1.92958367     -0.50326186
+ 40 36      2.41515136     -0.07560503
+ 40 37      2.06502843     -0.60732490
+ 40 38      0.24490127     -2.16741943
+ 40 39      2.82445264     -0.22151574
+ 40 40      3.56046963     -0.16811329
+ 41  0     -1.43088007
+ 41  1     -0.08722205      0.25620678
+ 41  2      2.08824754      0.33395508
+ 41  3     -0.94879633     -2.61527514
+ 41  4     -1.14349079      0.24035873
+ 41  5      1.72531402      0.31268668
+ 41  6     -1.15887177     -0.96511143
+ 41  7      0.12174523      0.52222443
+ 41  8      1.22218156      1.14787757
+ 41  9      2.45324945     -2.03867030
+ 41 10      2.23241925     -0.33684224
+ 41 11     -2.75363350      2.79966831
+ 41 12     -3.87888432      1.88304043
+ 41 13      2.04490447      0.10654254
+ 41 14      3.26221204      0.89234275
+ 41 15      2.10732150     -0.24348977
+ 41 16      0.36202884      0.73569328
+ 41 17      0.33782437      0.75855464
+ 41 18     -0.64452457      1.01719594
+ 41 19      2.41788125      0.05411154
+ 41 20      2.15343904     -3.39689207
+ 41 21      0.25338691      0.10231648
+ 41 22      0.29671729      2.41637516
+ 41 23     -2.01663661      1.53939986
+ 41 24     -0.94982910      0.88860339
+ 41 25     -0.47953406      0.56206173
+ 41 26     -1.29738593      1.00555289
+ 41 27      0.16310169      1.27019227
+ 41 28      1.22776306      1.30898702
+ 41 29      1.45602858      0.70567703
+ 41 30      0.98940307      1.14893222
+ 41 31     -0.56026506      0.52156925
+ 41 32     -2.25898910      0.18183525
+ 41 33      0.15568365      1.24716496
+ 41 34     -1.82900858     -0.87584740
+ 41 35     -0.46334413     -0.74298829
+ 41 36     -0.60355204     -0.06809859
+ 41 37     -1.91130745     -0.25806129
+ 41 38     -0.83001280      1.20765376
+ 41 39     -1.55147374      0.97666132
+ 41 40     -0.42257595      0.35510024
+ 41 41      1.16006553     -0.14071643
+ 42  0      2.80453587
+ 42  1      0.79016346     -1.03657532
+ 42  2     -2.21414948      0.22039461
+ 42  3      1.48513997      2.94570994
+ 42  4      3.43317866     -0.13518934
+ 42  5     -0.57513940     -1.04771578
+ 42  6     -1.25344777      1.71834731
+ 42  7     -0.18021367     -0.14150634
+ 42  8      0.58942658     -0.13264307
+ 42  9     -2.04930830      1.76419497
+ 42 10     -0.99334699      1.76891649
+ 42 11      0.14510961     -0.85198331
+ 42 12      2.21426010     -0.02429626
+ 42 13      1.16279697     -1.42062831
+ 42 14     -1.79447031     -1.48313081
+ 42 15     -1.82742333     -1.91651928
+ 42 16     -1.44072282     -0.08658979
+ 42 17     -1.57021368     -1.15227926
+ 42 18      0.11344476     -0.93734550
+ 42 19     -1.53280282     -1.92802894
+ 42 20     -2.56542611      1.20374990
+ 42 21     -0.93263257      1.67826831
+ 42 22      1.15493333     -0.61430544
+ 42 23      2.74130774     -1.43193662
+ 42 24      0.42124534     -0.76642555
+ 42 25     -0.53060281     -0.45540997
+ 42 26      0.13515730      0.06300711
+ 42 27     -0.04057326     -2.28057623
+ 42 28      1.12183416     -1.09728265
+ 42 29     -1.58585155     -1.81124103
+ 42 30     -2.22340918      0.61036265
+ 42 31      1.35973036     -0.34067956
+ 42 32      1.76334786     -0.84150517
+ 42 33      0.73334885     -1.53353631
+ 42 34     -0.20173615     -1.25602126
+ 42 35     -1.61931694     -0.36627582
+ 42 36     -0.01590345     -1.33922625
+ 42 37      1.58361888      0.19403428
+ 42 38      4.15975523     -0.53787529
+ 42 39      2.78980327     -3.48731303
+ 42 40      1.61314833      1.90074027
+ 42 41      1.02165675      1.67394602
+ 42 42     -0.65359628      0.39366123
+ 43  0     -2.64783430
+ 43  1     -2.14050055      1.29843068
+ 43  2      2.54348707      1.30393255
+ 43  3      1.12964809     -0.02785933
+ 43  4     -3.81687140     -1.88433015
+ 43  5     -0.60764951      0.44755861
+ 43  6      2.29580188      1.03135061
+ 43  7     -2.22995138     -1.01262105
+ 43  8     -2.32081366     -1.40111184
+ 43  9      0.56904703      1.23718333
+ 43 10      1.64090371     -1.70906425
+ 43 11      2.36389875     -0.75794029
+ 43 12     -0.75910246     -0.69867784
+ 43 13     -3.07469225      1.01664031
+ 43 14      1.44618165      1.04229975
+ 43 15      1.27251816      3.19479156
+ 43 16      1.99092543      0.35561579
+ 43 17      1.63165951      0.15612563
+ 43 18      0.56684226      0.48157072
+ 43 19     -1.17809713      1.54870105
+ 43 20      2.13342142      1.19383776
+ 43 21      1.93087256     -1.79083514
+ 43 22     -1.90656960     -0.71599191
+ 43 23     -1.12351573      1.63244247
+ 43 24     -1.12202215      1.10388231
+ 43 25      0.30930644      1.89315093
+ 43 26      1.31858575      0.74740970
+ 43 27     -0.47362414      0.56258309
+ 43 28     -0.98124987      0.68027669
+ 43 29     -0.56139517      1.48073137
+ 43 30      0.13439839     -0.35848904
+ 43 31      1.78780735      0.39389184
+ 43 32      1.82788455      0.24891677
+ 43 33     -0.84196705      0.52558321
+ 43 34     -0.10391659      1.34007740
+ 43 35      0.83303136      0.73020357
+ 43 36      1.87329674      0.21991375
+ 43 37      0.96378124     -0.70723307
+ 43 38     -2.24896765      1.94413781
+ 43 39     -1.88729703      1.95157456
+ 43 40     -2.51070333     -1.12967777
+ 43 41      0.72022367      0.36240652
+ 43 42     -0.07779270      0.67154306
+ 43 43     -0.17060184      0.70774132
+ 44  0     -0.31446588
+ 44  1      4.19787073     -0.51462507
+ 44  2     -1.73844934     -1.53428042
+ 44  3     -5.33457041     -1.52362251
+ 44  4      3.02229786      2.06812692
+ 44  5      2.92061687      0.02515825
+ 44  6     -1.88082302     -2.27634430
+ 44  7      1.18348742      0.42330375
+ 44  8      1.58950186      0.38819805
+ 44  9      0.85748780     -2.24327612
+ 44 10     -1.98520672      1.07640004
+ 44 11     -1.33949029      1.77193081
+ 44 12      0.80830246     -0.90866250
+ 44 13      2.82345915      0.45746687
+ 44 14     -1.70552230     -1.27550733
+ 44 15     -0.69096118     -2.24863815
+ 44 16      0.10795093     -0.46574816
+ 44 17     -1.18106902      0.47232100
+ 44 18     -1.85839868     -0.47626963
+ 44 19      0.56335580     -1.18443894
+ 44 20     -1.04901886     -2.73530197
+ 44 21     -2.93790221     -1.32616925
+ 44 22     -1.18836582      1.40981066
+ 44 23      0.32331100      0.04199597
+ 44 24      3.46616793     -1.53249121
+ 44 25      0.95194966     -2.83974099
+ 44 26     -2.07518315     -1.61651433
+ 44 27     -1.11842573      0.53112936
+ 44 28      0.43728805      0.67856401
+ 44 29      0.98452353     -0.57301420
+ 44 30     -0.33377248     -0.20983900
+ 44 31     -2.58543849     -0.29765186
+ 44 32      0.13407034      0.51977348
+ 44 33      1.10405767      1.17830122
+ 44 34      0.19604880      0.15104870
+ 44 35      0.26400855     -1.48584235
+ 44 36     -2.89208984     -0.48139027
+ 44 37     -2.08663273     -1.17792010
+ 44 38     -1.20900154     -0.36444032
+ 44 39      1.58098543     -0.49079764
+ 44 40      2.05661201      0.76132715
+ 44 41      1.17794168     -1.89404368
+ 44 42      0.37470043     -0.19903171
+ 44 43     -0.44646966      0.49200106
+ 44 44     -2.12684846      1.22034872
+ 45  0      1.82063472
+ 45  1     -3.05373907     -0.60222745
+ 45  2     -0.80169159      0.51264000
+ 45  3      4.62481260      0.72015214
+ 45  4      0.07664333     -0.63215035
+ 45  5     -4.06893682     -0.41038889
+ 45  6      1.31599832      1.30886483
+ 45  7      3.23580146      0.32067147
+ 45  8     -0.49928454     -0.74944365
+ 45  9     -1.98232090     -0.78983396
+ 45 10     -0.10885230      1.83461618
+ 45 11     -0.11597841     -0.08930856
+ 45 12      1.37012398      1.93002641
+ 45 13      0.28745231      0.18876715
+ 45 14     -0.54873377      1.04919076
+ 45 15      1.31133831     -0.98789138
+ 45 16     -1.11687040      0.93041122
+ 45 17      0.01563755     -0.23008831
+ 45 18      3.28678393     -0.48275685
+ 45 19      1.54907095      0.63450921
+ 45 20     -0.89512086      1.61559200
+ 45 21      1.16271985      1.12115252
+ 45 22      1.79044819     -0.06854844
+ 45 23     -1.52556670     -0.21807419
+ 45 24     -2.33859897      0.69732136
+ 45 25     -1.52963531      1.17594528
+ 45 26      1.12885201      1.38185179
+ 45 27      2.07580733      0.74642384
+ 45 28      1.85993242     -1.11405563
+ 45 29      0.37869254     -0.92536455
+ 45 30      0.21564266      1.98796773
+ 45 31     -0.70437241     -0.36077625
+ 45 32     -1.08400548     -0.46999481
+ 45 33      0.22811839     -1.76706803
+ 45 34     -0.25696605     -0.85686475
+ 45 35     -1.24898040      1.33216059
+ 45 36      1.57446456      2.21544123
+ 45 37      2.32927036      1.58161616
+ 45 38      2.79515648     -1.11402047
+ 45 39     -1.52000070     -0.51400882
+ 45 40     -1.41323233     -0.37875023
+ 45 41     -0.13259390     -0.19764030
+ 45 42     -0.84617305      0.13279963
+ 45 43      0.59859091     -0.70411080
+ 45 44      0.17490683      0.62574613
+ 45 45     -2.28954196      1.63965452
+ 46  0     -1.63379347
+ 46  1     -1.12870264      0.65225619
+ 46  2      4.31612062     -0.85905248
+ 46  3     -0.92343771      1.40943980
+ 46  4     -4.50406170     -0.13132109
+ 46  5      4.09048223      0.52990937
+ 46  6      1.84685242     -0.65221900
+ 46  7     -5.06771040     -0.42437628
+ 46  8     -0.70700204      1.71609020
+ 46  9      1.16227198      2.81660938
+ 46 10      1.41768825     -2.87911201
+ 46 11     -0.68529743     -0.84796834
+ 46 12     -1.63995230      0.58858967
+ 46 13     -0.75559545     -1.41899610
+ 46 14      2.77554417     -0.22735789
+ 46 15     -2.44132423      0.34890914
+ 46 16     -0.31329152     -1.32684839
+ 46 17      1.65493262     -0.32627213
+ 46 18     -1.43622625      0.83799785
+ 46 19     -1.82643712     -0.14723678
+ 46 20      1.21171296      0.05862362
+ 46 21      0.99995846     -1.15655947
+ 46 22     -0.48145720     -2.26670098
+ 46 23     -0.55520016     -0.19683000
+ 46 24     -0.33554655      0.33570468
+ 46 25      2.25551534      1.05533469
+ 46 26      2.14717960     -1.05858564
+ 46 27     -1.50209093     -1.78649139
+ 46 28     -2.46769738     -0.72156096
+ 46 29     -1.40656829      0.42242557
+ 46 30     -0.56417608     -1.05841374
+ 46 31      0.80842352     -1.22815669
+ 46 32      0.31961262     -0.00970864
+ 46 33      0.59871078      2.76222706
+ 46 34      0.74746907      0.89176208
+ 46 35      0.94196624     -0.12405914
+ 46 36     -0.00700076     -2.11544871
+ 46 37     -1.45787215     -1.66985595
+ 46 38     -3.15649581      0.92855072
+ 46 39     -1.84089100     -0.49630085
+ 46 40     -1.76219296      0.00187788
+ 46 41      1.50882280     -0.00946718
+ 46 42      0.26770201     -0.31826824
+ 46 43      1.16892934      2.37094402
+ 46 44     -0.59587997     -0.44701308
+ 46 45      0.18983261     -2.91559052
+ 46 46      0.43465611     -1.36506665
+ 47  0      1.05015123
+ 47  1      2.21404171      0.16000843
+ 47  2     -5.17129993      1.09683430
+ 47  3     -1.02625561     -0.71851671
+ 47  4      4.98863125     -0.29017147
+ 47  5     -0.76122749     -0.33507326
+ 47  6     -4.26401567      1.09642220
+ 47  7      1.10174584      0.68727714
+ 47  8      2.34127164     -1.72072637
+ 47  9      0.58376187     -1.70992386
+ 47 10     -1.76859438     -0.55394137
+ 47 11      0.12833910      0.20365293
+ 47 12     -0.08582424     -1.82774460
+ 47 13      0.39391315      0.88772148
+ 47 14      0.37315202      1.13631606
+ 47 15      1.43276358      2.74452066
+ 47 16      2.44592333      1.06069136
+ 47 17     -0.90124792      1.20720267
+ 47 18     -1.90798140     -0.03547841
+ 47 19      1.33615923     -0.14227919
+ 47 20      1.07572365      1.02320075
+ 47 21     -0.50279653      1.16594803
+ 47 22     -0.03070817      1.41921377
+ 47 23      0.82888454     -0.74321681
+ 47 24     -1.07160819      0.02707677
+ 47 25     -3.00927186     -0.56232232
+ 47 26     -1.98842430     -0.74087113
+ 47 27     -0.25142649      1.23531926
+ 47 28      1.39291394      1.35371125
+ 47 29      2.21848822      0.38203964
+ 47 30      0.85767817      0.35821807
+ 47 31      0.61246926      0.60594392
+ 47 32      0.76447606      0.10589470
+ 47 33      0.08940916     -0.76248217
+ 47 34      0.91653037     -1.42262566
+ 47 35     -0.38475060     -1.77535081
+ 47 36     -1.80293047      1.16464746
+ 47 37     -1.26930606      1.12074804
+ 47 38      0.89000750      0.92116302
+ 47 39      2.94988465      0.49846753
+ 47 40      0.58544940     -0.35697585
+ 47 41     -0.13671909     -0.85901815
+ 47 42     -0.59692556     -0.23288168
+ 47 43      0.04614325     -1.55682838
+ 47 44      0.59248298      0.48318750
+ 47 45     -1.71145260      1.45828915
+ 47 46     -0.40928981      1.12113845
+ 47 47     -1.14520776     -1.48218095
+ 48  0     -0.04717721
+ 48  1     -1.33493006     -0.11287285
+ 48  2      0.43857095     -0.55183554
+ 48  3      2.38862324     -1.89971244
+ 48  4     -2.05109167      1.35396802
+ 48  5     -3.57306194      0.81587315
+ 48  6      4.43123770     -1.56711507
+ 48  7      4.35851717     -2.39370775
+ 48  8     -3.07585454     -0.06489561
+ 48  9     -0.83410639      0.29675281
+ 48 10      0.80999738      3.94405508
+ 48 11      1.71312153      1.00709486
+ 48 12      1.05838144      0.94498307
+ 48 13     -0.51432127      0.47838071
+ 48 14     -1.81520748     -1.31422603
+ 48 15      0.23449811     -2.83270288
+ 48 16     -2.87196875     -1.33378494
+ 48 17     -0.63076937     -0.62281853
+ 48 18      2.49692893     -0.99118412
+ 48 19      0.07249825     -1.19435561
+ 48 20     -2.91518307     -1.35821867
+ 48 21     -1.18598604     -0.82086235
+ 48 22      0.27261147      0.33513370
+ 48 23      0.46905735     -0.74116743
+ 48 24      2.04956484     -1.01820099
+ 48 25      1.71908927     -0.38779178
+ 48 26      1.89211345      0.08465786
+ 48 27      1.72969687     -0.02030018
+ 48 28      0.33733362     -1.28185606
+ 48 29     -0.58708006     -1.55304801
+ 48 30      0.02737809      0.58687055
+ 48 31     -2.09299350     -0.74120635
+ 48 32     -2.46644998     -1.05702746
+ 48 33     -1.14566970     -0.28525424
+ 48 34     -1.75908780      2.22561383
+ 48 35     -0.13482751      1.94780076
+ 48 36      1.60903227     -0.31785455
+ 48 37      2.06154943     -1.46288502
+ 48 38     -0.59958500     -1.46416306
+ 48 39     -1.87797034      0.30830428
+ 48 40      0.57134736      0.13238440
+ 48 41      0.22111496      0.23874776
+ 48 42      0.56121916      0.86999440
+ 48 43     -0.55310196      0.42906761
+ 48 44     -0.63430750     -1.38866329
+ 48 45      1.55499506      1.40677130
+ 48 46      0.99000698      0.09438752
+ 48 47      1.03567088     -0.27072111
+ 48 48      0.15196741     -0.97041267
+ 49  0     -1.00982416
+ 49  1      2.39076090     -0.13356239
+ 49  2      2.63164067     -0.12160049
+ 49  3     -4.64240074      1.45886588
+ 49  4      0.01915174     -0.89012110
+ 49  5      4.31009865     -1.57888806
+ 49  6     -1.26435888      0.43157962
+ 49  7     -4.54500151      3.47314668
+ 49  8      1.14601386      1.48776805
+ 49  9      1.33462548     -1.24723899
+ 49 10      0.08228151     -2.09959269
+ 49 11     -1.96800256     -0.16117434
+ 49 12     -0.02952206      0.93279165
+ 49 13     -0.02817387     -0.87500983
+ 49 14      0.21799538      0.74141699
+ 49 15     -0.44790736      0.57170069
+ 49 16      2.58510590      1.71979308
+ 49 17      1.50517583     -0.28307730
+ 49 18     -1.28881145      0.24739227
+ 49 19     -0.99851602      0.16348599
+ 49 20      1.53993189      0.50718749
+ 49 21      1.89536107      1.18593943
+ 49 22      1.12927532      1.41065276
+ 49 23     -0.89025730      2.67986608
+ 49 24     -0.77032369     -0.03530476
+ 49 25     -1.10991311      0.63902116
+ 49 26     -1.96535361      1.08800018
+ 49 27     -1.69429684     -0.01620998
+ 49 28      0.44951284     -0.16701105
+ 49 29     -1.08589828      1.24293911
+ 49 30      1.53396118      0.45087337
+ 49 31      1.42671776      0.45696703
+ 49 32      0.21181710     -0.10287996
+ 49 33      2.01587081     -0.34901935
+ 49 34     -0.02833269     -0.18658125
+ 49 35      0.77459270     -0.30610541
+ 49 36      1.66091275     -1.29334021
+ 49 37      0.27537677      0.83288217
+ 49 38     -0.51932514     -1.24642241
+ 49 39     -0.57509589     -1.02915704
+ 49 40     -1.82988608     -0.28904209
+ 49 41     -1.00783479     -0.85632527
+ 49 42      0.39718795     -0.42006218
+ 49 43      1.50802326      1.16906214
+ 49 44     -1.55444551      0.30129653
+ 49 45      0.74057698     -0.12574749
+ 49 46      0.97955358     -1.28261626
+ 49 47     -0.59904951      2.12569857
+ 49 48     -0.29818925      0.15573335
+ 49 49      0.08216404     -1.44111788
+ 50  0      1.54540610
+ 50  1     -1.67031693      0.75704485
+ 50  2     -2.53107548     -0.13457152
+ 50  3      3.85069776      0.00396393
+ 50  4      2.04326081     -0.60750818
+ 50  5     -2.59609914      2.01388550
+ 50  6     -2.78539658      0.55870873
+ 50  7      1.53403640     -1.78877318
+ 50  8      2.41333222     -1.55407548
+ 50  9     -2.30580163      1.24413610
+ 50 10     -1.60682917     -0.76930565
+ 50 11      0.82803607     -0.51426297
+ 50 12     -0.15705773     -0.78222841
+ 50 13     -0.78332889      1.07001531
+ 50 14      0.98725098      0.45949882
+ 50 15      1.18770146      1.55539441
+ 50 16     -0.62392688     -1.68589187
+ 50 17     -1.76291108     -1.02381861
+ 50 18      0.45623896      1.98755240
+ 50 19      2.32347822      1.81180584
+ 50 20      1.25691223     -1.16508687
+ 50 21     -0.86085629     -2.20868921
+ 50 22     -1.65699744     -3.32298088
+ 50 23     -1.14483285     -2.13163996
+ 50 24     -1.58601499      0.03376668
+ 50 25     -0.08080722     -1.12455273
+ 50 26      0.65138769     -0.03507683
+ 50 27      0.25545216     -0.63606608
+ 50 28      0.53031778     -0.69270241
+ 50 29      0.13519521     -0.99147570
+ 50 30     -0.03822733     -0.97938269
+ 50 31      1.00801301      0.18825121
+ 50 32      0.31719708     -0.54568672
+ 50 33      0.00801561     -1.41590226
+ 50 34      0.51560718     -0.01192059
+ 50 35     -1.47751439     -0.00466244
+ 50 36     -1.99920917      2.12917566
+ 50 37     -2.96816635     -0.12621045
+ 50 38     -0.48273182      0.90094101
+ 50 39      0.78919214     -0.94905335
+ 50 40      0.70727289      1.24187398
+ 50 41      0.03206540      2.03199649
+ 50 42      0.13256368      0.77102238
+ 50 43      1.64991701     -0.92916048
+ 50 44      0.63912624      1.38449252
+ 50 45     -1.92165375      0.46241200
+ 50 46     -2.20754552     -0.02654691
+ 50 47     -1.80734468     -0.51173443
+ 50 48      2.68590307      0.21402477
+ 50 49      0.91718102     -0.13954738
+ 50 50     -1.33455360      0.66743219
+ 51  0     -2.50951576
+ 51  1     -0.60857683     -0.66358674
+ 51  2      2.51220608      0.72456717
+ 51  3     -0.21149613      0.01557165
+ 51  4     -4.88607264      0.70685500
+ 51  5      1.32814491     -1.39918816
+ 51  6      4.53533459     -1.96100008
+ 51  7      0.21502668     -0.40902519
+ 51  8     -3.04921055      1.64950204
+ 51  9      1.63270259     -0.17734525
+ 51 10      1.86903870     -0.38517720
+ 51 11     -0.63219130     -0.16656582
+ 51 12     -1.55854976      0.59522390
+ 51 13      0.70392060      0.62465805
+ 51 14      0.58160084     -0.75490069
+ 51 15     -1.69116700     -1.02949142
+ 51 16     -1.32588804      0.82253087
+ 51 17      3.86458278      1.65936875
+ 51 18      2.03075814     -0.14795558
+ 51 19     -1.86676776     -2.10047650
+ 51 20     -1.65102494     -0.39966816
+ 51 21     -1.03983140      2.05360341
+ 51 22      0.01443727      2.04953122
+ 51 23      2.83485532      1.28121424
+ 51 24      2.51758337      2.86395979
+ 51 25      0.84143263     -0.75379032
+ 51 26     -0.12451150     -1.76765954
+ 51 27     -0.07345180      0.79607630
+ 51 28     -0.47163898      0.73084342
+ 51 29      0.64560467      1.30660212
+ 51 30      0.54790473      0.60575509
+ 51 31      0.33382997      0.26363555
+ 51 32      1.66839445      1.75085020
+ 51 33     -0.58079338      1.74216163
+ 51 34      0.26040891     -0.57724261
+ 51 35      0.62056077      0.74531686
+ 51 36      0.20491299      0.98904163
+ 51 37      2.23317862      0.31531587
+ 51 38      0.85811520      1.10256469
+ 51 39     -0.41951802     -0.69777608
+ 51 40     -0.77695936     -3.15787125
+ 51 41     -0.18872322     -1.56591415
+ 51 42     -0.34380484     -3.21099401
+ 51 43     -2.30899262     -0.96491194
+ 51 44     -0.07479126     -0.65293217
+ 51 45      0.76817775      1.43181717
+ 51 46      1.20611501     -0.78602153
+ 51 47      0.96147126     -0.16239375
+ 51 48     -2.28566670     -2.05680609
+ 51 49      1.11215687     -1.43764544
+ 51 50      2.04215407      1.12819386
+ 51 51      1.66179705      1.33793795
+ 52  0      2.57840419
+ 52  1      3.08764434      0.88408047
+ 52  2     -3.10761809     -0.36367184
+ 52  3     -3.04787517     -2.31088424
+ 52  4      5.91192865     -0.16013329
+ 52  5      1.05809760      0.78836918
+ 52  6     -2.58254051      2.53868890
+ 52  7      0.50667810      0.43400332
+ 52  8      2.14456129     -2.45531487
+ 52  9      1.26142871     -1.77367830
+ 52 10     -1.44879425      1.65001738
+ 52 11     -0.90153360      1.67035663
+ 52 12      2.60674858     -0.35255727
+ 52 13      0.61227882     -1.99616277
+ 52 14     -1.83011854     -0.70939952
+ 52 15     -0.71276373     -1.05666435
+ 52 16      1.39120853      3.16872025
+ 52 17     -2.99395227     -0.39318967
+ 52 18     -2.98913050     -2.94679713
+ 52 19      0.62582630     -0.27453727
+ 52 20      2.32601190      2.88348556
+ 52 21      2.81770372      0.20808005
+ 52 22      2.18613720     -0.67482680
+ 52 23     -0.37707955     -1.36336708
+ 52 24     -0.30988371     -3.87919426
+ 52 25     -0.87543976     -1.04310799
+ 52 26      0.63615406     -0.43290943
+ 52 27      0.30372271      0.37855458
+ 52 28     -0.12729308      0.31332740
+ 52 29     -1.35458529     -1.66124845
+ 52 30     -1.34114039     -0.77113277
+ 52 31     -2.29290247     -0.52740753
+ 52 32     -1.32444072     -0.71494639
+ 52 33      0.52174228     -0.28982130
+ 52 34     -0.96348417     -1.10370374
+ 52 35      0.07177851      0.28129792
+ 52 36     -0.29080802     -1.23056352
+ 52 37     -0.17129166     -0.74597424
+ 52 38     -0.96891659     -2.85030913
+ 52 39     -2.45722795     -0.65561515
+ 52 40      0.31403914     -0.36657301
+ 52 41      0.60014248      1.68700922
+ 52 42     -0.19355828      4.04868841
+ 52 43      1.23118699      1.79055536
+ 52 44      0.77953821      1.25828290
+ 52 45      0.15542403      1.13718450
+ 52 46     -1.22022712      1.65387499
+ 52 47     -0.74193323      0.16212295
+ 52 48      0.36090612      1.25390482
+ 52 49     -2.17883158      0.99404609
+ 52 50     -0.82884550     -1.85409737
+ 52 51     -1.98199630     -0.62290460
+ 52 52     -0.48141116      1.50544918
+ 53  0      0.40891781
+ 53  1     -3.79883504     -0.73537928
+ 53  2      1.43254328     -1.16336489
+ 53  3      4.10603237      2.39732385
+ 53  4     -3.47400069      0.39990935
+ 53  5     -4.73090363     -0.09460589
+ 53  6      1.08873081     -0.07703422
+ 53  7      1.98076057      0.11104421
+ 53  8     -0.67385274      1.69074881
+ 53  9     -2.80896640      2.23114395
+ 53 10      1.10594690     -0.90304583
+ 53 11      1.51578784     -2.48511839
+ 53 12     -2.56006455     -1.34772253
+ 53 13     -2.62516022      1.95151412
+ 53 14      0.62920529      2.52261519
+ 53 15      2.28136969      2.12232113
+ 53 16      0.01026466     -2.84606624
+ 53 17     -0.55623448     -1.23531556
+ 53 18      4.98273087      2.39914513
+ 53 19      1.60873294      2.21400499
+ 53 20     -1.72589219     -1.16092086
+ 53 21     -1.01427269     -1.61605704
+ 53 22     -2.20354009      0.22737250
+ 53 23     -3.12995601      1.71411657
+ 53 24     -0.92531335      3.21848011
+ 53 25      1.50596344      5.05106974
+ 53 26      0.17309551      2.79417682
+ 53 27     -0.66064197     -2.00660563
+ 53 28      1.78364444     -1.06810546
+ 53 29      1.71782887      0.15051797
+ 53 30      0.64815581      1.51138973
+ 53 31      1.10155618      1.26445413
+ 53 32      0.76932329      0.53795260
+ 53 33      2.09378862      0.00890191
+ 53 34     -0.55454963      1.22954583
+ 53 35     -0.08083483     -0.47739506
+ 53 36      0.34758252      0.17162123
+ 53 37      0.46191770      0.89051592
+ 53 38      0.21271914      1.71753109
+ 53 39      1.85055125      0.46226788
+ 53 40      1.04129982      2.57797456
+ 53 41     -0.48057023      0.07856731
+ 53 42     -1.28971493     -0.32449138
+ 53 43     -1.14116096     -0.57937831
+ 53 44     -1.37633836     -1.76970863
+ 53 45      0.65764743     -2.68783784
+ 53 46     -1.47412992     -0.48939115
+ 53 47     -0.48240313      1.24330032
+ 53 48      2.17332482     -0.67516500
+ 53 49     -0.74923271     -0.49429432
+ 53 50     -2.69746995     -0.34531766
+ 53 51      0.77208173     -1.55853403
+ 53 52      0.16540219     -1.60122812
+ 53 53      1.41365480      0.42506698
+ 54  0     -3.50821829
+ 54  1      4.01510143     -0.03288163
+ 54  2      0.87677580      2.48162866
+ 54  3     -4.68269682      0.78328770
+ 54  4     -1.70799839     -2.53097153
+ 54  5      6.51247549     -0.68673313
+ 54  6     -0.22996002     -0.43641222
+ 54  7     -3.77176237      0.54672801
+ 54  8      0.49298331      0.93404162
+ 54  9      2.10473037     -1.25822937
+ 54 10      0.86282551     -0.80534732
+ 54 11      0.05217726      0.58855486
+ 54 12      0.25811970      2.36033964
+ 54 13      1.70484567      0.01397510
+ 54 14      0.75083488     -2.94605470
+ 54 15     -1.03874767     -1.70100725
+ 54 16     -0.19349615     -1.43167317
+ 54 17      2.10367775      3.15012264
+ 54 18     -3.84645677      1.86904621
+ 54 19     -4.16576290     -1.94629562
+ 54 20     -0.49245057     -1.73531234
+ 54 21      0.10974128      1.84221709
+ 54 22      0.81792098     -0.22025053
+ 54 23      3.07208920     -0.95296216
+ 54 24      1.33976448     -0.88337952
+ 54 25     -0.39317498     -4.57506561
+ 54 26     -0.16939901     -3.21592021
+ 54 27      1.51388001     -0.51396245
+ 54 28      0.47965184      1.20230436
+ 54 29     -0.89924377      2.03448343
+ 54 30     -0.61812496     -1.08165288
+ 54 31     -1.13917482     -0.60206521
+ 54 32     -0.98590571      1.04954350
+ 54 33     -3.21047449     -0.78219432
+ 54 34      0.43169588     -0.34758657
+ 54 35     -0.48232597     -0.43821657
+ 54 36     -1.13179266     -0.01225920
+ 54 37     -0.36676195     -0.32818100
+ 54 38     -0.55930024      1.08818793
+ 54 39      1.01636171     -1.58424926
+ 54 40     -0.88147569     -1.88742685
+ 54 41     -0.09506314     -2.70735645
+ 54 42      0.11582448     -1.17000699
+ 54 43     -1.52291465      0.50812811
+ 54 44     -0.45204058      1.21845198
+ 54 45     -1.93347156     -0.62128448
+ 54 46      0.13202837      0.84380221
+ 54 47     -0.32378507      1.95882809
+ 54 48     -1.08404267      0.89917690
+ 54 49      0.20162977      0.92595214
+ 54 50      0.89570552      2.87394142
+ 54 51      0.22796522      0.02280905
+ 54 52     -2.02556753      1.86453772
+ 54 53     -1.97810924      0.84284276
+ 54 54     -1.61665964     -0.65570974
+ 55  0      1.96389818
+ 55  1     -0.82205969      0.02832516
+ 55  2     -2.10518670     -1.11611176
+ 55  3      2.87559271     -2.32148170
+ 55  4      5.49547768      0.95861286
+ 55  5     -3.90297413     -0.46900865
+ 55  6     -3.11733389     -0.59441781
+ 55  7      2.04280376     -0.52710915
+ 55  8      1.60812688     -0.56520718
+ 55  9     -0.72982961      0.26254752
+ 55 10     -1.43297458      2.39077139
+ 55 11     -0.20849469      1.23677707
+ 55 12      1.94050336     -2.60790849
+ 55 13     -0.88015789     -3.15223813
+ 55 14     -2.21266222      1.73634839
+ 55 15     -0.49080953      2.65864539
+ 55 16      0.27774379      4.15905619
+ 55 17     -0.60280055     -2.40111041
+ 55 18      0.45241177     -4.12512779
+ 55 19      6.28710365     -0.20913433
+ 55 20      2.46955705      2.71147013
+ 55 21     -0.41220853     -0.14070325
+ 55 22      1.38942266      0.07240870
+ 55 23     -0.34515962     -0.37955034
+ 55 24     -1.63017607     -0.60452485
+ 55 25     -1.48955679      1.83795297
+ 55 26      1.72238052      3.93803000
+ 55 27     -0.64683312      3.92381382
+ 55 28     -3.05165100      0.44827935
+ 55 29      0.03090538     -0.73819304
+ 55 30      2.50357246     -0.07075587
+ 55 31     -0.06220741      0.29175270
+ 55 32     -0.24356627     -1.88799787
+ 55 33      0.65208656      1.07856476
+ 55 34      1.63590729      0.40013602
+ 55 35      0.72678977     -0.03481580
+ 55 36     -0.10596661     -0.92906821
+ 55 37     -0.84581566     -1.29097366
+ 55 38      1.33991635     -0.75035310
+ 55 39     -1.12676549     -0.35214055
+ 55 40     -1.30189002     -1.58968973
+ 55 41     -0.73354161      2.85293865
+ 55 42      0.47599572      2.39926600
+ 55 43      1.32753611      0.01665718
+ 55 44      1.66003776     -1.17040992
+ 55 45      0.49708506      0.55456942
+ 55 46      0.78362626      0.45659569
+ 55 47      0.76386958     -2.36913800
+ 55 48     -1.23005331     -0.43569681
+ 55 49      0.06894507      0.94142920
+ 55 50      1.66324127     -0.12644520
+ 55 51     -2.48454523      0.22055684
+ 55 52      1.07892728     -1.56091285
+ 55 53     -0.95160991     -0.73064089
+ 55 54     -0.37214455      1.14484334
+ 55 55     -0.45485181     -1.18842649
+ 56  0     -0.63267499
+ 56  1     -2.28867030     -0.19601093
+ 56  2      3.68736792     -1.64637661
+ 56  3     -0.19866803      0.22099943
+ 56  4     -5.92724228      0.93194842
+ 56  5     -0.20772506      0.93058467
+ 56  6      6.51628828      1.03277564
+ 56  7      0.45322233     -0.24220023
+ 56  8     -2.23915339     -0.52597994
+ 56  9      0.14868601      1.34780812
+ 56 10     -0.12928523     -0.99441928
+ 56 11     -1.07194865     -1.30963790
+ 56 12      0.00539429      1.34035540
+ 56 13      0.15151064      3.89659142
+ 56 14      2.10992289      0.24238446
+ 56 15      0.47179413     -4.27845144
+ 56 16     -0.01731382     -2.83221054
+ 56 17      0.04358133     -0.37978426
+ 56 18      2.33169031      3.88981962
+ 56 19     -2.79550195      2.54221320
+ 56 20     -3.04652452      0.09347979
+ 56 21     -1.07370651     -1.95546687
+ 56 22     -1.38443375      0.00009775
+ 56 23     -1.88793576      0.61773610
+ 56 24      0.62230182     -0.00990395
+ 56 25      1.05583894      1.51962006
+ 56 26     -1.98434472     -2.76248264
+ 56 27     -1.35956597     -4.62949276
+ 56 28      1.79820359     -1.91818237
+ 56 29      1.42787957     -0.90330440
+ 56 30     -1.09008336      1.45813787
+ 56 31      0.48970088     -0.62578434
+ 56 32      0.12402592      0.12720028
+ 56 33      1.09448874      1.91113603
+ 56 34     -3.24998665     -0.60418010
+ 56 35     -0.20931587     -0.38371283
+ 56 36      0.26985216      0.09834727
+ 56 37      0.36192754      0.68692517
+ 56 38     -0.74329710     -0.61713386
+ 56 39     -0.08155219      0.90613502
+ 56 40      1.02994168      0.47360653
+ 56 41      1.58927834     -1.05316305
+ 56 42     -0.03259753     -0.62274444
+ 56 43     -1.81689942     -1.39520967
+ 56 44     -2.34272480     -0.67539138
+ 56 45     -0.14616589     -1.14690280
+ 56 46     -1.46647060     -1.23344362
+ 56 47     -1.83446813      0.00634918
+ 56 48     -2.05566382      0.45143023
+ 56 49     -0.37149116     -0.49880990
+ 56 50      0.13825226     -0.51393485
+ 56 51      0.63774556      1.45554841
+ 56 52     -0.95287442      2.41462874
+ 56 53      2.09705496      1.22458696
+ 56 54     -0.16445935      0.88978016
+ 56 55      0.70502865      1.37077463
+ 56 56     -0.69694293     -0.57458746
+ 57  0      1.25638604
+ 57  1      3.08843946      0.81586516
+ 57  2     -3.57711768      0.57181489
+ 57  3     -1.69239926      1.84566510
+ 57  4      3.09261584     -0.17427324
+ 57  5      3.95146513     -0.03635828
+ 57  6     -4.48699856     -1.04441977
+ 57  7     -2.18209553     -0.15557307
+ 57  8      1.08049726      0.54512268
+ 57  9      0.62748986     -1.31201565
+ 57 10      0.04648707     -1.48553860
+ 57 11      0.23128101      1.52318573
+ 57 12     -1.16682529      1.42622185
+ 57 13     -0.41228947     -2.63980603
+ 57 14     -0.08993801     -2.90549541
+ 57 15     -0.76843363      3.26136613
+ 57 16      0.10439466      2.50430179
+ 57 17     -1.15184057      3.11491776
+ 57 18     -2.01806498     -0.65609652
+ 57 19      0.35261995     -3.17120934
+ 57 20      4.27450991     -0.79827791
+ 57 21      1.46731114      1.94640803
+ 57 22     -0.79377872      1.35964847
+ 57 23      2.78378153      0.99214262
+ 57 24      1.22602344     -1.08113599
+ 57 25     -0.14891939     -2.62378049
+ 57 26     -0.09306691      1.27364802
+ 57 27      2.80586720      2.30105305
+ 57 28      2.43042541      2.64730883
+ 57 29     -3.04841733      0.06830771
+ 57 30     -2.01202369     -0.41815594
+ 57 31      0.22945108      2.39788127
+ 57 32     -0.14750817      2.61893678
+ 57 33     -1.86590385     -2.07463646
+ 57 34      0.28185445     -0.26523754
+ 57 35      0.44359180      0.51429135
+ 57 36     -0.34473133     -0.66942865
+ 57 37      0.25894287     -1.06332803
+ 57 38      0.07388122     -0.66197985
+ 57 39      1.55509913     -0.10941219
+ 57 40      0.21766952      0.25565171
+ 57 41      0.43550894     -2.19484639
+ 57 42     -1.40656972     -0.70315892
+ 57 43     -0.86405230      1.31491375
+ 57 44      0.59235841      1.20403302
+ 57 45      1.91304040     -0.97549677
+ 57 46      3.15255213     -0.67086118
+ 57 47      1.47069907      0.33037269
+ 57 48      1.58988142     -0.06655366
+ 57 49     -0.24983533     -0.08949007
+ 57 50     -0.10257277     -1.77985847
+ 57 51      0.70069963     -0.81588727
+ 57 52      0.65827799      0.91082853
+ 57 53     -0.46915528     -2.40619826
+ 57 54      0.58200270     -2.54122472
+ 57 55      1.68366647      0.19463949
+ 57 56      0.56390238     -1.37293100
+ 57 57      1.55299652      0.10356570
+ 58  0      0.08778732
+ 58  1     -0.40574801      0.26700690
+ 58  2     -0.09562196      2.11568499
+ 58  3      3.05096555     -2.09787464
+ 58  4      0.00724852     -1.98434055
+ 58  5     -4.94152212     -0.90816611
+ 58  6      0.21541348      1.93757355
+ 58  7      2.81645417      0.74609047
+ 58  8     -0.36162746     -0.43350163
+ 58  9      0.14207962      0.09872619
+ 58 10      1.08317089      2.03714395
+ 58 11      0.24040408     -1.64374304
+ 58 12     -0.02366335     -2.52897716
+ 58 13      1.08817363      0.87779409
+ 58 14     -0.28800631      4.49816608
+ 58 15      1.45261836      0.72170913
+ 58 16      0.79500860     -4.32300758
+ 58 17      0.65778667     -2.96200371
+ 58 18     -0.09592424     -0.54600710
+ 58 19     -0.55343610      2.18234730
+ 58 20     -2.13162065      2.09473157
+ 58 21     -1.41759241      0.63490713
+ 58 22      1.36847627     -1.07313359
+ 58 23     -0.57394069     -2.10291648
+ 58 24     -2.68147445     -0.88970315
+ 58 25     -0.96355391     -1.06367946
+ 58 26      0.87444347      0.24278179
+ 58 27     -2.02658296     -0.14109020
+ 58 28     -1.48918855     -1.56240022
+ 58 29      1.53632259     -0.34609208
+ 58 30      2.10638380     -0.40098801
+ 58 31     -0.95213127     -0.74283403
+ 58 32     -0.21337351     -2.79667115
+ 58 33      0.40029272      0.17319053
+ 58 34      2.67135096      1.76233220
+ 58 35     -0.56224269      0.56970620
+ 58 36     -0.84737170      0.51015991
+ 58 37      0.36482844      0.04187578
+ 58 38      0.27219379      1.33768106
+ 58 39      0.18733896     -0.69755137
+ 58 40     -1.14674675      0.15093414
+ 58 41     -0.64100337      2.44678187
+ 58 42      1.04027426      0.26583534
+ 58 43      0.04319040      1.07735920
+ 58 44      0.07102972      0.34740144
+ 58 45     -1.48423338      0.91266400
+ 58 46     -0.25807726      0.59216815
+ 58 47     -0.22024652     -0.27523878
+ 58 48     -0.20461702     -1.88497484
+ 58 49      0.45478144     -0.86711788
+ 58 50     -1.55547178      1.54705060
+ 58 51     -0.35191011      1.43286562
+ 58 52     -1.32532918     -0.79269415
+ 58 53     -1.72133076      1.75572097
+ 58 54      0.31312853      2.06829309
+ 58 55     -1.28167737      1.92774534
+ 58 56      0.49644521      0.26788345
+ 58 57      0.77374536     -2.02982068
+ 58 58     -0.05033460     -0.94587362
+ 59  0     -2.26435781
+ 59  1      0.17125157     -0.73647243
+ 59  2      3.32353878     -1.74049020
+ 59  3     -3.19692206     -0.50575256
+ 59  4     -1.40039635      1.78171980
+ 59  5      3.24957395      1.22951996
+ 59  6      2.77612233     -1.12123799
+ 59  7     -2.66801357     -0.20856769
+ 59  8      0.01808590      0.92497158
+ 59  9      0.15718439     -0.07800265
+ 59 10      0.36701694     -1.69924307
+ 59 11     -0.29001498     -0.32872084
+ 59 12      0.35340711      2.48546362
+ 59 13     -1.32730103      1.27369928
+ 59 14     -0.52485102     -3.84782362
+ 59 15     -1.47651625     -3.70001936
+ 59 16     -1.34342253      4.42390013
+ 59 17      1.00342906      2.89429641
+ 59 18      1.24212253      0.71523798
+ 59 19     -0.42294592     -1.09038079
+ 59 20      0.00307839     -2.04406047
+ 59 21      1.31939530     -1.27157962
+ 59 22      0.54819715      0.60486138
+ 59 23     -1.64891052      1.89912832
+ 59 24      2.42493582      3.82890701
+ 59 25      3.26232219      1.44132578
+ 59 26      0.76433015     -1.71329677
+ 59 27     -0.05001321      0.58028281
+ 59 28      0.21127985      1.05607998
+ 59 29      1.79976821      0.77282423
+ 59 30     -0.02765756     -0.63168275
+ 59 31      0.07841520     -2.84311199
+ 59 32      0.17766050     -0.01283269
+ 59 33     -0.81418574      3.08492303
+ 59 34     -3.53317595     -1.20733869
+ 59 35     -0.09454682      0.77479273
+ 59 36      0.39631498      0.07655717
+ 59 37     -0.22577664     -1.32606065
+ 59 38     -0.93134630     -2.03101230
+ 59 39      0.22025719      0.04746686
+ 59 40     -0.26443943     -0.20911999
+ 59 41      1.42091346     -0.17251864
+ 59 42      1.72918141     -0.13502215
+ 59 43      1.03355837     -0.99370617
+ 59 44     -1.03469253     -1.44529462
+ 59 45      0.57550323     -2.20689344
+ 59 46      0.25648728      0.23186447
+ 59 47      1.77891850      1.74838066
+ 59 48      0.52286118      1.47898030
+ 59 49      1.38285792      0.27058482
+ 59 50      0.93699455     -0.99368703
+ 59 51      1.18362594      0.15631589
+ 59 52      0.65320826     -0.18422431
+ 59 53      1.57804906     -1.16630793
+ 59 54      0.58957064      0.21746506
+ 59 55      2.81794500     -1.58868790
+ 59 56     -0.62502873     -0.72592682
+ 59 57      0.06532606      0.84646457
+ 59 58      0.98304653     -0.13361959
+ 59 59      2.13794994      1.32001483
+ 60  0      1.29859471
+ 60  1      0.60992444     -0.22486083
+ 60  2     -2.58114195      0.06954645
+ 60  3      0.13770764      3.92686129
+ 60  4      2.30995417     -0.54972661
+ 60  5      0.11825501     -1.80559444
+ 60  6     -3.12422895     -0.92804897
+ 60  7      1.64707303      0.53329843
+ 60  8      0.89768678     -1.23598504
+ 60  9     -1.18549287     -0.53372008
+ 60 10     -0.63273209      2.11844563
+ 60 11     -0.45902798      3.63736463
+ 60 12      0.77723789     -1.61541057
+ 60 13      0.83204669     -3.09753990
+ 60 14      0.98034215      1.54339004
+ 60 15     -0.73314250      3.45607162
+ 60 16      1.40637255      0.18414645
+ 60 17     -0.22519337     -3.48123336
+ 60 18      0.74306357     -1.63384473
+ 60 19      0.95379984      0.35392487
+ 60 20     -1.44189882      1.29996562
+ 60 21     -1.79100144      1.29243827
+ 60 22     -0.56879014      1.38057685
+ 60 23      0.45350057      1.12963116
+ 60 24     -0.38902587     -3.01518154
+ 60 25     -2.04891086     -0.38009283
+ 60 26     -1.75367987     -0.32685041
+ 60 27     -0.32667017     -2.01016092
+ 60 28     -1.51903343     -0.43453136
+ 60 29     -2.50937200     -0.15711755
+ 60 30     -0.44482514      2.00752425
+ 60 31      1.42828584      2.44031096
+ 60 32      1.09796822      1.01613092
+ 60 33      1.27618110     -3.66021371
+ 60 34      1.54456782     -1.49816525
+ 60 35      1.68149245     -0.33587393
+ 60 36      1.40175247      1.41584420
+ 60 37     -0.54468673      1.90598893
+ 60 38      0.08642549      0.11837836
+ 60 39      0.50976014      0.51118553
+ 60 40     -0.04165927     -0.40389261
+ 60 41     -0.32702902     -1.33956933
+ 60 42     -2.85486174      0.98802459
+ 60 43     -1.49599111      0.64834094
+ 60 44     -0.67768759      1.63999426
+ 60 45     -0.94583952      2.04219317
+ 60 46     -2.01284242      2.17378283
+ 60 47     -1.42023110     -0.49118835
+ 60 48     -0.49218416      0.74592733
+ 60 49      0.29476005      0.31116220
+ 60 50      1.20377791     -1.27063584
+ 60 51     -1.60474658     -1.24324751
+ 60 52     -1.70060122      0.68538719
+ 60 53     -1.80271602     -0.44587070
+ 60 54     -1.66785181     -0.26335448
+ 60 55     -3.70584106      2.22064948
+ 60 56     -2.47473979      1.35083985
+ 60 57     -1.36357808      1.78518915
+ 60 58      0.75566989     -1.20652115
+ 60 59     -0.68022221     -0.60079736
+ 60 60      2.65564251     -0.99372798
+ 61  0      0.82951951
+ 61  1     -1.86010718      0.96418458
+ 61  2     -0.28177994     -0.09849744
+ 61  3      3.07143760     -3.12291980
+ 61  4     -3.43034029     -0.62470841
+ 61  5     -1.75097382      0.97580630
+ 61  6      2.98573756      1.83626866
+ 61  7      0.62068725     -1.69885623
+ 61  8     -2.33319521      0.88701028
+ 61  9     -0.03892338      2.18526530
+ 61 10      0.12027366     -1.16048348
+ 61 11      1.86331439     -3.82680511
+ 61 12      0.25967512     -1.42146015
+ 61 13     -0.97914201      2.37412262
+ 61 14     -0.54189706      1.79944539
+ 61 15      1.69709969     -1.65381193
+ 61 16     -1.37909949     -3.57685614
+ 61 17     -2.47386408      2.54507947
+ 61 18     -0.63157457      3.77411556
+ 61 19     -0.82829839      0.61252069
+ 61 20      0.61462855     -0.51614416
+ 61 21      0.85766357     -0.93065047
+ 61 22      0.15908615     -1.37390482
+ 61 23      0.18790568     -2.39012194
+ 61 24     -2.71288943      0.17387834
+ 61 25     -0.65131682      2.70166564
+ 61 26      1.56280041      1.19061852
+ 61 27      2.39067864     -0.44943789
+ 61 28      4.17798615      1.08990514
+ 61 29      1.38687766      0.02897683
+ 61 30      0.41845986     -0.38627881
+ 61 31     -1.10291004      0.19949141
+ 61 32     -0.98585272     -0.48159131
+ 61 33     -0.44003490      0.53442585
+ 61 34      0.92444754      1.42557979
+ 61 35     -3.10200787     -0.10166126
+ 61 36     -1.68737960     -0.09011131
+ 61 37     -0.43370253      1.42959976
+ 61 38     -0.28947836      0.16524959
+ 61 39     -0.50423580     -1.64434910
+ 61 40     -0.47575018     -0.35402483
+ 61 41     -0.63320178     -0.34952414
+ 61 42      1.66652596     -1.90256476
+ 61 43      2.90783238      1.01602113
+ 61 44      2.99315333      0.42199138
+ 61 45     -0.28761452     -1.01488352
+ 61 46      3.01023912     -1.88135576
+ 61 47      1.30963326     -0.71553975
+ 61 48      0.17114346     -0.95421714
+ 61 49     -1.43791544      0.28664190
+ 61 50      0.24955934      1.00005555
+ 61 51      0.78347766      1.96986973
+ 61 52      1.40665698      0.42752382
+ 61 53      2.36624551      1.11095011
+ 61 54      1.78342533     -1.33606732
+ 61 55      2.36964250      0.17719138
+ 61 56      2.14945507      0.19925874
+ 61 57      1.54664528     -0.79864925
+ 61 58     -0.81207997      0.29415444
+ 61 59     -1.32082129      2.09750366
+ 61 60     -2.14516425      2.43305588
+ 61 61     -0.54578918      2.96120572
+ 62  0     -2.20443177
+ 62  1      2.35739589     -0.28016296
+ 62  2      2.38667893     -0.01764632
+ 62  3     -3.05881834     -0.60993874
+ 62  4      1.03876746      2.12873101
+ 62  5      2.81791830      0.40956730
+ 62  6     -1.58185911     -0.24022117
+ 62  7     -2.05533290      1.31830966
+ 62  8      3.47728777      0.15577015
+ 62  9      1.57514215     -2.90592837
+ 62 10      0.76588482     -1.85423791
+ 62 11     -0.61697799      3.45576501
+ 62 12     -2.19225359      4.20313406
+ 62 13      0.91480666     -0.61535597
+ 62 14      1.47212613     -2.69783568
+ 62 15      0.02891994      1.31715262
+ 62 16      0.66371101      2.07483268
+ 62 17      2.90920877     -1.41853440
+ 62 18      0.44874159     -3.13647985
+ 62 19     -0.18119782     -1.48323321
+ 62 20      1.81898224      1.73762214
+ 62 21     -0.77038705      0.18672025
+ 62 22      0.19869824     -1.14193869
+ 62 23      1.34709406      0.70936048
+ 62 24      1.39236891      1.90293241
+ 62 25      0.51372331     -2.12259555
+ 62 26     -0.08748614     -0.01196331
+ 62 27     -1.05315852      1.78596628
+ 62 28     -2.44898677     -2.88609362
+ 62 29     -1.43041277     -1.31778395
+ 62 30     -1.65530527     -0.18002562
+ 62 31     -0.56679022      0.84078062
+ 62 32     -0.45586941      1.14510119
+ 62 33      0.16433498      2.78701258
+ 62 34      0.35951012     -1.45143378
+ 62 35      2.09412456     -0.89534491
+ 62 36      1.06922591     -2.76489925
+ 62 37      1.69033849     -1.85037398
+ 62 38      0.43566933      0.49407190
+ 62 39      0.98469180      2.81032801
+ 62 40      0.23015107      1.97545254
+ 62 41      0.85565382      2.80817580
+ 62 42     -0.54247093     -0.62598801
+ 62 43     -1.49070990      0.37403125
+ 62 44     -3.08131838     -0.94196445
+ 62 45     -1.17641091      0.54652059
+ 62 46     -1.64484656      2.87831807
+ 62 47     -1.73200309      0.68080848
+ 62 48     -1.34637547     -0.23145081
+ 62 49      0.31592843     -1.08295012
+ 62 50      1.69915342      0.22317818
+ 62 51      1.25984478     -0.01163204
+ 62 52     -2.11587977     -1.55491674
+ 62 53     -4.41787148     -1.37439263
+ 62 54     -1.22908533     -1.20570993
+ 62 55     -0.13879682     -0.96890348
+ 62 56     -1.34353220      0.31034395
+ 62 57     -2.65409565     -0.02504187
+ 62 58     -1.87314081      0.40506679
+ 62 59     -0.36060494     -1.61928558
+ 62 60      1.40320718     -2.14307809
+ 62 61     -1.29620504      0.51010448
+ 62 62      0.70421034      0.24573320
+ 63  0      1.80484021
+ 63  1      0.48110601      0.21691824
+ 63  2     -1.95571065      0.93580002
+ 63  3      0.54164779      1.73461580
+ 63  4      3.32195234     -1.32331622
+ 63  5     -3.87224746     -1.15063417
+ 63  6     -1.69443738     -0.83621794
+ 63  7      2.49547338      0.61811674
+ 63  8     -1.29211879     -0.91583145
+ 63  9     -1.21123433      1.42241836
+ 63 10     -0.44822413      4.12845612
+ 63 11     -0.80616331     -0.46788430
+ 63 12      2.03752160     -4.71596718
+ 63 13      1.14106715     -1.63846123
+ 63 14     -1.27472425      1.94140923
+ 63 15     -1.15850151      0.47431302
+ 63 16      1.71285903     -0.32774898
+ 63 17     -1.82711101     -0.71597642
+ 63 18     -1.11866009      0.73671997
+ 63 19      0.99253410      1.79798090
+ 63 20     -1.61577499     -0.84780926
+ 63 21     -0.97839153     -0.23196034
+ 63 22     -0.02794922      1.84155083
+ 63 23     -1.79763901      1.26790607
+ 63 24      1.50199258     -2.71715856
+ 63 25      0.47754520     -1.10824704
+ 63 26     -0.97030300      1.21086657
+ 63 27     -1.38473368      0.07061087
+ 63 28     -1.25995481      1.11049986
+ 63 29      2.54203749      2.97830772
+ 63 30      2.48861241     -0.03548912
+ 63 31      1.68498218     -2.12895036
+ 63 32      0.25570229     -1.57219732
+ 63 33     -1.31641781     -2.41430569
+ 63 34     -1.47905946      0.77278924
+ 63 35      0.43383041      0.38394880
+ 63 36     -0.84520042      1.43115616
+ 63 37     -0.95253712      0.13892560
+ 63 38     -0.63896763      0.67775494
+ 63 39     -0.21595854     -1.03243113
+ 63 40     -1.76667070     -2.82039547
+ 63 41     -0.76475632     -1.12359869
+ 63 42     -1.34341753     -0.39952356
+ 63 43     -0.09124587     -1.15938962
+ 63 44      2.10788798     -0.65772188
+ 63 45      0.87342060      0.89998895
+ 63 46     -1.09287357     -1.84087563
+ 63 47      0.48393324     -0.24943948
+ 63 48      0.73454750      1.64615333
+ 63 49      2.18693709      0.42649901
+ 63 50      1.35009575     -2.96514583
+ 63 51     -0.77767605     -2.43407774
+ 63 52      0.22068001     -1.25778008
+ 63 53      0.26290050      0.91356003
+ 63 54      0.38879400      2.50656986
+ 63 55     -0.06140481      1.25540531
+ 63 56      1.94994092     -1.01306200
+ 63 57      2.98978543      1.42652082
+ 63 58      1.37096250      0.53534281
+ 63 59      0.58835739      4.11039877
+ 63 60      1.18313301      0.37806782
+ 63 61      0.57487214      1.67808235
+ 63 62      0.84806788      1.25489736
+ 63 63     -2.82287741      2.05529666
+ 64  0     -1.09240150
+ 64  1     -2.47074556      0.32912242
+ 64  2      1.43186760     -1.06080806
+ 64  3      0.43439454      0.00674378
+ 64  4     -5.03008890     -1.22721744
+ 64  5      2.22097588      0.95107603
+ 64  6      4.01588106      0.82057369
+ 64  7     -2.55189729     -1.73316598
+ 64  8     -2.98545694      1.56800365
+ 64  9      1.80378604      1.19249213
+ 64 10      0.09700486     -3.00899959
+ 64 11      0.93277055     -3.22074342
+ 64 12     -0.18197152      2.98076773
+ 64 13     -1.95659602      3.87871957
+ 64 14      0.85538810      0.07924614
+ 64 15      1.68135047     -1.33771586
+ 64 16     -2.19953918      1.77505183
+ 64 17      0.03925215      2.38509417
+ 64 18      3.35551715      0.28949869
+ 64 19     -0.71800852     -1.45869339
+ 64 20     -1.82704151     -1.79070079
+ 64 21      0.62231988      1.85978818
+ 64 22     -0.26375079      1.80738926
+ 64 23      0.03949696     -1.00369847
+ 64 24      1.31526351     -0.07927901
+ 64 25     -0.68679827      1.81070411
+ 64 26     -1.37970579     -2.33870196
+ 64 27      0.74588472     -0.69928545
+ 64 28      1.72748566      2.56709766
+ 64 29     -1.63378191     -2.64879560
+ 64 30     -1.67028069     -1.51603353
+ 64 31     -2.22716904      1.09571624
+ 64 32     -1.58547318      2.07637882
+ 64 33     -0.60561538      1.77300739
+ 64 34      0.24176919      1.42591226
+ 64 35     -0.71398193      0.02469295
+ 64 36      1.37229800      1.15545368
+ 64 37      0.16267934      0.12786949
+ 64 38      1.78678715     -1.35158730
+ 64 39      1.08371365     -1.10074258
+ 64 40      0.53794914      2.98609281
+ 64 41     -0.44286272      2.08164167
+ 64 42      0.28286469      1.65454555
+ 64 43      0.92342311      2.01357031
+ 64 44     -0.29253411     -0.00908970
+ 64 45     -1.91160727     -1.11394715
+ 64 46     -0.78253406     -0.83507258
+ 64 47     -0.37516037     -0.15638193
+ 64 48     -0.78196537      1.15008616
+ 64 49     -0.44752055     -0.68473327
+ 64 50     -0.29903951     -0.09438451
+ 64 51      0.89803284      2.43585658
+ 64 52      2.11961937      3.00534177
+ 64 53      0.18253194     -1.15951884
+ 64 54     -1.66629183     -3.08172321
+ 64 55     -0.06079598     -0.64625430
+ 64 56     -0.70653951     -0.35561541
+ 64 57     -0.73713273     -0.53307313
+ 64 58     -0.43531415     -0.17559856
+ 64 59      0.31499022     -1.86229813
+ 64 60     -0.28949732     -0.03988659
+ 64 61      1.06041574     -2.72706056
+ 64 62     -0.36024854     -1.28616059
+ 64 63      0.95851541     -1.81173551
+ 64 64     -0.12768374      0.00163726
+ 65  0     -0.76723891
+ 65  1      2.90197182      0.19999605
+ 65  2     -0.84077173     -0.48895180
+ 65  3     -1.33203149     -0.29886955
+ 65  4      2.64579558      1.09967434
+ 65  5      3.51866007     -0.64233530
+ 65  6     -4.07572222     -0.43791306
+ 65  7     -0.53751886      0.19613008
+ 65  8      4.52483082     -0.18954445
+ 65  9     -1.08161962     -2.08224344
+ 65 10     -0.05027826     -0.13902989
+ 65 11     -0.64984488      4.72371387
+ 65 12     -1.34388137      2.55306435
+ 65 13      0.76408255     -3.21975827
+ 65 14      0.91163778     -1.49916184
+ 65 15     -1.41851926      1.34575701
+ 65 16     -0.12788525     -0.88784719
+ 65 17      1.25262713     -1.39616311
+ 65 18     -2.74352717      0.40899691
+ 65 19     -1.13345659      0.69254249
+ 65 20      2.89728355      2.43002486
+ 65 21      1.19269478     -2.02627611
+ 65 22     -0.27468029     -3.57296777
+ 65 23     -0.48910093      0.34284234
+ 65 24     -3.83509946      1.95156538
+ 65 25      0.39935151     -0.51752627
+ 65 26      3.54993415      0.09030786
+ 65 27      2.15892959      0.93597841
+ 65 28     -0.16423012     -1.89163899
+ 65 29     -2.14629436     -0.02546593
+ 65 30     -0.16819766      2.74973226
+ 65 31      1.08488965      1.05623281
+ 65 32      1.62423372     -2.10917592
+ 65 33      2.75102854     -0.10195270
+ 65 34      0.43907017     -1.84276640
+ 65 35     -1.55027115      0.14626841
+ 65 36     -0.92300916     -2.48466063
+ 65 37     -2.09819245     -0.01989042
+ 65 38     -1.73244667     -0.26120487
+ 65 39     -0.21177432      2.01590395
+ 65 40      2.12758255      0.14070243
+ 65 41      1.58513284     -2.11735344
+ 65 42     -1.40524328     -1.34176934
+ 65 43     -1.86090827      1.18568444
+ 65 44     -0.21982056     -0.51797372
+ 65 45      2.40450478     -0.69622499
+ 65 46      2.05053163      0.97278476
+ 65 47     -0.83023375     -0.74956536
+ 65 48     -1.47720599     -1.63290107
+ 65 49     -1.97269666      0.94445443
+ 65 50     -2.49957442      2.94463825
+ 65 51      0.68679976     -0.01325471
+ 65 52      0.52697968     -2.78612113
+ 65 53     -0.85669494     -2.39918256
+ 65 54      0.80808389      0.24993941
+ 65 55      0.79522961      1.03909647
+ 65 56     -0.90800655      0.34732425
+ 65 57     -0.61269063      1.81524539
+ 65 58      1.00614250      0.43556982
+ 65 59     -1.85031319     -0.71307397
+ 65 60     -2.36548877      2.00198388
+ 65 61      0.67482567      1.47123837
+ 65 62      1.48106813      1.10189843
+ 65 63      0.56353450      0.95081013
+ 65 64      3.23813868     -1.26910281
+ 65 65     -0.92772859      0.00121361
+ 66  0      0.24615532
+ 66  1     -0.54505128      0.27399984
+ 66  2      0.77429271      1.48502135
+ 66  3      2.83784342     -1.08500969
+ 66  4     -0.00914825     -1.06988525
+ 66  5     -6.03252220     -0.60533339
+ 66  6      1.24911153      1.87675488
+ 66  7      4.34792948      1.85622704
+ 66  8     -0.87235856     -2.08819795
+ 66  9     -1.17450964      0.71327180
+ 66 10      1.13609421      2.50200272
+ 66 11     -0.11918221     -1.32421076
+ 66 12      0.34499422     -4.47289515
+ 66 13      0.49217808      0.94898367
+ 66 14     -1.66685116      2.32295918
+ 66 15     -0.64097345     -0.62524104
+ 66 16      1.21204734     -1.05545139
+ 66 17     -1.64473450      0.13779494
+ 66 18      0.31794909      0.67427236
+ 66 19      3.32406116     -0.05307076
+ 66 20      0.20115446     -0.12885846
+ 66 21     -2.09499097     -0.17876315
+ 66 22      0.57661444      1.58491600
+ 66 23      0.98656011      2.25909567
+ 66 24      1.29708326     -0.38138676
+ 66 25      0.35228968     -0.04578404
+ 66 26     -1.48026824      1.30712163
+ 66 27     -3.19774294     -1.02315450
+ 66 28     -1.39711297     -0.49652281
+ 66 29      2.74263930      2.78272533
+ 66 30     -0.07955761     -2.00130439
+ 66 31      0.24233109     -1.92329085
+ 66 32      0.08409046     -0.16064729
+ 66 33     -1.63303399     -0.07901996
+ 66 34     -0.90930867      0.97278816
+ 66 35      1.05771399      1.12208152
+ 66 36     -0.06958169      1.39190304
+ 66 37      1.78465331     -0.91291344
+ 66 38     -0.53781503      1.49284565
+ 66 39      1.17599154     -1.62692165
+ 66 40     -0.17211987     -1.70955050
+ 66 41      0.09991987      1.12709987
+ 66 42      0.03696416      0.81538093
+ 66 43      0.64803863     -0.25094908
+ 66 44      1.10426497      1.64473426
+ 66 45     -1.58925915      1.82556045
+ 66 46     -1.35090172     -0.57103401
+ 66 47      0.16053589      0.52772498
+ 66 48      1.79009688      1.80290031
+ 66 49      2.39998126      1.54835629
+ 66 50      2.07521009     -0.10176295
+ 66 51     -0.26051661     -0.25371075
+ 66 52     -1.35719478     -0.12401933
+ 66 53     -0.16838983      1.76884687
+ 66 54      1.46610928      0.83115405
+ 66 55      0.98341829     -2.32091570
+ 66 56      1.46579397      0.44210431
+ 66 57      1.55440569     -1.72113943
+ 66 58      1.56188953     -0.57974374
+ 66 59      1.31684518      1.94392347
+ 66 60      2.06770921      0.55293536
+ 66 61     -0.43330798     -1.27435219
+ 66 62      0.83349484     -0.96283239
+ 66 63      0.19307430     -0.82825226
+ 66 64      1.14168513     -1.94857395
+ 66 65     -1.41123343     -2.71405125
+ 66 66     -0.43404615     -1.26066756
+ 67  0     -0.63459390
+ 67  1      0.96530360     -0.28092813
+ 67  2      0.26995936     -0.69732261
+ 67  3     -3.20639658      0.41616604
+ 67  4     -1.74287307      1.92790008
+ 67  5      3.39972878      2.35109496
+ 67  6      3.18268132     -1.62027597
+ 67  7     -3.59577799     -2.14395142
+ 67  8     -2.86654520      1.79340100
+ 67  9      1.33362305      1.19829905
+ 67 10     -1.83493972     -2.13309669
+ 67 11      0.62152511     -2.39642978
+ 67 12      0.49819541      1.51067138
+ 67 13     -0.87217396      1.52854288
+ 67 14     -0.43644264     -1.49500358
+ 67 15      1.22757661     -0.34130868
+ 67 16      0.27473852      2.43208241
+ 67 17      0.50220156      1.09372568
+ 67 18      2.10767794     -1.72895896
+ 67 19     -2.20456028     -0.53533804
+ 67 20     -3.53491116      0.10866842
+ 67 21     -0.93311059      2.05838180
+ 67 22      0.48544982      0.71089119
+ 67 23     -0.62376177     -2.49908829
+ 67 24     -0.03025399     -2.57970166
+ 67 25     -2.38645720     -0.86266857
+ 67 26     -2.61812305     -1.63489234
+ 67 27      2.29833102     -0.34601682
+ 67 28      2.42086458      0.79190046
+ 67 29      0.68738759     -2.96214557
+ 67 30     -0.11867824     -0.98201513
+ 67 31     -1.80221498      1.40612245
+ 67 32     -0.87044430      1.84059930
+ 67 33     -1.00216889     -1.92072582
+ 67 34      0.60368228     -0.69479531
+ 67 35     -0.32047224      0.22667854
+ 67 36     -0.49502662      1.63013387
+ 67 37      0.60345715     -1.01340652
+ 67 38     -0.41024989     -1.48670316
+ 67 39     -3.24272275     -1.12621140
+ 67 40     -2.39120817      0.02924417
+ 67 41      0.83876532      0.69957852
+ 67 42      1.42518699     -1.76383317
+ 67 43      0.52541417     -1.26875055
+ 67 44     -0.70474517     -0.05205412
+ 67 45     -1.46664166      0.04208131
+ 67 46      2.17129445     -1.79838502
+ 67 47      0.72955620     -2.43524766
+ 67 48     -0.33162728     -0.82630563
+ 67 49     -1.44561911     -2.50272751
+ 67 50     -1.78614342     -1.68742526
+ 67 51     -1.34059870      1.69252765
+ 67 52     -0.28934082      2.45150232
+ 67 53      0.09714215     -0.60477048
+ 67 54     -0.44465300     -0.53012466
+ 67 55     -0.76816922     -0.44510338
+ 67 56      0.60606176      1.01248622
+ 67 57     -0.58176017      1.02554548
+ 67 58     -1.15116096     -1.58216476
+ 67 59     -1.14657652     -0.83645850
+ 67 60      0.17932726     -1.05582786
+ 67 61     -1.34977949     -0.05294513
+ 67 62     -1.69436288      1.22277439
+ 67 63     -0.96223927      0.25736570
+ 67 64     -0.39115307      2.83713078
+ 67 65      1.26358747      1.89749527
+ 67 66      0.64209086     -0.63803190
+ 67 67     -1.25495923      0.88668662
+ 68  0      1.31081724
+ 68  1     -1.25493968     -0.05648491
+ 68  2     -1.83354294     -0.32970700
+ 68  3      1.19618142      1.51674080
+ 68  4      2.36931372     -1.14353323
+ 68  5      0.78009838     -2.67894602
+ 68  6     -4.12664461     -0.98154199
+ 68  7     -1.28927839      1.83547795
+ 68  8      1.84432876      0.49750707
+ 68  9      0.77434218     -1.77644074
+ 68 10      0.87647355     -0.18394339
+ 68 11      0.53378445      2.93443823
+ 68 12      0.53552473      1.74245787
+ 68 13      0.40371194     -2.43334889
+ 68 14      1.00776041      0.83951759
+ 68 15     -0.31065306      1.60991037
+ 68 16     -0.80422169     -1.04946065
+ 68 17     -0.03545632     -1.70171785
+ 68 18     -1.74992573      0.84121811
+ 68 19     -0.11824545      1.17364478
+ 68 20      1.72443616     -0.97861564
+ 68 21      0.34224781     -2.99579716
+ 68 22     -1.31751204     -0.26953158
+ 68 23     -0.13709070      0.71759319
+ 68 24      2.62581515      0.75557232
+ 68 25      2.98966265      0.78649569
+ 68 26      1.43252993      1.25730443
+ 68 27     -0.38089094      0.98726952
+ 68 28     -1.59513652      1.17759883
+ 68 29     -3.14859033      1.64791548
+ 68 30      0.28664783      3.66180086
+ 68 31      0.10537185      0.40192762
+ 68 32     -0.24923471     -1.89173424
+ 68 33      1.70556557      0.35592854
+ 68 34      0.64003861     -0.82867712
+ 68 35     -0.72608441     -0.64363354
+ 68 36      1.86051512     -1.99900949
+ 68 37     -1.19385540      2.48104095
+ 68 38      0.29225066     -0.88860607
+ 68 39      1.63599372      0.99607801
+ 68 40      3.19516921      1.32260072
+ 68 41      0.09686233     -0.14055197
+ 68 42     -1.35153782      2.25543451
+ 68 43      0.36467257      2.18733358
+ 68 44      1.12029040     -2.29409719
+ 68 45      1.78321147      1.89786959
+ 68 46     -1.06750917      2.65789413
+ 68 47     -1.50514281      0.67624772
+ 68 48     -1.69215906      0.57076436
+ 68 49      0.44416958      2.96495962
+ 68 50      2.00908232      3.65863109
+ 68 51      2.71194553      1.48224032
+ 68 52      0.76857054     -1.87460303
+ 68 53     -1.52507985     -0.52388436
+ 68 54     -0.33404133      0.97295928
+ 68 55      0.36448497      1.73765981
+ 68 56     -1.59441531      0.76302308
+ 68 57      0.47925371      0.10420165
+ 68 58      0.76811969     -0.17745417
+ 68 59      0.35512868      0.09154298
+ 68 60      1.16078591      1.22482765
+ 68 61     -0.38764298      0.66744912
+ 68 62      0.62334085      0.40531945
+ 68 63      2.74607301     -0.96205264
+ 68 64      0.27259421     -2.09683108
+ 68 65     -0.68715501      0.74048841
+ 68 66      0.77134889      0.86030370
+ 68 67      1.35309637     -2.04946899
+ 68 68     -0.99949676     -0.84306049
+ 69  0     -2.18759036
+ 69  1     -0.61644065      1.03011739
+ 69  2      3.67775416      0.31196243
+ 69  3      1.48407936     -1.72810042
+ 69  4     -1.94072449     -1.36670017
+ 69  5     -2.11013818      1.42339647
+ 69  6      0.87681305      2.54345965
+ 69  7      2.73863673     -1.66158283
+ 69  8      1.42471170     -1.64401388
+ 69  9     -0.00296156      1.78975117
+ 69 10      0.71881735      0.71247232
+ 69 11     -1.21859932     -1.66899407
+ 69 12     -0.95363593     -1.10789382
+ 69 13     -0.40868708      1.60278273
+ 69 14     -0.09909580      1.10312653
+ 69 15     -1.09250557     -1.53426278
+ 69 16     -0.23693128     -1.16899228
+ 69 17     -1.01854074      1.01660252
+ 69 18     -0.69682801      1.95393729
+ 69 19      2.39245605     -0.66617787
+ 69 20      2.75827122      0.29667008
+ 69 21      0.95044279      1.56696212
+ 69 22      1.69750381     -0.09700502
+ 69 23      0.29031780     -0.53665352
+ 69 24     -2.75049639     -0.26158041
+ 69 25     -3.08158851      1.52152038
+ 69 26      0.20175815      0.34831545
+ 69 27     -0.26582915     -1.68788660
+ 69 28      0.46347067     -2.17767286
+ 69 29      1.08741093     -0.99860305
+ 69 30      0.12494475     -3.21472979
+ 69 31      1.25605035     -1.08258545
+ 69 32     -0.88618308     -0.14079536
+ 69 33     -1.66020548      0.62962759
+ 69 34     -0.55053383     -0.05978137
+ 69 35      1.85571098     -1.90253925
+ 69 36     -0.89357919     -0.72761148
+ 69 37     -1.68446016      0.34530756
+ 69 38     -0.10412178      1.89851689
+ 69 39      1.77469218      0.33289748
+ 69 40     -3.22748685     -0.70828950
+ 69 41     -1.26909375     -2.95321584
+ 69 42      0.08600397     -0.95753574
+ 69 43      0.91559500     -1.46921051
+ 69 44     -0.25944275      0.22919981
+ 69 45     -0.91029471      0.31830424
+ 69 46     -0.99105436     -0.15190411
+ 69 47      1.15380919     -1.42647421
+ 69 48      2.52225256     -1.16889608
+ 69 49     -0.10429870     -1.25995886
+ 69 50     -1.74550676     -2.36558223
+ 69 51     -1.31315053     -1.35208404
+ 69 52     -0.98745900     -0.36744225
+ 69 53     -0.27233541      0.92560178
+ 69 54      0.51454878     -0.63332814
+ 69 55     -0.33100188      0.06486803
+ 69 56      0.11389796     -0.12979332
+ 69 57     -0.03688950     -1.72957361
+ 69 58      0.66224200      0.02530587
+ 69 59     -0.54423487      0.60159749
+ 69 60      0.26106441     -0.72900212
+ 69 61      0.46453089     -2.76007986
+ 69 62      0.87579870     -1.28097498
+ 69 63      0.71583170      0.36683145
+ 69 64      0.54496717      2.60241532
+ 69 65     -2.21091461      1.97169590
+ 69 66     -0.25181365      1.93745804
+ 69 67      0.28399524      2.83192515
+ 69 68      0.46775433      3.16388631
+ 69 69      1.11011899     -0.74959803
+ 70  0      0.14816496
+ 70  1      2.51487923     -0.57630485
+ 70  2     -2.03237867      0.70400703
+ 70  3     -1.71520782      0.87582409
+ 70  4      1.50293732      1.37875283
+ 70  5      1.18123877     -0.73114896
+ 70  6      0.65762877     -2.44130111
+ 70  7     -0.48383328      1.11431372
+ 70  8     -1.57521808      2.47443128
+ 70  9     -0.67934150     -0.99987125
+ 70 10      0.14070752     -1.10845399
+ 70 11      0.18366554      0.40992877
+ 70 12     -1.45508492      1.01095021
+ 70 13      0.35814869     -0.18675591
+ 70 14      0.20197412     -1.19923687
+ 70 15     -0.36613280      0.81786692
+ 70 16      0.81586790      1.59313500
+ 70 17      0.39151639      0.12351283
+ 70 18      1.43176770     -2.94798946
+ 70 19     -0.71286136     -0.19873272
+ 70 20     -1.86637771      2.09844470
+ 70 21     -1.40412021      0.27111331
+ 70 22     -0.44530669     -1.67196572
+ 70 23     -1.01443434      1.38578796
+ 70 24     -1.14640570      2.48183870
+ 70 25      1.22422421     -1.11032796
+ 70 26      1.20206034     -1.67164660
+ 70 27     -0.64952356      1.08991539
+ 70 28     -2.25762558     -0.59172881
+ 70 29      0.49481055     -0.62167704
+ 70 30     -0.51024389      2.10568357
+ 70 31     -0.55276901      1.22603929
+ 70 32      1.26004875      2.35268497
+ 70 33     -0.35161301      0.80681783
+ 70 34      0.10580938      2.18314552
+ 70 35     -0.02922614      1.24222863
+ 70 36      0.11265333      1.18156958
+ 70 37      2.24296045     -2.52822495
+ 70 38      1.21882784     -0.04216687
+ 70 39     -1.32167554     -0.66168022
+ 70 40     -0.44646245     -1.31889319
+ 70 41      2.20637083      1.21368909
+ 70 42      1.02343667      1.15169370
+ 70 43     -1.18825459      1.26155877
+ 70 44      0.22736114      0.98479480
+ 70 45      2.06350923     -0.20463224
+ 70 46      1.80632126      0.22317991
+ 70 47     -0.70774209      0.76142001
+ 70 48     -0.51385009      0.45041388
+ 70 49     -0.52571923     -0.44458157
+ 70 50     -0.51886624      1.54898167
+ 70 51      0.76973081      2.21373606
+ 70 52      0.39875251      3.18390250
+ 70 53      1.61105764     -0.53001934
+ 70 54      0.75835115     -1.79689455
+ 70 55      0.83905166     -1.92105937
+ 70 56      0.60648674      1.87639678
+ 70 57      1.58126235      1.74740171
+ 70 58     -1.43652034     -0.85612947
+ 70 59     -0.03437381      0.91412175
+ 70 60      0.38128063     -0.23274335
+ 70 61     -0.36071154      4.07419729
+ 70 62     -0.81455755      1.55741692
+ 70 63     -1.32744241     -0.68663728
+ 70 64      0.90823203     -0.93921274
+ 70 65      1.99315453     -0.44410369
+ 70 66     -1.54455042     -0.42632052
+ 70 67      0.52633786      1.48285592
+ 70 68     -1.43858492      1.31702554
+ 70 69      0.98284644      2.48806310
+ 70 70     -0.62251699      1.68587315
+ 71  0      1.10167909
+ 71  1     -1.20523238      0.03710998
+ 71  2     -2.24923062      0.14832404
+ 71  3      1.27995038     -0.33415633
+ 71  4     -0.13446523     -0.10024965
+ 71  5     -0.01696545      0.76327598
+ 71  6      0.31265968      1.42636764
+ 71  7     -0.61959016      0.47111651
+ 71  8     -1.29836071     -1.97080183
+ 71  9     -0.04894502      0.10418794
+ 71 10     -0.02120199      3.31675124
+ 71 11      0.52975619      1.28860259
+ 71 12      2.51393819     -2.39400721
+ 71 13      0.67933315     -1.96549594
+ 71 14     -2.25722861      0.44217044
+ 71 15     -0.62157041     -0.58669782
+ 71 16      1.11793280      0.73389858
+ 71 17      0.84187138      0.44836995
+ 71 18     -0.54888201      0.07315382
+ 71 19     -0.81281519      0.47788683
+ 71 20     -1.05692434     -0.92143041
+ 71 21     -0.27682155     -0.81051725
+ 71 22      0.13739124      4.27540827
+ 71 23      2.56103086      1.58411312
+ 71 24      2.73947406     -3.80462193
+ 71 25      0.28270933     -3.70347333
+ 71 26     -3.64107251      0.00920797
+ 71 27     -1.81261146      1.31150603
+ 71 28      2.11182237      2.01516509
+ 71 29      1.19457829      1.34095645
+ 71 30      0.39267507     -0.78609234
+ 71 31     -0.98074317     -3.27130580
+ 71 32      0.80311292     -1.71700525
+ 71 33     -0.21452279     -0.69380611
+ 71 34     -1.41025257     -1.23925924
+ 71 35     -2.09627247      0.58760852
+ 71 36      0.73936594     -0.08548348
+ 71 37     -0.14449230      0.12762000
+ 71 38     -0.64959514     -1.10959041
+ 71 39     -0.67859066      0.82976049
+ 71 40      2.64651418      1.18236089
+ 71 41     -1.75328422      3.77922654
+ 71 42     -0.98265183     -1.91583920
+ 71 43      0.29269397     -3.30717874
+ 71 44      0.37501740     -1.36196160
+ 71 45     -1.02987111      1.30017364
+ 71 46     -1.25820708     -0.19182092
+ 71 47     -0.43835971      0.79307497
+ 71 48     -1.82528508      0.87522852
+ 71 49      1.13195872     -0.21378754
+ 71 50     -0.28629732     -0.24334602
+ 71 51     -1.76036024      0.02138562
+ 71 52     -1.04514134     -2.56361508
+ 71 53     -0.82097584     -1.03108644
+ 71 54     -0.62810504     -0.81512338
+ 71 55     -1.14896023      2.37180734
+ 71 56     -1.13789546      0.48363787
+ 71 57     -0.18833013     -1.62783861
+ 71 58      0.26803452      0.04201078
+ 71 59      2.17650771     -1.18551242
+ 71 60     -1.25401831     -0.33868626
+ 71 61     -1.41129982     -2.99266481
+ 71 62      1.48192275      0.60392600
+ 71 63      2.53724885     -1.42436850
+ 71 64     -0.20813867      1.04264152
+ 71 65      1.11683965      0.68240249
+ 71 66     -1.44002032     -0.52003831
+ 71 67      0.46175754      0.09600389
+ 71 68      1.30661809     -0.55498773
+ 71 69     -1.84736013     -3.59764624
+ 71 70      0.13760062      0.57899362
+ 71 71     -0.22672495     -0.74470335
+ 72  0     -1.09831119
+ 72  1     -0.67522150     -0.11334855
+ 72  2      3.33763599     -1.37855363
+ 72  3     -1.27947772      0.22231680
+ 72  4     -1.59479189      0.32428524
+ 72  5      0.89448720     -0.88526702
+ 72  6      0.45063591      0.25585684
+ 72  7     -1.77632928     -0.95713431
+ 72  8      0.61985147     -0.17729935
+ 72  9      0.51449126      0.54350096
+ 72 10     -0.85227525     -1.94326878
+ 72 11      1.56864262     -1.26762831
+ 72 12      0.17400901      2.04747009
+ 72 13     -2.89767909      1.84742153
+ 72 14      1.53990412      0.06919425
+ 72 15      1.90649354      0.68799472
+ 72 16     -1.41562307     -0.02866464
+ 72 17     -1.04378390      0.26244134
+ 72 18      0.55409729      1.77575135
+ 72 19      1.46680915      0.09775456
+ 72 20      0.78584039     -0.68980628
+ 72 21      0.83139038     -0.68500978
+ 72 22      0.72107512     -2.17851543
+ 72 23     -2.31719780     -4.36673498
+ 72 24     -1.11682880      0.08159538
+ 72 25     -0.41015556      5.08982611
+ 72 26      1.52177238      0.91764611
+ 72 27      1.83909750     -3.44735980
+ 72 28      1.32977307     -0.66785032
+ 72 29     -3.20045590     -0.76689512
+ 72 30     -1.21037185     -1.43911946
+ 72 31      0.25225002      3.84864831
+ 72 32     -1.78730607      1.15452552
+ 72 33      1.06948316     -0.81508130
+ 72 34      1.22405708      0.07467382
+ 72 35      0.29293206      0.81789595
+ 72 36     -1.47799861      0.09995161
+ 72 37     -0.63363415      1.60521090
+ 72 38     -0.51419544      0.11313181
+ 72 39      2.50488949      0.27589563
+ 72 40      0.24348600      0.68163824
+ 72 41      0.04885023     -2.54598212
+ 72 42     -1.83032179      0.09056193
+ 72 43      1.05325675      2.55824661
+ 72 44     -1.77211130      2.87140107
+ 72 45      0.15403263     -1.70343721
+ 72 46      0.92242491     -1.30660284
+ 72 47      0.81373090      1.23767555
+ 72 48      0.53691804      0.68711692
+ 72 49      0.45559201     -0.21907796
+ 72 50     -0.64397442     -1.24922848
+ 72 51      1.13776958     -0.39746544
+ 72 52      1.60298729      0.20157686
+ 72 53     -0.16002831      2.92148089
+ 72 54     -0.44481346      2.98458219
+ 72 55      2.01980853      0.17511114
+ 72 56      1.76069546     -0.09764764
+ 72 57     -1.26601136     -0.39096016
+ 72 58      0.21833578      0.49378598
+ 72 59      0.25781107     -1.06666720
+ 72 60      0.49701309     -1.15812814
+ 72 61     -0.03224249      0.15942584
+ 72 62      2.01235414      2.10022783
+ 72 63     -0.10771989      2.36294103
+ 72 64     -0.04663805      1.90553546
+ 72 65      1.15905559      1.15753031
+ 72 66     -0.20878328      0.01362016
+ 72 67     -0.99603879     -1.56697345
+ 72 68     -0.32342783      0.64679277
+ 72 69      0.97584474      1.98461831
+ 72 70      0.13777968      2.14668846
+ 72 71      0.35441950      3.05867481
+ 72 72     -0.36757153      0.81256366
+ 73  0     -1.85034490
+ 73  1      2.10534835      1.10766280
+ 73  2      1.45321667      1.53874540
+ 73  3     -0.39918137     -0.13593578
+ 73  4      0.74382830     -2.52119136
+ 73  5     -1.07179928     -0.09057258
+ 73  6     -1.30278230      0.48400486
+ 73  7      1.69161296      0.67114651
+ 73  8      1.48478663      0.14239055
+ 73  9      0.28059995     -0.84622478
+ 73 10     -0.61869806     -1.15953469
+ 73 11     -2.97590137      0.26799384
+ 73 12     -2.44284391      1.69947791
+ 73 13      1.81770170      0.92465621
+ 73 14      2.21825576      0.06971947
+ 73 15     -1.17768431     -0.30412504
+ 73 16     -1.86918020     -2.60035896
+ 73 17      0.03299482      0.02380146
+ 73 18     -1.02322042      1.36415017
+ 73 19     -1.45714366      0.77863485
+ 73 20      1.92490137      0.64295596
+ 73 21      0.72581059     -0.18218972
+ 73 22     -0.18588009     -2.15170956
+ 73 23     -1.09840190      2.65251303
+ 73 24      0.73333615      4.44350958
+ 73 25      0.63729459     -0.59822232
+ 73 26      1.22826755     -2.36978221
+ 73 27     -0.59891850      0.54263967
+ 73 28     -3.81969023     -1.02523232
+ 73 29      0.02335064     -0.66199267
+ 73 30      0.04899829      1.56283331
+ 73 31     -0.29273760     -0.52164316
+ 73 32     -0.50755703     -1.55893278
+ 73 33      0.19144328     -0.51346415
+ 73 34      1.04960239      1.02410781
+ 73 35      0.53965646     -2.36278176
+ 73 36     -0.66902286     -1.46503961
+ 73 37     -1.20307529     -1.11896932
+ 73 38     -1.15616024      0.66006845
+ 73 39     -0.16050202     -1.60586143
+ 73 40      0.28657499     -0.01049258
+ 73 41      0.85525227      0.26803076
+ 73 42      0.28572047      3.32191014
+ 73 43     -0.85171264      1.76142991
+ 73 44      0.27398014     -3.58286929
+ 73 45      0.76778662     -0.79342258
+ 73 46     -0.09204800      0.59465879
+ 73 47     -1.63478267     -1.96735108
+ 73 48      2.10577202     -2.39009261
+ 73 49     -0.58953094      1.15260005
+ 73 50     -0.99302167      1.77692056
+ 73 51     -0.42478079     -1.18189847
+ 73 52     -1.73465705      0.66295826
+ 73 53     -0.68703312     -2.23259902
+ 73 54      2.20964384     -3.48520803
+ 73 55     -1.37745059     -2.83377910
+ 73 56     -3.23097610      0.36406365
+ 73 57     -0.22262521      1.95660532
+ 73 58     -1.27487826      1.25299668
+ 73 59      0.57661492      0.51954079
+ 73 60      0.71475089      1.16852582
+ 73 61      1.25132728      1.43753052
+ 73 62     -0.79733324     -2.88427591
+ 73 63     -1.55309057     -1.66367400
+ 73 64     -0.16087587      0.41083610
+ 73 65     -0.37743601      0.99506724
+ 73 66      1.10092032      1.04410481
+ 73 67     -0.28840700      0.60642266
+ 73 68     -1.26078677     -0.91163081
+ 73 69     -0.56621420     -1.30158901
+ 73 70      0.51789731     -3.98242188
+ 73 71     -2.49456501     -2.05214953
+ 73 72      1.19330919     -0.97446889
+ 73 73      1.26450586     -1.73187888
+ 74  0      1.64232171
+ 74  1      0.62941879      0.27794561
+ 74  2     -3.85302091     -0.24676594
+ 74  3      1.75720155     -0.46069032
+ 74  4      0.82745963      2.32960200
+ 74  5     -1.02255774      1.03847563
+ 74  6      1.72659457     -3.89115906
+ 74  7      1.74490070     -0.25124806
+ 74  8     -1.26839411      2.45370507
+ 74  9     -0.20801479      0.73875314
+ 74 10      1.25154352     -0.44984111
+ 74 11      0.56270546     -1.83703661
+ 74 12      1.27757311     -2.05496287
+ 74 13      0.22318290     -1.06287336
+ 74 14     -2.54142356     -0.49639556
+ 74 15     -0.85563272      0.11475980
+ 74 16      1.51303935      3.20245409
+ 74 17     -0.30775160      0.69700533
+ 74 18     -0.53596944     -2.20689631
+ 74 19      1.20294666     -0.86343414
+ 74 20     -1.09128463      0.58074933
+ 74 21     -2.13478565      1.99216473
+ 74 22      0.18266429      2.94335794
+ 74 23      3.11436510      0.74880230
+ 74 24     -0.39055276     -4.88628054
+ 74 25     -1.60604894     -3.47165585
+ 74 26     -1.04109275      1.15323412
+ 74 27     -0.13775259      2.06480217
+ 74 28      0.50325048     -0.67465860
+ 74 29      3.17396116     -0.79245484
+ 74 30      0.64979732     -0.43422166
+ 74 31     -0.96294010     -3.66507196
+ 74 32      1.57763255      1.73228955
+ 74 33     -1.67210555      2.34533691
+ 74 34      0.53722358     -0.92514056
+ 74 35      1.50234580      0.79948944
+ 74 36      1.91556597      1.91101432
+ 74 37      0.01863361      0.55616945
+ 74 38     -0.17419021     -0.74446464
+ 74 39     -2.36512518     -0.08531072
+ 74 40     -1.30051470     -0.71560979
+ 74 41      0.48666787      1.80270648
+ 74 42      3.00725555     -2.44096303
+ 74 43     -1.52595198     -3.00703621
+ 74 44     -0.34032479      0.73824859
+ 74 45     -2.09574962      3.24579334
+ 74 46     -0.77054191      1.30934441
+ 74 47      1.30570436     -0.98169667
+ 74 48     -0.98950231      0.16318956
+ 74 49     -1.79012108      1.47036409
+ 74 50      0.49072063     -1.66534209
+ 74 51      1.26827228      1.65680611
+ 74 52     -0.18274629     -1.24972951
+ 74 53      0.52442014     -0.05060569
+ 74 54     -0.09003352      0.40290323
+ 74 55     -1.18771827      2.29315448
+ 74 56      1.97651732      0.25549623
+ 74 57      1.21718311     -0.36666805
+ 74 58      0.94077343     -1.39207804
+ 74 59      0.98491156      1.61254406
+ 74 60     -1.79346251      0.71870923
+ 74 61     -0.05990601     -0.98440915
+ 74 62      0.75624949      0.33273190
+ 74 63      0.51181352     -0.96826780
+ 74 64      2.16064644      0.84774923
+ 74 65      0.84025675     -3.69076967
+ 74 66     -0.55289423     -0.87019765
+ 74 67      2.60237861      1.40948963
+ 74 68      0.40687743     -0.07279070
+ 74 69      0.52854192      1.11296427
+ 74 70     -0.73837191     -0.44073978
+ 74 71      0.20253488     -0.17383778
+ 74 72      0.22115338     -2.43229795
+ 74 73     -0.17806470     -0.02304514
+ 74 74      1.61510003     -0.15367496
+ 75  0     -0.68064576
+ 75  1     -3.56934857     -1.68048918
+ 75  2      0.77413112     -0.63392878
+ 75  3      1.22281635      0.66086173
+ 75  4      0.14664727      0.04557397
+ 75  5      1.56234300     -0.77583992
+ 75  6     -0.28280964      3.05309820
+ 75  7     -2.66718674      0.75653863
+ 75  8     -1.11952698     -1.10309160
+ 75  9     -0.25889853     -0.48675910
+ 75 10      1.75569272      2.70307231
+ 75 11      2.62237573      1.92393911
+ 75 12     -0.46748781     -1.68203330
+ 75 13     -1.17234921     -1.87706029
+ 75 14     -0.31712279      1.74082637
+ 75 15     -0.25453794      2.51350522
+ 75 16      0.84790909      0.60818368
+ 75 17      1.48593938     -1.69649267
+ 75 18      1.65649128     -0.63135070
+ 75 19     -1.94124293     -0.88637722
+ 75 20     -4.09607983     -0.61641425
+ 75 21      1.63918018     -0.19475876
+ 75 22      2.37396479      0.69052219
+ 75 23     -0.08239819     -2.52007580
+ 75 24     -0.37530094     -0.86191404
+ 75 25      0.52248591      2.59985876
+ 75 26     -0.74722135      0.69175607
+ 75 27      0.35189858     -1.28493786
+ 75 28      1.60949051      0.80199909
+ 75 29     -2.72475600      0.39786288
+ 75 30      0.08761266      0.62403476
+ 75 31     -0.86684686      1.65992856
+ 75 32     -0.94044280     -0.64383501
+ 75 33     -0.57563597     -1.54940498
+ 75 34     -2.25849724     -0.15529853
+ 75 35     -1.10318387      2.39514232
+ 75 36     -0.34192058      0.19617899
+ 75 37      2.04360533      0.11499332
+ 75 38     -0.07576269     -1.58623898
+ 75 39      0.39527071      0.31311235
+ 75 40     -1.17999411     -2.09913540
+ 75 41      0.87341779     -1.19437575
+ 75 42     -0.60848469      0.03920779
+ 75 43      1.35929143      1.09736073
+ 75 44      0.16904418      2.37690663
+ 75 45      0.54808050     -1.49701011
+ 75 46     -1.42476821     -1.76947868
+ 75 47      1.02357519      0.78799599
+ 75 48     -1.36493826      0.80713898
+ 75 49      3.02066398     -2.46719575
+ 75 50      0.50979298      0.46512511
+ 75 51     -1.68533731      2.33035302
+ 75 52     -1.63304996     -1.78575242
+ 75 53     -0.92007506      1.04938161
+ 75 54     -1.55556226      1.58646321
+ 75 55      0.91966349     -0.69827437
+ 75 56      1.89780152     -4.31812572
+ 75 57     -1.60197198     -2.95678639
+ 75 58     -1.80019832     -0.72815448
+ 75 59     -1.45371222     -0.88325387
+ 75 60      0.87797582      0.42365643
+ 75 61     -0.12156150      0.80337954
+ 75 62     -0.29810229      1.01764250
+ 75 63      0.97129154      0.01914850
+ 75 64     -0.08824995      0.57162327
+ 75 65     -1.74402118     -0.10647891
+ 75 66     -0.27442837      0.53115106
+ 75 67     -0.45078340      0.65094280
+ 75 68      0.98971945     -1.67128801
+ 75 69     -0.89382017      0.01302885
+ 75 70      0.64004982      3.98195934
+ 75 71      1.85129905      1.13765979
+ 75 72     -1.17362392     -0.69651884
+ 75 73      0.79166597     -0.48768246
+ 75 74      2.28354931      0.02310229
+ 75 75     -0.84719265      1.57707250
+ 76  0     -1.26275861
+ 76  1      3.10497189      0.31824526
+ 76  2      2.45624900      0.48808488
+ 76  3     -2.45332384     -0.13464099
+ 76  4     -0.68548769     -0.94684494
+ 76  5      0.53461778      1.05106819
+ 76  6     -1.64784443      1.56937778
+ 76  7      0.30695289     -1.28292596
+ 76  8      1.19324851     -1.65565026
+ 76  9     -0.16171846      0.96690291
+ 76 10     -1.62874818     -0.56116557
+ 76 11     -1.68810451      0.47709092
+ 76 12      0.35038996      1.47721446
+ 76 13      0.25006267      1.41401017
+ 76 14      0.04912002     -0.76045823
+ 76 15      0.74426740     -3.02823400
+ 76 16     -0.53207034     -1.59965694
+ 76 17     -1.96313620      1.71810770
+ 76 18     -1.62624955      1.48001039
+ 76 19      1.35496235      2.04131556
+ 76 20      4.94560909      0.32737726
+ 76 21      2.56204009     -2.50919342
+ 76 22     -1.82819176     -1.95537710
+ 76 23     -3.10478663      1.18235338
+ 76 24      0.08092850      4.11213541
+ 76 25      1.27043664      0.42307240
+ 76 26      0.47811916     -0.90061456
+ 76 27      0.84876323     -1.16948211
+ 76 28     -1.27850783     -2.19657898
+ 76 29     -1.94305623     -0.82582378
+ 76 30      0.41451213     -0.29195529
+ 76 31      3.18716764      0.50504059
+ 76 32      0.54178566     -0.78024918
+ 76 33      1.81182909      0.25900805
+ 76 34      1.35162127      0.96072543
+ 76 35      0.83246738     -3.42527628
+ 76 36     -0.60956615     -1.42985511
+ 76 37     -0.98391145      0.24473570
+ 76 38     -0.84098673      2.52114415
+ 76 39      1.54131866      0.73373485
+ 76 40      1.45101631      1.41609704
+ 76 41     -1.43111277     -1.08194017
+ 76 42     -1.71906757      1.16927385
+ 76 43     -0.11542102      0.80572903
+ 76 44      0.28183904     -2.21779060
+ 76 45      0.55684310     -1.22456527
+ 76 46      0.84852815     -0.83115512
+ 76 47     -2.41984010      0.47429371
+ 76 48      2.08209038      0.06221509
+ 76 49     -0.37497151     -0.36423698
+ 76 50     -0.37187698      1.73431218
+ 76 51     -0.36642841     -2.17284536
+ 76 52      1.35541117     -0.17709866
+ 76 53      0.75356978      0.60393971
+ 76 54      0.63399231     -1.88199306
+ 76 55      0.96373856     -1.15793836
+ 76 56     -1.97831476      2.11431217
+ 76 57     -0.53728426      0.71973538
+ 76 58      0.44096002     -0.51774883
+ 76 59      1.75442505      0.53405207
+ 76 60     -0.38245761     -0.71543211
+ 76 61      0.40112990      1.19852567
+ 76 62     -0.33873990     -0.27451554
+ 76 63      1.20839679      1.11771429
+ 76 64     -0.05213763     -1.73559010
+ 76 65      0.33614361     -1.40814126
+ 76 66      0.00763904     -0.14824732
+ 76 67     -0.20042858     -2.39892840
+ 76 68     -0.33624950     -0.22778633
+ 76 69     -0.51992202     -0.07285628
+ 76 70     -1.71606505     -1.76379025
+ 76 71     -1.71946228     -0.48360831
+ 76 72     -0.30940241     -1.20897770
+ 76 73     -0.90318805      0.02781450
+ 76 74      1.59653437     -3.64632821
+ 76 75     -0.41156486     -2.68594337
+ 76 76      1.32357991      0.16883984
+ 77  0      2.94598627
+ 77  1      0.87170833      2.00518250
+ 77  2     -2.53227258      0.74793983
+ 77  3      0.32901984      0.32408291
+ 77  4     -0.18634269     -0.57698506
+ 77  5     -0.97396702     -1.47923994
+ 77  6      2.24834514     -0.90905422
+ 77  7      1.05891633      1.92731416
+ 77  8     -0.06450592      0.13712312
+ 77  9      0.07078807     -1.96342027
+ 77 10     -1.56888294     -1.32564592
+ 77 11     -0.16830891     -0.68621635
+ 77 12      1.03574800      1.01058149
+ 77 13     -0.10053793     -0.22342269
+ 77 14      1.67097938     -1.47649574
+ 77 15      0.87183726      0.62231326
+ 77 16     -2.53423738      2.04998684
+ 77 17     -1.48421705      1.08916652
+ 77 18      1.44542086      1.19269645
+ 77 19      2.95205855      1.13493729
+ 77 20     -1.16140068     -1.19504917
+ 77 21     -3.48901749     -0.11576446
+ 77 22     -0.63587821      1.33416605
+ 77 23      1.86497903      2.40881658
+ 77 24      0.96564519     -1.53683293
+ 77 25      0.87626886     -3.36696434
+ 77 26      1.41125643     -0.65152454
+ 77 27     -1.59898019      0.48135701
+ 77 28     -0.90570891      0.03179037
+ 77 29      2.98448992      1.00809407
+ 77 30     -1.49768353     -0.52229035
+ 77 31     -2.17275047     -0.54159516
+ 77 32     -2.28133988      1.53312230
+ 77 33     -1.43358159     -0.59409273
+ 77 34      0.24933763     -0.59159160
+ 77 35     -2.14516640      0.95293653
+ 77 36     -0.61223918      1.28964293
+ 77 37     -1.06848085      0.12012210
+ 77 38      0.91138196      1.49088454
+ 77 39      0.43197453     -0.07678105
+ 77 40      0.67811322      0.22099313
+ 77 41     -0.93559325     -0.55359888
+ 77 42      0.66927439     -3.17646170
+ 77 43     -0.36670822      0.59695274
+ 77 44      0.18333730      0.59889311
+ 77 45      0.55101329      1.29719079
+ 77 46      2.41242790      1.03958869
+ 77 47     -0.08397809     -1.27658916
+ 77 48     -1.17704701     -1.61840820
+ 77 49     -1.57435608      1.07634747
+ 77 50      1.66397250     -1.29254520
+ 77 51      0.93151635      0.28376538
+ 77 52     -0.10271433      1.68046033
+ 77 53     -2.23157024     -1.34159994
+ 77 54     -0.01874395     -2.58423567
+ 77 55     -2.29659367      2.41259789
+ 77 56      0.21863776      3.18186665
+ 77 57      2.39055729     -0.72929245
+ 77 58      0.68019587     -1.26696241
+ 77 59     -1.80733204     -2.23232293
+ 77 60     -1.45914841     -3.94228482
+ 77 61     -0.12286522     -0.38109320
+ 77 62     -1.01983762     -1.24557006
+ 77 63      1.70903194     -0.34760535
+ 77 64      2.05795383      1.37711406
+ 77 65      0.11401523      1.38524139
+ 77 66      1.06587434      0.52716535
+ 77 67      0.98515111     -1.65511000
+ 77 68     -1.61550605      0.06986007
+ 77 69      0.67960441     -0.15632476
+ 77 70      2.53413248     -0.19611351
+ 77 71      1.58896184      1.03839850
+ 77 72      0.68890804      3.79090023
+ 77 73     -0.17847875      1.37094271
+ 77 74     -2.79176831      1.77241075
+ 77 75      0.39466363      1.43193364
+ 77 76      1.34759212     -0.45417875
+ 77 77      0.68012077      1.39332294
+ 78  0     -4.19386911
+ 78  1     -0.84436721     -0.52599186
+ 78  2      1.29361773     -0.75912893
+ 78  3      0.42905632     -0.39996800
+ 78  4      0.16010331      1.26193380
+ 78  5      0.38047299      1.15354657
+ 78  6     -0.10588146     -1.13520229
+ 78  7     -0.54417115     -1.68869686
+ 78  8     -0.35080552      1.91960740
+ 78  9     -0.06717521      0.94735759
+ 78 10      2.88123560      0.86142105
+ 78 11      2.06521440     -1.14247310
+ 78 12     -1.26785636     -0.22418407
+ 78 13      0.48070177      0.32363594
+ 78 14     -0.79666406      1.70776439
+ 78 15     -3.02501869      1.03358138
+ 78 16      2.32831621     -1.56755781
+ 78 17      2.15738988     -1.60907567
+ 78 18     -2.23851848     -0.92592233
+ 78 19     -4.71088028     -2.21915865
+ 78 20     -2.72928905      1.70653582
+ 78 21      2.08651972      2.77856946
+ 78 22      2.45098472      0.28736654
+ 78 23      1.07957113     -3.55215430
+ 78 24     -0.29999077     -2.57763624
+ 78 25     -3.01701164      2.00558448
+ 78 26     -2.39613867      1.34476483
+ 78 27      1.41676366      1.17102194
+ 78 28      1.72600996      1.35448432
+ 78 29      0.82030493     -2.27311921
+ 78 30      1.05914128     -1.32992649
+ 78 31      0.02882813     -1.68469453
+ 78 32      1.25579047     -0.87949735
+ 78 33      0.06837424      0.69549990
+ 78 34     -1.48247015      2.25775957
+ 78 35      1.97675931      0.83559960
+ 78 36      3.56688666     -2.33121514
+ 78 37      0.58207887     -1.71962643
+ 78 38     -1.93573725     -3.77654743
+ 78 39     -1.61145568     -0.44135195
+ 78 40     -2.15669870     -0.26127809
+ 78 41      0.74262512      2.49274278
+ 78 42      0.52021068     -0.34943891
+ 78 43      0.85422099     -0.54760575
+ 78 44     -0.71815217     -0.31669924
+ 78 45     -0.89373380     -0.86569780
+ 78 46     -3.04137874      0.68446428
+ 78 47      1.04108751      0.09527653
+ 78 48     -0.69246870     -0.21061085
+ 78 49      3.23361492     -0.04046053
+ 78 50     -0.95588672     -0.07348321
+ 78 51      0.52205426      2.37252569
+ 78 52      1.00451362     -1.08907521
+ 78 53      1.53269863      0.21382967
+ 78 54      1.85523987      1.19819880
+ 78 55      0.15721671      1.19969940
+ 78 56      1.73433578     -4.71722794
+ 78 57     -0.61666524     -1.20903683
+ 78 58     -1.10613561      0.66070610
+ 78 59      0.26866069     -1.34823906
+ 78 60      1.94106925      1.52008724
+ 78 61      0.48779199     -2.75263619
+ 78 62      0.45377144     -0.32899964
+ 78 63     -0.00642806     -0.94011217
+ 78 64     -1.45394075      0.32908773
+ 78 65      0.34846997     -0.73732603
+ 78 66     -1.50136840     -1.02375555
+ 78 67      0.85747093     -0.92337620
+ 78 68      2.86892891     -0.92183489
+ 78 69      1.71762943     -0.69275510
+ 78 70     -0.54026991     -0.55875516
+ 78 71     -4.00403690     -0.10198034
+ 78 72     -1.02359128     -0.37814254
+ 78 73      0.68150121     -1.81747591
+ 78 74      0.96085548     -1.42735934
+ 78 75      0.13678171      0.11411177
+ 78 76      0.64338225     -1.36851406
+ 78 77     -0.49826714      1.55589688
+ 78 78     -0.65959400      1.79393470
+ 79  0     -0.28008160
+ 79  1      1.24846637     -1.50044870
+ 79  2     -0.22833216      0.59677482
+ 79  3     -0.46597815     -0.12625395
+ 79  4      0.09712415     -0.04693927
+ 79  5     -0.58102536     -0.50996995
+ 79  6     -1.01591563     -0.50877577
+ 79  7      1.24262917      1.27980161
+ 79  8      0.32363504      0.84514189
+ 79  9     -0.97831964      0.40750077
+ 79 10     -0.04564167      0.02714778
+ 79 11     -1.60781932      1.68286085
+ 79 12      0.18803383     -0.81900597
+ 79 13     -0.23868380     -1.57047045
+ 79 14     -0.55579203     -0.82974833
+ 79 15      0.03137222      0.73126304
+ 79 16      0.95558357      1.22422779
+ 79 17     -0.47367883     -0.43235663
+ 79 18     -0.71980298     -0.24755424
+ 79 19      1.16615021      0.76526535
+ 79 20      2.22401524      0.00187296
+ 79 21      0.58942908     -3.61604857
+ 79 22     -1.10201967     -0.72507435
+ 79 23     -2.14976907      0.76722366
+ 79 24     -0.07281174      2.82707143
+ 79 25      2.06546187      1.43748546
+ 79 26      2.41614151     -0.49082029
+ 79 27      2.58772540     -0.21041773
+ 79 28     -1.43932652     -0.44201767
+ 79 29     -2.03229904     -0.85237050
+ 79 30      1.68951869      1.66634703
+ 79 31     -0.22168155      0.48637208
+ 79 32     -1.36797476      0.41620931
+ 79 33     -0.34613189     -0.51167458
+ 79 34      0.26390800     -1.66906595
+ 79 35     -0.34208301     -2.19273710
+ 79 36     -2.87343144      1.57597280
+ 79 37     -0.64011043      1.49636328
+ 79 38     -0.18312955      0.78579837
+ 79 39      2.07539964      1.13534570
+ 79 40      1.99467146      1.56257236
+ 79 41      1.67200267     -0.54720724
+ 79 42     -0.46202436      2.71329498
+ 79 43     -2.37330961     -0.96594894
+ 79 44     -0.39506435     -0.31041816
+ 79 45     -0.33004880     -0.26948169
+ 79 46      0.17545290     -0.05906211
+ 79 47      0.86614442      2.17041564
+ 79 48      2.29433012      1.83545399
+ 79 49     -2.87291861     -3.58146858
+ 79 50     -3.14978790     -0.25188279
+ 79 51     -1.50907612     -0.27999604
+ 79 52     -1.11200142      0.94735563
+ 79 53      0.79255146      1.13164532
+ 79 54     -1.58661032     -0.74490416
+ 79 55     -0.29808038     -3.46981883
+ 79 56     -1.28696382      1.98243058
+ 79 57     -1.96248841      4.69575787
+ 79 58      0.58995891      1.04679918
+ 79 59      0.74586803      1.88667107
+ 79 60     -2.19425702      1.56474030
+ 79 61     -2.95912099      1.36676061
+ 79 62      0.00100091     -0.45672080
+ 79 63     -1.91224670      0.49207148
+ 79 64      0.21764068     -2.20135307
+ 79 65      1.14751995     -0.19336696
+ 79 66      1.26765788      0.99199599
+ 79 67     -0.74127132      0.09911402
+ 79 68     -1.01592231      1.63040853
+ 79 69     -1.50010061     -0.02262521
+ 79 70     -3.64539027      2.07990336
+ 79 71      0.58558649      1.71006167
+ 79 72      1.49412930      1.29726851
+ 79 73     -1.59598708     -0.17681433
+ 79 74     -2.37722945      1.31332374
+ 79 75     -0.06294574      0.24463832
+ 79 76      2.12504601      0.72477186
+ 79 77     -0.89815140     -1.41907954
+ 79 78      0.47666213     -3.30784464
+ 79 79      1.17006350      0.87011129
+ 80  0      2.31376219
+ 80  1     -2.95789790      1.30657840
+ 80  2      0.13131458      0.17386580
+ 80  3      1.00460720     -0.69500113
+ 80  4     -0.86195725     -0.45759639
+ 80  5      0.88393962      0.82964003
+ 80  6      1.22604787      2.45819807
+ 80  7     -1.92514563     -1.58577883
+ 80  8     -0.77157760     -3.04686666
+ 80  9      0.36849692      0.86375809
+ 80 10     -1.09977221      0.36253858
+ 80 11      0.75079739     -0.60233456
+ 80 12      0.70383173     -2.11206961
+ 80 13     -0.98226786      1.00298071
+ 80 14      0.43886787      1.35216248
+ 80 15      1.43780696      0.30209601
+ 80 16     -3.12307215      0.28122845
+ 80 17     -0.82479048      1.45981038
+ 80 18      2.88590121      0.61360717
+ 80 19      1.40228486     -1.64662135
+ 80 20     -1.05216014     -2.02359104
+ 80 21     -1.36403298      2.35127068
+ 80 22      0.89773202      2.74166727
+ 80 23      0.79220057      2.26765537
+ 80 24     -0.41796258     -1.28323483
+ 80 25      0.55543453     -3.15862322
+ 80 26     -1.67749810      0.26347014
+ 80 27     -4.29573727      1.06347954
+ 80 28     -0.39595565     -0.55328411
+ 80 29      1.02800572      0.92694581
+ 80 30     -2.26901150      0.01693665
+ 80 31      1.08237624      0.02739619
+ 80 32      3.72860193     -1.16311944
+ 80 33      3.00964451     -2.07001352
+ 80 34      0.89718723     -0.53565311
+ 80 35     -1.99062359      1.16203713
+ 80 36      0.81375062      0.80177301
+ 80 37      1.37846649     -1.32370174
+ 80 38     -0.07238616      0.69453913
+ 80 39     -0.78787965     -1.41658854
+ 80 40      0.41784778     -2.64021301
+ 80 41     -1.74023640     -2.10646653
+ 80 42     -0.37842029     -0.66220379
+ 80 43     -0.06610652      0.81214416
+ 80 44      1.46470261     -0.15161595
+ 80 45      1.16662216     -0.12984300
+ 80 46      2.48156595     -2.42983866
+ 80 47     -0.62574369     -2.61296892
+ 80 48     -0.46035546     -0.06277318
+ 80 49     -0.15896781      2.13620496
+ 80 50      4.61458921      1.37152839
+ 80 51      1.53672612     -0.35407931
+ 80 52     -0.44062147     -0.03336489
+ 80 53      0.54488105     -0.58986527
+ 80 54      2.34174013      1.18967211
+ 80 55     -1.55410206      2.24229813
+ 80 56      1.12520874      0.61431330
+ 80 57      1.99930406     -2.47181582
+ 80 58      2.03094339     -3.56849527
+ 80 59      0.86016220     -4.01119328
+ 80 60     -0.52880901     -2.90912557
+ 80 61      1.22846639     -0.50236356
+ 80 62      1.60649300     -1.78361762
+ 80 63      1.49697948     -1.41015267
+ 80 64      1.74259734     -0.14768516
+ 80 65      0.54476112      1.03089976
+ 80 66      0.75277579     -1.82390928
+ 80 67     -1.25348711     -1.35656869
+ 80 68      1.79977810     -2.52491713
+ 80 69      2.76972938     -0.54159534
+ 80 70      1.09249413     -2.41365862
+ 80 71     -0.13088453     -2.32362247
+ 80 72     -0.48856640     -0.08887129
+ 80 73     -1.57479656      0.38184911
+ 80 74     -0.39828417     -0.39704037
+ 80 75     -2.46672869      1.26800358
+ 80 76      0.65423679     -0.76752400
+ 80 77      0.99937254      0.35440803
+ 80 78     -1.25501812      2.93081403
+ 80 79     -0.88764173     -0.20850953
+ 80 80     -0.17375660     -0.41470769
+ 81  0     -2.65164208
+ 81  1      1.34364879     -0.02851126
+ 81  2      0.88606203      0.14238457
+ 81  3     -0.23909745      1.51038527
+ 81  4      1.13215518      0.59863418
+ 81  5     -0.90721923     -0.77673411
+ 81  6     -0.86518228     -1.77201176
+ 81  7     -0.21451694     -0.29699156
+ 81  8      0.34679282      1.20452881
+ 81  9      2.37549353     -0.58343238
+ 81 10      1.42997122      0.20482317
+ 81 11     -0.07009471     -0.45317808
+ 81 12     -1.00629604      1.34290040
+ 81 13      1.78469539      0.56572843
+ 81 14     -0.87890565     -2.41322517
+ 81 15     -0.88960284     -3.09800196
+ 81 16     -0.41457668      0.42923415
+ 81 17     -0.78306478      1.36793888
+ 81 18     -1.48116887     -0.14158820
+ 81 19     -1.29389679      1.83580184
+ 81 20     -0.80635929      2.85933185
+ 81 21      1.21705687     -0.51066530
+ 81 22      0.56321323     -3.10383558
+ 81 23     -0.64597464     -1.35689783
+ 81 24     -1.03294909      0.28582945
+ 81 25     -1.62762165      1.10149419
+ 81 26      1.05231607      0.32397202
+ 81 27      2.61813664     -0.91367429
+ 81 28      0.75669581     -0.19725703
+ 81 29      2.31279206     -0.01718465
+ 81 30      1.16502798     -1.96741617
+ 81 31      0.59015220     -1.83280766
+ 81 32     -2.19414258      0.77732468
+ 81 33     -4.15592384      4.68686152
+ 81 34     -1.93238771      2.42539477
+ 81 35      2.06554461     -1.34053755
+ 81 36      0.14499082     -1.87702036
+ 81 37     -2.25180268      0.93298709
+ 81 38     -0.64770705     -0.37243119
+ 81 39      0.37166011     -0.26628792
+ 81 40     -0.82760155      0.26050332
+ 81 41      0.38305584      2.09974885
+ 81 42      1.76347876     -0.42028964
+ 81 43      2.96474457      2.20942307
+ 81 44     -1.90682375      0.85337490
+ 81 45     -3.11175489      2.03406405
+ 81 46     -2.71972489      1.19258344
+ 81 47     -1.00106645      1.63608932
+ 81 48     -2.18597531      0.09108079
+ 81 49      3.26909900      2.30426836
+ 81 50     -1.04361236     -1.64525199
+ 81 51     -2.26358724      0.06563503
+ 81 52     -2.36307955     -1.50073588
+ 81 53     -3.26341105      0.78539115
+ 81 54      0.15599898      0.85811168
+ 81 55      1.58929837      0.14850006
+ 81 56      2.13306808     -1.45295715
+ 81 57      0.40032461     -0.10575488
+ 81 58     -2.65437889      3.43161893
+ 81 59     -1.33468592      2.96175480
+ 81 60      1.62373149      0.38762137
+ 81 61     -0.03172717      0.12914822
+ 81 62     -4.43046808      0.16538067
+ 81 63     -1.64640427      1.22295892
+ 81 64      1.51966178      1.39723563
+ 81 65      0.61971247     -1.88781905
+ 81 66      0.07638930     -0.19149505
+ 81 67      0.33465040      4.35514259
+ 81 68     -0.36518461      1.77404273
+ 81 69      1.63498724     -0.92132658
+ 81 70     -0.94774294      0.61506897
+ 81 71      0.23239362      0.53137577
+ 81 72     -0.06965286      0.10562923
+ 81 73     -1.05916238      2.09929752
+ 81 74      1.12050438      0.16947776
+ 81 75      0.91789800     -1.68863153
+ 81 76     -2.89972925     -1.85128224
+ 81 77     -1.86504388     -0.29766676
+ 81 78      1.98814273     -0.93084937
+ 81 79      1.00934088      1.24528944
+ 81 80     -0.48901954      1.42818105
+ 81 81      1.26914382     -1.02190542
+ 82  0      0.05247824
+ 82  1      3.41293311      0.33990225
+ 82  2     -1.11487794      0.67518008
+ 82  3     -1.23636985     -1.31521642
+ 82  4     -0.38350618     -2.17353821
+ 82  5     -1.04852033     -0.69447500
+ 82  6      1.45832515      0.67804772
+ 82  7      2.74920511      3.31698442
+ 82  8     -0.02933276     -0.53621835
+ 82  9     -1.71069527     -0.57501531
+ 82 10     -0.70408744      0.90733641
+ 82 11     -0.29315671      0.09614079
+ 82 12      1.40695608      1.03020370
+ 82 13     -0.24577214     -1.65368223
+ 82 14      0.34103942     -0.79360884
+ 82 15      0.84686363      1.05199409
+ 82 16      2.36957717      0.82735515
+ 82 17     -0.85927552     -3.31325364
+ 82 18     -2.24812460      0.79801011
+ 82 19      0.12009255      0.98719758
+ 82 20      0.69645911     -3.05243397
+ 82 21      0.75446558     -4.10885811
+ 82 22      0.08660771      1.15138471
+ 82 23     -0.18604074      0.60952812
+ 82 24      1.36633480      0.38328007
+ 82 25      0.34708339      0.77892488
+ 82 26      0.23509863     -0.92235720
+ 82 27     -0.16809578      0.17971814
+ 82 28     -2.25204206      1.75234139
+ 82 29     -0.18721409      0.18326212
+ 82 30     -0.02162091      0.37644038
+ 82 31     -2.33222413     -1.05997586
+ 82 32     -1.44776261      1.58335483
+ 82 33      3.10057235     -1.30916536
+ 82 34      3.62852335     -3.19631720
+ 82 35      1.41931725     -1.92993140
+ 82 36     -0.80382800     -0.25407055
+ 82 37      1.35452199      0.06599220
+ 82 38      1.07879961     -1.42737281
+ 82 39     -0.90126097     -1.37012923
+ 82 40     -1.93970573      0.88574368
+ 82 41      2.05858350      0.63604909
+ 82 42      0.08785439     -0.07602132
+ 82 43     -0.88983423     -2.43055201
+ 82 44     -1.59408343     -1.58355343
+ 82 45     -0.01036792     -2.62335706
+ 82 46      1.52409494      0.68517369
+ 82 47      1.85473037     -1.50348353
+ 82 48      2.32158089     -1.68620384
+ 82 49     -0.63498896     -3.42597556
+ 82 50     -0.86438179      0.73069185
+ 82 51      2.74129605      0.06788293
+ 82 52      2.69187045      0.50184214
+ 82 53      1.46674693      0.29159796
+ 82 54     -0.22348183     -1.10127068
+ 82 55      0.50957173      1.25701976
+ 82 56     -3.86611366      0.25335464
+ 82 57     -4.74723577      1.42545807
+ 82 58     -0.12894243      1.02528143
+ 82 59     -0.17571810      0.12814733
+ 82 60      0.73484147     -2.55914450
+ 82 61     -0.63930666     -2.98310518
+ 82 62     -0.48131576      0.56730622
+ 82 63      0.68502545     -0.33056426
+ 82 64     -0.39813226     -0.80986464
+ 82 65     -0.70599610      0.46553296
+ 82 66      1.20151079      1.46170235
+ 82 67      2.89586687     -2.38698077
+ 82 68      1.88609052     -2.92983437
+ 82 69     -1.66188860     -0.26616699
+ 82 70      1.47628391      0.44816163
+ 82 71      0.26601946     -0.01190089
+ 82 72     -1.02891648     -1.95582104
+ 82 73      0.00685063     -1.00836301
+ 82 74     -1.87856746      0.23094349
+ 82 75     -1.50888669      0.74138916
+ 82 76      0.15996374     -0.71813518
+ 82 77     -0.83244902     -1.70831478
+ 82 78      1.50630069     -1.86612952
+ 82 79      0.41931725     -0.10038478
+ 82 80     -0.61598754      0.28873464
+ 82 81     -5.82442284     -2.50419950
+ 82 82     -0.58772326     -0.21661074
+ 83  0      0.33594510
+ 83  1     -3.09098101      0.02682680
+ 83  2      0.63768035     -1.40360308
+ 83  3      0.70591193      0.78602630
+ 83  4     -0.77066916      0.32640663
+ 83  5      3.03914714      1.07443964
+ 83  6     -0.31213617      1.82450593
+ 83  7     -1.84338713     -2.77815032
+ 83  8      1.23785031     -0.42666537
+ 83  9     -1.37557054      0.76651442
+ 83 10     -1.21380603     -0.54735714
+ 83 11      0.10235488      0.60805380
+ 83 12     -1.34528494      0.45503899
+ 83 13     -0.32040218     -0.29374328
+ 83 14      1.58536470      1.20034146
+ 83 15     -0.62915856      0.78880107
+ 83 16     -1.92561793     -1.93601692
+ 83 17      0.04336318      0.67872256
+ 83 18      2.09150481      0.70542669
+ 83 19     -0.54621106     -1.63964033
+ 83 20      0.08348112      0.03409272
+ 83 21      0.18519120      4.54508829
+ 83 22      0.04083165      2.30858159
+ 83 23      0.47455645     -1.42895460
+ 83 24     -0.28126535     -0.84371758
+ 83 25     -0.27388379      0.53901041
+ 83 26     -1.38231313      0.33678606
+ 83 27      0.10820902      0.83573413
+ 83 28      2.44074345     -0.76753098
+ 83 29     -2.06325603     -1.43068886
+ 83 30      0.77470374      1.47828197
+ 83 31      2.92644262      1.16050911
+ 83 32      2.83568454     -1.87042570
+ 83 33      0.44502527     -2.92140269
+ 83 34     -2.91553020      2.61368322
+ 83 35     -4.01446629      2.44571090
+ 83 36      1.28045809     -0.73452753
+ 83 37      0.99801004     -0.41533223
+ 83 38     -1.08123481      2.88701534
+ 83 39      0.60017908      0.80992550
+ 83 40      2.53754854     -1.00695968
+ 83 41     -1.32643485     -2.27536893
+ 83 42     -1.15259743     -1.42740095
+ 83 43     -0.94423091     -0.57988417
+ 83 44      3.00536942      2.38637090
+ 83 45      2.01693273      1.48165298
+ 83 46      0.02592734     -0.93974841
+ 83 47     -2.35002685     -0.40509182
+ 83 48     -1.83946180      2.69711280
+ 83 49     -2.75132513      2.33520007
+ 83 50      0.41103902      1.76679885
+ 83 51     -1.78434825     -1.35086429
+ 83 52     -2.66908550      1.07788980
+ 83 53     -0.39471334      0.35780126
+ 83 54     -0.45936924      0.61121821
+ 83 55     -1.67651510      1.07727063
+ 83 56      1.23713636      0.17708363
+ 83 57      3.30688858     -0.16687922
+ 83 58      2.35755730     -0.15665786
+ 83 59      0.52889937     -1.93173182
+ 83 60     -2.32063556      1.11564624
+ 83 61      0.42648116      0.95589507
+ 83 62      2.13910651     -1.43123114
+ 83 63     -0.34623995     -0.37465751
+ 83 64     -2.35976219      0.06234490
+ 83 65     -0.29455718      1.78817356
+ 83 66      1.11089694     -1.09150410
+ 83 67     -0.63542789     -0.32750195
+ 83 68      0.42399400      2.58476114
+ 83 69     -0.45589486      1.53601122
+ 83 70      0.35738680     -0.90724957
+ 83 71      1.17600536     -0.06128928
+ 83 72      0.47315958      0.66837806
+ 83 73     -0.50999397      0.01883458
+ 83 74      1.27467561     -1.74811649
+ 83 75      1.37514806     -0.22845982
+ 83 76      0.30676576     -0.45013824
+ 83 77      3.35453224      0.08180980
+ 83 78      0.85170734     -0.93597692
+ 83 79     -0.93509042      1.62174654
+ 83 80     -0.73833263      3.51391983
+ 83 81      3.24784231      0.94463122
+ 83 82      0.50414246     -1.89221787
+ 83 83     -2.50112104      0.72632170
+ 84  0     -2.96095777
+ 84  1      0.72283453     -0.14871486
+ 84  2      1.85744405      0.50688785
+ 84  3      0.80348086      1.94914150
+ 84  4     -0.52736485      2.65983438
+ 84  5     -1.22292733      0.23701018
+ 84  6     -0.72654051     -3.43429971
+ 84  7      0.05161618     -2.14239979
+ 84  8     -0.44590867      2.71389842
+ 84  9     -0.02751056      0.31835702
+ 84 10      2.02641535     -1.28089058
+ 84 11      1.15958202     -0.02318005
+ 84 12      0.67081463     -1.78510797
+ 84 13      0.59348506     -0.58510149
+ 84 14     -1.69013965     -0.06791285
+ 84 15     -1.04856992      0.01445318
+ 84 16     -0.37735909      1.29951441
+ 84 17      1.73325932      1.68535650
+ 84 18     -0.02998192     -0.99364650
+ 84 19     -1.62467730      0.44705981
+ 84 20     -0.36193591      1.45636976
+ 84 21      0.34477463     -1.14148283
+ 84 22     -0.04914784     -1.90888608
+ 84 23      1.10511708      1.55407262
+ 84 24      1.21549094      1.05215740
+ 84 25     -0.77689910     -1.45281100
+ 84 26     -0.19069622      0.33655870
+ 84 27     -0.28378353      0.78106421
+ 84 28     -1.76966286     -1.25358307
+ 84 29      0.42379057     -0.41682261
+ 84 30     -0.34637049     -0.18270762
+ 84 31     -1.28622639      0.20755552
+ 84 32     -2.00691104     -0.53712136
+ 84 33     -0.75102204      3.03129625
+ 84 34      0.80660665      1.08635235
+ 84 35      2.95946550     -2.11084199
+ 84 36      1.62610495     -1.12468314
+ 84 37     -0.30757749      0.37637514
+ 84 38      0.00477902      0.09630203
+ 84 39      0.32775462      0.83313620
+ 84 40     -0.53555369     -1.45732558
+ 84 41     -3.25886178     -0.38089392
+ 84 42     -0.08038701      0.33456030
+ 84 43      0.99035001      3.28530049
+ 84 44      0.43411773     -0.29187486
+ 84 45      0.22159982     -0.02535508
+ 84 46     -1.31757104     -1.74653411
+ 84 47     -0.80048239      0.79411256
+ 84 48     -0.02441579     -2.61524820
+ 84 49      2.25718641     -0.73503262
+ 84 50      0.97543848     -3.29879022
+ 84 51      0.90032160      1.39463651
+ 84 52      2.02248144      0.37184814
+ 84 53      0.59833378     -1.01178443
+ 84 54      0.75744420     -1.57525146
+ 84 55     -0.20950320      0.62679994
+ 84 56      2.44846797      1.00538874
+ 84 57     -0.76352197     -1.28736269
+ 84 58     -2.75151396     -2.75346923
+ 84 59     -2.12277365     -0.09461938
+ 84 60     -0.81622362      0.14175682
+ 84 61     -0.46277028      0.78599012
+ 84 62     -1.08897364     -1.89062786
+ 84 63     -0.21010235      1.09251773
+ 84 64     -0.86763906     -0.21319905
+ 84 65     -0.65511125     -1.34704447
+ 84 66     -2.56986594      2.13043618
+ 84 67     -1.03214681      1.47570109
+ 84 68      2.33039784     -0.04179949
+ 84 69      2.16297007      0.25484154
+ 84 70      2.46664119      0.61342824
+ 84 71      1.49251330     -1.82327282
+ 84 72     -1.50703311      0.15465344
+ 84 73     -1.10661471     -1.14611602
+ 84 74     -1.51254046     -2.08608174
+ 84 75     -0.78797656      0.43589863
+ 84 76      0.19179250      3.69934773
+ 84 77     -3.23623919      2.57215667
+ 84 78     -2.65641022      1.09476626
+ 84 79     -0.74286819     -1.57964575
+ 84 80      1.97212040     -1.08338153
+ 84 81     -2.84669828     -0.36945117
+ 84 82      1.46480882      0.20011592
+ 84 83      1.21959555     -1.05128276
+ 84 84     -0.58834088      1.57473826
+ 85  0      1.06015766
+ 85  1      0.45154712     -0.04900832
+ 85  2     -3.26368308      1.01667774
+ 85  3     -1.11756146     -1.68303859
+ 85  4      0.41158932     -0.11577287
+ 85  5     -1.11188209     -1.60985827
+ 85  6      1.35774374      0.91869396
+ 85  7      0.48890135      4.29551220
+ 85  8     -1.45851004     -0.92618334
+ 85  9      1.27199149     -0.63296521
+ 85 10      2.02628279      0.36223742
+ 85 11     -0.81169099      0.13480680
+ 85 12     -0.26513654     -0.99618417
+ 85 13      0.27916473     -0.28819075
+ 85 14      1.19286335      0.70149106
+ 85 15      0.43121570     -0.74664104
+ 85 16     -0.15077978      0.81061405
+ 85 17     -2.52225018     -1.36779487
+ 85 18     -2.26470685      1.03210485
+ 85 19      1.74218273      0.25255919
+ 85 20     -0.09960607     -1.31554914
+ 85 21      0.46245125     -0.98677218
+ 85 22     -0.23848392      2.19372749
+ 85 23     -0.76481944      0.85809273
+ 85 24     -1.22905886     -0.67178208
+ 85 25     -1.02550578     -0.24287340
+ 85 26      1.87282538      0.65180689
+ 85 27      1.02102780      0.34867188
+ 85 28      0.12880638      0.22830482
+ 85 29      2.79874969     -0.20861496
+ 85 30     -0.99352849     -0.77919942
+ 85 31      0.76417559     -1.71327102
+ 85 32      2.98742366     -0.06833615
+ 85 33      1.60970557     -0.02469619
+ 85 34     -0.43858019     -1.38369381
+ 85 35      0.75263917      2.13648629
+ 85 36     -1.52785814      2.83797884
+ 85 37     -2.01132727     -2.69151735
+ 85 38     -1.45839977     -4.23481607
+ 85 39      0.09751078      0.53411466
+ 85 40     -0.05363574      1.79406548
+ 85 41      4.59881401      1.79226410
+ 85 42      1.38296437      0.18866679
+ 85 43      0.82947648     -2.56949925
+ 85 44     -2.94696403     -3.25781322
+ 85 45     -1.24820673     -1.42148638
+ 85 46     -0.27620664      3.85765123
+ 85 47      2.27657199      0.62464690
+ 85 48      1.99983394      0.33602849
+ 85 49      1.20199001     -1.34857833
+ 85 50     -1.35769570      0.64866447
+ 85 51     -0.20007585     -0.55695111
+ 85 52     -1.01189613     -1.17367911
+ 85 53     -1.79453886     -0.70280600
+ 85 54     -1.25567317      0.18560274
+ 85 55     -0.28290820      0.99529856
+ 85 56     -0.98644865      0.05012959
+ 85 57      0.28229713      1.22933400
+ 85 58      1.21768796      0.85257930
+ 85 59      1.42271113      2.11112857
+ 85 60      2.70347762     -1.54878354
+ 85 61     -0.45672831     -1.59723961
+ 85 62      0.62704319      0.81849235
+ 85 63     -0.24210095     -1.94671416
+ 85 64      1.05436254      0.14112546
+ 85 65     -0.36084497      0.54260916
+ 85 66     -0.18193586     -0.17980963
+ 85 67      0.75390285     -2.00665617
+ 85 68     -1.67240393      0.54397160
+ 85 69     -2.12921190      0.54212528
+ 85 70     -1.71780932     -0.95930463
+ 85 71     -2.41278958     -0.25683877
+ 85 72      2.12941670     -0.02490371
+ 85 73     -0.13182606      2.49312949
+ 85 74      1.58604133      1.43446398
+ 85 75      1.30563283     -1.79200661
+ 85 76      1.42235029     -4.06792688
+ 85 77      0.24922220     -2.05957007
+ 85 78      1.92964649     -0.15175600
+ 85 79      2.63360739      0.70007598
+ 85 80     -0.38465583     -1.30890942
+ 85 81     -2.95080185      0.52901894
+ 85 82     -2.01980925      1.70507884
+ 85 83      0.55692238     -1.53797436
+ 85 84     -0.38715613     -0.13735612
+ 85 85     -0.52241254     -0.76206297
+ 86  0     -0.71351200
+ 86  1     -1.81209660     -0.22140883
+ 86  2      1.52123880     -0.52334315
+ 86  3      0.86784148     -1.39969254
+ 86  4      0.99991256     -1.57367241
+ 86  5     -0.71287143      1.52847493
+ 86  6     -0.68446541      2.19831586
+ 86  7     -0.04800018     -1.90930128
+ 86  8      1.44793522     -2.18268704
+ 86  9      0.65567249      1.81768000
+ 86 10     -3.28035021      1.86781085
+ 86 11     -2.43257785     -0.93713784
+ 86 12      0.58978099      2.21114039
+ 86 13      0.84531397      2.04946685
+ 86 14     -0.83937067     -1.58417058
+ 86 15     -0.49974665     -1.91141224
+ 86 16      0.07039669     -0.45183825
+ 86 17     -0.15977044     -0.20131196
+ 86 18      1.88556695     -0.85593116
+ 86 19     -1.03504968     -1.09443569
+ 86 20     -1.65558898      0.65587163
+ 86 21     -0.14543699      1.31306851
+ 86 22      1.53479874     -0.01374384
+ 86 23     -0.53707975     -2.45120049
+ 86 24     -0.33800474      0.61860347
+ 86 25      2.02675581      1.19293499
+ 86 26      0.20573336     -0.59300774
+ 86 27     -2.02031350     -0.22483468
+ 86 28      0.14377654      2.33477163
+ 86 29     -1.45396113      2.10490131
+ 86 30      1.65779293     -0.02527163
+ 86 31      0.37105027     -0.91076416
+ 86 32     -2.02560520      1.33842540
+ 86 33     -2.28708792      0.07570524
+ 86 34      0.02246656      1.66437042
+ 86 35      0.52708411     -0.45472702
+ 86 36      1.32411110     -3.26947999
+ 86 37      1.04562175     -1.33846772
+ 86 38      1.76016915      0.88286340
+ 86 39      0.53583401     -0.38793808
+ 86 40     -0.39335656      0.24811268
+ 86 41     -0.82088470     -1.48832011
+ 86 42     -1.46354651     -0.82844943
+ 86 43     -1.75735545      0.16298074
+ 86 44      0.61285818      1.33549070
+ 86 45      0.14033720      0.47078916
+ 86 46      2.03097868     -0.79101485
+ 86 47      0.53029907     -1.82638431
+ 86 48     -1.01049745      1.49735892
+ 86 49     -2.59353161     -0.76844686
+ 86 50      0.49409264      0.84970897
+ 86 51      0.02424981      0.12271923
+ 86 52      1.47506249     -0.03336551
+ 86 53      2.90317488      1.80863500
+ 86 54      0.37400231      1.78877020
+ 86 55     -0.31765357     -1.88126314
+ 86 56     -0.20551860     -1.55681801
+ 86 57     -1.80174768      1.29470563
+ 86 58      0.48391563      1.51167297
+ 86 59      0.16516089     -2.23054290
+ 86 60     -0.66979843     -1.90624535
+ 86 61     -0.93339682     -1.64851809
+ 86 62     -0.65467995     -1.31593525
+ 86 63      0.28350362      0.93746603
+ 86 64     -0.65691465      0.44230738
+ 86 65     -0.16278188      1.34450436
+ 86 66      0.11548536     -1.21731794
+ 86 67     -1.63513279      0.19268885
+ 86 68      1.97131491      0.35309279
+ 86 69      1.54138982     -0.79413193
+ 86 70     -0.03083755      0.59852976
+ 86 71     -0.61558372      0.91431600
+ 86 72      1.57250774      1.96066129
+ 86 73      1.76303566     -1.08423066
+ 86 74     -0.57519090     -3.95979357
+ 86 75     -0.58947384     -0.20021057
+ 86 76      2.00837994      1.56824899
+ 86 77     -1.42516792      0.25154081
+ 86 78     -1.38952184      0.36669770
+ 86 79     -2.64804912     -0.25946638
+ 86 80     -0.88699651     -0.23466094
+ 86 81      2.96154046     -1.24783003
+ 86 82      3.21519494      2.25247526
+ 86 83      0.65713871      1.11147809
+ 86 84      3.42998934      1.44658685
+ 86 85      4.66426373     -0.73794675
+ 86 86      1.22601271      2.91303635
+ 87  0     -0.19333524
+ 87  1      3.19739938     -0.39770010
+ 87  2      1.43853390     -0.51789361
+ 87  3     -0.15736878      3.15355825
+ 87  4     -0.97608662      0.29037592
+ 87  5      0.09801743     -1.58119500
+ 87  6     -0.80736893     -2.76471686
+ 87  7     -0.88628364      1.11953151
+ 87  8      1.21508658      2.74364853
+ 87  9     -0.30236849     -1.64503300
+ 87 10     -2.24486136     -2.16867971
+ 87 11      0.76972544      1.19795322
+ 87 12      0.93220699      2.27284336
+ 87 13     -1.05402696     -1.94093764
+ 87 14      1.19672775     -2.52113676
+ 87 15      1.76368380      1.91136813
+ 87 16     -0.25549522     -0.24003834
+ 87 17     -0.91975886     -1.75792730
+ 87 18     -1.11731219     -0.22086678
+ 87 19     -1.88457775      2.05819917
+ 87 20      1.68876743      1.96462560
+ 87 21      2.27214813     -1.24773622
+ 87 22      1.49628830     -0.21311654
+ 87 23     -0.47884265      1.96506727
+ 87 24     -0.88895714      0.31798428
+ 87 25     -1.96022117      0.57041317
+ 87 26     -2.72702599      1.10620797
+ 87 27      0.14868835      0.70628065
+ 87 28      1.19050336     -1.74261212
+ 87 29      0.06931303     -1.62534046
+ 87 30     -1.29807806     -1.44714808
+ 87 31     -2.13310361      1.14699268
+ 87 32     -0.64183998      2.16013074
+ 87 33      3.62637234      0.66167146
+ 87 34      2.05091691     -2.46469665
+ 87 35     -2.64115739     -2.02552342
+ 87 36     -0.89906532      1.82847857
+ 87 37      2.67837191      6.69837427
+ 87 38      0.90484738      1.49051154
+ 87 39     -0.70326000     -2.98677349
+ 87 40      1.07703555     -2.00826764
+ 87 41     -1.38116682      0.67410868
+ 87 42      0.85399544      0.91478753
+ 87 43      1.45163071      2.15652943
+ 87 44      2.44822359      1.18728101
+ 87 45      1.02486086     -0.05021222
+ 87 46      0.12506793     -3.41121864
+ 87 47     -2.68163943     -0.35606185
+ 87 48     -0.85429490     -1.42652023
+ 87 49      1.45708513      3.28431511
+ 87 50      3.63280916      0.22401856
+ 87 51      1.84111094      0.58007681
+ 87 52     -0.15172027     -1.07984889
+ 87 53     -1.31775081     -1.05916786
+ 87 54      0.49156392     -2.36495471
+ 87 55     -0.25679106     -1.38131809
+ 87 56     -0.23793814      0.98062021
+ 87 57     -1.15231705      0.04418723
+ 87 58      2.57557821     -1.87741852
+ 87 59      1.40421057     -2.54062295
+ 87 60     -0.65600115      1.20493472
+ 87 61      0.63649249      2.75738120
+ 87 62      0.80598831     -0.87698728
+ 87 63     -0.08842202     -0.24449459
+ 87 64      0.60023183     -2.11499906
+ 87 65     -0.73223907      0.77902579
+ 87 66     -0.85186672      1.81259453
+ 87 67     -2.12650585      2.45391679
+ 87 68     -1.84808552     -0.53862482
+ 87 69     -1.34868419      1.09781957
+ 87 70      0.05526886      0.78494334
+ 87 71     -0.01724596     -0.23831418
+ 87 72     -1.35735071     -1.19674158
+ 87 73     -2.53126645      0.19794954
+ 87 74     -1.51116872      2.03458309
+ 87 75     -1.48397374      3.41814804
+ 87 76     -1.33348966      0.71876663
+ 87 77      0.79347157      0.89862889
+ 87 78      1.70153117     -0.01475757
+ 87 79     -0.50817788      0.04794070
+ 87 80      1.22155631      0.35544160
+ 87 81     -3.54421020      0.68695050
+ 87 82     -2.49951982     -0.26925769
+ 87 83     -1.37829697     -0.00939186
+ 87 84     -0.31064588     -3.59790874
+ 87 85     -3.27431035     -0.18840197
+ 87 86      0.44198573      1.27783728
+ 87 87      1.50819814     -0.48548448
+ 88  0      0.12452513
+ 88  1     -1.33926141      0.10754269
+ 88  2     -0.86116076      0.09549552
+ 88  3     -0.17425442      0.94632763
+ 88  4     -0.59638786      0.40339056
+ 88  5      1.66334224     -0.47505996
+ 88  6      0.47336364      2.44968677
+ 88  7      1.00967574      0.68860841
+ 88  8     -0.42223749     -2.24827147
+ 88  9     -1.59049380     -1.48261213
+ 88 10      2.13339853      0.85785824
+ 88 11      1.91174877      0.99465221
+ 88 12      0.07968529     -3.61429119
+ 88 13      1.42020535     -1.54036629
+ 88 14      0.87037098      3.34220314
+ 88 15     -2.18207288      0.07229974
+ 88 16     -1.32010150     -0.66256517
+ 88 17      0.86204106      0.59431577
+ 88 18     -0.11689419      1.10951650
+ 88 19      2.73301578     -1.44555116
+ 88 20      0.53015935     -2.39709735
+ 88 21     -1.14013135     -0.71197909
+ 88 22     -2.35350609      0.86243445
+ 88 23     -0.09779917     -0.11094293
+ 88 24      1.52992964     -0.72452986
+ 88 25     -0.29407912     -1.22815347
+ 88 26      2.62356973     -2.22066784
+ 88 27      2.24528265     -2.10380864
+ 88 28     -1.91353762     -1.31276262
+ 88 29     -0.09022322     -0.21694966
+ 88 30     -1.60302472      2.90465808
+ 88 31      0.75001711      0.37402797
+ 88 32      1.42115903     -2.42006373
+ 88 33     -0.73617488     -0.73800445
+ 88 34     -2.12834549      0.85281050
+ 88 35      0.51017851      2.44624162
+ 88 36      1.98550308     -0.03798651
+ 88 37      0.65142983     -2.30726624
+ 88 38     -2.51077580     -2.80262733
+ 88 39      0.36591348      0.22647828
+ 88 40     -0.51074100      1.05720890
+ 88 41     -0.48817754      1.51836288
+ 88 42     -0.54871088     -0.36913010
+ 88 43     -0.03083250     -1.43419755
+ 88 44     -3.45600057      0.34810764
+ 88 45     -0.40527838     -0.21019551
+ 88 46     -1.55547392      0.68097645
+ 88 47      1.77478027      1.01315320
+ 88 48      2.34039187      1.06714785
+ 88 49      2.44777226     -0.83046234
+ 88 50     -2.94368505     -1.35101485
+ 88 51     -2.93978286     -1.21097112
+ 88 52     -1.75279927      2.86866236
+ 88 53     -0.53680801      0.66632229
+ 88 54      1.25033092      0.57251132
+ 88 55      0.74165559      2.05928516
+ 88 56      1.52881515      0.89667034
+ 88 57      2.32675552     -0.46964106
+ 88 58     -1.27856672      0.54807955
+ 88 59     -2.80958676      3.63223624
+ 88 60      2.10051727     -0.27168843
+ 88 61      2.34598041     -1.13094306
+ 88 62      3.22763920      0.38425705
+ 88 63     -0.71020579      1.64911520
+ 88 64      0.01796308      0.80476564
+ 88 65      0.75249827     -2.97831678
+ 88 66     -0.12486229     -0.68903410
+ 88 67      0.13933565     -1.09569335
+ 88 68     -0.33774468     -0.89725453
+ 88 69      2.45681477     -0.00534101
+ 88 70      1.71135938     -0.71821755
+ 88 71      2.04406476     -2.90177608
+ 88 72      0.45437098      1.49883008
+ 88 73      0.10866809      2.44825554
+ 88 74     -0.37063006      1.45292902
+ 88 75      2.74919367     -1.68981421
+ 88 76      2.94314694     -3.50628591
+ 88 77      1.83586872     -2.22275686
+ 88 78     -1.35486412      0.01280472
+ 88 79     -2.24330020      1.36748147
+ 88 80     -2.54155397     -0.40249830
+ 88 81     -0.69262511     -0.70613503
+ 88 82     -0.41174892     -1.00146699
+ 88 83      2.58497286      1.71157551
+ 88 84      0.33414239      1.30573189
+ 88 85      3.70916986     -0.79237044
+ 88 86     -0.29217899      1.29495299
+ 88 87     -1.32475817     -3.43958879
+ 88 88     -0.59468567     -1.32971203
+ 89  0     -1.61989617
+ 89  1     -0.28653228      0.54171926
+ 89  2      0.93531477     -0.33000892
+ 89  3     -1.24241328     -2.13277245
+ 89  4      0.18384914      1.60543478
+ 89  5     -0.45697466      2.13944077
+ 89  6      0.48433444     -1.75983405
+ 89  7      0.42480621     -2.99046898
+ 89  8     -1.98791564      1.42635190
+ 89  9      0.52989054      3.30700827
+ 89 10      1.88887012     -0.06505182
+ 89 11     -1.72682977     -1.56926620
+ 89 12     -1.31010735      1.00013018
+ 89 13     -0.41908833      2.78070021
+ 89 14     -1.29338896      0.30151173
+ 89 15      0.69760060     -2.93764591
+ 89 16      1.82715380      1.29195952
+ 89 17     -0.33294842      1.03626382
+ 89 18      0.27873623     -1.85028362
+ 89 19     -1.65086257     -1.46254456
+ 89 20     -2.10561991     -0.52051133
+ 89 21     -1.48747599      1.32834387
+ 89 22      0.99386770      0.60623431
+ 89 23      2.25274563     -0.59017789
+ 89 24      0.94286960      1.35995746
+ 89 25     -0.12434442      0.21886669
+ 89 26     -1.06468499      0.40260771
+ 89 27     -3.23689938      2.13149858
+ 89 28     -1.36941540      3.46702909
+ 89 29      1.32263958      1.09967256
+ 89 30      3.14739656     -0.89943051
+ 89 31      0.89768046     -3.45512342
+ 89 32     -0.25004265     -0.54451269
+ 89 33     -1.22358549      1.33645272
+ 89 34      0.91445816      3.95263910
+ 89 35      2.71104074     -0.19830151
+ 89 36     -0.70015842     -2.87300539
+ 89 37     -2.58897281     -2.02663231
+ 89 38      0.00611661      2.36138868
+ 89 39      1.80227220      2.07044411
+ 89 40      0.49805346     -0.45825616
+ 89 41      1.82080019     -2.73753238
+ 89 42      1.66713512     -1.30436015
+ 89 43      0.73685306     -0.52244806
+ 89 44      0.92202747     -1.80878758
+ 89 45      1.40954328     -1.23959506
+ 89 46      2.21636438      1.46927869
+ 89 47      0.72308785     -0.13562493
+ 89 48     -0.22282539      0.32796732
+ 89 49     -1.52403116     -2.94582248
+ 89 50     -1.28055239     -0.64579797
+ 89 51      0.74947011      0.19274402
+ 89 52      3.01398110      0.08544020
+ 89 53      2.37917018     -0.10677662
+ 89 54     -0.65871280      0.82963395
+ 89 55     -0.13020912     -0.21505997
+ 89 56      0.28755164     -2.60707736
+ 89 57     -1.25423217      0.40694278
+ 89 58     -3.32365227      1.45098937
+ 89 59      1.55515277      0.31334424
+ 89 60      2.66587186     -0.88982946
+ 89 61     -1.63191915     -1.91066396
+ 89 62     -1.68403172     -0.48127258
+ 89 63      0.80793983     -0.56787884
+ 89 64      1.80168545      2.39917421
+ 89 65      0.22486128      0.85922861
+ 89 66     -0.43332452     -1.55348229
+ 89 67      0.81186742      0.08431923
+ 89 68      0.81879562      0.02738002
+ 89 69     -2.96322727      1.21267641
+ 89 70     -3.75136948      0.19343144
+ 89 71     -3.90518880      2.37927985
+ 89 72     -0.10059547     -0.51584101
+ 89 73      0.31739444     -2.59245062
+ 89 74      2.19045496     -0.15169385
+ 89 75     -2.14439583     -0.21141072
+ 89 76     -2.35037065      1.80181110
+ 89 77     -2.01508760      2.10722995
+ 89 78     -2.10035777      1.71538854
+ 89 79      1.38899267     -0.07198270
+ 89 80      1.83301473      0.87408334
+ 89 81      0.85439473     -2.56583905
+ 89 82     -2.03189015     -0.49548906
+ 89 83     -0.36547744      0.78210062
+ 89 84      2.20974040      2.03205991
+ 89 85      0.01906080      0.02830625
+ 89 86     -1.91157603     -0.71528661
+ 89 87     -1.64525247      2.43501472
+ 89 88      0.23106623      3.74891233
+ 89 89      0.39956164      1.90650547
+ 90  0     -0.24903347
+ 90  1     -0.14084587     -0.72813237
+ 90  2      0.00684169     -0.29004297
+ 90  3      2.00811005      1.17673135
+ 90  4      0.63674450      0.03278719
+ 90  5     -1.63181150     -2.13922787
+ 90  6     -1.57310128     -1.68629479
+ 90  7     -0.87635094      2.92182279
+ 90  8      2.79235125      2.02655101
+ 90  9      2.60000944     -1.48687446
+ 90 10     -3.97918439     -1.13989842
+ 90 11     -3.40561056      1.77995265
+ 90 12      2.62892866      2.68043947
+ 90 13      1.78293335     -1.91272092
+ 90 14      1.08470488     -2.65929532
+ 90 15     -0.57987362      2.40339828
+ 90 16     -1.15770090      0.07536890
+ 90 17     -0.27416170     -2.35717034
+ 90 18      1.26585567      0.48584840
+ 90 19     -0.65311134      2.32083869
+ 90 20      1.57716572      0.38889977
+ 90 21      3.06043506     -0.64369571
+ 90 22      1.80207074      0.68668664
+ 90 23     -1.18106651      0.35168311
+ 90 24     -1.31203127     -0.72640967
+ 90 25      0.52653790      0.70201391
+ 90 26      0.29836151      2.07247615
+ 90 27     -0.20670019     -0.80188704
+ 90 28      2.51362538     -3.64946127
+ 90 29      0.12136495     -1.48906255
+ 90 30     -1.06238997     -1.25070477
+ 90 31     -1.61413181      1.62826490
+ 90 32     -0.78016049      3.18372631
+ 90 33     -0.92242259      0.44292155
+ 90 34     -0.39219087     -1.55828381
+ 90 35     -1.09283304     -0.32932395
+ 90 36      0.29999083      1.39806318
+ 90 37      1.92201817      1.79618907
+ 90 38      2.78842831     -0.53836089
+ 90 39     -0.61242348     -1.36429703
+ 90 40      0.02106882     -0.17161350
+ 90 41     -1.37371683      1.18329120
+ 90 42     -0.58441329      2.44402647
+ 90 43     -1.02740240      2.08976793
+ 90 44      1.15347254      0.81391650
+ 90 45     -0.84950709      2.25604272
+ 90 46     -1.20929849      0.09043547
+ 90 47     -2.21631813     -1.40993571
+ 90 48     -0.23727380     -0.74716836
+ 90 49     -0.36819878      1.96366704
+ 90 50      4.22250175      1.06031799
+ 90 51      1.37178910      0.07273083
+ 90 52     -0.90853912     -2.91136289
+ 90 53     -2.22095132     -0.52195632
+ 90 54     -0.81103247      0.73402953
+ 90 55     -1.03779423     -0.16798750
+ 90 56      0.61010295     -0.00137982
+ 90 57     -0.03590718      0.20157187
+ 90 58      3.57972836     -0.82033712
+ 90 59      0.82902229     -3.25133705
+ 90 60     -1.10110772      0.28629515
+ 90 61     -1.60430944      2.39095140
+ 90 62      0.65736115     -0.71084416
+ 90 63     -0.97336704      1.08477378
+ 90 64     -0.38248184     -0.64172691
+ 90 65     -2.24266648      0.77763420
+ 90 66      0.70928752      2.30757952
+ 90 67     -2.23973703     -0.68662304
+ 90 68     -1.72402167     -1.08568859
+ 90 69     -1.45420969      0.72977310
+ 90 70      0.76338869      2.90885305
+ 90 71      1.43946743      0.00112334
+ 90 72     -0.95557874     -1.57026243
+ 90 73     -1.04578757      0.97287905
+ 90 74     -0.79717267      1.31298316
+ 90 75      1.52425361      1.25550354
+ 90 76      0.04156547      2.26083302
+ 90 77      0.19270681     -0.41941857
+ 90 78      3.62316108     -2.50461793
+ 90 79     -1.07492805     -2.17883110
+ 90 80     -3.95493460     -0.73101252
+ 90 81     -0.61944878      2.12489128
+ 90 82      0.80947459      3.66996646
+ 90 83     -2.02205992     -0.90572602
+ 90 84     -2.08061075     -1.00965297
+ 90 85     -0.17767636      0.66534227
+ 90 86     -2.89626241     -0.33377224
+ 90 87     -2.88976502     -2.93519521
+ 90 88     -1.52670026     -2.57823300
+ 90 89      0.33079559     -0.87737566
+ 90 90     -3.71589661     -0.27240211
+ -1
+           0.0000     0.0000     0.0000
diff --git a/amda_plus/amdalib/src/mars/GetTime.c b/amda_plus/amdalib/src/mars/GetTime.c
new file mode 100644
index 0000000..794fa8b
--- /dev/null
+++ b/amda_plus/amdalib/src/mars/GetTime.c
@@ -0,0 +1,39 @@
+/***************************************************************************
+*                                                                          *
+*  General Routines to Open Data Base and Get Time                         *
+*                                                                          *
+****************************************************************************/
+#include <stdio.h>
+#include <string.h>
+#include <DD.h>
+ 
+/*-------------------- GET TIME ---------------------------------*/
+int GetTime(int ID, char *TimeInt, size_t OrderSize, double *TimeVal)
+{
+  int err, j;
+  DD_data_t *data; 
+  dd_tmstr_t *timep;
+  size_t CurrentDataSize = 0;
+  size_t offset = 0;
+
+   do
+  {
+      err = DD_GetData(ID,"Time", TimeInt, &data);
+
+     if(err >=0)
+     {
+         CurrentDataSize += data->VarNumber;
+        
+         for(j = 0; ((j < data->VarNumber) && (offset < OrderSize)); j++, offset++)
+          if(offset < OrderSize)
+         {
+            timep = ReadTime((char *)data->Variables[j]);
+            TimeVal[offset] = timep->times;
+           }
+      }
+  }
+  while(err == MOREDATA);
+         
+ return (int)offset;
+  
+ }
diff --git a/amda_plus/amdalib/src/mars/Makefile b/amda_plus/amdalib/src/mars/Makefile
new file mode 100755
index 0000000..8b77b51
--- /dev/null
+++ b/amda_plus/amdalib/src/mars/Makefile
@@ -0,0 +1,86 @@
+# =============================================================
+#    extract of Makefile from the common library of MEX
+#                         V.4.0 
+# ============================================================
+PROJLIB = /usr/local/AMDA/AMDALIB/lib64
+INC = -I/usr/include -I/usr/local/include -I/usr/local/AMDA/DDLIB/include -I/usr/local/itt/idl
+LIB = -L/usr/lib64 -L/usr/local/lib64  -L/usr/local/AMDA/DDLIB/lib64 -L./
+
+LIBFORTAN = -lg2c
+
+CFLAGS = -ggdb -DLINUX -m64 -march=core2 -fPIC -Dlinux -D_REENTRANT -malign-double -O3
+LDFLAGS = -shared -lpthread
+CC = gcc
+
+LIBSO =  libmexcom.so  idl_mexcom.so libcain.so idl_cain.so libmorsch.so idl_morsch.so
+HEADER = mexcom.h
+EXE  =
+PRO = ac2mso.pro mso2ac.pro ../../doubl2jd.pro ../../cain.pro ../../bcain_mso_init.pro ../../bcain_tot_init.pro \
+      ../../bcain_mso_[0-2]_init.pro  ../../morsch.pro ../../bmorsch_mso_init.pro ../../bmorsch_mso_[0-2]_init.pro \
+      ../../bmorsch_tot_init.pro  ../../plotveccain.pro ../../plotveccompcain.pro
+  
+DATA = FSU_mars90 V_ext_day.txt V_ext_night.txt V_int.txt
+
+
+all: ${LIBSO} ${EXE}
+	
+idl_mexcom.so:  idl_mexcom.o libmexcom.so
+	${LD} ${LDFLAGS}  -o  idl_mexcom.so  idl_mexcom.o  libmexcom.so -L${LIB} -lDD  	
+
+idl_cain.so:  idl_cain.o libcain.so
+	${LD} ${LDFLAGS}  -o  idl_cain.so  idl_cain.o -L${LIB} -lDD -lmexcom -lcain ${LIBFORTAN}   		
+
+idl_morsch.so:  idl_morsch.o libmorsch.so
+	${LD} ${LDFLAGS}  -o  idl_morsch.so  idl_morsch.o -L${LIB} -lDD  -lmexcom -lmorsch 
+
+libmexcom.so:  GetTime.o  mso2pc.o
+	${LD} ${LDFLAGS}  -o  libmexcom.so  GetTime.o mso2pc.o -L${LIB} -lDD  	
+
+libcain.so:  mflpgms4.o
+	${LD} ${LDFLAGS}  -o  libcain.so mflpgms4.o -L${LIB} -lDD ${LIBFORTAN} -lm 
+
+libmorsch.so:  morsch.o
+	${LD} ${LDFLAGS}  -o  libmorsch.so morsch.o -L${LIB} -lm 	
+
+GetTime.o: GetTime.c
+	${CC} ${CFLAGS} -c GetTime.c ${INC}
+
+mso2pc.o: mso2pc.c
+	${CC} ${CFLAGS} -c mso2pc.c ${INC}
+
+mflpgms4.o: mflpgms4.c
+	${CC} ${CFLAGS} -c  mflpgms4.c  ${INC}  
+
+morsch.o: morsch.c
+	${CC} ${CFLAGS} -c  morsch.c  ${INC}  
+
+idl_mexcom.o: idl_mexcom.c
+	${CC} ${CFLAGS} -c idl_mexcom.c ${INC}
+
+idl_cain.o: idl_cain.c
+	${CC} ${CFLAGS} -c idl_cain.c ${INC}
+
+idl_morsch.o: idl_morsch.c
+	${CC} ${CFLAGS} -c idl_morsch.c ${INC}
+
+caintest: caintest.c
+	${CC} ${CFLAGS} -o caintest caintest.c ${INC} -lDD -lmexcom -lcain ${LIBFORTAN} 
+
+install:
+	cp ${LIBSO}  ${DATA} ${PROJLIB}
+	cp ${PRO}    ${PROJLIB}
+ 
+	
+clean:
+	tag=" *.o ${EXE} ${LIBSO}";\
+	for file in $$tag; do\
+	  echo $$file;\
+	  if test -w $$file; then rm $$file; fi;\
+	done;
+
+deinstall:
+	tag="${PRO}";\
+	cd ${PROJLIB};echo In ${PROJLIB} :;\
+	for file in $$tag; do\
+	  if test -w $$file; then rm $$file; echo $$file; fi;\
+	done;
diff --git a/amda_plus/amdalib/src/mars/Makefile.apus b/amda_plus/amdalib/src/mars/Makefile.apus
new file mode 100755
index 0000000..e7c4799
--- /dev/null
+++ b/amda_plus/amdalib/src/mars/Makefile.apus
@@ -0,0 +1,88 @@
+# =============================================================
+#    extract of Makefile from the common library of MEX
+#                         V.4.0 
+# ============================================================
+PROJLIB = /home/natacha/AMDA/AMDALIB/lib64
+INC = -I/usr/include -I/usr/local/include -I/home/natacha/AMDA/DDLIB/include -I/usr/local/rsi/idl64
+LIB = -L/usr/lib -L/usr/local/lib  -L/home/natacha/AMDA/DDLIB/lib64 -L./
+
+LIBFORTAN = -lf2c
+#if f2c.h
+F2C = -DF2C
+
+CFLAGS = -ggdb -DLINUX -m64 -march=core2 -fPIC -Dlinux -D_REENTRANT -malign-double -O3
+LDFLAGS = -shared -lpthread
+CC = gcc
+
+LIBSO =  libmexcom.so  idl_mexcom.so libcain.so idl_cain.so libmorsch.so idl_morsch.so
+HEADER = mexcom.h
+EXE  =
+PRO = ac2mso.pro mso2ac.pro ../../doubl2jd.pro ../../cain.pro ../../bcain_mso_init.pro ../../bcain_tot_init.pro \
+      ../../bcain_mso_[0-2]_init.pro  ../../morsch.pro ../../bmorsch_mso_init.pro ../../bmorsch_mso_[0-2]_init.pro \
+      ../../bmorsch_tot_init.pro  ../../plotveccain.pro ../../plotveccompcain.pro
+  
+DATA = FSU_mars90 V_ext_day.txt V_ext_night.txt V_int.txt
+
+
+all: ${LIBSO} ${EXE}
+	
+idl_mexcom.so:  idl_mexcom.o libmexcom.so
+	${LD} ${LDFLAGS}  -o  idl_mexcom.so  idl_mexcom.o  libmexcom.so -L${LIB} -lDD  	
+
+idl_cain.so:  idl_cain.o libcain.so
+	${LD} ${LDFLAGS}  -o  idl_cain.so  idl_cain.o -L${LIB} -lDD -lmexcom -lcain ${LIBFORTAN}   		
+
+idl_morsch.so:  idl_morsch.o libmorsch.so
+	${LD} ${LDFLAGS}  -o  idl_morsch.so  idl_morsch.o -L${LIB} -lDD  -lmexcom -lmorsch 
+
+libmexcom.so:  GetTime.o  mso2pc.o
+	${LD} ${LDFLAGS}  -o  libmexcom.so  GetTime.o mso2pc.o -L${LIB} -lDD  	
+
+libcain.so:  mflpgms4.o
+	${LD} ${LDFLAGS}  -o  libcain.so mflpgms4.o -L${LIB} -lDD ${LIBFORTAN} -lm 
+
+libmorsch.so:  morsch.o
+	${LD} ${LDFLAGS}  -o  libmorsch.so morsch.o -L${LIB} -lm 	
+
+GetTime.o: GetTime.c
+	${CC} ${CFLAGS} -c GetTime.c ${INC}
+
+mso2pc.o: mso2pc.c
+	${CC} ${CFLAGS} -c mso2pc.c ${INC}
+
+mflpgms4.o: mflpgms4.c
+	${CC} ${CFLAGS} ${F2C} -c  mflpgms4.c  ${INC}  
+
+morsch.o: morsch.c
+	${CC} ${CFLAGS} -c  morsch.c  ${INC}  
+
+idl_mexcom.o: idl_mexcom.c
+	${CC} ${CFLAGS} -c idl_mexcom.c ${INC}
+
+idl_cain.o: idl_cain.c
+	${CC} ${CFLAGS} -c idl_cain.c ${INC}
+
+idl_morsch.o: idl_morsch.c
+	${CC} ${CFLAGS} -c idl_morsch.c ${INC}
+
+caintest: caintest.c
+	${CC} ${CFLAGS} -o caintest caintest.c ${INC} -lDD -lmexcom -lcain ${LIBFORTAN} 
+
+install:
+	cp ${LIBSO}  ${DATA} ${PROJLIB}
+	cp ${PRO}    ${PROJLIB}
+ 
+	
+clean:
+	tag=" *.o ${EXE} ${LIBSO}";\
+	for file in $$tag; do\
+	  echo $$file;\
+	  if test -w $$file; then rm $$file; fi;\
+	done;
+
+deinstall:
+	tag="${PRO}";\
+	cd ${PROJLIB};echo In ${PROJLIB} :;\
+	for file in $$tag; do\
+	  if test -w $$file; then rm $$file; echo $$file; fi;\
+	done;
diff --git a/amda_plus/amdalib/src/mars/Makefile.manunja b/amda_plus/amdalib/src/mars/Makefile.manunja
new file mode 100755
index 0000000..21460d4
--- /dev/null
+++ b/amda_plus/amdalib/src/mars/Makefile.manunja
@@ -0,0 +1,88 @@
+# =============================================================
+#    extract of Makefile from the common library of MEX
+#                         V.4.0 
+# ============================================================
+PROJLIB = /home/budnik/AMDANEW/AMDALIB/lib
+INC = -I/usr/include -I/usr/local/include -I/home/budnik/AMDANEW/DDLIB/include  -I/usr/local/itt/idl
+LIB = -L/usr/lib -L/usr/local/lib  -L/home/budnik/AMDANEW/DDLIB/lib -L./
+
+LIBFORTAN = -lf2c
+#if f2c.h
+F2C = -DF2C
+
+CFLAGS = -ggdb -DLINUX -march=i686 -fPIC -Dlinux -D_REENTRANT -malign-double -O3
+LDFLAGS = -shared -lpthread
+CC = gcc
+
+LIBSO =  libmexcom.so  idl_mexcom.so libcain.so idl_cain.so libmorsch.so idl_morsch.so
+HEADER = mexcom.h
+EXE  =
+PRO = ac2mso.pro mso2ac.pro ../../doubl2jd.pro ../../cain.pro ../../bcain_mso_init.pro ../../bcain_tot_init.pro \
+      ../../bcain_mso_[0-2]_init.pro  ../../morsch.pro ../../bmorsch_mso_init.pro ../../bmorsch_mso_[0-2]_init.pro \
+      ../../bmorsch_tot_init.pro  ../../plotveccain.pro ../../plotveccompcain.pro
+
+DATA = FSU_mars90 V_ext_day.txt V_ext_night.txt V_int.txt
+
+
+all: ${LIBSO} ${EXE}
+	
+idl_mexcom.so:  idl_mexcom.o libmexcom.so
+	${LD} ${LDFLAGS}  -o  idl_mexcom.so  idl_mexcom.o  libmexcom.so -L${LIB} -lDD  	
+
+idl_cain.so:  idl_cain.o libcain.so
+	${LD} ${LDFLAGS}  -o  idl_cain.so  idl_cain.o -L${LIB} -lDD -lmexcom -lcain ${LIBFORTAN}   
+
+idl_morsch.so:  idl_morsch.o libmorsch.so
+	${LD} ${LDFLAGS}  -o  idl_morsch.so  idl_morsch.o -L${LIB} -lDD  -lmexcom -lmorsch  		
+
+libmexcom.so:  GetTime.o  mso2pc.o
+	${LD} ${LDFLAGS}  -o  libmexcom.so  GetTime.o mso2pc.o -L${LIB} -lDD  	
+
+libcain.so:  mflpgms4.o
+	${LD} ${LDFLAGS}  -o  libcain.so mflpgms4.o -L${LIB} -lDD ${LIBFORTAN} -lm 	
+
+libmorsch.so:  morsch.o
+	${LD} ${LDFLAGS}  -o  libmorsch.so morsch.o -L${LIB} -lm 
+
+GetTime.o: GetTime.c
+	${CC} ${CFLAGS} -c GetTime.c ${INC}
+
+mso2pc.o: mso2pc.c
+	${CC} ${CFLAGS} -c mso2pc.c ${INC}
+
+mflpgms4.o: mflpgms4.c
+	${CC} ${CFLAGS} ${F2C} -c  mflpgms4.c  ${INC} 
+ 
+morsch.o: morsch.c
+	${CC} ${CFLAGS} -c  morsch.c  ${INC}  
+
+idl_mexcom.o: idl_mexcom.c
+	${CC} ${CFLAGS} -c idl_mexcom.c ${INC}
+
+idl_cain.o: idl_cain.c
+	${CC} ${CFLAGS} -c idl_cain.c ${INC}
+
+idl_morsch.o: idl_morsch.c
+	${CC} ${CFLAGS} -c idl_morsch.c ${INC}
+
+caintest: caintest.c
+	${CC} ${CFLAGS} -o caintest caintest.c ${INC} -lDD -lmexcom -lcain ${LIBFORTAN} 
+
+install:
+	cp ${LIBSO}  ${DATA} ${PROJLIB}
+	cp ${PRO}    ${PROJLIB}
+ 
+	
+clean:
+	tag=" *.o ${EXE} ${LIBSO}";\
+	for file in $$tag; do\
+	  echo $$file;\
+	  if test -w $$file; then rm $$file; fi;\
+	done;
+
+deinstall:
+	tag="${PRO}";\
+	cd ${PROJLIB};echo In ${PROJLIB} :;\
+	for file in $$tag; do\
+	  if test -w $$file; then rm $$file; echo $$file; fi;\
+	done;
diff --git a/amda_plus/amdalib/src/mars/V_ext_day.txt b/amda_plus/amdalib/src/mars/V_ext_day.txt
new file mode 100644
index 0000000..e8560d0
--- /dev/null
+++ b/amda_plus/amdalib/src/mars/V_ext_day.txt
@@ -0,0 +1,36 @@
+  0          0         0.0000000000E+00
+  1          0         0.2643013118E+01
+  1          1         0.1092229491E+01
+  1         -1         0.1473635963E+01
+  2          0        -0.1340097093E+01
+  2          1        -0.8704118237E-01
+  2         -1        -0.4484662768E+00
+  2          2        -0.6535723057E+00
+  2         -2        -0.4909435012E+00
+  3          0         0.2957913462E+00
+  3          1         0.5108403331E+00
+  3         -1        -0.3206754975E-01
+  3          2         0.8328875524E+00
+  3         -2         0.3354433373E+00
+  3          3        -0.4685536849E+00
+  3         -3         0.9407242109E-01
+  4          0         0.5992190774E+00
+  4          1        -0.3844544368E+00
+  4         -1        -0.5238176839E-01
+  4          2        -0.2137948951E+00
+  4         -2         0.8766488837E-01
+  4          3         0.1484601048E+00
+  4         -3         0.2662292109E+00
+  4          4         0.3019587591E+00
+  4         -4         0.4281365122E+00
+  5          0        -0.7585925168E+00
+  5          1        -0.2911256832E+00
+  5         -1         0.4785098696E-01
+  5          2        -0.7573172390E-01
+  5         -2        -0.1659454718E+00
+  5          3         0.2443439304E+00
+  5         -3        -0.2356859109E+00
+  5          4        -0.4932252958E-01
+  5         -4        -0.1537876195E+00
+  5          5         0.1676803997E+00
+  5         -5         0.3179311581E+00
diff --git a/amda_plus/amdalib/src/mars/V_ext_night.txt b/amda_plus/amdalib/src/mars/V_ext_night.txt
new file mode 100644
index 0000000..d7007d3
--- /dev/null
+++ b/amda_plus/amdalib/src/mars/V_ext_night.txt
@@ -0,0 +1,121 @@
+  0          0         0.0000000000E+00
+  1          0        -0.3856069611E+00
+  1          1        -0.2626439999E+00
+  1         -1         0.2302125705E+00
+  2          0        -0.3626672738E+00
+  2          1         0.3989255855E+00
+  2         -1         0.1320995160E+00
+  2          2         0.2155374114E+00
+  2         -2         0.3233121979E+00
+  3          0        -0.6012196102E+00
+  3          1         0.1711055939E-02
+  3         -1        -0.1510037638E+00
+  3          2         0.1074062789E+00
+  3         -2        -0.8526963741E-01
+  3          3         0.4012002860E-01
+  3         -3        -0.1467955967E+00
+  4          0        -0.9100139558E-02
+  4          1         0.3344630543E-02
+  4         -1        -0.8566879848E-01
+  4          2         0.7515309760E-01
+  4         -2        -0.8003987952E-01
+  4          3         0.9782341119E-01
+  4         -3         0.8384276805E-01
+  4          4        -0.1097211510E-01
+  4         -4         0.2243889707E-01
+  5          0        -0.1954005508E-01
+  5          1        -0.6034810314E-01
+  5         -1         0.1281032256E+00
+  5          2         0.3509727641E-03
+  5         -2         0.8857779033E-02
+  5          3         0.1363165515E-01
+  5         -3        -0.5394065540E-01
+  5          4         0.5814308598E-01
+  5         -4         0.2553222853E-01
+  5          5         0.4416724512E-01
+  5         -5         0.2032516006E-01
+  6          0        -0.4792225690E-01
+  6          1        -0.3884990478E-01
+  6         -1        -0.1289201436E+00
+  6          2        -0.3836793444E-01
+  6         -2        -0.1948102740E-01
+  6          3         0.2316993486E-02
+  6         -3        -0.2486220476E-01
+  6          4         0.1607882684E-01
+  6         -4         0.2233803696E-01
+  6          5         0.7577455501E-02
+  6         -5         0.4331788313E-01
+  6          6        -0.2925248955E-01
+  6         -6        -0.2496887841E-01
+  7          0         0.6892134958E-02
+  7          1         0.1188886748E-01
+  7         -1         0.5838294676E-01
+  7          2         0.1372610100E-01
+  7         -2         0.4353709724E-02
+  7          3         0.3347256414E-02
+  7         -3        -0.1508434324E-01
+  7          4         0.1346286310E-01
+  7         -4        -0.1959749559E-01
+  7          5        -0.3739771652E-02
+  7         -5         0.1670827992E-01
+  7          6         0.1934662876E-02
+  7         -6         0.2834345212E-01
+  7          7         0.1185362999E-01
+  7         -7         0.2354061969E-01
+  8          0        -0.3719430851E-01
+  8          1        -0.3580329163E-01
+  8         -1        -0.4836409162E-01
+  8          2         0.9862741933E-02
+  8         -2        -0.3228369170E-01
+  8          3         0.9108294735E-02
+  8         -3         0.2351107838E-02
+  8          4        -0.1396994249E-02
+  8         -4        -0.2031806993E-01
+  8          5         0.1621460434E-02
+  8         -5        -0.1282029838E-02
+  8          6        -0.2780718674E-01
+  8         -6         0.1621320253E-01
+  8          7        -0.2291738440E-01
+  8         -7        -0.2077304362E-01
+  8          8         0.3995728407E-02
+  8         -8        -0.1574540174E-01
+  9          0         0.6554434895E-02
+  9          1         0.1591396082E-01
+  9         -1         0.1302746256E-01
+  9          2        -0.3152751258E-02
+  9         -2         0.1708717870E-01
+  9          3        -0.1156867547E-01
+  9         -3         0.5672356367E-02
+  9          4         0.3155857773E-02
+  9         -4        -0.4526462376E-02
+  9          5         0.1701580582E-01
+  9         -5         0.9476639500E-02
+  9          6         0.4866419029E-02
+  9         -6         0.9268184728E-02
+  9          7         0.9080943277E-02
+  9         -7        -0.1634946965E-02
+  9          8        -0.1603496552E-01
+  9         -8         0.3449552499E-03
+  9          9         0.8129444663E-02
+  9         -9        -0.1953985952E-02
+ 10          0        -0.1706063666E-01
+ 10          1        -0.1789508371E-01
+ 10         -1        -0.1321226498E-01
+ 10          2        -0.3218041468E-02
+ 10         -2        -0.2106788040E-01
+ 10          3         0.9310276925E-02
+ 10         -3        -0.8568400016E-02
+ 10          4        -0.2072865950E-02
+ 10         -4         0.6437110750E-02
+ 10          5         0.3225374926E-02
+ 10         -5        -0.7615721206E-02
+ 10          6         0.6818385525E-02
+ 10         -6        -0.4161454054E-02
+ 10          7        -0.1078596502E-01
+ 10         -7         0.3064045816E-02
+ 10          8         0.3590829105E-04
+ 10         -8         0.6166257958E-02
+ 10          9         0.3552502203E-02
+ 10         -9        -0.5023247072E-03
+ 10         10        -0.1874876052E-02
+ 10        -10         0.3946223410E-02
diff --git a/amda_plus/amdalib/src/mars/V_int.txt b/amda_plus/amdalib/src/mars/V_int.txt
new file mode 100644
index 0000000..74a960c
--- /dev/null
+++ b/amda_plus/amdalib/src/mars/V_int.txt
@@ -0,0 +1,12321 @@
+  0          0         0.0000000000E+00
+  1          0        -0.1776756860E+01
+  1          1        -0.3727294260E+00
+  1         -1        -0.3445717196E+00
+  2          0        -0.1093718332E+00
+  2          1         0.1045706028E+01
+  2         -1         0.4747853109E-01
+  2          2         0.9616234618E+00
+  2         -2         0.8172537989E+00
+  3          0         0.5053981638E+00
+  3          1        -0.5064743644E+00
+  3         -1         0.2616727248E+00
+  3          2        -0.7619484149E+00
+  3         -2        -0.9290500206E+00
+  3          3        -0.1011396039E+01
+  3         -3        -0.2953237323E+00
+  4          0        -0.8911568340E+00
+  4          1        -0.8750392836E+00
+  4         -1        -0.1517072736E+01
+  4          2         0.3373153173E-01
+  4         -2        -0.9586390512E+00
+  4          3         0.2135351457E+01
+  4         -3         0.3193222461E+00
+  4          4         0.5773465613E+00
+  4         -4         0.6355285239E+00
+  5          0         0.7451559914E+00
+  5          1         0.2220020328E+00
+  5         -1         0.1854522489E+01
+  5          2         0.3679990868E+00
+  5         -2         0.8861345235E+00
+  5          3        -0.2545657576E+00
+  5         -3        -0.1221880677E+01
+  5          4         0.4154504552E+00
+  5         -4        -0.1000134334E+01
+  5          5         0.5252857727E+00
+  5         -5        -0.1077116230E+01
+  6          0        -0.1153117788E+01
+  6          1        -0.2052685848E+00
+  6         -1        -0.8284219006E+00
+  6          2        -0.8823779648E-01
+  6         -2        -0.5936675972E-01
+  6          3        -0.1694084792E+01
+  6         -3         0.1461403697E+00
+  6          4         0.4435711225E+00
+  6         -4         0.6836277179E+00
+  6          5         0.3698333745E+00
+  6         -5         0.1274395596E+01
+  6          6        -0.9428187617E+00
+  6         -6         0.2043923372E+00
+  7          0         0.1097088052E+01
+  7          1         0.1253475669E+01
+  7         -1        -0.5829673564E+00
+  7          2        -0.7104494525E+00
+  7         -2         0.3717828218E+00
+  7          3         0.5034499185E+00
+  7         -3         0.8704415022E+00
+  7          4         0.1841513136E+00
+  7         -4        -0.2626404411E+00
+  7          5         0.6018454638E+00
+  7         -5         0.2333012354E+00
+  7          6         0.1048650716E+01
+  7         -6        -0.3240136685E+00
+  7          7         0.1425220937E+01
+  7         -7        -0.6744205904E+00
+  8          0        -0.8201025639E+00
+  8          1        -0.3270515557E+01
+  8         -1        -0.3287975293E+00
+  8          2         0.7806473328E+00
+  8         -2        -0.1999495512E+01
+  8          3         0.1422188899E+01
+  8         -3        -0.9970017780E+00
+  8          4        -0.7580962733E+00
+  8         -4        -0.7702791261E+00
+  8          5        -0.8444313152E+00
+  8         -5        -0.3187032044E+00
+  8          6        -0.9507097401E+00
+  8         -6         0.1936969012E+01
+  8          7        -0.2067597351E+01
+  8         -7         0.1168317765E+01
+  8          8        -0.8896187674E+00
+  8         -8        -0.3258461098E+00
+  9          0        -0.9180007761E+00
+  9          1         0.3055186832E+01
+  9         -1         0.8791392190E+00
+  9          2         0.1531397175E+01
+  9         -2         0.1724225045E+01
+  9          3        -0.1575264076E+01
+  9         -3         0.9031201217E+00
+  9          4        -0.3428732634E+00
+  9         -4         0.2298615952E+00
+  9          5         0.7802396130E+00
+  9         -5        -0.5830918026E-01
+  9          6         0.7443906459E+00
+  9         -6        -0.3506755311E+00
+  9          7         0.4809690848E+00
+  9         -7        -0.7497295143E+00
+  9          8         0.5523377968E+00
+  9         -8         0.1292621481E+00
+  9          9         0.1513512894E+01
+  9         -9        -0.9466712888E+00
+ 10          0         0.2570001849E+01
+ 10          1        -0.4876502712E+00
+ 10         -1        -0.2313983073E+00
+ 10          2        -0.4080110419E+01
+ 10         -2        -0.7064426820E+00
+ 10          3        -0.6578408276E+00
+ 10         -3        -0.1163172329E+01
+ 10          4         0.1727017164E+01
+ 10         -4         0.3965629946E-01
+ 10          5         0.7202899415E+00
+ 10         -5        -0.4726036577E+00
+ 10          6        -0.4261075480E+00
+ 10         -6        -0.1651429727E+01
+ 10          7        -0.1238135054E+00
+ 10         -7         0.3829144294E+00
+ 10          8        -0.8524177835E+00
+ 10         -8         0.7257611222E+00
+ 10          9        -0.1739477550E+01
+ 10         -9         0.5856811020E+00
+ 10         10        -0.6888163738E+00
+ 10        -10         0.5564446917E+00
+ 11          0        -0.2159984319E+01
+ 11          1        -0.2161317184E+01
+ 11         -1        -0.4973048222E+00
+ 11          2         0.3008571375E+01
+ 11         -2        -0.4144765765E+00
+ 11          3         0.2393619797E+01
+ 11         -3         0.5187706833E+00
+ 11          4        -0.1034535694E+01
+ 11         -4         0.4812276408E+00
+ 11          5        -0.1958354450E+01
+ 11         -5         0.1029270923E+01
+ 11          6        -0.3798826693E+00
+ 11         -6         0.1415845380E+01
+ 11          7         0.1797213041E+00
+ 11         -7         0.5249542665E+00
+ 11          8         0.4477824849E+00
+ 11         -8        -0.4395371601E+00
+ 11          9         0.4776935672E+00
+ 11         -9         0.1066769580E-01
+ 11         10         0.8746556239E+00
+ 11        -10        -0.1840547982E+01
+ 11         11         0.9694994018E+00
+ 11        -11        -0.1493134759E+01
+ 12          0         0.8348272041E+00
+ 12          1         0.3271649358E+01
+ 12         -1         0.3269957048E+00
+ 12          2        -0.6040201028E-01
+ 12         -2        -0.7448899354E+00
+ 12          3        -0.2216829152E+01
+ 12         -3        -0.4481099976E+00
+ 12          4        -0.1711867991E+01
+ 12         -4        -0.8903001799E+00
+ 12          5         0.7121658633E+00
+ 12         -5        -0.8674065578E+00
+ 12          6         0.1225809435E+01
+ 12         -6        -0.3943453173E+00
+ 12          7        -0.1321768905E+00
+ 12         -7        -0.8934556133E+00
+ 12          8        -0.1485642283E+00
+ 12         -8        -0.5500427447E+00
+ 12          9         0.8222487631E+00
+ 12         -9        -0.1951203988E+00
+ 12         10        -0.1401422173E+01
+ 12        -10         0.2003647866E+01
+ 12         11        -0.2288166882E+01
+ 12        -11         0.1360014829E+01
+ 12         12        -0.3052688363E+01
+ 12        -12         0.1271485080E+01
+ 13          0         0.1691928326E+00
+ 13          1        -0.2922715361E+01
+ 13         -1        -0.6863200416E-01
+ 13          2        -0.2195107746E+01
+ 13         -2         0.1803652033E+01
+ 13          3         0.2193045706E+01
+ 13         -3         0.4675041194E+00
+ 13          4         0.3663116179E+01
+ 13         -4        -0.5387087237E+00
+ 13          5         0.1224154632E+01
+ 13         -5        -0.6621000344E+00
+ 13          6        -0.3515625168E+00
+ 13         -6         0.6938858346E-01
+ 13          7        -0.5642093061E+00
+ 13         -7         0.8003403166E+00
+ 13          8         0.2132512732E-01
+ 13         -8         0.1388451670E+00
+ 13          9         0.1596062864E+00
+ 13         -9         0.1113996408E+01
+ 13         10         0.9782545695E+00
+ 13        -10         0.1295261742E+00
+ 13         11         0.2218990461E+01
+ 13        -11        -0.1730836960E+01
+ 13         12         0.2110834229E+01
+ 13        -12        -0.1964482232E+01
+ 13         13        -0.1701507973E+00
+ 13        -13        -0.1266940536E+01
+ 14          0        -0.2432870583E+01
+ 14          1         0.6389323683E+00
+ 14         -1         0.4360273233E+00
+ 14          2         0.2808104505E+01
+ 14         -2        -0.4613751030E+00
+ 14          3        -0.9512507269E+00
+ 14         -3        -0.1247530702E+01
+ 14          4        -0.2193821809E+01
+ 14         -4         0.1290115974E+01
+ 14          5        -0.1990966513E+01
+ 14         -5         0.1181982396E+01
+ 14          6        -0.6019990254E-01
+ 14         -6        -0.2848156715E+00
+ 14          7         0.8593652186E+00
+ 14         -7        -0.5550270317E+00
+ 14          8         0.4226071094E+00
+ 14         -8         0.1039240099E+00
+ 14          9         0.3741811750E+00
+ 14         -9        -0.7167900774E-01
+ 14         10         0.1100358205E+01
+ 14        -10         0.2592022843E+00
+ 14         11        -0.1171310748E+01
+ 14        -11         0.2632791343E+01
+ 14         12        -0.1769824906E+01
+ 14        -12         0.6564241667E+00
+ 14         13        -0.2442552030E+01
+ 14        -13         0.2782164527E+00
+ 14         14        -0.1570682611E+01
+ 14        -14         0.5260963797E-01
+ 15          0         0.3913740703E+01
+ 15          1         0.4421631810E+00
+ 15         -1        -0.1946259790E+01
+ 15          2        -0.2986004660E+01
+ 15         -2        -0.1490487269E+01
+ 15          3        -0.1717595602E+01
+ 15         -3         0.1442421498E+01
+ 15          4         0.5020751171E+00
+ 15         -4         0.4445081001E+00
+ 15          5         0.2022485993E+01
+ 15         -5        -0.4803474005E+00
+ 15          6         0.1232464934E+00
+ 15         -6        -0.3265272151E+00
+ 15          7        -0.1857184259E+00
+ 15         -7         0.9684167748E+00
+ 15          8        -0.9757756505E+00
+ 15         -8         0.7865159420E+00
+ 15          9        -0.1119009324E+01
+ 15         -9        -0.2976633535E+00
+ 15         10        -0.1169257382E+01
+ 15        -10         0.3858569953E+00
+ 15         11        -0.4236264924E+00
+ 15        -11         0.1675469356E+00
+ 15         12         0.6978578579E+00
+ 15        -12         0.8346204191E-01
+ 15         13         0.2572779286E+01
+ 15        -13        -0.2571116340E+00
+ 15         14         0.1759686142E+01
+ 15        -14        -0.9164018128E+00
+ 15         15         0.6387859282E+00
+ 15        -15         0.2555560178E+00
+ 16          0        -0.2527126382E+01
+ 16          1        -0.3276193934E+01
+ 16         -1         0.1192101671E+01
+ 16          2         0.2035081299E+01
+ 16         -2         0.8980787716E+00
+ 16          3         0.3928496223E+01
+ 16         -3        -0.4549564372E+00
+ 16          4        -0.3528866383E-01
+ 16         -4        -0.2007442892E+01
+ 16          5        -0.1615180382E+01
+ 16         -5         0.4178963022E+00
+ 16          6        -0.8084689050E+00
+ 16         -6         0.1831292816E+01
+ 16          7        -0.6064668611E+00
+ 16         -7        -0.6938088740E+00
+ 16          8         0.5401808135E+00
+ 16         -8        -0.1664531795E+01
+ 16          9         0.4419408482E+00
+ 16         -9        -0.1201229039E+01
+ 16         10         0.9343030860E+00
+ 16        -10        -0.2102194869E+01
+ 16         11         0.1074749741E+01
+ 16        -11        -0.2121078575E+01
+ 16         12         0.3813482649E+00
+ 16        -12         0.6226644693E+00
+ 16         13         0.1511252183E+00
+ 16        -13         0.4912080131E+00
+ 16         14        -0.2098304352E+01
+ 16        -14        -0.1799896025E+00
+ 16         15        -0.1061612107E+01
+ 16        -15        -0.2892317798E+00
+ 16         16         0.1629188901E-01
+ 16        -16        -0.2693918247E+01
+ 17          0        -0.1512735071E+01
+ 17          1         0.5590816701E+01
+ 17         -1         0.8867594214E+00
+ 17          2         0.4093745064E+00
+ 17         -2        -0.2842769354E+00
+ 17          3        -0.4046533483E+01
+ 17         -3        -0.1916635362E+01
+ 17          4        -0.9947261730E+00
+ 17         -4         0.6624854648E+00
+ 17          5         0.1578503139E+01
+ 17         -5        -0.5664629587E+00
+ 17          6         0.2458211890E+01
+ 17         -6        -0.2231872519E+01
+ 17          7        -0.3417433572E+00
+ 17         -7        -0.1371124067E+01
+ 17          8        -0.3523985438E+00
+ 17         -8         0.1529616643E+01
+ 17          9        -0.4077030912E+00
+ 17         -9         0.1599619765E+01
+ 17         10        -0.3626984873E+00
+ 17        -10         0.2262212879E+01
+ 17         11        -0.8019065549E+00
+ 17        -11         0.1427856937E+01
+ 17         12        -0.2760587249E+00
+ 17        -12        -0.8839383266E+00
+ 17         13        -0.5688115803E+00
+ 17        -13        -0.5885523107E+00
+ 17         14         0.2193631482E+01
+ 17        -14         0.2648797204E+00
+ 17         15         0.1227231556E+01
+ 17        -15        -0.4463357680E+00
+ 17         16         0.1407610904E+01
+ 17        -16         0.1058884468E+01
+ 17         17         0.1271123005E+01
+ 17        -17         0.6617331036E+00
+ 18          0         0.3292306221E+01
+ 18          1        -0.5733163602E+01
+ 18         -1        -0.2572504385E+01
+ 18          2        -0.4149346200E+01
+ 18         -2         0.5044072862E+00
+ 18          3         0.1642469118E+01
+ 18         -3         0.1362096327E+01
+ 18          4         0.2799065974E+01
+ 18         -4         0.1226984763E+01
+ 18          5        -0.7227572321E-01
+ 18         -5         0.6394531372E-01
+ 18          6        -0.1687202487E+01
+ 18         -6         0.6917760594E+00
+ 18          7         0.1153369123E+01
+ 18         -7         0.2777688188E+01
+ 18          8        -0.1968596180E+00
+ 18         -8         0.7497399504E+00
+ 18          9         0.5113196456E+00
+ 18         -9        -0.3716526047E+00
+ 18         10         0.8351170586E+00
+ 18        -10        -0.1392740926E+01
+ 18         11         0.1506949494E+01
+ 18        -11        -0.9330073607E+00
+ 18         12         0.1831880128E+01
+ 18        -12        -0.1035932064E+01
+ 18         13         0.7880989179E+00
+ 18        -13         0.8494837443E+00
+ 18         14        -0.2448787117E+00
+ 18        -14         0.9185047500E+00
+ 18         15        -0.5642033857E+00
+ 18        -15         0.7776830816E+00
+ 18         16        -0.3288803302E+00
+ 18        -16         0.3056764264E+00
+ 18         17         0.1778615146E+00
+ 18        -17        -0.9231724788E+00
+ 18         18        -0.1009448022E+01
+ 18        -18        -0.1509228357E+01
+ 19          0        -0.2600961791E+01
+ 19          1         0.4010270353E+00
+ 19         -1         0.1563445962E-01
+ 19          2         0.6091193348E+01
+ 19         -2        -0.8839239630E+00
+ 19          3         0.1013626036E+01
+ 19         -3         0.4950785031E+00
+ 19          4        -0.3002623677E+01
+ 19         -4        -0.1517940509E+01
+ 19          5        -0.2130258063E+01
+ 19         -5         0.3520491396E+00
+ 19          6         0.4503743243E+00
+ 19         -6         0.3166223211E+00
+ 19          7         0.1543706092E+01
+ 19         -7        -0.2751025620E+01
+ 19          8         0.2049363494E+00
+ 19         -8        -0.2732074999E+01
+ 19          9        -0.6407382609E+00
+ 19         -9        -0.1781806955E+01
+ 19         10        -0.1392755435E+01
+ 19        -10         0.1900311872E+00
+ 19         11        -0.2870747605E+01
+ 19        -11         0.1896706575E+01
+ 19         12        -0.2710877122E+01
+ 19        -12         0.2013137029E+01
+ 19         13        -0.5437147352E+00
+ 19        -13        -0.1254098928E+01
+ 19         14        -0.1620153911E-01
+ 19        -14        -0.1942891180E-01
+ 19         15         0.9742107790E+00
+ 19        -15        -0.3692989433E+00
+ 19         16         0.7934598515E-01
+ 19        -16        -0.3216884508E+01
+ 19         17         0.6258537799E-01
+ 19        -17        -0.2311107680E+00
+ 19         18         0.1208893847E+01
+ 19        -18         0.8270506428E+00
+ 19         19        -0.1552753877E+01
+ 19        -19         0.1128126237E+01
+ 20          0         0.3757623428E+01
+ 20          1         0.3567008996E+01
+ 20         -1         0.1079267192E+01
+ 20          2        -0.5427548020E+01
+ 20         -2        -0.1572491169E+01
+ 20          3        -0.3452955365E+01
+ 20         -3        -0.1104856675E+01
+ 20          4         0.2071485587E+01
+ 20         -4        -0.6459329473E+00
+ 20          5         0.1899815590E+01
+ 20         -5        -0.3663669382E+00
+ 20          6        -0.5761020441E+00
+ 20         -6         0.7551924207E+00
+ 20          7        -0.1660319251E+01
+ 20         -7         0.9831110946E+00
+ 20          8         0.1331278476E+01
+ 20         -8         0.2575219823E+01
+ 20          9         0.5016156044E+00
+ 20         -9         0.1693608567E+01
+ 20         10         0.1065884139E+01
+ 20        -10         0.1175054847E+01
+ 20         11         0.2797865794E+01
+ 20        -11        -0.2053720162E+01
+ 20         12         0.2370275006E+01
+ 20        -12        -0.2615524348E+00
+ 20         13         0.1494432409E+01
+ 20        -13         0.5333068971E-02
+ 20         14         0.4799629323E+00
+ 20        -14        -0.9307911806E-01
+ 20         15         0.4262822631E-01
+ 20        -15         0.9009496796E+00
+ 20         16         0.4987818345E+00
+ 20        -16         0.1796624015E+01
+ 20         17         0.4997168975E+00
+ 20        -17         0.1443750547E+01
+ 20         18         0.6394038052E+00
+ 20        -18         0.3591513008E+00
+ 20         19         0.8960856621E+00
+ 20        -19        -0.1381555232E+00
+ 20         20        -0.5672712908E+00
+ 20        -20         0.1042621990E+00
+ 21          0        -0.3163349479E+01
+ 21          1        -0.3612447198E+01
+ 21         -1         0.5126962334E+00
+ 21          2         0.2105639779E+01
+ 21         -2         0.1802740162E+01
+ 21          3         0.4446688179E+01
+ 21         -3        -0.6475497681E-01
+ 21          4         0.5728473812E+00
+ 21         -4         0.9140333335E+00
+ 21          5        -0.2650713339E+00
+ 21         -5        -0.6884295545E+00
+ 21          6         0.7899974926E-01
+ 21         -6        -0.9913208779E+00
+ 21          7         0.8444185102E+00
+ 21         -7         0.9960520822E+00
+ 21          8        -0.9599046592E+00
+ 21         -8        -0.5874635436E+00
+ 21          9        -0.1479644828E+00
+ 21         -9        -0.7635246311E+00
+ 21         10         0.1072107862E+01
+ 21        -10        -0.1872964283E+01
+ 21         11        -0.1295147588E+00
+ 21        -11        -0.5223049752E+00
+ 21         12        -0.1478697665E+01
+ 21        -12        -0.3426711581E-01
+ 21         13        -0.2729738798E+01
+ 21        -13         0.1400418247E+01
+ 21         14        -0.1121293116E+01
+ 21        -14         0.4914327621E+00
+ 21         15        -0.6376871043E+00
+ 21        -15         0.1767342770E+01
+ 21         16         0.4431792580E+00
+ 21        -16         0.1297627976E+01
+ 21         17         0.6960176503E+00
+ 21        -17        -0.2072059692E+01
+ 21         18        -0.5483548643E+00
+ 21        -18        -0.2026988159E+01
+ 21         19        -0.9484422944E+00
+ 21        -19        -0.9874000747E+00
+ 21         20        -0.1155992983E+01
+ 21        -20         0.1217960822E+01
+ 21         21        -0.1133093738E+01
+ 21        -21         0.2659715333E+01
+ 22          0         0.6615439723E+00
+ 22          1         0.3573131936E+01
+ 22         -1        -0.1307663103E+01
+ 22          2         0.1115903483E+01
+ 22         -2        -0.1012127461E+01
+ 22          3        -0.3650188918E+01
+ 22         -3        -0.5169581064E+00
+ 22          4        -0.2327277646E+01
+ 22         -4         0.2743994715E+00
+ 22          5         0.2692791385E+00
+ 22         -5         0.8826768953E+00
+ 22          6         0.6132803387E+00
+ 22         -6        -0.5748591428E+00
+ 22          7        -0.4673617271E+00
+ 22         -7        -0.6672636362E+00
+ 22          8        -0.6716658922E+00
+ 22         -8         0.1808147166E+00
+ 22          9         0.1002923547E+01
+ 22         -9         0.1265198851E+01
+ 22         10        -0.1542886234E+01
+ 22        -10         0.2406066982E+01
+ 22         11        -0.1238911067E+01
+ 22        -11         0.2602701752E+01
+ 22         12         0.1044524177E+01
+ 22        -12        -0.7473188345E+00
+ 22         13         0.1881517593E+01
+ 22        -13        -0.1855923330E+01
+ 22         14         0.1075513396E+01
+ 22        -14        -0.4942743806E+00
+ 22         15        -0.7121897441E+00
+ 22        -15        -0.2368197523E+01
+ 22         16        -0.2107138006E+01
+ 22        -16        -0.1061554630E+01
+ 22         17        -0.4902246832E+00
+ 22        -17         0.5306918272E+00
+ 22         18         0.5705884912E+00
+ 22        -18         0.8772992053E+00
+ 22         19         0.8015114517E+00
+ 22        -19         0.1958077716E+01
+ 22         20         0.1105276604E+01
+ 22        -20        -0.7876128021E+00
+ 22         21         0.2615398833E+00
+ 22        -21        -0.1474379110E+01
+ 22         22         0.1333021019E+01
+ 22        -22         0.9302212540E-01
+ 23          0         0.1803334848E+01
+ 23          1        -0.4865604233E+01
+ 23         -1        -0.6167467004E+00
+ 23          2        -0.2689387066E+01
+ 23         -2        -0.9745491419E+00
+ 23          3         0.2942225427E+01
+ 23         -3         0.1234280907E+01
+ 23          4         0.1921369377E+01
+ 23         -4         0.7751478920E+00
+ 23          5        -0.1097086495E+01
+ 23         -5         0.7835006522E+00
+ 23          6        -0.5739995214E+00
+ 23         -6         0.1541770983E+01
+ 23          7         0.3759845264E+00
+ 23         -7        -0.1812549918E+00
+ 23          8         0.1547388013E+01
+ 23         -8        -0.1962086131E+00
+ 23          9        -0.1287395065E+01
+ 23         -9        -0.1534864728E+01
+ 23         10        -0.1555463141E+01
+ 23        -10        -0.5346219720E+00
+ 23         11         0.1227640095E+01
+ 23        -11        -0.1847556477E+01
+ 23         12         0.1853641385E+00
+ 23        -12         0.1461002616E+01
+ 23         13        -0.1245703403E+01
+ 23        -13         0.6411872484E+00
+ 23         14        -0.1708496802E+01
+ 23        -14         0.1692339631E+00
+ 23         15         0.1473404497E+01
+ 23        -15         0.4730761860E+00
+ 23         16         0.1786928297E+01
+ 23        -16         0.8229053983E+00
+ 23         17         0.1129787070E+01
+ 23        -17         0.1708068302E+01
+ 23         18         0.1017641011E+01
+ 23        -18         0.1871440937E+00
+ 23         19        -0.9037295878E+00
+ 23        -19        -0.1539019616E+01
+ 23         20         0.4483992374E-01
+ 23        -20        -0.1339240611E+01
+ 23         21        -0.1525167283E+01
+ 23        -21        -0.1412834066E+00
+ 23         22        -0.1143878141E+01
+ 23        -22         0.2613852811E+01
+ 23         23         0.7901431944E+00
+ 23        -23         0.1084170273E+01
+ 24          0        -0.1545351583E+01
+ 24          1         0.2956577930E+01
+ 24         -1         0.1864212098E+01
+ 24          2         0.1816215625E+01
+ 24         -2         0.6380380221E+00
+ 24          3        -0.1241065938E+01
+ 24         -3        -0.2488719773E+01
+ 24          4        -0.1256215864E+01
+ 24         -4        -0.2497882582E+01
+ 24          5        -0.2971633182E+00
+ 24         -5        -0.1359577911E+01
+ 24          6        -0.4935293236E+00
+ 24         -6        -0.7127261130E+00
+ 24          7        -0.8799036860E+00
+ 24         -7        -0.2292862863E+00
+ 24          8        -0.8833907658E+00
+ 24         -8         0.3842076034E+00
+ 24          9         0.8482901006E+00
+ 24         -9         0.1284532788E+01
+ 24         10         0.2478129819E+01
+ 24        -10        -0.1098041574E+01
+ 24         11        -0.9648977185E+00
+ 24        -11         0.2892966610E+00
+ 24         12        -0.1706372385E+01
+ 24        -12         0.5418900520E+00
+ 24         13         0.9271806139E+00
+ 24        -13        -0.6338311399E+00
+ 24         14         0.2193637623E+01
+ 24        -14        -0.7529672825E+00
+ 24         15        -0.2664638205E+00
+ 24        -15         0.7275477413E+00
+ 24         16        -0.1398189362E+01
+ 24        -16        -0.1455634691E+01
+ 24         17        -0.2182149770E+01
+ 24        -17        -0.2244404482E+01
+ 24         18        -0.1748984670E+01
+ 24        -18        -0.1278964717E+01
+ 24         19        -0.1140110089E+01
+ 24        -19         0.4150277049E+00
+ 24         20        -0.2456839477E+00
+ 24        -20         0.1907830425E+01
+ 24         21         0.6197747071E+00
+ 24        -21         0.2227222593E+00
+ 24         22         0.1539590961E+01
+ 24        -22        -0.3269550809E+01
+ 24         23         0.1419937015E+01
+ 24        -23        -0.1401380242E+01
+ 24         24         0.1756203450E+01
+ 24        -24        -0.1038341492E+00
+ 25          0         0.1196755159E+01
+ 25          1         0.1310629720E+00
+ 25         -1        -0.6032046371E+00
+ 25          2        -0.1412741878E+01
+ 25         -2        -0.2616936873E+00
+ 25          3        -0.7396597078E+00
+ 25         -3         0.6257128672E-01
+ 25          4         0.2743305514E+01
+ 25         -4         0.7549770218E-01
+ 25          5         0.1383462991E+01
+ 25         -5         0.3953515328E+00
+ 25          6        -0.9628332335E-01
+ 25         -6        -0.1389138417E-01
+ 25          7         0.1824670307E+00
+ 25         -7         0.1658831957E+01
+ 25          8        -0.4561879189E+00
+ 25         -8         0.9496366720E+00
+ 25          9         0.1670112617E+00
+ 25         -9        -0.5401887944E+00
+ 25         10        -0.3306822763E+00
+ 25        -10        -0.1488032147E+00
+ 25         11        -0.4771129912E-01
+ 25        -11         0.8270084065E+00
+ 25         12        -0.3043743700E-01
+ 25        -12        -0.1153208176E+01
+ 25         13        -0.8536726757E+00
+ 25        -13        -0.1612603532E+00
+ 25         14        -0.2166217145E+01
+ 25        -14         0.6515074695E+00
+ 25         15        -0.2397296602E+01
+ 25        -15        -0.3284673759E+00
+ 25         16         0.1240335182E+01
+ 25        -16         0.2219863490E+01
+ 25         17         0.2670529422E+01
+ 25        -17         0.1624132184E+01
+ 25         18         0.9442686446E+00
+ 25        -18         0.1183466382E+01
+ 25         19         0.1117584025E+01
+ 25        -19         0.2647759109E+00
+ 25         20        -0.1503209300E+01
+ 25        -20        -0.2781741827E+01
+ 25         21        -0.1040676837E+01
+ 25        -21        -0.1112132456E+01
+ 25         22        -0.2367097875E+00
+ 25        -22         0.1476504111E+01
+ 25         23        -0.2121758109E+01
+ 25        -23         0.1382519362E+01
+ 25         24        -0.2439800292E+00
+ 25        -24         0.4377800195E+00
+ 25         25        -0.1081588002E-01
+ 25        -25        -0.1731540595E+01
+ 26          0        -0.5163829834E+00
+ 26          1        -0.3486011404E+00
+ 26         -1        -0.8136949086E+00
+ 26          2         0.2166876104E+01
+ 26         -2         0.6252482213E+00
+ 26          3         0.7586999036E+00
+ 26         -3         0.1413696965E+01
+ 26          4        -0.2654683570E+01
+ 26         -4         0.4442889153E+00
+ 26          5        -0.4965016796E+00
+ 26         -5         0.2476013393E-01
+ 26          6         0.1805788945E+00
+ 26         -6        -0.3583690300E+00
+ 26          7        -0.1394537425E+00
+ 26         -7        -0.1610776253E+01
+ 26          8        -0.6393617938E+00
+ 26         -8        -0.2395241197E+01
+ 26          9        -0.2277513928E+01
+ 26         -9        -0.6316557855E+00
+ 26         10        -0.1511415010E+01
+ 26        -10         0.1874376487E+01
+ 26         11         0.2349456653E+01
+ 26        -11        -0.5937742295E+00
+ 26         12         0.9130485091E+00
+ 26        -12        -0.1727288148E-01
+ 26         13        -0.1849168365E-01
+ 26        -13         0.2038081242E+00
+ 26         14         0.1119520333E+01
+ 26        -14        -0.1228974869E+00
+ 26         15         0.3433154739E+01
+ 26        -15        -0.1682637604E+01
+ 26         16         0.4959793022E-03
+ 26        -16        -0.6434224673E+00
+ 26         17        -0.8317162513E+00
+ 26        -17        -0.3586923376E-01
+ 26         18         0.2052717938E+00
+ 26        -18        -0.1082410782E+01
+ 26         19        -0.1010326254E+01
+ 26        -19        -0.1058139425E+01
+ 26         20        -0.3628246506E+00
+ 26        -20        -0.9510203103E+00
+ 26         21        -0.9999556796E-01
+ 26        -21         0.4444570537E-01
+ 26         22         0.8747904163E+00
+ 26        -22         0.1487150526E+00
+ 26         23         0.1584284857E+01
+ 26        -23        -0.5809791083E+00
+ 26         24         0.1527468510E+01
+ 26        -24         0.7777534776E-01
+ 26         25         0.2332847468E+01
+ 26        -25         0.7455936388E+00
+ 26         26        -0.2235531340E-01
+ 26        -26        -0.9897857063E+00
+ 27          0         0.9123606250E+00
+ 27          1         0.3048801353E-01
+ 27         -1         0.1276992815E+01
+ 27          2        -0.1940465523E+01
+ 27         -2        -0.1731311009E+01
+ 27          3        -0.3593181377E-01
+ 27         -3        -0.8072186923E+00
+ 27          4         0.1432809432E+00
+ 27         -4         0.2590663901E+00
+ 27          5         0.6397631848E+00
+ 27         -5        -0.5558607629E+00
+ 27          6         0.5190241455E+00
+ 27         -6        -0.6674026964E+00
+ 27          7         0.8581940577E+00
+ 27         -7         0.2523250930E+00
+ 27          8         0.1765174557E+01
+ 27         -8         0.2033770179E+01
+ 27          9         0.4747131003E+00
+ 27         -9         0.1219033247E+01
+ 27         10        -0.6804510700E+00
+ 27        -10        -0.1480576726E+01
+ 27         11        -0.1720100208E+01
+ 27        -11        -0.1296097022E+01
+ 27         12         0.1147730889E+01
+ 27        -12         0.3292686747E+00
+ 27         13         0.1291596834E+01
+ 27        -13         0.7321345476E+00
+ 27         14        -0.2361963768E+00
+ 27        -14         0.3617573215E+00
+ 27         15        -0.1971199107E+01
+ 27        -15         0.9297594954E+00
+ 27         16        -0.2299921860E+01
+ 27        -16         0.2203492058E+00
+ 27         17        -0.1902648855E+01
+ 27        -17         0.9756318985E+00
+ 27         18        -0.6509137236E+00
+ 27        -18         0.6029945033E+00
+ 27         19        -0.5666321657E+00
+ 27        -19         0.2662533441E+01
+ 27         20         0.9211548753E+00
+ 27        -20         0.2156859652E+01
+ 27         21        -0.1570680284E+00
+ 27        -21        -0.2223545518E+01
+ 27         22        -0.5691367582E+00
+ 27        -22        -0.2205263655E+01
+ 27         23        -0.2852965581E+00
+ 27        -23        -0.7381644294E+00
+ 27         24        -0.2560690459E+01
+ 27        -24         0.1887894441E+01
+ 27         25        -0.2157140565E+01
+ 27        -25         0.9159187568E+00
+ 27         26        -0.4267909542E+00
+ 27        -26        -0.8345044238E+00
+ 27         27        -0.6346876719E-02
+ 27        -27        -0.1738528287E+01
+ 28          0        -0.9362597825E+00
+ 28          1         0.6024786715E+00
+ 28         -1        -0.2329560502E+00
+ 28          2         0.1147607205E+01
+ 28         -2         0.2589182324E+00
+ 28          3         0.1365332455E+01
+ 28         -3        -0.7026592921E+00
+ 28          4         0.9636111111E+00
+ 28         -4        -0.4432523833E+00
+ 28          5        -0.1423792547E+01
+ 28         -5        -0.4723771957E+00
+ 28          6         0.2802776669E+00
+ 28         -6         0.5216226557E+00
+ 28          7         0.4829843614E+00
+ 28         -7         0.3616486802E+00
+ 28          8        -0.8391697112E+00
+ 28         -8        -0.3819668367E+00
+ 28          9         0.1404813359E+01
+ 28         -9        -0.1337415151E+01
+ 28         10         0.1681303273E+01
+ 28        -10         0.1715639154E+00
+ 28         11        -0.1155094530E+01
+ 28        -11         0.2176145979E+01
+ 28         12        -0.1684753272E+01
+ 28        -12        -0.1990926507E+00
+ 28         13        -0.1071251224E+01
+ 28        -13        -0.8049469794E+00
+ 28         14        -0.8410426430E+00
+ 28        -14        -0.3951941268E+00
+ 28         15         0.1634996114E+01
+ 28        -15         0.4850185924E-01
+ 28         16         0.3080409807E+01
+ 28        -16        -0.5332001738E+00
+ 28         17         0.1090814933E+01
+ 28        -17        -0.2273105778E+01
+ 28         18         0.2093959090E+00
+ 28        -18        -0.2555845165E+00
+ 28         19         0.1936230406E+01
+ 28        -19        -0.1773517069E+01
+ 28         20         0.1010933158E+01
+ 28        -20        -0.1696653995E+01
+ 28         21         0.1226215187E+01
+ 28        -21         0.1118927373E+01
+ 28         22         0.1551835521E+01
+ 28        -22         0.1268862708E+01
+ 28         23         0.4569312375E+00
+ 28        -23         0.1058978482E+01
+ 28         24         0.1460737574E+01
+ 28        -24        -0.6395018575E+00
+ 28         25         0.1650113515E+01
+ 28        -25        -0.8838808901E+00
+ 28         26         0.9010258841E+00
+ 28        -26         0.3477264657E+01
+ 28         27        -0.7447347855E+00
+ 28        -27         0.1597111348E+01
+ 28         28        -0.6549148687E+00
+ 28        -28        -0.4279149588E+00
+ 29          0        -0.2332582000E-01
+ 29          1        -0.1097938646E+01
+ 29         -1        -0.4609900121E-01
+ 29          2        -0.2927887100E+00
+ 29         -2         0.3052293968E+01
+ 29          3        -0.1414158985E+01
+ 29         -3         0.2550387745E+00
+ 29          4         0.1274379038E+01
+ 29         -4        -0.4390082791E+00
+ 29          5         0.1150928294E+01
+ 29         -5         0.9493571858E+00
+ 29          6        -0.1846476741E+01
+ 29         -6        -0.2346967415E+00
+ 29          7        -0.1744585522E+01
+ 29         -7        -0.2417112548E+00
+ 29          8        -0.9007462946E+00
+ 29         -8        -0.1103529542E+00
+ 29          9        -0.7719778008E-01
+ 29         -9         0.1749666917E+01
+ 29         10         0.7152064684E+00
+ 29        -10         0.1579494509E+01
+ 29         11         0.5780531006E+00
+ 29        -11        -0.7515019869E+00
+ 29         12        -0.1499961195E+01
+ 29        -12        -0.1115000964E+01
+ 29         13         0.5898898825E+00
+ 29        -13         0.5888208069E+00
+ 29         14         0.6622707362E+00
+ 29        -14         0.1306091988E+01
+ 29         15        -0.1164240674E+01
+ 29        -15        -0.2031265298E+00
+ 29         16        -0.2314416775E+01
+ 29        -16         0.5639688750E-02
+ 29         17        -0.1174600866E+00
+ 29        -17         0.8877715468E+00
+ 29         18         0.8832064588E-02
+ 29        -18         0.8074899673E+00
+ 29         19        -0.1678401674E+01
+ 29        -19        -0.8024777057E+00
+ 29         20        -0.2315577320E+01
+ 29        -20         0.7407396706E+00
+ 29         21        -0.1733926925E+01
+ 29        -21         0.2174430523E+01
+ 29         22         0.1637726980E+00
+ 29        -22         0.1836255296E+00
+ 29         23         0.4481222392E-01
+ 29        -23        -0.1262251717E+01
+ 29         24         0.1818936754E+01
+ 29        -24        -0.1505067787E+00
+ 29         25        -0.1466805761E+01
+ 29        -25        -0.6452322943E+00
+ 29         26        -0.1476800013E+01
+ 29        -26        -0.7081889988E+00
+ 29         27         0.7245146443E+00
+ 29        -27        -0.2707533640E+00
+ 29         28        -0.7636457725E+00
+ 29        -28        -0.1434669701E+01
+ 29         29        -0.7938682617E-01
+ 29        -29         0.3415138965E-01
+ 30          0        -0.4966247504E+00
+ 30          1         0.4714001952E-01
+ 30         -1         0.1534303693E+00
+ 30          2         0.9119626853E-01
+ 30         -2        -0.1984815174E+01
+ 30          3        -0.1325335249E+00
+ 30         -3         0.4194046787E+00
+ 30          4        -0.1147660157E+01
+ 30         -4         0.1965293417E+00
+ 30          5        -0.2253965810E+00
+ 30         -5        -0.4840868447E+00
+ 30          6        -0.5000364474E-01
+ 30         -6        -0.6182476033E+00
+ 30          7         0.1079248915E+01
+ 30         -7        -0.5317025386E+00
+ 30          8         0.1728625297E+01
+ 30         -8        -0.5060953568E+00
+ 30          9        -0.1452122752E+01
+ 30         -9        -0.1337348628E+01
+ 30         10        -0.1784620582E+01
+ 30        -10        -0.1501901196E+01
+ 30         11         0.4009761561E+00
+ 30        -11        -0.3598926912E+00
+ 30         12         0.1548134431E+01
+ 30        -12         0.1558289350E+01
+ 30         13        -0.4124930167E+00
+ 30        -13        -0.8082928475E-01
+ 30         14        -0.5765141521E-01
+ 30        -14        -0.2095296050E+01
+ 30         15         0.3443155256E+00
+ 30        -15        -0.1195953104E+01
+ 30         16         0.1675662734E+01
+ 30        -16         0.1055628930E+01
+ 30         17         0.1060255600E+01
+ 30        -17         0.9973331946E+00
+ 30         18        -0.3681251198E-01
+ 30        -18        -0.1631829429E+01
+ 30         19         0.6663177228E+00
+ 30        -19        -0.1766170417E+00
+ 30         20         0.3715470145E+01
+ 30        -20        -0.5539042611E+00
+ 30         21         0.7616413738E+00
+ 30        -21        -0.7751738672E+00
+ 30         22         0.1042805243E+01
+ 30        -22         0.1570687594E+01
+ 30         23         0.3410592180E+00
+ 30        -23         0.3146021025E+01
+ 30         24        -0.1075836488E+01
+ 30        -24         0.2064339938E+01
+ 30         25         0.1141839783E+01
+ 30        -25         0.1983597220E+01
+ 30         26         0.2144075343E+00
+ 30        -26        -0.7639686618E+00
+ 30         27         0.3213159073E+00
+ 30        -27        -0.4881552292E+00
+ 30         28        -0.4399073277E+00
+ 30        -28         0.1779777218E+01
+ 30         29        -0.6824589593E+00
+ 30        -29         0.1003536269E+01
+ 30         30         0.1421733838E+01
+ 30        -30         0.6617567388E+00
+ 31          0         0.2003604310E+01
+ 31          1         0.3325694793E+00
+ 31         -1        -0.1613264613E+01
+ 31          2        -0.8946359712E+00
+ 31         -2        -0.2142175705E+01
+ 31          3         0.5072392824E+00
+ 31         -3         0.8828092920E+00
+ 31          4        -0.8432132775E+00
+ 31         -4        -0.5030168437E+00
+ 31          5         0.1513328793E+01
+ 31         -5        -0.8916254829E+00
+ 31          6         0.3246314928E+01
+ 31         -6         0.4045519781E+00
+ 31          7        -0.4994032877E+00
+ 31         -7        -0.2806270370E+00
+ 31          8        -0.1526725214E+01
+ 31         -8        -0.3442469514E+00
+ 31          9         0.7144122311E-01
+ 31         -9         0.1888311886E+00
+ 31         10        -0.2728338485E+00
+ 31        -10         0.4475970958E+00
+ 31         11         0.3148303750E+00
+ 31        -11         0.5130239129E+00
+ 31         12         0.9610361367E+00
+ 31        -12         0.4644813594E+00
+ 31         13        -0.3286322452E+00
+ 31        -13        -0.6595883891E-02
+ 31         14        -0.2215925649E+00
+ 31        -14         0.2079570721E+00
+ 31         15         0.4477977144E+00
+ 31        -15         0.1552065044E+01
+ 31         16        -0.2715556951E+01
+ 31        -16        -0.1708689515E+00
+ 31         17        -0.2717359827E+01
+ 31        -17        -0.5817342273E+00
+ 31         18        -0.7196371068E+00
+ 31        -18         0.1232728957E+01
+ 31         19        -0.4351322846E-01
+ 31        -19         0.9224083329E+00
+ 31         20        -0.1795736472E+01
+ 31        -20        -0.6560027783E+00
+ 31         21        -0.6493793904E+00
+ 31        -21        -0.1102063212E+01
+ 31         22        -0.1725648433E+01
+ 31        -22        -0.1910212241E+01
+ 31         23        -0.7383057583E+00
+ 31        -23        -0.1633565036E+01
+ 31         24        -0.1298650417E+01
+ 31        -24        -0.1335261734E+01
+ 31         25         0.8538228473E-01
+ 31        -25        -0.2189433926E+00
+ 31         26         0.1440007518E+01
+ 31        -26         0.1547082178E+01
+ 31         27         0.1056775515E+01
+ 31        -27         0.6829838905E+00
+ 31         28         0.5488256450E+00
+ 31        -28        -0.1652095404E+01
+ 31         29         0.1201149382E+01
+ 31        -29        -0.2678398862E+01
+ 31         30        -0.3652033532E+00
+ 31        -30        -0.1496637071E+01
+ 31         31        -0.8083438791E+00
+ 31        -31         0.7182399062E+00
+ 32          0        -0.9646783812E+00
+ 32          1         0.3853283876E+00
+ 32         -1         0.1540965757E+01
+ 32          2         0.6018458350E+00
+ 32         -2         0.3008002589E+01
+ 32          3         0.4469868331E+00
+ 32         -3        -0.2497076615E+01
+ 32          4         0.1621144348E+01
+ 32         -4        -0.9896813719E-01
+ 32          5        -0.1223652033E+01
+ 32         -5         0.1170367310E+01
+ 32          6        -0.2266853271E+01
+ 32         -6         0.5168207363E+00
+ 32          7        -0.5192180330E+00
+ 32         -7         0.1061602368E+01
+ 32          8         0.1007094379E+00
+ 32         -8         0.5874154524E+00
+ 32          9         0.2193073864E+01
+ 32         -9        -0.2512700202E-01
+ 32         10         0.1209547233E+01
+ 32        -10        -0.1031862807E+01
+ 32         11        -0.1244994876E+01
+ 32        -11        -0.4969622984E+00
+ 32         12        -0.1555020041E+01
+ 32        -12        -0.3386120730E+00
+ 32         13        -0.7825439402E+00
+ 32        -13         0.7760606235E+00
+ 32         14        -0.1198956711E+01
+ 32        -14         0.3910826005E+00
+ 32         15        -0.1864608981E+01
+ 32        -15        -0.1045922011E+01
+ 32         16         0.1707662867E+01
+ 32        -16        -0.1505258528E+01
+ 32         17         0.4554425899E+01
+ 32        -17        -0.1172673297E+01
+ 32         18         0.1534744515E+01
+ 32        -18        -0.1692533804E+00
+ 32         19         0.1178695027E+00
+ 32        -19        -0.1155338995E+01
+ 32         20         0.3740776543E+00
+ 32        -20         0.5853502492E+00
+ 32         21         0.2887940820E+01
+ 32        -21         0.2468514419E+00
+ 32         22         0.1020401365E+01
+ 32        -22         0.1576399468E+01
+ 32         23         0.1548732063E+00
+ 32        -23         0.1166201800E+01
+ 32         24         0.1828919575E+01
+ 32        -24         0.1227720582E+01
+ 32         25        -0.4779778561E+00
+ 32        -25        -0.3100460902E+00
+ 32         26        -0.1089515313E+01
+ 32        -26         0.1059814560E+01
+ 32         27        -0.1106234347E+01
+ 32        -27        -0.4917232772E-01
+ 32         28         0.1452713372E+00
+ 32        -28         0.1057804855E+01
+ 32         29         0.4453055427E+00
+ 32        -29         0.1638697972E+01
+ 32         30        -0.1265600538E+01
+ 32        -30        -0.2757763501E+00
+ 32         31         0.1504817727E+01
+ 32        -31         0.6456393299E+00
+ 32         32         0.7289256078E+00
+ 32        -32         0.1017910925E+01
+ 33          0        -0.1117151298E+00
+ 33          1        -0.7053980816E+00
+ 33         -1         0.8942887404E+00
+ 33          2        -0.6591502313E+00
+ 33         -2        -0.7977218454E+00
+ 33          3        -0.6589917386E+00
+ 33         -3         0.8511045836E+00
+ 33          4         0.9655000246E+00
+ 33         -4         0.1151628969E+01
+ 33          5        -0.8518843703E+00
+ 33         -5        -0.1162621778E+01
+ 33          6         0.4562892563E+00
+ 33         -6        -0.2199590223E+01
+ 33          7         0.2619551394E+01
+ 33         -7        -0.3037831646E+00
+ 33          8        -0.2110757907E+00
+ 33         -8        -0.4700417648E+00
+ 33          9        -0.1329055168E+01
+ 33         -9        -0.2029032831E+00
+ 33         10        -0.4079572187E+00
+ 33        -10         0.7019082977E+00
+ 33         11        -0.7386128213E+00
+ 33        -11         0.1635285902E+00
+ 33         12        -0.8910044562E-01
+ 33        -12        -0.1371459152E+01
+ 33         13         0.1657245888E+01
+ 33        -13        -0.1421956050E+01
+ 33         14         0.2135889378E+01
+ 33        -14         0.3240408835E+00
+ 33         15         0.2006464600E+01
+ 33        -15         0.7627045058E+00
+ 33         16         0.1930754647E+01
+ 33        -16         0.5863761818E+00
+ 33         17        -0.2795806715E+01
+ 33        -17         0.5115711599E+00
+ 33         18        -0.3590769797E+01
+ 33        -18         0.1517001605E-01
+ 33         19        -0.5458116507E+00
+ 33        -19         0.4172810149E+00
+ 33         20         0.1503824100E+01
+ 33        -20         0.1352637652E+01
+ 33         21        -0.2000372048E+01
+ 33        -21         0.7885111672E+00
+ 33         22         0.2966771619E+00
+ 33        -22         0.1244905015E+01
+ 33         23        -0.1997775410E+01
+ 33        -23         0.9796395273E-01
+ 33         24        -0.8579976483E+00
+ 33        -24        -0.1243957891E+01
+ 33         25        -0.4413401675E+00
+ 33        -25        -0.1642547668E+01
+ 33         26        -0.7364258653E+00
+ 33        -26        -0.1342447586E+01
+ 33         27         0.1309740746E+01
+ 33        -27         0.2324764976E+01
+ 33         28        -0.2477799922E+00
+ 33        -28         0.1284526482E+01
+ 33         29         0.1378487186E+01
+ 33        -29        -0.1092155480E+00
+ 33         30         0.2371724297E+01
+ 33        -30        -0.1008208753E+01
+ 33         31        -0.2530621176E+00
+ 33        -31        -0.1433057333E+01
+ 33         32        -0.8994886007E-01
+ 33        -32        -0.1784766069E+01
+ 33         33        -0.8265250406E+00
+ 33        -33        -0.1227596586E+00
+ 34          0        -0.7690333716E+00
+ 34          1         0.2005764699E+00
+ 34         -1        -0.2684956611E+01
+ 34          2         0.2431468972E+01
+ 34         -2        -0.3063284827E+00
+ 34          3        -0.6251164713E+00
+ 34         -3         0.2399588046E+01
+ 34          4        -0.2731710452E+01
+ 34         -4        -0.2619068971E+01
+ 34          5         0.2041392412E+01
+ 34         -5        -0.6810186768E+00
+ 34          6        -0.6960040532E-01
+ 34         -6         0.1700624433E+01
+ 34          7        -0.1260243279E+01
+ 34         -7        -0.7624994176E+00
+ 34          8         0.5951598263E+00
+ 34         -8        -0.4993955732E+00
+ 34          9        -0.6955698221E+00
+ 34         -9         0.2480250013E+00
+ 34         10        -0.5869102170E+00
+ 34        -10         0.4999256410E+00
+ 34         11         0.2249800731E+01
+ 34        -11        -0.8090610599E+00
+ 34         12         0.1472955652E+01
+ 34        -12         0.6091907518E+00
+ 34         13        -0.9438542154E+00
+ 34        -13         0.1492425394E+01
+ 34         14        -0.1030272668E+01
+ 34        -14         0.6457123625E+00
+ 34         15        -0.1908235342E+01
+ 34        -15        -0.5204471933E-01
+ 34         16        -0.5120791878E+01
+ 34        -16        -0.7298009835E+00
+ 34         17        -0.9119577459E+00
+ 34        -17         0.9158281146E+00
+ 34         18         0.4090931729E+01
+ 34        -18         0.3619292040E+00
+ 34         19         0.2637973638E+01
+ 34        -19        -0.5064648836E+00
+ 34         20        -0.2193971704E+00
+ 34        -20        -0.2031116241E+01
+ 34         21        -0.6524367942E+00
+ 34        -21        -0.9742171833E+00
+ 34         22         0.2061641080E+00
+ 34        -22        -0.1345736940E+01
+ 34         23         0.1067585671E+01
+ 34        -23         0.1396774245E+00
+ 34         24        -0.1428986977E+01
+ 34        -24         0.1189785270E+01
+ 34         25         0.2177451821E+00
+ 34        -25         0.4453479525E+00
+ 34         26         0.6871149775E+00
+ 34        -26        -0.7350919064E+00
+ 34         27        -0.1542438723E+00
+ 34        -27        -0.1818097263E+01
+ 34         28         0.1728021724E-01
+ 34        -28        -0.4497524324E+00
+ 34         29        -0.7970223348E+00
+ 34        -29         0.5978001006E+00
+ 34         30        -0.9196985510E+00
+ 34        -30         0.6221915706E+00
+ 34         31         0.5964666146E+00
+ 34        -31         0.4308645942E+00
+ 34         32         0.1188845285E+00
+ 34        -32         0.3840802632E+00
+ 34         33        -0.5680930543E+00
+ 34        -33         0.2555281960E+00
+ 34         34        -0.2413615347E+01
+ 34        -34         0.1463871395E+01
+ 35          0         0.3040354452E+01
+ 35          1         0.8093616375E+00
+ 35         -1         0.1150953286E+01
+ 35          2        -0.3267893040E+01
+ 35         -2        -0.1093480142E+01
+ 35          3         0.8552895817E-01
+ 35         -3        -0.2008604073E+01
+ 35          4         0.1015132890E+01
+ 35         -4         0.2699373565E+01
+ 35          5         0.1169465373E+01
+ 35         -5         0.2642686941E+01
+ 35          6         0.8004545664E+00
+ 35         -6        -0.7237907526E+00
+ 35          7         0.3324711064E+00
+ 35         -7        -0.1091190301E+01
+ 35          8         0.9208028877E+00
+ 35         -8         0.1104128787E+01
+ 35          9        -0.1233015277E+00
+ 35         -9        -0.4995989353E+00
+ 35         10         0.5281777191E+00
+ 35        -10        -0.1501856055E+01
+ 35         11         0.8699100379E+00
+ 35        -11         0.7318519071E+00
+ 35         12        -0.8505652958E+00
+ 35        -12         0.1266227985E+01
+ 35         13        -0.1762823317E+01
+ 35        -13        -0.7376674504E+00
+ 35         14         0.3928423110E+00
+ 35        -14        -0.2069004863E+01
+ 35         15         0.1792768541E+01
+ 35        -15         0.1140191339E-01
+ 35         16         0.3640777258E+01
+ 35        -16         0.9512162863E+00
+ 35         17         0.3665765049E+01
+ 35        -17        -0.9959693028E+00
+ 35         18        -0.1373522742E+01
+ 35        -18        -0.4483806194E+00
+ 35         19        -0.3000140501E+01
+ 35        -19         0.5301010018E+00
+ 35         20        -0.1926492546E+01
+ 35        -20         0.7649939229E-01
+ 35         21         0.1418050400E+01
+ 35        -21         0.4026131453E+00
+ 35         22         0.4568227649E+00
+ 35        -22         0.1013806059E+01
+ 35         23         0.1729798588E+01
+ 35        -23         0.5720505548E+00
+ 35         24         0.8497462407E+00
+ 35        -24        -0.6294923549E+00
+ 35         25        -0.6325370968E+00
+ 35        -25         0.4580555869E+00
+ 35         26         0.1810647558E+01
+ 35        -26         0.1697432705E+01
+ 35         27        -0.5380546151E+00
+ 35        -27         0.2768149967E+00
+ 35         28        -0.6515303257E+00
+ 35        -28         0.1055686596E+01
+ 35         29        -0.1061556007E+00
+ 35        -29         0.1057521766E+00
+ 35         30         0.1381356481E+00
+ 35        -30         0.8376727445E+00
+ 35         31         0.1067148081E+01
+ 35        -31         0.6264599482E+00
+ 35         32         0.1710716795E+01
+ 35        -32        -0.6448702976E+00
+ 35         33         0.1980048545E+01
+ 35        -33        -0.2887195937E+00
+ 35         34         0.8611038842E+00
+ 35        -34        -0.2493186704E+01
+ 35         35        -0.1925336968E+01
+ 35        -35        -0.4917703163E+00
+ 36          0        -0.2598584417E+01
+ 36          1        -0.3042260963E+01
+ 36         -1         0.1423257643E+01
+ 36          2         0.1289066366E+01
+ 36         -2        -0.7738806413E+00
+ 36          3         0.3833143670E+01
+ 36         -3        -0.2099924748E+00
+ 36          4         0.1293377153E+01
+ 36         -4         0.6213284259E+00
+ 36          5        -0.3088614385E+01
+ 36         -5        -0.2367444074E+01
+ 36          6         0.2330158097E+00
+ 36         -6        -0.9677025754E-01
+ 36          7        -0.1025827094E+01
+ 36         -7         0.2460957613E+01
+ 36          8        -0.1470268697E+01
+ 36         -8         0.1704717575E-01
+ 36          9         0.2034137575E+01
+ 36         -9        -0.4727244825E+00
+ 36         10         0.5154762948E-01
+ 36        -10         0.1070712232E+01
+ 36         11        -0.4890619907E+01
+ 36        -11         0.1034608183E+01
+ 36         12        -0.1603918782E+01
+ 36        -12        -0.2546543494E+01
+ 36         13         0.2115914713E+01
+ 36        -13        -0.1467884397E+01
+ 36         14         0.6882542748E+00
+ 36        -14         0.1124498568E+01
+ 36         15        -0.1402204459E+00
+ 36        -15         0.1235496620E+01
+ 36         16         0.9102944208E+00
+ 36        -16         0.2708119326E-01
+ 36         17        -0.3904737404E+01
+ 36        -17        -0.2984680951E+00
+ 36         18        -0.2392675877E+01
+ 36        -18         0.1113637142E+01
+ 36         19         0.2094424148E+01
+ 36        -19         0.2963038485E+00
+ 36         20         0.2807273798E+01
+ 36        -20         0.1049898475E+01
+ 36         21         0.8348022259E+00
+ 36        -21        -0.2126270294E+00
+ 36         22        -0.4108080562E+00
+ 36        -22         0.1287024040E+00
+ 36         23        -0.2140334582E+01
+ 36        -23        -0.8119463140E+00
+ 36         24        -0.1539221113E+00
+ 36        -24         0.1913479361E+00
+ 36         25        -0.1075297658E+01
+ 36        -25         0.4070751329E+00
+ 36         26        -0.9504998380E+00
+ 36        -26        -0.1669797936E+00
+ 36         27         0.8789684390E-01
+ 36        -27         0.5912791821E+00
+ 36         28        -0.2450254702E-01
+ 36        -28        -0.1588881257E+01
+ 36         29         0.1117556300E+01
+ 36        -29         0.2042808010E+00
+ 36         30         0.1716729390E+01
+ 36        -30        -0.1708080941E+01
+ 36         31        -0.3717777779E+00
+ 36        -31         0.3668506631E+00
+ 36         32        -0.1303612687E+01
+ 36        -32         0.5719731102E+00
+ 36         33        -0.1192156472E+01
+ 36        -33         0.4197320964E+00
+ 36         34         0.1156781094E+01
+ 36        -34         0.9792292126E+00
+ 36         35        -0.1566831306E+01
+ 36        -35        -0.1081259209E+01
+ 36         36        -0.3309450636E+01
+ 36        -36        -0.5548642643E+00
+ 37          0         0.1680388686E+00
+ 37          1         0.4131499841E+01
+ 37         -1        -0.9113993054E+00
+ 37          2        -0.1207463837E+00
+ 37         -2         0.2086316722E+01
+ 37          3        -0.5000029939E+01
+ 37         -3        -0.9201321424E+00
+ 37          4        -0.1469841492E+01
+ 37         -4        -0.2441311136E+01
+ 37          5         0.6131261218E+00
+ 37         -5         0.1978682748E+01
+ 37          6        -0.7682062598E+00
+ 37         -6         0.1008324067E+01
+ 37          7         0.2476795174E+01
+ 37         -7        -0.2079902688E+01
+ 37          8         0.1624026189E+01
+ 37         -8        -0.1776972886E+01
+ 37          9        -0.7183662913E+00
+ 37         -9         0.1171680453E+01
+ 37         10        -0.1390007101E+01
+ 37        -10        -0.2993481659E+00
+ 37         11         0.2606870559E+01
+ 37        -11        -0.1435643647E+01
+ 37         12         0.4136516317E+01
+ 37        -12        -0.1781064554E-01
+ 37         13         0.7387192526E+00
+ 37        -13         0.2238545224E+01
+ 37         14        -0.2547424679E+01
+ 37        -14         0.8003573478E-01
+ 37         15        -0.1179229270E+01
+ 37        -15        -0.1785211009E+01
+ 37         16        -0.7197710238E+00
+ 37        -16        -0.1418649220E+00
+ 37         17         0.2702256406E+01
+ 37        -17         0.1383379444E+01
+ 37         18         0.4140331516E+01
+ 37        -18        -0.1234030334E+01
+ 37         19         0.9984912903E+00
+ 37        -19         0.3988481854E+00
+ 37         20        -0.1792174587E+01
+ 37        -20         0.9677751195E+00
+ 37         21        -0.2941518275E+01
+ 37        -21         0.2966583840E+00
+ 37         22        -0.1248032805E+01
+ 37        -22        -0.2130097050E+00
+ 37         23        -0.2153576539E+00
+ 37        -23        -0.1264399233E+00
+ 37         24         0.4495817716E+00
+ 37        -24         0.2492068121E+00
+ 37         25         0.1807447659E+01
+ 37        -25        -0.1391213142E+01
+ 37         26        -0.3636322012E+00
+ 37        -26        -0.1566405313E+01
+ 37         27         0.1204309188E+01
+ 37        -27         0.2001128207E+01
+ 37         28        -0.1190901168E+01
+ 37        -28         0.1804875328E+01
+ 37         29        -0.1322350332E+01
+ 37        -29         0.1440858647E+01
+ 37         30        -0.6403133164E+00
+ 37        -30         0.1141526654E+01
+ 37         31         0.4097784417E+00
+ 37        -31         0.8356752262E+00
+ 37         32         0.8810645393E+00
+ 37        -32        -0.8791305778E+00
+ 37         33        -0.7892498700E+00
+ 37        -33         0.3698475438E+00
+ 37         34        -0.1146772474E+01
+ 37        -34        -0.7168953345E+00
+ 37         35         0.2326815999E+01
+ 37        -35        -0.3429031598E+00
+ 37         36         0.2511115035E+01
+ 37        -36         0.9381394007E+00
+ 37         37        -0.8787917640E+00
+ 37        -37        -0.8476496690E+00
+ 38          0         0.2182938280E+01
+ 38          1        -0.3031468767E+01
+ 38         -1        -0.6733836018E+00
+ 38          2        -0.8207410322E+00
+ 38         -2         0.2407170624E+00
+ 38          3         0.1330591423E+01
+ 38         -3         0.3979426140E+00
+ 38          4         0.1274848992E+01
+ 38         -4         0.5703224734E+00
+ 38          5         0.2153808350E+01
+ 38         -5        -0.6973113011E+00
+ 38          6         0.3033517642E+00
+ 38         -6        -0.1640383121E+01
+ 38          7        -0.6602078524E+00
+ 38         -7         0.5738250170E+00
+ 38          8        -0.1729065590E+01
+ 38         -8         0.1758861485E+01
+ 38          9        -0.6195519686E+00
+ 38         -9        -0.1073452603E+01
+ 38         10         0.3839930259E+01
+ 38        -10        -0.1754319772E+01
+ 38         11         0.2385110762E+01
+ 38        -11         0.9275221580E+00
+ 38         12        -0.5292474748E+01
+ 38        -12         0.2577714192E+01
+ 38         13        -0.3880810183E+01
+ 38        -13        -0.1124645691E+01
+ 38         14         0.1001818845E+01
+ 38        -14        -0.1031015763E+01
+ 38         15         0.3224248974E-01
+ 38        -15        -0.3567448918E+00
+ 38         16        -0.7460534055E+00
+ 38        -16         0.6940735832E+00
+ 38         17        -0.8653671797E+00
+ 38        -17        -0.3595193884E+00
+ 38         18        -0.3637838654E+01
+ 38        -18         0.3820156378E+00
+ 38         19        -0.2941760796E+01
+ 38        -19         0.1310727151E+01
+ 38         20         0.5368002707E+00
+ 38        -20        -0.1429580292E+01
+ 38         21         0.2976830047E+01
+ 38        -21        -0.1027705977E+01
+ 38         22         0.2292168432E+01
+ 38        -22         0.4748101750E+00
+ 38         23         0.1222086358E+01
+ 38        -23         0.7634992333E+00
+ 38         24        -0.4428007951E+00
+ 38        -24        -0.4607503051E+00
+ 38         25        -0.7166869363E+00
+ 38        -25        -0.1487348235E+00
+ 38         26         0.4353494651E-01
+ 38        -26         0.1932659096E+00
+ 38         27        -0.9870886216E+00
+ 38        -27        -0.1119594987E+01
+ 38         28        -0.5917008725E+00
+ 38        -28         0.6149883569E+00
+ 38         29        -0.3381682474E+00
+ 38        -29        -0.3169371007E+01
+ 38         30         0.2165165051E+00
+ 38        -30        -0.1398844622E+01
+ 38         31         0.1969045595E+01
+ 38        -31        -0.6687653164E+00
+ 38         32        -0.2679235533E+00
+ 38        -32         0.9569072239E+00
+ 38         33         0.9849795646E+00
+ 38        -33         0.1571818400E+00
+ 38         34         0.1266760529E+01
+ 38        -34         0.4902746480E+00
+ 38         35        -0.1226637957E+01
+ 38        -35         0.6657020628E+00
+ 38         36        -0.6713863593E+00
+ 38        -36        -0.2481784245E+01
+ 38         37        -0.1176860915E+00
+ 38        -37        -0.7842307578E-01
+ 38         38         0.1373730113E+01
+ 38        -38        -0.4148228632E+00
+ 39          0        -0.2063458155E+01
+ 39          1         0.2441578960E+01
+ 39         -1         0.4198896055E+00
+ 39          2         0.2566919881E+01
+ 39         -2        -0.1848011417E+01
+ 39          3         0.6791120765E+00
+ 39         -3         0.1344103405E+01
+ 39          4        -0.7710406546E+00
+ 39         -4         0.2265150573E+00
+ 39          5        -0.9350972705E+00
+ 39         -5        -0.2108136851E+00
+ 39          6        -0.1520249500E+00
+ 39         -6         0.2391810946E+01
+ 39          7        -0.1468174284E+01
+ 39         -7         0.1292084064E+01
+ 39          8         0.1860647070E+01
+ 39         -8        -0.4977472220E+00
+ 39          9         0.1307944754E+01
+ 39         -9        -0.4572243650E-01
+ 39         10        -0.2684253950E+01
+ 39        -10         0.2321148457E+01
+ 39         11        -0.3639225070E+01
+ 39        -11        -0.3587021430E+00
+ 39         12         0.1958094326E+01
+ 39        -12        -0.1442016763E+01
+ 39         13         0.5019697430E+01
+ 39        -13        -0.6511462754E+00
+ 39         14         0.3089662766E+01
+ 39        -14         0.8137526594E+00
+ 39         15        -0.1370484556E+00
+ 39        -15         0.8027354100E+00
+ 39         16         0.8474034098E+00
+ 39        -16        -0.1886968614E+01
+ 39         17        -0.3166797047E+00
+ 39        -17        -0.6816214234E+00
+ 39         18         0.2269571166E+01
+ 39        -18         0.2902136153E+00
+ 39         19         0.2770961162E+01
+ 39        -19        -0.2487449394E+01
+ 39         20         0.6761016708E+00
+ 39        -20         0.4853026252E+00
+ 39         21        -0.5372860209E+00
+ 39        -21         0.1549278836E+01
+ 39         22        -0.2334251704E+01
+ 39        -22         0.7619605409E+00
+ 39         23        -0.1986102037E+01
+ 39        -23         0.3445163798E+00
+ 39         24        -0.5103232120E+00
+ 39        -24         0.1671048551E+01
+ 39         25        -0.1381000549E+01
+ 39        -25         0.1491875741E+01
+ 39         26         0.1219178536E+01
+ 39        -26         0.6796537579E+00
+ 39         27         0.6572386559E-01
+ 39        -27        -0.8215982992E+00
+ 39         28         0.1781204660E+01
+ 39        -28         0.9013020956E+00
+ 39         29        -0.1004774115E+01
+ 39        -29         0.2026857899E+01
+ 39         30        -0.2730961695E+01
+ 39        -30         0.9276692726E+00
+ 39         31        -0.2767015057E+01
+ 39        -31         0.9341513069E+00
+ 39         32         0.5325029964E+00
+ 39        -32        -0.9729040713E-01
+ 39         33        -0.3292091332E+00
+ 39        -33        -0.6503131389E+00
+ 39         34        -0.7775120603E+00
+ 39        -34        -0.1898805456E+01
+ 39         35        -0.9453076438E+00
+ 39        -35        -0.4692713776E+00
+ 39         36        -0.3571723893E+00
+ 39        -36         0.1429803739E+01
+ 39         37        -0.5826810456E+00
+ 39        -37        -0.6307787861E+00
+ 39         38        -0.4680873085E+00
+ 39        -38         0.1987191981E+01
+ 39         39         0.4208540741E+00
+ 39        -39        -0.5439841462E+00
+ 40          0         0.8087352957E+00
+ 40          1        -0.1337752930E+01
+ 40         -1         0.6540151490E+00
+ 40          2        -0.2507553384E+01
+ 40         -2         0.7838612981E-01
+ 40          3         0.5163077804E+00
+ 40         -3        -0.7228150636E+00
+ 40          4         0.1398912396E+00
+ 40         -4         0.1010280756E+00
+ 40          5        -0.1816067721E+01
+ 40         -5         0.1695065669E+00
+ 40          6         0.7915145373E+00
+ 40         -6        -0.1802823773E+01
+ 40          7         0.1814679397E+01
+ 40         -7        -0.7860620209E+00
+ 40          8        -0.1327936824E+01
+ 40         -8         0.2656033164E+00
+ 40          9        -0.1795440754E+01
+ 40         -9         0.1164495319E+01
+ 40         10        -0.8354876137E+00
+ 40        -10        -0.1117053958E+01
+ 40         11         0.3803151142E+01
+ 40        -11        -0.1824001271E+01
+ 40         12         0.3065863522E+01
+ 40        -12        -0.1468670707E+01
+ 40         13        -0.4300515906E+01
+ 40        -13         0.6395127811E+00
+ 40         14        -0.4113834580E+01
+ 40        -14        -0.1127108720E+01
+ 40         15        -0.4088894885E+00
+ 40        -15         0.4608801326E+00
+ 40         16        -0.3752535732E+00
+ 40        -16         0.3728765520E+00
+ 40         17         0.8071321055E-01
+ 40        -17         0.4312737934E+00
+ 40         18        -0.6698070086E-01
+ 40        -18        -0.3827190523E+00
+ 40         19        -0.2137316235E+01
+ 40        -19         0.1480746879E+01
+ 40         20        -0.2094240293E+01
+ 40        -20         0.2188696636E+01
+ 40         21        -0.5269648410E+00
+ 40        -21        -0.2217338681E+00
+ 40         22         0.8698912462E+00
+ 40        -22        -0.1989627917E+01
+ 40         23         0.9390552071E+00
+ 40        -23        -0.1811017006E+01
+ 40         24         0.5340715484E+00
+ 40        -24        -0.1242280300E+01
+ 40         25         0.6853652864E+00
+ 40        -25        -0.1360382552E+01
+ 40         26        -0.3366342018E+00
+ 40        -26        -0.1954912666E+01
+ 40         27        -0.3795890821E+00
+ 40        -27         0.4641172516E-01
+ 40         28        -0.1838516220E+01
+ 40        -28        -0.1464271829E+01
+ 40         29        -0.9246496894E+00
+ 40        -29        -0.1481122863E+00
+ 40         30         0.1703198163E+01
+ 40        -30        -0.2948561937E+01
+ 40         31         0.1582187896E+01
+ 40        -31        -0.2184352133E+01
+ 40         32         0.6754033428E+00
+ 40        -32        -0.1241352539E+01
+ 40         33        -0.1731766987E+01
+ 40        -33        -0.2788574435E+00
+ 40         34         0.1218554951E+01
+ 40        -34         0.7670537103E+00
+ 40         35         0.1703117611E+01
+ 40        -35        -0.3019469610E+00
+ 40         36         0.2092941096E+01
+ 40        -36        -0.3391655420E+00
+ 40         37         0.1613630369E+01
+ 40        -37        -0.9403785899E+00
+ 40         38         0.3187205331E+00
+ 40        -38        -0.1981489776E+01
+ 40         39         0.2032358174E+01
+ 40        -39        -0.5682165018E+00
+ 40         40         0.3363631399E+01
+ 40        -40         0.6207919289E-01
+ 41          0        -0.1659326632E+01
+ 41          1         0.2139591440E+00
+ 41         -1         0.2437292707E+00
+ 41          2         0.2061558398E+01
+ 41         -2         0.3940262535E+00
+ 41          3        -0.1427443811E+01
+ 41         -3        -0.2207566794E+01
+ 41          4        -0.8788276753E+00
+ 41         -4         0.8865244155E-01
+ 41          5         0.1998779409E+01
+ 41         -5         0.4107610162E+00
+ 41          6        -0.7353578393E+00
+ 41         -6        -0.7203794828E+00
+ 41          7        -0.1456770986E+00
+ 41         -7         0.4533596339E+00
+ 41          8         0.8255173178E+00
+ 41         -8         0.7866734991E+00
+ 41          9         0.2733999424E+01
+ 41         -9        -0.1762908743E+01
+ 41         10         0.2441773742E+01
+ 41        -10        -0.2659177794E+00
+ 41         11        -0.2897305463E+01
+ 41        -11         0.2802337265E+01
+ 41         12        -0.4072671571E+01
+ 41        -12         0.1792262457E+01
+ 41         13         0.2004725452E+01
+ 41        -13         0.2683008256E+00
+ 41         14         0.3523727217E+01
+ 41        -14         0.1143895930E+01
+ 41         15         0.2062133778E+01
+ 41        -15         0.8660958235E-01
+ 41         16         0.4854855488E-01
+ 41        -16         0.6304698127E+00
+ 41         17         0.1082567445E+00
+ 41        -17         0.3088178301E+00
+ 41         18        -0.4884658159E+00
+ 41        -18         0.5931081837E+00
+ 41         19         0.2398470207E+01
+ 41        -19        -0.2142600300E+00
+ 41         20         0.2094868082E+01
+ 41        -20        -0.3022672237E+01
+ 41         21         0.9940980557E-01
+ 41        -21        -0.2569644364E-01
+ 41         22         0.2398996607E+00
+ 41        -22         0.2018726833E+01
+ 41         23        -0.1566085264E+01
+ 41        -23         0.1548458564E+01
+ 41         24        -0.9738193346E+00
+ 41        -24         0.9524536813E+00
+ 41         25        -0.5119829739E+00
+ 41        -25         0.8020095443E+00
+ 41         26        -0.1350680011E+01
+ 41        -26         0.8429460517E+00
+ 41         27         0.3977330133E+00
+ 41        -27         0.1329400049E+01
+ 41         28         0.1021313436E+01
+ 41        -28         0.9353674016E+00
+ 41         29         0.1149695786E+01
+ 41        -29         0.5930248671E+00
+ 41         30         0.6366129309E+00
+ 41        -30         0.1030696190E+01
+ 41         31        -0.5857208562E+00
+ 41        -31         0.3419736847E+00
+ 41         32        -0.1785067108E+01
+ 41        -32         0.1835541492E+00
+ 41         33         0.3171617512E+00
+ 41        -33         0.1099824339E+01
+ 41         34        -0.1427915785E+01
+ 41        -34        -0.3257442995E+00
+ 41         35        -0.4013149508E+00
+ 41        -35        -0.1008161441E+01
+ 41         36        -0.5272858913E+00
+ 41        -36         0.6801297568E-01
+ 41         37        -0.1477955468E+01
+ 41        -37         0.1760174022E+00
+ 41         38        -0.6203077216E+00
+ 41        -38         0.1224405579E+01
+ 41         39        -0.1545084141E+01
+ 41        -39         0.1257481887E+01
+ 41         40        -0.2849281847E+00
+ 41        -40         0.7873862931E+00
+ 41         41         0.6981650119E+00
+ 41        -41        -0.2843494905E+00
+ 42          0         0.3200990166E+01
+ 42          1         0.7868948190E+00
+ 42         -1        -0.8607084776E+00
+ 42          2        -0.2623023601E+01
+ 42         -2         0.1849987106E+00
+ 42          3         0.1394023007E+01
+ 42         -3         0.2330290530E+01
+ 42          4         0.3393650929E+01
+ 42         -4        -0.7510545387E-01
+ 42          5        -0.5118315940E+00
+ 42         -5        -0.9127813686E+00
+ 42          6        -0.1749890027E+01
+ 42         -6         0.1146686995E+01
+ 42          7        -0.3072691609E+00
+ 42         -7        -0.2731878878E+00
+ 42          8         0.7929217859E+00
+ 42         -8         0.7589112156E-01
+ 42          9        -0.2100432545E+01
+ 42         -9         0.1540721438E+01
+ 42         10        -0.1406799190E+01
+ 42        -10         0.1639037794E+01
+ 42         11         0.4536706739E-01
+ 42        -11        -0.7499332649E+00
+ 42         12         0.2407194084E+01
+ 42        -12        -0.2318023558E+00
+ 42         13         0.1369426910E+01
+ 42        -13        -0.1306537217E+01
+ 42         14        -0.2011031827E+01
+ 42        -14        -0.1650977797E+01
+ 42         15        -0.2003799472E+01
+ 42        -15        -0.2135095080E+01
+ 42         16        -0.1293003131E+01
+ 42        -16        -0.4805845090E+00
+ 42         17        -0.1361757165E+01
+ 42        -17        -0.1029145266E+01
+ 42         18         0.1423639210E-01
+ 42        -18        -0.5161344580E+00
+ 42         19        -0.1706814272E+01
+ 42        -19        -0.1637452687E+01
+ 42         20        -0.2276054950E+01
+ 42        -20         0.9197464209E+00
+ 42         21        -0.5709466549E+00
+ 42        -21         0.1575553044E+01
+ 42         22         0.1186745923E+01
+ 42        -22        -0.3197856982E+00
+ 42         23         0.2261210270E+01
+ 42        -23        -0.1180744887E+01
+ 42         24         0.3266246621E+00
+ 42        -24        -0.7594975329E+00
+ 42         25        -0.4553515971E+00
+ 42        -25        -0.6819834643E+00
+ 42         26         0.3584216907E+00
+ 42        -26         0.1247566926E+00
+ 42         27        -0.1409372013E+00
+ 42        -27        -0.2292800753E+01
+ 42         28         0.9514078194E+00
+ 42        -28        -0.1099301138E+01
+ 42         29        -0.1627264756E+01
+ 42        -29        -0.1540745254E+01
+ 42         30        -0.2004335949E+01
+ 42        -30         0.6181088445E+00
+ 42         31         0.1421610857E+01
+ 42        -31        -0.1670092991E+00
+ 42         32         0.1665262829E+01
+ 42        -32        -0.7201739499E+00
+ 42         33         0.7685813680E+00
+ 42        -33        -0.1470655206E+01
+ 42         34        -0.1170493403E+00
+ 42        -34        -0.1364970600E+01
+ 42         35        -0.1503163519E+01
+ 42        -35        -0.3576406512E+00
+ 42         36        -0.3919125436E-02
+ 42        -36        -0.1292211942E+01
+ 42         37         0.1458909141E+01
+ 42        -37         0.1206224675E+00
+ 42         38         0.3322327748E+01
+ 42        -38        -0.5467940233E+00
+ 42         39         0.2734948493E+01
+ 42        -39        -0.2955224159E+01
+ 42         40         0.1315549046E+01
+ 42        -40         0.1438902147E+01
+ 42         41         0.1211236591E+01
+ 42        -41         0.1477482151E+01
+ 42         42        -0.3047142003E+00
+ 42        -42         0.4056534682E+00
+ 43          0        -0.2278934903E+01
+ 43          1        -0.2489685133E+01
+ 43         -1         0.1050083052E+01
+ 43          2         0.2360762056E+01
+ 43         -2         0.1066616195E+01
+ 43          3         0.1459917540E+01
+ 43         -3        -0.1617460721E+00
+ 43          4        -0.3834167805E+01
+ 43         -4        -0.1705820543E+01
+ 43          5        -0.8247938515E+00
+ 43         -5         0.3745167864E+00
+ 43          6         0.2551355945E+01
+ 43         -6         0.1086021143E+01
+ 43          7        -0.1624205332E+01
+ 43         -7        -0.9696929096E+00
+ 43          8        -0.2335887545E+01
+ 43         -8        -0.1191598716E+01
+ 43          9         0.3304255240E+00
+ 43         -9         0.1009911419E+01
+ 43         10         0.1696710691E+01
+ 43        -10        -0.1580270344E+01
+ 43         11         0.2601233755E+01
+ 43        -11        -0.1226845802E+01
+ 43         12        -0.5922498667E+00
+ 43        -12        -0.7157556788E+00
+ 43         13        -0.3513068509E+01
+ 43        -13         0.8335060682E+00
+ 43         14         0.1226879074E+01
+ 43        -14         0.8509845305E+00
+ 43         15         0.1710487154E+01
+ 43        -15         0.2902719341E+01
+ 43         16         0.2098414753E+01
+ 43        -16         0.6106668850E+00
+ 43         17         0.1450923880E+01
+ 43        -17         0.3013091331E+00
+ 43         18         0.3911382011E+00
+ 43        -18         0.5200654907E+00
+ 43         19        -0.1273815391E+01
+ 43        -19         0.1605994595E+01
+ 43         20         0.2150868196E+01
+ 43        -20         0.1039703904E+01
+ 43         21         0.1862692905E+01
+ 43        -21        -0.1507781986E+01
+ 43         22        -0.2055084395E+01
+ 43        -22        -0.8243020453E+00
+ 43         23        -0.1529212586E+01
+ 43        -23         0.1169111469E+01
+ 43         24        -0.1106728917E+01
+ 43        -24         0.8587563403E+00
+ 43         25         0.2432738216E+00
+ 43        -25         0.1656159101E+01
+ 43         26         0.1186960069E+01
+ 43        -26         0.7160114194E+00
+ 43         27        -0.6437947855E+00
+ 43        -27         0.3630975379E+00
+ 43         28        -0.8829931694E+00
+ 43        -28         0.9729466508E+00
+ 43         29        -0.2703483273E+00
+ 43        -29         0.1467363631E+01
+ 43         30         0.2837930489E+00
+ 43        -30        -0.3238982387E+00
+ 43         31         0.1338683274E+01
+ 43        -31         0.1503670133E+00
+ 43         32         0.1399553499E+01
+ 43        -32         0.3116149019E+00
+ 43         33        -0.7967119181E+00
+ 43        -33         0.8704463055E+00
+ 43         34        -0.1362881122E+00
+ 43        -34         0.1097458898E+01
+ 43         35         0.9931854784E+00
+ 43        -35         0.4009934680E+00
+ 43         36         0.1479434437E+01
+ 43        -36         0.3314502654E+00
+ 43         37         0.7058510308E+00
+ 43        -37        -0.5424218519E+00
+ 43         38        -0.2115795385E+01
+ 43        -38         0.1587787507E+01
+ 43         39        -0.1872388639E+01
+ 43        -39         0.1858256201E+01
+ 43         40        -0.2089612288E+01
+ 43        -40        -0.1015800132E+01
+ 43         41         0.3255673703E+00
+ 43        -41         0.3461227693E+00
+ 43         42         0.2694436574E+00
+ 43        -42         0.8108404213E+00
+ 43         43         0.5353185567E-01
+ 43        -43         0.6285763227E+00
+ 44          0        -0.6024711154E+00
+ 44          1         0.3812621880E+01
+ 44         -1        -0.7173962460E+00
+ 44          2        -0.1317037702E+01
+ 44         -2        -0.1191790692E+01
+ 44          3        -0.5058008390E+01
+ 44         -3        -0.8348508036E+00
+ 44          4         0.2990046937E+01
+ 44         -4         0.1910771407E+01
+ 44          5         0.3036387098E+01
+ 44         -5         0.2686826290E+00
+ 44          6        -0.1423138764E+01
+ 44         -6        -0.1920124375E+01
+ 44          7         0.7838682107E+00
+ 44         -7         0.6419003937E+00
+ 44          8         0.1455535545E+01
+ 44         -8         0.4279458672E+00
+ 44          9         0.9247887305E+00
+ 44         -9        -0.1766577868E+01
+ 44         10        -0.1997756653E+01
+ 44        -10         0.8937430428E+00
+ 44         11        -0.1584511300E+01
+ 44        -11         0.1733777831E+01
+ 44         12         0.3527136127E+00
+ 44        -12        -0.4738936665E+00
+ 44         13         0.2648194346E+01
+ 44        -13         0.1734017721E+00
+ 44         14        -0.8254402462E+00
+ 44        -14        -0.8603355757E+00
+ 44         15        -0.5521019322E+00
+ 44        -15        -0.1827734545E+01
+ 44         16        -0.1820564954E+00
+ 44        -16        -0.6469385816E+00
+ 44         17        -0.9030117600E+00
+ 44        -17         0.5249625918E+00
+ 44         18        -0.1394875523E+01
+ 44        -18        -0.4632748348E+00
+ 44         19         0.7894933001E+00
+ 44        -19        -0.1265152000E+01
+ 44         20        -0.1061401509E+01
+ 44        -20        -0.2461896153E+01
+ 44         21        -0.2958206677E+01
+ 44        -21        -0.1220499722E+01
+ 44         22        -0.9727942677E+00
+ 44        -22         0.9617023703E+00
+ 44         23         0.9613271946E+00
+ 44        -23         0.5024553692E-01
+ 44         24         0.3640010467E+01
+ 44        -24        -0.1239652641E+01
+ 44         25         0.7822258086E+00
+ 44        -25        -0.2509273545E+01
+ 44         26        -0.2065469954E+01
+ 44        -26        -0.1598287547E+01
+ 44         27        -0.8113050523E+00
+ 44        -27         0.4295768441E+00
+ 44         28         0.5462560718E+00
+ 44        -28         0.4755164792E+00
+ 44         29         0.1092222810E+01
+ 44        -29        -0.4932494407E+00
+ 44         30        -0.5106027631E+00
+ 44        -30        -0.2906606684E+00
+ 44         31        -0.2715420282E+01
+ 44        -31        -0.3062028788E+00
+ 44         32         0.1342595913E+00
+ 44        -32         0.8013214653E+00
+ 44         33         0.1016222052E+01
+ 44        -33         0.9877701496E+00
+ 44         34         0.2550752014E+00
+ 44        -34         0.1890982092E-03
+ 44         35         0.2294695345E+00
+ 44        -35        -0.1324434248E+01
+ 44         36        -0.2495228266E+01
+ 44        -36        -0.8388175217E+00
+ 44         37        -0.1935588937E+01
+ 44        -37        -0.1445914036E+01
+ 44         38        -0.1004427860E+01
+ 44        -38        -0.2140951192E+00
+ 44         39         0.1805914942E+01
+ 44        -39        -0.5471972925E+00
+ 44         40         0.1788122866E+01
+ 44        -40         0.3793473935E+00
+ 44         41         0.1125290367E+01
+ 44        -41        -0.1444668257E+01
+ 44         42         0.3800526910E+00
+ 44        -42         0.2739684900E+00
+ 44         43        -0.6354010678E+00
+ 44        -43         0.4172243101E+00
+ 44         44        -0.1580298506E+01
+ 44        -44         0.1013165519E+01
+ 45          0         0.1771953635E+01
+ 45          1        -0.2166933833E+01
+ 45         -1        -0.3448559575E+00
+ 45          2        -0.8459772346E+00
+ 45         -2         0.8185249703E+00
+ 45          3         0.4202906622E+01
+ 45         -3         0.4688648021E+00
+ 45          4         0.2330816147E+00
+ 45         -4        -0.9276638568E+00
+ 45          5        -0.4042215037E+01
+ 45         -5        -0.4889251503E+00
+ 45          6         0.2691229035E+00
+ 45         -6         0.9414761583E+00
+ 45          7         0.2743534156E+01
+ 45         -7         0.5643611699E+00
+ 45          8        -0.1844542843E+00
+ 45         -8        -0.7606844344E+00
+ 45          9        -0.1830359928E+01
+ 45         -9        -0.7278830290E+00
+ 45         10         0.2745053954E+00
+ 45        -10         0.1627733556E+01
+ 45         11         0.2910926519E-01
+ 45        -11         0.3093986274E-01
+ 45         12         0.1244863398E+01
+ 45        -12         0.1634633092E+01
+ 45         13         0.9038310516E+00
+ 45        -13         0.3491237398E+00
+ 45         14        -0.6775615428E+00
+ 45        -14         0.1028922091E+01
+ 45         15         0.6411729695E+00
+ 45        -15        -0.1014675405E+01
+ 45         16        -0.8957486855E+00
+ 45        -16         0.5700845278E+00
+ 45         17         0.1418149293E+00
+ 45        -17         0.3945552034E-02
+ 45         18         0.2704683558E+01
+ 45        -18        -0.6036598878E+00
+ 45         19         0.1288826379E+01
+ 45        -19         0.5539996135E+00
+ 45         20        -0.1066361966E+01
+ 45        -20         0.1657330644E+01
+ 45         21         0.1223503744E+01
+ 45        -21         0.1114737482E+01
+ 45         22         0.2020127008E+01
+ 45        -22         0.3029457404E+00
+ 45         23        -0.1291722087E+01
+ 45        -23         0.2869590344E-01
+ 45         24        -0.2578429638E+01
+ 45        -24         0.6907721362E+00
+ 45         25        -0.1599760092E+01
+ 45        -25         0.1018265905E+01
+ 45         26         0.8581815651E+00
+ 45        -26         0.1359843801E+01
+ 45         27         0.1804703058E+01
+ 45        -27         0.8034218699E+00
+ 45         28         0.1700388600E+01
+ 45        -28        -0.1081357518E+01
+ 45         29         0.2945602470E+00
+ 45        -29        -0.9728667540E+00
+ 45         30         0.4605097248E+00
+ 45        -30         0.1738259819E+01
+ 45         31         0.3188434518E-01
+ 45        -31         0.2595645501E-01
+ 45         32        -0.6076472508E+00
+ 45        -32        -0.4077657270E+00
+ 45         33         0.2526913715E+00
+ 45        -33        -0.1667533896E+01
+ 45         34        -0.3678084917E+00
+ 45        -34        -0.3684155947E+00
+ 45         35        -0.1248194478E+01
+ 45        -35         0.1539124204E+01
+ 45         36         0.1546052305E+01
+ 45        -36         0.2158167581E+01
+ 45         37         0.2366493265E+01
+ 45        -37         0.1682665873E+01
+ 45         38         0.2796253655E+01
+ 45        -38        -0.1130785492E+01
+ 45         39        -0.1479164682E+01
+ 45        -39        -0.3283434229E+00
+ 45         40        -0.1263735607E+01
+ 45        -40        -0.1425506911E+00
+ 45         41        -0.2755569783E+00
+ 45        -41        -0.2312322204E+00
+ 45         42        -0.9010276021E+00
+ 45        -42        -0.2372393381E+00
+ 45         43         0.3876155640E+00
+ 45        -43        -0.7702670408E+00
+ 45         44        -0.1471996326E+00
+ 45        -44         0.5518806515E+00
+ 45         45        -0.1985239488E+01
+ 45        -45         0.1245351769E+01
+ 46          0        -0.1024484119E+01
+ 46          1        -0.1412197830E+01
+ 46         -1         0.6927526748E+00
+ 46          2         0.3733756832E+01
+ 46         -2        -0.1155997679E+01
+ 46          3        -0.1006348335E+01
+ 46         -3         0.7226600289E+00
+ 46          4        -0.4494435288E+01
+ 46         -4        -0.1047816690E+00
+ 46          5         0.3694738425E+01
+ 46         -5         0.1224562869E+00
+ 46          6         0.1845961609E+01
+ 46         -6        -0.5554587320E+00
+ 46          7        -0.3852480715E+01
+ 46         -7        -0.9421002941E+00
+ 46          8        -0.6872079695E+00
+ 46         -8         0.1519770150E+01
+ 46          9         0.1492237518E+01
+ 46         -9         0.2397252933E+01
+ 46         10         0.1485467627E+01
+ 46        -10        -0.2388037562E+01
+ 46         11        -0.6103110690E+00
+ 46        -11        -0.7919869026E+00
+ 46         12        -0.1461778048E+01
+ 46        -12         0.2623705031E+00
+ 46         13        -0.1144132323E+01
+ 46        -13        -0.1230056933E+01
+ 46         14         0.1683746256E+01
+ 46        -14        -0.6315783228E+00
+ 46         15        -0.2151370113E+01
+ 46        -15         0.1597896681E+00
+ 46         16         0.2002479217E+00
+ 46        -16        -0.8877917639E+00
+ 46         17         0.1123553407E+01
+ 46        -17        -0.6053485918E+00
+ 46         18        -0.1289628641E+01
+ 46        -18         0.2304181018E+00
+ 46         19        -0.1563162769E+01
+ 46        -19         0.1577532936E+00
+ 46         20         0.1337808313E+01
+ 46        -20        -0.2148574293E+00
+ 46         21         0.1032992321E+01
+ 46        -21        -0.1255921445E+01
+ 46         22        -0.7904580755E+00
+ 46        -22        -0.1969610788E+01
+ 46         23        -0.9034688942E+00
+ 46        -23        -0.4413177721E+00
+ 46         24        -0.2053410581E+00
+ 46        -24         0.2361555554E-01
+ 46         25         0.2467600172E+01
+ 46        -25         0.9246763027E+00
+ 46         26         0.2059012280E+01
+ 46        -26        -0.1001266427E+01
+ 46         27        -0.1652089137E+01
+ 46        -27        -0.1701881992E+01
+ 46         28        -0.2256842700E+01
+ 46        -28        -0.7582125824E+00
+ 46         29        -0.1512009115E+01
+ 46        -29         0.5090444538E+00
+ 46         30        -0.5212749397E+00
+ 46        -30        -0.9218054629E+00
+ 46         31         0.5999069885E+00
+ 46        -31        -0.1260605567E+01
+ 46         32        -0.2880362480E-01
+ 46        -32         0.1626691995E+00
+ 46         33         0.2422247350E+00
+ 46        -33         0.2814748854E+01
+ 46         34         0.5872822653E+00
+ 46        -34         0.6843172779E+00
+ 46         35         0.7289830316E+00
+ 46        -35        -0.2873559763E+00
+ 46         36         0.2892759012E+00
+ 46        -36        -0.1645925365E+01
+ 46         37        -0.1354467229E+01
+ 46        -37        -0.1007821137E+01
+ 46         38        -0.3047311615E+01
+ 46        -38         0.8055724777E+00
+ 46         39        -0.1657541098E+01
+ 46        -39        -0.5996732496E+00
+ 46         40        -0.1195377113E+01
+ 46        -40        -0.3346022539E-01
+ 46         41         0.1205895770E+01
+ 46        -41         0.1950263097E+00
+ 46         42         0.5373035289E+00
+ 46        -42        -0.1596748114E+00
+ 46         43         0.1098204121E+01
+ 46        -43         0.2172463587E+01
+ 46         44        -0.7767190172E+00
+ 46        -44        -0.7758479575E+00
+ 46         45         0.3333378919E+00
+ 46        -45        -0.2151419095E+01
+ 46         46         0.1574442178E+00
+ 46        -46        -0.1503283562E+01
+ 47          0         0.6453237022E+00
+ 47          1         0.1503533399E+01
+ 47         -1        -0.2456880285E+00
+ 47          2        -0.4455597730E+01
+ 47         -2         0.8017176282E+00
+ 47          3        -0.8165941555E+00
+ 47         -3         0.2379563411E-01
+ 47          4         0.4921726425E+01
+ 47         -4         0.1883016349E+00
+ 47          5        -0.2819464447E+00
+ 47         -5        -0.8465746819E-01
+ 47          6        -0.3064395019E+01
+ 47         -6         0.1120040596E+01
+ 47          7         0.9305901102E+00
+ 47         -7         0.5312221189E+00
+ 47          8         0.1817588786E+01
+ 47         -8        -0.1380873177E+01
+ 47          9         0.1555828005E+00
+ 47         -9        -0.1547260584E+01
+ 47         10        -0.2203995383E+01
+ 47        -10        -0.2315000765E+00
+ 47         11         0.1901706334E+00
+ 47        -11         0.2995750595E+00
+ 47         12         0.1158046797E+00
+ 47        -12        -0.1742116830E+01
+ 47         13         0.9941745054E-01
+ 47        -13         0.5325659928E+00
+ 47         14         0.8331650491E+00
+ 47        -14         0.1189237879E+01
+ 47         15         0.2019144527E+01
+ 47        -15         0.2422280574E+01
+ 47         16         0.2050964524E+01
+ 47        -16         0.9206943304E+00
+ 47         17        -0.9334257339E+00
+ 47        -17         0.1047742095E+01
+ 47         18        -0.1171425055E+01
+ 47        -18         0.2466744639E+00
+ 47         19         0.1455894007E+01
+ 47        -19        -0.5474349971E-01
+ 47         20         0.8583524099E+00
+ 47        -20         0.9917251428E+00
+ 47         21        -0.8049332992E+00
+ 47        -21         0.1254629988E+01
+ 47         22        -0.3362517426E+00
+ 47        -22         0.1301041492E+01
+ 47         23         0.1079481311E+01
+ 47        -23        -0.6390257334E+00
+ 47         24        -0.7636230229E+00
+ 47        -24         0.9518172580E-01
+ 47         25        -0.2948813600E+01
+ 47        -25        -0.4440935478E+00
+ 47         26        -0.2091999609E+01
+ 47        -26        -0.7587699338E+00
+ 47         27        -0.8132806212E-01
+ 47        -27         0.7551349704E+00
+ 47         28         0.1563053438E+01
+ 47        -28         0.1287852669E+01
+ 47         29         0.2231520557E+01
+ 47        -29         0.6569679732E+00
+ 47         30         0.5393476188E+00
+ 47        -30         0.4380492943E+00
+ 47         31         0.5124561545E+00
+ 47        -31         0.6483823635E+00
+ 47         32         0.6519948272E+00
+ 47        -32        -0.8217447731E-01
+ 47         33         0.2861648265E+00
+ 47        -33        -0.9395589604E+00
+ 47         34         0.8159193009E+00
+ 47        -34        -0.1033835507E+01
+ 47         35        -0.4707078997E+00
+ 47        -35        -0.1197769581E+01
+ 47         36        -0.2008741702E+01
+ 47        -36         0.7204817132E+00
+ 47         37        -0.1544647916E+01
+ 47        -37         0.3583294604E+00
+ 47         38         0.1024720276E+01
+ 47        -38         0.2491428227E+00
+ 47         39         0.2819479636E+01
+ 47        -39         0.5762312337E+00
+ 47         40         0.3754394578E+00
+ 47        -40        -0.7012249661E+00
+ 47         41        -0.2393708401E+00
+ 47        -41        -0.7497208797E+00
+ 47         42        -0.5027368692E+00
+ 47        -42        -0.3230625321E+00
+ 47         43        -0.1050812073E+00
+ 47        -43        -0.1109075925E+01
+ 47         44         0.7400717956E+00
+ 47        -44         0.5679939012E+00
+ 47         45        -0.1367496736E+01
+ 47        -45         0.1037942048E+01
+ 47         46        -0.5839262074E+00
+ 47        -46         0.1254767189E+01
+ 47         47        -0.7943356675E+00
+ 47        -47        -0.7998099792E+00
+ 48          0         0.1248753607E+00
+ 48          1        -0.6754767806E+00
+ 48         -1         0.9615238955E-02
+ 48          2         0.4302766967E+00
+ 48         -2        -0.3360014800E+00
+ 48          3         0.2625366921E+01
+ 48         -3        -0.1573723866E+01
+ 48          4        -0.2143230087E+01
+ 48         -4         0.1062201581E+01
+ 48          5        -0.3538087718E+01
+ 48         -5         0.1153483344E+01
+ 48          6         0.3649018638E+01
+ 48         -6        -0.1470520760E+01
+ 48          7         0.2927107012E+01
+ 48         -7        -0.1490043399E+01
+ 48          8        -0.2636829680E+01
+ 48         -8        -0.2814420302E-01
+ 48          9        -0.9830621167E+00
+ 48         -9         0.6846019235E+00
+ 48         10         0.1429621640E+01
+ 48        -10         0.3150001562E+01
+ 48         11         0.1687865952E+01
+ 48        -11         0.5236278344E+00
+ 48         12         0.6277161705E+00
+ 48        -12         0.1125665635E+01
+ 48         13         0.7187397537E-01
+ 48        -13         0.7849619019E+00
+ 48         14        -0.1031316271E+01
+ 48        -14        -0.1159464594E+01
+ 48         15         0.7951133957E-01
+ 48        -15        -0.2737855610E+01
+ 48         16        -0.3030811657E+01
+ 48        -16        -0.1298579247E+01
+ 48         17        -0.4585933595E+00
+ 48        -17        -0.2377379139E+00
+ 48         18         0.1824422521E+01
+ 48        -18        -0.5149965377E+00
+ 48         19        -0.4604300508E+00
+ 48        -19        -0.1064843988E+01
+ 48         20        -0.2698726988E+01
+ 48        -20        -0.1087380321E+01
+ 48         21        -0.8656754195E+00
+ 48        -21        -0.7324888915E+00
+ 48         22         0.5436025140E+00
+ 48        -22         0.3222647446E+00
+ 48         23         0.4245541898E+00
+ 48        -23        -0.8596242970E+00
+ 48         24         0.1732077121E+01
+ 48        -24        -0.9064431246E+00
+ 48         25         0.1267989852E+01
+ 48        -25        -0.6355065082E+00
+ 48         26         0.1908804293E+01
+ 48        -26         0.4301194576E+00
+ 48         27         0.2222561340E+01
+ 48        -27         0.2209724583E+00
+ 48         28         0.2443905276E-02
+ 48        -28        -0.1034693068E+01
+ 48         29        -0.6807409177E+00
+ 48        -29        -0.1815797481E+01
+ 48         30        -0.3475161119E-01
+ 48        -30         0.3180617251E+00
+ 48         31        -0.1664387384E+01
+ 48        -31        -0.9135258376E+00
+ 48         32        -0.2087667201E+01
+ 48        -32        -0.1218005333E+01
+ 48         33        -0.9900346447E+00
+ 48        -33        -0.2682253991E+00
+ 48         34        -0.1511551703E+01
+ 48        -34         0.2106552115E+01
+ 48         35         0.4070961838E+00
+ 48        -35         0.1268514353E+01
+ 48         36         0.1689596138E+01
+ 48        -36        -0.6170903338E-01
+ 48         37         0.1908914401E+01
+ 48        -37        -0.1036562002E+01
+ 48         38        -0.2250920248E+00
+ 48        -38        -0.6673505250E+00
+ 48         39        -0.2039751100E+01
+ 48        -39         0.2567423425E+00
+ 48         40         0.1897113292E+00
+ 48        -40         0.3801030112E+00
+ 48         41         0.4188497003E+00
+ 48        -41         0.4387117624E-01
+ 48         42         0.5439207669E+00
+ 48        -42         0.2037344480E+00
+ 48         43        -0.3067420365E+00
+ 48        -43         0.4569328398E+00
+ 48         44        -0.3360805243E+00
+ 48        -44        -0.8793686321E+00
+ 48         45         0.1024121695E+01
+ 48        -45         0.1353775418E+01
+ 48         46         0.4973377782E+00
+ 48        -46        -0.3466455326E-01
+ 48         47         0.8635080749E+00
+ 48        -47        -0.3653986331E+00
+ 48         48        -0.7809845657E-01
+ 48        -48        -0.1160449398E+01
+ 49          0        -0.3894734543E+00
+ 49          1         0.2267840300E+01
+ 49         -1         0.1466741449E-02
+ 49          2         0.2256322915E+01
+ 49         -2        -0.1061753699E+00
+ 49          3        -0.4896918203E+01
+ 49         -3         0.6281705520E+00
+ 49          4        -0.2424982972E+00
+ 49         -4        -0.1171164904E+01
+ 49          5         0.4117607429E+01
+ 49         -5        -0.1551269698E+01
+ 49          6        -0.2081277666E+01
+ 49         -6         0.5430916289E+00
+ 49          7        -0.3447427678E+01
+ 49         -7         0.2636866188E+01
+ 49          8         0.1492841556E+01
+ 49         -8         0.1273350475E+01
+ 49          9         0.1477032345E+01
+ 49         -9        -0.1217524922E+01
+ 49         10         0.3364274767E+00
+ 49        -10        -0.2212377620E+01
+ 49         11        -0.2263217442E+01
+ 49        -11         0.8291180195E-01
+ 49         12        -0.5033490604E+00
+ 49        -12         0.1100026753E+01
+ 49         13         0.9208711032E-01
+ 49        -13        -0.7933319625E+00
+ 49         14        -0.5680541633E-01
+ 49        -14         0.6586655936E+00
+ 49         15        -0.5683419875E+00
+ 49        -15         0.8946554596E+00
+ 49         16         0.2826026537E+01
+ 49        -16         0.1310775375E+01
+ 49         17         0.1423499458E+01
+ 49        -17        -0.4447541139E+00
+ 49         18        -0.1132204536E+01
+ 49        -18        -0.1856052924E+00
+ 49         19        -0.7701348772E+00
+ 49        -19         0.1220285653E+00
+ 49         20         0.1921283579E+01
+ 49        -20         0.7008296358E-01
+ 49         21         0.1708008933E+01
+ 49        -21         0.1271797395E+01
+ 49         22         0.9166886711E+00
+ 49        -22         0.1565864627E+01
+ 49         23        -0.9386034051E+00
+ 49        -23         0.2342557513E+01
+ 49         24        -0.7852580716E+00
+ 49        -24         0.1979464617E+00
+ 49         25        -0.7329838266E+00
+ 49        -25         0.4650800359E+00
+ 49         26        -0.1814284199E+01
+ 49        -26         0.7786380372E+00
+ 49         27        -0.1964467550E+01
+ 49        -27         0.2901314511E-01
+ 49         28         0.1414482608E+00
+ 49        -28        -0.7693005987E-01
+ 49         29        -0.6680412313E+00
+ 49        -29         0.1125087695E+01
+ 49         30         0.1765379710E+01
+ 49        -30         0.2739050749E+00
+ 49         31         0.1158059534E+01
+ 49        -31         0.4377224025E+00
+ 49         32         0.3023204534E+00
+ 49        -32         0.2917640915E+00
+ 49         33         0.2081570675E+01
+ 49        -33         0.6121579033E-01
+ 49         34         0.2928808110E-01
+ 49        -34        -0.1827046542E+00
+ 49         35         0.4927800225E+00
+ 49        -35         0.2942369801E-01
+ 49         36         0.1324684408E+01
+ 49        -36        -0.4665516771E+00
+ 49         37         0.3517908237E+00
+ 49        -37         0.9031013812E+00
+ 49         38        -0.8708320436E+00
+ 49        -38        -0.1244006696E+01
+ 49         39        -0.8516767956E+00
+ 49        -39        -0.1407635454E+01
+ 49         40        -0.1306253921E+01
+ 49        -40        -0.3207752677E+00
+ 49         41        -0.5152738380E+00
+ 49        -41        -0.1039677096E+01
+ 49         42         0.1476898156E+00
+ 49        -42        -0.1234172988E+00
+ 49         43         0.1108337403E+01
+ 49        -43         0.1488973905E+01
+ 49         44        -0.1247694496E+01
+ 49        -44         0.4054960277E+00
+ 49         45         0.3996196973E+00
+ 49        -45        -0.1023075850E+00
+ 49         46         0.7442652625E+00
+ 49        -46        -0.9135220250E+00
+ 49         47         0.4067990427E-01
+ 49        -47         0.1117881791E+01
+ 49         48        -0.3033345311E+00
+ 49        -48         0.2340529771E+00
+ 49         49         0.2512731087E-02
+ 49        -49        -0.1319546984E+01
+ 50          0         0.1282621656E+01
+ 50          1        -0.1889920874E+01
+ 50         -1         0.7182044597E+00
+ 50          2        -0.2529770748E+01
+ 50         -2        -0.2074424371E+00
+ 50          3         0.3353998922E+01
+ 50         -3         0.9391527150E-02
+ 50          4         0.2942515862E+01
+ 50         -4        -0.1411181323E+00
+ 50          5        -0.2313468416E+01
+ 50         -5         0.1497064386E+01
+ 50          6        -0.2064104395E+01
+ 50         -6         0.5047430236E+00
+ 50          7         0.2399806642E+01
+ 50         -7        -0.2239670599E+01
+ 50          8         0.1436035863E+01
+ 50         -8        -0.1153221060E+01
+ 50          9        -0.2335450942E+01
+ 50         -9         0.6209540023E+00
+ 50         10        -0.1904248861E+01
+ 50        -10        -0.7337020325E-01
+ 50         11         0.9626520031E+00
+ 50        -11         0.2339574120E+00
+ 50         12         0.4778991512E+00
+ 50        -12        -0.1137006817E+01
+ 50         13        -0.7273816533E+00
+ 50        -13         0.4109930964E+00
+ 50         14         0.5630738847E+00
+ 50        -14         0.5889329729E+00
+ 50         15         0.1149707683E+01
+ 50        -15         0.1188556681E+01
+ 50         16        -0.5665135062E+00
+ 50        -16        -0.1269801976E+01
+ 50         17        -0.1823104296E+01
+ 50        -17        -0.6594285869E+00
+ 50         18         0.4695742824E+00
+ 50        -18         0.1517397653E+01
+ 50         19         0.2345666686E+01
+ 50        -19         0.1206099686E+01
+ 50         20         0.6819322279E+00
+ 50        -20        -0.7894268287E+00
+ 50         21        -0.1018649945E+01
+ 50        -21        -0.1854100989E+01
+ 50         22        -0.1411381483E+01
+ 50        -22        -0.3214419242E+01
+ 50         23        -0.6223222043E+00
+ 50        -23        -0.1771051901E+01
+ 50         24        -0.1617673578E+01
+ 50        -24        -0.7383732400E-01
+ 50         25        -0.6785610227E-01
+ 50        -25        -0.1008427909E+01
+ 50         26         0.4524595208E+00
+ 50        -26        -0.4499933767E+00
+ 50         27         0.1239124223E+00
+ 50        -27        -0.6565678798E+00
+ 50         28         0.7604989195E+00
+ 50        -28        -0.7230814812E+00
+ 50         29         0.7051378080E-02
+ 50        -29        -0.4402291053E+00
+ 50         30        -0.5004550649E+00
+ 50        -30        -0.5191656920E+00
+ 50         31         0.9082777219E+00
+ 50        -31         0.3080479410E-01
+ 50         32         0.1452352299E+00
+ 50        -32        -0.3370000385E+00
+ 50         33        -0.4916469421E+00
+ 50        -33        -0.1822557803E+01
+ 50         34         0.4128998313E+00
+ 50        -34        -0.2580821467E+00
+ 50         35        -0.1360322794E+01
+ 50        -35         0.4974222311E+00
+ 50         36        -0.1981559491E+01
+ 50        -36         0.1432385929E+01
+ 50         37        -0.2383979646E+01
+ 50        -37        -0.2497424733E+00
+ 50         38        -0.2418837026E+00
+ 50        -38         0.6980409064E+00
+ 50         39         0.1004204251E+01
+ 50        -39        -0.5021828161E+00
+ 50         40         0.6301803915E+00
+ 50        -40         0.9528971805E+00
+ 50         41         0.1053627154E+00
+ 50        -41         0.1923176597E+01
+ 50         42         0.2367089681E+00
+ 50        -42         0.6103787141E+00
+ 50         43         0.1538949492E+01
+ 50        -43        -0.7787675647E+00
+ 50         44         0.8731181845E+00
+ 50        -44         0.9101837595E+00
+ 50         45        -0.1616692138E+01
+ 50        -45         0.1764684664E+00
+ 50         46        -0.1528742375E+01
+ 50        -46         0.2453459727E+00
+ 50         47        -0.1540302866E+01
+ 50        -47        -0.1450120636E+00
+ 50         48         0.2393180928E+01
+ 50        -48         0.3878337060E+00
+ 50         49         0.1079163724E+01
+ 50        -49        -0.1609240284E+00
+ 50         50        -0.1140781019E+01
+ 50        -50         0.1056139542E+01
+ 51          0        -0.2535571808E+01
+ 51          1        -0.6403081262E+00
+ 51         -1        -0.6760653854E+00
+ 51          2         0.2362846647E+01
+ 51         -2         0.3196872877E+00
+ 51          3         0.3045662903E+00
+ 51         -3         0.7109968100E+00
+ 51          4        -0.5141250256E+01
+ 51         -4         0.9431603180E+00
+ 51          5         0.9560462567E+00
+ 51         -5        -0.1371229917E+01
+ 51          6         0.5073067662E+01
+ 51         -6        -0.1824700229E+01
+ 51          7        -0.1203395067E+01
+ 51         -7         0.6715651654E+00
+ 51          8        -0.3121050338E+01
+ 51         -8         0.1292414713E+01
+ 51          9         0.1676516216E+01
+ 51         -9        -0.3169928958E-01
+ 51         10         0.2145997637E+01
+ 51        -10        -0.1196297968E+00
+ 51         11        -0.1492476556E+00
+ 51        -11        -0.6857756122E+00
+ 51         12        -0.1410067273E+01
+ 51        -12         0.6285234241E+00
+ 51         13         0.3747234520E+00
+ 51        -13         0.1002966910E+01
+ 51         14         0.2650167342E+00
+ 51        -14        -0.8027676589E+00
+ 51         15        -0.1256313226E+01
+ 51        -15        -0.9416198328E+00
+ 51         16        -0.1337649787E+01
+ 51        -16         0.1142575636E+01
+ 51         17         0.3494753849E+01
+ 51        -17         0.1219597872E+01
+ 51         18         0.1689496795E+01
+ 51        -18        -0.2158405428E+00
+ 51         19        -0.1827822738E+01
+ 51        -19        -0.1434308599E+01
+ 51         20        -0.2180844859E+01
+ 51        -20        -0.8564584379E-01
+ 51         21        -0.7668039941E+00
+ 51        -21         0.1264995275E+01
+ 51         22         0.3232305643E+00
+ 51        -22         0.1914446540E+01
+ 51         23         0.2395053687E+01
+ 51        -23         0.1350028353E+01
+ 51         24         0.2267067975E+01
+ 51        -24         0.2232605291E+01
+ 51         25         0.7097277757E+00
+ 51        -25        -0.5673620092E+00
+ 51         26         0.2107773479E+00
+ 51        -26        -0.1365609820E+01
+ 51         27         0.2113551449E+00
+ 51        -27         0.5210022377E+00
+ 51         28        -0.3499905593E+00
+ 51        -28         0.4247104060E+00
+ 51         29         0.3013656777E+00
+ 51        -29         0.9391239953E+00
+ 51         30         0.6078512446E+00
+ 51        -30         0.2375868298E+00
+ 51         31         0.7650004701E+00
+ 51        -31         0.3299086671E+00
+ 51         32         0.1649422044E+01
+ 51        -32         0.1335040638E+01
+ 51         33        -0.3015261518E+00
+ 51        -33         0.1544907872E+01
+ 51         34         0.3968718680E+00
+ 51        -34        -0.2225843050E+00
+ 51         35         0.4275342314E+00
+ 51        -35         0.4697836516E+00
+ 51         36         0.3017261976E+00
+ 51        -36         0.8805260356E+00
+ 51         37         0.1975506323E+01
+ 51        -37         0.3010570154E+00
+ 51         38         0.6418591143E+00
+ 51        -38         0.1593560424E+01
+ 51         39        -0.5733393317E+00
+ 51        -39        -0.6340791814E+00
+ 51         40        -0.3350757497E+00
+ 51        -40        -0.2259280610E+01
+ 51         41        -0.5219385405E+00
+ 51        -41        -0.1790910458E+01
+ 51         42        -0.4730752139E+00
+ 51        -42        -0.2176790746E+01
+ 51         43        -0.1928040373E+01
+ 51        -43        -0.7325590885E+00
+ 51         44        -0.4012491320E+00
+ 51        -44        -0.2849590971E+00
+ 51         45         0.2158169717E+00
+ 51        -45         0.1157629601E+01
+ 51         46         0.1219193100E+01
+ 51        -46        -0.5138987769E+00
+ 51         47         0.6638870798E+00
+ 51        -47        -0.7059560817E+00
+ 51         48        -0.2206082742E+01
+ 51        -48        -0.1420920539E+01
+ 51         49         0.3939442120E+00
+ 51        -49        -0.1121515929E+01
+ 51         50         0.1671759024E+01
+ 51        -50         0.9501932256E-01
+ 51         51         0.1237624984E+01
+ 51        -51         0.9908318873E+00
+ 52          0         0.2458600943E+01
+ 52          1         0.2802802451E+01
+ 52         -1         0.3739016422E+00
+ 52          2        -0.2852116292E+01
+ 52         -2         0.1104085587E-01
+ 52          3        -0.2983213916E+01
+ 52         -3        -0.1975659457E+01
+ 52          4         0.4811676846E+01
+ 52         -4        -0.7868792077E+00
+ 52          5         0.1648478772E+01
+ 52         -5         0.1078084783E+01
+ 52          6        -0.3413598634E+01
+ 52         -6         0.2205371862E+01
+ 52          7         0.2125523405E+00
+ 52         -7         0.4994804529E+00
+ 52          8         0.2824600411E+01
+ 52         -8        -0.2118040202E+01
+ 52          9         0.8714973403E+00
+ 52         -9        -0.8821589606E+00
+ 52         10        -0.1602350019E+01
+ 52        -10         0.9995880120E+00
+ 52         11        -0.1211309520E+01
+ 52        -11         0.1052503626E+01
+ 52         12         0.1712610909E+01
+ 52        -12         0.3293372018E+00
+ 52         13         0.5039387583E+00
+ 52        -13        -0.1479513411E+01
+ 52         14        -0.1144464985E+01
+ 52        -14        -0.8122929822E+00
+ 52         15        -0.2871116246E+00
+ 52        -15        -0.4755609834E+00
+ 52         16         0.1277630907E+01
+ 52        -16         0.1875460265E+01
+ 52         17        -0.2671299072E+01
+ 52        -17        -0.8094226099E+00
+ 52         18        -0.2809417917E+01
+ 52        -18        -0.2003431483E+01
+ 52         19         0.6980129141E-01
+ 52        -19         0.3493012048E+00
+ 52         20         0.2629517888E+01
+ 52        -20         0.2037386030E+01
+ 52         21         0.2493658547E+01
+ 52        -21         0.4078268980E+00
+ 52         22         0.1282158826E+01
+ 52        -22        -0.5967901439E+00
+ 52         23        -0.5211946457E+00
+ 52        -23        -0.1831184497E+01
+ 52         24        -0.3314060493E-01
+ 52        -24        -0.3085200312E+01
+ 52         25        -0.9033593594E+00
+ 52        -25        -0.1063460778E+01
+ 52         26         0.8270952478E-01
+ 52        -26        -0.3665412593E+00
+ 52         27         0.4377901145E+00
+ 52        -27         0.6550347209E+00
+ 52         28        -0.1988163574E+00
+ 52        -28         0.6159117673E+00
+ 52         29        -0.9580339312E+00
+ 52        -29        -0.1352323874E+01
+ 52         30        -0.1144972356E+01
+ 52        -30        -0.9710222033E+00
+ 52         31        -0.2394458261E+01
+ 52        -31        -0.3359574911E-01
+ 52         32        -0.1539699904E+01
+ 52        -32        -0.5937207392E+00
+ 52         33         0.6694976821E+00
+ 52        -33        -0.4054992297E+00
+ 52         34        -0.7586042684E+00
+ 52        -34        -0.1022322394E+01
+ 52         35         0.1117023261E+00
+ 52        -35         0.1918868834E+00
+ 52         36         0.3437142749E+00
+ 52        -36        -0.9451536219E+00
+ 52         37        -0.3027756942E+00
+ 52        -37        -0.2671651032E+00
+ 52         38        -0.1050121645E+01
+ 52        -38        -0.2360150255E+01
+ 52         39        -0.1781624885E+01
+ 52        -39        -0.1305543541E+00
+ 52         40         0.9487100260E-01
+ 52        -40        -0.5781891363E+00
+ 52         41         0.5665921949E+00
+ 52        -41         0.1188177608E+01
+ 52         42         0.2066597120E+00
+ 52        -42         0.3290397513E+01
+ 52         43         0.8119417903E+00
+ 52        -43         0.1651343264E+01
+ 52         44         0.4804505114E+00
+ 52        -44         0.5024214089E+00
+ 52         45         0.2588594347E+00
+ 52        -45         0.1488162255E+01
+ 52         46        -0.1097970493E+01
+ 52        -46         0.1281214001E+01
+ 52         47        -0.7185617197E+00
+ 52        -47         0.3290485474E+00
+ 52         48         0.4060617602E+00
+ 52        -48         0.6318008343E+00
+ 52         49        -0.2029471819E+01
+ 52        -49         0.6284903130E+00
+ 52         50         0.2549332650E+00
+ 52        -50        -0.1189742969E+01
+ 52         51        -0.1890309996E+01
+ 52        -51        -0.5222121431E+00
+ 52         52        -0.5895970766E+00
+ 52        -52         0.1565588084E+01
+ 53          0         0.1838743159E+00
+ 53          1        -0.3049486420E+01
+ 53         -1        -0.2602469557E+00
+ 53          2         0.1808802037E+01
+ 53         -2        -0.6487085483E+00
+ 53          3         0.3940216431E+01
+ 53         -3         0.1082507499E+01
+ 53          4        -0.2065905549E+01
+ 53         -4         0.3871951624E+00
+ 53          5        -0.4921238258E+01
+ 53         -5         0.2736986557E+00
+ 53          6         0.5566050208E+00
+ 53         -6        -0.1085982505E+00
+ 53          7         0.3122647063E+01
+ 53         -7        -0.3593972291E+00
+ 53          8        -0.1003831927E+01
+ 53         -8         0.1717934177E+01
+ 53          9        -0.2744235620E+01
+ 53         -9         0.1311687516E+01
+ 53         10         0.8426065289E+00
+ 53        -10        -0.1184706024E+01
+ 53         11         0.1246094484E+01
+ 53        -11        -0.1716849105E+01
+ 53         12        -0.1680301078E+01
+ 53        -12        -0.1729169737E+01
+ 53         13        -0.1718437482E+01
+ 53        -13         0.1113073262E+01
+ 53         14         0.8445462046E+00
+ 53        -14         0.2699182450E+01
+ 53         15         0.1509708083E+01
+ 53        -15         0.1542628689E+01
+ 53         16        -0.1882226973E+00
+ 53        -16        -0.2534804695E+01
+ 53         17        -0.3675165193E+00
+ 53        -17        -0.4141921352E+00
+ 53         18         0.3984026782E+01
+ 53        -18         0.1736244128E+01
+ 53         19         0.1939101687E+01
+ 53        -19         0.1246938970E+01
+ 53         20        -0.7787486682E+00
+ 53        -20        -0.9758575567E+00
+ 53         21        -0.1077850087E+01
+ 53        -21        -0.1248046991E+01
+ 53         22        -0.2157306518E+01
+ 53        -22        -0.2302158439E+00
+ 53         23        -0.2355944394E+01
+ 53        -23         0.1511472221E+01
+ 53         24        -0.9291328232E+00
+ 53        -24         0.3088591734E+01
+ 53         25         0.1435334009E+01
+ 53        -25         0.4154631851E+01
+ 53         26         0.2012058472E+00
+ 53        -26         0.2214849677E+01
+ 53         27        -0.6347038738E+00
+ 53        -27        -0.1626220601E+01
+ 53         28         0.1286092901E+01
+ 53        -28        -0.1097933397E+01
+ 53         29         0.1890625263E+01
+ 53        -29         0.1809402176E+00
+ 53         30         0.5128160881E+00
+ 53        -30         0.1250869574E+01
+ 53         31         0.1039145180E+01
+ 53        -31         0.8337403480E+00
+ 53         32         0.1143597682E+01
+ 53        -32         0.6538996153E+00
+ 53         33         0.2182567737E+01
+ 53        -33         0.2523795709E+00
+ 53         34        -0.1691684505E+00
+ 53        -34         0.1128817343E+01
+ 53         35        -0.1605741883E-01
+ 53        -35        -0.2509105718E+00
+ 53         36        -0.3985165650E+00
+ 53        -36         0.2399004375E+00
+ 53         37         0.2085299481E+00
+ 53        -37         0.9303505676E+00
+ 53         38         0.3247773022E+00
+ 53        -38         0.1025797680E+01
+ 53         39         0.1379679300E+01
+ 53        -39         0.5778643546E-01
+ 53         40         0.2482800634E+00
+ 53        -40         0.1842735821E+01
+ 53         41        -0.3657819301E+00
+ 53        -41         0.4772758543E+00
+ 53         42        -0.7925590973E+00
+ 53        -42        -0.3068502054E-01
+ 53         43        -0.6912841098E+00
+ 53        -43        -0.1152023229E+01
+ 53         44        -0.1245230448E+01
+ 53        -44        -0.1514267531E+01
+ 53         45         0.4714671943E+00
+ 53        -45        -0.2152783804E+01
+ 53         46        -0.3853113771E+00
+ 53        -46        -0.5505629367E+00
+ 53         47        -0.8096983245E-01
+ 53        -47         0.9012161149E+00
+ 53         48         0.1845268628E+01
+ 53        -48        -0.2589255343E+00
+ 53         49         0.4240222463E-01
+ 53        -49        -0.5715960287E+00
+ 53         50        -0.1865407794E+01
+ 53        -50        -0.5391227997E+00
+ 53         51         0.4681747010E+00
+ 53        -51        -0.1288586391E+01
+ 53         52         0.4167843750E+00
+ 53        -52        -0.6630283026E+00
+ 53         53         0.8374891269E+00
+ 53        -53         0.9453013196E+00
+ 54          0        -0.2318798278E+01
+ 54          1         0.3565142066E+01
+ 54         -1         0.6223651265E+00
+ 54          2         0.4990617090E+00
+ 54         -2         0.1621011719E+01
+ 54          3        -0.4342084094E+01
+ 54         -3         0.5232054197E+00
+ 54          4        -0.1840457673E+01
+ 54         -4        -0.1302507979E+01
+ 54          5         0.5605393414E+01
+ 54         -5        -0.7719695969E+00
+ 54          6         0.1035367325E+01
+ 54         -6        -0.1646008894E+00
+ 54          7        -0.3946017006E+01
+ 54         -7         0.4548580149E+00
+ 54          8         0.3091000201E+00
+ 54         -8         0.7801536431E-01
+ 54          9         0.2727368910E+01
+ 54         -9        -0.1220275782E+01
+ 54         10         0.9818813112E+00
+ 54        -10        -0.1211938450E+00
+ 54         11         0.1071444616E+00
+ 54        -11         0.6402469545E+00
+ 54         12         0.2996441170E+00
+ 54        -12         0.2017262980E+01
+ 54         13         0.1588134158E+01
+ 54        -13         0.2592385701E+00
+ 54         14         0.1465623503E+00
+ 54        -14        -0.2596551301E+01
+ 54         15        -0.1256705328E+01
+ 54        -15        -0.1970710670E+01
+ 54         16        -0.9988109159E-01
+ 54        -16        -0.2847882853E+00
+ 54         17         0.1582865919E+01
+ 54        -17         0.2929563956E+01
+ 54         18        -0.3042363389E+01
+ 54        -18         0.9706515015E+00
+ 54         19        -0.3440236622E+01
+ 54        -19        -0.2056508959E+01
+ 54         20        -0.1537556411E+01
+ 54        -20        -0.1141459198E+01
+ 54         21         0.3373529051E+00
+ 54        -21         0.1130702156E+01
+ 54         22         0.1341633034E+01
+ 54        -22         0.2112609364E+00
+ 54         23         0.2549451411E+01
+ 54        -23        -0.6146844497E+00
+ 54         24         0.1199323977E+01
+ 54        -24        -0.1392026583E+01
+ 54         25        -0.2139497775E+00
+ 54        -25        -0.3841082985E+01
+ 54         26         0.1291025295E+00
+ 54        -26        -0.2822096900E+01
+ 54         27         0.8282966916E+00
+ 54        -27        -0.1062516757E+01
+ 54         28         0.4712161850E+00
+ 54        -28         0.8563480999E+00
+ 54         29        -0.1209373439E+01
+ 54        -29         0.1926224161E+01
+ 54         30        -0.5490205375E+00
+ 54        -30        -0.1057174721E+01
+ 54         31        -0.5470522035E+00
+ 54        -31        -0.1064804009E+01
+ 54         32        -0.9476629036E+00
+ 54        -32         0.5850285518E+00
+ 54         33        -0.3451465508E+01
+ 54        -33        -0.6075290208E+00
+ 54         34        -0.2373906683E+00
+ 54        -34        -0.3554204499E+00
+ 54         35        -0.3705477363E+00
+ 54        -35        -0.4893635358E+00
+ 54         36        -0.1082925197E+01
+ 54        -36        -0.1333717182E+00
+ 54         37        -0.9133439346E-01
+ 54        -37        -0.1014196246E+01
+ 54         38        -0.2456205111E+00
+ 54        -38         0.7333115949E+00
+ 54         39         0.7565383271E+00
+ 54        -39        -0.1090951026E+01
+ 54         40        -0.5677269510E+00
+ 54        -40        -0.1448412902E+01
+ 54         41         0.4613147017E-01
+ 54        -41        -0.2004849060E+01
+ 54         42        -0.4324379553E+00
+ 54        -42        -0.1315209100E+01
+ 54         43        -0.1494418235E+01
+ 54        -43         0.7370331380E+00
+ 54         44        -0.4168775097E+00
+ 54        -44         0.1304904889E+01
+ 54         45        -0.1529163411E+01
+ 54        -45        -0.3705835368E-01
+ 54         46         0.6275791540E-01
+ 54        -46         0.7963738856E+00
+ 54         47        -0.7158446177E+00
+ 54        -47         0.1750064461E+01
+ 54         48        -0.7904287667E+00
+ 54        -48         0.8708911988E+00
+ 54         49         0.6403253064E-01
+ 54        -49         0.6686449791E+00
+ 54         50         0.3073543991E-01
+ 54        -50         0.2170374363E+01
+ 54         51         0.3411232731E+00
+ 54        -51         0.6971307531E+00
+ 54         52        -0.1672535206E+01
+ 54        -52         0.1358555122E+01
+ 54         53        -0.1330512757E+01
+ 54        -53         0.3366671316E+00
+ 54         54        -0.9839339382E+00
+ 54        -54        -0.3429845410E+00
+ 55          0         0.1702499582E+01
+ 55          1        -0.1823706733E+01
+ 55         -1        -0.6617741475E+00
+ 55          2        -0.2538521411E+01
+ 55         -2        -0.1107617723E+01
+ 55          3         0.2449551190E+01
+ 55         -3        -0.7456112967E+00
+ 55          4         0.4503021650E+01
+ 55         -4         0.6891648352E+00
+ 55          5        -0.2679767767E+01
+ 55         -5        -0.6614509808E+00
+ 55          6        -0.3462880095E+01
+ 55         -6        -0.6876272130E+00
+ 55          7         0.1107131579E+01
+ 55         -7        -0.3572295328E+00
+ 55          8         0.1508709828E+01
+ 55         -8        -0.1062379520E-01
+ 55          9        -0.1106511721E+01
+ 55         -9         0.1231527502E+01
+ 55         10        -0.1317494894E+01
+ 55        -10         0.2060797302E+01
+ 55         11         0.1072244721E+00
+ 55        -11         0.7957307216E+00
+ 55         12         0.1048529102E+01
+ 55        -12        -0.1961005445E+01
+ 55         13        -0.1056971212E+01
+ 55        -13        -0.2737624161E+01
+ 55         14        -0.1639255566E+01
+ 55        -14         0.1150356225E+01
+ 55         15        -0.8752489689E-01
+ 55        -15         0.2929068731E+01
+ 55         16         0.1728337237E+00
+ 55        -16         0.2993541599E+01
+ 55         17        -0.7241998713E+00
+ 55        -17        -0.2722989390E+01
+ 55         18         0.1090805468E+01
+ 55        -18        -0.3041231201E+01
+ 55         19         0.4484117594E+01
+ 55        -19         0.1994286443E+00
+ 55         20         0.1783611948E+01
+ 55        -20         0.2279873525E+01
+ 55         21         0.1220949621E-01
+ 55        -21         0.5461392826E+00
+ 55         22         0.1065583990E+01
+ 55        -22         0.3154878924E+00
+ 55         23        -0.2575733328E+00
+ 55        -23        -0.6850563251E+00
+ 55         24        -0.1368224685E+01
+ 55        -24        -0.4237290349E+00
+ 55         25        -0.1459054903E+01
+ 55        -25         0.1711012696E+01
+ 55         26         0.1384870570E+01
+ 55        -26         0.3301980252E+01
+ 55         27         0.1192857630E-01
+ 55        -27         0.3527308456E+01
+ 55         28        -0.2371559979E+01
+ 55        -28         0.7307946362E+00
+ 55         29        -0.5972384717E-01
+ 55        -29        -0.7486898819E+00
+ 55         30         0.2412624325E+01
+ 55        -30         0.1028310411E+00
+ 55         31        -0.4979482470E+00
+ 55        -31         0.8689659309E+00
+ 55         32        -0.7821732218E+00
+ 55        -32        -0.1312455064E+01
+ 55         33         0.4692788714E+00
+ 55        -33         0.8898421014E+00
+ 55         34         0.2027427684E+01
+ 55        -34         0.4304253453E+00
+ 55         35         0.9818607953E+00
+ 55        -35         0.3507619469E+00
+ 55         36        -0.8266013211E-01
+ 55        -36        -0.8821142085E+00
+ 55         37        -0.5567219802E+00
+ 55        -37        -0.7920344243E+00
+ 55         38         0.8417526222E+00
+ 55        -38        -0.1069695369E+00
+ 55         39        -0.7618581425E+00
+ 55        -39        -0.3784451135E+00
+ 55         40        -0.2643730470E+00
+ 55        -40        -0.1346811765E+01
+ 55         41        -0.2364528311E+00
+ 55        -41         0.2050049003E+01
+ 55         42         0.3186084717E+00
+ 55        -42         0.2233522426E+01
+ 55         43         0.6083190290E+00
+ 55        -43         0.2770978421E+00
+ 55         44         0.6885355973E+00
+ 55        -44        -0.1153233934E+01
+ 55         45         0.6043967301E+00
+ 55        -45        -0.9519290536E-01
+ 55         46         0.4072414433E+00
+ 55        -46        -0.5948667760E+00
+ 55         47         0.4059945094E+00
+ 55        -47        -0.1712311571E+01
+ 55         48        -0.3508769553E+00
+ 55        -48        -0.4175986965E+00
+ 55         49         0.5736762888E+00
+ 55        -49         0.3927875053E+00
+ 55         50         0.1231223816E+01
+ 55        -50        -0.5878442132E-01
+ 55         51        -0.1572624838E+01
+ 55        -51        -0.4697790393E+00
+ 55         52         0.1080022704E+01
+ 55        -52        -0.2126275340E+01
+ 55         53        -0.5187423668E+00
+ 55        -53        -0.5834067286E+00
+ 55         54        -0.5276163800E-01
+ 55        -54         0.5846232985E+00
+ 55         55        -0.2665833753E+00
+ 55        -55        -0.1352997311E+01
+ 56          0        -0.1300162667E+01
+ 56          1        -0.1145483989E+01
+ 56         -1        -0.5544245473E+00
+ 56          2         0.3744800509E+01
+ 56         -2        -0.4530699030E+00
+ 56          3         0.6113784722E-01
+ 56         -3        -0.9193821819E-01
+ 56          4        -0.4900938998E+01
+ 56         -4        -0.8895326511E-02
+ 56          5        -0.4509046069E+00
+ 56         -5         0.1125599515E+01
+ 56          6         0.5238556868E+01
+ 56         -6         0.9171484367E+00
+ 56          7         0.6725291901E+00
+ 56         -7        -0.6296240667E-01
+ 56          8        -0.2499869853E+01
+ 56         -8        -0.2347108796E+00
+ 56          9         0.1006682565E+00
+ 56         -9         0.7073072382E+00
+ 56         10         0.3169334581E+00
+ 56        -10        -0.1258896454E+01
+ 56         11        -0.7876601319E+00
+ 56        -11        -0.1173247702E+01
+ 56         12        -0.1485015289E+00
+ 56        -12         0.9514119726E+00
+ 56         13         0.1973701870E+00
+ 56        -13         0.3414251864E+01
+ 56         14         0.2058729955E+01
+ 56        -14         0.4679430387E+00
+ 56         15         0.9974781618E+00
+ 56        -15        -0.3453352762E+01
+ 56         16         0.3922458203E-01
+ 56        -16        -0.3217488346E+01
+ 56         17         0.3242539566E-01
+ 56        -17         0.1776865744E+00
+ 56         18         0.8043081681E+00
+ 56        -18         0.3620425490E+01
+ 56         19        -0.2340496299E+01
+ 56        -19         0.2533533862E+01
+ 56         20        -0.1307631683E+01
+ 56        -20        -0.5690954882E+00
+ 56         21        -0.9425397572E+00
+ 56        -21        -0.1769842135E+01
+ 56         22        -0.1486872567E+01
+ 56        -22        -0.7914363955E+00
+ 56         23        -0.1311908331E+01
+ 56        -23         0.2780396587E+00
+ 56         24         0.1625879670E+00
+ 56        -24         0.3509437792E+00
+ 56         25         0.1030839921E+01
+ 56        -25         0.9677325639E+00
+ 56         26        -0.1408947287E+01
+ 56        -26        -0.2263661911E+01
+ 56         27        -0.7098367456E+00
+ 56        -27        -0.3272697088E+01
+ 56         28         0.1322195386E+01
+ 56        -28        -0.1975184761E+01
+ 56         29         0.1644890759E+01
+ 56        -29        -0.5302382807E+00
+ 56         30        -0.1048999316E+01
+ 56        -30         0.1124568566E+01
+ 56         31         0.1322051682E-01
+ 56        -31        -0.3458769945E+00
+ 56         32         0.7718433666E+00
+ 56        -32         0.6962361242E-01
+ 56         33         0.1710543406E+01
+ 56        -33         0.1382940272E+01
+ 56         34        -0.2584912381E+01
+ 56        -34        -0.4020558614E+00
+ 56         35        -0.6453892209E+00
+ 56        -35        -0.5430425169E+00
+ 56         36         0.1614938615E+00
+ 56        -36         0.1355330238E+00
+ 56         37         0.2562983943E+00
+ 56        -37         0.7340321603E+00
+ 56         38        -0.3024160234E+00
+ 56        -38        -0.3565280088E+00
+ 56         39         0.1076940557E+00
+ 56        -39         0.1490693619E+00
+ 56         40         0.2636372316E+00
+ 56        -40         0.4161156606E+00
+ 56         41         0.7708600965E+00
+ 56        -41        -0.8343288861E+00
+ 56         42        -0.8918586468E-01
+ 56        -42        -0.4268054755E+00
+ 56         43        -0.1349846256E+01
+ 56        -43        -0.1499151876E+01
+ 56         44        -0.1550003541E+01
+ 56        -44        -0.5651595561E+00
+ 56         45         0.2771697328E+00
+ 56        -45        -0.9498518506E+00
+ 56         46        -0.1211502029E+01
+ 56        -46        -0.3841079382E+00
+ 56         47        -0.1189353717E+01
+ 56        -47         0.6015076650E+00
+ 56         48        -0.1403994285E+01
+ 56        -48         0.6478176022E+00
+ 56         49        -0.5397950870E+00
+ 56        -49        -0.3893447065E+00
+ 56         50         0.1320479898E+00
+ 56        -50         0.1595469744E-01
+ 56         51         0.4404181954E+00
+ 56        -51         0.1319315482E+01
+ 56         52        -0.7970880478E+00
+ 56        -52         0.2379574560E+01
+ 56         53         0.1696062427E+01
+ 56        -53         0.8427600158E+00
+ 56         54        -0.3800191713E+00
+ 56        -54         0.1302340504E+01
+ 56         55         0.1536921385E+00
+ 56        -55         0.1171382859E+01
+ 56         56        -0.4810188076E+00
+ 56        -56        -0.8169202882E+00
+ 57          0         0.1483054744E+01
+ 57          1         0.2683239823E+01
+ 57         -1         0.1308854264E+01
+ 57          2        -0.2842844647E+01
+ 57         -2         0.1336919245E+00
+ 57          3        -0.1758910516E+01
+ 57         -3         0.5061529890E+00
+ 57          4         0.2913236732E+01
+ 57         -4         0.4014121499E+00
+ 57          5         0.3098348878E+01
+ 57         -5        -0.1198539687E-01
+ 57          6        -0.3420021399E+01
+ 57         -6        -0.7370315441E+00
+ 57          7        -0.1635176218E+01
+ 57         -7        -0.1593540145E+00
+ 57          8         0.1643574602E+01
+ 57         -8        -0.3320169063E+00
+ 57          9         0.8393598809E+00
+ 57         -9        -0.1670968918E+01
+ 57         10        -0.3534149051E+00
+ 57        -10        -0.8104452614E+00
+ 57         11        -0.2949395725E+00
+ 57        -11         0.1607157721E+01
+ 57         12        -0.6302785416E+00
+ 57        -12         0.1295502317E+01
+ 57         13        -0.6271309158E-01
+ 57        -13        -0.2230311131E+01
+ 57         14        -0.9224035760E+00
+ 57        -14        -0.2684510330E+01
+ 57         15        -0.9273177227E+00
+ 57        -15         0.2341668150E+01
+ 57         16        -0.9482016242E-01
+ 57        -16         0.3032131305E+01
+ 57         17        -0.8086272859E+00
+ 57        -17         0.2670237982E+01
+ 57         18        -0.1518749850E+01
+ 57        -18        -0.1375128285E+01
+ 57         19         0.1037220000E+01
+ 57        -19        -0.3109664956E+01
+ 57         20         0.3281884813E+01
+ 57        -20        -0.9159090642E+00
+ 57         21         0.8951868525E+00
+ 57        -21         0.1285871767E+01
+ 57         22        -0.6405687507E+00
+ 57        -22         0.1714312961E+01
+ 57         23         0.2095865575E+01
+ 57        -23         0.1438565184E+01
+ 57         24         0.1277681689E+01
+ 57        -24        -0.7065475854E+00
+ 57         25         0.1650415188E+00
+ 57        -25        -0.1810638939E+01
+ 57         26        -0.4065343671E+00
+ 57        -26         0.9370051109E+00
+ 57         27         0.1564299572E+01
+ 57        -27         0.1389991442E+01
+ 57         28         0.1658702265E+01
+ 57        -28         0.2203819993E+01
+ 57         29        -0.2750938345E+01
+ 57        -29         0.4742481228E+00
+ 57         30        -0.1578568131E+01
+ 57        -30        -0.6604470200E+00
+ 57         31         0.1026041023E+01
+ 57        -31         0.1153136636E+01
+ 57         32         0.2236958140E+00
+ 57        -32         0.1842334281E+01
+ 57         33        -0.2352762888E+01
+ 57        -33        -0.1449907847E+01
+ 57         34        -0.4966755162E+00
+ 57        -34        -0.9282625088E-01
+ 57         35         0.3101755113E+00
+ 57        -35         0.6261766997E+00
+ 57         36         0.7666955225E-01
+ 57        -36        -0.1987473237E+00
+ 57         37         0.5388581409E-03
+ 57        -37        -0.9275072135E+00
+ 57         38        -0.3900423731E+00
+ 57        -38        -0.8250648844E+00
+ 57         39         0.1217364434E+01
+ 57        -39         0.4070317443E+00
+ 57         40         0.1323744922E+00
+ 57        -40         0.2447725154E+00
+ 57         41         0.5966504002E+00
+ 57        -41        -0.1778264875E+01
+ 57         42        -0.6805968289E+00
+ 57        -42        -0.6786543370E+00
+ 57         43        -0.6775596236E+00
+ 57        -43         0.1183190675E+01
+ 57         44         0.5621299753E+00
+ 57        -44         0.7008952777E+00
+ 57         45         0.1312312115E+01
+ 57        -45        -0.1075981658E+01
+ 57         46         0.2039337002E+01
+ 57        -46        -0.6523983946E-01
+ 57         47         0.9388184774E+00
+ 57        -47         0.1746065330E+00
+ 57         48         0.1217464562E+01
+ 57        -48        -0.3798466168E+00
+ 57         49        -0.5719316551E+00
+ 57        -49         0.8851359801E-01
+ 57         50         0.3299279209E+00
+ 57        -50        -0.4480016446E+00
+ 57         51         0.6577959700E+00
+ 57        -51        -0.1120553240E+01
+ 57         52         0.3314969858E+00
+ 57        -52         0.3629033810E+00
+ 57         53        -0.2607629746E+00
+ 57        -53        -0.1624513855E+01
+ 57         54         0.4881214301E+00
+ 57        -54        -0.2272105017E+01
+ 57         55         0.1348167323E+01
+ 57        -55        -0.9447948290E+00
+ 57         56         0.5153635710E+00
+ 57        -56        -0.9325559606E+00
+ 57         57         0.5634515592E+00
+ 57        -57        -0.2582806698E+00
+ 58          0         0.2933063056E+00
+ 58          1        -0.1599775182E+01
+ 58         -1        -0.1139194041E+00
+ 58          2        -0.3861523686E+00
+ 58         -2         0.1352238754E+01
+ 58          3         0.2668073325E+01
+ 58         -3        -0.8126569308E+00
+ 58          4         0.3586812863E-01
+ 58         -4        -0.1387709105E+01
+ 58          5        -0.4279135275E+01
+ 58         -5        -0.1088944300E+01
+ 58          6        -0.2084455071E-01
+ 58         -6         0.1409976332E+01
+ 58          7         0.2463409008E+01
+ 58         -7         0.6076977135E+00
+ 58          8        -0.5940057614E+00
+ 58         -8        -0.1783117338E+00
+ 58          9        -0.4934123130E+00
+ 58         -9         0.8120571028E+00
+ 58         10         0.7901077480E+00
+ 58        -10         0.2081799332E+01
+ 58         11         0.7263033576E+00
+ 58        -11        -0.1336945426E+01
+ 58         12         0.7280270769E+00
+ 58        -12        -0.2437165278E+01
+ 58         13         0.9999604557E+00
+ 58        -13         0.9062783871E+00
+ 58         14        -0.7040940587E+00
+ 58        -14         0.3771266049E+01
+ 58         15         0.4944105030E+00
+ 58        -15         0.8185428813E-02
+ 58         16         0.8616545506E+00
+ 58        -16        -0.3547637553E+01
+ 58         17         0.5776977428E+00
+ 58        -17        -0.3142727343E+01
+ 58         18         0.2433828113E+00
+ 58        -18        -0.1736514098E+00
+ 58         19        -0.1214070785E+01
+ 58        -19         0.1988325900E+01
+ 58         20        -0.3007179789E+01
+ 58        -20         0.2319794218E+01
+ 58         21        -0.7151057257E+00
+ 58        -21         0.7956834002E+00
+ 58         22         0.1259973163E+01
+ 58        -22        -0.1052133014E+01
+ 58         23        -0.1104682773E+00
+ 58        -23        -0.1983741328E+01
+ 58         24        -0.1520457424E+01
+ 58        -24        -0.1200488925E+01
+ 58         25        -0.1217938472E+01
+ 58        -25        -0.8495750007E+00
+ 58         26         0.3443539917E+00
+ 58        -26        -0.1022045298E+00
+ 58         27        -0.1469569997E+01
+ 58        -27        -0.3405971951E+00
+ 58         28        -0.1060355889E+01
+ 58        -28        -0.9500803102E+00
+ 58         29         0.1016017126E+01
+ 58        -29        -0.7738954755E+00
+ 58         30         0.1886113893E+01
+ 58        -30        -0.4162916853E+00
+ 58         31        -0.8756611568E+00
+ 58        -31        -0.2054545620E+00
+ 58         32        -0.5713602563E+00
+ 58        -32        -0.2252617308E+01
+ 58         33         0.4384854170E+00
+ 58        -33        -0.3197679882E+00
+ 58         34         0.2578959436E+01
+ 58        -34         0.1350769440E+01
+ 58         35        -0.1353118416E+00
+ 58        -35         0.9474436067E+00
+ 58         36        -0.6764402680E+00
+ 58        -36         0.1528913834E+00
+ 58         37         0.5713006501E+00
+ 58        -37        -0.4636528975E+00
+ 58         38         0.2759642754E+00
+ 58        -38         0.7865934793E+00
+ 58         39        -0.1943581917E+00
+ 58        -39        -0.4580408397E-01
+ 58         40        -0.3492486811E+00
+ 58        -40        -0.3591024623E-01
+ 58         41        -0.3039970918E+00
+ 58        -41         0.1358080868E+01
+ 58         42         0.5043571971E+00
+ 58        -42        -0.9999487477E-01
+ 58         43         0.1005351007E-01
+ 58        -43         0.1124288090E+01
+ 58         44        -0.2194318390E+00
+ 58        -44        -0.7250835197E-01
+ 58         45        -0.1652334544E+01
+ 58        -45         0.5924066177E+00
+ 58         46        -0.2501545582E+00
+ 58        -46         0.2968175723E+00
+ 58         47        -0.2079953613E+00
+ 58        -47        -0.1582842941E+00
+ 58         48        -0.6225462436E+00
+ 58        -48        -0.1442306913E+01
+ 58         49         0.2112410321E+00
+ 58        -49        -0.8936412178E+00
+ 58         50        -0.1101447978E+01
+ 58        -50         0.7108832129E+00
+ 58         51        -0.4496062197E+00
+ 58        -51         0.4052041225E+00
+ 58         52        -0.5827240556E+00
+ 58        -52        -0.8555047587E+00
+ 58         53        -0.1117825773E+01
+ 58        -53         0.1482589217E+01
+ 58         54        -0.1056056477E+00
+ 58        -54         0.1807466518E+01
+ 58         55        -0.9112191153E+00
+ 58        -55         0.1523769031E+01
+ 58         56         0.6022813548E+00
+ 58        -56         0.2030616142E+00
+ 58         57         0.8010273872E+00
+ 58        -57        -0.1438341474E+01
+ 58         58         0.3216253160E+00
+ 58        -58        -0.6633758526E+00
+ 59          0        -0.2166006475E+01
+ 59          1         0.2729521704E+00
+ 59         -1        -0.9370105314E+00
+ 59          2         0.2708121550E+01
+ 59         -2        -0.8367991494E+00
+ 59          3        -0.2386119051E+01
+ 59         -3        -0.2199472494E+00
+ 59          4        -0.1673304994E+01
+ 59         -4         0.9591955071E+00
+ 59          5         0.3165406597E+01
+ 59         -5         0.1141663781E+01
+ 59          6         0.2119677189E+01
+ 59         -6        -0.1192686746E+01
+ 59          7        -0.2863954357E+01
+ 59         -7        -0.3919568582E+00
+ 59          8        -0.5068020748E+00
+ 59         -8         0.1662350839E+01
+ 59          9         0.3086613792E+00
+ 59         -9         0.4091505948E+00
+ 59         10         0.3100740637E+00
+ 59        -10        -0.2058319836E+01
+ 59         11         0.1121288711E+00
+ 59        -11        -0.8961745416E+00
+ 59         12        -0.6216015401E+00
+ 59        -12         0.1981624509E+01
+ 59         13        -0.1700277080E+01
+ 59        -13         0.9231893497E+00
+ 59         14         0.2571431311E+00
+ 59        -14        -0.3192881405E+01
+ 59         15        -0.6562226959E+00
+ 59        -15        -0.2453268420E+01
+ 59         16        -0.1361434641E+01
+ 59        -16         0.3237123639E+01
+ 59         17         0.4320203785E+00
+ 59        -17         0.2965823849E+01
+ 59         18         0.3484366308E+00
+ 59        -18         0.8143629419E+00
+ 59         19        -0.1278684293E+00
+ 59        -19        -0.7272689126E+00
+ 59         20         0.1160023903E+01
+ 59        -20        -0.1942096685E+01
+ 59         21         0.1598224654E+01
+ 59        -21        -0.1498638761E+01
+ 59         22         0.4133061280E+00
+ 59        -22        -0.1003554679E+00
+ 59         23        -0.1574896542E+01
+ 59        -23         0.1589884446E+01
+ 59         24         0.1301154647E+01
+ 59        -24         0.3545388823E+01
+ 59         25         0.2692813403E+01
+ 59        -25         0.1657027741E+01
+ 59         26         0.1126279675E+01
+ 59        -26        -0.8239907394E+00
+ 59         27         0.4165663697E+00
+ 59        -27         0.1301997527E+01
+ 59         28         0.6662777710E+00
+ 59        -28         0.6930805583E+00
+ 59         29         0.1979981380E+01
+ 59        -29         0.6669564055E+00
+ 59         30        -0.7231492374E+00
+ 59        -30        -0.6541968857E-01
+ 59         31        -0.7230372707E+00
+ 59        -31        -0.1424958601E+01
+ 59         32         0.5410227664E+00
+ 59        -32         0.4082862736E+00
+ 59         33         0.1864946327E+00
+ 59        -33         0.2257503342E+01
+ 59         34        -0.2933878132E+01
+ 59        -34        -0.1061633097E+01
+ 59         35        -0.8349003747E+00
+ 59        -35        -0.1485022789E+00
+ 59         36        -0.4066193276E+00
+ 59        -36        -0.2355959004E+00
+ 59         37         0.2889397424E-01
+ 59        -37        -0.6577977956E+00
+ 59         38        -0.4871246396E+00
+ 59        -38        -0.1063384253E+01
+ 59         39         0.1293309246E+00
+ 59        -39        -0.3827991922E+00
+ 59         40        -0.6158390077E+00
+ 59        -40         0.5066372292E-01
+ 59         41         0.9702867931E+00
+ 59        -41         0.8897568772E+00
+ 59         42         0.1304084447E+01
+ 59        -42         0.3813621518E+00
+ 59         43         0.1260731035E+01
+ 59        -43        -0.1319060996E+01
+ 59         44        -0.9067187902E+00
+ 59        -44        -0.1104933327E+01
+ 59         45         0.7203094037E+00
+ 59        -45        -0.1449893013E+01
+ 59         46         0.9281060887E+00
+ 59        -46         0.9196786885E-01
+ 59         47         0.1444653976E+01
+ 59        -47         0.1054158843E+01
+ 59         48        -0.1267782183E+00
+ 59        -48         0.9604725415E+00
+ 59         49         0.1128760729E+01
+ 59        -49         0.1555388753E+00
+ 59         50         0.1524672943E+01
+ 59        -50        -0.5858780223E+00
+ 59         51         0.1125969849E+01
+ 59        -51         0.4693988799E+00
+ 59         52         0.1205731214E+00
+ 59        -52         0.2452959168E+00
+ 59         53         0.8826587124E+00
+ 59        -53        -0.4933142820E+00
+ 59         54         0.2960915598E+00
+ 59        -54        -0.5941353791E+00
+ 59         55         0.1809668608E+01
+ 59        -55        -0.1521349579E+01
+ 59         56        -0.4220682493E+00
+ 59        -56        -0.1920778002E+00
+ 59         57         0.7492561278E+00
+ 59        -57         0.4314746930E+00
+ 59         58         0.8961976131E+00
+ 59        -58        -0.2374790278E+00
+ 59         59         0.1267444818E+01
+ 59        -59         0.8794895076E+00
+ 60          0         0.1272743952E+01
+ 60          1         0.1264978139E+01
+ 60         -1         0.3182524677E+00
+ 60          2        -0.1761697366E+01
+ 60         -2        -0.2666370970E+00
+ 60          3        -0.3206363736E+00
+ 60         -3         0.2184145133E+01
+ 60          4         0.2184235822E+01
+ 60         -4        -0.4132369380E+00
+ 60          5         0.1626361852E+00
+ 60         -5        -0.1265382043E+01
+ 60          6        -0.2343880431E+01
+ 60         -6        -0.3704541202E+00
+ 60          7         0.1884341432E+01
+ 60         -7         0.4939486349E+00
+ 60          8         0.1717112539E+01
+ 60         -8        -0.1678112441E+01
+ 60          9        -0.7921119359E+00
+ 60         -9        -0.1213386905E+01
+ 60         10        -0.7678146419E+00
+ 60        -10         0.1666102519E+01
+ 60         11        -0.9724008091E+00
+ 60        -11         0.3230052974E+01
+ 60         12         0.3706813019E-01
+ 60        -12        -0.9076796748E+00
+ 60         13         0.1541268618E+01
+ 60        -13        -0.2581667605E+01
+ 60         14         0.1382192417E+01
+ 60        -14         0.1495817366E+01
+ 60         15         0.6612510434E-01
+ 60        -15         0.3253733704E+01
+ 60         16         0.8238600525E+00
+ 60        -16        -0.8520448812E+00
+ 60         17         0.4701914132E+00
+ 60        -17        -0.3041565294E+01
+ 60         18         0.5150845277E+00
+ 60        -18        -0.1805905272E+01
+ 60         19         0.9761895199E+00
+ 60        -19         0.5423035553E+00
+ 60         20        -0.8489431519E+00
+ 60        -20         0.1128201747E+01
+ 60         21        -0.1972231266E+01
+ 60        -21         0.1112469261E+01
+ 60         22        -0.9459086290E+00
+ 60        -22         0.1443789711E+01
+ 60         23         0.1479968738E+00
+ 60        -23         0.5061969486E+00
+ 60         24        -0.2655429787E+00
+ 60        -24        -0.2050794422E+01
+ 60         25        -0.9043509909E+00
+ 60        -25        -0.6926233840E+00
+ 60         26        -0.1397001388E+01
+ 60        -26        -0.5787056139E+00
+ 60         27        -0.4505396095E+00
+ 60        -27        -0.2150616689E+01
+ 60         28        -0.1541320578E+01
+ 60        -28        -0.1118618756E+01
+ 60         29        -0.2164451238E+01
+ 60        -29         0.2275099983E+00
+ 60         30        -0.2779436457E-01
+ 60        -30         0.1401014249E+01
+ 60         31         0.1586318376E+01
+ 60        -31         0.1007587196E+01
+ 60         32         0.9707493874E+00
+ 60        -32         0.6518977402E+00
+ 60         33         0.4587954690E+00
+ 60        -33        -0.2781780956E+01
+ 60         34         0.1610678497E+01
+ 60        -34        -0.1309879104E+01
+ 60         35         0.1834106447E+01
+ 60        -35        -0.3126482180E+00
+ 60         36         0.1104280458E+01
+ 60        -36         0.1615056325E+01
+ 60         37        -0.6259512826E+00
+ 60        -37         0.1982875966E+01
+ 60         38         0.7208928298E-01
+ 60        -38         0.4000395799E+00
+ 60         39         0.8074709522E+00
+ 60        -39         0.4775096185E+00
+ 60         40        -0.4538707897E+00
+ 60        -40         0.2873763616E+00
+ 60         41        -0.5428424190E+00
+ 60        -41        -0.1154086452E+01
+ 60         42        -0.1900777692E+01
+ 60        -42         0.6236348385E-02
+ 60         43        -0.1764100633E+01
+ 60        -43         0.4621165207E+00
+ 60         44        -0.6250390997E+00
+ 60        -44         0.1324468149E+01
+ 60         45        -0.1911516992E+00
+ 60        -45         0.1464659724E+01
+ 60         46        -0.1481513656E+01
+ 60        -46         0.1231607196E+01
+ 60         47        -0.1102715523E+01
+ 60        -47        -0.8411718016E-01
+ 60         48        -0.2844625305E+00
+ 60        -48         0.7612111069E+00
+ 60         49         0.4538433572E+00
+ 60        -49         0.2373472604E+00
+ 60         50         0.9755184022E+00
+ 60        -50        -0.1055110219E+01
+ 60         51        -0.1587680024E+01
+ 60        -51        -0.1130837804E+01
+ 60         52        -0.1143639105E+01
+ 60        -52        -0.3618355468E-01
+ 60         53        -0.9189282970E+00
+ 60        -53        -0.1222278709E+01
+ 60         54        -0.1757176045E+01
+ 60        -54        -0.7107618231E-01
+ 60         55        -0.2507472173E+01
+ 60        -55         0.1363256446E+01
+ 60         56        -0.2006139094E+01
+ 60        -56         0.8693072987E+00
+ 60         57        -0.1728566145E+01
+ 60        -57         0.1028384585E+01
+ 60         58        -0.5022107260E+00
+ 60        -58        -0.8892771437E+00
+ 60         59        -0.2872656552E+00
+ 60        -59        -0.8873771785E+00
+ 60         60         0.1849217856E+01
+ 60        -60        -0.8307519484E+00
+ 61          0         0.1046047936E+01
+ 61          1        -0.2004680700E+01
+ 61         -1         0.8358392093E+00
+ 61          2        -0.5849828397E+00
+ 61         -2        -0.3687808441E+00
+ 61          3         0.2765647476E+01
+ 61         -3        -0.2303397141E+01
+ 61          4        -0.2215107465E+01
+ 61         -4         0.1642759074E+00
+ 61          5        -0.2385391181E+01
+ 61         -5         0.1060071411E+01
+ 61          6         0.2613840595E+01
+ 61         -6         0.1170536490E+01
+ 61          7         0.8396017757E+00
+ 61         -7        -0.1078722112E+01
+ 61          8        -0.2426120963E+01
+ 61         -8         0.5501041368E+00
+ 61          9         0.1669451789E+00
+ 61         -9         0.1869588428E+01
+ 61         10         0.4209668349E+00
+ 61        -10        -0.2458442148E+00
+ 61         11         0.1187259362E+01
+ 61        -11        -0.2940414808E+01
+ 61         12         0.1383296875E+01
+ 61        -12        -0.1415558079E+01
+ 61         13        -0.4418560797E+00
+ 61        -13         0.2374563439E+01
+ 61         14        -0.1770471830E+01
+ 61        -14         0.8672695357E+00
+ 61         15         0.3028940994E+00
+ 61        -15        -0.2968251411E+01
+ 61         16        -0.9912273122E+00
+ 61        -16        -0.2305777966E+01
+ 61         17        -0.2682490852E+01
+ 61        -17         0.2527685217E+01
+ 61         18        -0.6421847730E+00
+ 61        -18         0.3051761432E+01
+ 61         19        -0.4457157461E+00
+ 61        -19        -0.2613062336E-01
+ 61         20        -0.2781714522E+00
+ 61        -20        -0.6225744354E+00
+ 61         21         0.1005227409E+01
+ 61        -21        -0.2853007588E+00
+ 61         22         0.5008661253E+00
+ 61        -22        -0.8261918884E+00
+ 61         23         0.7273437678E+00
+ 61        -23        -0.2236050718E+01
+ 61         24        -0.1616166557E+01
+ 61        -24        -0.2720958467E+00
+ 61         25        -0.6260613040E+00
+ 61        -25         0.2046816481E+01
+ 61         26         0.1342968630E+01
+ 61        -26         0.1105589944E+01
+ 61         27         0.1580338867E+01
+ 61        -27         0.2257370473E-01
+ 61         28         0.2456436996E+01
+ 61        -28         0.1476220497E+01
+ 61         29         0.1080981005E+01
+ 61        -29         0.1909804301E+00
+ 61         30         0.1162065972E+01
+ 61        -30        -0.6433959487E+00
+ 61         31        -0.7045166422E+00
+ 61        -31        -0.5759087626E-01
+ 61         32        -0.1146075722E+01
+ 61        -32        -0.5202012330E+00
+ 61         33        -0.5911817745E+00
+ 61        -33         0.1018191316E+01
+ 61         34         0.4133538277E+00
+ 61        -34         0.1636936886E+01
+ 61         35        -0.2169306150E+01
+ 61        -35         0.1555990006E+00
+ 61         36        -0.1039620586E+01
+ 61        -36        -0.3339249278E+00
+ 61         37        -0.2979598078E+00
+ 61        -37         0.1142027606E+00
+ 61         38        -0.4085129616E+00
+ 61        -38        -0.6713653341E+00
+ 61         39        -0.1759678695E+00
+ 61        -39        -0.1524214959E+01
+ 61         40        -0.1207707245E+00
+ 61        -40        -0.1184245496E+01
+ 61         41        -0.3178672920E+00
+ 61        -41        -0.9303722545E+00
+ 61         42         0.1064604114E+01
+ 61        -42        -0.9046812065E+00
+ 61         43         0.1971443950E+01
+ 61        -43         0.1464726040E+01
+ 61         44         0.2667023749E+01
+ 61        -44        -0.1162195575E+00
+ 61         45        -0.3686421250E+00
+ 61        -45        -0.1473316813E+01
+ 61         46         0.1721370055E+01
+ 61        -46        -0.1500155922E+01
+ 61         47         0.1032359879E+01
+ 61        -47        -0.4433660125E+00
+ 61         48         0.1106807733E+00
+ 61        -48        -0.2720549212E+00
+ 61         49        -0.1256408901E+01
+ 61        -49        -0.2140578213E+00
+ 61         50        -0.6306183989E+00
+ 61        -50         0.5782125408E+00
+ 61         51         0.1203970979E+01
+ 61        -51         0.1328765905E+01
+ 61         52         0.1302610151E+01
+ 61        -52         0.9943423658E+00
+ 61         53         0.1721053628E+01
+ 61        -53         0.3230813463E+00
+ 61         54         0.1460080253E+01
+ 61        -54        -0.8894390505E+00
+ 61         55         0.2124864120E+01
+ 61        -55         0.5506952528E-01
+ 61         56         0.2072219598E+01
+ 61        -56        -0.6238020677E+00
+ 61         57         0.9137359671E+00
+ 61        -57        -0.5020298294E+00
+ 61         58        -0.5324542515E-01
+ 61        -58         0.6540943240E+00
+ 61         59        -0.5687407062E+00
+ 61        -59         0.1549375986E+01
+ 61         60        -0.1559224249E+01
+ 61        -60         0.2624066501E+01
+ 61         61        -0.1056531119E+00
+ 61        -61         0.1800557100E+01
+ 62          0        -0.1924483794E+01
+ 62          1         0.1241740170E+01
+ 62         -1        -0.1065785234E+01
+ 62          2         0.1759914596E+01
+ 62         -2         0.2425254625E+00
+ 62          3        -0.2138750910E+01
+ 62         -3         0.2014478171E+00
+ 62          4        -0.5180219280E-01
+ 62         -4         0.1236786571E+01
+ 62          5         0.2658779030E+01
+ 62         -5        -0.2187325221E+00
+ 62          6        -0.1229946388E+01
+ 62         -6        -0.6775388811E+00
+ 62          7        -0.2755868202E+01
+ 62         -7         0.1265123800E+01
+ 62          8         0.2138235893E+01
+ 62         -8         0.7876800343E+00
+ 62          9         0.1188132471E+01
+ 62         -9        -0.1971121529E+01
+ 62         10         0.3192573745E+00
+ 62        -10        -0.1449076622E+01
+ 62         11        -0.2462834771E+00
+ 62        -11         0.2330779111E+01
+ 62         12        -0.1906006725E+01
+ 62        -12         0.3209380440E+01
+ 62         13        -0.3002738202E+00
+ 62        -13        -0.8281321507E+00
+ 62         14         0.1240574192E+01
+ 62        -14        -0.2240303461E+01
+ 62         15         0.3168409503E+00
+ 62        -15         0.1495068308E+01
+ 62         16         0.8780055219E+00
+ 62        -16         0.2965840439E+01
+ 62         17         0.2363207059E+01
+ 62        -17        -0.1249437948E+01
+ 62         18         0.9231081206E+00
+ 62        -18        -0.3142142987E+01
+ 62         19        -0.1085358233E+00
+ 62        -19        -0.1547136630E+01
+ 62         20         0.8953175704E+00
+ 62        -20         0.1048486772E+01
+ 62         21        -0.5644058080E-01
+ 62        -21         0.4036810021E+00
+ 62         22         0.4818772840E+00
+ 62        -22        -0.4592446662E+00
+ 62         23         0.3833234574E+00
+ 62        -23         0.1094963521E+01
+ 62         24         0.8222350495E+00
+ 62        -24         0.1555077472E+01
+ 62         25        -0.1508429903E+00
+ 62        -25        -0.1337621904E+01
+ 62         26        -0.7510988548E+00
+ 62        -26         0.1318013301E+00
+ 62         27        -0.9405270384E+00
+ 62        -27         0.1671266934E+01
+ 62         28        -0.1094611239E+01
+ 62        -28        -0.1567171096E+01
+ 62         29        -0.1034711867E+01
+ 62        -29        -0.1300281840E+01
+ 62         30        -0.1817079505E+01
+ 62        -30        -0.2725430427E+00
+ 62         31        -0.6170798273E+00
+ 62        -31         0.1214123461E+01
+ 62         32        -0.9565816059E-01
+ 62        -32         0.9932613708E+00
+ 62         33         0.4447504341E+00
+ 62        -33         0.1952587315E+01
+ 62         34         0.2493243795E+00
+ 62        -34        -0.1053220363E+01
+ 62         35         0.1437231007E+01
+ 62        -35        -0.8947258965E+00
+ 62         36         0.8375753450E+00
+ 62        -36        -0.2160706184E+01
+ 62         37         0.1337541894E+01
+ 62        -37        -0.7338348900E+00
+ 62         38         0.3492536976E+00
+ 62        -38         0.1295666791E+01
+ 62         39         0.3810594888E+00
+ 62        -39         0.2551944785E+01
+ 62         40        -0.2409313351E+00
+ 62        -40         0.2014304415E+01
+ 62         41         0.4865554783E+00
+ 62        -41         0.2922435362E+01
+ 62         42        -0.6258561367E+00
+ 62        -42        -0.1646400571E+00
+ 62         43        -0.6766555139E+00
+ 62        -43        -0.5242000366E+00
+ 62         44        -0.2791027330E+01
+ 62        -44        -0.8021889866E+00
+ 62         45        -0.1588232507E+01
+ 62        -45         0.2980275288E+00
+ 62         46        -0.1266182665E+01
+ 62        -46         0.1610722740E+01
+ 62         47        -0.1493787139E+01
+ 62        -47         0.8965941096E+00
+ 62         48        -0.1002896088E+01
+ 62        -48        -0.7068160429E+00
+ 62         49         0.6994559824E+00
+ 62        -49        -0.7310215312E+00
+ 62         50         0.1166536471E+01
+ 62        -50        -0.1911409798E+00
+ 62         51         0.8752908136E+00
+ 62        -51         0.2033701089E+00
+ 62         52        -0.1509927619E+01
+ 62        -52        -0.6998822047E+00
+ 62         53        -0.2991735250E+01
+ 62        -53        -0.6248866474E+00
+ 62         54        -0.9257656519E+00
+ 62        -54        -0.1070016359E+01
+ 62         55         0.8643760089E-01
+ 62        -55        -0.1336439093E+01
+ 62         56        -0.1235422192E+01
+ 62        -56        -0.8304214580E-01
+ 62         57        -0.1604991300E+01
+ 62        -57         0.3178119711E+00
+ 62         58        -0.1231006882E+01
+ 62        -58        -0.3924965785E-01
+ 62         59        -0.7459525980E-01
+ 62        -59        -0.1286257526E+01
+ 62         60         0.2545516140E+00
+ 62        -60        -0.1377152581E+01
+ 62         61        -0.8311441236E+00
+ 62        -61        -0.2412390978E+00
+ 62         62         0.4575936468E-01
+ 62        -62         0.2253456229E+00
+ 63          0         0.1363440544E+01
+ 63          1         0.5535760763E+00
+ 63         -1         0.1885646974E+00
+ 63          2        -0.1238584392E+01
+ 63         -2         0.1078946966E+01
+ 63          3         0.1249595383E+00
+ 63         -3         0.1175228039E+01
+ 63          4         0.2842779820E+01
+ 63         -4        -0.1853043982E+01
+ 63          5        -0.2017690560E+01
+ 63         -5        -0.7289579808E+00
+ 63          6        -0.1688842234E+01
+ 63         -6         0.1386981661E+00
+ 63          7         0.2300637703E+01
+ 63         -7        -0.1792299554E+00
+ 63          8        -0.1180155673E+00
+ 63         -8        -0.1414759021E+01
+ 63          9        -0.1861544931E+01
+ 63         -9         0.1241381971E+01
+ 63         10        -0.6395239674E+00
+ 63        -10         0.2729404305E+01
+ 63         11        -0.3472928262E+00
+ 63        -11        -0.4429377772E+00
+ 63         12         0.7756022746E+00
+ 63        -12        -0.3167865539E+01
+ 63         13         0.1113936759E+01
+ 63        -13        -0.1681814700E+01
+ 63         14        -0.2470352995E-01
+ 63        -14         0.2311485983E+01
+ 63         15        -0.6052235133E+00
+ 63        -15         0.1258995517E+01
+ 63         16         0.8989329414E+00
+ 63        -16        -0.1903894162E+01
+ 63         17        -0.6765884730E+00
+ 63        -17        -0.8220164847E+00
+ 63         18        -0.2119708252E+01
+ 63        -18         0.1320020876E+01
+ 63         19        -0.5391826219E-01
+ 63        -19         0.2330808016E+01
+ 63         20        -0.2258877822E+00
+ 63        -20        -0.6130449955E+00
+ 63         21        -0.7229321075E+00
+ 63        -21        -0.8151344524E+00
+ 63         22        -0.7263044487E+00
+ 63        -22         0.1053321862E+01
+ 63         23        -0.1175212230E+01
+ 63        -23         0.1034778055E+01
+ 63         24         0.8303782952E+00
+ 63        -24        -0.1373836186E+01
+ 63         25         0.6817768613E+00
+ 63        -25        -0.1058061828E+01
+ 63         26        -0.2251126757E+00
+ 63        -26         0.6688439252E+00
+ 63         27        -0.6214739470E-01
+ 63        -27        -0.2076438107E+00
+ 63         28        -0.6466225455E+00
+ 63        -28         0.4724963981E+00
+ 63         29         0.1654891342E+01
+ 63        -29         0.2165794647E+01
+ 63         30         0.1779358662E+01
+ 63        -30         0.7051873621E+00
+ 63         31         0.1371412760E+01
+ 63        -31        -0.1851385285E+01
+ 63         32         0.4303710781E+00
+ 63        -32        -0.1236088024E+01
+ 63         33        -0.5957642271E+00
+ 63        -33        -0.1992396140E+01
+ 63         34        -0.8561670085E+00
+ 63        -34         0.3194231005E+00
+ 63         35        -0.1139133446E+00
+ 63        -35         0.4548459249E+00
+ 63         36        -0.1092264357E+01
+ 63        -36         0.1143819787E+01
+ 63         37        -0.8871429749E+00
+ 63        -37         0.4810606257E+00
+ 63         38        -0.2854189230E+00
+ 63        -38         0.4719087975E+00
+ 63         39         0.1391725093E+00
+ 63        -39        -0.1081794929E+01
+ 63         40        -0.3225261230E+00
+ 63        -40        -0.1835921743E+01
+ 63         41        -0.4034761864E+00
+ 63        -41        -0.1191211231E+01
+ 63         42        -0.8827255468E+00
+ 63        -42        -0.9074042744E+00
+ 63         43         0.2711086398E+00
+ 63        -43        -0.6006192658E+00
+ 63         44         0.1218655967E+01
+ 63        -44         0.6444915606E+00
+ 63         45         0.8907865207E+00
+ 63        -45         0.7685635487E+00
+ 63         46        -0.5959633482E+00
+ 63        -46        -0.1024671712E+01
+ 63         47         0.6499470373E+00
+ 63        -47        -0.8432672765E+00
+ 63         48         0.6479647788E+00
+ 63        -48         0.5633466292E+00
+ 63         49         0.1323511870E+01
+ 63        -49         0.1886038610E+00
+ 63         50         0.8073408710E+00
+ 63        -50        -0.1699542487E+01
+ 63         51        -0.4512059480E+00
+ 63        -51        -0.1341662788E+01
+ 63         52         0.2681946051E+00
+ 63        -52        -0.9887875181E+00
+ 63         53         0.3792132048E+00
+ 63        -53         0.7132553976E+00
+ 63         54         0.3785489953E+00
+ 63        -54         0.2243693902E+01
+ 63         55        -0.1568387735E+00
+ 63        -55         0.3853523677E+00
+ 63         56         0.1167704594E+01
+ 63        -56        -0.3544115760E-01
+ 63         57         0.1847767073E+01
+ 63        -57         0.6912947626E+00
+ 63         58         0.1391960749E+01
+ 63        -58         0.2852746780E+00
+ 63         59         0.4098286178E-01
+ 63        -59         0.1832777171E+01
+ 63         60         0.9815603875E+00
+ 63        -60         0.1779523460E+00
+ 63         61         0.2037585824E+00
+ 63        -61         0.1993353478E+01
+ 63         62        -0.3417562399E+00
+ 63        -62         0.1171277756E+01
+ 63         63        -0.1462658230E+01
+ 63        -63         0.6029436659E+00
+ 64          0        -0.8437915832E+00
+ 64          1        -0.1327188402E+01
+ 64         -1         0.9729048086E+00
+ 64          2         0.1467842583E+01
+ 64         -2        -0.8900790556E+00
+ 64          3         0.4793556210E+00
+ 64         -3        -0.9793165596E+00
+ 64          4        -0.3497206371E+01
+ 64         -4        -0.2963358518E+00
+ 64          5         0.4548858032E+00
+ 64         -5         0.1300705151E+01
+ 64          6         0.3301975450E+01
+ 64         -6         0.6272591843E+00
+ 64          7        -0.8839863219E+00
+ 64         -7        -0.9707923451E+00
+ 64          8        -0.2159162418E+01
+ 64         -8         0.9040314174E+00
+ 64          9         0.1732490971E+01
+ 64         -9         0.3254315807E+00
+ 64         10         0.5301270425E+00
+ 64        -10        -0.2414808905E+01
+ 64         11         0.5797869429E+00
+ 64        -11        -0.1914609012E+01
+ 64         12         0.3157017871E+00
+ 64        -12         0.2156313742E+01
+ 64         13        -0.1177483249E+01
+ 64        -13         0.3462903153E+01
+ 64         14        -0.1353214233E+00
+ 64        -14        -0.6885598107E+00
+ 64         15         0.6162042453E+00
+ 64        -15        -0.2101780643E+01
+ 64         16        -0.1625770032E+01
+ 64        -16         0.6922685126E+00
+ 64         17        -0.2253971960E-01
+ 64        -17         0.2003309797E+01
+ 64         18         0.2423849367E+01
+ 64        -18         0.3475067532E+00
+ 64         19         0.3843538503E+00
+ 64        -19        -0.1453203004E+01
+ 64         20        -0.9272875582E+00
+ 64        -20        -0.1066562592E+01
+ 64         21         0.1998054523E+00
+ 64        -21         0.1171558087E+01
+ 64         22         0.2319792378E-01
+ 64        -22         0.7689894412E+00
+ 64         23         0.9179689280E+00
+ 64        -23        -0.9715677023E+00
+ 64         24         0.3814396340E+00
+ 64        -24         0.2309078649E+00
+ 64         25        -0.4104792399E+00
+ 64        -25         0.1408875842E+01
+ 64         26        -0.4899547046E+00
+ 64        -26        -0.1380131079E+01
+ 64         27        -0.3145390751E+00
+ 64        -27        -0.5595000542E+00
+ 64         28         0.3423580410E+00
+ 64        -28         0.1292449797E+01
+ 64         29        -0.9605750830E+00
+ 64        -29        -0.1542347824E+01
+ 64         30        -0.1109300463E+01
+ 64        -30        -0.9140848509E+00
+ 64         31        -0.2014437126E+01
+ 64        -31         0.9930971020E+00
+ 64         32        -0.5615848301E+00
+ 64        -32         0.1624638719E+01
+ 64         33        -0.4523317522E+00
+ 64        -33         0.1236673796E+01
+ 64         34        -0.3668122532E-01
+ 64        -34         0.1019963364E+01
+ 64         35         0.5873735711E-01
+ 64        -35         0.1074637081E+00
+ 64         36         0.1272181523E+01
+ 64        -36         0.5327091433E+00
+ 64         37         0.7484652237E+00
+ 64        -37        -0.5929156674E+00
+ 64         38         0.1005724052E+01
+ 64        -38        -0.1561454984E+01
+ 64         39         0.9252907162E+00
+ 64        -39        -0.5527789145E+00
+ 64         40         0.2760091110E+00
+ 64        -40         0.1758423098E+01
+ 64         41        -0.1011860076E+00
+ 64        -41         0.1489088072E+01
+ 64         42        -0.5821767941E-01
+ 64        -42         0.1592240343E+01
+ 64         43        -0.8448154937E-01
+ 64        -43         0.1561045366E+01
+ 64         44         0.1437823867E+00
+ 64        -44        -0.4321632324E+00
+ 64         45        -0.1528534007E+01
+ 64        -45        -0.1183410727E+01
+ 64         46        -0.2618374758E+00
+ 64        -46        -0.3655017719E+00
+ 64         47        -0.7029192204E+00
+ 64        -47        -0.1488680704E+00
+ 64         48        -0.7890738520E+00
+ 64        -48         0.8236594676E+00
+ 64         49        -0.8565834685E+00
+ 64        -49         0.1575831296E-01
+ 64         50         0.1347442081E+00
+ 64        -50         0.5829535196E+00
+ 64         51         0.1051316775E+01
+ 64        -51         0.1469553286E+01
+ 64         52         0.1302051663E+01
+ 64        -52         0.1464807465E+01
+ 64         53         0.3684048287E-01
+ 64        -53        -0.8615994392E+00
+ 64         54        -0.9875308315E+00
+ 64        -54        -0.2174032379E+01
+ 64         55         0.3289258728E+00
+ 64        -55        -0.2334114088E+00
+ 64         56        -0.1835614445E+00
+ 64        -56        -0.8753133375E+00
+ 64         57        -0.2842060330E+00
+ 64        -57        -0.6689584445E+00
+ 64         58        -0.2141322505E+00
+ 64        -58        -0.9489424471E+00
+ 64         59         0.5222286864E-01
+ 64        -59        -0.9520694020E+00
+ 64         60         0.8284556723E-01
+ 64        -60        -0.6306556604E+00
+ 64         61         0.6773676037E+00
+ 64        -61        -0.2127843063E+01
+ 64         62        -0.2476303736E+00
+ 64        -62        -0.1105081933E+01
+ 64         63         0.8495510717E+00
+ 64        -63        -0.4663145795E+00
+ 64         64        -0.8025919255E+00
+ 64        -64        -0.3059636100E+00
+ 65          0         0.1715914990E+00
+ 65          1         0.2255660714E+01
+ 65         -1        -0.5499357734E+00
+ 65          2        -0.1755446898E+01
+ 65         -2        -0.8733710107E+00
+ 65          3        -0.1204938419E+01
+ 65         -3         0.9389073294E-01
+ 65          4         0.1822294779E+01
+ 65         -4         0.1696640286E+01
+ 65          5         0.2194641859E+01
+ 65         -5        -0.9347297435E+00
+ 65          6        -0.2415593092E+01
+ 65         -6        -0.1164561605E+01
+ 65          7        -0.1029065068E+01
+ 65         -7         0.7374977204E+00
+ 65          8         0.2325757993E+01
+ 65         -8         0.2797757276E+00
+ 65          9        -0.3354309233E+00
+ 65         -9        -0.1552918158E+01
+ 65         10        -0.3496569472E+00
+ 65        -10         0.8591013230E+00
+ 65         11        -0.7375404200E+00
+ 65        -11         0.3104905608E+01
+ 65         12        -0.6496316610E+00
+ 65        -12         0.7228994900E+00
+ 65         13         0.2015646113E+00
+ 65        -13        -0.2388760583E+01
+ 65         14         0.4830377831E+00
+ 65        -14        -0.1682782797E+01
+ 65         15        -0.2996581989E+00
+ 65        -15         0.8898799138E+00
+ 65         16         0.1461459337E+00
+ 65        -16         0.7209439812E+00
+ 65         17         0.4145272342E+00
+ 65        -17        -0.1418934778E+01
+ 65         18        -0.1096767505E+01
+ 65        -18        -0.6483680101E+00
+ 65         19        -0.1015997325E+01
+ 65        -19         0.1991472707E+00
+ 65         20         0.5858402463E+00
+ 65        -20         0.1600798638E+01
+ 65         21         0.8748450205E+00
+ 65        -21        -0.1232258750E+01
+ 65         22        -0.1081966956E+00
+ 65        -22        -0.2309250353E+01
+ 65         23        -0.1427318029E+01
+ 65        -23         0.1738934895E+00
+ 65         24        -0.2063192459E+01
+ 65        -24         0.9384670658E+00
+ 65         25         0.1771375590E+00
+ 65        -25        -0.2520720754E+00
+ 65         26         0.1573883410E+01
+ 65        -26         0.2329227183E+00
+ 65         27         0.1497081940E+01
+ 65        -27         0.4399198601E+00
+ 65         28         0.8918906862E+00
+ 65        -28        -0.1433492137E+01
+ 65         29        -0.1120000745E+01
+ 65        -29        -0.1215166808E+00
+ 65         30         0.2666931472E-02
+ 65        -30         0.1383089572E+01
+ 65         31         0.1390480575E+01
+ 65        -31         0.8927807270E+00
+ 65         32         0.1323722712E+01
+ 65        -32        -0.1660504491E+01
+ 65         33         0.1200551915E+01
+ 65        -33        -0.5794397865E+00
+ 65         34         0.8590239434E-01
+ 65        -34        -0.1299595520E+01
+ 65         35        -0.1160179988E+01
+ 65        -35         0.2271069846E+00
+ 65         36        -0.7202335415E+00
+ 65        -36        -0.1324645383E+01
+ 65         37        -0.1553447241E+01
+ 65        -37        -0.2254395531E+00
+ 65         38        -0.1802467274E+01
+ 65        -38        -0.7105947791E-01
+ 65         39        -0.8325493496E+00
+ 65        -39         0.1461676706E+01
+ 65         40         0.5128532124E+00
+ 65        -40         0.1502264538E+00
+ 65         41         0.1160603210E+01
+ 65        -41        -0.9455929804E+00
+ 65         42        -0.9950507971E+00
+ 65        -42        -0.1466331184E+01
+ 65         43        -0.5737773135E+00
+ 65        -43         0.4918213876E+00
+ 65         44         0.3266603034E+00
+ 65        -44        -0.9505555716E+00
+ 65         45         0.1634398864E+01
+ 65        -45        -0.8794775853E-02
+ 65         46         0.8705624681E+00
+ 65        -46        -0.2339607601E+00
+ 65         47        -0.9276069317E+00
+ 65        -47        -0.9463779094E+00
+ 65         48        -0.1206598518E+01
+ 65        -48        -0.1029307308E+01
+ 65         49        -0.1251686256E+01
+ 65        -49         0.1554253842E+00
+ 65         50        -0.1102604247E+01
+ 65        -50         0.9291878111E+00
+ 65         51         0.3581502618E+00
+ 65        -51        -0.7709507670E-01
+ 65         52        -0.3863291495E+00
+ 65        -52        -0.1447345843E+01
+ 65         53        -0.4902022261E+00
+ 65        -53        -0.1486322897E+01
+ 65         54         0.5914753454E+00
+ 65        -54        -0.2473449549E+00
+ 65         55         0.2713049746E+00
+ 65        -55         0.4610369399E+00
+ 65         56        -0.2814079969E+00
+ 65        -56         0.4887910816E+00
+ 65         57         0.1909110497E+00
+ 65        -57         0.1055327121E+01
+ 65         58         0.4114319373E-01
+ 65        -58         0.8196140255E+00
+ 65         59        -0.1092597564E+01
+ 65        -59         0.1341817194E-01
+ 65         60        -0.8767614671E+00
+ 65        -60         0.1007469198E+01
+ 65         61         0.6503404812E+00
+ 65        -61         0.1063652527E+01
+ 65         62         0.1424485806E+01
+ 65        -62         0.9066847099E+00
+ 65         63         0.5580534471E+00
+ 65        -63         0.8863599442E-01
+ 65         64         0.1056978861E+01
+ 65        -64        -0.8545663775E-01
+ 65         65        -0.2704754837E+00
+ 65        -65         0.3258649916E+00
+ 66          0         0.5149914299E+00
+ 66          1        -0.2115190726E+01
+ 66         -1        -0.3442449369E+00
+ 66          2         0.7184355627E+00
+ 66         -2         0.1627031797E+01
+ 66          3         0.2530310076E+01
+ 66         -3         0.2605561647E+00
+ 66          4         0.1082998840E+00
+ 66         -4        -0.1548625523E+01
+ 66          5        -0.3353160143E+01
+ 66         -5        -0.7492068498E+00
+ 66          6         0.3711169318E+00
+ 66         -6         0.1448145801E+01
+ 66          7         0.2430787142E+01
+ 66         -7         0.7353332063E+00
+ 66          8        -0.6358865284E+00
+ 66         -8        -0.1158342085E+01
+ 66          9        -0.1137475493E+01
+ 66         -9         0.1272257093E+01
+ 66         10         0.6175875137E+00
+ 66        -10         0.1053087175E+01
+ 66         11         0.1010938663E+00
+ 66        -11        -0.1779643700E+01
+ 66         12         0.9771234031E-01
+ 66        -12        -0.2649567930E+01
+ 66         13         0.3222997256E+00
+ 66        -13         0.6896903421E+00
+ 66         14        -0.6444810119E+00
+ 66        -14         0.2737549036E+01
+ 66         15        -0.5757069840E-01
+ 66        -15         0.3773554591E+00
+ 66         16         0.7890847775E+00
+ 66        -16        -0.1265308267E+01
+ 66         17        -0.7009972224E+00
+ 66        -17         0.1214308552E+00
+ 66         18         0.4242745391E-01
+ 66        -18         0.5172022571E+00
+ 66         19         0.1391385634E+01
+ 66        -19        -0.4661543406E-01
+ 66         20         0.3335581541E+00
+ 66        -20        -0.6716991687E+00
+ 66         21        -0.8717434381E+00
+ 66        -21         0.7704323392E-01
+ 66         22         0.4012103853E+00
+ 66        -22         0.1586406418E+01
+ 66         23         0.1302206154E+01
+ 66        -23         0.1192044019E+01
+ 66         24         0.1810998964E+01
+ 66        -24        -0.1419423775E+00
+ 66         25        -0.6682474969E-01
+ 66        -25         0.2586534299E+00
+ 66         26        -0.1598952610E+01
+ 66        -26         0.8605042376E+00
+ 66         27        -0.1566762189E+01
+ 66        -27        -0.3020251988E+00
+ 66         28        -0.1475322965E+01
+ 66        -28         0.9256507973E+00
+ 66         29         0.1088192260E+01
+ 66        -29         0.1693365940E+01
+ 66         30         0.4009212540E+00
+ 66        -30        -0.1229155066E+01
+ 66         31         0.1119939778E-02
+ 66        -31        -0.1536829859E+01
+ 66         32        -0.1585812910E+01
+ 66        -32         0.2392780565E+00
+ 66         33        -0.9783109762E+00
+ 66        -33         0.5615911623E+00
+ 66         34        -0.1538674506E+00
+ 66        -34         0.1066831190E+01
+ 66         35         0.4615187791E+00
+ 66        -35         0.7539119375E+00
+ 66         36         0.3416171948E+00
+ 66        -36         0.3733123664E+00
+ 66         37         0.1161651503E+01
+ 66        -37        -0.4475975862E-01
+ 66         38         0.5689847905E+00
+ 66        -38         0.1155515328E+01
+ 66         39         0.9682491840E+00
+ 66        -39        -0.1406718584E+01
+ 66         40         0.4828002809E+00
+ 66        -40        -0.7624735249E+00
+ 66         41         0.1649443357E+00
+ 66        -41         0.6662829304E+00
+ 66         42         0.2869676028E+00
+ 66        -42         0.6782344916E+00
+ 66         43         0.8548508674E+00
+ 66        -43        -0.3407839683E-01
+ 66         44         0.7486731060E-02
+ 66        -44         0.1333314618E+01
+ 66         45        -0.1141738819E+01
+ 66        -45         0.1041732613E+01
+ 66         46        -0.1024732205E+01
+ 66        -46        -0.2423011025E+00
+ 66         47         0.4625028180E+00
+ 66        -47         0.6311482580E+00
+ 66         48         0.1268869353E+01
+ 66        -48         0.1039656335E+01
+ 66         49         0.2225886092E+01
+ 66        -49         0.8736313543E+00
+ 66         50         0.1136704333E+01
+ 66        -50         0.1561549512E+00
+ 66         51        -0.6970471105E+00
+ 66        -51        -0.3253258933E-01
+ 66         52        -0.7757076341E+00
+ 66        -52         0.3096506045E-01
+ 66         53        -0.9920857243E-01
+ 66        -53         0.1420925527E+01
+ 66         54         0.1260512234E+01
+ 66        -54         0.4821073153E+00
+ 66         55         0.8678333223E+00
+ 66        -55        -0.6906614455E+00
+ 66         56         0.4901057547E+00
+ 66        -56         0.5910633548E+00
+ 66         57         0.5071721714E+00
+ 66        -57        -0.9894271702E+00
+ 66         58         0.8618888411E+00
+ 66        -58        -0.2531847059E+00
+ 66         59         0.1008982615E+01
+ 66        -59         0.7932094216E+00
+ 66         60         0.6698014151E+00
+ 66        -60        -0.3259796262E-01
+ 66         61        -0.5050157328E+00
+ 66        -61        -0.7191032474E+00
+ 66         62         0.6486286773E+00
+ 66        -62        -0.1156489869E+01
+ 66         63         0.8802284651E-02
+ 66        -63        -0.6104122026E+00
+ 66         64         0.5605814549E+00
+ 66        -64        -0.1610146775E+01
+ 66         65        -0.1808841525E+00
+ 66        -65        -0.2127744691E+01
+ 66         66        -0.2827610187E+00
+ 66        -66        -0.8835401209E+00
+ 67          0        -0.1359654899E+01
+ 67          1         0.1784465811E+01
+ 67         -1         0.5673414796E+00
+ 67          2         0.1512690731E+01
+ 67         -2        -0.1412039564E+00
+ 67          3        -0.2710438306E+01
+ 67         -3        -0.4989749781E+00
+ 67          4        -0.1141280596E+01
+ 67         -4         0.1009038223E+01
+ 67          5         0.2474024587E+01
+ 67         -5         0.2150038780E+01
+ 67          6         0.1542819071E+01
+ 67         -6        -0.7675574833E+00
+ 67          7        -0.1824881971E+01
+ 67         -7        -0.1782830882E+01
+ 67          8        -0.8021497714E+00
+ 67         -8         0.8587688876E+00
+ 67          9         0.7855204787E+00
+ 67         -9         0.4049378898E+00
+ 67         10        -0.1007813784E+01
+ 67        -10        -0.2160078097E+01
+ 67         11         0.7074763433E+00
+ 67        -11        -0.1031224027E+01
+ 67         12         0.1116748515E+00
+ 67        -12         0.2113207376E+01
+ 67         13        -0.7880091169E+00
+ 67        -13         0.1001762335E+01
+ 67         14        -0.2609938165E+00
+ 67        -14        -0.1752595611E+01
+ 67         15         0.2548279650E+00
+ 67        -15        -0.7765192137E+00
+ 67         16        -0.6596232624E-01
+ 67        -16         0.7605805025E+00
+ 67         17         0.6871518097E+00
+ 67        -17         0.1080306575E+01
+ 67         18         0.6661875033E+00
+ 67        -18        -0.6165698350E+00
+ 67         19        -0.1175259977E+01
+ 67        -19        -0.8141161846E-01
+ 67         20        -0.1037269690E+01
+ 67        -20         0.6901628192E+00
+ 67         21        -0.2464101013E+00
+ 67        -21         0.1499737143E+01
+ 67         22         0.3428279944E+00
+ 67        -22        -0.5479904044E+00
+ 67         23        -0.4582139654E+00
+ 67        -23        -0.2114061468E+01
+ 67         24        -0.1785180669E+01
+ 67        -24        -0.7681137391E+00
+ 67         25        -0.1627945602E+01
+ 67        -25        -0.3643162142E+00
+ 67         26         0.6247681276E-02
+ 67        -26        -0.1211436805E+01
+ 67         27         0.1265543083E+01
+ 67        -27        -0.1535826735E+00
+ 67         28         0.9424124732E+00
+ 67        -28        -0.1808519671E+00
+ 67         29         0.1017309682E+01
+ 67        -29        -0.2191997871E+01
+ 67         30        -0.1223640331E+00
+ 67        -30        -0.3631135610E+00
+ 67         31        -0.1616468788E+01
+ 67        -31         0.1034361677E+01
+ 67         32         0.4260900777E+00
+ 67        -32         0.9737795402E+00
+ 67         33         0.6263985775E+00
+ 67        -33        -0.9908723441E+00
+ 67         34         0.7835632421E+00
+ 67        -34        -0.8965778591E+00
+ 67         35         0.2047992767E+00
+ 67        -35        -0.6558034268E+00
+ 67         36        -0.6446454172E+00
+ 67        -36         0.8175180022E+00
+ 67         37         0.7908891529E-01
+ 67        -37         0.3294251681E+00
+ 67         38        -0.1431669085E+00
+ 67        -38        -0.1162520799E+01
+ 67         39        -0.1902637810E+01
+ 67        -39        -0.9088626460E+00
+ 67         40        -0.1487554212E+01
+ 67        -40        -0.5609965150E+00
+ 67         41         0.1103144587E+00
+ 67        -41        -0.2676780502E+00
+ 67         42         0.8474949907E+00
+ 67        -42        -0.7886085306E+00
+ 67         43        -0.5480575993E+00
+ 67        -43        -0.4183662151E+00
+ 67         44        -0.9494652710E+00
+ 67        -44         0.4225848757E+00
+ 67         45        -0.3694071137E+00
+ 67        -45        -0.2362906632E-01
+ 67         46         0.1800879601E+01
+ 67        -46        -0.8122871216E+00
+ 67         47         0.8236501560E+00
+ 67        -47        -0.1911637420E+01
+ 67         48        -0.5134573558E+00
+ 67        -48        -0.1120280053E+01
+ 67         49        -0.1474597775E+01
+ 67        -49        -0.1655623546E+01
+ 67         50        -0.1335695115E+01
+ 67        -50        -0.7011019904E+00
+ 67         51        -0.5594011109E+00
+ 67        -51         0.9605455963E+00
+ 67         52         0.2297957969E+00
+ 67        -52         0.1462956763E+01
+ 67         53        -0.1844175684E+00
+ 67        -53        -0.6193753632E+00
+ 67         54        -0.9885482568E+00
+ 67        -54        -0.5162051180E+00
+ 67         55        -0.1039929420E+01
+ 67        -55        -0.3669387339E+00
+ 67         56         0.2866606924E+00
+ 67        -56         0.4602432757E-01
+ 67         57        -0.2302433512E+00
+ 67        -57         0.1427291034E+00
+ 67         58        -0.8573935567E+00
+ 67        -58        -0.1132278377E+01
+ 67         59        -0.3802726031E+00
+ 67        -59        -0.1451713245E+00
+ 67         60        -0.2000491933E+00
+ 67        -60        -0.7763448041E+00
+ 67         61        -0.1147593635E+01
+ 67        -61        -0.1082630302E+00
+ 67         62        -0.1390940088E+01
+ 67        -62         0.1143430725E+01
+ 67         63        -0.4389587510E+00
+ 67        -63         0.7487854890E+00
+ 67         64        -0.1129313980E+00
+ 67        -64         0.1780054102E+01
+ 67         65         0.1389457528E+01
+ 67        -65         0.1026101044E+01
+ 67         66         0.5777522749E+00
+ 67        -66        -0.1659689629E+00
+ 67         67        -0.4567035640E+00
+ 67        -67         0.7317719843E+00
+ 68          0         0.1575086971E+01
+ 68          1        -0.4758589537E+00
+ 68         -1        -0.7819378605E-01
+ 68          2        -0.2741780056E+01
+ 68         -2        -0.7514611913E+00
+ 68          3         0.9212823938E+00
+ 68         -3         0.6131469044E+00
+ 68          4         0.1633325088E+01
+ 68         -4        -0.4454117658E+00
+ 68          5        -0.9746600626E+00
+ 68         -5        -0.2072815344E+01
+ 68          6        -0.2306622795E+01
+ 68         -6        -0.2937304505E+00
+ 68          7         0.1878052391E+00
+ 68         -7         0.2138699847E+01
+ 68          8         0.1334303212E+01
+ 68         -8         0.1567208253E-01
+ 68          9         0.5813142481E+00
+ 68         -9        -0.1854519174E+01
+ 68         10         0.5035462553E+00
+ 68        -10         0.1266236943E+01
+ 68         11        -0.2526485565E+00
+ 68        -11         0.2552100959E+01
+ 68         12         0.3795544936E+00
+ 68        -12        -0.4200918627E-01
+ 68         13         0.1119284446E+01
+ 68        -13        -0.2019443515E+01
+ 68         14         0.6411915120E+00
+ 68        -14         0.5796322969E-01
+ 68         15        -0.4365133431E+00
+ 68        -15         0.1203707860E+01
+ 68         16        -0.5767524019E+00
+ 68        -16        -0.9248489273E-01
+ 68         17        -0.2607144668E+00
+ 68        -17        -0.1430579078E+01
+ 68         18        -0.7325673993E+00
+ 68        -18         0.3183281249E+00
+ 68         19         0.5908388180E+00
+ 68        -19         0.3974268138E+00
+ 68         20         0.2129717089E+00
+ 68        -20        -0.1089025931E+01
+ 68         21        -0.4221295434E+00
+ 68        -21        -0.1953980255E+01
+ 68         22        -0.1315889036E+01
+ 68        -22         0.6570120240E-01
+ 68         23        -0.1767198238E+00
+ 68        -23         0.1510281360E+01
+ 68         24         0.2011407952E+01
+ 68        -24         0.7706069865E+00
+ 68         25         0.2806943046E+01
+ 68        -25         0.2092924540E+00
+ 68         26         0.1168884318E+01
+ 68        -26         0.9964938262E+00
+ 68         27        -0.1046054242E+01
+ 68        -27         0.5513174095E+00
+ 68         28        -0.9184615572E+00
+ 68        -28        -0.2822786931E-01
+ 68         29        -0.1665513025E+01
+ 68        -29         0.1719520823E+01
+ 68         30        -0.2613961925E+00
+ 68        -30         0.2578286595E+01
+ 68         31         0.7165877693E+00
+ 68        -31         0.6432206353E-01
+ 68         32         0.1039281879E+01
+ 68        -32        -0.8693504387E+00
+ 68         33         0.3194940588E-01
+ 68        -33         0.7401191355E+00
+ 68         34        -0.6016818862E+00
+ 68        -34        -0.2479478835E+00
+ 68         35        -0.5724245666E+00
+ 68        -35         0.1603596326E+00
+ 68         36         0.1121114267E+00
+ 68        -36        -0.1282855864E+00
+ 68         37        -0.4813390632E+00
+ 68        -37         0.5059755289E+00
+ 68         38         0.3755108797E+00
+ 68        -38        -0.6158956745E+00
+ 68         39         0.1099794694E+01
+ 68        -39         0.1420699959E+01
+ 68         40         0.1635606938E+01
+ 68        -40         0.6189706703E+00
+ 68         41         0.7372168716E+00
+ 68        -41         0.5404449337E+00
+ 68         42        -0.6409763307E+00
+ 68        -42         0.1481519492E+01
+ 68         43         0.5697624675E+00
+ 68        -43         0.1000437823E+01
+ 68         44         0.1991194473E+01
+ 68        -44        -0.1669738196E+01
+ 68         45         0.1134739395E+01
+ 68        -45         0.1004970267E+01
+ 68         46        -0.1100010392E+01
+ 68        -46         0.6657120765E+00
+ 68         47        -0.1591159365E+01
+ 68        -47         0.7016471661E+00
+ 68         48        -0.5579917404E+00
+ 68        -48         0.1105540700E+01
+ 68         49         0.5549863387E+00
+ 68        -49         0.1725500823E+01
+ 68         50         0.1400123932E+01
+ 68        -50         0.2095199966E+01
+ 68         51         0.1661630819E+01
+ 68        -51         0.1494868872E+01
+ 68         52         0.2546577459E+00
+ 68        -52        -0.6472704384E+00
+ 68         53        -0.8291387074E+00
+ 68        -53        -0.8588983294E+00
+ 68         54        -0.9363485617E-01
+ 68        -54        -0.5200132503E-01
+ 68         55         0.9158377869E+00
+ 68        -55         0.1230379615E+01
+ 68         56         0.4624303398E+00
+ 68        -56         0.8685488606E+00
+ 68         57         0.5980294272E+00
+ 68        -57         0.6890147112E+00
+ 68         58         0.2449572348E+00
+ 68        -58         0.1520020773E+00
+ 68         59         0.5299408628E+00
+ 68        -59        -0.1964941429E+00
+ 68         60         0.8602838291E+00
+ 68        -60         0.7898371927E+00
+ 68         61         0.2713945217E+00
+ 68        -61         0.6088285118E+00
+ 68         62         0.6042741660E+00
+ 68        -62         0.2861381367E+00
+ 68         63         0.1034574246E+01
+ 68        -63        -0.6754966896E+00
+ 68         64         0.2571672739E-01
+ 68        -64        -0.1004152165E+01
+ 68         65        -0.5593093618E+00
+ 68        -65         0.2435323401E+00
+ 68         66         0.1016279034E+01
+ 68        -66         0.1930875891E+00
+ 68         67         0.4309639650E+00
+ 68        -67        -0.9363688723E+00
+ 68         68         0.3577104241E+00
+ 68        -68        -0.6105815843E+00
+ 69          0        -0.1446157323E+01
+ 69          1        -0.1697643168E+01
+ 69         -1         0.5685430744E-02
+ 69          2         0.2647887042E+01
+ 69         -2         0.6680235397E-01
+ 69          3         0.9710732708E+00
+ 69         -3        -0.7517546926E+00
+ 69          4        -0.2071814049E+01
+ 69         -4        -0.6620327433E+00
+ 69          5        -0.5102932305E+00
+ 69         -5         0.1181749934E+01
+ 69          6         0.1689025705E+01
+ 69         -6         0.1300857882E+01
+ 69          7         0.9358689262E+00
+ 69         -7        -0.1721985533E+01
+ 69          8        -0.5525738063E+00
+ 69         -8        -0.5114989372E+00
+ 69          9        -0.3716626112E+00
+ 69         -9         0.2047911426E+01
+ 69         10         0.9604495904E-01
+ 69        -10         0.9005802694E+00
+ 69         11        -0.6835024768E+00
+ 69        -11        -0.1669260742E+01
+ 69         12         0.2229142677E+00
+ 69        -12        -0.1741499415E+01
+ 69         13        -0.4381858797E+00
+ 69        -13         0.1227959853E+01
+ 69         14        -0.1098122023E+01
+ 69        -14         0.1300048846E+01
+ 69         15         0.1775463818E+00
+ 69        -15        -0.1082258544E+01
+ 69         16         0.5130901450E+00
+ 69        -16        -0.3032670351E+00
+ 69         17        -0.5511741843E+00
+ 69        -17         0.8561037147E+00
+ 69         18         0.9761922295E-02
+ 69        -18         0.4268666160E+00
+ 69         19         0.8586784376E+00
+ 69        -19        -0.7724814600E+00
+ 69         20         0.8939785169E+00
+ 69        -20         0.4630584785E-02
+ 69         21         0.1061962158E+01
+ 69        -21         0.1071058668E+01
+ 69         22         0.1243252235E+01
+ 69        -22         0.7496759651E+00
+ 69         23         0.4525071627E+00
+ 69        -23        -0.5492224546E+00
+ 69         24        -0.1519415969E+01
+ 69        -24        -0.1424332821E+01
+ 69         25        -0.2873752702E+01
+ 69        -25         0.3025176819E+00
+ 69         26        -0.1572700758E+01
+ 69        -26         0.1594507486E+00
+ 69         27         0.4984256367E+00
+ 69        -27        -0.1002420784E+01
+ 69         28         0.1417328295E+01
+ 69        -28        -0.1999558146E+00
+ 69         29         0.7148303766E+00
+ 69        -29        -0.2996023674E+00
+ 69         30         0.3127845802E+00
+ 69        -30        -0.2686413305E+01
+ 69         31         0.6736146633E+00
+ 69        -31        -0.1015645972E+01
+ 69         32        -0.1982241353E+01
+ 69        -32         0.9912272268E-01
+ 69         33        -0.1172769367E+01
+ 69        -33        -0.1112216659E+00
+ 69         34        -0.4437003363E-01
+ 69        -34        -0.3705224369E+00
+ 69         35         0.1072729940E+01
+ 69        -35        -0.1111904387E+01
+ 69         36         0.3490400205E+00
+ 69        -36        -0.1184765609E+01
+ 69         37        -0.4117462145E+00
+ 69        -37        -0.4015645742E+00
+ 69         38        -0.1254283128E+00
+ 69        -38         0.1591426979E+01
+ 69         39         0.5254639715E+00
+ 69        -39         0.6404456981E-01
+ 69         40        -0.1980652004E+01
+ 69        -40        -0.1240470169E+00
+ 69         41        -0.8342715496E+00
+ 69        -41        -0.1752548227E+01
+ 69         42        -0.7834996849E-01
+ 69        -42        -0.1572818665E+01
+ 69         43         0.1257340789E+01
+ 69        -43        -0.1554849336E+01
+ 69         44        -0.9588850362E+00
+ 69        -44        -0.7269406029E-01
+ 69         45        -0.1455317735E+01
+ 69        -45         0.5515847973E+00
+ 69         46        -0.4178943045E+00
+ 69        -46         0.1469055078E+00
+ 69         47         0.1301824939E+01
+ 69        -47        -0.3894466302E+00
+ 69         48         0.1520483632E+01
+ 69        -48        -0.1462189533E+01
+ 69         49        -0.1181348722E+00
+ 69        -49        -0.9325155565E+00
+ 69         50        -0.1640917448E+01
+ 69        -50        -0.1474996621E+01
+ 69         51        -0.8905799659E+00
+ 69        -51        -0.1674755346E+01
+ 69         52        -0.7948148152E+00
+ 69        -52        -0.1065536554E+01
+ 69         53        -0.6996631263E-01
+ 69        -53         0.5695129654E+00
+ 69         54         0.7373570540E+00
+ 69        -54         0.1992001505E+00
+ 69         55        -0.5694281075E+00
+ 69        -55        -0.5884703252E-01
+ 69         56        -0.1184461690E+01
+ 69        -56        -0.3527492419E+00
+ 69         57        -0.4547359262E+00
+ 69        -57        -0.9892002446E+00
+ 69         58         0.4930893481E+00
+ 69        -58         0.3589992281E+00
+ 69         59        -0.5070914072E+00
+ 69        -59        -0.3316028375E+00
+ 69         60        -0.5706236620E+00
+ 69        -60        -0.8706084871E+00
+ 69         61        -0.1902232235E-01
+ 69        -61        -0.1562862173E+01
+ 69         62         0.5581595845E+00
+ 69        -62        -0.1242866515E+01
+ 69         63        -0.6994812324E-01
+ 69        -63         0.1258000834E+00
+ 69         64        -0.4897035854E+00
+ 69        -64         0.1395070516E+01
+ 69         65        -0.1146210414E+01
+ 69        -65         0.1124852230E+01
+ 69         66        -0.8508651012E+00
+ 69        -66         0.9151182000E+00
+ 69         67        -0.7963209739E-02
+ 69        -67         0.1377325027E+01
+ 69         68        -0.3115072198E+00
+ 69        -68         0.1261234243E+01
+ 69         69        -0.3048330860E+00
+ 69        -69         0.2089976438E+00
+ 70          0         0.4096626219E+00
+ 70          1         0.2339780975E+01
+ 70         -1        -0.2151561859E+00
+ 70          2        -0.8466345756E+00
+ 70         -2         0.8043806481E+00
+ 70          3        -0.1452437194E+01
+ 70         -3         0.9079858944E+00
+ 70          4         0.1776287117E+01
+ 70         -4         0.5571718311E+00
+ 70          5         0.1839599949E+01
+ 70         -5        -0.8638553311E+00
+ 70          6        -0.8499257545E+00
+ 70         -6        -0.1979661107E+01
+ 70          7        -0.1525487650E+01
+ 70         -7         0.6508633470E+00
+ 70          8        -0.4600029060E+00
+ 70         -8         0.1445651350E+01
+ 70          9        -0.2150678451E+00
+ 70         -9        -0.7056458273E+00
+ 70         10         0.6745541142E+00
+ 70        -10        -0.2048847865E+01
+ 70         11         0.8648392591E+00
+ 70        -11         0.3554917867E-01
+ 70         12        -0.1775483846E+01
+ 70        -12         0.1823709804E+01
+ 70         13        -0.6793182724E+00
+ 70        -13         0.3747326606E+00
+ 70         14         0.1338786739E+01
+ 70        -14        -0.8994038601E+00
+ 70         15         0.7901319280E+00
+ 70        -15         0.6383600974E+00
+ 70         16         0.3246245357E+00
+ 70        -16         0.5345945003E+00
+ 70         17         0.3750463384E+00
+ 70        -17        -0.3331164427E+00
+ 70         18         0.5042277791E+00
+ 70        -18        -0.1268181296E+01
+ 70         19        -0.7262452977E+00
+ 70        -19         0.7880276963E+00
+ 70         20        -0.1557949704E+00
+ 70        -20         0.1523479911E+01
+ 70         21        -0.3964212138E+00
+ 70        -21        -0.8199754573E+00
+ 70         22        -0.6014560024E+00
+ 70        -22        -0.2107128396E+01
+ 70         23        -0.1236391804E+01
+ 70        -23         0.8714342388E-01
+ 70         24        -0.5369272565E+00
+ 70        -24         0.2013351250E+01
+ 70         25         0.1145654900E+01
+ 70        -25         0.2215637824E+00
+ 70         26         0.1367762899E+01
+ 70        -26        -0.7909409237E+00
+ 70         27         0.1538261909E+00
+ 70        -27         0.6191317824E+00
+ 70         28        -0.1400995075E+01
+ 70        -28         0.1615164601E+00
+ 70         29        -0.6081303408E+00
+ 70        -29        -0.3983976884E+00
+ 70         30        -0.4182228559E+00
+ 70        -30         0.1620827285E+01
+ 70         31        -0.3588542921E+00
+ 70        -31         0.1921072642E+01
+ 70         32         0.8331444260E+00
+ 70        -32         0.9408695940E+00
+ 70         33         0.8464236912E+00
+ 70        -33         0.1886899692E+00
+ 70         34         0.8277247779E+00
+ 70        -34         0.1810863686E+01
+ 70         35         0.3720881588E-01
+ 70        -35         0.1378721416E+01
+ 70         36         0.1903246103E+00
+ 70        -36         0.3176879776E+00
+ 70         37         0.5241692968E+00
+ 70        -37        -0.3318702290E+00
+ 70         38         0.1150183617E+00
+ 70        -38        -0.4193611408E+00
+ 70         39        -0.8223607012E+00
+ 70        -39        -0.1211259058E+01
+ 70         40         0.5031064967E+00
+ 70        -40        -0.3539371203E+00
+ 70         41         0.5285536056E+00
+ 70        -41         0.4774148888E+00
+ 70         42         0.4316423894E+00
+ 70        -42         0.1456434517E+01
+ 70         43        -0.8710801459E+00
+ 70        -43         0.2087040818E+01
+ 70         44        -0.2978615433E+00
+ 70        -44         0.1134929393E+01
+ 70         45         0.1945400432E+01
+ 70        -45        -0.6011910996E+00
+ 70         46         0.1849711839E+01
+ 70        -46         0.6243236835E+00
+ 70         47        -0.4195236639E+00
+ 70        -47         0.1214612278E+00
+ 70         48        -0.1230506535E+01
+ 70        -48         0.4969271672E+00
+ 70         49        -0.3959018857E+00
+ 70        -49         0.6427610769E+00
+ 70         50        -0.7225272293E-01
+ 70        -50         0.1312323390E+01
+ 70         51         0.5458952994E+00
+ 70        -51         0.1710809213E+01
+ 70         52         0.5060349948E+00
+ 70        -52         0.2360561000E+01
+ 70         53         0.6438132996E+00
+ 70        -53         0.4281342461E+00
+ 70         54         0.3554511350E+00
+ 70        -54        -0.1230420006E+01
+ 70         55         0.8378932402E+00
+ 70        -55        -0.1499330825E+01
+ 70         56         0.8918827695E+00
+ 70        -56         0.9138372940E+00
+ 70         57         0.1867063617E+00
+ 70        -57         0.9290355008E+00
+ 70         58        -0.5988074158E+00
+ 70        -58        -0.1095337714E+00
+ 70         59         0.1155544735E-01
+ 70        -59         0.7600250673E+00
+ 70         60         0.4108228406E+00
+ 70        -60         0.5574132533E+00
+ 70         61         0.7856897121E+00
+ 70        -61         0.2415353155E+01
+ 70         62        -0.4687617167E+00
+ 70        -62         0.7684380680E+00
+ 70         63        -0.1008331276E+01
+ 70        -63        -0.4343931944E+00
+ 70         64         0.8981363213E+00
+ 70        -64        -0.8202764051E+00
+ 70         65         0.1597885509E+01
+ 70        -65        -0.9388366658E+00
+ 70         66        -0.2743261310E+00
+ 70        -66         0.2037903851E+00
+ 70         67        -0.1172103190E+00
+ 70        -67         0.7307371439E+00
+ 70         68         0.5929912596E-01
+ 70        -68         0.9741032013E+00
+ 70         69         0.6847181753E+00
+ 70        -69         0.1622726583E+01
+ 70         70         0.4789597114E+00
+ 70        -70         0.1011179446E+01
+ 71          0         0.6610726529E+00
+ 71          1        -0.9364795218E+00
+ 71         -1         0.4201361050E+00
+ 71          2        -0.1341405840E+01
+ 71         -2        -0.1969271026E-02
+ 71          3         0.1743824437E+01
+ 71         -3        -0.5818791579E+00
+ 71          4        -0.2813474893E+00
+ 71         -4        -0.4676262881E+00
+ 71          5        -0.1892493113E+01
+ 71         -5         0.7979246468E+00
+ 71          6         0.8569670952E-01
+ 71         -6         0.1860066072E+01
+ 71          7         0.1375824011E+01
+ 71         -7         0.3768092444E+00
+ 71          8         0.5006711725E+00
+ 71         -8        -0.1888345647E+01
+ 71          9         0.1219001511E+00
+ 71         -9        -0.2089892515E+00
+ 71         10        -0.5168301429E+00
+ 71        -10         0.2031955257E+01
+ 71         11        -0.4131799527E+00
+ 71        -11         0.1057760708E+01
+ 71         12         0.1649443255E+01
+ 71        -12        -0.6644012698E+00
+ 71         13         0.1701265654E+01
+ 71        -13        -0.1306578890E+01
+ 71         14        -0.8525847321E+00
+ 71        -14        -0.2360013957E+00
+ 71         15        -0.1844988786E+01
+ 71        -15        -0.4143239281E+00
+ 71         16        -0.1902228194E+00
+ 71        -16        -0.4347096979E+00
+ 71         17         0.6066021382E+00
+ 71        -17         0.4307393318E+00
+ 71         18        -0.8480072848E+00
+ 71        -18         0.1118591353E+01
+ 71         19        -0.4639141300E+00
+ 71        -19        -0.3301047678E-01
+ 71         20        -0.5802406201E+00
+ 71        -20        -0.1242924762E+01
+ 71         21        -0.3585326578E+00
+ 71        -21         0.4210018272E+00
+ 71         22         0.1872275106E+00
+ 71        -22         0.2495908400E+01
+ 71         23         0.2072891316E+01
+ 71        -23         0.1107513658E+01
+ 71         24         0.1800087331E+01
+ 71        -24        -0.1451749020E+01
+ 71         25         0.3964182842E-01
+ 71        -25        -0.1937800945E+01
+ 71         26        -0.1875248966E+01
+ 71        -26        -0.8153507389E-02
+ 71         27        -0.1641047774E+01
+ 71        -27         0.6998571314E+00
+ 71         28         0.4030936272E+00
+ 71        -28        -0.2084755657E+00
+ 71         29         0.1313196663E+01
+ 71        -29        -0.4588976589E-03
+ 71         30         0.2174372865E+00
+ 71        -30        -0.3210154388E+00
+ 71         31        -0.4069102814E+00
+ 71        -31        -0.2137613221E+01
+ 71         32         0.8782444109E+00
+ 71        -32        -0.1226710575E+01
+ 71         33        -0.8369605996E+00
+ 71        -33        -0.9687092531E-01
+ 71         34        -0.1562152838E+01
+ 71        -34        -0.9694064916E+00
+ 71         35        -0.1425318642E+01
+ 71        -35        -0.2277993368E+00
+ 71         36        -0.3817485028E+00
+ 71        -36        -0.1609830395E-01
+ 71         37         0.2162146261E+00
+ 71        -37        -0.7382010283E-01
+ 71         38         0.2045317810E+00
+ 71        -38        -0.7788440972E+00
+ 71         39         0.4605972868E+00
+ 71        -39         0.1224769158E+01
+ 71         40         0.1420675940E+01
+ 71        -40         0.6516784540E+00
+ 71         41        -0.1045347739E+01
+ 71        -41         0.1622918318E+01
+ 71         42        -0.4576446840E+00
+ 71        -42        -0.8117046358E+00
+ 71         43         0.1546522621E+00
+ 71        -43        -0.2376461150E+01
+ 71         44         0.1125825568E+01
+ 71        -44        -0.1744502397E+01
+ 71         45        -0.2100743232E+00
+ 71        -45        -0.4526529781E-02
+ 71         46        -0.1391788368E+01
+ 71        -46        -0.6253006814E+00
+ 71         47        -0.9785023565E+00
+ 71        -47         0.2131350306E+00
+ 71         48         0.1764369794E+00
+ 71        -48         0.1393108553E+00
+ 71         49         0.7393575256E+00
+ 71        -49        -0.4271687926E+00
+ 71         50        -0.1135264141E+00
+ 71        -50        -0.7031102393E+00
+ 71         51        -0.1243481245E+01
+ 71        -51        -0.2337359537E+00
+ 71         52        -0.6688410820E+00
+ 71        -52        -0.1772075032E+01
+ 71         53        -0.3769240737E+00
+ 71        -53        -0.1657708837E+01
+ 71         54        -0.3236401221E+00
+ 71        -54        -0.4943159677E+00
+ 71         55        -0.7133275201E+00
+ 71        -55         0.1265800033E+01
+ 71         56        -0.9280948763E+00
+ 71        -56         0.6057148166E+00
+ 71         57        -0.1963015671E+00
+ 71        -57        -0.6321515465E+00
+ 71         58         0.2678619589E+00
+ 71        -58        -0.9210654055E+00
+ 71         59         0.1592552690E+01
+ 71        -59        -0.7030621242E+00
+ 71         60        -0.4826820606E+00
+ 71        -60        -0.3992303150E+00
+ 71         61        -0.1134613060E+01
+ 71        -61        -0.1721905639E+01
+ 71         62         0.5319002114E+00
+ 71        -62        -0.4443364466E+00
+ 71         63         0.1358130208E+01
+ 71        -63        -0.1625146462E+00
+ 71         64        -0.4242295522E-01
+ 71        -64         0.8035368302E+00
+ 71         65        -0.5233300016E+00
+ 71        -65         0.2690036318E+00
+ 71         66        -0.1107832873E+01
+ 71        -66        -0.2328563192E+00
+ 71         67        -0.1748341479E+00
+ 71        -67         0.1161276734E-01
+ 71         68         0.2888680493E+00
+ 71        -68        -0.8081948986E+00
+ 71         69        -0.8844193478E+00
+ 71        -69        -0.1092185199E+01
+ 71         70        -0.1882659031E-01
+ 71        -70        -0.2389545024E+00
+ 71         71         0.1079062241E+00
+ 71        -71        -0.4307123686E+00
+ 72          0        -0.7153689197E+00
+ 72          1        -0.4247898727E+00
+ 72         -1        -0.4485908626E+00
+ 72          2         0.1651529972E+01
+ 72         -2        -0.9444049066E+00
+ 72          3        -0.1270083105E+01
+ 72         -3         0.2964784943E+00
+ 72          4        -0.1467393132E+01
+ 72         -4         0.1019071086E+01
+ 72          5         0.9970621940E+00
+ 72         -5        -0.9459886621E+00
+ 72          6         0.1214339512E+01
+ 72         -6        -0.7635912504E+00
+ 72          7        -0.7828284342E+00
+ 72         -7        -0.3185488651E+00
+ 72          8        -0.7826104032E+00
+ 72         -8         0.1026593629E+01
+ 72          9        -0.6199887506E-01
+ 72         -9         0.1166203320E+00
+ 72         10        -0.5924102723E+00
+ 72        -10        -0.8116328523E+00
+ 72         11         0.8268224881E+00
+ 72        -11        -0.3985698012E+00
+ 72         12         0.4081669295E+00
+ 72        -12         0.1333903193E+00
+ 72         13        -0.1972075820E+01
+ 72        -13         0.7712751936E+00
+ 72         14        -0.2984485723E+00
+ 72        -14         0.3608805079E+00
+ 72         15         0.1197783954E+01
+ 72        -15         0.2567723195E+00
+ 72         16        -0.2567417110E+00
+ 72        -16         0.7836480421E+00
+ 72         17        -0.4399886613E+00
+ 72        -17         0.4559599531E+00
+ 72         18         0.1147039335E+01
+ 72        -18        -0.6782146034E+00
+ 72         19         0.1110720724E+01
+ 72        -19        -0.1079776617E+01
+ 72         20        -0.7953107496E-01
+ 72        -20         0.7766886009E-01
+ 72         21         0.4148887782E+00
+ 72        -21         0.4129037341E+00
+ 72         22         0.2859039753E+00
+ 72        -22        -0.1249818303E+01
+ 72         23        -0.1285270305E+01
+ 72        -23        -0.2490704016E+01
+ 72         24        -0.1763271292E+01
+ 72        -24        -0.2225151640E+00
+ 72         25        -0.3819900058E+00
+ 72        -25         0.2088057255E+01
+ 72         26         0.1020102659E+01
+ 72        -26         0.5004206122E+00
+ 72         27         0.1143852312E+01
+ 72        -27        -0.1423498463E+01
+ 72         28         0.9508335680E+00
+ 72        -28        -0.2563605281E+00
+ 72         29        -0.7625135658E+00
+ 72        -29        -0.2809167342E-01
+ 72         30        -0.7263977908E+00
+ 72        -30        -0.2227978097E+00
+ 72         31         0.4430409513E-01
+ 72        -31         0.2061890308E+01
+ 72         32        -0.6479354594E+00
+ 72        -32         0.1473228546E+01
+ 72         33         0.8744531925E+00
+ 72        -33        -0.2012849768E+00
+ 72         34         0.5202977861E+00
+ 72        -34        -0.6642011997E+00
+ 72         35         0.6739359558E+00
+ 72        -35         0.3404722813E+00
+ 72         36        -0.2530321535E+00
+ 72        -36         0.9372178479E+00
+ 72         37        -0.7796532899E-01
+ 72        -37         0.8074837996E+00
+ 72         38        -0.2808291544E+00
+ 72        -38         0.1684213690E+00
+ 72         39         0.6817368217E+00
+ 72        -39         0.1147983051E+00
+ 72         40        -0.5792573513E+00
+ 72        -40        -0.2141266086E+00
+ 72         41         0.8659697112E+00
+ 72        -41        -0.1593890875E+01
+ 72         42        -0.5305194862E+00
+ 72        -42        -0.3129619950E+00
+ 72         43        -0.3944242382E-01
+ 72        -43         0.1129012420E+01
+ 72         44        -0.1381503440E+01
+ 72        -44         0.2470552009E+01
+ 72         45        -0.5258311850E+00
+ 72        -45         0.7300763318E+00
+ 72         46         0.5615638375E+00
+ 72        -46        -0.3475202696E+00
+ 72         47         0.1247860227E+01
+ 72        -47         0.5971175908E+00
+ 72         48         0.5136734190E+00
+ 72        -48         0.2356940766E+00
+ 72         49        -0.2139458325E+00
+ 72        -49        -0.2493144486E+00
+ 72         50        -0.1780989100E+00
+ 72        -50        -0.5639875983E+00
+ 72         51         0.7812353201E+00
+ 72        -51        -0.2574464907E+00
+ 72         52         0.5967549298E+00
+ 72        -52         0.1528593684E+00
+ 72         53         0.2933404120E+00
+ 72        -53         0.2545534419E+01
+ 72         54         0.3654838573E+00
+ 72        -54         0.1758213040E+01
+ 72         55         0.9387884017E+00
+ 72        -55         0.2066444212E+00
+ 72         56         0.1157098492E+01
+ 72        -56        -0.3877537327E+00
+ 72         57         0.4863732192E-01
+ 72        -57        -0.1761218457E+00
+ 72         58         0.3574529064E-01
+ 72        -58         0.3598111186E+00
+ 72         59        -0.7267903128E+00
+ 72        -59        -0.6932852119E+00
+ 72         60        -0.1383082168E+00
+ 72        -60        -0.1928914390E+00
+ 72         61         0.2112768148E+00
+ 72        -61         0.5852722538E+00
+ 72         62         0.1272242127E+01
+ 72        -62         0.1794815791E+01
+ 72         63         0.1782521382E-01
+ 72        -63         0.1350736493E+01
+ 72         64        -0.3226857224E+00
+ 72        -64         0.2848484554E+00
+ 72         65         0.7433077885E+00
+ 72        -65        -0.2820925268E+00
+ 72         66         0.1170354920E+01
+ 72        -66        -0.4678788499E+00
+ 72         67         0.7607454044E-01
+ 72        -67        -0.9015182473E+00
+ 72         68        -0.4399154657E+00
+ 72        -68         0.6817465215E+00
+ 72         69        -0.1043804625E+00
+ 72        -69         0.7964559202E+00
+ 72         70        -0.8167567672E+00
+ 72        -70         0.1005873086E+01
+ 72         71         0.2724325971E-01
+ 72        -71         0.1229065851E+01
+ 72         72        -0.2550225487E+00
+ 72        -72         0.5214989877E+00
+ 73          0        -0.7776261731E+00
+ 73          1         0.9961274940E+00
+ 73         -1         0.2593226732E+00
+ 73          2         0.6263308341E+00
+ 73         -2         0.1045120512E+01
+ 73          3        -0.4459656004E+00
+ 73         -3        -0.7732305804E-01
+ 73          4         0.1234605588E+01
+ 73         -4        -0.1526983572E+01
+ 73          5         0.1961519738E+00
+ 73         -5        -0.1034917101E+00
+ 73          6        -0.1585668778E+01
+ 73         -6         0.8765817827E+00
+ 73          7        -0.2337640321E+00
+ 73         -7         0.3341188224E+00
+ 73          8         0.8680042238E+00
+ 73         -8        -0.7659910234E+00
+ 73          9         0.2152513051E+00
+ 73         -9        -0.4290615254E+00
+ 73         10         0.2101571050E+00
+ 73        -10         0.3848577884E+00
+ 73         11        -0.1491672689E+01
+ 73        -11        -0.1073753888E+00
+ 73         12        -0.1547863372E+01
+ 73        -12        -0.1477859462E-01
+ 73         13         0.1161727463E+01
+ 73        -13         0.8439017304E+00
+ 73         14         0.1672026496E+01
+ 73        -14         0.5003415642E+00
+ 73         15         0.1943079996E+00
+ 73        -15        -0.3607631307E+00
+ 73         16        -0.4197829292E+00
+ 73        -16        -0.1565759504E+01
+ 73         17         0.2104128453E-01
+ 73        -17        -0.6633836763E+00
+ 73         18        -0.5179579117E+00
+ 73        -18         0.7511130138E+00
+ 73         19        -0.9922178079E+00
+ 73        -19         0.1144749553E+01
+ 73         20         0.8127651046E+00
+ 73        -20         0.5161918205E+00
+ 73         21         0.4178448141E+00
+ 73        -21        -0.1215542474E+01
+ 73         22        -0.2171883260E+00
+ 73        -22        -0.6701204756E+00
+ 73         23        -0.6843484017E+00
+ 73        -23         0.1874352723E+01
+ 73         24         0.9697050405E+00
+ 73        -24         0.2203973755E+01
+ 73         25         0.9852157468E+00
+ 73        -25        -0.7278108467E-01
+ 73         26         0.4094094709E+00
+ 73        -26        -0.8304338665E+00
+ 73         27        -0.7509948522E+00
+ 73        -27         0.4081904384E+00
+ 73         28        -0.1745927333E+01
+ 73        -28         0.8388997830E+00
+ 73         29        -0.6158286480E+00
+ 73        -29         0.4270751719E+00
+ 73         30         0.3465908662E+00
+ 73        -30         0.1251389563E+00
+ 73         31         0.2179286223E-01
+ 73        -31        -0.8759338503E+00
+ 73         32        -0.5338861673E+00
+ 73        -32        -0.1332634766E+01
+ 73         33        -0.1287218037E+00
+ 73        -33        -0.2650432714E+00
+ 73         34         0.3915925723E+00
+ 73        -34         0.1049600071E+01
+ 73         35        -0.1136324829E+00
+ 73        -35        -0.6683307337E+00
+ 73         36        -0.5208083693E+00
+ 73        -36        -0.1143416815E+01
+ 73         37        -0.9939632497E+00
+ 73        -37        -0.1151451734E+01
+ 73         38        -0.4344735478E+00
+ 73        -38        -0.1795454702E+00
+ 73         39        -0.4359215160E+00
+ 73        -39        -0.7831847873E+00
+ 73         40         0.2838638705E+00
+ 73        -40         0.4572495735E+00
+ 73         41         0.5041634511E+00
+ 73        -41         0.9685944777E+00
+ 73         42        -0.1571271192E-01
+ 73        -42         0.2234410900E+01
+ 73         43        -0.3229761125E+00
+ 73        -43         0.1064124178E+01
+ 73         44        -0.1292282100E+00
+ 73        -44        -0.1960188171E+01
+ 73         45         0.2831454610E+00
+ 73        -45        -0.1294583676E+01
+ 73         46        -0.9562487480E-01
+ 73        -46        -0.1817004230E+00
+ 73         47        -0.6946883289E+00
+ 73        -47        -0.1232414826E+01
+ 73         48        -0.2510245337E+00
+ 73        -48        -0.8856415600E+00
+ 73         49         0.1255710473E+00
+ 73        -49         0.6745062231E+00
+ 73         50        -0.3287558050E+00
+ 73        -50         0.1027953119E+01
+ 73         51        -0.2721824444E+00
+ 73        -51         0.2098806572E+00
+ 73         52        -0.1281693497E+01
+ 73        -52         0.1315677822E-01
+ 73         53        -0.6034501318E+00
+ 73        -53        -0.1359765158E+01
+ 73         54         0.1411948972E+00
+ 73        -54        -0.2519097929E+01
+ 73         55        -0.4322101927E+00
+ 73        -55        -0.1921394289E+01
+ 73         56        -0.1226687450E+01
+ 73        -56        -0.1332431513E-01
+ 73         57        -0.9879205426E+00
+ 73        -57         0.8272501201E+00
+ 73         58        -0.9347672949E+00
+ 73        -58         0.4194925964E+00
+ 73         59         0.6287250825E+00
+ 73        -59         0.4099667148E+00
+ 73         60         0.1339076603E+01
+ 73        -60         0.5959395488E+00
+ 73         61         0.7173997097E+00
+ 73        -61         0.4174489233E+00
+ 73         62        -0.8194936771E+00
+ 73        -62        -0.2367198830E+01
+ 73         63        -0.4739919905E+00
+ 73        -63        -0.1422243638E+01
+ 73         64         0.1780984574E+00
+ 73        -64        -0.4757570896E-01
+ 73         65        -0.7983046426E+00
+ 73        -65         0.1114377000E+01
+ 73         66        -0.3545928862E+00
+ 73        -66         0.1316089498E+01
+ 73         67        -0.4293585731E+00
+ 73        -67         0.3467470900E+00
+ 73         68        -0.3718881700E+00
+ 73        -68        -0.6697160824E+00
+ 73         69         0.3507181469E+00
+ 73        -69        -0.8010620081E+00
+ 73         70         0.6850430998E+00
+ 73        -70        -0.1587833240E+01
+ 73         71        -0.5587950934E+00
+ 73        -71        -0.1408275829E+01
+ 73         72         0.8387139571E+00
+ 73        -72        -0.9995815742E+00
+ 73         73         0.7237092092E+00
+ 73        -73        -0.4919858871E+00
+ 74          0         0.1333870848E+01
+ 74          1         0.6680442010E-01
+ 74         -1         0.2119478985E+00
+ 74          2        -0.1847700792E+01
+ 74         -2        -0.4216157334E+00
+ 74          3         0.1039649276E+01
+ 74         -3        -0.1268651334E+00
+ 74          4         0.4265859354E-01
+ 74         -4         0.1393961226E+01
+ 74          5        -0.9009544446E+00
+ 74         -5         0.1072192505E+01
+ 74          6         0.1100349096E+01
+ 74         -6        -0.2243004554E+01
+ 74          7         0.1097004606E+01
+ 74         -7        -0.9582446472E+00
+ 74          8        -0.2512406105E+00
+ 74         -8         0.1222143935E+01
+ 74          9        -0.3601464375E+00
+ 74         -9         0.1086715273E+01
+ 74         10         0.3175136061E+00
+ 74        -10        -0.1127779984E+01
+ 74         11         0.7354427549E+00
+ 74        -11        -0.1002880981E+01
+ 74         12         0.1106941384E+01
+ 74        -12         0.5186749437E+00
+ 74         13        -0.3343541435E+00
+ 74        -13        -0.6479595549E+00
+ 74         14        -0.1628108887E+01
+ 74        -14        -0.1103597278E+01
+ 74         15        -0.3237428205E+00
+ 74        -15         0.9946769711E-01
+ 74         16         0.3335102197E+00
+ 74        -16         0.1301507955E+01
+ 74         17        -0.5057345437E+00
+ 74        -17         0.4536030455E+00
+ 74         18        -0.4580810907E+00
+ 74        -18         0.2565361940E-01
+ 74         19         0.1260013326E+01
+ 74        -19         0.7268178869E-01
+ 74         20        -0.1884626441E+00
+ 74        -20        -0.1400798639E-02
+ 74         21        -0.1071660471E+01
+ 74        -21         0.9981580807E+00
+ 74         22         0.7610278073E-01
+ 74        -22         0.1085653644E+01
+ 74         23         0.1386187591E+01
+ 74        -23        -0.3248970104E+00
+ 74         24        -0.1787812282E+00
+ 74        -24        -0.2585232997E+01
+ 74         25        -0.1313308072E+01
+ 74        -25        -0.1249470339E+01
+ 74         26        -0.8131532008E+00
+ 74        -26         0.4100038607E+00
+ 74         27         0.2946706800E+00
+ 74        -27         0.2580226371E+00
+ 74         28         0.4554261601E+00
+ 74        -28        -0.9615996256E+00
+ 74         29         0.1253794859E+01
+ 74        -29        -0.9634270971E+00
+ 74         30         0.5331571483E+00
+ 74        -30        -0.8511845894E+00
+ 74         31        -0.3747803255E-01
+ 74        -31        -0.9026349942E+00
+ 74         32         0.2413643588E+00
+ 74        -32         0.1595489824E+01
+ 74         33        -0.3128592974E+00
+ 74        -33         0.1299548987E+01
+ 74         34         0.1158989622E+01
+ 74        -34        -0.4319620274E+00
+ 74         35         0.7082498410E+00
+ 74        -35        -0.6802974989E-02
+ 74         36         0.5942829056E+00
+ 74        -36         0.4296391214E+00
+ 74         37         0.5972097017E+00
+ 74        -37         0.1027073442E+01
+ 74         38         0.2408245702E+00
+ 74        -38         0.6182971489E+00
+ 74         39        -0.6204334639E+00
+ 74        -39         0.5518278515E-02
+ 74         40         0.4238223231E-01
+ 74        -40        -0.5021519028E+00
+ 74         41        -0.3350616667E+00
+ 74        -41         0.4594343193E+00
+ 74         42         0.1126658027E+01
+ 74        -42        -0.1730249147E+01
+ 74         43        -0.3094410803E+00
+ 74        -43        -0.2142261182E+01
+ 74         44        -0.3319276934E+00
+ 74        -44         0.3313620021E+00
+ 74         45        -0.8050233548E+00
+ 74        -45         0.1498409466E+01
+ 74         46        -0.3265974019E+00
+ 74        -46         0.9394257012E+00
+ 74         47         0.2853886849E-01
+ 74        -47         0.2369247005E+00
+ 74         48         0.8762933693E-01
+ 74        -48         0.1722779582E+00
+ 74         49        -0.9275867802E-01
+ 74        -49         0.4220177387E+00
+ 74         50         0.1110468652E+00
+ 74        -50        -0.7541637132E+00
+ 74         51         0.2420463468E+00
+ 74        -51         0.9010251721E-01
+ 74         52         0.1161715249E+01
+ 74        -52        -0.7397516482E+00
+ 74         53         0.8134309756E+00
+ 74        -53        -0.1450454941E+00
+ 74         54         0.4632108921E+00
+ 74        -54         0.6853340354E+00
+ 74         55         0.8506410296E-01
+ 74        -55         0.1624017955E+01
+ 74         56         0.9926898408E+00
+ 74        -56         0.9974195639E+00
+ 74         57         0.9524335394E+00
+ 74        -57         0.1213061224E+00
+ 74         58         0.9348238213E+00
+ 74        -58        -0.3689900297E+00
+ 74         59         0.7987527346E+00
+ 74        -59         0.7375400550E+00
+ 74         60        -0.1298239005E+01
+ 74        -60        -0.1088575313E+00
+ 74         61        -0.3555844614E+00
+ 74        -61        -0.9774747369E+00
+ 74         62        -0.1137145284E-01
+ 74        -62         0.8812922648E-01
+ 74         63         0.7450452691E+00
+ 74        -63         0.8125594968E+00
+ 74         64         0.9311240663E+00
+ 74        -64         0.7375734677E+00
+ 74         65         0.1205193005E+00
+ 74        -65        -0.7882751510E+00
+ 74         66        -0.6898058951E-01
+ 74        -66        -0.1052812784E+01
+ 74         67         0.1267846137E+01
+ 74        -67         0.2010357777E+00
+ 74         68         0.3921786520E+00
+ 74        -68         0.4655445257E+00
+ 74         69        -0.2631337258E+00
+ 74        -69         0.7954360646E+00
+ 74         70        -0.7195239487E+00
+ 74        -70        -0.7241308774E+00
+ 74         71        -0.7147572042E+00
+ 74        -71        -0.4206053412E+00
+ 74         72        -0.8854639102E+00
+ 74        -72        -0.2412513955E+00
+ 74         73        -0.9056304806E+00
+ 74        -73        -0.5506340158E+00
+ 74         74         0.1279525005E+00
+ 74        -74        -0.1647065149E+00
+ 75          0        -0.7047195422E+00
+ 75          1        -0.2295960243E+01
+ 75         -1        -0.5373574068E+00
+ 75          2         0.7144051821E+00
+ 75         -2        -0.2693151262E-01
+ 75          3         0.5641188645E+00
+ 75         -3         0.3272001419E+00
+ 75          4        -0.3566497816E+00
+ 75         -4        -0.6306198001E+00
+ 75          5         0.7916034626E+00
+ 75         -5        -0.9352436811E+00
+ 75          6        -0.5616192789E-01
+ 75         -6         0.1572470533E+01
+ 75          7        -0.1066405634E+01
+ 75         -7         0.1424641600E+01
+ 75          8        -0.4165019386E+00
+ 75         -8        -0.3630490487E+00
+ 75          9         0.5155020809E+00
+ 75         -9        -0.1231326607E+01
+ 75         10         0.4898851865E+00
+ 75        -10         0.1049454454E+01
+ 75         11         0.5648803042E+00
+ 75        -11         0.1716180278E+01
+ 75         12        -0.6876514597E+00
+ 75        -12        -0.1171149401E+01
+ 75         13        -0.5144639862E+00
+ 75        -13        -0.9312229433E+00
+ 75         14         0.4216267654E+00
+ 75        -14         0.1261419712E+01
+ 75         15        -0.8695106750E-01
+ 75        -15         0.1464789226E+01
+ 75         16         0.1056121196E+00
+ 75        -16        -0.3196141556E-01
+ 75         17         0.1281127777E+01
+ 75        -17        -0.1150497644E+01
+ 75         18         0.9636979712E+00
+ 75        -18        -0.8154642236E+00
+ 75         19        -0.1714844232E+01
+ 75        -19        -0.8221050786E+00
+ 75         20        -0.1766130763E+01
+ 75        -20        -0.5043447387E+00
+ 75         21         0.6952716333E+00
+ 75        -21         0.2955981591E+00
+ 75         22         0.9400606656E+00
+ 75        -22         0.1638511392E+00
+ 75         23        -0.3557853749E-01
+ 75        -23        -0.9336642584E+00
+ 75         24        -0.2473381752E+00
+ 75        -24        -0.2562541500E+00
+ 75         25         0.5746943476E+00
+ 75        -25         0.8791382642E+00
+ 75         26        -0.1282133320E+00
+ 75        -26         0.2484847625E+00
+ 75         27         0.3897278543E+00
+ 75        -27        -0.2338199716E+00
+ 75         28         0.7478981861E+00
+ 75        -28         0.2566451581E+00
+ 75         29        -0.1124600402E+01
+ 75        -29         0.8670589223E+00
+ 75         30        -0.8789896982E+00
+ 75        -30         0.1523210562E+01
+ 75         31        -0.7486115350E+00
+ 75        -31         0.1116288062E+01
+ 75         32        -0.2955015655E+00
+ 75        -32        -0.1048415659E+01
+ 75         33        -0.5018244322E+00
+ 75        -33        -0.1656834696E+01
+ 75         34        -0.1882282876E+01
+ 75        -34        -0.3789622395E+00
+ 75         35        -0.1091828664E+01
+ 75        -35         0.1431321437E+01
+ 75         36        -0.1356214682E+00
+ 75        -36         0.7323671902E+00
+ 75         37         0.7990792673E+00
+ 75        -37         0.1763124662E+00
+ 75         38        -0.4818807691E+00
+ 75        -38        -0.9550051406E+00
+ 75         39         0.9897485970E-01
+ 75        -39        -0.3774080054E+00
+ 75         40        -0.6990346939E+00
+ 75        -40        -0.6514488348E+00
+ 75         41         0.5711155373E-01
+ 75        -41        -0.5867188893E+00
+ 75         42        -0.5011761031E+00
+ 75        -42         0.1783800345E+00
+ 75         43         0.6558429822E+00
+ 75        -43         0.1875155338E+01
+ 75         44         0.1537449765E+00
+ 75        -44         0.1700205031E+01
+ 75         45         0.8357182698E+00
+ 75        -45        -0.9884374509E+00
+ 75         46        -0.4167288364E+00
+ 75        -46        -0.1041521503E+01
+ 75         47         0.2083376652E+00
+ 75        -47         0.5851744009E-01
+ 75         48        -0.3309326398E+00
+ 75        -48        -0.5582106085E+00
+ 75         49         0.5062075172E+00
+ 75        -49        -0.9563402582E+00
+ 75         50        -0.4218893376E+00
+ 75        -50         0.2554195080E-01
+ 75         51        -0.9340048328E+00
+ 75        -51         0.7699935808E+00
+ 75         52        -0.1006715904E+01
+ 75        -52        -0.4839094191E+00
+ 75         53        -0.1193062096E+01
+ 75        -53         0.6440897929E+00
+ 75         54        -0.7653751827E+00
+ 75        -54         0.2047167081E+00
+ 75         55         0.3370587928E-01
+ 75        -55        -0.1654465144E+00
+ 75         56         0.2316597748E+00
+ 75        -56        -0.2107446015E+01
+ 75         57        -0.5147268088E+00
+ 75        -57        -0.1607559146E+01
+ 75         58        -0.1003986444E+01
+ 75        -58        -0.2968216111E+00
+ 75         59        -0.9707820115E+00
+ 75        -59        -0.8475999820E+00
+ 75         60         0.5833652430E+00
+ 75        -60         0.6167847603E+00
+ 75         61         0.1638502381E+00
+ 75        -61         0.1561479654E+01
+ 75         62         0.4391831719E+00
+ 75        -62         0.1335317116E+01
+ 75         63         0.1124408668E+00
+ 75        -63        -0.6756759109E+00
+ 75         64         0.1321036712E-01
+ 75        -64        -0.7613243503E+00
+ 75         65        -0.8452701568E-01
+ 75        -65        -0.4840439576E+00
+ 75         66        -0.9217232452E+00
+ 75        -66         0.4957958596E+00
+ 75         67        -0.9684952021E+00
+ 75        -67         0.2884100058E+00
+ 75         68        -0.1821351133E+00
+ 75        -68        -0.4630044828E+00
+ 75         69         0.2600798599E+00
+ 75        -69        -0.5765643809E-01
+ 75         70         0.7252766207E+00
+ 75        -70         0.1580344703E+01
+ 75         71         0.9386495352E+00
+ 75        -71         0.5212027178E+00
+ 75         72         0.9703310702E-01
+ 75        -72        -0.4088102275E+00
+ 75         73         0.5580485377E+00
+ 75        -73        -0.2999383508E+00
+ 75         74         0.2609150445E+00
+ 75        -74        -0.1200067554E+00
+ 75         75         0.3580120091E-01
+ 75        -75         0.5219431134E+00
+ 76          0        -0.5663164693E+00
+ 76          1         0.2882526168E+01
+ 76         -1         0.5214006265E-01
+ 76          2         0.1122723894E+01
+ 76         -2         0.6371909012E-01
+ 76          3        -0.1648464816E+01
+ 76         -3        -0.5716458492E+00
+ 76          4         0.1505466408E+00
+ 76         -4        -0.2282390681E+00
+ 76          5         0.1347827890E-01
+ 76         -5         0.9015481799E+00
+ 76          6        -0.1092191021E+01
+ 76         -6         0.4565672451E+00
+ 76          7         0.5916284791E+00
+ 76         -7        -0.1381556955E+01
+ 76          8         0.5961186495E+00
+ 76         -8        -0.7880243666E+00
+ 76          9        -0.1942603738E+00
+ 76         -9         0.9745071225E+00
+ 76         10        -0.6546712713E+00
+ 76        -10         0.1931484616E+00
+ 76         11        -0.1075175238E+01
+ 76        -11        -0.6779740821E+00
+ 76         12         0.3412237387E+00
+ 76        -12         0.6987616214E+00
+ 76         13         0.8906111817E+00
+ 76        -13         0.1388938123E+01
+ 76         14        -0.1536564132E+00
+ 76        -14        -0.7731670725E+00
+ 76         15        -0.1274289993E+00
+ 76        -15        -0.2263770700E+01
+ 76         16         0.4537416333E+00
+ 76        -16        -0.5846463701E+00
+ 76         17        -0.9061548943E+00
+ 76        -17         0.9413032465E+00
+ 76         18        -0.1296160013E+01
+ 76        -18         0.4077702655E+00
+ 76         19         0.5742627313E+00
+ 76        -19         0.4565639123E+00
+ 76         20         0.3132896835E+01
+ 76        -20         0.3909422374E+00
+ 76         21         0.6916372641E+00
+ 76        -21        -0.7079537889E+00
+ 76         22        -0.1517532490E+01
+ 76        -22        -0.6063949650E+00
+ 76         23        -0.9433778357E+00
+ 76        -23         0.6833430715E+00
+ 76         24         0.2795694004E+00
+ 76        -24         0.2140076812E+01
+ 76         25         0.1705048070E+00
+ 76        -25         0.2912933897E+00
+ 76         26         0.3980351767E-01
+ 76        -26        -0.3582469868E+00
+ 76         27         0.5651910134E-01
+ 76        -27        -0.6268852256E+00
+ 76         28        -0.6758983641E+00
+ 76        -28        -0.5341419189E+00
+ 76         29        -0.6180666829E+00
+ 76        -29        -0.5488192792E+00
+ 76         30         0.1090127181E+01
+ 76        -30        -0.7792062956E+00
+ 76         31         0.1825324809E+01
+ 76        -31        -0.6593915630E+00
+ 76         32         0.7732445865E+00
+ 76        -32        -0.5024365102E+00
+ 76         33         0.3149199052E+00
+ 76        -33         0.9990121120E+00
+ 76         34         0.6272503738E+00
+ 76        -34         0.9737157168E+00
+ 76         35         0.1353083306E+01
+ 76        -35        -0.1483873471E+01
+ 76         36         0.3054900011E+00
+ 76        -36        -0.1102356439E+01
+ 76         37        -0.1130966577E+01
+ 76        -37        -0.9029412293E+00
+ 76         38        -0.2657744085E+00
+ 76        -38         0.4672524952E+00
+ 76         39         0.2226180420E+00
+ 76        -39         0.8834069803E+00
+ 76         40         0.5208407796E-01
+ 76        -40         0.6910145701E+00
+ 76         41        -0.6249443127E-01
+ 76        -41        -0.4750013563E+00
+ 76         42         0.1591819699E+00
+ 76        -42         0.8532542766E+00
+ 76         43         0.1592054595E+00
+ 76        -43        -0.8435733583E+00
+ 76         44        -0.3045240191E-01
+ 76        -44        -0.2213701756E+01
+ 76         45        -0.7475485488E+00
+ 76        -45        -0.7843601907E+00
+ 76         46        -0.4001693268E+00
+ 76        -46         0.5213723781E+00
+ 76         47        -0.3516993679E+00
+ 76        -47         0.3459597160E+00
+ 76         48         0.4213495360E+00
+ 76        -48         0.3994505380E+00
+ 76         49         0.1028016247E+00
+ 76        -49         0.1734597375E+00
+ 76         50         0.1592908751E+00
+ 76        -50         0.3458508740E+00
+ 76         51         0.7303394959E+00
+ 76        -51        -0.7069092185E+00
+ 76         52         0.1695858265E+00
+ 76        -52        -0.5213860875E+00
+ 76         53         0.8296685910E+00
+ 76        -53         0.3513808218E-01
+ 76         54         0.1078001256E+01
+ 76        -54        -0.7475554843E+00
+ 76         55         0.8132637091E+00
+ 76        -55        -0.9075414751E+00
+ 76         56         0.9941780793E-01
+ 76        -56         0.1403869538E+00
+ 76         57        -0.2568838298E+00
+ 76        -57         0.6439997489E+00
+ 76         58        -0.1821530851E+00
+ 76        -58         0.8569980276E-02
+ 76         59         0.8736384114E+00
+ 76        -59         0.1093573781E+00
+ 76         60         0.2248562230E+00
+ 76        -60         0.7676978136E-01
+ 76         61         0.9082553890E-01
+ 76        -61         0.3204865360E+00
+ 76         62         0.4192372198E+00
+ 76        -62        -0.1071794927E+01
+ 76         63         0.5347128058E+00
+ 76        -63        -0.2184599789E+00
+ 76         64        -0.1735357310E-02
+ 76        -64        -0.5871709854E+00
+ 76         65        -0.1613763803E+00
+ 76        -65         0.2484572317E+00
+ 76         66         0.3453147484E+00
+ 76        -66        -0.1524742549E+00
+ 76         67         0.1343949737E+00
+ 76        -67        -0.1324408939E+01
+ 76         68         0.2026571421E+00
+ 76        -68        -0.5720361123E+00
+ 76         69        -0.1856456294E+00
+ 76        -69         0.4389567289E-02
+ 76         70        -0.5859658684E+00
+ 76        -70        -0.2913827374E+00
+ 76         71        -0.6588780431E+00
+ 76        -71         0.1547207989E-01
+ 76         72        -0.4027126928E+00
+ 76        -72        -0.1203848418E+00
+ 76         73        -0.3829095694E+00
+ 76        -73        -0.2052117012E+00
+ 76         74         0.7099449748E+00
+ 76        -74        -0.1000879096E+01
+ 76         75         0.9751074151E-01
+ 76        -75        -0.1087003972E+01
+ 76         76         0.4693730288E+00
+ 76        -76         0.3637003566E+00
+ 77          0         0.2093219426E+01
+ 77          1        -0.8949929727E+00
+ 77         -1         0.7219713076E+00
+ 77          2        -0.1916202275E+01
+ 77         -2         0.4981019043E+00
+ 77          3         0.8511052415E+00
+ 77         -3         0.5080232127E+00
+ 77          4         0.1194092667E+00
+ 77         -4        -0.4303494199E-03
+ 77          5        -0.2471359859E+00
+ 77         -5        -0.1108850753E+01
+ 77          6         0.1395043582E+01
+ 77         -6        -0.5666260637E+00
+ 77          7         0.2238473594E+00
+ 77         -7         0.9527084687E+00
+ 77          8        -0.5216573276E+00
+ 77         -8         0.5347846082E+00
+ 77          9        -0.6640422078E+00
+ 77         -9        -0.6637211559E+00
+ 77         10        -0.3965201750E+00
+ 77        -10        -0.7795298254E+00
+ 77         11         0.6585793961E+00
+ 77        -11         0.3393549727E+00
+ 77         12         0.4104153245E+00
+ 77        -12         0.5569194340E+00
+ 77         13        -0.3714089177E+00
+ 77        -13        -0.1556073638E+01
+ 77         14         0.4751837875E+00
+ 77        -14        -0.8503826462E+00
+ 77         15         0.4714040156E+00
+ 77        -15         0.1198379995E+01
+ 77         16        -0.1162294516E+01
+ 77        -16         0.1098861375E+01
+ 77         17        -0.4959688775E+00
+ 77        -17         0.6386888988E+00
+ 77         18         0.1582130480E+01
+ 77        -18         0.6692466457E+00
+ 77         19         0.1738030533E+01
+ 77        -19         0.6646933424E+00
+ 77         20        -0.1803535943E+01
+ 77        -20        -0.6022647378E+00
+ 77         21        -0.1972946563E+01
+ 77        -21        -0.4994977008E+00
+ 77         22         0.1415730303E+00
+ 77        -22         0.3016357495E+00
+ 77         23         0.9082211466E+00
+ 77        -23         0.1268619270E+01
+ 77         24         0.5295914250E+00
+ 77        -24        -0.4895585798E+00
+ 77         25         0.6544016965E+00
+ 77        -25        -0.1805794565E+01
+ 77         26         0.9828712711E+00
+ 77        -26        -0.7070055420E+00
+ 77         27        -0.9045743641E+00
+ 77        -27         0.3632079122E+00
+ 77         28        -0.3485425307E+00
+ 77        -28         0.1740690861E+00
+ 77         29         0.1313910278E+01
+ 77        -29         0.1613627771E+00
+ 77         30        -0.7675650735E+00
+ 77        -30        -0.1385547858E+00
+ 77         31        -0.2057289787E+01
+ 77        -31         0.8973070382E+00
+ 77         32        -0.1825354199E+01
+ 77        -32         0.1205684151E+01
+ 77         33        -0.3014371340E+00
+ 77        -33        -0.2880069199E+00
+ 77         34         0.4155583130E+00
+ 77        -34        -0.8984395295E+00
+ 77         35        -0.1341890304E+01
+ 77        -35        -0.6889667683E-01
+ 77         36        -0.8857972847E+00
+ 77        -36         0.6515110127E+00
+ 77         37        -0.5019594680E-01
+ 77        -37         0.1002203471E+01
+ 77         38         0.1129435801E+01
+ 77        -38         0.1114569526E+01
+ 77         39         0.6842691605E+00
+ 77        -39         0.6960045337E-01
+ 77         40         0.6952004921E+00
+ 77        -40        -0.4626924596E+00
+ 77         41        -0.2045864958E+00
+ 77        -41        -0.6667465891E-01
+ 77         42        -0.2598018066E+00
+ 77        -42        -0.8993993170E+00
+ 77         43        -0.8792852833E+00
+ 77        -43         0.2821216391E-01
+ 77         44         0.2368194076E+00
+ 77        -44         0.1373589075E+01
+ 77         45         0.2002584171E+00
+ 77        -45         0.1738961762E+01
+ 77         46         0.1017300116E+01
+ 77        -46         0.1569259123E+00
+ 77         47         0.1558761300E+00
+ 77        -47        -0.1180807781E+01
+ 77         48        -0.3056832680E+00
+ 77        -48        -0.6889454439E+00
+ 77         49        -0.7016248594E+00
+ 77        -49         0.1693603861E-01
+ 77         50         0.3899847364E+00
+ 77        -50        -0.1247040837E+00
+ 77         51        -0.1276944829E+00
+ 77        -51         0.8649359111E+00
+ 77         52        -0.3222168948E+00
+ 77        -52         0.4438117348E+00
+ 77         53        -0.1237908999E+01
+ 77        -53        -0.3942082821E+00
+ 77         54        -0.9412599066E+00
+ 77        -54        -0.7129648829E+00
+ 77         55        -0.1548416866E+01
+ 77        -55         0.1191322403E+01
+ 77         56        -0.4696958223E-01
+ 77        -56         0.2013740076E+01
+ 77         57         0.9998458860E+00
+ 77        -57         0.3513041214E+00
+ 77         58         0.9612679143E+00
+ 77        -58        -0.6747464875E+00
+ 77         59        -0.4033766036E+00
+ 77        -59        -0.7703919163E+00
+ 77         60        -0.8478928378E+00
+ 77        -60        -0.1390892462E+01
+ 77         61        -0.1498862134E+00
+ 77        -61        -0.7125884927E+00
+ 77         62        -0.1009620030E+01
+ 77        -62        -0.1479115957E+00
+ 77         63         0.4482500661E+00
+ 77        -63         0.8759829955E+00
+ 77         64         0.9009039573E+00
+ 77        -64         0.1267924011E+01
+ 77         65         0.5146785988E+00
+ 77        -65         0.2261600857E-01
+ 77         66         0.5835205800E+00
+ 77        -66        -0.4314958638E+00
+ 77         67         0.8057422438E-02
+ 77        -67         0.4799121649E-01
+ 77         68        -0.6701716608E+00
+ 77        -68         0.3512320749E+00
+ 77         69         0.1342265692E+00
+ 77        -69         0.2903689841E+00
+ 77         70         0.6270864610E+00
+ 77        -70        -0.4146815690E-01
+ 77         71         0.9090696904E+00
+ 77        -71         0.6556235647E+00
+ 77         72         0.6657667839E+00
+ 77        -72         0.8789831588E+00
+ 77         73        -0.5933077395E+00
+ 77        -73         0.9930962890E+00
+ 77         74        -0.8683186245E+00
+ 77        -74         0.9650872548E+00
+ 77         75         0.2380250966E+00
+ 77        -75         0.3445525842E+00
+ 77         76         0.3347265708E+00
+ 77        -76         0.4694727524E-01
+ 77         77         0.8073965319E-02
+ 77        -77         0.3808296497E+00
+ 78          0        -0.2553935144E+01
+ 78          1        -0.1127784287E+01
+ 78         -1        -0.2288086188E+00
+ 78          2         0.1651093324E+01
+ 78         -2        -0.7191638765E+00
+ 78          3         0.2762009568E+00
+ 78         -3         0.1104334246E+00
+ 78          4        -0.5275455841E+00
+ 78         -4         0.5749091591E+00
+ 78          5         0.3572996907E+00
+ 78         -5         0.4954321837E+00
+ 78          6        -0.4082775185E+00
+ 78         -6        -0.6951693450E-01
+ 78          7        -0.9537964871E+00
+ 78         -7        -0.2226373479E+00
+ 78          8         0.1757739673E+00
+ 78         -8         0.2782721413E+00
+ 78          9         0.7847784766E+00
+ 78         -9         0.4039121191E-01
+ 78         10         0.1345598739E+01
+ 78        -10         0.6675745203E-01
+ 78         11         0.5631641495E+00
+ 78        -11        -0.8680474135E+00
+ 78         12        -0.9264627562E+00
+ 78        -12        -0.6967396092E+00
+ 78         13         0.2758623376E-01
+ 78        -13         0.1679245619E+01
+ 78         14        -0.3865828068E-01
+ 78        -14         0.1944386759E+01
+ 78         15        -0.6315199399E+00
+ 78        -15        -0.2060115438E+00
+ 78         16         0.8637224403E+00
+ 78        -16        -0.1484989532E+01
+ 78         17         0.1286811314E+01
+ 78        -17        -0.8562638443E+00
+ 78         18        -0.1220447668E+01
+ 78        -18        -0.9015492080E+00
+ 78         19        -0.2858792304E+01
+ 78        -19        -0.9200733412E+00
+ 78         20        -0.1095221798E+01
+ 78        -20         0.9224054461E+00
+ 78         21         0.2003894073E+01
+ 78        -21         0.1546086252E+01
+ 78         22         0.1564414584E+01
+ 78        -22        -0.1327302406E+00
+ 78         23        -0.2184809689E+00
+ 78        -23        -0.2171261505E+01
+ 78         24        -0.7933721191E+00
+ 78        -24        -0.1686766582E+01
+ 78         25        -0.1546243902E+01
+ 78        -25         0.1482429910E+01
+ 78         26        -0.1573470612E+01
+ 78        -26         0.1814315082E+01
+ 78         27         0.5906570237E+00
+ 78        -27         0.8074876536E+00
+ 78         28         0.1371117657E+01
+ 78        -28        -0.2353132224E+00
+ 78         29        -0.2269955615E-01
+ 78        -29        -0.7904332625E+00
+ 78         30        -0.3393585752E+00
+ 78        -30        -0.4185983590E+00
+ 78         31         0.1204856714E+01
+ 78        -31        -0.1081964604E+01
+ 78         32         0.2022209325E+01
+ 78        -32        -0.8968547079E+00
+ 78         33         0.6670275583E+00
+ 78        -33        -0.1157328181E+00
+ 78         34        -0.9638136749E+00
+ 78        -34         0.8167937178E+00
+ 78         35         0.5501612016E+00
+ 78        -35         0.7639689811E+00
+ 78         36         0.1761398638E+01
+ 78        -36        -0.6359230037E+00
+ 78         37         0.6552703720E+00
+ 78        -37        -0.7327853650E+00
+ 78         38        -0.1250779708E+01
+ 78        -38        -0.2026432448E+01
+ 78         39        -0.7865605215E+00
+ 78        -39        -0.7714639205E+00
+ 78         40        -0.1175493560E+01
+ 78        -40         0.1106572351E+00
+ 78         41        -0.5433192410E+00
+ 78        -41         0.9396956201E+00
+ 78         42        -0.2676154806E+00
+ 78        -42        -0.2287735644E+00
+ 78         43         0.1119012924E+01
+ 78        -43         0.6030741921E+00
+ 78         44         0.2559012435E+00
+ 78        -44        -0.7136491841E+00
+ 78         45         0.2397043441E+00
+ 78        -45        -0.1974154623E+01
+ 78         46        -0.8082516727E+00
+ 78        -46        -0.1178989133E+01
+ 78         47         0.2449798857E+00
+ 78        -47         0.2132767980E+00
+ 78         48         0.1497632399E-01
+ 78        -48         0.2653604831E+00
+ 78         49         0.1229337995E+01
+ 78        -49         0.2764371598E+00
+ 78         50        -0.8377060435E-02
+ 78        -50        -0.8555220407E-04
+ 78         51         0.2460151337E+00
+ 78        -51         0.2696158665E+00
+ 78         52         0.1031986821E+01
+ 78        -52        -0.9349655471E+00
+ 78         53         0.7080252876E+00
+ 78        -53        -0.1389974834E+00
+ 78         54         0.5968652549E+00
+ 78        -54         0.5160723603E-01
+ 78         55         0.9839709495E-01
+ 78        -55         0.1076925589E+00
+ 78         56         0.7519104175E+00
+ 78        -56        -0.1904093603E+01
+ 78         57        -0.1070602362E+00
+ 78        -57        -0.1204894903E+01
+ 78         58        -0.2257373721E+00
+ 78        -58        -0.5551775881E+00
+ 78         59        -0.2511201089E-01
+ 78        -59        -0.2508637426E+00
+ 78         60         0.3633764881E+00
+ 78        -60         0.5681259809E+00
+ 78         61         0.4055703290E-01
+ 78        -61        -0.2379829970E+00
+ 78         62         0.2313576674E+00
+ 78        -62         0.3822871707E+00
+ 78         63        -0.1276799854E+00
+ 78        -63        -0.6067654769E+00
+ 78         64         0.3532093537E+00
+ 78        -64        -0.1110721774E+01
+ 78         65         0.8149649853E-01
+ 78        -65        -0.9129814376E+00
+ 78         66        -0.7918666145E+00
+ 78        -66        -0.6906032132E-01
+ 78         67         0.9390667951E-01
+ 78        -67         0.3298610129E-01
+ 78         68         0.5847508283E+00
+ 78        -68        -0.3478296376E+00
+ 78         69         0.6496895320E+00
+ 78        -69        -0.1033584802E+01
+ 78         70        -0.2484192749E+00
+ 78        -70        -0.3637589661E+00
+ 78         71        -0.1469843334E+01
+ 78        -71        -0.2752084370E+00
+ 78         72        -0.9644948439E+00
+ 78        -72        -0.4286961344E+00
+ 78         73         0.1304159108E+00
+ 78        -73        -0.8158982209E+00
+ 78         74         0.4786324997E+00
+ 78        -74        -0.3640055836E+00
+ 78         75         0.3097997334E+00
+ 78        -75        -0.3375107007E+00
+ 78         76         0.4527904252E+00
+ 78        -76        -0.3026276846E+00
+ 78         77         0.4003490973E+00
+ 78        -77         0.5661826294E+00
+ 78         78         0.8998860144E-01
+ 78        -78         0.1124975039E+01
+ 79          0         0.5598092837E+00
+ 79          1         0.1978755555E+01
+ 79         -1        -0.9278131350E+00
+ 79          2        -0.6952295405E+00
+ 79         -2         0.6063157863E+00
+ 79          3        -0.5432937885E+00
+ 79         -3         0.2610317571E+00
+ 79          4         0.4714551487E+00
+ 79         -4        -0.4483640169E+00
+ 79          5        -0.8293909090E+00
+ 79         -5        -0.5971887159E+00
+ 79          6        -0.4888360087E+00
+ 79         -6        -0.3057541193E+00
+ 79          7         0.1199741169E+01
+ 79         -7         0.6811852576E+00
+ 79          8         0.6057772816E+00
+ 79         -8         0.1914895785E+00
+ 79          9         0.7580479946E-01
+ 79         -9         0.4359524697E-01
+ 79         10        -0.9610947491E+00
+ 79        -10         0.4266566706E+00
+ 79         11        -0.1534757973E+01
+ 79        -11         0.8968409875E+00
+ 79         12         0.3611196626E+00
+ 79        -12         0.8055586021E+00
+ 79         13         0.2770560061E-01
+ 79        -13        -0.4306559596E+00
+ 79         14        -0.2940418955E+00
+ 79        -14        -0.1379865349E+01
+ 79         15         0.4385602498E+00
+ 79        -15        -0.1242606409E+00
+ 79         16         0.5973554766E+00
+ 79        -16         0.6773320530E+00
+ 79         17        -0.8059505401E+00
+ 79        -17        -0.3180954967E+00
+ 79         18        -0.6201177748E+00
+ 79        -18         0.1812752434E+00
+ 79         19         0.1564858560E+01
+ 79        -19         0.7653068331E+00
+ 79         20         0.2034899802E+01
+ 79        -20         0.1449579542E+00
+ 79         21        -0.6378310208E+00
+ 79        -21        -0.1586888560E+01
+ 79         22        -0.1496641368E+01
+ 79        -22        -0.4676148344E+00
+ 79         23        -0.5549085849E+00
+ 79        -23         0.7830018349E+00
+ 79         24         0.3077478518E+00
+ 79        -24         0.2127730193E+01
+ 79         25         0.1404386809E+01
+ 79        -25         0.8390780734E+00
+ 79         26         0.1965027485E+01
+ 79        -26        -0.1253785362E+01
+ 79         27         0.1251528190E+01
+ 79        -27        -0.1442353626E+01
+ 79         28        -0.9108918843E+00
+ 79        -28         0.1295741266E+00
+ 79         29        -0.8157942456E+00
+ 79        -29         0.5518149269E+00
+ 79         30         0.1187114110E+01
+ 79        -30         0.3963815353E+00
+ 79         31        -0.1943962061E+00
+ 79        -31         0.3149745638E+00
+ 79         32        -0.1920867030E+01
+ 79        -32         0.8095806851E+00
+ 79         33        -0.1849227082E+01
+ 79        -33         0.4747386400E-01
+ 79         34        -0.1653769215E+00
+ 79        -34        -0.5796409630E+00
+ 79         35        -0.6929455246E-01
+ 79        -35        -0.7266689295E+00
+ 79         36        -0.1536843171E+01
+ 79        -36         0.5164699231E+00
+ 79         37        -0.9259128392E+00
+ 79        -37         0.1748022049E+00
+ 79         38         0.1339575861E+00
+ 79        -38         0.8513528382E+00
+ 79         39         0.8676948503E+00
+ 79        -39         0.1050739918E+01
+ 79         40         0.9094552940E+00
+ 79        -40         0.9390449211E+00
+ 79         41         0.1517436991E+01
+ 79        -41        -0.2951994172E+00
+ 79         42         0.6859691546E+00
+ 79        -42         0.7760446092E+00
+ 79         43        -0.8752702414E+00
+ 79        -43        -0.6693763086E+00
+ 79         44        -0.1027912185E+01
+ 79        -44         0.5302834487E-02
+ 79         45        -0.2996197445E+00
+ 79        -45         0.1169200736E+01
+ 79         46        -0.6795770912E-01
+ 79        -46         0.2044915321E+01
+ 79         47         0.2886029176E-01
+ 79        -47         0.1444580163E+01
+ 79         48         0.4896998623E+00
+ 79        -48         0.5298781328E-01
+ 79         49        -0.4437292271E+00
+ 79        -49        -0.1276826425E+01
+ 79         50        -0.1182860885E+01
+ 79        -50        -0.3414237144E+00
+ 79         51        -0.1051911784E+01
+ 79        -51         0.1682938440E+00
+ 79         52        -0.8752093684E+00
+ 79        -52         0.7628795179E+00
+ 79         53        -0.1497605228E-01
+ 79        -53         0.1248208708E+01
+ 79         54        -0.7482167796E-02
+ 79        -54        -0.5791799748E+00
+ 79         55         0.3817954253E+00
+ 79        -55        -0.1232591614E+01
+ 79         56        -0.4160717035E+00
+ 79        -56         0.2474064433E+00
+ 79         57        -0.9547958902E+00
+ 79        -57         0.1891045152E+01
+ 79         58        -0.1414873082E-01
+ 79        -58         0.1481569743E+01
+ 79         59         0.2989750718E+00
+ 79        -59         0.7368154911E+00
+ 79         60        -0.3105675092E+00
+ 79        -60         0.2330283935E-02
+ 79         61        -0.5484436960E+00
+ 79        -61         0.5799768875E+00
+ 79         62         0.3142150147E-01
+ 79        -62        -0.6786006690E+00
+ 79         63        -0.6275311901E-01
+ 79        -63        -0.8433609232E+00
+ 79         64        -0.1265486033E+00
+ 79        -64        -0.4372711115E+00
+ 79         65        -0.1390220208E+00
+ 79        -65         0.7880828616E+00
+ 79         66         0.7808734517E+00
+ 79        -66         0.3275560453E+00
+ 79         67         0.7596809785E+00
+ 79        -67        -0.5693176500E+00
+ 79         68         0.2225921674E+00
+ 79        -68         0.3858965715E-01
+ 79         69        -0.7678272014E+00
+ 79        -69         0.5817601262E+00
+ 79         70         0.3934953059E-01
+ 79        -70         0.7002239772E+00
+ 79         71         0.7084148665E+00
+ 79        -71         0.9199710586E+00
+ 79         72         0.6152568836E+00
+ 79        -72         0.7838285101E+00
+ 79         73        -0.4149170497E-02
+ 79        -73         0.5143710098E+00
+ 79         74        -0.5407578499E+00
+ 79        -74         0.4725981544E+00
+ 79         75        -0.1541364723E+00
+ 79        -75         0.3668278130E+00
+ 79         76         0.3984375157E+00
+ 79        -76        -0.4535415893E-02
+ 79         77         0.6968731380E-01
+ 79        -77        -0.5095769694E+00
+ 79         78         0.2434293629E+00
+ 79        -78        -0.9232250372E+00
+ 79         79         0.2015733004E+00
+ 79        -79        -0.1882444254E+00
+ 80          0         0.1274009140E+01
+ 80          1        -0.1883545795E+01
+ 80         -1         0.1094163123E+01
+ 80          2        -0.1321134044E+00
+ 80         -2        -0.1625810804E+00
+ 80          3         0.7432887320E+00
+ 80         -3        -0.1189579813E+01
+ 80          4        -0.3081316476E+00
+ 80         -4        -0.8395906254E-01
+ 80          5         0.6426008462E+00
+ 80         -5         0.8081923288E+00
+ 80          6         0.1083708063E+01
+ 80         -6         0.7984027379E+00
+ 80          7        -0.7308803414E+00
+ 80         -7        -0.1041628225E+01
+ 80          8        -0.1088135128E+01
+ 80         -8        -0.7639948321E+00
+ 80          9        -0.9063226171E+00
+ 80         -9         0.7539825733E+00
+ 80         10        -0.2637935603E+00
+ 80        -10         0.1881892063E+00
+ 80         11         0.1411604290E+01
+ 80        -11        -0.4981953587E+00
+ 80         12         0.6322545933E+00
+ 80        -12        -0.1336568895E+01
+ 80         13        -0.6433046379E+00
+ 80        -13        -0.7492439461E+00
+ 80         14         0.2138524881E-01
+ 80        -14         0.9880034446E+00
+ 80         15        -0.1799010793E-01
+ 80        -15         0.9033026718E+00
+ 80         16        -0.1300792772E+01
+ 80        -16        -0.6185528124E-01
+ 80         17         0.1287278688E+00
+ 80        -17         0.5513801981E+00
+ 80         18         0.1849460963E+01
+ 80        -18         0.3518801398E+00
+ 80         19         0.7988351087E+00
+ 80        -19        -0.1351590858E+01
+ 80         20        -0.1135559672E+01
+ 80        -20        -0.1472464091E+01
+ 80         21        -0.1081004057E+01
+ 80        -21         0.1179623651E+01
+ 80         22         0.5767610758E+00
+ 80        -22         0.1712527992E+01
+ 80         23         0.8979744334E+00
+ 80        -23         0.1057940219E+01
+ 80         24         0.2704772867E+00
+ 80        -24        -0.1352108782E+01
+ 80         25        -0.5407991422E-01
+ 80        -25        -0.2193286106E+01
+ 80         26        -0.1743196153E+01
+ 80        -26        -0.2522980264E+00
+ 80         27        -0.2852350136E+01
+ 80        -27         0.1327594555E+01
+ 80         28        -0.5575918130E+00
+ 80        -28         0.6124456276E+00
+ 80         29         0.5751353228E+00
+ 80        -29         0.9868286529E-01
+ 80         30        -0.8323902629E+00
+ 80        -30        -0.2929983170E+00
+ 80         31        -0.3239491242E+00
+ 80        -31         0.2158687899E+00
+ 80         32         0.1945524925E+01
+ 80        -32        -0.1002743426E+01
+ 80         33         0.2796280415E+01
+ 80        -33        -0.1176200885E+01
+ 80         34         0.1366669113E+01
+ 80        -34        -0.4295947230E+00
+ 80         35        -0.7730110221E+00
+ 80        -35         0.4180703542E+00
+ 80         36         0.4528004537E+00
+ 80        -36         0.6369729638E-01
+ 80         37         0.1103631811E+01
+ 80        -37        -0.5343443696E+00
+ 80         38         0.4803840664E+00
+ 80        -38        -0.9766074057E-01
+ 80         39        -0.8991324846E+00
+ 80        -39        -0.1250007997E+01
+ 80         40        -0.3803034105E-01
+ 80        -40        -0.1456342813E+01
+ 80         41        -0.7744614765E+00
+ 80        -41        -0.4618128793E+00
+ 80         42        -0.1230032754E+01
+ 80        -42        -0.1903491950E-01
+ 80         43        -0.7564132087E+00
+ 80        -43        -0.1050906407E+00
+ 80         44         0.1026512555E+01
+ 80        -44         0.4749850720E+00
+ 80         45         0.6341651219E+00
+ 80        -45        -0.4031975676E+00
+ 80         46         0.8098268403E+00
+ 80        -46        -0.2067402684E+01
+ 80         47        -0.1941275943E-01
+ 80        -47        -0.2041762205E+01
+ 80         48         0.1608381008E+00
+ 80        -48        -0.1911521347E+00
+ 80         49         0.7190373203E-01
+ 80        -49         0.5482922552E+00
+ 80         50         0.1673318081E+01
+ 80        -50         0.6135930364E+00
+ 80         51         0.1052304762E+01
+ 80        -51        -0.7195003210E-01
+ 80         52         0.5022940632E+00
+ 80        -52        -0.6660644668E-01
+ 80         53         0.4843677040E+00
+ 80        -53        -0.3851772404E+00
+ 80         54         0.1015026030E+01
+ 80        -54         0.1723638858E+00
+ 80         55        -0.5584455159E+00
+ 80        -55         0.1053363472E+01
+ 80         56         0.2162188030E+00
+ 80        -56         0.5613945013E+00
+ 80         57         0.6760947067E+00
+ 80        -57        -0.9007076815E+00
+ 80         58         0.3619716572E+00
+ 80        -58        -0.1598266020E+01
+ 80         59        -0.2911755206E-01
+ 80        -59        -0.1662324397E+01
+ 80         60        -0.2063597511E+00
+ 80        -60        -0.1193719742E+01
+ 80         61        -0.1565419827E+00
+ 80        -61        -0.6139059848E+00
+ 80         62        -0.5998347310E-01
+ 80        -62        -0.5846740282E+00
+ 80         63         0.3785697811E+00
+ 80        -63         0.7069165650E+00
+ 80         64         0.3478649726E+00
+ 80        -64         0.2187324426E+00
+ 80         65         0.5136664440E+00
+ 80        -65        -0.4471528702E+00
+ 80         66         0.2841237718E+00
+ 80        -66        -0.1288242806E+01
+ 80         67        -0.8135013125E+00
+ 80        -67        -0.8854615178E+00
+ 80         68         0.4969272396E-01
+ 80        -68        -0.2753166651E+00
+ 80         69         0.7096327003E+00
+ 80        -69         0.2147229928E+00
+ 80         70        -0.8416020081E-01
+ 80        -70        -0.8328509552E+00
+ 80         71        -0.3324522534E+00
+ 80        -71        -0.7092349743E+00
+ 80         72        -0.1736141308E+00
+ 80        -72        -0.7424346682E+00
+ 80         73        -0.3507506911E+00
+ 80        -73        -0.8391266300E+00
+ 80         74        -0.2126706252E+00
+ 80        -74        -0.5753712342E+00
+ 80         75        -0.8777903097E+00
+ 80        -75         0.8011863188E-01
+ 80         76        -0.8321117976E-01
+ 80        -76        -0.1124719594E-01
+ 80         77         0.4462750808E+00
+ 80        -77        -0.3455656539E+00
+ 80         78        -0.4377096902E+00
+ 80        -78         0.1048730229E+01
+ 80         79        -0.5207529810E+00
+ 80        -79         0.3445480341E+00
+ 80         80        -0.5735066341E+00
+ 80        -80         0.8133814332E-01
+ 81          0        -0.1584288547E+01
+ 81          1         0.3979485669E+00
+ 81         -1        -0.4625789939E+00
+ 81          2         0.9300998834E+00
+ 81         -2        -0.2499204698E+00
+ 81          3        -0.6216524841E+00
+ 81         -3         0.1273264969E+01
+ 81          4         0.3520073737E+00
+ 81         -4         0.7525672132E+00
+ 81          5         0.3153074333E+00
+ 81         -5        -0.1489133334E+00
+ 81          6        -0.1271935516E+01
+ 81         -6        -0.6132698392E+00
+ 81          7        -0.4880160668E+00
+ 81         -7         0.8671895149E-02
+ 81          8         0.7602760825E+00
+ 81         -8         0.5004618584E+00
+ 81          9         0.1017391277E+01
+ 81         -9        -0.7075477706E+00
+ 81         10         0.9271042538E+00
+ 81        -10        -0.6385774678E+00
+ 81         11        -0.6221649695E+00
+ 81        -11         0.1287081239E+00
+ 81         12        -0.9949089114E+00
+ 81        -12         0.7563083670E+00
+ 81         13         0.8199073443E+00
+ 81        -13         0.7230624651E+00
+ 81         14         0.3320895656E-03
+ 81        -14        -0.9879407698E+00
+ 81         15        -0.4868061021E+00
+ 81        -15        -0.1208760591E+01
+ 81         16         0.1761283542E+00
+ 81        -16         0.6731503904E+00
+ 81         17         0.4999628746E+00
+ 81        -17         0.6837733171E+00
+ 81         18        -0.5238599612E+00
+ 81        -18        -0.5374645021E+00
+ 81         19        -0.1454690682E+01
+ 81        -19         0.8563033805E+00
+ 81         20        -0.9255208063E-01
+ 81        -20         0.1705388950E+01
+ 81         21         0.1197688550E+01
+ 81        -21         0.1096516145E-01
+ 81         22         0.8593971937E-01
+ 81        -22        -0.1776643118E+01
+ 81         23        -0.1040159020E+01
+ 81        -23        -0.1341965326E+01
+ 81         24        -0.9247288867E+00
+ 81        -24         0.2988820067E+00
+ 81         25        -0.8571403863E+00
+ 81        -25         0.1528025663E+01
+ 81         26         0.9704380930E+00
+ 81        -26         0.1038457652E+01
+ 81         27         0.2631714041E+01
+ 81        -27        -0.6648962860E+00
+ 81         28         0.1463357935E+01
+ 81        -28        -0.1181518944E+01
+ 81         29         0.6058904970E+00
+ 81        -29        -0.7901265110E+00
+ 81         30         0.4752465349E+00
+ 81        -30        -0.2874373329E+00
+ 81         31         0.8450411550E+00
+ 81        -31        -0.4065887837E+00
+ 81         32        -0.5805402993E+00
+ 81        -32         0.3329304250E+00
+ 81         33        -0.2424527090E+01
+ 81        -33         0.2025682090E+01
+ 81         34        -0.1976743735E+01
+ 81        -34         0.1170670747E+01
+ 81         35         0.2601337420E+00
+ 81        -35        -0.4415328310E+00
+ 81         36         0.1061912975E+00
+ 81        -36        -0.6702269314E+00
+ 81         37        -0.1094388370E+01
+ 81        -37         0.6652749743E+00
+ 81         38        -0.6108426961E+00
+ 81        -38        -0.2468403828E+00
+ 81         39         0.3142216360E+00
+ 81        -39         0.4741208933E+00
+ 81         40        -0.5167354274E-04
+ 81        -40         0.6539355618E+00
+ 81         41         0.9363843801E-01
+ 81        -41         0.7722723635E+00
+ 81         42         0.1342650147E+01
+ 81        -42        -0.2878259116E+00
+ 81         43         0.1820121127E+01
+ 81        -43         0.9514356105E+00
+ 81         44        -0.5824123928E+00
+ 81        -44        -0.3740162683E-01
+ 81         45        -0.1365127345E+01
+ 81        -45         0.3150543991E+00
+ 81         46        -0.8699214076E+00
+ 81        -46         0.6234875329E+00
+ 81         47        -0.3259671230E+00
+ 81        -47         0.1918321860E+01
+ 81         48        -0.1125067780E+01
+ 81        -48         0.1470621260E+01
+ 81         49         0.1462005289E+00
+ 81        -49         0.9333733249E+00
+ 81         50        -0.5412209421E+00
+ 81        -50        -0.8474511747E+00
+ 81         51        -0.9323343729E+00
+ 81        -51        -0.3222862202E+00
+ 81         52        -0.1615613896E+01
+ 81        -52        -0.4630031093E+00
+ 81         53        -0.1292162228E+01
+ 81        -53         0.5856125712E+00
+ 81         54        -0.4795718094E+00
+ 81        -54         0.6663086050E+00
+ 81         55        -0.4792990977E+00
+ 81        -55         0.6377029892E+00
+ 81         56         0.9209364522E+00
+ 81        -56        -0.2479742954E+00
+ 81         57         0.5252519559E+00
+ 81        -57         0.4693375628E+00
+ 81         58        -0.4789111510E-01
+ 81        -58         0.9672398224E+00
+ 81         59        -0.3362204276E+00
+ 81        -59         0.8805126222E+00
+ 81         60         0.2624085144E-01
+ 81        -60         0.3927461152E+00
+ 81         61        -0.4290567402E+00
+ 81        -61         0.2007203838E+00
+ 81         62        -0.1351754077E+01
+ 81        -62         0.6533426150E+00
+ 81         63        -0.4255296258E+00
+ 81        -63         0.6950475263E-01
+ 81         64         0.6230156905E+00
+ 81        -64        -0.9922183668E-02
+ 81         65         0.3510042558E+00
+ 81        -65        -0.5073473406E+00
+ 81         66        -0.8753915604E-01
+ 81        -66         0.4167982898E+00
+ 81         67         0.1869177044E+00
+ 81        -67         0.1413648987E+01
+ 81         68        -0.3444234651E-02
+ 81        -68         0.4026718625E+00
+ 81         69         0.6967453295E+00
+ 81        -69        -0.7379198226E+00
+ 81         70        -0.2476055823E+00
+ 81        -70        -0.4771290019E-01
+ 81         71        -0.8937115962E-02
+ 81        -71         0.2052182892E+00
+ 81         72        -0.2801333082E+00
+ 81        -72         0.9416296100E+00
+ 81         73        -0.3329042731E+00
+ 81        -73         0.1258691463E+01
+ 81         74         0.3858087136E+00
+ 81        -74         0.1578199994E+00
+ 81         75         0.4475575686E+00
+ 81        -75        -0.4792745484E+00
+ 81         76        -0.5269597340E+00
+ 81        -76        -0.2479483635E+00
+ 81         77        -0.6918290136E-01
+ 81        -77        -0.1929364467E+00
+ 81         78         0.9866933022E+00
+ 81        -78        -0.5956119559E+00
+ 81         79         0.4456258758E+00
+ 81        -79        -0.5435439377E-01
+ 81         80         0.4891144507E+00
+ 81        -80        -0.9678554587E-01
+ 81         81        -0.5484739186E-01
+ 81        -81        -0.2940714514E+00
+ 82          0         0.7650765183E+00
+ 82          1         0.1405206141E+01
+ 82         -1        -0.1273046497E+00
+ 82          2        -0.1087948967E+01
+ 82         -2         0.9714904945E+00
+ 82          3        -0.2920010557E+00
+ 82         -3        -0.4063794862E+00
+ 82          4        -0.8370175573E-01
+ 82         -4        -0.1195444462E+01
+ 82          5        -0.1013350228E+01
+ 82         -5        -0.4384151785E+00
+ 82          6         0.7435098976E+00
+ 82         -6         0.1836421382E+00
+ 82          7         0.1552132976E+01
+ 82         -7         0.9679599952E+00
+ 82          8        -0.1652866370E+00
+ 82         -8        -0.2925393314E+00
+ 82          9        -0.5461984679E+00
+ 82         -9         0.8559851840E-01
+ 82         10        -0.7809240910E+00
+ 82        -10         0.6204610226E+00
+ 82         11        -0.2056785249E+00
+ 82        -11         0.1548026548E+00
+ 82         12         0.9883309471E+00
+ 82        -12         0.1350096486E+00
+ 82         13         0.5043826724E-02
+ 82        -13        -0.3423271316E+00
+ 82         14         0.5168244584E-02
+ 82        -14         0.2674916864E+00
+ 82         15         0.8142672780E+00
+ 82        -15         0.7281466751E+00
+ 82         16         0.9122611967E+00
+ 82        -16        -0.3331073040E+00
+ 82         17        -0.9033226227E+00
+ 82        -17        -0.1303951318E+01
+ 82         18        -0.1470920717E+01
+ 82        -18         0.7706770416E+00
+ 82         19         0.3173478103E+00
+ 82        -19         0.5564473135E+00
+ 82         20         0.7179958273E+00
+ 82        -20        -0.1428829745E+01
+ 82         21        -0.9347914876E-01
+ 82        -21        -0.1848158103E+01
+ 82         22        -0.2921435546E+00
+ 82        -22         0.3742888131E+00
+ 82         23         0.6285541026E+00
+ 82        -23         0.9322848363E+00
+ 82         24         0.9120692509E+00
+ 82        -24         0.5460666309E+00
+ 82         25         0.6036208184E+00
+ 82        -25        -0.2075243688E+00
+ 82         26         0.2398995914E+00
+ 82        -26        -0.7594172859E+00
+ 82         27        -0.7142141327E+00
+ 82        -27        -0.2079421717E+00
+ 82         28        -0.1600812639E+01
+ 82        -28         0.1029016073E+01
+ 82         29        -0.5833706363E+00
+ 82        -29         0.7448436983E+00
+ 82         30        -0.5131622545E+00
+ 82        -30         0.4563543176E+00
+ 82         31        -0.1385458157E+01
+ 82        -31         0.4204709872E-01
+ 82         32        -0.8719359797E+00
+ 82        -32         0.5189808240E+00
+ 82         33         0.1511567904E+01
+ 82        -33        -0.9530247819E+00
+ 82         34         0.2364624816E+01
+ 82        -34        -0.1803245295E+01
+ 82         35         0.1342046214E+01
+ 82        -35        -0.8623989133E+00
+ 82         36        -0.2004177366E+00
+ 82        -36         0.5997195482E+00
+ 82         37         0.5020669162E+00
+ 82        -37         0.1170453279E+00
+ 82         38         0.4215008210E+00
+ 82        -38        -0.2483477402E+00
+ 82         39        -0.1007084662E+00
+ 82        -39        -0.7084149884E+00
+ 82         40        -0.1018111797E+01
+ 82        -40        -0.3949529336E+00
+ 82         41         0.3803631458E+00
+ 82        -41        -0.6001844965E+00
+ 82         42         0.2630921786E-01
+ 82        -42         0.1736225948E+00
+ 82         43        -0.1076612355E+01
+ 82        -43        -0.4383910890E+00
+ 82         44        -0.9947494644E+00
+ 82        -44        -0.2833542569E+00
+ 82         45         0.4906658459E+00
+ 82        -45        -0.1708949614E+00
+ 82         46         0.4315523483E+00
+ 82        -46         0.2956662917E+00
+ 82         47         0.2292901692E+00
+ 82        -47        -0.1762470489E+01
+ 82         48         0.9184077470E+00
+ 82        -48        -0.1717691233E+01
+ 82         49         0.4704550978E+00
+ 82        -49        -0.1324489094E+01
+ 82         50         0.2361325266E+00
+ 82        -50         0.2772124717E+00
+ 82         51         0.1231209473E+01
+ 82        -51         0.6055756180E+00
+ 82         52         0.1731272386E+01
+ 82        -52         0.4160544873E+00
+ 82         53         0.1137016839E+01
+ 82        -53        -0.1256513042E+00
+ 82         54         0.5226459694E+00
+ 82        -54        -0.4497293651E+00
+ 82         55         0.3321978205E+00
+ 82        -55         0.1739219664E+00
+ 82         56        -0.1239687800E+01
+ 82        -56         0.1556908600E+00
+ 82         57        -0.1789454003E+01
+ 82        -57         0.3729040320E+00
+ 82         58        -0.3997906302E+00
+ 82        -58         0.2323875331E+00
+ 82         59         0.1812473587E+00
+ 82        -59        -0.1865619998E+00
+ 82         60         0.5026516700E+00
+ 82        -60        -0.1124632355E+01
+ 82         61         0.4280656307E+00
+ 82        -61        -0.1215641170E+01
+ 82         62         0.3175595349E+00
+ 82        -62        -0.1012840002E+01
+ 82         63        -0.2661553054E+00
+ 82        -63        -0.4837191884E+00
+ 82         64        -0.3248728597E+00
+ 82        -64        -0.1318862149E+00
+ 82         65        -0.1890533697E+00
+ 82        -65         0.6314549096E+00
+ 82         66         0.2488026606E+00
+ 82        -66         0.2228547808E+00
+ 82         67         0.8034519919E+00
+ 82        -67        -0.1184802879E+01
+ 82         68         0.7438604265E+00
+ 82        -68        -0.1029256788E+01
+ 82         69        -0.3446269412E+00
+ 82        -69        -0.3433141736E+00
+ 82         70         0.3265947348E+00
+ 82        -70         0.3797265019E+00
+ 82         71        -0.3209433439E+00
+ 82        -71        -0.5293081405E-01
+ 82         72        -0.1385888004E+00
+ 82        -72        -0.1002716107E+01
+ 82         73         0.6237458426E-01
+ 82        -73        -0.9399631577E+00
+ 82         74        -0.1097501704E+00
+ 82        -74        -0.1973006446E+00
+ 82         75         0.8572517048E-01
+ 82        -75         0.7613401174E-01
+ 82         76        -0.1387456031E+00
+ 82        -76         0.2642671400E+00
+ 82         77        -0.3509569938E+00
+ 82        -77        -0.5729403434E-01
+ 82         78        -0.4150885403E+00
+ 82        -78        -0.4717525063E+00
+ 82         79         0.1499354952E-01
+ 82        -79         0.1156589851E+00
+ 82         80        -0.7445860495E+00
+ 82        -80         0.3419043756E+00
+ 82         81        -0.9817975655E+00
+ 82        -81        -0.4895372131E+00
+ 82         82        -0.1623166529E+00
+ 82        -82        -0.7843522094E+00
+ 83          0         0.3561643951E+00
+ 83          1        -0.2017651299E+01
+ 83         -1         0.1903640848E+00
+ 83          2         0.3953680846E+00
+ 83         -2        -0.1003217286E+01
+ 83          3         0.7992054019E+00
+ 83         -3        -0.2104606586E+00
+ 83          4        -0.2045875608E+00
+ 83         -4         0.2569245035E+00
+ 83          5         0.1054963802E+01
+ 83         -5         0.1690331602E+00
+ 83          6         0.2286728016E+00
+ 83         -6         0.4666129712E+00
+ 83          7        -0.1472382666E+01
+ 83         -7        -0.4199082180E+00
+ 83          8        -0.4528546364E+00
+ 83         -8         0.2173015547E+00
+ 83          9         0.2393976478E+00
+ 83         -9         0.6610031163E-01
+ 83         10         0.3392951264E+00
+ 83        -10        -0.3682391666E+00
+ 83         11         0.3390599727E+00
+ 83        -11        -0.8806514239E-01
+ 83         12        -0.1040639991E+01
+ 83        -12         0.1438403528E+00
+ 83         13        -0.5198684083E+00
+ 83        -13         0.3914550256E+00
+ 83         14         0.4227153657E+00
+ 83        -14         0.5183972704E+00
+ 83         15        -0.6373225035E+00
+ 83        -15        -0.5955971713E+00
+ 83         16        -0.9735598147E+00
+ 83        -16        -0.8973405856E+00
+ 83         17         0.1641725110E+00
+ 83        -17         0.7982218866E+00
+ 83         18         0.1487404907E+01
+ 83        -18        -0.2059867284E-01
+ 83         19         0.7082460059E+00
+ 83        -19        -0.1110856750E+01
+ 83         20        -0.2919783343E+00
+ 83        -20         0.5019167558E+00
+ 83         21        -0.3249133466E+00
+ 83        -21         0.2237111209E+01
+ 83         22         0.3040864303E+00
+ 83        -22         0.6721195279E+00
+ 83         23        -0.7849618226E-01
+ 83        -23        -0.6348583122E+00
+ 83         24        -0.6828242688E+00
+ 83        -24        -0.7921038675E+00
+ 83         25        -0.2868017848E+00
+ 83        -25        -0.6064100624E-01
+ 83         26        -0.7143133994E+00
+ 83        -26         0.2958202110E+00
+ 83         27        -0.1621139860E+00
+ 83        -27         0.4668727724E+00
+ 83         28         0.1256161709E+01
+ 83        -28        -0.1896273486E+00
+ 83         29         0.5535937598E-01
+ 83        -29        -0.1874750563E+00
+ 83         30         0.9043648501E+00
+ 83        -30         0.1810288897E-01
+ 83         31         0.1793381921E+01
+ 83        -31        -0.1411010433E+00
+ 83         32         0.1576752156E+01
+ 83        -32        -0.1017979018E+01
+ 83         33        -0.5156430494E+00
+ 83        -33        -0.7671335138E+00
+ 83         34        -0.1982448368E+01
+ 83        -34         0.1477083335E+01
+ 83         35        -0.1926679145E+01
+ 83        -35         0.1764469556E+01
+ 83         36        -0.1424114281E+00
+ 83        -36        -0.2082477924E+00
+ 83         37         0.7602180384E-01
+ 83        -37        -0.9914344962E+00
+ 83         38         0.4306692618E-01
+ 83        -38         0.4609599302E+00
+ 83         39         0.2408841623E+00
+ 83        -39         0.3294789191E+00
+ 83         40         0.1055751139E+01
+ 83        -40         0.1605174887E+00
+ 83         41         0.4278165560E-01
+ 83        -41         0.7023819339E-01
+ 83         42        -0.8464753516E+00
+ 83        -42        -0.1698633839E+00
+ 83         43         0.1037459268E+00
+ 83        -43        -0.6257663204E+00
+ 83         44         0.1742366607E+01
+ 83        -44         0.4831360477E+00
+ 83         45         0.3943725775E+00
+ 83        -45         0.2380187904E+00
+ 83         46        -0.4147306695E+00
+ 83        -46        -0.1299156217E+00
+ 83         47        -0.4043323991E+00
+ 83        -47         0.5387106177E+00
+ 83         48        -0.9965372014E-01
+ 83        -48         0.1160266827E+01
+ 83         49        -0.1313208195E+01
+ 83        -49         0.1230775929E+01
+ 83         50        -0.8165938388E+00
+ 83        -50         0.9007231037E+00
+ 83         51        -0.1003126464E+01
+ 83        -51        -0.6518178202E+00
+ 83         52        -0.1211385774E+01
+ 83        -52        -0.2199654726E+00
+ 83         53        -0.1332812868E+01
+ 83        -53        -0.3437189450E+00
+ 83         54        -0.3819943932E+00
+ 83        -54         0.1913244871E+00
+ 83         55        -0.1875069908E+00
+ 83        -55         0.2848089138E+00
+ 83         56         0.3370968341E+00
+ 83        -56         0.6082118432E-01
+ 83         57         0.2998024036E+00
+ 83        -57         0.6100259588E-01
+ 83         58         0.7484826600E+00
+ 83        -58         0.4100995525E+00
+ 83         59         0.3674784810E-01
+ 83        -59         0.2437182127E+00
+ 83         60        -0.6636343483E+00
+ 83        -60         0.1387002904E+00
+ 83         61        -0.3133382486E+00
+ 83        -61         0.6789826437E-01
+ 83         62        -0.1431207546E+00
+ 83        -62         0.1904573438E-02
+ 83         63        -0.5397555963E+00
+ 83        -63         0.2597839928E+00
+ 83         64        -0.3844239807E+00
+ 83        -64         0.3554640476E+00
+ 83         65        -0.1582738181E+00
+ 83        -65         0.4763077552E+00
+ 83         66         0.3833351478E+00
+ 83        -66        -0.5249243310E+00
+ 83         67        -0.7005335549E-01
+ 83        -67        -0.1477313739E-01
+ 83         68        -0.3525433942E+00
+ 83        -68         0.9857314355E+00
+ 83         69        -0.4073468103E+00
+ 83        -69         0.5497065628E+00
+ 83         70         0.2185951781E+00
+ 83        -70        -0.3244418438E+00
+ 83         71         0.3638724638E+00
+ 83        -71         0.2510439754E+00
+ 83         72        -0.4386853327E-01
+ 83        -72         0.1086791227E+00
+ 83         73        -0.2022859555E+00
+ 83        -73         0.4060011321E+00
+ 83         74        -0.2022443636E+00
+ 83        -74         0.5601464058E+00
+ 83         75        -0.1580667111E+00
+ 83        -75        -0.1862534661E+00
+ 83         76         0.4423562208E+00
+ 83        -76        -0.4884810310E+00
+ 83         77         0.4952373257E+00
+ 83        -77        -0.5927522213E-01
+ 83         78         0.4027818118E+00
+ 83        -78         0.1171867133E+00
+ 83         79        -0.3236230918E+00
+ 83        -79        -0.1565955985E-01
+ 83         80        -0.1043467149E+00
+ 83        -80         0.8194545259E+00
+ 83         81         0.7357827444E+00
+ 83        -81         0.2448894142E+00
+ 83         82        -0.6288547111E-01
+ 83        -82        -0.1222619446E+00
+ 83         83        -0.4019230959E+00
+ 83        -83         0.1631370132E+00
+ 84          0        -0.1416929023E+01
+ 84          1         0.1111160376E+01
+ 84         -1         0.4222922896E-01
+ 84          2         0.1175674011E+01
+ 84         -2         0.8252065901E-01
+ 84          3        -0.1384682396E+00
+ 84         -3         0.8385954439E+00
+ 84          4        -0.5204203713E-01
+ 84         -4         0.9106557988E+00
+ 84          5        -0.1849262763E+00
+ 84         -5         0.1557747799E+00
+ 84          6        -0.7901812211E+00
+ 84         -6        -0.1085962858E+01
+ 84          7         0.4277735056E+00
+ 84         -7        -0.8299894079E+00
+ 84          8         0.8080410602E+00
+ 84         -8         0.3854086842E+00
+ 84          9        -0.1389292277E+00
+ 84         -9         0.1036026588E+00
+ 84         10        -0.5495128606E-01
+ 84        -10        -0.4779046095E-01
+ 84         11        -0.2919540601E-02
+ 84        -11        -0.2374442981E+00
+ 84         12         0.6378985424E+00
+ 84        -12        -0.4371393752E+00
+ 84         13        -0.2086172818E-01
+ 84        -13        -0.3852120388E+00
+ 84         14        -0.1007000415E+01
+ 84        -14        -0.6943952384E+00
+ 84         15         0.7647505416E-01
+ 84        -15         0.7468021925E+00
+ 84         16         0.8320061107E+00
+ 84        -16         0.1242904282E+01
+ 84         17         0.1228908176E+01
+ 84        -17        -0.1361372291E+00
+ 84         18        -0.1769773965E-01
+ 84        -18        -0.9882908889E+00
+ 84         19        -0.1349165046E+01
+ 84        -19         0.7196352514E+00
+ 84         20        -0.3264200151E+00
+ 84        -20         0.5980290679E+00
+ 84         21         0.2036795834E+00
+ 84        -21        -0.9519985128E+00
+ 84         22        -0.2215087870E+00
+ 84        -22        -0.1142094258E+01
+ 84         23         0.2053670381E+00
+ 84        -23         0.1068111335E+00
+ 84         24         0.9852574859E+00
+ 84        -24         0.6277145167E+00
+ 84         25         0.4073887112E+00
+ 84        -25        -0.2396981639E+00
+ 84         26        -0.2439936757E+00
+ 84        -26        -0.5063469384E-01
+ 84         27        -0.4718503690E+00
+ 84        -27         0.1183902494E+00
+ 84         28        -0.6510511333E+00
+ 84        -28        -0.2389269889E+00
+ 84         29        -0.9258015687E-01
+ 84        -29        -0.1764491842E+00
+ 84         30        -0.2941535228E+00
+ 84        -30        -0.2067159218E+00
+ 84         31        -0.1042132789E+01
+ 84        -31         0.1771060045E+00
+ 84         32        -0.1593711754E+01
+ 84        -32         0.5416901503E+00
+ 84         33        -0.5187429385E+00
+ 84        -33         0.1417010414E+01
+ 84         34         0.1230213110E+01
+ 84        -34        -0.2215145463E+00
+ 84         35         0.1765438390E+01
+ 84        -35        -0.1852180960E+01
+ 84         36         0.7546088034E+00
+ 84        -36        -0.1619157141E+01
+ 84         37         0.1415673811E-01
+ 84        -37         0.3892700453E+00
+ 84         38         0.3233857985E+00
+ 84        -38         0.8338514514E+00
+ 84         39        -0.3099048486E+00
+ 84        -39         0.7059759681E+00
+ 84         40        -0.4989605662E+00
+ 84        -40        -0.6509613602E+00
+ 84         41        -0.9499558308E+00
+ 84        -41        -0.3366063435E+00
+ 84         42        -0.4965933194E-01
+ 84        -42        -0.4283276741E-01
+ 84         43         0.6008914805E+00
+ 84        -43         0.7395372452E+00
+ 84         44        -0.4426341680E+00
+ 84        -44        -0.1354672600E+00
+ 84         45        -0.6231395908E+00
+ 84        -45        -0.4728664384E-01
+ 84         46         0.1130601239E+00
+ 84        -46        -0.4451025239E+00
+ 84         47         0.1055406212E+00
+ 84        -47         0.3726192587E+00
+ 84         48        -0.3908400051E+00
+ 84        -48        -0.1283726575E+01
+ 84         49         0.5128037504E+00
+ 84        -49        -0.7890283955E+00
+ 84         50         0.8924112242E+00
+ 84        -50        -0.1189192549E+01
+ 84         51         0.5514190959E+00
+ 84        -51        -0.3583413878E-01
+ 84         52         0.7162017572E+00
+ 84        -52         0.3515140688E+00
+ 84         53         0.9862136539E+00
+ 84        -53         0.7673808606E+00
+ 84         54         0.8747722335E+00
+ 84        -54        -0.3368616432E+00
+ 84         55         0.2283316926E+00
+ 84        -55         0.2979637048E+00
+ 84         56         0.8287667133E+00
+ 84        -56         0.5077141835E+00
+ 84         57        -0.3252379480E+00
+ 84        -57        -0.1673351435E+00
+ 84         58        -0.1059631702E+01
+ 84        -58        -0.9563956723E+00
+ 84         59        -0.1206718381E+01
+ 84        -59        -0.4222826777E+00
+ 84         60        -0.3339556467E+00
+ 84        -60        -0.4450247877E-01
+ 84         61         0.1844450289E-01
+ 84        -61         0.4047672607E-01
+ 84         62         0.3249988739E+00
+ 84        -62        -0.7320618159E+00
+ 84         63         0.2430121424E+00
+ 84        -63        -0.4634318536E+00
+ 84         64        -0.1531199932E+00
+ 84        -64        -0.3988229271E+00
+ 84         65        -0.2830058968E+00
+ 84        -65        -0.5206609063E+00
+ 84         66        -0.9002637419E+00
+ 84        -66         0.2741705426E+00
+ 84         67        -0.6154473808E+00
+ 84        -67         0.1809421475E+00
+ 84         68         0.7339996508E+00
+ 84        -68        -0.9214008110E-01
+ 84         69         0.1267831951E+01
+ 84        -69        -0.2357813285E+00
+ 84         70         0.5716710133E+00
+ 84        -70        -0.2931486588E+00
+ 84         71         0.6973139090E+00
+ 84        -71        -0.4858199956E+00
+ 84         72        -0.5958554183E+00
+ 84        -72        -0.5120460602E-01
+ 84         73        -0.7849435481E+00
+ 84        -73        -0.5696464272E+00
+ 84         74         0.1803527372E+00
+ 84        -74        -0.1019603668E+01
+ 84         75         0.8471399733E-01
+ 84        -75        -0.4903372717E-01
+ 84         76        -0.3077166034E+00
+ 84        -76         0.9761705372E+00
+ 84         77        -0.5709591780E+00
+ 84        -77         0.8414794758E+00
+ 84         78        -0.6705939002E+00
+ 84        -78         0.1958212320E+00
+ 84         79         0.2625963788E+00
+ 84        -79        -0.3427027528E+00
+ 84         80         0.6293236433E+00
+ 84        -80        -0.4144611068E+00
+ 84         81        -0.4590458106E+00
+ 84        -81         0.5098344824E+00
+ 84         82         0.3195661088E+00
+ 84        -82        -0.4426603364E-01
+ 84         83         0.8415389576E+00
+ 84        -83        -0.7874837735E+00
+ 84         84         0.2855373903E+00
+ 84        -84        -0.3252171426E-01
+ 85          0         0.1326822549E+01
+ 85          1         0.1764393024E+00
+ 85         -1        -0.3503822484E-01
+ 85          2        -0.2142381382E+01
+ 85         -2         0.5580529369E+00
+ 85          3        -0.3183655009E+00
+ 85         -3        -0.4591021915E+00
+ 85          4         0.1650171589E+00
+ 85         -4        -0.2989905774E+00
+ 85          5        -0.4095697651E+00
+ 85         -5        -0.7592003437E+00
+ 85          6         0.7946125251E+00
+ 85         -6         0.5160614746E+00
+ 85          7         0.5185309614E+00
+ 85         -7         0.1603107046E+01
+ 85          8        -0.4957155432E+00
+ 85         -8        -0.2719751191E+00
+ 85          9        -0.1248720474E+00
+ 85         -9        -0.4043457902E+00
+ 85         10         0.2717558664E+00
+ 85        -10         0.8742902782E-01
+ 85         11         0.3041301812E-01
+ 85        -11         0.5324244089E+00
+ 85         12         0.9945230998E-01
+ 85        -12         0.3018329073E-02
+ 85         13         0.2238086574E+00
+ 85        -13        -0.2417792645E+00
+ 85         14         0.1017859334E+01
+ 85        -14         0.5873089467E+00
+ 85         15         0.3506946595E+00
+ 85        -15        -0.9212553836E-01
+ 85         16        -0.1114162032E+01
+ 85        -16        -0.6232041227E+00
+ 85         17        -0.1635275654E+01
+ 85        -17        -0.2867822471E+00
+ 85         18        -0.8374711842E+00
+ 85        -18         0.1234164639E+01
+ 85         19         0.1149412763E+01
+ 85        -19         0.1595703341E+00
+ 85         20         0.6461168624E+00
+ 85        -20        -0.1048608935E+01
+ 85         21         0.2191595942E+00
+ 85        -21        -0.1896688460E+00
+ 85         22        -0.1336109154E+00
+ 85        -22         0.1299737981E+01
+ 85         23        -0.2662129298E+00
+ 85        -23         0.4307296230E+00
+ 85         24        -0.9975535889E+00
+ 85        -24        -0.3378770331E+00
+ 85         25        -0.8085492827E+00
+ 85        -25         0.2809503784E+00
+ 85         26         0.5152634085E+00
+ 85        -26         0.6104780097E+00
+ 85         27         0.9351691896E+00
+ 85        -27        -0.2015235437E+00
+ 85         28         0.6074490496E+00
+ 85        -28        -0.4777168173E+00
+ 85         29         0.4666014211E+00
+ 85        -29        -0.5408193638E+00
+ 85         30        -0.7347141472E+00
+ 85        -30         0.1188869139E+00
+ 85         31         0.5942269030E+00
+ 85        -31         0.2931435500E+00
+ 85         32         0.1963707764E+01
+ 85        -32        -0.1455414103E-01
+ 85         33         0.1668243447E+01
+ 85        -33        -0.8451533414E+00
+ 85         34        -0.4977202641E+00
+ 85        -34        -0.8606530021E+00
+ 85         35        -0.1157056812E+01
+ 85        -35         0.1090718756E+01
+ 85         36        -0.8727794989E+00
+ 85        -36         0.2608416100E+01
+ 85         37        -0.5279940830E+00
+ 85        -37         0.3471899484E+00
+ 85         38        -0.7758801743E+00
+ 85        -38        -0.1321634363E+01
+ 85         39         0.2887852944E+00
+ 85        -39        -0.7482893404E+00
+ 85         40         0.3727305535E+00
+ 85        -40         0.2873446659E+00
+ 85         41         0.1376110435E+01
+ 85        -41         0.4079506451E+00
+ 85         42         0.5936970099E+00
+ 85        -42         0.2454013815E+00
+ 85         43        -0.1435589154E+00
+ 85        -43        -0.5973014473E+00
+ 85         44        -0.6539116980E+00
+ 85        -44        -0.6493061568E+00
+ 85         45         0.4027895473E+00
+ 85        -45        -0.3157806617E+00
+ 85         46        -0.1209329849E+00
+ 85        -46         0.7317987713E+00
+ 85         47         0.2149800625E+00
+ 85        -47        -0.1717587548E+00
+ 85         48         0.5722375038E+00
+ 85        -48         0.9452780154E+00
+ 85         49         0.9851168077E+00
+ 85        -49         0.4720909051E+00
+ 85         50        -0.2898233896E+00
+ 85        -50         0.5265196334E+00
+ 85         51        -0.5326643288E+00
+ 85        -51         0.2583954016E+00
+ 85         52        -0.7310135105E+00
+ 85        -52        -0.5352990737E+00
+ 85         53        -0.1193651609E+01
+ 85        -53        -0.9826661919E+00
+ 85         54        -0.1396069100E+01
+ 85        -54        -0.5788080564E+00
+ 85         55        -0.6746449195E+00
+ 85        -55         0.1759337670E+00
+ 85         56        -0.2138406758E+00
+ 85        -56         0.2209575661E-01
+ 85         57         0.2477744501E+00
+ 85        -57         0.1563431396E+00
+ 85         58         0.5763833725E+00
+ 85        -58         0.1861561909E+00
+ 85         59         0.7952661894E+00
+ 85        -59         0.5619857500E+00
+ 85         60         0.6965064347E+00
+ 85        -60        -0.1480026741E+00
+ 85         61         0.8317126786E-01
+ 85        -61        -0.3431442705E+00
+ 85         62        -0.2062325877E+00
+ 85        -62        -0.2836426242E+00
+ 85         63        -0.1371722852E+00
+ 85        -63        -0.1100315010E+00
+ 85         64         0.2838846083E+00
+ 85        -64         0.3505622036E-01
+ 85         65        -0.6919858411E-01
+ 85        -65         0.4702040460E+00
+ 85         66         0.3220940627E+00
+ 85        -66         0.3393498529E+00
+ 85         67         0.4377399440E+00
+ 85        -67         0.7051835786E-02
+ 85         68        -0.4672613823E+00
+ 85        -68        -0.3535533576E+00
+ 85         69        -0.1347891883E+01
+ 85        -69         0.8758805999E-03
+ 85         70        -0.1074904676E+01
+ 85        -70         0.4662580058E+00
+ 85         71        -0.9038954084E+00
+ 85        -71        -0.1614092210E+00
+ 85         72         0.5442766881E+00
+ 85        -72         0.1414271840E+00
+ 85         73         0.4353544945E+00
+ 85        -73         0.4192611043E+00
+ 85         74         0.2031541505E+00
+ 85        -74         0.3144610905E+00
+ 85         75        -0.1023012441E+00
+ 85        -75        -0.1360808385E+00
+ 85         76         0.3003411178E+00
+ 85        -76        -0.7960713676E+00
+ 85         77         0.5678342298E+00
+ 85        -77        -0.7753731585E+00
+ 85         78         0.4269553534E+00
+ 85        -78        -0.5228481507E-01
+ 85         79        -0.3847361271E-01
+ 85        -79         0.1953628750E+00
+ 85         80        -0.5246272524E+00
+ 85        -80        -0.6545924190E-01
+ 85         81        -0.1751951224E+00
+ 85        -81         0.2410499143E+00
+ 85         82        -0.7018790448E+00
+ 85        -82         0.5216712846E+00
+ 85         83        -0.1449526733E+00
+ 85        -83         0.3216645545E+00
+ 85         84        -0.1478573158E+00
+ 85        -84        -0.2377178867E+00
+ 85         85        -0.9006882941E-01
+ 85        -85         0.6766990405E-01
+ 86          0        -0.7227905343E+00
+ 86          1        -0.1496629897E+01
+ 86         -1        -0.2242331624E+00
+ 86          2         0.1313806249E+01
+ 86         -2        -0.1682990547E+00
+ 86          3         0.4077003624E+00
+ 86         -3        -0.6560138442E+00
+ 86          4        -0.4528783250E-01
+ 86         -4        -0.3823477716E+00
+ 86          5         0.1294113492E+00
+ 86         -5         0.1402774595E+01
+ 86          6        -0.5679292653E-01
+ 86         -6         0.7459883149E+00
+ 86          7        -0.4056350584E+00
+ 86         -7        -0.1581570754E+01
+ 86          8        -0.1547195035E+00
+ 86         -8        -0.6410444191E+00
+ 86          9         0.1094632431E+00
+ 86         -9         0.9573422141E+00
+ 86         10        -0.2921745523E+00
+ 86        -10         0.4748942159E+00
+ 86         11        -0.1971989639E+00
+ 86        -11        -0.3826221464E+00
+ 86         12        -0.1582334037E+00
+ 86        -12         0.8638105678E-01
+ 86         13         0.5381231024E+00
+ 86        -13         0.7832328586E+00
+ 86         14        -0.6696130807E+00
+ 86        -14        -0.1842993891E+00
+ 86         15        -0.1083248551E+01
+ 86        -15        -0.9936341203E+00
+ 86         16         0.7606435749E+00
+ 86        -16        -0.2076740588E-01
+ 86         17         0.1052482798E+01
+ 86        -17         0.8246416669E+00
+ 86         18         0.8881380574E+00
+ 86        -18        -0.5682496082E+00
+ 86         19         0.2265687124E-01
+ 86        -19        -0.8436661622E+00
+ 86         20        -0.7907031695E+00
+ 86        -20         0.6870509538E+00
+ 86         21        -0.6035248229E+00
+ 86        -21         0.4627436501E+00
+ 86         22         0.2341912928E-01
+ 86        -22        -0.7791889758E+00
+ 86         23        -0.2477957798E+00
+ 86        -23        -0.8343940055E+00
+ 86         24         0.6231562177E+00
+ 86        -24        -0.1095951358E+00
+ 86         25         0.1400322699E+01
+ 86        -25        -0.6347530805E-01
+ 86         26         0.7706020766E+00
+ 86        -26        -0.1106051318E+01
+ 86         27        -0.5942725434E+00
+ 86        -27        -0.1599688144E+00
+ 86         28        -0.1059652790E+01
+ 86        -28         0.1274146293E+01
+ 86         29        -0.8742402835E+00
+ 86        -29         0.1359989664E+01
+ 86         30         0.9545931642E+00
+ 86        -30         0.1333655581E+00
+ 86         31         0.1806852258E+00
+ 86        -31        -0.5482321585E+00
+ 86         32        -0.1405738624E+01
+ 86        -32        -0.2970347148E+00
+ 86         33        -0.1889310382E+01
+ 86        -33         0.9591633487E-01
+ 86         34        -0.3888528574E+00
+ 86        -34         0.1356725029E+01
+ 86         35         0.8811471805E+00
+ 86        -35         0.2122965383E+00
+ 86         36         0.1166207870E+01
+ 86        -36        -0.1810280698E+01
+ 86         37         0.3900339218E+00
+ 86        -37        -0.2043422715E+01
+ 86         38         0.5893866197E+00
+ 86        -38        -0.4838431546E+00
+ 86         39         0.1490575985E+00
+ 86        -39         0.4818292872E+00
+ 86         40        -0.5685536572E+00
+ 86        -40         0.9264951836E+00
+ 86         41        -0.1167274241E+01
+ 86        -41        -0.2779709997E+00
+ 86         42        -0.8347931450E+00
+ 86        -42        -0.3739377548E+00
+ 86         43        -0.5071793975E+00
+ 86        -43         0.2452292437E+00
+ 86         44         0.3067962280E+00
+ 86        -44         0.4656937047E+00
+ 86         45         0.1143662425E+00
+ 86        -45        -0.1812434380E+00
+ 86         46         0.3500655064E+00
+ 86        -46         0.7035856867E-01
+ 86         47         0.1406086860E+00
+ 86        -47        -0.1752964050E+00
+ 86         48         0.3260695807E-01
+ 86        -48        -0.1569203629E+00
+ 86         49        -0.1213377980E+01
+ 86        -49        -0.1003493888E+01
+ 86         50        -0.5895675884E+00
+ 86        -50         0.4217967215E-01
+ 86         51         0.3441052175E+00
+ 86        -51        -0.1032015173E-02
+ 86         52         0.9467474076E+00
+ 86        -52         0.2803156324E+00
+ 86         53         0.1116129452E+01
+ 86        -53         0.4577109208E+00
+ 86         54         0.7743452817E+00
+ 86        -54         0.9630453363E+00
+ 86         55         0.4686213470E+00
+ 86        -55        -0.3181043055E+00
+ 86         56         0.2320700701E-01
+ 86        -56        -0.1766331373E+00
+ 86         57        -0.3488206465E+00
+ 86        -57         0.4123255127E+00
+ 86         58         0.2610904254E+00
+ 86        -58         0.2452413087E+00
+ 86         59        -0.2689622251E+00
+ 86        -59        -0.7749894631E+00
+ 86         60        -0.2098533578E+00
+ 86        -60        -0.9251488960E+00
+ 86         61        -0.3631311825E+00
+ 86        -61        -0.3770576290E+00
+ 86         62        -0.1515443908E+00
+ 86        -62         0.1266929126E+00
+ 86         63         0.3548879810E-01
+ 86        -63         0.2223918615E+00
+ 86         64        -0.1966918932E+00
+ 86        -64         0.6816885710E-01
+ 86         65        -0.1536522997E+00
+ 86        -65         0.3757142514E+00
+ 86         66        -0.2580361297E+00
+ 86        -66        -0.1736041583E+00
+ 86         67        -0.5199654832E+00
+ 86        -67        -0.6207536838E+00
+ 86         68         0.1484549950E+00
+ 86        -68        -0.5219836779E+00
+ 86         69         0.4923941391E+00
+ 86        -69         0.7626141161E-01
+ 86         70         0.4841210483E+00
+ 86        -70        -0.1945739170E+00
+ 86         71         0.4525521326E+00
+ 86        -71         0.1339695024E+00
+ 86         72         0.5765498897E+00
+ 86        -72         0.1820798857E+00
+ 86         73         0.3044064779E-01
+ 86        -73         0.1090749711E+00
+ 86         74        -0.3637782088E-01
+ 86        -74        -0.6363877111E+00
+ 86         75         0.4361311083E+00
+ 86        -75        -0.1891154632E+00
+ 86         76         0.1429730790E+00
+ 86        -76         0.5935233794E+00
+ 86         77        -0.8069477598E+00
+ 86        -77         0.2811379496E+00
+ 86         78        -0.7424856487E+00
+ 86        -78         0.2289130596E-01
+ 86         79        -0.3751061810E+00
+ 86        -79         0.9344213474E-01
+ 86         80         0.1444778138E+00
+ 86        -80        -0.1979410166E+00
+ 86         81         0.6105143815E+00
+ 86        -81        -0.2771145096E+00
+ 86         82         0.7571647216E+00
+ 86        -82         0.6349438925E+00
+ 86         83         0.2462147471E+00
+ 86        -83         0.1042650226E+00
+ 86         84         0.4466662288E+00
+ 86        -84         0.3396919663E+00
+ 86         85         0.1058862038E+01
+ 86        -85         0.2615953800E+00
+ 86         86         0.4378807619E+00
+ 86        -86         0.5505753427E+00
+ 87          0         0.2253642301E+00
+ 87          1         0.1782466238E+01
+ 87         -1         0.1023879571E+00
+ 87          2         0.1248910878E+00
+ 87         -2        -0.2896106954E+00
+ 87          3        -0.5846731666E+00
+ 87         -3         0.9263806444E+00
+ 87          4         0.1256132075E+00
+ 87         -4         0.4811139813E+00
+ 87          5         0.1001214327E+00
+ 87         -5        -0.1097923754E+01
+ 87          6        -0.5814587519E+00
+ 87         -6        -0.1609217974E+01
+ 87          7        -0.3607634391E+00
+ 87         -7         0.8730965317E+00
+ 87          8         0.3518428308E+00
+ 87         -8         0.1642741025E+01
+ 87          9         0.3112993514E+00
+ 87         -9        -0.8435227000E+00
+ 87         10        -0.2530037001E+00
+ 87        -10        -0.1242747591E+01
+ 87         11        -0.1874399781E+00
+ 87        -11         0.2531545753E+00
+ 87         12        -0.4198441874E+00
+ 87        -12         0.8628442612E+00
+ 87         13        -0.7977568071E+00
+ 87        -13        -0.6026610203E+00
+ 87         14         0.4493728230E+00
+ 87        -14        -0.7719243446E+00
+ 87         15         0.1542834831E+01
+ 87        -15         0.1175182607E+01
+ 87         16         0.2773562514E+00
+ 87        -16         0.1711546584E+00
+ 87         17        -0.8430310178E+00
+ 87        -17        -0.1130592939E+01
+ 87         18        -0.1173408144E+01
+ 87        -18        -0.2256674841E+00
+ 87         19        -0.1083456096E+01
+ 87        -19         0.1109714831E+01
+ 87         20         0.6501898592E+00
+ 87        -20         0.3454250379E+00
+ 87         21         0.8711241905E+00
+ 87        -21        -0.5432606727E+00
+ 87         22         0.8208944098E+00
+ 87        -22         0.1567328225E+00
+ 87         23         0.5714938912E+00
+ 87        -23         0.1169686071E+01
+ 87         24        -0.4077927538E+00
+ 87        -24         0.4285196877E+00
+ 87         25        -0.1511797048E+01
+ 87        -25        -0.3713996456E+00
+ 87         26        -0.1657917033E+01
+ 87        -26         0.9542864247E+00
+ 87         27        -0.2996388597E+00
+ 87        -27         0.1253377620E+01
+ 87         28         0.7834371186E+00
+ 87        -28        -0.4683015651E+00
+ 87         29         0.1115786394E+01
+ 87        -29        -0.1292027364E+01
+ 87         30        -0.2644183257E+00
+ 87        -30        -0.8408379677E+00
+ 87         31        -0.8580590985E+00
+ 87        -31         0.2532226495E+00
+ 87         32         0.3565390933E+00
+ 87        -32         0.8570474398E+00
+ 87         33         0.1976640878E+01
+ 87        -33         0.3083977380E+00
+ 87         34         0.1454087694E+01
+ 87        -34        -0.1005539170E+01
+ 87         35        -0.9120470118E+00
+ 87        -35        -0.9114824461E+00
+ 87         36        -0.1090119498E+01
+ 87        -36         0.4389816755E+00
+ 87         37         0.2919299236E+00
+ 87        -37         0.2533358940E+01
+ 87         38         0.2346574240E+00
+ 87        -38         0.1355673734E+01
+ 87         39        -0.5166001315E+00
+ 87        -39        -0.5968103036E+00
+ 87         40         0.7588541885E+00
+ 87        -40        -0.1228558989E+01
+ 87         41         0.7499214362E+00
+ 87        -41        -0.3723536418E-01
+ 87         42         0.9910818104E+00
+ 87        -42         0.4889077424E-01
+ 87         43         0.8433123283E+00
+ 87        -43         0.2385311577E+00
+ 87         44         0.5405329171E+00
+ 87        -44        -0.9546601626E-01
+ 87         45         0.8933730718E-01
+ 87        -45        -0.1441213236E+00
+ 87         46        -0.8579645658E-01
+ 87        -46        -0.7260728065E+00
+ 87         47        -0.9977138170E+00
+ 87        -47        -0.3005504333E-01
+ 87         48        -0.4105309179E+00
+ 87        -48        -0.6772751845E+00
+ 87         49         0.3907147684E+00
+ 87        -49         0.1326815307E+01
+ 87         50         0.1436406518E+01
+ 87        -50         0.5988383496E+00
+ 87         51         0.7120103955E+00
+ 87        -51         0.2202900339E+00
+ 87         52         0.1057649080E+00
+ 87        -52         0.5826469517E-01
+ 87         53        -0.6543807948E+00
+ 87        -53         0.4254941616E-01
+ 87         54        -0.6579986499E+00
+ 87        -54        -0.8534415462E+00
+ 87         55        -0.7354704503E+00
+ 87        -55        -0.4994225768E+00
+ 87         56        -0.3007831409E+00
+ 87        -56        -0.3468791225E+00
+ 87         57        -0.3233432223E+00
+ 87        -57        -0.1508682301E+00
+ 87         58         0.6312802107E+00
+ 87        -58        -0.3694940818E+00
+ 87         59         0.5240673305E+00
+ 87        -59         0.9390192786E-01
+ 87         60         0.3707708555E+00
+ 87        -60         0.4791613031E+00
+ 87         61         0.4407471814E+00
+ 87        -61         0.5029786483E+00
+ 87         62         0.8518175634E+00
+ 87        -62        -0.3283346919E+00
+ 87         63         0.1571631733E+00
+ 87        -63        -0.2359761943E+00
+ 87         64         0.7278381477E-01
+ 87        -64        -0.3985743885E+00
+ 87         65        -0.6372511907E-01
+ 87        -65        -0.1304718134E+00
+ 87         66        -0.2991954159E+00
+ 87        -66         0.2381863203E+00
+ 87         67        -0.3876520079E-01
+ 87        -67         0.7772842131E+00
+ 87         68         0.1917099937E+00
+ 87        -68         0.9457288944E+00
+ 87         69         0.2958931829E+00
+ 87        -69        -0.1533697225E+00
+ 87         70        -0.2502355471E+00
+ 87        -70        -0.3867555130E+00
+ 87         71        -0.6445455560E+00
+ 87        -71        -0.2854863847E+00
+ 87         72        -0.1497896160E+01
+ 87        -72        -0.4431103339E+00
+ 87         73        -0.3807670757E+00
+ 87        -73        -0.8880499349E-01
+ 87         74        -0.3575740722E+00
+ 87        -74         0.4467854782E+00
+ 87         75        -0.4409746643E+00
+ 87        -75         0.2778423677E+00
+ 87         76         0.2160539741E+00
+ 87        -76        -0.1978073101E+00
+ 87         77         0.6865141625E+00
+ 87        -77        -0.8343416868E-01
+ 87         78         0.7951497691E+00
+ 87        -78        -0.1044723754E+00
+ 87         79         0.5373358313E+00
+ 87        -79        -0.2322099613E+00
+ 87         80         0.3030040169E-01
+ 87        -80        -0.2175989653E-01
+ 87         81        -0.6678681467E+00
+ 87        -81        -0.6338613073E-01
+ 87         82        -0.3659277468E+00
+ 87        -82        -0.3052320969E+00
+ 87         83        -0.3273253864E+00
+ 87        -83        -0.2151772255E+00
+ 87         84        -0.1522159560E+00
+ 87        -84        -0.5445520359E+00
+ 87         85        -0.4204311682E+00
+ 87        -85        -0.1521124628E+00
+ 87         86        -0.1541957921E+00
+ 87        -86         0.4611699195E+00
+ 87         87         0.3968208835E-01
+ 87        -87         0.2835656831E+00
+ 88          0         0.2967691901E+00
+ 88          1        -0.1015815601E+01
+ 88         -1         0.1509619569E+00
+ 88          2        -0.7309223695E+00
+ 88         -2         0.1900534659E+00
+ 88          3         0.5939939001E+00
+ 88         -3         0.5501666777E-01
+ 88          4        -0.3994108303E+00
+ 88         -4        -0.7184207468E+00
+ 88          5        -0.1058785930E+00
+ 88         -5        -0.1670986202E+00
+ 88          6         0.5914350447E+00
+ 88         -6         0.1945833859E+01
+ 88          7         0.6764533231E+00
+ 88         -7         0.3611208850E+00
+ 88          8         0.1131124231E+00
+ 88         -8        -0.2110450360E+01
+ 88          9        -0.7770069342E+00
+ 88         -9        -0.3079796992E+00
+ 88         10         0.2383163360E+00
+ 88        -10         0.1600063606E+01
+ 88         11         0.9708894874E+00
+ 88        -11         0.1387181540E+00
+ 88         12         0.6839835981E+00
+ 88        -12        -0.1643477623E+01
+ 88         13         0.2210796299E+00
+ 88        -13        -0.2929734387E+00
+ 88         14         0.3227967831E-01
+ 88        -14         0.1432477764E+01
+ 88         15        -0.1050178840E+01
+ 88        -15        -0.1306196331E+00
+ 88         16        -0.1059626882E+01
+ 88        -16        -0.5263834156E+00
+ 88         17         0.7067041718E+00
+ 88        -17         0.5884654893E+00
+ 88         18         0.1036599582E+01
+ 88        -18         0.7592057408E+00
+ 88         19         0.1291837418E+01
+ 88        -19        -0.7919536433E+00
+ 88         20         0.7064916233E-01
+ 88        -20        -0.8178657823E+00
+ 88         21        -0.7848162552E+00
+ 88        -21         0.6529555070E+00
+ 88         22        -0.1275510148E+01
+ 88        -22         0.2794434094E+00
+ 88         23        -0.6128556114E+00
+ 88        -23        -0.9395295349E+00
+ 88         24        -0.1903463804E+00
+ 88        -24        -0.5569467471E+00
+ 88         25         0.6320146310E+00
+ 88        -25         0.2848079713E+00
+ 88         26         0.1535939983E+01
+ 88        -26        -0.5629731393E+00
+ 88         27         0.1255074619E+01
+ 88        -27        -0.1908285176E+01
+ 88         28         0.6132374872E-01
+ 88        -28        -0.9379828421E+00
+ 88         29        -0.1041427906E+01
+ 88        -29         0.9095808271E+00
+ 88         30        -0.1191763628E+01
+ 88        -30         0.1657239107E+01
+ 88         31         0.7514245238E+00
+ 88        -31         0.2774782076E+00
+ 88         32         0.4600310362E+00
+ 88        -32        -0.7079262951E+00
+ 88         33        -0.1036920417E+01
+ 88        -33        -0.5672642240E+00
+ 88         34        -0.1532414643E+01
+ 88        -34        -0.2139714220E+00
+ 88         35         0.1341425287E+00
+ 88        -35         0.9720952914E+00
+ 88         36         0.9255084551E+00
+ 88        -36         0.5164313684E+00
+ 88         37         0.4574402070E+00
+ 88        -37        -0.1059733398E+01
+ 88         38        -0.5660968081E+00
+ 88        -38        -0.1440965310E+01
+ 88         39         0.3236686604E+00
+ 88        -39        -0.3206361797E+00
+ 88         40         0.1295481048E+00
+ 88        -40         0.4908934352E+00
+ 88         41        -0.2289160482E+00
+ 88        -41         0.6059838027E+00
+ 88         42        -0.1151904491E+01
+ 88        -42         0.1048764404E+00
+ 88         43        -0.7011053964E+00
+ 88        -43        -0.1199706426E+00
+ 88         44        -0.1063234847E+01
+ 88        -44         0.3972521384E+00
+ 88         45        -0.2933571968E+00
+ 88        -45         0.3553997459E+00
+ 88         46        -0.2816238474E+00
+ 88        -46        -0.1312804727E+00
+ 88         47         0.1232499121E+01
+ 88        -47         0.2068086186E+00
+ 88         48         0.8697661139E+00
+ 88        -48         0.9345541153E+00
+ 88         49         0.9334705808E+00
+ 88        -49        -0.3708778323E+00
+ 88         50        -0.7579756519E+00
+ 88        -50        -0.1277891363E+01
+ 88         51        -0.1472284343E+01
+ 88        -51        -0.7542894634E+00
+ 88         52        -0.1162599848E+01
+ 88        -52         0.3323744332E+00
+ 88         53        -0.4062268109E-02
+ 88        -53         0.1906172278E+00
+ 88         54         0.9581937209E+00
+ 88        -54         0.4443689728E+00
+ 88         55         0.7248650198E+00
+ 88        -55         0.5866339252E+00
+ 88         56         0.4288106852E+00
+ 88        -56         0.2467096022E+00
+ 88         57         0.2162745098E+00
+ 88        -57        -0.1117369950E+00
+ 88         58        -0.4565270805E+00
+ 88        -58        -0.1406624206E+00
+ 88         59        -0.5294593117E+00
+ 88        -59         0.2344093077E+00
+ 88         60         0.1226535597E-01
+ 88        -60        -0.2663501468E+00
+ 88         61         0.3941161980E+00
+ 88        -61        -0.5304445214E-01
+ 88         62         0.3182201456E+00
+ 88        -62        -0.1147590470E+00
+ 88         63        -0.3680483312E+00
+ 88        -63         0.4680606936E+00
+ 88         64        -0.1773052288E+00
+ 88        -64         0.1552689012E+00
+ 88         65        -0.4154860237E+00
+ 88        -65        -0.2591543959E+00
+ 88         66        -0.3303460778E+00
+ 88        -66         0.1835950636E+00
+ 88         67        -0.6030972381E+00
+ 88        -67         0.1449130723E-01
+ 88         68        -0.2434039978E+00
+ 88        -68        -0.4762586677E+00
+ 88         69         0.1879344497E+00
+ 88        -69         0.1648716224E+00
+ 88         70         0.1960969897E+00
+ 88        -70         0.3741328139E+00
+ 88         71         0.3725001108E+00
+ 88        -71        -0.3282441935E+00
+ 88         72         0.8627728104E+00
+ 88        -72         0.3757202763E+00
+ 88         73         0.3345332023E+00
+ 88        -73         0.3045336487E+00
+ 88         74         0.1668082024E+00
+ 88        -74         0.3302534078E+00
+ 88         75         0.4295100215E+00
+ 88        -75        -0.8824781666E-01
+ 88         76         0.6710051079E+00
+ 88        -76         0.2150222998E-01
+ 88         77         0.1029543695E+00
+ 88        -77         0.2632031844E+00
+ 88         78        -0.9218490254E+00
+ 88        -78         0.3713917066E+00
+ 88         79        -0.8008541935E+00
+ 88        -79         0.4339841542E-01
+ 88         80        -0.1985935617E+00
+ 88        -80        -0.2935951226E+00
+ 88         81        -0.3243881748E-01
+ 88        -81        -0.2320804006E+00
+ 88         82         0.8230967420E-01
+ 88        -82        -0.3010443842E+00
+ 88         83         0.5606958434E+00
+ 88        -83         0.6348193264E+00
+ 88         84        -0.4407908128E-01
+ 88        -84         0.3737124849E+00
+ 88         85         0.1870970740E+00
+ 88        -85        -0.2794508256E+00
+ 88         86         0.5788597172E-01
+ 88        -86        -0.1059316662E-01
+ 88         87        -0.3432569005E+00
+ 88        -87         0.4165087814E+00
+ 88         88        -0.1213166499E+00
+ 88        -88        -0.5119537710E-01
+ 89          0        -0.6411785379E+00
+ 89          1         0.1184809650E+00
+ 89         -1        -0.2944814404E+00
+ 89          2         0.4066789265E+00
+ 89         -2        -0.8568609031E-01
+ 89          3        -0.4856364838E+00
+ 89         -3        -0.5535306694E+00
+ 89          4         0.3978268907E+00
+ 89         -4         0.1108222921E+01
+ 89          5         0.2371063877E+00
+ 89         -5         0.9657020868E+00
+ 89          6         0.4075294753E-01
+ 89         -6        -0.1659533041E+01
+ 89          7        -0.4458657437E+00
+ 89         -7        -0.1344208226E+01
+ 89          8        -0.9049350338E+00
+ 89         -8         0.1351462631E+01
+ 89          9         0.7592942595E+00
+ 89         -9         0.1525203701E+01
+ 89         10         0.8673395603E+00
+ 89        -10        -0.9245780861E+00
+ 89         11        -0.1075595371E+01
+ 89        -11        -0.9567939615E+00
+ 89         12        -0.9147391591E+00
+ 89        -12         0.1151320903E+01
+ 89         13         0.1510205760E+00
+ 89        -13         0.1468823918E+01
+ 89         14        -0.3256096407E+00
+ 89        -14        -0.9124382972E+00
+ 89         15         0.2720923810E+00
+ 89        -15        -0.1079299706E+01
+ 89         16         0.7619489473E+00
+ 89        -16         0.1183914969E+01
+ 89         17         0.1580988934E-01
+ 89        -17         0.1961898194E+00
+ 89         18        -0.2728524751E+00
+ 89        -18        -0.1245128170E+01
+ 89         19        -0.1132819472E+01
+ 89        -19        -0.1040183458E+00
+ 89         20        -0.1198250029E+01
+ 89        -20         0.5916376659E+00
+ 89         21        -0.8641266309E-01
+ 89        -21        -0.3849200978E+00
+ 89         22         0.1085446058E+01
+ 89        -22        -0.6698369960E+00
+ 89         23         0.8772519590E+00
+ 89        -23         0.3599278436E+00
+ 89         24         0.7250914575E+00
+ 89        -24         0.7384935825E+00
+ 89         25        -0.5058995584E-02
+ 89        -25         0.1821049888E+00
+ 89         26        -0.9748031633E+00
+ 89        -26        -0.9693552262E-01
+ 89         27        -0.1402442111E+01
+ 89        -27         0.1307363794E+01
+ 89         28        -0.7304558541E+00
+ 89        -28         0.1691679209E+01
+ 89         29         0.5081815566E+00
+ 89        -29        -0.1559946912E+00
+ 89         30         0.1690968565E+01
+ 89        -30        -0.1425532242E+01
+ 89         31        -0.7157933734E-01
+ 89        -31        -0.1130392896E+01
+ 89         32        -0.6495430320E+00
+ 89        -32         0.3153907804E+00
+ 89         33        -0.7974550400E-01
+ 89        -33         0.9493279379E+00
+ 89         34         0.1332347326E+01
+ 89        -34         0.1092315086E+01
+ 89         35         0.1190442273E+01
+ 89        -35        -0.5377158851E+00
+ 89         36        -0.8327680814E+00
+ 89        -36        -0.8087806485E+00
+ 89         37        -0.1025771799E+01
+ 89        -37        -0.3144851346E+00
+ 89         38         0.4136140164E+00
+ 89        -38         0.1272676521E+01
+ 89         39         0.4573013442E+00
+ 89        -39         0.9590308960E+00
+ 89         40        -0.3966031172E+00
+ 89        -40        -0.7650210247E-01
+ 89         41         0.2429176561E+00
+ 89        -41        -0.1003377382E+01
+ 89         42         0.1035235282E+01
+ 89        -42        -0.3374235117E+00
+ 89         43         0.5794142829E+00
+ 89        -43        -0.4459530050E+00
+ 89         44         0.6789986332E+00
+ 89        -44        -0.4577979639E+00
+ 89         45         0.7013785679E+00
+ 89        -45        -0.4824089779E-02
+ 89         46         0.6968147713E+00
+ 89        -46         0.6300306368E+00
+ 89         47        -0.2050467055E+00
+ 89        -47        -0.3986564368E+00
+ 89         48        -0.8314598936E+00
+ 89        -48        -0.4269045054E+00
+ 89         49        -0.1001804679E+01
+ 89        -49        -0.1024730620E+01
+ 89         50        -0.2812194901E+00
+ 89        -50         0.7207310400E+00
+ 89         51         0.9432112852E+00
+ 89        -51         0.1065132332E+01
+ 89         52         0.1453600240E+01
+ 89        -52         0.1368051727E+00
+ 89         53         0.1114022415E+01
+ 89        -53         0.9888155118E-01
+ 89         54        -0.2738769567E+00
+ 89        -54         0.1717731191E+00
+ 89         55        -0.7153176874E+00
+ 89        -55        -0.5071855475E+00
+ 89         56        -0.4399402986E+00
+ 89        -56        -0.1560262072E+00
+ 89         57        -0.2632482693E+00
+ 89        -57        -0.1886456985E-01
+ 89         58         0.1295102015E+00
+ 89        -58         0.1911658329E+00
+ 89         59         0.8970620770E+00
+ 89        -59        -0.7861462373E-01
+ 89         60         0.1023702352E+01
+ 89        -60        -0.1415670534E-01
+ 89         61        -0.5766629467E+00
+ 89        -61        -0.1208102261E+00
+ 89         62        -0.4231248930E+00
+ 89        -62         0.1890395414E+00
+ 89         63         0.4735907623E+00
+ 89        -63         0.2677960849E+00
+ 89         64         0.6932274208E+00
+ 89        -64         0.2884808079E+00
+ 89         65         0.2735211478E+00
+ 89        -65         0.2238862110E-01
+ 89         66         0.2086349166E+00
+ 89        -66        -0.7076169487E+00
+ 89         67         0.2891399393E+00
+ 89        -67        -0.5838401315E+00
+ 89         68        -0.6500709038E-01
+ 89        -68        -0.8275324670E-01
+ 89         69        -0.5513205830E+00
+ 89        -69         0.4668510175E+00
+ 89         70        -0.1074477747E+00
+ 89        -70         0.3276083448E+00
+ 89         71        -0.2783751265E+00
+ 89        -71         0.4516683869E+00
+ 89         72        -0.1618812273E+00
+ 89        -72        -0.1510952431E+00
+ 89         73        -0.4336853270E+00
+ 89        -73        -0.5381884952E+00
+ 89         74        -0.8907076627E-01
+ 89        -74        -0.4196547722E+00
+ 89         75        -0.2376400909E+00
+ 89        -75        -0.1154887017E+00
+ 89         76        -0.5477289216E+00
+ 89        -76        -0.1396234252E+00
+ 89         77        -0.4132727355E+00
+ 89        -77        -0.2976311930E+00
+ 89         78         0.3231002873E+00
+ 89        -78         0.2804337113E+00
+ 89         79         0.7950812879E+00
+ 89        -79         0.4737511079E-01
+ 89         80         0.2777110873E+00
+ 89        -80         0.2378259459E+00
+ 89         81         0.1534417466E+00
+ 89        -81         0.4957710413E-01
+ 89         82        -0.1942029441E+00
+ 89        -82        -0.1759216947E+00
+ 89         83        -0.2577958193E+00
+ 89        -83        -0.5578339155E+00
+ 89         84         0.2331550440E+00
+ 89        -84         0.9271274251E-01
+ 89         85        -0.9917461855E-01
+ 89        -85         0.2221933896E-01
+ 89         86        -0.1396265057E+00
+ 89        -86        -0.2931554390E+00
+ 89         87         0.5890635721E-01
+ 89        -87         0.1309721121E+00
+ 89         88        -0.3298336526E+00
+ 89        -88         0.5183994696E+00
+ 89         89        -0.4330355564E+00
+ 89        -89         0.3090046941E+00
+ 90          0         0.2858426544E+00
+ 90          1         0.6922188004E-01
+ 90         -1        -0.5205084111E-02
+ 90          2         0.3371510836E+00
+ 90         -2         0.3220627718E+00
+ 90          3         0.5200986856E+00
+ 90         -3         0.4683877847E+00
+ 90          4        -0.1085026412E+00
+ 90         -4        -0.8873335734E+00
+ 90          5        -0.4943826798E+00
+ 90         -5        -0.1086464062E+01
+ 90          6        -0.4701163098E+00
+ 90         -6         0.4866441618E+00
+ 90          7         0.4504163958E+00
+ 90         -7         0.1780459098E+01
+ 90          8         0.1161366107E+01
+ 90         -8        -0.9177146408E-01
+ 90          9        -0.2209728223E+00
+ 90         -9        -0.1742044631E+01
+ 90         10        -0.1985952318E+01
+ 90        -10        -0.1118404851E+00
+ 90         11        -0.7368640150E-01
+ 90        -11         0.1609960365E+01
+ 90         12         0.1406581592E+01
+ 90        -12         0.2598421859E+00
+ 90         13         0.2745480127E+00
+ 90        -13        -0.1719636421E+01
+ 90         14        -0.1774822625E+00
+ 90        -14        -0.1373617813E+00
+ 90         15        -0.9685438384E-01
+ 90        -15         0.1277077109E+01
+ 90         16         0.7944753347E-01
+ 90        -16        -0.9422185536E+00
+ 90         17        -0.5299044325E+00
+ 90        -17        -0.9239276627E+00
+ 90         18        -0.3523231887E+00
+ 90        -18         0.9056523141E+00
+ 90         19         0.4554315023E+00
+ 90        -19         0.7505590180E+00
+ 90         20         0.1700686060E+01
+ 90        -20        -0.3706831608E+00
+ 90         21         0.1151189868E+01
+ 90        -21        -0.3019196453E-01
+ 90         22        -0.2105390865E+00
+ 90        -22         0.9221276897E+00
+ 90         23        -0.7806142290E+00
+ 90        -23         0.1426153921E+00
+ 90         24        -0.6064120001E+00
+ 90        -24        -0.7677587856E+00
+ 90         25        -0.7729083286E-01
+ 90        -25        -0.2776997779E+00
+ 90         26        -0.6884560394E-01
+ 90        -26         0.6139962401E+00
+ 90         27         0.5457722497E+00
+ 90        -27        -0.4878429545E+00
+ 90         28         0.9631698401E+00
+ 90        -28        -0.1708451639E+01
+ 90         29         0.4972114751E+00
+ 90        -29        -0.6921131842E+00
+ 90         30        -0.8256355563E+00
+ 90        -30         0.6125937863E+00
+ 90         31        -0.9470761631E+00
+ 90        -31         0.1445548837E+01
+ 90         32         0.1933099345E+00
+ 90        -32         0.2476728499E+00
+ 90         33         0.1331870128E+00
+ 90        -33        -0.5345222796E+00
+ 90         34        -0.6002950979E+00
+ 90        -34        -0.6210452669E+00
+ 90         35        -0.1081639933E+01
+ 90        -35        -0.7965208533E-01
+ 90         36         0.3689988756E+00
+ 90        -36         0.3615974542E+00
+ 90         37         0.1050827661E+01
+ 90        -37         0.5579358379E+00
+ 90         38         0.4187578334E+00
+ 90        -38        -0.5404196358E+00
+ 90         39        -0.6198351374E+00
+ 90        -39        -0.9339761967E+00
+ 90         40        -0.8363543191E-02
+ 90        -40         0.6244924817E-01
+ 90         41        -0.1685371639E+00
+ 90        -41         0.8851328709E+00
+ 90         42         0.1539025794E+00
+ 90        -42         0.5691071042E+00
+ 90         43        -0.4050982792E+00
+ 90        -43         0.5050549982E+00
+ 90         44        -0.1367203403E+00
+ 90        -44         0.4086529628E+00
+ 90         45        -0.5315202744E+00
+ 90        -45         0.3145386550E+00
+ 90         46        -0.6732198508E+00
+ 90        -46        -0.2392151477E+00
+ 90         47        -0.9541586193E+00
+ 90        -47        -0.3580621731E+00
+ 90         48         0.4064582259E+00
+ 90        -48        -0.3453861858E-01
+ 90         49         0.6179596541E+00
+ 90        -49         0.1496823630E+01
+ 90         50         0.1309959996E+01
+ 90        -50         0.4543887969E+00
+ 90         51         0.2703790423E+00
+ 90        -51        -0.6801841974E+00
+ 90         52        -0.7780996436E+00
+ 90        -52        -0.9574846623E+00
+ 90         53        -0.1865623440E+01
+ 90        -53        -0.2126153951E+00
+ 90         54        -0.7464637349E+00
+ 90        -54         0.6134930844E-01
+ 90         55         0.2757249809E+00
+ 90        -55         0.2292421591E+00
+ 90         56         0.5998467748E+00
+ 90        -56        -0.5329856031E-01
+ 90         57         0.7175847665E-01
+ 90        -57         0.2897942725E+00
+ 90         58         0.6349025942E+00
+ 90        -58        -0.1819668786E+00
+ 90         59        -0.1080229908E+00
+ 90        -59        -0.4244117739E+00
+ 90         60        -0.3415646577E+00
+ 90        -60        -0.1894003589E+00
+ 90         61        -0.4290838576E+00
+ 90        -61         0.2648877524E+00
+ 90         62         0.3341940264E+00
+ 90        -62         0.1339752042E+00
+ 90         63        -0.2653334897E+00
+ 90        -63         0.2127440502E+00
+ 90         64        -0.2314031480E+00
+ 90        -64         0.1624342598E+00
+ 90         65        -0.4492144688E+00
+ 90        -65         0.3131188112E+00
+ 90         66        -0.2074148770E+00
+ 90        -66         0.3459325937E+00
+ 90         67        -0.6517579375E+00
+ 90        -67         0.5698074296E+00
+ 90         68        -0.4360707690E+00
+ 90        -68         0.1982714231E+00
+ 90         69         0.1739023725E+00
+ 90        -69        -0.1100582644E+00
+ 90         70         0.4251339440E-01
+ 90        -70         0.3440711210E+00
+ 90         71        -0.1088060974E+00
+ 90        -71         0.1869783190E+00
+ 90         72        -0.3038630846E+00
+ 90        -72        -0.2340371394E+00
+ 90         73         0.1547918970E+00
+ 90        -73         0.4137923402E+00
+ 90         74         0.7118543007E-01
+ 90        -74         0.4037015212E+00
+ 90         75         0.3986638392E+00
+ 90        -75         0.4577156431E+00
+ 90         76         0.3522364950E+00
+ 90        -76         0.5590656058E+00
+ 90         77         0.3794826080E+00
+ 90        -77         0.2442996586E+00
+ 90         78         0.5830184144E+00
+ 90        -78        -0.5626198017E-01
+ 90         79        -0.6921404781E+00
+ 90        -79        -0.1534549162E+00
+ 90         80        -0.6833399407E+00
+ 90        -80        -0.2603158082E+00
+ 90         81         0.1340244916E+00
+ 90        -81        -0.8262593905E-01
+ 90         82         0.2796316353E+00
+ 90        -82         0.2628090171E+00
+ 90         83        -0.2588575118E+00
+ 90        -83         0.3276847406E-02
+ 90         84        -0.3590921449E-01
+ 90        -84         0.3537887536E-01
+ 90         85        -0.1059215360E+00
+ 90        -85         0.3114378517E+00
+ 90         86        -0.5004260194E+00
+ 90        -86        -0.8213938146E-01
+ 90         87        -0.2812826069E+00
+ 90        -87        -0.4595882501E+00
+ 90         88        -0.1565558444E+00
+ 90        -88        -0.3800492237E+00
+ 90         89        -0.4011174451E-01
+ 90        -89        -0.4122229377E+00
+ 90         90        -0.8588174538E-01
+ 90        -90        -0.4625700897E+00
+ 91          0         0.2145507217E+00
+ 91          1         0.3386826838E+00
+ 91         -1         0.5387461925E+00
+ 91          2        -0.3791713926E+00
+ 91         -2        -0.5149507799E+00
+ 91          3        -0.6228270806E+00
+ 91         -3        -0.5751525878E+00
+ 91          4        -0.1889342548E+00
+ 91         -4         0.1504078049E+00
+ 91          5         0.7960497332E+00
+ 91         -5         0.1359451294E+01
+ 91          6         0.3482725962E+00
+ 91         -6         0.7501916679E+00
+ 91          7        -0.1978606600E+00
+ 91         -7        -0.1537043055E+01
+ 91          8        -0.7473781187E+00
+ 91         -8        -0.5365897861E+00
+ 91          9        -0.5764426048E+00
+ 91         -9         0.9119569560E+00
+ 91         10         0.1787584898E+01
+ 91        -10         0.5119466556E+00
+ 91         11         0.1415231811E+01
+ 91        -11        -0.1365559882E+01
+ 91         12        -0.1788527097E+01
+ 91        -12        -0.1186778658E+01
+ 91         13        -0.1344797216E+01
+ 91        -13         0.8935463852E+00
+ 91         14         0.8362380764E+00
+ 91        -14         0.9805258879E+00
+ 91         15         0.7418242294E+00
+ 91        -15        -0.8614309437E+00
+ 91         16        -0.2561888253E+00
+ 91        -16        -0.3723806732E+00
+ 91         17        -0.1856048043E+00
+ 91        -17         0.1314353832E+01
+ 91         18         0.4573703463E+00
+ 91        -18         0.2024320040E+00
+ 91         19         0.7299940288E+00
+ 91        -19        -0.7281136844E+00
+ 91         20        -0.9466979984E+00
+ 91        -20         0.1872617233E+00
+ 91         21        -0.1633652190E+01
+ 91        -21         0.4526748465E+00
+ 91         22        -0.9072024812E+00
+ 91        -22        -0.7601659688E+00
+ 91         23         0.3928437772E+00
+ 91        -23        -0.5922895474E+00
+ 91         24         0.2658154634E+00
+ 91        -24         0.4269391757E+00
+ 91         25         0.2224103194E+00
+ 91        -25         0.1570904551E+00
+ 91         26         0.5335374407E+00
+ 91        -26        -0.5975551727E+00
+ 91         27         0.1366317645E+00
+ 91        -27        -0.1547729506E+00
+ 91         28        -0.9186367098E+00
+ 91        -28         0.1047412614E+01
+ 91         29        -0.1259829948E+01
+ 91        -29         0.1024067772E+01
+ 91         30        -0.2181838313E+00
+ 91        -30        -0.2397768852E-01
+ 91         31         0.1338569029E+01
+ 91        -31        -0.8149285743E+00
+ 91         32         0.3844030601E+00
+ 91        -32        -0.9280273720E+00
+ 91         33         0.2952576210E+00
+ 91        -33        -0.1220392480E+00
+ 91         34        -0.1379926182E+00
+ 91        -34         0.2561052422E+00
+ 91         35         0.3065845446E+00
+ 91        -35         0.7313198896E+00
+ 91         36         0.3072195892E+00
+ 91        -36         0.5786824246E-01
+ 91         37        -0.6315481296E+00
+ 91        -37         0.8541484628E-02
+ 91         38        -0.6525581625E+00
+ 91        -38        -0.1730945478E-01
+ 91         39         0.6164270106E+00
+ 91        -39         0.5108583209E+00
+ 91         40         0.5274824101E+00
+ 91        -40         0.1377194404E+00
+ 91         41        -0.8887135869E-01
+ 91        -41        -0.3853424839E+00
+ 91         42        -0.2876354129E+00
+ 91        -42        -0.6950448187E+00
+ 91         43         0.6937603290E+00
+ 91        -43        -0.2097916642E+00
+ 91         44         0.1136861281E+00
+ 91        -44        -0.6055453548E+00
+ 91         45         0.2279252869E+00
+ 91        -45        -0.5993715183E+00
+ 91         46         0.2975171810E+00
+ 91        -46         0.6910364820E-01
+ 91         47         0.1081728295E+01
+ 91        -47         0.9770965221E+00
+ 91         48        -0.8865724906E-02
+ 91        -48         0.1045026670E+00
+ 91         49        -0.1005514900E+00
+ 91        -49        -0.7992092125E+00
+ 91         50        -0.8148312162E+00
+ 91        -50        -0.1089554757E+01
+ 91         51        -0.6897326464E+00
+ 91        -51        -0.2880052008E+00
+ 91         52        -0.1372550723E+00
+ 91        -52         0.5333994383E+00
+ 91         53         0.1430350618E+01
+ 91        -53         0.2949679093E+00
+ 91         54         0.1520998309E+01
+ 91        -54         0.3618667253E+00
+ 91         55         0.6524543603E+00
+ 91        -55         0.1098806703E+00
+ 91         56        -0.4104215448E+00
+ 91        -56        -0.1853525559E+00
+ 91         57        -0.2741557547E+00
+ 91        -57        -0.2547381277E-01
+ 91         58        -0.9891511644E+00
+ 91        -58         0.2820572721E+00
+ 91         59        -0.9636665923E+00
+ 91        -59         0.6888873620E+00
+ 91         60         0.3637839933E+00
+ 91        -60         0.3390706356E+00
+ 91         61         0.1203595314E+01
+ 91        -61         0.1404044573E+00
+ 91         62         0.3562751539E+00
+ 91        -62        -0.7988371024E+00
+ 91         63        -0.6381663538E+00
+ 91        -63        -0.1776219754E+00
+ 91         64         0.1132970933E+00
+ 91        -64         0.3124039195E-01
+ 91         65        -0.1480742710E-01
+ 91        -65         0.2660278260E+00
+ 91         66         0.2259821294E+00
+ 91        -66        -0.1358732811E+00
+ 91         67         0.3646418829E+00
+ 91        -67        -0.7428081784E+00
+ 91         68         0.7029680299E+00
+ 91        -68        -0.4252159674E+00
+ 91         69         0.1293877991E+00
+ 91        -69        -0.1154628368E+00
+ 91         70        -0.3636933732E+00
+ 91        -70        -0.3530322476E+00
+ 91         71        -0.2711004247E+00
+ 91        -71        -0.3586383065E+00
+ 91         72         0.2129165084E-01
+ 91        -72         0.7515002382E-01
+ 91         73         0.1713731935E+00
+ 91        -73         0.1472564563E+00
+ 91         74         0.2005969406E+00
+ 91        -74         0.2123517538E+00
+ 91         75         0.2287492334E+00
+ 91        -75        -0.3974193192E+00
+ 91         76         0.4075544033E+00
+ 91        -76        -0.7073706143E+00
+ 91         77        -0.4766611431E-01
+ 91        -77        -0.2765793017E+00
+ 91         78        -0.7676308537E+00
+ 91        -78        -0.4682903528E+00
+ 91         79        -0.1416046594E+00
+ 91        -79        -0.6823751595E-01
+ 91         80         0.1792574705E+00
+ 91        -80         0.4545012704E+00
+ 91         81         0.6285560070E-01
+ 91        -81         0.1601066415E+00
+ 91         82         0.7144161179E-01
+ 91        -82        -0.1851521039E+00
+ 91         83         0.1563079193E+00
+ 91        -83         0.1082543837E+00
+ 91         84         0.1941077231E+00
+ 91        -84         0.8272613656E-01
+ 91         85         0.5059825916E+00
+ 91        -85         0.7324420174E-01
+ 91         86         0.2416308517E+00
+ 91        -86         0.2322126820E+00
+ 91         87        -0.8746695715E-02
+ 91        -87         0.3821488579E+00
+ 91         88         0.8271208883E-01
+ 91        -88         0.1336171992E+00
+ 91         89        -0.2786510839E+00
+ 91        -89         0.3341826516E+00
+ 91         90        -0.7506199437E+00
+ 91        -90         0.1522444977E+00
+ 91         91        -0.3125689651E+00
+ 91        -91        -0.1680512160E+00
+ 92          0        -0.2410693655E+00
+ 92          1        -0.1021153398E+01
+ 92         -1        -0.5306780189E+00
+ 92          2        -0.3960154036E+00
+ 92         -2         0.1981555862E-01
+ 92          3         0.9426278910E+00
+ 92         -3         0.9310157412E+00
+ 92          4         0.4242510172E+00
+ 92         -4         0.8856221049E+00
+ 92          5        -0.8939282548E+00
+ 92         -5        -0.1256713564E+01
+ 92          6        -0.4126169491E+00
+ 92         -6        -0.1183195878E+01
+ 92          7        -0.1839956166E+00
+ 92         -7         0.6206624879E+00
+ 92          8         0.5680481549E+00
+ 92         -8         0.1028090418E+01
+ 92          9         0.1264696120E+01
+ 92         -9        -0.1856625424E+00
+ 92         10        -0.4407793203E+00
+ 92        -10        -0.6961715307E+00
+ 92         11        -0.2003502860E+01
+ 92        -11         0.3147504451E+00
+ 92         12         0.9280779921E+00
+ 92        -12         0.1185665233E+01
+ 92         13         0.2093575452E+01
+ 92        -13         0.8047982081E-01
+ 92         14        -0.4640357047E+00
+ 92        -14        -0.1136962030E+01
+ 92         15        -0.1466920904E+01
+ 92        -15         0.6790722251E+00
+ 92         16        -0.2882204013E+00
+ 92        -16         0.1465979833E+01
+ 92         17         0.1256276803E+01
+ 92        -17        -0.8558383629E+00
+ 92         18         0.8031365737E-01
+ 92        -18        -0.1089229325E+01
+ 92         19        -0.1414182148E+01
+ 92        -19         0.3183448687E+00
+ 92         20        -0.4423850213E+00
+ 92        -20        -0.8917839425E-01
+ 92         21         0.1263237872E+01
+ 92        -21        -0.5754026184E+00
+ 92         22         0.1173825803E+01
+ 92        -22         0.4805999714E+00
+ 92         23        -0.1898102827E+00
+ 92        -23         0.9042596734E+00
+ 92         24         0.1513588708E-01
+ 92        -24         0.1264917545E+00
+ 92         25         0.2301837005E+00
+ 92        -25        -0.3896933374E+00
+ 92         26         0.2151978568E+00
+ 92        -26         0.3269447175E+00
+ 92         27        -0.4300553061E+00
+ 92        -27         0.3991737416E+00
+ 92         28         0.2080580814E+00
+ 92        -28        -0.5958136302E+00
+ 92         29         0.1078829968E+01
+ 92        -29        -0.1220815385E+01
+ 92         30         0.9395533289E+00
+ 92        -30        -0.1829709339E+00
+ 92         31        -0.3527716754E+00
+ 92        -31         0.3541989190E+00
+ 92         32        -0.4227166871E+00
+ 92        -32         0.1060987028E+01
+ 92         33        -0.2973639598E+00
+ 92        -33         0.2684348988E+00
+ 92         34        -0.4159296373E+00
+ 92        -34        -0.1374734398E+00
+ 92         35        -0.1477197707E+00
+ 92        -35        -0.3968510671E+00
+ 92         36        -0.3362656979E+00
+ 92        -36         0.3732021106E-01
+ 92         37         0.2897676100E+00
+ 92        -37        -0.3471867100E+00
+ 92         38         0.5778500486E+00
+ 92        -38         0.7697759388E-01
+ 92         39         0.7138170885E-02
+ 92        -39        -0.8148312875E-01
+ 92         40        -0.4517617109E+00
+ 92        -40        -0.3047543180E+00
+ 92         41        -0.8513230815E-01
+ 92        -41         0.3542644788E+00
+ 92         42        -0.2362629870E+00
+ 92        -42         0.9333774174E+00
+ 92         43        -0.3719174809E+00
+ 92        -43         0.2361050542E+00
+ 92         44        -0.1816589951E+00
+ 92        -44         0.6868204294E+00
+ 92         45         0.4424784672E-01
+ 92        -45         0.8873502297E+00
+ 92         46         0.1150674200E+00
+ 92        -46         0.5870396629E+00
+ 92         47        -0.1673793870E+00
+ 92        -47        -0.6313911987E+00
+ 92         48        -0.4866063908E+00
+ 92        -48        -0.4845104842E+00
+ 92         49        -0.4491370060E+00
+ 92        -49        -0.2920744069E+00
+ 92         50        -0.1620803387E+00
+ 92        -50         0.1254412550E+01
+ 92         51         0.5344945752E+00
+ 92        -51         0.1084777357E+01
+ 92         52         0.6507213747E+00
+ 92        -52         0.2426295735E+00
+ 92         53        -0.2822564311E+00
+ 92        -53        -0.3372106821E+00
+ 92         54        -0.1578306699E+01
+ 92        -54        -0.3596879749E+00
+ 92         55        -0.1308534959E+01
+ 92        -55        -0.8978859828E-01
+ 92         56        -0.2693542948E-01
+ 92        -56         0.2724695850E+00
+ 92         57         0.2780650428E+00
+ 92        -57        -0.4231131364E+00
+ 92         58         0.6217182630E-01
+ 92        -58        -0.1276010916E+00
+ 92         59         0.6876330018E+00
+ 92        -59        -0.2012792772E+00
+ 92         60         0.5246865260E+00
+ 92        -60        -0.3416927839E+00
+ 92         61        -0.2059800483E+00
+ 92        -61        -0.2752868699E+00
+ 92         62        -0.3749118751E+00
+ 92        -62         0.2629020122E+00
+ 92         63         0.3303664883E-01
+ 92        -63         0.1970850707E+00
+ 92         64         0.2465973313E+00
+ 92        -64         0.1016669090E+00
+ 92         65        -0.2165625354E+00
+ 92        -65         0.1869669803E-01
+ 92         66        -0.3152845706E+00
+ 92        -66         0.1706766162E+00
+ 92         67        -0.5989348160E+00
+ 92        -67         0.4259999512E+00
+ 92         68        -0.8479119421E+00
+ 92        -68         0.3886606446E+00
+ 92         69        -0.2309505514E+00
+ 92        -69         0.2973504159E+00
+ 92         70         0.5530913034E+00
+ 92        -70         0.1651924622E+00
+ 92         71         0.1173112287E+00
+ 92        -71         0.5645861338E+00
+ 92         72        -0.1036475309E+00
+ 92        -72         0.2587532722E+00
+ 92         73        -0.5261559912E+00
+ 92        -73        -0.3457492779E+00
+ 92         74        -0.1763208335E+00
+ 92        -74        -0.1072186845E+00
+ 92         75        -0.1887033187E+00
+ 92        -75         0.7277184956E+00
+ 92         76        -0.3881365918E+00
+ 92        -76         0.7868494402E+00
+ 92         77        -0.4780413593E-01
+ 92        -77         0.4105644778E+00
+ 92         78         0.3025237931E+00
+ 92        -78         0.2904289083E+00
+ 92         79         0.4332975706E+00
+ 92        -79        -0.3740249201E+00
+ 92         80        -0.2745199650E-01
+ 92        -80        -0.5363652578E+00
+ 92         81        -0.1727510201E+00
+ 92        -81        -0.4395967237E+00
+ 92         82        -0.1687447765E+00
+ 92        -82        -0.4998654484E-01
+ 92         83         0.7086402860E-01
+ 92        -83         0.1196123853E+00
+ 92         84        -0.1682260986E+00
+ 92        -84        -0.1339983015E+00
+ 92         85        -0.1189195498E+00
+ 92        -85        -0.3828442917E+00
+ 92         86         0.7706199514E-01
+ 92        -86         0.8926812707E-01
+ 92         87        -0.1355506966E+00
+ 92        -87        -0.4030744609E-01
+ 92         88        -0.6488929290E-01
+ 92        -88        -0.3337957557E-01
+ 92         89         0.5514068147E+00
+ 92        -89        -0.1005570050E+00
+ 92         90         0.4841165781E+00
+ 92        -90        -0.4757303910E+00
+ 92         91         0.2395923182E+00
+ 92        -91        -0.5891954092E+00
+ 92         92         0.4973583103E+00
+ 92        -92         0.3439495616E-01
+ 93          0        -0.2495814089E+00
+ 93          1         0.8989528092E+00
+ 93         -1         0.9217042894E-01
+ 93          2         0.8492320421E+00
+ 93         -2         0.9176488807E+00
+ 93          3        -0.8745440413E+00
+ 93         -3        -0.8157500604E+00
+ 93          4        -0.7553371564E+00
+ 93         -4        -0.1493135557E+01
+ 93          5         0.4402829378E+00
+ 93         -5         0.2265352058E+00
+ 93          6         0.8679419195E+00
+ 93         -6         0.1116836793E+01
+ 93          7         0.2153369012E+00
+ 93         -7         0.4285602702E+00
+ 93          8        -0.5419959106E+00
+ 93         -8        -0.1098855253E+01
+ 93          9        -0.1261318600E+01
+ 93         -9         0.1780716655E+00
+ 93         10        -0.4982920617E+00
+ 93        -10         0.8006120010E+00
+ 93         11         0.1842350735E+01
+ 93        -11         0.3882248369E+00
+ 93         12         0.8889022490E+00
+ 93        -12        -0.6910287958E+00
+ 93         13        -0.2224322742E+01
+ 93        -13        -0.4920160577E+00
+ 93         14        -0.1127439187E+01
+ 93        -14         0.8359557376E+00
+ 93         15         0.1422486533E+01
+ 93        -15        -0.5986298075E-01
+ 93         16         0.1062206791E+01
+ 93        -16        -0.1490018548E+01
+ 93         17        -0.1303371378E+01
+ 93        -17        -0.2429078251E+00
+ 93         18        -0.1219185704E+01
+ 93        -18         0.1272794578E+01
+ 93         19         0.8463845539E+00
+ 93        -19         0.1834485266E+00
+ 93         20         0.1501856131E+01
+ 93        -20        -0.7658335136E-01
+ 93         21        -0.2423381613E+00
+ 93        -21         0.3843446290E+00
+ 93         22        -0.9068116067E+00
+ 93        -22        -0.1136120762E+00
+ 93         23        -0.1827529799E-01
+ 93        -23        -0.1013977747E+01
+ 93         24         0.1314074464E+00
+ 93        -24        -0.3591975547E+00
+ 93         25        -0.8136716647E+00
+ 93        -25         0.6702869598E+00
+ 93         26        -0.7167381801E+00
+ 93        -26        -0.9678913951E-03
+ 93         27         0.6772849863E+00
+ 93        -27        -0.1944464645E+00
+ 93         28         0.8579900509E+00
+ 93        -28         0.4819289094E+00
+ 93         29        -0.4388258410E+00
+ 93        -29         0.1054883581E+01
+ 93         30        -0.1435716644E+01
+ 93        -30         0.1397621615E+00
+ 93         31        -0.7539608994E+00
+ 93        -31        -0.2959919977E+00
+ 93         32         0.1864911851E+00
+ 93        -32        -0.3371161731E+00
+ 93         33         0.2234739658E+00
+ 93        -33        -0.6444025530E-01
+ 93         34         0.1015854883E+01
+ 93        -34         0.3150491891E+00
+ 93         35         0.5892725051E+00
+ 93        -35         0.5146510854E-01
+ 93         36         0.4658801485E-01
+ 93        -36        -0.1123604137E+00
+ 93         37        -0.3813900904E+00
+ 93        -37        -0.1627316008E-01
+ 93         38        -0.5782346636E+00
+ 93        -38         0.2257076922E+00
+ 93         39        -0.9240443471E-01
+ 93        -39         0.3515364749E+00
+ 93         40         0.6801987702E+00
+ 93        -40         0.2429475407E+00
+ 93         41         0.6416046233E+00
+ 93        -41        -0.2574106071E+00
+ 93         42         0.2378532111E+00
+ 93        -42        -0.7054843317E+00
+ 93         43        -0.3655943144E+00
+ 93        -43        -0.4405760374E+00
+ 93         44         0.5454585680E+00
+ 93        -44        -0.4127618525E+00
+ 93         45         0.1200896162E+00
+ 93        -45        -0.9327240687E+00
+ 93         46        -0.2705501488E+00
+ 93        -46        -0.9549114122E+00
+ 93         47        -0.4665050740E+00
+ 93        -47        -0.7567540847E-01
+ 93         48         0.5495034221E+00
+ 93        -48         0.9456981295E+00
+ 93         49         0.4166826722E-01
+ 93        -49         0.4386064383E+00
+ 93         50         0.5653645596E+00
+ 93        -50        -0.7223478597E+00
+ 93         51         0.7728902937E-01
+ 93        -51        -0.8373827481E+00
+ 93         52        -0.2410923098E+00
+ 93        -52        -0.7619834587E+00
+ 93         53        -0.5643685666E+00
+ 93        -53        -0.6067468827E+00
+ 93         54         0.8841499748E+00
+ 93        -54        -0.2783159554E+00
+ 93         55         0.1176772563E+01
+ 93        -55         0.3142202545E+00
+ 93         56         0.1031432102E+01
+ 93        -56         0.1375284607E+00
+ 93         57         0.2701193334E+00
+ 93        -57         0.1505120866E-01
+ 93         58         0.4861584984E+00
+ 93        -58        -0.4606868370E-01
+ 93         59        -0.5148115889E+00
+ 93        -59         0.1498916450E+00
+ 93         60        -0.1191645578E+01
+ 93        -60         0.3070609681E+00
+ 93         61        -0.1083499543E+01
+ 93        -61         0.3760713090E+00
+ 93         62         0.2302634526E+00
+ 93        -62         0.3431416842E+00
+ 93         63        -0.1781530680E-01
+ 93        -63        -0.3535925976E+00
+ 93         64         0.5147522965E-02
+ 93        -64        -0.4966443585E+00
+ 93         65        -0.1927951466E-01
+ 93        -65        -0.3835945706E+00
+ 93         66         0.3162512947E+00
+ 93        -66        -0.5326588337E-01
+ 93         67         0.8036199372E-01
+ 93        -67        -0.2939745536E+00
+ 93         68         0.2456183996E+00
+ 93        -68        -0.5225774892E+00
+ 93         69         0.2081469591E+00
+ 93        -69        -0.1085500822E+00
+ 93         70         0.1422240064E+00
+ 93        -70         0.1355245907E+00
+ 93         71         0.1028724392E+00
+ 93        -71        -0.2321744697E+00
+ 93         72         0.7347936103E-01
+ 93        -72        -0.5999249356E+00
+ 93         73         0.3257022892E+00
+ 93        -73        -0.2104261107E+00
+ 93         74         0.7530299608E-01
+ 93        -74         0.1686041193E-01
+ 93         75         0.1502250643E+00
+ 93        -75        -0.4158026711E-02
+ 93         76         0.5016933933E+00
+ 93        -76        -0.2263880031E+00
+ 93         77         0.8038695402E+00
+ 93        -77        -0.6915277959E-01
+ 93         78         0.3501725256E+00
+ 93        -78        -0.1319303310E+00
+ 93         79        -0.9215245919E-01
+ 93        -79        -0.1638833702E+00
+ 93         80        -0.1382395941E+00
+ 93        -80        -0.1976937853E+00
+ 93         81        -0.8277615620E-01
+ 93        -81        -0.3342191440E-01
+ 93         82        -0.2679517045E+00
+ 93        -82         0.2853257490E-01
+ 93         83        -0.1313536312E+00
+ 93        -83         0.5519144118E-01
+ 93         84        -0.4614589348E-02
+ 93        -84         0.1254547811E+00
+ 93         85         0.1281642190E+00
+ 93        -85         0.4044396832E+00
+ 93         86         0.3834946254E+00
+ 93        -86         0.3908818688E+00
+ 93         87         0.1626394055E+00
+ 93        -87         0.3875805571E+00
+ 93         88        -0.2155642652E+00
+ 93        -88         0.3617453808E+00
+ 93         89        -0.4090334156E-01
+ 93        -89         0.9123355679E-01
+ 93         90         0.1759385687E+00
+ 93        -90         0.4238147279E+00
+ 93         91        -0.3227255091E-01
+ 93        -91         0.1169636190E+00
+ 93         92        -0.2690554359E+00
+ 93        -92        -0.5505545223E+00
+ 93         93         0.2592194569E+00
+ 93        -93        -0.7275767603E-01
+ 94          0         0.7568854601E+00
+ 94          1        -0.2908525267E+00
+ 94         -1         0.2358978256E+00
+ 94          2        -0.8973926284E+00
+ 94         -2        -0.1119673735E+01
+ 94          3         0.3149305507E+00
+ 94         -3        -0.1639502619E+00
+ 94          4         0.1089984300E+01
+ 94         -4         0.1281568488E+01
+ 94          5         0.1490231466E+00
+ 94         -5         0.1132703279E+01
+ 94          6        -0.9876557212E+00
+ 94         -6        -0.6780982212E+00
+ 94          7        -0.2533419696E+00
+ 94         -7        -0.9767588056E+00
+ 94          8         0.2353198178E+00
+ 94         -8         0.4537333047E+00
+ 94          9         0.6556909451E+00
+ 94         -9         0.7544101376E-01
+ 94         10         0.7089711136E+00
+ 94        -10        -0.5087042401E+00
+ 94         11        -0.1092895837E+01
+ 94        -11        -0.3909673486E+00
+ 94         12        -0.1893860574E+01
+ 94        -12         0.3082618101E+00
+ 94         13         0.1539131144E+01
+ 94        -13         0.5101663519E+00
+ 94         14         0.2207512898E+01
+ 94        -14        -0.6189427246E+00
+ 94         15        -0.8052034466E+00
+ 94        -15        -0.9815672772E+00
+ 94         16        -0.1786206377E+01
+ 94        -16         0.7823316120E+00
+ 94         17         0.3526093287E+00
+ 94        -17         0.1218118555E+01
+ 94         18         0.1934615989E+01
+ 94        -18        -0.6832983861E+00
+ 94         19         0.3589887219E+00
+ 94        -19        -0.6254994149E+00
+ 94         20        -0.1554959479E+01
+ 94        -20         0.2341059717E+00
+ 94         21        -0.6421328105E+00
+ 94        -21        -0.2179524746E+00
+ 94         22         0.6201149390E+00
+ 94        -22        -0.3950028881E+00
+ 94         23         0.2517593846E+00
+ 94        -23         0.8721131797E+00
+ 94         24        -0.6561602855E+00
+ 94        -24         0.7196333901E+00
+ 94         25         0.4025727110E+00
+ 94        -25        -0.3674303917E+00
+ 94         26         0.8949905387E+00
+ 94        -26        -0.3023327806E+00
+ 94         27        -0.3390694668E-01
+ 94        -27         0.4013978369E+00
+ 94         28        -0.1208339794E+01
+ 94        -28        -0.7998223063E-01
+ 94         29        -0.4248915982E+00
+ 94        -29        -0.7108588572E+00
+ 94         30         0.9167341416E+00
+ 94        -30        -0.5367112117E+00
+ 94         31         0.8136451393E+00
+ 94        -31         0.1351827420E+00
+ 94         32        -0.1907062326E-01
+ 94        -32        -0.9953151865E-01
+ 94         33        -0.5953743802E-01
+ 94        -33        -0.3793666012E-01
+ 94         34        -0.4981036705E+00
+ 94        -34        -0.2681388322E+00
+ 94         35        -0.9785327252E+00
+ 94        -35        -0.1281428421E+00
+ 94         36        -0.1827561781E+00
+ 94        -36         0.1710756172E+00
+ 94         37         0.3635425988E+00
+ 94        -37         0.6699235473E+00
+ 94         38         0.6204063742E+00
+ 94        -38        -0.2608354369E+00
+ 94         39         0.1999839226E+00
+ 94        -39        -0.3444638972E+00
+ 94         40        -0.6963971107E+00
+ 94        -40        -0.7735553393E-01
+ 94         41        -0.6387830294E+00
+ 94        -41         0.9860374920E-01
+ 94         42        -0.1022437049E+00
+ 94        -42         0.6459719097E+00
+ 94         43         0.2617437231E+00
+ 94        -43         0.9894223958E+00
+ 94         44        -0.2453727228E+00
+ 94        -44         0.6030265651E-01
+ 94         45        -0.1737721891E+00
+ 94        -45         0.5913616438E+00
+ 94         46        -0.1177573743E+00
+ 94        -46         0.9884757429E+00
+ 94         47         0.5096699518E+00
+ 94        -47         0.9318083347E+00
+ 94         48         0.2688823473E+00
+ 94        -48        -0.5265540144E+00
+ 94         49         0.3942600815E+00
+ 94        -49        -0.4643732712E+00
+ 94         50        -0.4901336349E+00
+ 94        -50        -0.1926958172E+00
+ 94         51        -0.5534496326E+00
+ 94        -51         0.8416061769E+00
+ 94         52        -0.3642945046E+00
+ 94        -52         0.1128254337E+01
+ 94         53         0.2660852313E+00
+ 94        -53         0.1075721874E+01
+ 94         54        -0.2897191491E+00
+ 94        -54         0.5789324668E+00
+ 94         55        -0.1089492428E+01
+ 94        -55        -0.6371953573E-01
+ 94         56        -0.1473026956E+01
+ 94        -56        -0.2478339189E+00
+ 94         57        -0.3326777016E+00
+ 94        -57         0.2036300652E+00
+ 94         58        -0.2604594151E+00
+ 94        -58         0.4950814889E-01
+ 94         59        -0.2944740398E+00
+ 94        -59        -0.4750643502E-01
+ 94         60         0.4417136669E+00
+ 94        -60        -0.2040792218E+00
+ 94         61         0.7076656063E+00
+ 94        -61        -0.1827649979E+00
+ 94         62         0.5910728117E+00
+ 94        -62        -0.5784584132E+00
+ 94         63        -0.1685621430E+00
+ 94        -63         0.1094404868E+00
+ 94         64         0.8152296068E-01
+ 94        -64         0.1974701282E+00
+ 94         65        -0.2478012447E+00
+ 94        -65         0.3734617203E+00
+ 94         66         0.1223306224E+00
+ 94        -66         0.2265550058E-01
+ 94         67         0.1983638820E-01
+ 94        -67        -0.2269453912E+00
+ 94         68         0.7712668247E-01
+ 94        -68         0.1957346282E+00
+ 94         69        -0.5308791502E+00
+ 94        -69         0.1860958567E+00
+ 94         70        -0.3145568470E+00
+ 94        -70         0.2234386418E+00
+ 94         71         0.9008101513E-01
+ 94        -71        -0.3189180733E-01
+ 94         72         0.1528488601E+00
+ 94        -72         0.3007543351E+00
+ 94         73         0.7356617004E-02
+ 94        -73         0.4676115119E+00
+ 94         74         0.8777395494E-01
+ 94        -74         0.4767972056E-01
+ 94         75         0.1917858832E+00
+ 94        -75        -0.2981909754E+00
+ 94         76        -0.2685194806E+00
+ 94        -76         0.3265715889E+00
+ 94         77        -0.7087030890E+00
+ 94        -77        -0.3102786422E-01
+ 94         78        -0.4751854206E+00
+ 94        -78        -0.1730665131E+00
+ 94         79        -0.3877621125E+00
+ 94        -79         0.3425080503E+00
+ 94         80        -0.2425614641E+00
+ 94        -80         0.1976295588E+00
+ 94         81         0.2198808131E+00
+ 94        -81        -0.1045594789E+00
+ 94         82         0.3123395336E+00
+ 94        -82        -0.2953707181E+00
+ 94         83         0.4916945547E+00
+ 94        -83        -0.2604106169E+00
+ 94         84         0.4285423057E-01
+ 94        -84         0.9032037738E-01
+ 94         85        -0.3235653351E+00
+ 94        -85        -0.3426572417E+00
+ 94         86        -0.1628959233E+00
+ 94        -86        -0.7302911779E+00
+ 94         87         0.2810495982E+00
+ 94        -87        -0.6321343806E+00
+ 94         88         0.8410319326E-01
+ 94        -88        -0.3637895268E+00
+ 94         89        -0.1850665931E+00
+ 94        -89         0.2716416648E-01
+ 94         90         0.1031612486E+00
+ 94        -90        -0.9784272474E-01
+ 94         91         0.7869228252E-01
+ 94        -91        -0.4012820428E-01
+ 94         92         0.3565378206E+00
+ 94        -92        -0.3093651486E-02
+ 94         93         0.4834624371E+00
+ 94        -93        -0.1149536286E+00
+ 94         94         0.4129584871E+00
+ 94        -94         0.2008072820E+00
+ 95          0        -0.7216668250E+00
+ 95          1        -0.3155714548E-01
+ 95         -1        -0.4137467184E+00
+ 95          2         0.7657552960E+00
+ 95         -2         0.4725494328E+00
+ 95          3         0.2170020566E+00
+ 95         -3         0.1274426523E+01
+ 95          4        -0.1073078914E+01
+ 95         -4        -0.3360653841E+00
+ 95          5        -0.6204810752E+00
+ 95         -5        -0.1691246925E+01
+ 95          6         0.6111669035E+00
+ 95         -6        -0.1585703228E+00
+ 95          7         0.5345969860E+00
+ 95         -7         0.9740816647E+00
+ 95          8         0.6089853727E-01
+ 95         -8         0.4457864996E+00
+ 95          9        -0.2933995468E+00
+ 95         -9        -0.4595616022E+00
+ 95         10        -0.7567074254E+00
+ 95        -10         0.2587109918E-01
+ 95         11         0.2600037722E+00
+ 95        -11         0.2154164973E+00
+ 95         12         0.1687461585E+01
+ 95        -12        -0.2012341589E+00
+ 95         13        -0.1127524188E+00
+ 95        -13        -0.4859867262E+00
+ 95         14        -0.2115407506E+01
+ 95        -14         0.3397376955E+00
+ 95         15        -0.1486687970E+00
+ 95        -15         0.1420685603E+01
+ 95         16         0.1980644019E+01
+ 95        -16         0.7560298893E-01
+ 95         17         0.7164320201E+00
+ 95        -17        -0.1516264911E+01
+ 95         18        -0.1708347617E+01
+ 95        -18        -0.4757266596E+00
+ 95         19        -0.1352642387E+01
+ 95        -19         0.7683119851E+00
+ 95         20         0.6533579971E+00
+ 95        -20         0.1669805014E+00
+ 95         21         0.8783267117E+00
+ 95        -21         0.2260103972E+00
+ 95         22        -0.3143684882E+00
+ 95        -22         0.7346754470E+00
+ 95         23        -0.4677985512E+00
+ 95        -23        -0.2888743104E+00
+ 95         24         0.9194397416E+00
+ 95        -24        -0.1007651630E+01
+ 95         25         0.2732712938E+00
+ 95        -25        -0.3362625503E+00
+ 95         26        -0.1208134694E+01
+ 95        -26         0.3854426456E+00
+ 95         27        -0.1074971073E+01
+ 95        -27        -0.5957889053E+00
+ 95         28         0.8065664545E+00
+ 95        -28        -0.3198076328E+00
+ 95         29         0.1549346821E+01
+ 95        -29         0.5507192483E+00
+ 95         30         0.2170900790E+00
+ 95        -30         0.7979961837E+00
+ 95         31        -0.5831701283E+00
+ 95        -31        -0.2469622895E+00
+ 95         32        -0.2393739191E+00
+ 95        -32        -0.2565501760E+00
+ 95         33        -0.1230632996E+00
+ 95        -33         0.4324385370E-01
+ 95         34        -0.3134894533E+00
+ 95        -34         0.2467742085E+00
+ 95         35         0.7078196603E+00
+ 95        -35         0.5101927871E+00
+ 95         36         0.6219531660E+00
+ 95        -36         0.3284252991E+00
+ 95         37        -0.2982413460E-01
+ 95        -37        -0.4683228676E+00
+ 95         38        -0.7537730266E+00
+ 95        -38        -0.2275389342E+00
+ 95         39        -0.5714268757E+00
+ 95        -39         0.9771932328E-01
+ 95         40         0.1516965973E+00
+ 95        -40         0.3426383779E+00
+ 95         41         0.7484949999E+00
+ 95        -41         0.1002826818E+00
+ 95         42         0.4848950485E+00
+ 95        -42        -0.4572898190E+00
+ 95         43         0.9452337371E-01
+ 95        -43        -0.9152523597E+00
+ 95         44        -0.3016304920E+00
+ 95        -44        -0.7078438604E-01
+ 95         45         0.1883345948E+00
+ 95        -45        -0.1663019015E+00
+ 95         46         0.4142852476E+00
+ 95        -46        -0.6572997978E+00
+ 95         47        -0.6840117125E-01
+ 95        -47        -0.1047006121E+01
+ 95         48        -0.7230511395E+00
+ 95        -48        -0.1755476165E+00
+ 95         49        -0.2310701956E+00
+ 95        -49         0.4009123472E+00
+ 95         50        -0.7192613047E-01
+ 95        -50         0.4194039121E+00
+ 95         51         0.3234516835E+00
+ 95        -51        -0.8149313640E+00
+ 95         52         0.6348018567E+00
+ 95        -52        -0.6300031561E+00
+ 95         53         0.4643487441E+00
+ 95        -53        -0.5900534278E+00
+ 95         54         0.9941101005E-01
+ 95        -54        -0.1058121007E+01
+ 95         55         0.6839146140E+00
+ 95        -55        -0.9366627188E+00
+ 95         56         0.7541219312E+00
+ 95        -56        -0.2421680174E+00
+ 95         57         0.4410096285E+00
+ 95        -57        -0.2472982015E+00
+ 95         58         0.2827247010E+00
+ 95        -58        -0.1898431919E+00
+ 95         59         0.8051220916E+00
+ 95        -59        -0.7278461605E-01
+ 95         60         0.3800139891E+00
+ 95        -60         0.2100173769E+00
+ 95         61        -0.1805285842E+00
+ 95        -61         0.3516255209E+00
+ 95         62        -0.8792212634E+00
+ 95        -62         0.4450854348E-01
+ 95         63        -0.5440341486E+00
+ 95        -63        -0.4082318061E-01
+ 95         64        -0.2070526498E+00
+ 95        -64        -0.2625572267E+00
+ 95         65        -0.1164056685E+00
+ 95        -65        -0.3973106602E+00
+ 95         66         0.2952980194E+00
+ 95        -66        -0.1886219103E+00
+ 95         67        -0.9199779057E-01
+ 95        -67        -0.5444167187E-01
+ 95         68        -0.8368399634E-01
+ 95        -68        -0.4262078564E+00
+ 95         69         0.2263230545E+00
+ 95        -69        -0.7863945969E+00
+ 95         70         0.2422249147E+00
+ 95        -70        -0.3528087111E+00
+ 95         71        -0.1964943382E-01
+ 95        -71         0.3716548326E+00
+ 95         72         0.1810757132E+00
+ 95        -72        -0.1198393699E-01
+ 95         73         0.3018316220E-01
+ 95        -73        -0.6169120915E+00
+ 95         74         0.1383426076E+00
+ 95        -74        -0.2784294005E+00
+ 95         75        -0.2895813450E+00
+ 95        -75         0.1302903760E+00
+ 95         76         0.1980708984E+00
+ 95        -76         0.1380773508E+00
+ 95         77         0.4573121195E+00
+ 95        -77         0.2135883597E+00
+ 95         78         0.5686693303E+00
+ 95        -78        -0.2197630062E-01
+ 95         79         0.8623841100E+00
+ 95        -79        -0.2561196269E+00
+ 95         80         0.6770944938E+00
+ 95        -80        -0.1107603718E+00
+ 95         81         0.1708641746E-02
+ 95        -81        -0.3268770709E+00
+ 95         82        -0.3633402783E+00
+ 95        -82        -0.1570306704E+00
+ 95         83        -0.4587670038E+00
+ 95        -83         0.4439430112E-01
+ 95         84        -0.3052196489E+00
+ 95        -84        -0.1422811600E+00
+ 95         85        -0.3850394022E-01
+ 95        -85         0.3287435883E+00
+ 95         86        -0.1706556046E+00
+ 95        -86         0.7560156549E+00
+ 95         87        -0.1140889216E+00
+ 95        -87         0.7142105798E+00
+ 95         88        -0.1091770334E+00
+ 95        -88         0.5169505989E+00
+ 95         89        -0.2143637657E+00
+ 95        -89         0.1229032732E+00
+ 95         90        -0.6874655028E-01
+ 95        -90        -0.9125753625E-01
+ 95         91         0.3266948382E+00
+ 95        -91        -0.1168149554E+00
+ 95         92         0.8803108912E-01
+ 95        -92        -0.2622708981E+00
+ 95         93         0.3274491724E-02
+ 95        -93        -0.1779951107E+00
+ 95         94         0.4899425924E+00
+ 95        -94        -0.5933201294E-01
+ 95         95         0.4396860717E+00
+ 95        -95         0.2846981538E+00
+ 96          0         0.1894029278E+00
+ 96          1         0.8314133858E-01
+ 96         -1         0.3311526441E+00
+ 96          2        -0.5111307659E+00
+ 96         -2         0.4124596345E+00
+ 96          3        -0.5412688893E+00
+ 96         -3        -0.1288387352E+01
+ 96          4         0.6881817162E+00
+ 96         -4        -0.7873073596E+00
+ 96          5         0.8189757960E+00
+ 96         -5         0.9113113616E+00
+ 96          6        -0.1227391896E+00
+ 96         -6         0.1006439696E+01
+ 96          7        -0.7907958507E+00
+ 96         -7        -0.2421428466E+00
+ 96          8        -0.2370954743E+00
+ 96         -8        -0.8014318345E+00
+ 96          9         0.2521699180E+00
+ 96         -9         0.3554004205E+00
+ 96         10         0.7580436166E+00
+ 96        -10         0.2260774366E+00
+ 96         11         0.4456372284E+00
+ 96        -11        -0.1646655962E+00
+ 96         12        -0.1118493804E+01
+ 96        -12         0.7162779316E-01
+ 96         13        -0.1224892164E+01
+ 96        -13         0.5796184308E+00
+ 96         14         0.1457015389E+01
+ 96        -14         0.3380027768E+00
+ 96         15         0.1095317887E+01
+ 96        -15        -0.9634026219E+00
+ 96         16        -0.1436703501E+01
+ 96        -16        -0.7199178194E+00
+ 96         17        -0.1365612376E+01
+ 96        -17         0.1067182205E+01
+ 96         18         0.8682541602E+00
+ 96        -18         0.1355914689E+01
+ 96         19         0.1730491213E+01
+ 96        -19        -0.6582762677E+00
+ 96         20         0.2489381974E+00
+ 96        -20        -0.7137650245E+00
+ 96         21        -0.9326599330E+00
+ 96        -21        -0.1844553616E+00
+ 96         22        -0.1431510176E+00
+ 96        -22        -0.7856304968E+00
+ 96         23         0.5040393347E+00
+ 96        -23        -0.5476872764E+00
+ 96         24        -0.5448564990E+00
+ 96        -24         0.7589996949E+00
+ 96         25        -0.7284525361E+00
+ 96        -25         0.9796047213E+00
+ 96         26         0.9138504947E+00
+ 96        -26        -0.5957688665E-01
+ 96         27         0.1566376985E+01
+ 96        -27         0.1422419523E+00
+ 96         28         0.1708449547E+00
+ 96        -28         0.3854931431E+00
+ 96         29        -0.1579841108E+01
+ 96        -29        -0.2019963635E+00
+ 96         30        -0.1045192099E+01
+ 96        -30        -0.4370593147E+00
+ 96         31         0.3854459029E+00
+ 96        -31         0.2651933043E+00
+ 96         32         0.4455397739E+00
+ 96        -32         0.5748281932E+00
+ 96         33         0.1451852181E+00
+ 96        -33        -0.1455976599E+00
+ 96         34         0.4993256053E+00
+ 96        -34        -0.4589620868E+00
+ 96         35        -0.2291381095E+00
+ 96        -35        -0.5023045943E+00
+ 96         36        -0.9670794633E+00
+ 96        -36        -0.6395336065E+00
+ 96         37        -0.5291184621E+00
+ 96        -37        -0.1590757827E-01
+ 96         38         0.4748263170E+00
+ 96        -38         0.6231065876E+00
+ 96         39         0.6944596256E+00
+ 96        -39         0.3565740722E-01
+ 96         40         0.4391498001E+00
+ 96        -40        -0.2768309436E+00
+ 96         41        -0.5713632313E+00
+ 96        -41        -0.6296296806E-01
+ 96         42        -0.7074082060E+00
+ 96        -42         0.1831335968E+00
+ 96         43        -0.2660604750E+00
+ 96        -43         0.6869580928E+00
+ 96         44         0.3294380066E+00
+ 96        -44         0.6776317403E+00
+ 96         45        -0.1038276675E+00
+ 96        -45         0.3498779617E-01
+ 96         46        -0.5390971326E-01
+ 96        -46         0.3687640335E+00
+ 96         47        -0.5111735601E+00
+ 96        -47         0.7088620484E+00
+ 96         48         0.1649795968E+00
+ 96        -48         0.9351424318E+00
+ 96         49         0.3390912635E+00
+ 96        -49        -0.2534168422E-01
+ 96         50         0.5588097310E+00
+ 96        -50        -0.1534362056E+00
+ 96         51        -0.2190485015E+00
+ 96        -51         0.9102123703E-01
+ 96         52        -0.5674637440E+00
+ 96        -52         0.6142043346E+00
+ 96         53        -0.7001926705E+00
+ 96        -53         0.6994715983E+00
+ 96         54        -0.2968815439E+00
+ 96        -54         0.1014909348E+01
+ 96         55        -0.5712039808E+00
+ 96        -55         0.1057075090E+01
+ 96         56        -0.3455463496E+00
+ 96        -56         0.7258293251E+00
+ 96         57        -0.8285313005E+00
+ 96        -57         0.8244793934E-01
+ 96         58        -0.1049673061E+00
+ 96        -58         0.5075624593E-01
+ 96         59        -0.5074332061E+00
+ 96        -59        -0.7547675773E-01
+ 96         60        -0.6391357747E+00
+ 96        -60        -0.2675067338E+00
+ 96         61        -0.2945415243E+00
+ 96        -61        -0.2724570875E+00
+ 96         62         0.6222868293E+00
+ 96        -62         0.1270545552E+00
+ 96         63         0.7751249945E+00
+ 96        -63        -0.3077787021E-01
+ 96         64         0.5693172531E+00
+ 96        -64        -0.1427314596E-01
+ 96         65        -0.1815183350E+00
+ 96        -65         0.1136596882E+00
+ 96         66        -0.3857516556E+00
+ 96        -66         0.3516990828E+00
+ 96         67        -0.2062713462E+00
+ 96        -67         0.3354593873E+00
+ 96         68         0.2826350243E+00
+ 96        -68         0.6042527672E+00
+ 96         69         0.2194538174E+00
+ 96        -69         0.5996112684E+00
+ 96         70         0.1404362558E+00
+ 96        -70         0.4223504481E-02
+ 96         71         0.2423634259E+00
+ 96        -71        -0.2515236133E+00
+ 96         72         0.5413183816E+00
+ 96        -72        -0.2557667844E+00
+ 96         73         0.1178382082E+00
+ 96        -73         0.2323655109E+00
+ 96         74        -0.2242310003E+00
+ 96        -74         0.4472151161E+00
+ 96         75         0.5183190658E-01
+ 96        -75         0.3022262399E+00
+ 96         76         0.2205980577E+00
+ 96        -76        -0.8804088000E-01
+ 96         77         0.6210576162E-01
+ 96        -77         0.7398175046E-01
+ 96         78        -0.2528493152E+00
+ 96        -78        -0.6380826695E-01
+ 96         79        -0.4030474149E+00
+ 96        -79        -0.2849337456E+00
+ 96         80        -0.4648208790E+00
+ 96        -80        -0.3549246067E+00
+ 96         81        -0.5574854235E+00
+ 96        -81        -0.6877068699E-01
+ 96         82        -0.2095249685E+00
+ 96        -82        -0.7793349436E-02
+ 96         83         0.3145795334E+00
+ 96        -83         0.3165355678E-01
+ 96         84         0.4249871566E+00
+ 96        -84        -0.3283168492E-01
+ 96         85         0.2832686588E+00
+ 96        -85         0.1679308058E+00
+ 96         86        -0.6610033050E-01
+ 96        -86        -0.3786302742E+00
+ 96         87         0.4992762796E-01
+ 96        -87        -0.7496588392E+00
+ 96         88         0.4045776729E+00
+ 96        -88        -0.6820098996E+00
+ 96         89         0.1722706138E+00
+ 96        -89        -0.2812784065E+00
+ 96         90        -0.1445697882E+00
+ 96        -90        -0.1849583672E+00
+ 96         91        -0.3291959531E+00
+ 96        -91        -0.1550240042E-01
+ 96         92        -0.3717604632E+00
+ 96        -92         0.1899973154E+00
+ 96         93        -0.3528434673E+00
+ 96        -93        -0.7570432607E-01
+ 96         94        -0.2247150160E+00
+ 96        -94        -0.2209666441E+00
+ 96         95         0.2206883438E+00
+ 96        -95        -0.1511090417E+00
+ 96         96         0.4054282522E-01
+ 96        -96         0.1179445254E+00
+ 97          0         0.1803923007E-01
+ 97          1        -0.4084749630E+00
+ 97         -1        -0.1996771134E+00
+ 97          2         0.4071110208E+00
+ 97         -2        -0.7707933184E+00
+ 97          3         0.6549105201E+00
+ 97         -3         0.4804815244E+00
+ 97          4        -0.2890838005E-01
+ 97         -4         0.1332246893E+01
+ 97          5        -0.6519265440E+00
+ 97         -5         0.3868171325E+00
+ 97          6        -0.2116874836E+00
+ 97         -6        -0.1429067490E+01
+ 97          7         0.6533319118E+00
+ 97         -7        -0.8024387584E+00
+ 97          8         0.1792691201E+00
+ 97         -8         0.6133914756E+00
+ 97          9        -0.1786863455E+00
+ 97         -9         0.3464838106E+00
+ 97         10        -0.5423828664E+00
+ 97        -10        -0.4447567701E-01
+ 97         11        -0.7672816844E+00
+ 97        -11         0.1676036015E+00
+ 97         12         0.4959668243E+00
+ 97        -12         0.7926927687E-01
+ 97         13         0.1549234919E+01
+ 97        -13        -0.6533410357E+00
+ 97         14        -0.7150533059E+00
+ 97        -14        -0.9719819590E+00
+ 97         15        -0.1641409976E+01
+ 97        -15         0.1555313714E+00
+ 97         16         0.4747134350E+00
+ 97        -16         0.1203299591E+01
+ 97         17         0.1504851656E+01
+ 97        -17        -0.1010531671E+00
+ 97         18         0.5043853486E-01
+ 97        -18        -0.1567264550E+01
+ 97         19        -0.1509605765E+01
+ 97        -19        -0.1394103656E+00
+ 97         20        -0.6133418867E+00
+ 97        -20         0.6528220614E+00
+ 97         21         0.7008991499E+00
+ 97        -21         0.1537555095E+00
+ 97         22         0.2798765731E+00
+ 97        -22         0.3207352703E+00
+ 97         23        -0.4896718491E+00
+ 97        -23         0.9112191081E+00
+ 97         24        -0.1494831669E+00
+ 97        -24        -0.1479095913E+00
+ 97         25         0.9708555971E+00
+ 97        -25        -0.1029582227E+01
+ 97         26         0.8088131506E-01
+ 97        -26        -0.2772623145E+00
+ 97         27        -0.1426668783E+01
+ 97        -27         0.4219375518E+00
+ 97         28        -0.1160212225E+01
+ 97        -28        -0.2884835199E+00
+ 97         29         0.5915139663E+00
+ 97        -29        -0.8591275513E-01
+ 97         30         0.1309100219E+01
+ 97        -30         0.3014801967E+00
+ 97         31         0.1530116238E+00
+ 97        -31         0.8193093100E-01
+ 97         32        -0.4349461527E+00
+ 97        -32        -0.5964136946E+00
+ 97         33        -0.1865155629E+00
+ 97        -33        -0.1045064226E+00
+ 97         34        -0.2219945673E+00
+ 97        -34         0.3731015484E+00
+ 97         35        -0.2761806944E+00
+ 97        -35         0.1931613480E+00
+ 97         36         0.5641840343E+00
+ 97        -36         0.2692154471E+00
+ 97         37         0.8296581268E+00
+ 97        -37         0.4438950178E+00
+ 97         38         0.8253028396E-01
+ 97        -38        -0.2259927787E+00
+ 97         39        -0.6247392100E+00
+ 97        -39        -0.1068321573E+00
+ 97         40        -0.6762995876E+00
+ 97        -40        -0.1863109278E+00
+ 97         41         0.3520998948E-01
+ 97        -41         0.9404029394E-01
+ 97         42         0.5120713055E+00
+ 97        -42         0.1233797640E-01
+ 97         43         0.4124128489E+00
+ 97        -43        -0.4506040224E+00
+ 97         44         0.1196345703E+00
+ 97        -44        -0.8718763936E+00
+ 97         45        -0.1831688308E+00
+ 97        -45         0.7048347018E-01
+ 97         46        -0.9790403251E-01
+ 97        -46        -0.2689045631E+00
+ 97         47         0.3897849220E+00
+ 97        -47        -0.3362022911E+00
+ 97         48         0.2563261292E+00
+ 97        -48        -0.8847990925E+00
+ 97         49        -0.2326590050E+00
+ 97        -49        -0.2386940496E+00
+ 97         50        -0.1801915222E+00
+ 97        -50        -0.2428013011E-01
+ 97         51         0.1756056254E+00
+ 97        -51         0.1204682743E+00
+ 97         52         0.1704482357E+00
+ 97        -52        -0.8472661214E+00
+ 97         53         0.3759854177E+00
+ 97        -53        -0.6961498128E+00
+ 97         54         0.4847619515E+00
+ 97        -54        -0.4163242724E+00
+ 97         55         0.5180522128E+00
+ 97        -55        -0.6195592994E+00
+ 97         56         0.4574484517E+00
+ 97        -56        -0.1014523026E+01
+ 97         57         0.7810577140E+00
+ 97        -57        -0.4346090797E+00
+ 97         58         0.2845840711E+00
+ 97        -58        -0.3477532501E+00
+ 97         59         0.3225684250E+00
+ 97        -59        -0.9650018338E-01
+ 97         60         0.4115352563E+00
+ 97        -60        -0.3184163119E-01
+ 97         61         0.3750207899E+00
+ 97        -61         0.4303658733E+00
+ 97         62         0.1985634727E+00
+ 97        -62         0.3791777740E+00
+ 97         63        -0.2979648777E+00
+ 97        -63         0.1033630338E+00
+ 97         64        -0.7957561776E-01
+ 97        -64        -0.9617077357E-01
+ 97         65        -0.2273620444E+00
+ 97        -65        -0.9220709053E-01
+ 97         66         0.4946296627E-01
+ 97        -66        -0.3105145533E+00
+ 97         67        -0.2459339203E+00
+ 97        -67        -0.5680574279E+00
+ 97         68        -0.4361878423E+00
+ 97        -68        -0.5255439781E+00
+ 97         69        -0.5687427026E+00
+ 97        -69        -0.4290034370E+00
+ 97         70         0.1198058618E+00
+ 97        -70        -0.2063942781E+00
+ 97         71         0.9372233133E-01
+ 97        -71         0.7213326657E-01
+ 97         72        -0.2171338498E+00
+ 97        -72         0.2765431532E+00
+ 97         73         0.2361718838E+00
+ 97        -73        -0.1522151314E+00
+ 97         74         0.4908740022E+00
+ 97        -74        -0.4183775046E+00
+ 97         75         0.7769155767E-02
+ 97        -75        -0.4736005023E+00
+ 97         76        -0.6784502340E+00
+ 97        -76        -0.1087922978E+00
+ 97         77        -0.4230388069E+00
+ 97        -77         0.1843697026E-01
+ 97         78        -0.5280084162E-01
+ 97        -78         0.1774888032E+00
+ 97         79         0.3412746762E+00
+ 97        -79         0.7505504548E-01
+ 97         80         0.7496723653E+00
+ 97        -80         0.8212071832E-01
+ 97         81         0.6627707532E+00
+ 97        -81         0.2361074388E+00
+ 97         82         0.4789531056E+00
+ 97        -82        -0.2942994231E+00
+ 97         83         0.2989168728E-01
+ 97        -83        -0.4433772693E+00
+ 97         84        -0.4305475188E+00
+ 97        -84        -0.1909806324E+00
+ 97         85        -0.4424083642E+00
+ 97        -85        -0.2133918708E+00
+ 97         86        -0.1019302799E+00
+ 97        -86         0.3706842339E-01
+ 97         87        -0.1976890774E+00
+ 97        -87         0.5790615448E+00
+ 97         88        -0.3309216652E+00
+ 97        -88         0.7932526294E+00
+ 97         89         0.9932883595E-01
+ 97        -89         0.5943806432E+00
+ 97         90        -0.1397918653E+00
+ 97        -90         0.3423761433E+00
+ 97         91        -0.4618220440E-01
+ 97        -91        -0.7084446310E-01
+ 97         92         0.1577232189E+00
+ 97        -92        -0.4256356511E+00
+ 97         93        -0.1726220095E-02
+ 97        -93        -0.7375309569E-01
+ 97         94        -0.3375860164E-01
+ 97        -94        -0.8501965473E-01
+ 97         95         0.1042408284E+00
+ 97        -95         0.1437303741E+00
+ 97         96         0.2320669001E+00
+ 97        -96         0.2275168351E+00
+ 97         97        -0.1813652582E+00
+ 97        -97         0.2662629735E+00
+ 98          0         0.1261928248E+00
+ 98          1         0.3306790734E+00
+ 98         -1        -0.1507158980E-01
+ 98          2        -0.2026566826E+00
+ 98         -2         0.4139124099E+00
+ 98          3        -0.4741371565E+00
+ 98         -3         0.5906247068E+00
+ 98          4        -0.6054319713E+00
+ 98         -4        -0.7039454092E+00
+ 98          5         0.4296495306E+00
+ 98         -5        -0.9776978814E+00
+ 98          6         0.4084870086E+00
+ 98         -6         0.7815798110E+00
+ 98          7        -0.1080609675E+00
+ 98         -7         0.1233483594E+01
+ 98          8        -0.7179709135E-01
+ 98         -8         0.1149711529E-01
+ 98          9        -0.1635822115E+00
+ 98         -9        -0.8632142945E+00
+ 98         10        -0.1178030965E+00
+ 98        -10        -0.2421403579E+00
+ 98         11         0.6916881368E+00
+ 98        -11        -0.1509276460E+00
+ 98         12         0.5445868236E+00
+ 98        -12        -0.1321542414E+00
+ 98         13        -0.9120665804E+00
+ 98        -13         0.4109315335E+00
+ 98         14        -0.2958315731E+00
+ 98        -14         0.9617191398E+00
+ 98         15         0.1387424630E+01
+ 98        -15         0.3117220611E+00
+ 98         16         0.3096521103E+00
+ 98        -16        -0.1236822466E+01
+ 98         17        -0.1374735185E+01
+ 98        -17        -0.6773284490E+00
+ 98         18        -0.6322640517E+00
+ 98        -18         0.1261227733E+01
+ 98         19         0.1040406511E+01
+ 98        -19         0.1247688638E+01
+ 98         20         0.9988997536E+00
+ 98        -20        -0.4847016282E+00
+ 98         21        -0.7194079949E-01
+ 98        -21        -0.3692104681E+00
+ 98         22        -0.2084828089E+00
+ 98        -22         0.2354653131E+00
+ 98         23         0.4400242725E+00
+ 98        -23        -0.6928091274E+00
+ 98         24         0.4092269114E+00
+ 98        -24        -0.6452752845E+00
+ 98         25        -0.9341048895E+00
+ 98        -25         0.3612208531E+00
+ 98         26        -0.8961920687E+00
+ 98        -26         0.7914732466E+00
+ 98         27         0.7480240048E+00
+ 98        -27        -0.2046434445E+00
+ 98         28         0.1440309993E+01
+ 98        -28        -0.1097154575E+00
+ 98         29         0.5183335905E+00
+ 98        -29        -0.1423303923E+00
+ 98         30        -0.9886918232E+00
+ 98        -30        -0.3396602900E+00
+ 98         31        -0.7580818967E+00
+ 98        -31        -0.3126128497E+00
+ 98         32         0.9529043321E-01
+ 98        -32         0.4167474548E+00
+ 98         33         0.1184148954E+00
+ 98        -33         0.4808806710E+00
+ 98         34         0.4506632992E-01
+ 98        -34        -0.1445372034E+00
+ 98         35         0.6695814172E+00
+ 98        -35        -0.3202688731E+00
+ 98         36         0.1738725776E+00
+ 98        -36        -0.3028698147E-01
+ 98         37        -0.5776254207E+00
+ 98        -37        -0.4397085191E+00
+ 98         38        -0.5894212477E+00
+ 98        -38        -0.3954665294E+00
+ 98         39         0.3326555594E+00
+ 98        -39         0.1006116710E+00
+ 98         40         0.4366990345E+00
+ 98        -40         0.4183206295E+00
+ 98         41         0.3283894433E+00
+ 98        -41         0.1568786478E+00
+ 98         42        -0.2851636877E+00
+ 98        -42         0.3146126303E+00
+ 98         43        -0.4309997906E+00
+ 98        -43         0.4697813171E+00
+ 98         44        -0.3720601943E+00
+ 98        -44         0.6544797595E+00
+ 98         45         0.1361868522E+00
+ 98        -45         0.3381323857E+00
+ 98         46         0.6286860870E-01
+ 98        -46         0.9692479754E-01
+ 98         47         0.1600767975E+00
+ 98        -47         0.1882228806E+00
+ 98         48        -0.5272471309E+00
+ 98        -48         0.4733718057E+00
+ 98         49        -0.3079226672E+00
+ 98        -49         0.4327458278E+00
+ 98         50         0.9436368444E-02
+ 98        -50         0.2845905104E+00
+ 98         51         0.1351221383E+00
+ 98        -51         0.1168375064E+00
+ 98         52        -0.1616784552E+00
+ 98        -52         0.5091169133E+00
+ 98         53        -0.3137042945E+00
+ 98        -53         0.6519411263E+00
+ 98         54        -0.3782396536E+00
+ 98        -54         0.5822481253E+00
+ 98         55        -0.4507699479E+00
+ 98        -55         0.3354802800E+00
+ 98         56        -0.9664234497E+00
+ 98        -56         0.6052082812E+00
+ 98         57        -0.8060163620E+00
+ 98        -57         0.6861160128E+00
+ 98         58        -0.5730251217E+00
+ 98        -58         0.4764579033E+00
+ 98         59        -0.8405691927E-01
+ 98        -59         0.9106893070E-01
+ 98         60        -0.1773590884E-02
+ 98        -60        -0.5023810930E-01
+ 98         61        -0.1744494955E+00
+ 98        -61        -0.3537454468E+00
+ 98         62        -0.3616625421E+00
+ 98        -62        -0.5176854930E+00
+ 98         63        -0.2948081308E+00
+ 98        -63         0.1867661562E+00
+ 98         64         0.3908593905E-02
+ 98        -64         0.2671266049E+00
+ 98         65         0.4012159954E+00
+ 98        -65         0.7325190446E-01
+ 98         66         0.4208022989E+00
+ 98        -66        -0.1679951147E+00
+ 98         67        -0.3363476540E-01
+ 98        -67        -0.1590337256E+00
+ 98         68         0.1049067334E+00
+ 98        -68         0.5647297827E-01
+ 98         69         0.1117235755E+00
+ 98        -69         0.4518207019E+00
+ 98         70        -0.9839317403E-01
+ 98        -70         0.7023034585E+00
+ 98         71         0.7237439588E-01
+ 98        -71         0.3169775377E+00
+ 98         72         0.4769980428E+00
+ 98        -72         0.1602677953E+00
+ 98         73         0.3449689251E+00
+ 98        -73         0.2024952202E+00
+ 98         74         0.9425890149E-01
+ 98        -74         0.7081783313E-01
+ 98         75        -0.2447591802E+00
+ 98        -75         0.2424366730E-01
+ 98         76         0.2170313532E+00
+ 98        -76         0.1385461257E+00
+ 98         77         0.2895689427E+00
+ 98        -77         0.5685419640E-01
+ 98         78         0.1553348903E+00
+ 98        -78         0.7808772810E-01
+ 98         79        -0.8140540223E-01
+ 98        -79        -0.2677751957E-01
+ 98         80        -0.2057852018E+00
+ 98        -80        -0.3569282732E+00
+ 98         81        -0.1228940887E+00
+ 98        -81        -0.4389391866E+00
+ 98         82        -0.4511603651E+00
+ 98        -82        -0.2986294323E+00
+ 98         83        -0.5034086995E+00
+ 98        -83        -0.2412113094E+00
+ 98         84        -0.1038108147E+00
+ 98        -84        -0.2555809761E-02
+ 98         85         0.4776821457E-01
+ 98        -85         0.2515171209E+00
+ 98         86         0.4914145248E-02
+ 98        -86         0.3964136433E-01
+ 98         87        -0.1356425943E+00
+ 98        -87        -0.1675012575E+00
+ 98         88        -0.1658466289E-01
+ 98        -88        -0.6780459237E+00
+ 98         89         0.2345243158E+00
+ 98        -89        -0.4378694473E+00
+ 98         90         0.2754682357E+00
+ 98        -90        -0.1690466302E-01
+ 98         91         0.6145429465E-02
+ 98        -91         0.1215657465E+00
+ 98         92        -0.1512346228E-01
+ 98        -92         0.1259492523E+00
+ 98         93        -0.1584280509E+00
+ 98        -93        -0.1277996318E+00
+ 98         94        -0.4587226440E+00
+ 98        -94         0.1735552658E-01
+ 98         95        -0.1541341923E+00
+ 98        -95        -0.8323919995E-01
+ 98         96        -0.7891065670E-01
+ 98        -96        -0.4184217983E-01
+ 98         97         0.1610653427E-01
+ 98        -97        -0.4933503615E-01
+ 98         98        -0.2470992306E+00
+ 98        -98         0.4701831878E-01
+ 99          0        -0.4435651954E-01
+ 99          1         0.6859206292E-01
+ 99         -1         0.2089938624E+00
+ 99          2        -0.3264277239E+00
+ 99         -2        -0.1135432987E+00
+ 99          3         0.1005359491E+00
+ 99         -3        -0.9910346606E+00
+ 99          4         0.5221593327E+00
+ 99         -4        -0.2462145003E+00
+ 99          5        -0.1072086321E+00
+ 99         -5         0.8127339919E+00
+ 99          6        -0.3182294539E+00
+ 99         -6         0.6535115830E+00
+ 99          7        -0.2287561783E+00
+ 99         -7        -0.9151812551E+00
+ 99          8         0.9537542670E-01
+ 99         -8        -0.7805132888E+00
+ 99          9         0.2142414530E+00
+ 99         -9         0.5638024734E+00
+ 99         10         0.7107448042E+00
+ 99        -10         0.3901232726E+00
+ 99         11        -0.2883394835E+00
+ 99        -11         0.2339300040E+00
+ 99         12        -0.1223730642E+01
+ 99        -12         0.3022888834E+00
+ 99         13         0.2193421088E-01
+ 99        -13         0.6997229139E-01
+ 99         14         0.1088256145E+01
+ 99        -14        -0.5387547699E+00
+ 99         15        -0.5099276432E+00
+ 99        -15        -0.5380481006E+00
+ 99         16        -0.6016293227E+00
+ 99        -16         0.7005339045E+00
+ 99         17         0.9342802025E+00
+ 99        -17         0.1042914383E+01
+ 99         18         0.7142681399E+00
+ 99        -18        -0.5758318703E+00
+ 99         19        -0.6315938626E+00
+ 99        -19        -0.1552308684E+01
+ 99         20        -0.1258868825E+01
+ 99        -20         0.1516628068E+00
+ 99         21        -0.1936480703E+00
+ 99        -21         0.5070240972E+00
+ 99         22         0.3101108913E+00
+ 99        -22        -0.3083621676E+00
+ 99         23        -0.2556543090E+00
+ 99        -23         0.8316222352E-01
+ 99         24        -0.4679865299E+00
+ 99        -24         0.8409016005E+00
+ 99         25         0.5181090247E+00
+ 99        -25         0.1337345807E+00
+ 99         26         0.1149940372E+01
+ 99        -26        -0.9877704485E+00
+ 99         27        -0.7958925906E-01
+ 99        -27        -0.3860792106E+00
+ 99         28        -0.1062814484E+01
+ 99        -28         0.4765039108E+00
+ 99         29        -0.1000141134E+01
+ 99        -29         0.5118370159E+00
+ 99         30         0.3837206223E+00
+ 99        -30         0.2769376403E+00
+ 99         31         0.1046526319E+01
+ 99        -31         0.2247582932E+00
+ 99         32         0.4264258908E+00
+ 99        -32        -0.2165776330E+00
+ 99         33         0.8480984431E-01
+ 99        -33        -0.5953869682E+00
+ 99         34         0.6470126567E-01
+ 99        -34        -0.4494979047E-01
+ 99         35        -0.4650227521E+00
+ 99        -35         0.5621449107E+00
+ 99         36        -0.5758358357E+00
+ 99        -36        -0.4121263014E-01
+ 99         37         0.1316165835E-01
+ 99        -37        -0.1283637445E+00
+ 99         38         0.5242988050E+00
+ 99        -38         0.5388727309E+00
+ 99         39         0.9679970245E-01
+ 99        -39         0.2763382231E+00
+ 99         40        -0.1161972890E+00
+ 99        -40         0.4612120475E-01
+ 99         41        -0.3596480383E+00
+ 99        -41        -0.4126618277E+00
+ 99         42        -0.5877491944E-01
+ 99        -42        -0.5789090374E+00
+ 99         43         0.1069474869E+00
+ 99        -43        -0.5261273203E+00
+ 99         44         0.3618810024E-01
+ 99        -44        -0.6842911405E+00
+ 99         45         0.3239095628E-01
+ 99        -45        -0.6600547400E+00
+ 99         46         0.1334283336E+00
+ 99        -46         0.1896884825E+00
+ 99         47        -0.2689083611E+00
+ 99        -47        -0.2257952350E+00
+ 99         48         0.1952629302E+00
+ 99        -48        -0.2222734277E+00
+ 99         49         0.2647266801E+00
+ 99        -49        -0.4031854689E+00
+ 99         50        -0.6914144496E-01
+ 99        -50        -0.6001407241E-01
+ 99         51         0.6291098758E-01
+ 99        -51        -0.7580363187E-01
+ 99         52         0.5574955841E+00
+ 99        -52         0.4914674475E-02
+ 99         53         0.3525975956E+00
+ 99        -53        -0.5534721656E+00
+ 99         54         0.2971005409E+00
+ 99        -54        -0.8120043800E+00
+ 99         55         0.5284871575E+00
+ 99        -55        -0.5015324966E+00
+ 99         56         0.9981777940E+00
+ 99        -56        -0.1791339804E+00
+ 99         57         0.6190381149E+00
+ 99        -57        -0.5892578675E+00
+ 99         58         0.7487258793E+00
+ 99        -58        -0.3479117489E+00
+ 99         59         0.2485627694E+00
+ 99        -59        -0.3081183377E+00
+ 99         60         0.2525046871E+00
+ 99        -60        -0.9258611512E-01
+ 99         61         0.1659046983E+00
+ 99        -61        -0.2331591347E+00
+ 99         62         0.1307366083E+00
+ 99        -62         0.1629124548E+00
+ 99         63         0.2466068837E+00
+ 99        -63         0.1946611834E+00
+ 99         64         0.1951184114E+00
+ 99        -64         0.1147828768E+00
+ 99         65        -0.1813745287E+00
+ 99        -65         0.2208030309E+00
+ 99         66        -0.2066479403E+00
+ 99        -66         0.3979947694E+00
+ 99         67        -0.1003083309E+00
+ 99        -67         0.2551575574E+00
+ 99         68         0.2731150520E+00
+ 99        -68         0.2812142944E-01
+ 99         69        -0.5767568299E-01
+ 99        -69        -0.5197950332E+00
+ 99         70        -0.2573101502E+00
+ 99        -70        -0.5324056222E+00
+ 99         71        -0.2745569501E+00
+ 99        -71        -0.2057771373E+00
+ 99         72        -0.1503624483E+00
+ 99        -72        -0.2206610772E-01
+ 99         73        -0.5025156877E+00
+ 99        -73         0.2052401762E+00
+ 99         74        -0.1509841226E+00
+ 99        -74         0.1102929679E+00
+ 99         75         0.1922743602E+00
+ 99        -75        -0.1062928201E+00
+ 99         76         0.8216073394E-01
+ 99        -76        -0.3960910795E+00
+ 99         77        -0.1480777614E+00
+ 99        -77        -0.4371608500E+00
+ 99         78        -0.3198925441E+00
+ 99        -78        -0.1807884915E+00
+ 99         79        -0.5558408706E-01
+ 99        -79        -0.4653285959E-02
+ 99         80         0.1275069739E+00
+ 99        -80         0.1220819392E+00
+ 99         81         0.1463697649E+00
+ 99        -81         0.1418092884E+00
+ 99         82         0.3058180205E+00
+ 99        -82         0.9832502970E-01
+ 99         83         0.4169546102E+00
+ 99        -83         0.1921190239E-01
+ 99         84         0.1442181005E+00
+ 99        -84        -0.2300320592E+00
+ 99         85        -0.6800336059E-01
+ 99        -85        -0.2614496695E+00
+ 99         86        -0.3489871872E+00
+ 99        -86        -0.3788389278E+00
+ 99         87         0.3327794126E-01
+ 99        -87        -0.9860517121E-01
+ 99         88         0.1435491866E+00
+ 99        -88         0.3514851184E+00
+ 99         89        -0.2402004321E+00
+ 99        -89         0.3095252271E+00
+ 99         90        -0.1831145910E+00
+ 99        -90         0.9082791583E-01
+ 99         91        -0.2034876165E-01
+ 99        -91         0.2382771234E+00
+ 99         92         0.6090971734E-01
+ 99        -92         0.1209274217E+00
+ 99         93         0.1440412325E+00
+ 99        -93        -0.6387126780E-01
+ 99         94         0.1994711050E+00
+ 99        -94        -0.1599126335E+00
+ 99         95        -0.1130974182E+00
+ 99        -95        -0.1888135685E+00
+ 99         96         0.1164287922E-01
+ 99        -96         0.3835063640E-01
+ 99         97        -0.1116690637E+00
+ 99        -97         0.1881429611E+00
+ 99         98        -0.3372131378E+00
+ 99        -98        -0.4439476310E-02
+ 99         99        -0.3738045117E+00
+ 99        -99        -0.1692519018E+00
+100          0        -0.7713095022E-02
+100          1        -0.3760094702E+00
+100         -1        -0.1564004033E+00
+100          2         0.3081120303E+00
+100         -2        -0.2879968831E-01
+100          3         0.3440231863E+00
+100         -3         0.2633738983E+00
+100          4         0.6882553479E-02
+100         -4         0.6756900884E+00
+100          5        -0.3234834072E+00
+100         -5        -0.2397325250E+00
+100          6         0.2777016955E-01
+100         -6        -0.1261538305E+01
+100          7        -0.7844102780E-01
+100         -7         0.2073322089E+00
+100          8         0.9256542341E-01
+100         -8         0.1145183349E+01
+100          9         0.3959364185E+00
+100         -9         0.4175783445E+00
+100         10        -0.7534168169E+00
+100        -10        -0.3711893268E+00
+100         11        -0.4987086915E+00
+100        -11        -0.3962177121E+00
+100         12         0.9155444951E+00
+100        -12        -0.4296124533E+00
+100         13         0.6339560997E+00
+100        -13        -0.3562151508E+00
+100         14        -0.9170432084E+00
+100        -14         0.2377674256E+00
+100         15        -0.3766831491E+00
+100        -15         0.8451731861E+00
+100         16         0.4692777753E+00
+100        -16        -0.1562675162E+00
+100         17        -0.3911855711E+00
+100        -17        -0.1211991264E+01
+100         18        -0.8522354097E+00
+100        -18        -0.1109813625E+00
+100         19         0.2143589399E+00
+100        -19         0.1268568110E+01
+100         20         0.1107054905E+01
+100        -20         0.5847923937E+00
+100         21         0.3372754462E+00
+100        -21        -0.5398226083E+00
+100         22        -0.3002264445E+00
+100        -22        -0.1083230934E+00
+100         23         0.4661737643E-01
+100        -23         0.5542779531E+00
+100         24         0.6455899854E+00
+100        -24        -0.3462883072E+00
+100         25         0.1466068465E+00
+100        -25        -0.4610503688E+00
+100         26        -0.8370367404E+00
+100        -26         0.3730525902E+00
+100         27        -0.5230956048E+00
+100        -27         0.8329322998E+00
+100         28         0.5916535813E+00
+100        -28        -0.1891296363E+00
+100         29         0.9085084496E+00
+100        -29        -0.5519935241E+00
+100         30         0.2067176356E+00
+100        -30        -0.3509881854E+00
+100         31        -0.6269515173E+00
+100        -31        -0.2040330217E-01
+100         32        -0.5586416671E+00
+100        -32         0.1892702792E+00
+100         33        -0.1957503165E+00
+100        -33         0.4023464068E+00
+100         34        -0.2656989119E+00
+100        -34         0.1653298425E+00
+100         35        -0.1673388873E+00
+100        -35        -0.4667043700E+00
+100         36         0.5497744782E+00
+100        -36        -0.1048674608E+00
+100         37         0.4356003812E+00
+100        -37         0.5281529607E+00
+100         38        -0.5789111554E-01
+100        -38        -0.7647586500E-01
+100         39        -0.3010490847E+00
+100        -39        -0.6884841750E+00
+100         40         0.6456618537E-01
+100        -40        -0.6539900280E+00
+100         41         0.5282254398E-01
+100        -41         0.1109969113E+00
+100         42         0.1593655933E+00
+100        -42         0.4218801007E+00
+100         43         0.1517856123E+00
+100        -43         0.7482763075E+00
+100         44         0.7459999594E-01
+100        -44         0.9245746579E+00
+100         45        -0.1317298921E+00
+100        -45         0.7714457112E+00
+100         46        -0.1849408027E+00
+100        -46        -0.3730959081E-01
+100         47        -0.8785406873E-01
+100        -47         0.1545874224E+00
+100         48         0.3435118528E+00
+100        -48         0.1792624731E+00
+100         49        -0.2340948454E+00
+100        -49         0.2276198447E+00
+100         50        -0.2963578836E+00
+100        -50        -0.1276703904E+00
+100         51        -0.3155845032E+00
+100        -51         0.3582150180E-01
+100         52        -0.5872051082E+00
+100        -52        -0.6721469200E-01
+100         53        -0.6574754055E+00
+100        -53         0.3924905623E+00
+100         54        -0.6419780131E+00
+100        -54         0.7044990639E+00
+100         55        -0.4156400662E+00
+100        -55         0.9597291429E+00
+100         56        -0.3211049390E+00
+100        -56         0.2301406582E+00
+100         57        -0.5473782585E+00
+100        -57         0.1867066471E+00
+100         58        -0.8260470325E+00
+100        -58         0.2717890368E+00
+100         59        -0.6723752333E+00
+100        -59         0.6091383087E+00
+100         60        -0.3517259999E+00
+100        -60         0.4370652265E+00
+100         61        -0.1745714422E+00
+100        -61         0.3926012845E+00
+100         62         0.2042986006E+00
+100        -62        -0.1038580221E+00
+100         63         0.2001277811E+00
+100        -63        -0.4850373242E+00
+100         64         0.1713431528E-01
+100        -64        -0.4024472917E+00
+100         65        -0.3715372150E+00
+100        -65        -0.1047053228E+00
+100         66        -0.2652326225E-01
+100        -66         0.6728268161E-01
+100         67        -0.1289354057E+00
+100        -67         0.6679248841E-01
+100         68        -0.1646131352E+00
+100        -68        -0.1376444700E+00
+100         69        -0.5470563822E-01
+100        -69        -0.1714952045E+00
+100         70         0.4032576696E+00
+100        -70         0.6304840872E-01
+100         71         0.1249330528E-01
+100        -71         0.3234213080E+00
+100         72        -0.1224109708E+00
+100        -72         0.2696766937E+00
+100         73         0.9625273997E-01
+100        -73         0.6285981470E-01
+100         74         0.3576132719E+00
+100        -74         0.1132185026E+00
+100         75         0.2351086463E+00
+100        -75        -0.1032492969E+00
+100         76        -0.4277772885E-01
+100        -76        -0.9745080675E-01
+100         77        -0.7692160128E-01
+100        -77        -0.1345356254E+00
+100         78         0.6284372085E-01
+100        -78         0.3441790379E-01
+100         79         0.1423492654E-01
+100        -79         0.1854599099E+00
+100         80        -0.1871153841E+00
+100        -80         0.1093460518E+00
+100         81        -0.5378349420E-01
+100        -81        -0.2229988812E+00
+100         82         0.8136503433E-01
+100        -82        -0.2688665155E+00
+100         83        -0.2053735854E+00
+100        -83        -0.5238412785E+00
+100         84        -0.2202331850E+00
+100        -84        -0.4294753938E+00
+100         85        -0.1468484939E+00
+100        -85        -0.1384289547E+00
+100         86        -0.1613809465E+00
+100        -86         0.2316392231E+00
+100         87        -0.4471360982E+00
+100        -87        -0.1020618548E-01
+100         88        -0.2722954488E+00
+100        -88        -0.1718301649E+00
+100         89        -0.1543939793E+00
+100        -89        -0.2292073969E+00
+100         90         0.1805580742E+00
+100        -90        -0.1504941176E+00
+100         91         0.1409656139E+00
+100        -91        -0.1317098076E+00
+100         92        -0.1651945674E+00
+100        -92        -0.4682982225E-01
+100         93         0.2045241149E-01
+100        -93         0.1275180929E+00
+100         94         0.1614987957E+00
+100        -94         0.1202064802E+00
+100         95         0.1321552606E+00
+100        -95         0.4014456499E-01
+100         96         0.3405517641E-01
+100        -96        -0.6960343557E-01
+100         97         0.2037117635E+00
+100        -97        -0.4375015261E-01
+100         98         0.2180918372E+00
+100        -98        -0.3176945983E-01
+100         99        -0.1050452828E-01
+100        -99         0.1642132934E+00
+100        100        -0.2456625673E+00
+100       -100        -0.4879526591E-01
+101          0        -0.1976965891E+00
+101          1         0.6145092529E+00
+101         -1         0.2013299424E-01
+101          2         0.2788071673E+00
+101         -2         0.1482973781E+00
+101          3        -0.6383882933E+00
+101         -3         0.4742945958E+00
+101          4        -0.2756512380E+00
+101         -4        -0.3752348911E+00
+101          5         0.4319158826E+00
+101         -5        -0.4060422138E+00
+101          6         0.2198622685E+00
+101         -6         0.5929453893E+00
+101          7         0.4591260908E+00
+101         -7         0.6076782912E+00
+101          8        -0.3854264772E+00
+101         -8        -0.7363986422E+00
+101          9        -0.1115115414E+01
+101         -9        -0.1033825670E+01
+101         10         0.2601546765E+00
+101        -10         0.1461489282E+00
+101         11         0.1390419625E+01
+101        -11         0.4956765065E+00
+101         12        -0.8245337202E-01
+101        -12         0.2935351294E+00
+101         13        -0.1126947429E+01
+101        -13         0.2713231628E+00
+101         14        -0.2561313659E-01
+101        -14        -0.1877019263E+00
+101         15         0.7362032571E+00
+101        -15        -0.8330836696E+00
+101         16        -0.2351739565E+00
+101        -16        -0.2235231471E+00
+101         17         0.7234788053E-01
+101        -17         0.1056462830E+01
+101         18         0.1067814321E+01
+101        -18         0.6375994962E+00
+101         19         0.1447549035E+00
+101        -19        -0.9510220426E+00
+101         20        -0.8876772082E+00
+101        -20        -0.1153691172E+01
+101         21        -0.6488002714E+00
+101        -21         0.4502689306E+00
+101         22         0.2510142487E+00
+101        -22         0.6361695392E+00
+101         23         0.2958728993E+00
+101        -23        -0.5885609417E+00
+101         24        -0.5645819295E+00
+101        -24        -0.1472170481E+00
+101         25        -0.7163331319E+00
+101        -25         0.6295402265E+00
+101         26         0.2902002521E+00
+101        -26         0.2218500424E+00
+101         27         0.8754361496E+00
+101        -27        -0.8008939465E+00
+101         28        -0.2169121085E+00
+101        -28        -0.4174366823E+00
+101         29        -0.6885606972E+00
+101        -29         0.3588925629E+00
+101         30        -0.6372949836E+00
+101        -30         0.6721949291E+00
+101         31         0.4719229739E-01
+101        -31         0.1249483648E+00
+101         32         0.3655777070E+00
+101        -32        -0.1857839282E+00
+101         33         0.3153553934E+00
+101        -33        -0.1835748917E+00
+101         34         0.3990422727E+00
+101        -34        -0.2207665946E+00
+101         35         0.5635095566E+00
+101        -35         0.2645823980E+00
+101         36        -0.7667688516E-01
+101        -36         0.4344437198E+00
+101         37        -0.5071971766E+00
+101        -37        -0.4108480642E+00
+101         38        -0.2470179339E+00
+101        -38        -0.6824086659E+00
+101         39         0.1510137676E+00
+101        -39         0.3869961221E+00
+101         40        -0.1238564857E+00
+101        -40         0.8108835152E+00
+101         41         0.1879632858E+00
+101        -41         0.6642646388E+00
+101         42         0.1472900544E-01
+101        -42         0.1113308700E+00
+101         43        -0.1388752308E-01
+101        -43        -0.5345482116E+00
+101         44        -0.5019507411E-01
+101        -44        -0.9507493808E+00
+101         45        -0.1093034957E+00
+101        -45        -0.1075092379E+01
+101         46        -0.3838549429E-01
+101        -46        -0.5354931516E+00
+101         47         0.3249486445E+00
+101        -47         0.2306833161E+00
+101         48        -0.1280219276E+00
+101        -48        -0.1236235738E+00
+101         49         0.1217227186E+00
+101        -49        -0.3317575787E+00
+101         50         0.2344577881E+00
+101        -50        -0.6153320432E-01
+101         51         0.6536467539E-01
+101        -51         0.5933211133E-01
+101         52         0.4043080292E+00
+101        -52        -0.1105678760E-01
+101         53         0.8576384709E+00
+101        -53        -0.2294892464E+00
+101         54         0.6210200086E+00
+101        -54        -0.2743558703E+00
+101         55         0.3034898043E+00
+101        -55        -0.7838068827E+00
+101         56         0.2022196669E+00
+101        -56        -0.5062172982E+00
+101         57         0.6811716161E+00
+101        -57         0.2457216946E-01
+101         58         0.4195214212E+00
+101        -58        -0.1122972141E+00
+101         59         0.5301433896E+00
+101        -59        -0.2483490560E+00
+101         60         0.3324247794E+00
+101        -60        -0.2521572301E+00
+101         61         0.1210548402E+00
+101        -61        -0.1741351881E+00
+101         62        -0.2107072118E-01
+101        -62        -0.1531460627E+00
+101         63        -0.2342561334E+00
+101        -63         0.2697511709E+00
+101         64        -0.1785266754E-01
+101        -64         0.1917616716E+00
+101         65         0.3653355847E+00
+101        -65         0.2225068130E-01
+101         66         0.2115284050E+00
+101        -66        -0.8461432518E-01
+101         67        -0.1103985413E+00
+101        -67         0.3301557572E-01
+101         68        -0.2835086591E-01
+101        -68         0.2741948146E+00
+101         69        -0.1220612285E+00
+101        -69         0.6181797944E+00
+101         70        -0.1002319379E+00
+101        -70         0.3582880552E+00
+101         71        -0.5693704573E-01
+101        -71        -0.1504578635E+00
+101         72         0.1969379126E+00
+101        -72        -0.3039902740E+00
+101         73        -0.1004344037E+00
+101        -73        -0.2155769014E+00
+101         74        -0.4901756529E+00
+101        -74        -0.1557855718E+00
+101         75        -0.7073606001E+00
+101        -75        -0.1161415889E-02
+101         76         0.5218423736E-02
+101        -76         0.6414886347E-01
+101         77         0.3298413141E+00
+101        -77         0.4797535623E-01
+101         78         0.2938133147E+00
+101        -78        -0.8283768652E-01
+101         79        -0.5287249849E-01
+101        -79        -0.3333290727E+00
+101         80         0.5765210650E-01
+101        -80        -0.3227909251E+00
+101         81         0.3898109464E-01
+101        -81        -0.9729626366E-01
+101         82        -0.1322282107E+00
+101        -82        -0.1108941620E+00
+101         83        -0.9784319048E-01
+101        -83         0.9983508022E-01
+101         84         0.3086345851E-01
+101        -84         0.2636893022E+00
+101         85        -0.7143337370E-01
+101        -85         0.3412959076E-01
+101         86        -0.2468526946E-01
+101        -86        -0.1197923324E+00
+101         87         0.8908282705E-01
+101        -87        -0.5062322314E-01
+101         88         0.2468876240E+00
+101        -88        -0.1137010124E+00
+101         89         0.1898604475E+00
+101        -89         0.1517987206E+00
+101         90        -0.2243994698E+00
+101        -90         0.2085495807E+00
+101         91        -0.2350277809E+00
+101        -91         0.8583593367E-01
+101         92         0.1906929301E+00
+101        -92         0.5629483084E-01
+101         93        -0.7753210410E-01
+101        -93         0.1782429080E-01
+101         94        -0.1567184850E+00
+101        -94         0.4970348622E-01
+101         95        -0.8603372083E-01
+101        -95        -0.1392765515E-01
+101         96         0.1711843955E+00
+101        -96        -0.5797304553E-01
+101         97         0.1836393448E+00
+101        -97        -0.3104688899E+00
+101         98         0.6020600937E-01
+101        -98        -0.2338078305E+00
+101         99         0.2209857844E-01
+101        -99        -0.1995189257E+00
+101        100         0.1482648433E-01
+101       -100        -0.2244910060E+00
+101        101         0.1126323546E+00
+101       -101        -0.3970206608E+00
+102          0         0.5995209489E+00
+102          1        -0.6404583099E+00
+102         -1        -0.8020171656E-01
+102          2        -0.9443629955E+00
+102         -2        -0.1885624940E-01
+102          3         0.4489554450E+00
+102         -3        -0.2514337876E+00
+102          4         0.3734372480E+00
+102         -4        -0.1856454598E+00
+102          5        -0.1817626164E+00
+102         -5         0.5464711273E+00
+102          6        -0.1716967219E+00
+102         -6         0.2872006910E+00
+102          7        -0.4440440957E+00
+102         -7        -0.7946013433E+00
+102          8        -0.9440275850E-01
+102         -8        -0.1386610922E+00
+102          9         0.1074965614E+01
+102         -9         0.7427650133E+00
+102         10         0.5665275747E+00
+102        -10         0.4072281238E+00
+102         11        -0.1568126427E+01
+102        -11        -0.3416144084E+00
+102         12        -0.6737076461E+00
+102        -12        -0.1694792159E+00
+102         13         0.1376730105E+01
+102        -13        -0.5218411499E-01
+102         14         0.9540852388E+00
+102        -14         0.9091366809E-01
+102         15        -0.5206698585E+00
+102        -15         0.4057026064E+00
+102         16        -0.1054310060E+00
+102        -16         0.5123716973E+00
+102         17         0.7117044308E-01
+102        -17        -0.6048774845E+00
+102         18        -0.9496370027E+00
+102        -18        -0.9529743621E+00
+102         19        -0.6154716165E+00
+102        -19         0.5242076373E+00
+102         20         0.4655222945E+00
+102        -20         0.1231538722E+01
+102         21         0.8398392580E+00
+102        -21         0.5848290301E-01
+102         22         0.2242199260E-01
+102        -22        -0.7246788443E+00
+102         23        -0.5298091950E+00
+102        -23        -0.7460599289E-01
+102         24         0.1090953831E+00
+102        -24         0.2974181413E+00
+102         25         0.7463537241E+00
+102        -25        -0.1843278072E+00
+102         26         0.1847553511E+00
+102        -26        -0.3154125911E+00
+102         27        -0.5743233677E+00
+102        -27         0.3875972817E+00
+102         28        -0.1208922057E+00
+102        -28         0.7224356003E+00
+102         29         0.5120930048E+00
+102        -29        -0.1354026271E+00
+102         30         0.6649207622E+00
+102        -30        -0.8270431168E+00
+102         31         0.1277582706E+00
+102        -31        -0.5145297733E+00
+102         32        -0.1651771680E+00
+102        -32         0.1620715197E+00
+102         33        -0.1088114842E+00
+102        -33         0.2702527889E+00
+102         34        -0.2003460443E+00
+102        -34         0.1819585486E+00
+102         35        -0.5049120545E+00
+102        -35        -0.1937589729E+00
+102         36        -0.4382408788E+00
+102        -36        -0.6148634058E+00
+102         37         0.1011132554E+00
+102        -37         0.8135354905E-01
+102         38         0.3100360399E+00
+102        -38         0.9885266173E+00
+102         39         0.1656231988E+00
+102        -39         0.4829746632E+00
+102         40         0.1106267847E+00
+102        -40        -0.5562577919E+00
+102         41        -0.5230670710E-01
+102        -41        -0.1062752065E+01
+102         42        -0.2914993355E+00
+102        -42        -0.5000719151E+00
+102         43        -0.2301472452E+00
+102        -43        -0.4659789544E-01
+102         44         0.9031127279E-01
+102        -44         0.7650134770E+00
+102         45         0.2329364088E+00
+102        -45         0.1306188560E+01
+102         46         0.5139909051E-01
+102        -46         0.9289004802E+00
+102         47        -0.2937323053E+00
+102        -47        -0.1792185631E+00
+102         48        -0.2731349137E+00
+102        -48         0.2572039347E-01
+102         49         0.5540590843E-02
+102        -49         0.2860917757E+00
+102         50        -0.1257422977E+00
+102        -50         0.2532506501E+00
+102         51         0.6920505490E-02
+102        -51        -0.1194050865E+00
+102         52        -0.4919871692E-01
+102        -52         0.7398993716E-01
+102         53        -0.5970903162E+00
+102        -53         0.6589138283E-01
+102         54        -0.6701435610E+00
+102        -54         0.1715865823E-01
+102         55        -0.7695682178E+00
+102        -55         0.2249948448E+00
+102         56        -0.6814986907E+00
+102        -56         0.6525809332E+00
+102         57        -0.4067112733E+00
+102        -57         0.1765830675E-01
+102         58        -0.4903278720E-01
+102        -58        -0.1540846524E+00
+102         59        -0.3025562587E+00
+102        -59        -0.2926467784E+00
+102         60        -0.4399251977E+00
+102        -60         0.1695246027E+00
+102         61        -0.3956756880E+00
+102        -61         0.1850854348E+00
+102         62        -0.3554561883E+00
+102        -62         0.3325037541E+00
+102         63        -0.1356199213E-01
+102        -63         0.2055448838E-01
+102         64         0.3010453945E+00
+102        -64        -0.2644758776E-01
+102         65         0.1963890541E+00
+102        -65        -0.2299725119E-01
+102         66        -0.1416968156E-01
+102        -66        -0.9054993223E-01
+102         67        -0.5074486447E-01
+102        -67        -0.1121033001E+00
+102         68         0.3323674823E-01
+102        -68        -0.1474012884E+00
+102         69        -0.1585042588E+00
+102        -69        -0.2621422723E+00
+102         70         0.3238345846E-01
+102        -70        -0.9445010884E-01
+102         71         0.7576722381E-01
+102        -71         0.3730225077E-01
+102         72        -0.9772436254E-01
+102        -72         0.1164337097E+00
+102         73        -0.2327914776E+00
+102        -73         0.4694509010E-01
+102         74         0.1593154214E+00
+102        -74        -0.1249527934E+00
+102         75         0.3718971131E+00
+102        -75        -0.4367542794E-01
+102         76         0.3040280976E+00
+102        -76        -0.1487147347E+00
+102         77         0.4359575864E-01
+102        -77        -0.2436719466E+00
+102         78        -0.1141676996E+00
+102        -78        -0.1825030754E+00
+102         79         0.8128414642E-02
+102        -79         0.1030213999E+00
+102         80         0.1153499099E-01
+102        -80         0.2163653411E+00
+102         81        -0.5370680718E-01
+102        -81         0.5758888978E-01
+102         82         0.9546634968E-01
+102        -82        -0.2677826089E+00
+102         83         0.1777444033E+00
+102        -83        -0.3316577695E+00
+102         84         0.1481506427E+00
+102        -84        -0.4004479057E+00
+102         85        -0.1299006905E+00
+102        -85        -0.3141101156E+00
+102         86        -0.3230432918E+00
+102        -86        -0.9398683067E-01
+102         87        -0.1844172108E+00
+102        -87         0.4628227033E-02
+102         88        -0.2168558246E+00
+102        -88        -0.6445150440E-01
+102         89        -0.1077354037E+00
+102        -89        -0.2003125275E+00
+102         90         0.1359451791E+00
+102        -90        -0.1885764385E+00
+102         91         0.4496272785E-01
+102        -91        -0.1100873661E+00
+102         92        -0.7199513540E-01
+102        -92        -0.1256950430E+00
+102         93        -0.1697662233E+00
+102        -93         0.3552697366E-01
+102         94         0.8187209907E-02
+102        -94        -0.8411808718E-01
+102         95        -0.4278499896E-02
+102        -95        -0.7519833804E-01
+102         96        -0.7623264858E-01
+102        -96         0.1226500015E-01
+102         97         0.1357215850E+00
+102        -97         0.2128600211E+00
+102         98         0.3020750040E+00
+102        -98         0.1152618620E+00
+102         99         0.1790825444E+00
+102        -99         0.8899515122E-01
+102        100         0.1081490101E-01
+102       -100         0.9032448529E-01
+102        101        -0.8694261162E-01
+102       -101         0.1257870646E-01
+102        102         0.2098473934E-01
+102       -102        -0.2290074214E+00
+103          0        -0.9787116395E+00
+103          1         0.2097836006E+00
+103         -1         0.1827268865E+00
+103          2         0.1307870575E+01
+103         -2        -0.1328272168E+00
+103          3         0.9849646041E-01
+103         -3        -0.3557584810E+00
+103          4        -0.6339218462E+00
+103         -4         0.4202253226E+00
+103          5        -0.2423691658E+00
+103         -5        -0.1398952144E+00
+103          6         0.3069073938E-01
+103         -6        -0.6172400190E+00
+103          7         0.3327162936E+00
+103         -7         0.3154966332E+00
+103          8         0.1015018215E+01
+103         -8         0.6901402253E+00
+103          9        -0.5182521470E+00
+103         -9        -0.1770726442E+00
+103         10        -0.1466038941E+01
+103        -10        -0.9360312082E+00
+103         11         0.7974719538E+00
+103        -11         0.4869477889E-01
+103         12         0.1341644875E+01
+103        -12         0.4769894127E+00
+103         13        -0.8216280732E+00
+103        -13         0.1391855512E+00
+103         14        -0.1455566769E+01
+103        -14         0.4018924806E-01
+103         15         0.4738649318E-01
+103        -15        -0.1202489595E+00
+103         16         0.4301937313E+00
+103        -16        -0.6168960596E+00
+103         17        -0.2554394937E+00
+103        -17         0.1099330784E+00
+103         18         0.3215603507E+00
+103        -18         0.1020924931E+01
+103         19         0.9884340768E+00
+103        -19         0.3949397942E-01
+103         20         0.1137526324E+00
+103        -20        -0.1011319533E+01
+103         21        -0.8913751506E+00
+103        -21        -0.6636810975E+00
+103         22        -0.5146449161E+00
+103        -22         0.3053319123E+00
+103         23         0.3457232680E+00
+103        -23         0.6011341740E+00
+103         24         0.4315051035E+00
+103        -24        -0.1929113274E+00
+103         25        -0.2051230870E+00
+103        -25        -0.1965986011E+00
+103         26        -0.4538210330E+00
+103        -26         0.1374354697E+00
+103         27        -0.6344609139E-02
+103        -27        -0.1650735429E+00
+103         28         0.3045421784E+00
+103        -28        -0.5730909552E+00
+103         29        -0.3526878998E+00
+103        -29        -0.2161594869E-01
+103         30        -0.3733307151E+00
+103        -30         0.7390142358E+00
+103         31        -0.1704267936E+00
+103        -31         0.8809873291E+00
+103         32        -0.7299820267E-02
+103        -32         0.5528378410E-01
+103         33        -0.1582882141E+00
+103        -33        -0.4699480168E+00
+103         34        -0.1024011000E+00
+103        -34        -0.1786216979E+00
+103         35         0.2770353515E+00
+103        -35         0.6470000330E-01
+103         36         0.6142809581E+00
+103        -36         0.4607771871E+00
+103         37         0.2492290645E+00
+103        -37         0.3806412016E+00
+103         38        -0.1983360004E+00
+103        -38        -0.6348671652E+00
+103         39        -0.2112731754E+00
+103        -39        -0.1044046170E+01
+103         40        -0.1188505623E+00
+103        -40        -0.5131784754E-01
+103         41        -0.1873483711E+00
+103        -41         0.7549681535E+00
+103         42         0.3012318160E+00
+103        -42         0.7312698030E+00
+103         43         0.1764793015E+00
+103        -43         0.6627445888E+00
+103         44        -0.1115151387E+00
+103        -44        -0.8018489226E-02
+103         45        -0.2127879302E+00
+103        -45        -0.9006583759E+00
+103         46        -0.5024348610E-01
+103        -46        -0.1222226408E+01
+103         47        -0.2653914945E-01
+103        -47        -0.5266998632E+00
+103         48         0.3480402765E+00
+103        -48         0.5937227621E-01
+103         49         0.1135405839E+00
+103        -49        -0.5272335524E-03
+103         50         0.1880480515E+00
+103        -50        -0.4028335354E+00
+103         51         0.3489947190E-01
+103        -51        -0.8875631066E-02
+103         52        -0.1870857993E+00
+103        -52         0.1837427149E+00
+103         53         0.2143719947E+00
+103        -53         0.2891000716E-01
+103         54         0.8869069811E+00
+103        -54        -0.1752181145E+00
+103         55         0.6884913827E+00
+103        -55         0.6392152690E-01
+103         56         0.6189576169E+00
+103        -56        -0.5255131011E+00
+103         57         0.3715551670E+00
+103        -57        -0.2837359906E+00
+103         58         0.3296534285E+00
+103        -58         0.1377495025E+00
+103         59         0.1337188659E+00
+103        -59         0.3301744771E+00
+103         60         0.3483217671E+00
+103        -60         0.1160639653E+00
+103         61         0.4823209834E+00
+103        -61         0.9581652535E-01
+103         62         0.2700342935E+00
+103        -62        -0.4068569535E-01
+103         63        -0.1014927795E+00
+103        -63        -0.1982325482E+00
+103         64        -0.5054847781E+00
+103        -64        -0.4987305938E-01
+103         65        -0.4776339184E+00
+103        -65         0.1289929957E-01
+103         66         0.8915084435E-01
+103        -66         0.3349071256E-01
+103         67         0.1442517621E+00
+103        -67         0.1611320492E+00
+103         68         0.4176924448E-01
+103        -68         0.1189525799E+00
+103         69        -0.3833660629E-01
+103        -69        -0.4573000183E-01
+103         70         0.4084290983E-01
+103        -70         0.1985740919E+00
+103         71        -0.1929513257E+00
+103        -71         0.3474162843E+00
+103         72         0.8681306729E-01
+103        -72         0.3878750524E+00
+103         73         0.1561177098E+00
+103        -73         0.2626487624E+00
+103         74         0.4563918587E-01
+103        -74         0.4831288313E-01
+103         75        -0.2755324004E+00
+103        -75        -0.4450695310E+00
+103         76        -0.4623988816E+00
+103        -76        -0.4689546509E+00
+103         77        -0.3386559809E+00
+103        -77        -0.2487748606E+00
+103         78        -0.3962623832E-01
+103        -78         0.2148099409E+00
+103         79         0.1134268162E+00
+103        -79         0.2548379046E+00
+103         80        -0.5946434289E-01
+103        -80        -0.2978733259E-01
+103         81         0.1402518454E+00
+103        -81         0.2775886917E-03
+103         82         0.1429651853E+00
+103        -82         0.1214938646E+00
+103         83         0.2768220558E-01
+103        -83         0.4541745687E-01
+103         84        -0.1437616161E+00
+103        -84        -0.5914070294E-01
+103         85        -0.1856741995E+00
+103        -85         0.8819328860E-02
+103         86        -0.3304529697E+00
+103        -86         0.4310671264E-01
+103         87        -0.4596485219E+00
+103        -87        -0.6902093533E-01
+103         88        -0.2280436584E+00
+103        -88         0.7229115674E-01
+103         89         0.8782414444E-01
+103        -89         0.2553563128E+00
+103         90         0.3326546353E+00
+103        -90         0.4548112742E+00
+103         91         0.1339824206E+00
+103        -91         0.2327164915E+00
+103         92        -0.1058586650E+00
+103        -92         0.8099878386E-01
+103         93         0.1364399669E+00
+103        -93        -0.5063596794E-01
+103         94        -0.2923650186E-01
+103        -94         0.5993647899E-02
+103         95        -0.1637225913E+00
+103        -95         0.2184695559E-01
+103         96        -0.1299737419E+00
+103        -96         0.1829059963E-01
+103         97        -0.5894163689E-01
+103        -97        -0.4918479829E-01
+103         98         0.3480942462E-01
+103        -98        -0.1009113530E+00
+103         99         0.1460631622E+00
+103        -99        -0.8286738535E-01
+103        100         0.5107454289E-01
+103       -100        -0.1423697445E+00
+103        101         0.1569758042E+00
+103       -101         0.7189643700E-02
+103        102         0.4569631566E+00
+103       -102        -0.6638241710E-01
+103        103         0.3987213427E+00
+103       -103        -0.5490379394E-01
+104          0         0.1135336020E+01
+104          1         0.5836252383E+00
+104         -1        -0.1755566041E+00
+104          2        -0.1274255483E+01
+104         -2        -0.1916306355E+00
+104          3        -0.6176406525E+00
+104         -3         0.4847823379E+00
+104          4         0.8060510677E+00
+104         -4        -0.4165998515E-01
+104          5         0.4464541004E+00
+104         -5        -0.2443026295E+00
+104          6        -0.2641173954E-01
+104         -6         0.3420374703E+00
+104          7        -0.5207697210E-01
+104         -7         0.2875665458E+00
+104          8        -0.1154865580E+01
+104         -8        -0.4985750303E+00
+104          9        -0.1847192277E+00
+104         -9        -0.1663238572E+00
+104         10         0.1639804675E+01
+104        -10         0.8305409215E+00
+104         11         0.3117577549E+00
+104        -11         0.2954229037E+00
+104         12        -0.1816348380E+01
+104        -12        -0.7457107240E+00
+104         13        -0.3665055609E+00
+104        -13        -0.4173398036E+00
+104         14         0.1565984145E+01
+104        -14         0.1097138652E+00
+104         15         0.4532946621E+00
+104        -15         0.1888792970E+00
+104         16        -0.6374588026E+00
+104        -16         0.3781966759E+00
+104         17         0.1082555781E+00
+104        -17         0.7693947738E-01
+104         18         0.2896533952E+00
+104        -18        -0.8114500523E+00
+104         19        -0.8192859839E+00
+104        -19        -0.5850046021E+00
+104         20        -0.5068112833E+00
+104        -20         0.5835826041E+00
+104         21         0.5831468759E+00
+104        -21         0.8079589527E+00
+104         22         0.7757976870E+00
+104        -22         0.8013483191E-01
+104         23         0.1609351920E+00
+104        -23        -0.2835292722E+00
+104         24        -0.5476501789E+00
+104        -24         0.2219317691E-01
+104         25        -0.2242545550E+00
+104        -25        -0.5369511559E-01
+104         26         0.3109342895E+00
+104        -26         0.2622068486E-01
+104         27         0.7433574650E-01
+104        -27         0.2984615704E+00
+104         28        -0.2722483082E+00
+104        -28         0.3949447894E+00
+104         29         0.2283150977E+00
+104        -29         0.2678282451E+00
+104         30         0.2687197415E+00
+104        -30        -0.4341484919E+00
+104         31         0.2596604729E+00
+104        -31        -0.9769068202E+00
+104         32        -0.5997992611E-01
+104        -32        -0.4243088809E+00
+104         33         0.1316980704E+00
+104        -33         0.4073066273E+00
+104         34         0.3751961336E+00
+104        -34         0.3444628168E+00
+104         35         0.1441482072E+00
+104        -35         0.1806568726E+00
+104         36        -0.3556567842E+00
+104        -36        -0.2968194846E+00
+104         37        -0.3909534399E+00
+104        -37        -0.6730245529E+00
+104         38        -0.5782564297E-01
+104        -38         0.4955948505E-01
+104         39         0.4280291441E-01
+104        -39         0.9721600621E+00
+104         40         0.3809946485E-01
+104        -40         0.6953367201E+00
+104         41         0.3326727525E+00
+104        -41        -0.1917608147E+00
+104         42        -0.5356132896E-01
+104        -42        -0.7292663008E+00
+104         43        -0.2247155789E+00
+104        -43        -0.8276886206E+00
+104         44        -0.1284142379E+00
+104        -44        -0.6590068040E+00
+104         45         0.1547856366E+00
+104        -45         0.3133551764E+00
+104         46         0.1921590532E+00
+104        -46         0.1164925969E+01
+104         47         0.1329794680E+00
+104        -47         0.1075052441E+01
+104         48        -0.2155770035E+00
+104        -48         0.8649463935E-02
+104         49        -0.1151824238E+00
+104        -49        -0.7492705694E-01
+104         50        -0.1983346752E+00
+104        -50         0.2489120945E+00
+104         51        -0.2737651242E+00
+104        -51        -0.5974791385E-01
+104         52        -0.2559535509E-01
+104        -52        -0.3184772493E+00
+104         53        -0.3425914220E-01
+104        -53        -0.9850460414E-01
+104         54        -0.5395122482E+00
+104        -54         0.2227746233E+00
+104         55        -0.3754279821E+00
+104        -55         0.3449828314E-01
+104         56        -0.5158330670E+00
+104        -56         0.1204043021E+00
+104         57        -0.5995240323E+00
+104        -57         0.3507813827E+00
+104         58        -0.5693004120E+00
+104        -58        -0.4077155821E-01
+104         59         0.9735920432E-02
+104        -59        -0.2524110007E+00
+104         60        -0.1657638834E-01
+104        -60        -0.3822843941E+00
+104         61        -0.2842372673E+00
+104        -61        -0.2142410221E+00
+104         62        -0.2800455591E-01
+104        -62         0.3324899936E-03
+104         63         0.1910476984E-01
+104        -63         0.6692412748E-01
+104         64         0.1623754291E+00
+104        -64        -0.9438229546E-01
+104         65         0.9814169499E-01
+104        -65        -0.7940591318E-02
+104         66        -0.4648574939E-01
+104        -66         0.4910088321E-01
+104         67        -0.9915387614E-01
+104        -67        -0.1261025322E+00
+104         68         0.4251063578E-01
+104        -68        -0.1520741043E+00
+104         69         0.8961184397E-02
+104        -69         0.3220894330E-01
+104         70        -0.2423173682E-01
+104        -70         0.1817737076E-01
+104         71        -0.1205723521E+00
+104        -71        -0.9671319242E-01
+104         72        -0.3220431612E-01
+104        -72        -0.2726829230E+00
+104         73        -0.1977064005E+00
+104        -73        -0.3536651644E+00
+104         74        -0.2910440629E-01
+104        -74        -0.4760195021E-01
+104         75         0.7848116109E-01
+104        -75         0.1671223380E+00
+104         76         0.4222586876E+00
+104        -76         0.2986089622E+00
+104         77         0.3675248581E+00
+104        -77        -0.5744424289E-01
+104         78         0.3619088890E+00
+104        -78        -0.3799758475E+00
+104         79         0.1441478515E-01
+104        -79        -0.4607836853E+00
+104         80        -0.2205992073E+00
+104        -80        -0.7017633729E-01
+104         81        -0.1632902487E+00
+104        -81         0.1156382922E-01
+104         82         0.3738965778E-01
+104        -82         0.5853997143E-01
+104         83         0.8587559846E-01
+104        -83        -0.3422413958E-01
+104         84         0.8035280221E-01
+104        -84        -0.8791031489E-01
+104         85         0.1574469402E+00
+104        -85        -0.5539287662E-01
+104         86         0.1491451805E+00
+104        -86        -0.1705567993E+00
+104         87         0.1268381559E+00
+104        -87        -0.2062760204E+00
+104         88         0.4215516827E-01
+104        -88        -0.1675823213E+00
+104         89        -0.1271139165E+00
+104        -89        -0.2029796911E+00
+104         90        -0.1608066481E+00
+104        -90        -0.2665101608E+00
+104         91        -0.1601821730E+00
+104        -91        -0.1212168942E+00
+104         92        -0.9948301188E-01
+104        -92         0.7373261898E-01
+104         93        -0.7087221316E-01
+104        -93        -0.1009653801E+00
+104         94         0.4019889485E-01
+104        -94        -0.6062656858E-01
+104         95         0.1453029783E+00
+104        -95        -0.6309341472E-01
+104         96         0.5526342879E-01
+104        -96         0.6067759031E-02
+104         97        -0.9946952132E-01
+104        -97         0.1192115190E-01
+104         98        -0.2291621458E+00
+104        -98         0.8918512313E-01
+104         99         0.9788827527E-02
+104        -99         0.1082124527E+00
+104        100         0.1529808472E+00
+104       -100         0.2991891005E-01
+104        101         0.4054769036E-01
+104       -101        -0.5817662884E-02
+104        102        -0.2485114546E+00
+104       -102         0.1687250490E+00
+104        103        -0.1860101912E+00
+104       -103         0.1566793031E-01
+104        104         0.7415296823E-02
+104       -104        -0.7776535210E-01
+105          0        -0.8478050273E+00
+105          1        -0.1413670950E+01
+105         -1        -0.2163894322E-02
+105          2         0.7474045156E+00
+105         -2         0.5620282148E+00
+105          3         0.9523554574E+00
+105         -3        -0.7015172974E-01
+105          4        -0.4258446577E+00
+105         -4        -0.3484491189E+00
+105          5        -0.4074224474E+00
+105         -5         0.4316115733E+00
+105          6         0.1181464800E-01
+105         -6         0.4563754881E-01
+105          7        -0.2161709621E+00
+105         -7        -0.5942558959E+00
+105          8         0.4794117220E+00
+105         -8         0.5908638487E-01
+105          9         0.8338359353E+00
+105         -9         0.4625588222E+00
+105         10        -0.1023285418E+01
+105        -10        -0.2345517222E+00
+105         11        -0.1204249245E+01
+105        -11        -0.7868469262E+00
+105         12         0.1497606567E+01
+105        -12         0.4032122640E+00
+105         13         0.1377799945E+01
+105        -13         0.6525663909E+00
+105         14        -0.1135221297E+01
+105        -14        -0.2502308413E+00
+105         15        -0.9556406594E+00
+105        -15        -0.3589374159E+00
+105         16         0.5966324917E+00
+105        -16        -0.6571761566E-01
+105         17         0.4340489262E+00
+105        -17        -0.1589779623E+00
+105         18        -0.4337226941E+00
+105        -18         0.3566785757E+00
+105         19         0.9886555790E-01
+105        -19         0.8015239142E+00
+105         20         0.6551389435E+00
+105        -20        -0.1232530082E+00
+105         21         0.5112138506E-01
+105        -21        -0.4699296503E+00
+105         22        -0.7446438577E+00
+105        -22        -0.1972197896E+00
+105         23        -0.5381250005E+00
+105        -23        -0.2119761049E+00
+105         24         0.1178587229E+00
+105        -24        -0.2425900487E-03
+105         25         0.2808575189E+00
+105        -25         0.2033968826E+00
+105         26         0.1155910500E+00
+105        -26         0.1421844813E+00
+105         27         0.1398988895E+00
+105        -27        -0.2291845480E+00
+105         28         0.1704429160E+00
+105        -28        -0.6620920717E+00
+105         29        -0.1528218703E+00
+105        -29        -0.6482376857E+00
+105         30        -0.5315133716E+00
+105        -30         0.6949766903E-01
+105         31        -0.3526707946E+00
+105        -31         0.7771171385E+00
+105         32         0.1654867478E+00
+105        -32         0.7791966053E+00
+105         33        -0.7165961352E-02
+105        -33        -0.7418559879E-01
+105         34        -0.4513317223E+00
+105        -34        -0.4939247184E+00
+105         35        -0.4462850569E+00
+105        -35        -0.2644650679E+00
+105         36         0.1209464696E+00
+105        -36         0.9678440430E-01
+105         37         0.4555157361E+00
+105        -37         0.5714810216E+00
+105         38         0.2083692666E+00
+105        -38         0.3151623614E+00
+105         39        -0.6554875241E-01
+105        -39        -0.6025992699E+00
+105         40        -0.4288088123E-01
+105        -40        -0.9718346651E+00
+105         41        -0.3073138968E+00
+105        -41        -0.3475744488E+00
+105         42        -0.1668202316E+00
+105        -42         0.3632099135E+00
+105         43         0.2790353268E+00
+105        -43         0.4628342618E+00
+105         44         0.2551502533E+00
+105        -44         0.7709856200E+00
+105         45        -0.2412590167E+00
+105        -45         0.4307431199E+00
+105         46        -0.3873272403E+00
+105        -46        -0.4742829614E+00
+105         47        -0.7270876078E-01
+105        -47        -0.9707128706E+00
+105         48        -0.7005857794E-01
+105        -48        -0.3753982625E+00
+105         49         0.2685253450E-01
+105        -49        -0.3471453192E-02
+105         50         0.1736899572E+00
+105        -50         0.6628244529E-01
+105         51         0.4540537369E+00
+105        -51        -0.1327104332E+00
+105         52         0.3323142406E+00
+105        -52         0.1138486160E+00
+105         53        -0.5998950833E-01
+105        -53         0.3195662671E+00
+105         54         0.1190115270E+00
+105        -54         0.4845582242E-02
+105         55         0.4522080329E+00
+105        -55        -0.3300283093E+00
+105         56         0.3819208788E+00
+105        -56        -0.1222417464E-01
+105         57         0.4274816057E+00
+105        -57        -0.3632852723E+00
+105         58         0.5723900730E+00
+105        -58        -0.2291916596E+00
+105         59         0.3203703333E+00
+105        -59         0.8754411741E-01
+105         60        -0.2293659589E+00
+105        -60         0.3393648733E+00
+105         61        -0.1392329547E+00
+105        -61         0.3295854185E+00
+105         62         0.5421057476E-01
+105        -62         0.3938568216E+00
+105         63         0.1253329087E+00
+105        -63         0.3009838508E+00
+105         64        -0.1376030760E-02
+105        -64         0.1430132889E+00
+105         65        -0.7376878996E-01
+105        -65        -0.9019235536E-01
+105         66        -0.1746213651E+00
+105        -66        -0.1433332886E+00
+105         67        -0.6273336652E-01
+105        -67        -0.1450819977E+00
+105         68         0.1997025874E-01
+105        -68         0.2761933580E-01
+105         69         0.8421885678E-02
+105        -69         0.2327771554E-01
+105         70         0.2992388399E+00
+105        -70        -0.8599287564E-01
+105         71         0.2003123823E+00
+105        -71        -0.2077818244E-01
+105         72         0.3846457096E-01
+105        -72         0.2419445282E+00
+105         73        -0.9769617237E-01
+105        -73         0.2242271330E+00
+105         74        -0.5536734754E-01
+105        -74         0.2088044453E+00
+105         75        -0.1426810869E+00
+105        -75         0.1734378903E+00
+105         76         0.8958036994E-01
+105        -76        -0.2364837913E-01
+105         77         0.3883643119E-01
+105        -77        -0.1290822457E+00
+105         78        -0.1373136025E+00
+105        -78        -0.1738154203E+00
+105         79        -0.2200684098E+00
+105        -79        -0.1248820310E-01
+105         80        -0.8282699129E-01
+105        -80         0.9747997315E-01
+105         81        -0.1632172139E+00
+105        -81         0.2142971415E-01
+105         82        -0.1425923133E+00
+105        -82         0.6802835391E-02
+105         83         0.2285465566E-01
+105        -83         0.1077446259E+00
+105         84         0.1079445061E+00
+105        -84         0.1812399948E+00
+105         85        -0.6411376168E-01
+105        -85        -0.3046098507E-01
+105         86        -0.1964813357E+00
+105        -86        -0.3407423557E-01
+105         87        -0.3173801289E+00
+105        -87        -0.4444716331E-01
+105         88        -0.4183375342E+00
+105        -88        -0.6347513517E-01
+105         89        -0.1480724698E+00
+105        -89         0.4079629418E-01
+105         90        -0.1631524888E+00
+105        -90         0.1022022040E+00
+105         91         0.2199910536E-01
+105        -91         0.2227045680E+00
+105         92         0.1297246549E+00
+105        -92         0.1407645462E+00
+105         93        -0.2175744477E-01
+105        -93         0.2195868928E-01
+105         94         0.1152673462E+00
+105        -94         0.2783552879E-01
+105         95         0.1626498343E-01
+105        -95         0.9295416234E-01
+105         96         0.1998048683E-02
+105        -96         0.3557061891E-01
+105         97        -0.4023298546E-01
+105        -97        -0.1868460834E+00
+105         98         0.2406362618E-01
+105        -98        -0.9453377936E-01
+105         99         0.3313028231E-01
+105        -99        -0.5531703381E-01
+105        100        -0.4180410181E-01
+105       -100         0.2166320812E+00
+105        101        -0.1180150318E-01
+105       -101         0.2723582746E+00
+105        102         0.1954657901E+00
+105       -102         0.1534338634E+00
+105        103         0.1338360715E+00
+105       -103         0.1992910705E+00
+105        104         0.3278462689E-01
+105       -104         0.1330146186E+00
+105        105         0.4503063351E-01
+105       -105         0.2024889809E+00
+106          0         0.1743648297E+00
+106          1         0.1817395481E+01
+106         -1         0.2618121304E+00
+106          2        -0.8687602425E-02
+106         -2        -0.4142489486E+00
+106          3        -0.1164130377E+01
+106         -3        -0.4668202833E+00
+106          4        -0.2182208969E+00
+106         -4         0.3305878581E+00
+106          5         0.4625630129E+00
+106         -5        -0.1727337897E+00
+106          6        -0.5628536678E-02
+106         -6        -0.2269619142E+00
+106          7         0.1547071343E+00
+106         -7         0.3450156847E+00
+106          8         0.1392940786E+00
+106         -8         0.2834596173E+00
+106          9        -0.1036160554E+01
+106         -9        -0.5085532414E+00
+106         10         0.1046247311E+00
+106        -10        -0.2685813462E+00
+106         11         0.1493659986E+01
+106        -11         0.9582761727E+00
+106         12        -0.2833172719E+00
+106        -12         0.3449388453E+00
+106         13        -0.1628375901E+01
+106        -13        -0.7413935547E+00
+106         14         0.2095813038E+00
+106        -14        -0.6595183290E-01
+106         15         0.1288695258E+01
+106        -15         0.5257916116E+00
+106         16        -0.5060988669E-01
+106        -16         0.1876127246E+00
+106         17        -0.8107304404E+00
+106        -17         0.2237534599E+00
+106         18         0.4263204887E-01
+106        -18        -0.1374556379E+00
+106         19         0.3460546555E+00
+106        -19        -0.6107285131E+00
+106         20        -0.5671633915E+00
+106        -20        -0.1829862620E+00
+106         21        -0.4683017052E+00
+106        -21         0.1843880894E+00
+106         22         0.4473089012E+00
+106        -22         0.9697773003E-01
+106         23         0.5721158803E+00
+106        -23         0.1334978548E+00
+106         24         0.3107589959E+00
+106        -24         0.2180787461E+00
+106         25        -0.1679495889E+00
+106        -25         0.1595262703E-01
+106         26        -0.2233578796E+00
+106        -26        -0.4716483089E+00
+106         27        -0.9924162417E-01
+106        -27        -0.1502280093E+00
+106         28        -0.1831104205E+00
+106        -28         0.7255146534E+00
+106         29        -0.4737680396E-01
+106        -29         0.7506817298E+00
+106         30         0.6187026356E+00
+106        -30         0.2351092778E+00
+106         31         0.4843664919E+00
+106        -31        -0.3352986179E+00
+106         32         0.2744130978E-01
+106        -32        -0.7979378311E+00
+106         33        -0.1390495385E+00
+106        -33        -0.3908374802E+00
+106         34         0.1694931748E+00
+106        -34         0.3279360300E+00
+106         35         0.4847116479E+00
+106        -35         0.3096365901E+00
+106         36         0.1469985653E+00
+106        -36         0.1474524394E+00
+106         37        -0.2210091918E+00
+106        -37        -0.1731280236E+00
+106         38        -0.2098150557E+00
+106        -38        -0.4303993191E+00
+106         39         0.1191645835E+00
+106        -39         0.9957427753E-01
+106         40         0.1355718507E+00
+106        -40         0.7836410962E+00
+106         41         0.2274322103E-01
+106        -41         0.6282499147E+00
+106         42         0.2492838250E+00
+106        -42         0.6335977175E-01
+106         43        -0.5211445629E-01
+106        -43        -0.1357098068E+00
+106         44        -0.2290461407E+00
+106        -44        -0.5425232443E+00
+106         45        -0.3113984838E-04
+106        -45        -0.8714576356E+00
+106         46         0.2499560084E+00
+106        -46        -0.2304553477E+00
+106         47         0.9569307817E-01
+106        -47         0.5322683956E+00
+106         48         0.4009577094E-01
+106        -48         0.6476164108E+00
+106         49        -0.1573234626E+00
+106        -49         0.1521289383E+00
+106         50        -0.1021230767E+00
+106        -50        -0.4512792134E-01
+106         51        -0.3176567077E+00
+106        -51         0.3049030962E+00
+106         52        -0.3479262530E+00
+106        -52        -0.4516801267E-02
+106         53        -0.4114342075E-01
+106        -53        -0.4480783446E+00
+106         54         0.1030840774E+00
+106        -54        -0.2523924973E+00
+106         55        -0.3783184499E+00
+106        -55         0.1837260517E+00
+106         56        -0.1289965517E+00
+106        -56         0.1175883538E+00
+106         57        -0.1612552806E+00
+106        -57         0.2461727403E+00
+106         58        -0.3147323555E+00
+106        -58         0.2298975067E+00
+106         59        -0.3252919519E+00
+106        -59        -0.1009512250E+00
+106         60         0.2111827648E+00
+106        -60        -0.3148406869E+00
+106         61         0.3093273291E+00
+106        -61        -0.4406571715E+00
+106         62         0.6224765918E-02
+106        -62        -0.4086443345E+00
+106         63        -0.2835135128E-01
+106        -63        -0.1491297695E+00
+106         64         0.1042814232E+00
+106        -64        -0.2391915813E-02
+106         65         0.1483117057E+00
+106        -65        -0.6179069563E-01
+106         66         0.8111295698E-01
+106        -66         0.2123787574E-02
+106         67        -0.7766296432E-01
+106        -67         0.2074631181E+00
+106         68        -0.9726408742E-01
+106        -68         0.2824775750E-01
+106         69        -0.1501264828E+00
+106        -69        -0.1432370986E+00
+106         70        -0.2049380946E+00
+106        -70         0.1162301592E-01
+106         71        -0.1966140285E+00
+106        -71         0.9738974507E-01
+106         72         0.1345987384E+00
+106        -72         0.7586093328E-01
+106         73         0.1337099552E+00
+106        -73        -0.2456886957E+00
+106         74         0.5940756874E-01
+106        -74        -0.3347714837E+00
+106         75        -0.3841396252E-01
+106        -75        -0.3232079621E+00
+106         76        -0.1137666155E+00
+106        -76        -0.9328619967E-01
+106         77        -0.8700430468E-02
+106        -77         0.1794593820E+00
+106         78         0.1951964968E+00
+106        -78         0.3986689007E+00
+106         79         0.2969553953E+00
+106        -79         0.6756042615E-01
+106         80         0.2199730320E+00
+106        -80        -0.2379761022E+00
+106         81        -0.4429472813E-01
+106        -81        -0.1683964250E+00
+106         82        -0.5311490528E-01
+106        -82        -0.9980340080E-01
+106         83         0.6949869833E-01
+106        -83         0.4106964405E-01
+106         84         0.1277683237E+00
+106        -84         0.5127416287E-01
+106         85        -0.2752508491E-01
+106        -85         0.4202835439E-01
+106         86        -0.7688066204E-01
+106        -86         0.1211555524E+00
+106         87         0.7475191682E-01
+106        -87         0.2096458885E-01
+106         88         0.1278953598E+00
+106        -88         0.1208690393E+00
+106         89         0.1015477675E+00
+106        -89         0.4604282975E-01
+106         90         0.1914611358E+00
+106        -90         0.4551047931E-01
+106         91         0.2053653808E+00
+106        -91        -0.1235709965E+00
+106         92        -0.6901978828E-01
+106        -92        -0.1692337524E+00
+106         93        -0.2082181056E+00
+106        -93        -0.1322680872E+00
+106         94        -0.3259941689E+00
+106        -94        -0.1196835173E+00
+106         95        -0.7779208468E-01
+106        -95        -0.1325586780E+00
+106         96         0.8761484438E-02
+106        -96         0.5805611987E-01
+106         97         0.4997208551E-01
+106        -97         0.2597769828E+00
+106         98         0.5718077322E-01
+106        -98         0.6763010760E-01
+106         99        -0.1498685291E-01
+106        -99        -0.1043873691E+00
+106        100        -0.2572050112E-01
+106       -100        -0.1853570910E+00
+106        101        -0.1066051364E+00
+106       -101        -0.1030331004E-02
+106        102        -0.5556374522E-01
+106       -102         0.7835892760E-01
+106        103         0.2225857816E-01
+106       -103         0.9207410522E-01
+106        104         0.4814981834E-01
+106       -104         0.5674868233E-01
+106        105        -0.1133911406E+00
+106       -105        -0.1889205057E-01
+106        106        -0.1570141638E+00
+106       -106         0.1418240056E+00
+107          0         0.4770029826E+00
+107          1        -0.1429670476E+01
+107         -1        -0.3669472181E+00
+107          2        -0.5818361509E+00
+107         -2        -0.6459662274E-01
+107          3         0.9549213450E+00
+107         -3         0.5942335153E+00
+107          4         0.4773414303E+00
+107         -4        -0.1106761006E+00
+107          5        -0.4921116286E+00
+107         -5        -0.2077644472E+00
+107          6        -0.3413111973E-01
+107         -6         0.3126795905E+00
+107          7         0.9458148604E-01
+107         -7         0.7366774857E-01
+107          8        -0.2040919295E+00
+107         -8        -0.3575374914E+00
+107          9         0.6204140561E+00
+107         -9         0.2037158931E+00
+107         10         0.5464510603E+00
+107        -10         0.4219147341E+00
+107         11        -0.1063526789E+01
+107        -11        -0.4726861783E+00
+107         12        -0.7961025779E+00
+107        -12        -0.7784344568E+00
+107         13         0.1128959447E+01
+107        -13         0.5232045596E+00
+107         14         0.5704883743E+00
+107        -14         0.5729704145E+00
+107         15        -0.1139462235E+01
+107        -15        -0.4221932827E+00
+107         16        -0.6080290537E+00
+107        -16        -0.4366407388E+00
+107         17         0.6930515412E+00
+107        -17        -0.8852277066E-01
+107         18         0.4468882947E+00
+107        -18         0.4682209307E-01
+107         19        -0.2492156511E+00
+107        -19         0.1829367981E+00
+107         20         0.1086312816E+00
+107        -20         0.2306213834E+00
+107         21         0.4898041339E+00
+107        -21        -0.2163091797E+00
+107         22         0.6470961873E-01
+107        -22         0.5068021241E-01
+107         23        -0.4045976650E+00
+107        -23         0.2295812262E+00
+107         24        -0.3766506842E+00
+107        -24        -0.3458798197E+00
+107         25         0.5650866756E-02
+107        -25        -0.2325530213E+00
+107         26        -0.2362816718E-02
+107        -26         0.4317173683E+00
+107         27         0.4315854425E-01
+107        -27         0.4926033120E+00
+107         28         0.3530556985E+00
+107        -28        -0.2191363019E+00
+107         29         0.3570427675E+00
+107        -29        -0.6383985818E+00
+107         30        -0.2917506320E+00
+107        -30        -0.5363182282E+00
+107         31        -0.6084005031E+00
+107        -31        -0.6358572038E-01
+107         32        -0.3246583136E+00
+107        -32         0.5132917075E+00
+107         33         0.2455872261E+00
+107        -33         0.6016940829E+00
+107         34         0.9782789943E-01
+107        -34        -0.1940473685E-01
+107         35        -0.4385094209E+00
+107        -35        -0.3341335512E+00
+107         36        -0.4951953036E+00
+107        -36        -0.3084511447E+00
+107         37         0.3074791633E-01
+107        -37        -0.4597422346E-01
+107         38         0.2984439146E+00
+107        -38         0.3528573694E+00
+107         39         0.1338059748E-02
+107        -39         0.1840544094E+00
+107         40        -0.7355001565E-01
+107        -40        -0.5255521903E+00
+107         41         0.3259952052E-01
+107        -41        -0.6453741902E+00
+107         42        -0.2389715819E+00
+107        -42        -0.3414414680E+00
+107         43        -0.1153328140E+00
+107        -43         0.2461988410E-01
+107         44         0.1759337119E+00
+107        -44         0.1037744505E+00
+107         45         0.1932712144E+00
+107        -45         0.5260296393E+00
+107         46        -0.1110739365E+00
+107        -46         0.5003691084E+00
+107         47        -0.2998478742E+00
+107        -47        -0.9335603875E-01
+107         48         0.6634809037E-01
+107        -48        -0.6023553586E+00
+107         49         0.1343221402E+00
+107        -49        -0.3318921949E+00
+107         50        -0.7519627809E-01
+107        -50        -0.1483377165E+00
+107         51         0.1742236616E-01
+107        -51        -0.1379899900E+00
+107         52         0.2098737232E+00
+107        -52        -0.1272341853E+00
+107         53         0.2545352816E+00
+107        -53         0.1925443151E+00
+107         54        -0.4135267898E-01
+107        -54         0.4868599378E+00
+107         55         0.7181346691E-01
+107        -55         0.2366777938E+00
+107         56         0.2553588346E+00
+107        -56        -0.1217125546E+00
+107         57         0.1281591723E+00
+107        -57         0.1268069331E-01
+107         58         0.2419142621E-01
+107        -58        -0.2702204684E-01
+107         59         0.2964939170E+00
+107        -59         0.8401689386E-01
+107         60         0.2403004387E+00
+107        -60         0.2177974933E+00
+107         61        -0.1186060071E+00
+107        -61         0.2737704537E+00
+107         62        -0.1759505734E+00
+107        -62         0.2328662429E+00
+107         63        -0.9016374449E-01
+107        -63         0.1937130873E+00
+107         64        -0.9245561093E-01
+107        -64         0.3257600224E+00
+107         65        -0.2198523206E+00
+107        -65         0.2925202604E+00
+107         66        -0.1138209014E+00
+107        -66         0.3503975898E-01
+107         67         0.1120839080E-01
+107        -67        -0.2411153757E+00
+107         68         0.5714944217E-01
+107        -68        -0.3183048026E+00
+107         69         0.1105765450E+00
+107        -69        -0.1614983793E+00
+107         70         0.1538686133E+00
+107        -70        -0.8004371239E-02
+107         71         0.2335014755E+00
+107        -71         0.4593377979E-01
+107         72         0.1982749958E+00
+107        -72         0.1110938138E+00
+107         73        -0.6011720555E-02
+107        -73         0.1402543281E+00
+107         74         0.8311032302E-01
+107        -74         0.1661896493E+00
+107         75        -0.2291544059E-01
+107        -75         0.1033916092E+00
+107         76        -0.1021069235E+00
+107        -76         0.2255127526E+00
+107         77        -0.2142606859E+00
+107        -77         0.7106052856E-01
+107         78        -0.1137630762E-01
+107        -78        -0.1272247911E+00
+107         79         0.2563450805E-01
+107        -79        -0.2378077064E+00
+107         80        -0.1462271523E+00
+107        -80        -0.3638838001E-01
+107         81        -0.1138422026E+00
+107        -81         0.3911613497E-02
+107         82        -0.1573992021E+00
+107        -82        -0.1333293990E-01
+107         83        -0.1952941440E+00
+107        -83        -0.3012878537E-01
+107         84        -0.1087193652E+00
+107        -84         0.5179973910E-01
+107         85        -0.3972060623E-02
+107        -85         0.1930050556E+00
+107         86         0.5347539424E-01
+107        -86         0.5392668606E-02
+107         87        -0.1272389411E+00
+107        -87        -0.1103290381E+00
+107         88        -0.1553164328E+00
+107        -88        -0.1821812851E+00
+107         89        -0.2457389701E+00
+107        -89        -0.2176880015E+00
+107         90        -0.1994807411E+00
+107        -90        -0.1780992591E+00
+107         91        -0.3000789134E+00
+107        -91        -0.5254986654E-01
+107         92        -0.1246653567E+00
+107        -92         0.1921602812E+00
+107         93         0.1320651506E+00
+107        -93         0.1069505240E+00
+107         94         0.1385413830E+00
+107        -94         0.4024322538E-01
+107         95         0.1446520493E+00
+107        -95        -0.2927268596E-01
+107         96         0.8738996308E-01
+107        -96        -0.1144151945E-01
+107         97        -0.3057899182E-01
+107        -97        -0.1308416138E+00
+107         98        -0.7769590254E-01
+107        -98        -0.1106670775E+00
+107         99         0.1401517604E+00
+107        -99        -0.7773941918E-03
+107        100         0.1629153273E+00
+107       -100         0.4002188898E-01
+107        101         0.2114895649E+00
+107       -101         0.8482317515E-01
+107        102        -0.5090276377E-01
+107       -102         0.1484687312E+00
+107        103        -0.1684696123E+00
+107       -103         0.1620690073E+00
+107        104        -0.7068309482E-01
+107       -104         0.1383457289E+00
+107        105         0.3061091371E-01
+107       -105         0.1688613765E+00
+107        106        -0.7945814139E-01
+107       -106         0.5526451907E-01
+107        107        -0.1427754779E+00
+107       -107         0.6920606890E-01
+108          0        -0.8089323156E+00
+108          1         0.6025935485E+00
+108         -1         0.2157127949E+00
+108          2         0.8547575633E+00
+108         -2         0.3710294209E+00
+108          3        -0.3550011837E+00
+108         -3        -0.2988995172E+00
+108          4        -0.4402540963E+00
+108         -4        -0.1129428780E+00
+108          5         0.2321679167E+00
+108         -5         0.2414337408E+00
+108          6         0.1414985430E+00
+108         -6        -0.2273000213E+00
+108          7        -0.1938629417E+00
+108         -7        -0.1853133093E+00
+108          8         0.6324130873E-01
+108         -8         0.2714234764E+00
+108          9        -0.1003982067E+00
+108         -9         0.1963773675E+00
+108         10        -0.7281944161E+00
+108        -10        -0.3397194209E+00
+108         11         0.2986519001E+00
+108        -11        -0.1657247432E+00
+108         12         0.9721509034E+00
+108        -12         0.6455939335E+00
+108         13        -0.4176225756E+00
+108        -13        -0.4002724839E-01
+108         14        -0.8279756461E+00
+108        -14        -0.6826707254E+00
+108         15         0.5346163661E+00
+108        -15         0.5358060203E-01
+108         16         0.8193615087E+00
+108        -16         0.4245740882E+00
+108         17        -0.1856806438E+00
+108        -17         0.3468145625E-01
+108         18        -0.5347894691E+00
+108        -18         0.7199548991E-01
+108         19         0.3695428169E-01
+108        -19         0.2626395197E-01
+108         20         0.2249586819E+00
+108        -20        -0.9578588765E-01
+108         21        -0.3581600163E+00
+108        -21         0.1824301360E+00
+108         22        -0.3504933286E+00
+108        -22        -0.7182839874E-01
+108         23         0.1846476527E+00
+108        -23        -0.3061696151E+00
+108         24         0.2205100272E+00
+108        -24         0.1114566791E+00
+108         25         0.1240770193E+00
+108        -25         0.3350519957E+00
+108         26         0.9675534896E-01
+108        -26        -0.9840992217E-02
+108         27        -0.6190962563E-02
+108        -27        -0.4837244986E+00
+108         28        -0.2450146361E+00
+108        -28        -0.2878631993E+00
+108         29        -0.4010953385E+00
+108        -29         0.3983249012E+00
+108         30        -0.1222891326E+00
+108        -30         0.5411042645E+00
+108         31         0.4202855535E+00
+108        -31         0.2136344235E+00
+108         32         0.4047440992E+00
+108        -32        -0.1659665356E+00
+108         33        -0.7257102093E-01
+108        -33        -0.4457072641E+00
+108         34        -0.1553060399E+00
+108        -34        -0.2323435758E+00
+108         35         0.2626100980E+00
+108        -35         0.1299708362E+00
+108         36         0.5446186745E+00
+108        -36         0.2406619705E+00
+108         37         0.1534670393E+00
+108        -37         0.1222478424E+00
+108         38        -0.2235495522E+00
+108        -38        -0.1262087947E+00
+108         39        -0.1443235430E+00
+108        -39        -0.1834000855E+00
+108         40         0.7485566362E-01
+108        -40         0.2364494653E+00
+108         41         0.1188906292E+00
+108        -41         0.5083300520E+00
+108         42         0.6498813893E-01
+108        -42         0.3404703301E+00
+108         43         0.1627431810E+00
+108        -43         0.5067040223E-01
+108         44        -0.9891661968E-01
+108        -44         0.1863215577E+00
+108         45        -0.1585420620E+00
+108        -45        -0.4750403162E-01
+108         46         0.6895332151E-01
+108        -46        -0.4269839281E+00
+108         47         0.2368687557E+00
+108        -47        -0.2657707232E+00
+108         48         0.5379041376E-01
+108        -48         0.1441034441E+00
+108         49         0.4735582548E-01
+108        -49         0.2884133833E+00
+108         50         0.4394762003E-01
+108        -50         0.1303135156E+00
+108         51         0.1031630741E+00
+108        -51         0.4551281886E-04
+108         52        -0.1298383019E+00
+108        -52         0.1900234379E+00
+108         53        -0.3047761260E+00
+108        -53         0.4674623874E-01
+108         54        -0.1294049253E+00
+108        -54        -0.3573563932E+00
+108         55        -0.1797221171E-01
+108        -55        -0.3839100274E+00
+108         56        -0.3021230741E+00
+108        -56        -0.1027629872E+00
+108         57        -0.1337880347E+00
+108        -57        -0.1285868583E+00
+108         58        -0.2269124676E-01
+108        -58         0.3103539466E-03
+108         59        -0.1807698435E+00
+108        -59         0.8700978727E-01
+108         60        -0.3301586119E+00
+108        -60         0.2095925195E-01
+108         61        -0.2934486164E-02
+108        -61        -0.6727954609E-01
+108         62         0.1674030720E+00
+108        -62        -0.1875970838E+00
+108         63         0.7726642000E-01
+108        -63        -0.3364148016E+00
+108         64         0.1340898811E+00
+108        -64        -0.2778997620E+00
+108         65         0.2569801412E+00
+108        -65        -0.1689291500E+00
+108         66         0.2326809224E+00
+108        -66        -0.5872018528E-01
+108         67         0.1270881595E+00
+108        -67         0.1128720584E+00
+108         68        -0.6170179642E-01
+108        -68         0.3090624021E+00
+108         69        -0.5715462392E-01
+108        -69         0.1277644159E+00
+108         70        -0.6807926813E-01
+108        -70        -0.1635971649E+00
+108         71        -0.2002979282E+00
+108        -71        -0.1883677623E+00
+108         72        -0.1719742661E+00
+108        -72         0.7680857531E-01
+108         73        -0.4423485739E-01
+108        -73         0.9135836295E-01
+108         74         0.6295589989E-01
+108        -74        -0.4896271314E-02
+108         75         0.4623404880E-01
+108        -75        -0.1567136000E+00
+108         76         0.1733718806E+00
+108        -76        -0.2074185089E+00
+108         77         0.1474908501E+00
+108        -77        -0.2136480364E+00
+108         78         0.2996470907E-03
+108        -78         0.9337532683E-02
+108         79        -0.1514656903E+00
+108        -79         0.1593636960E+00
+108         80        -0.8592726104E-02
+108        -80         0.7072504434E-02
+108         81         0.2035228554E+00
+108        -81        -0.1649035026E+00
+108         82         0.1940124573E+00
+108        -82        -0.2592795296E-01
+108         83         0.4730117951E-01
+108        -83         0.6316594039E-01
+108         84         0.5486358839E-01
+108        -84         0.4180426770E-01
+108         85         0.7872587239E-01
+108        -85         0.2957617710E-01
+108         86        -0.8846115452E-01
+108        -86         0.3615684521E-01
+108         87        -0.1029264257E+00
+108        -87         0.1540983646E-01
+108         88         0.5587270936E-01
+108        -88         0.6223275418E-01
+108         89         0.1374917996E+00
+108        -89         0.2007155981E+00
+108         90         0.1544673813E-01
+108        -90         0.2057106229E+00
+108         91         0.1339965207E+00
+108        -91         0.1876785849E+00
+108         92         0.2372845301E+00
+108        -92        -0.7987858565E-01
+108         93         0.3377559697E-01
+108        -93        -0.1038661740E+00
+108         94        -0.1229434948E+00
+108        -94        -0.1181811951E+00
+108         95        -0.1859270031E+00
+108        -95        -0.7295164464E-01
+108         96        -0.1029840625E+00
+108        -96        -0.6892096993E-01
+108         97         0.2364664814E-02
+108        -97         0.1070082653E+00
+108         98         0.5926857046E-02
+108        -98         0.2308694450E+00
+108         99        -0.1279549108E+00
+108        -99         0.1003751045E+00
+108        100        -0.8834456408E-01
+108       -100         0.3762714414E-01
+108        101        -0.2655116864E-01
+108       -101        -0.1174430130E+00
+108        102         0.9704319513E-01
+108       -102        -0.1106602115E+00
+108        103         0.6985130766E-01
+108       -103        -0.3583927954E-01
+108        104         0.1011861219E+00
+108       -104         0.5155383517E-01
+108        105         0.5595652094E-01
+108       -105        -0.3781571833E-01
+108        106        -0.6918949056E-01
+108       -106        -0.3485363017E-02
+108        107        -0.1208780998E+00
+108       -107         0.6882955144E-01
+108        108        -0.1085697016E+00
+108       -108         0.1956411676E-01
+109          0         0.6773828053E+00
+109          1         0.5620504233E-01
+109         -1        -0.9434767801E-04
+109          2        -0.7664615610E+00
+109         -2        -0.3281405825E+00
+109          3        -0.1026640403E+00
+109         -3        -0.2932806198E-01
+109          4         0.3953768701E+00
+109         -4         0.2702218088E+00
+109          5        -0.1056542982E-01
+109         -5        -0.1231331264E+00
+109          6        -0.2896357958E+00
+109         -6        -0.3997733987E-01
+109          7         0.8270984721E-01
+109         -7         0.1412575894E+00
+109          8         0.3480934487E-01
+109         -8        -0.4253227572E-01
+109          9        -0.1322485074E+00
+109         -9        -0.2410139146E+00
+109         10         0.4148421295E+00
+109        -10         0.1510564358E+00
+109         11         0.2904135353E+00
+109        -11         0.3249331374E+00
+109         12        -0.5019656905E+00
+109        -12        -0.2664737477E+00
+109         13        -0.1711171865E+00
+109        -13        -0.3068516268E+00
+109         14         0.6365710192E+00
+109        -14         0.3921911677E+00
+109         15         0.1269028786E+00
+109        -15         0.2847121863E+00
+109         16        -0.6787293096E+00
+109        -16        -0.2782629926E+00
+109         17        -0.3115618057E+00
+109        -17        -0.1798275564E+00
+109         18         0.3390642767E+00
+109        -18         0.1379461912E-01
+109         19         0.1390339028E+00
+109        -19         0.5151937539E-01
+109         20        -0.1456302700E+00
+109        -20         0.2240125150E-01
+109         21         0.1219897737E+00
+109        -21        -0.5107391079E-01
+109         22         0.2991473108E+00
+109        -22        -0.9305781902E-01
+109         23         0.6100207335E-02
+109        -23         0.1598280360E+00
+109         24        -0.1200635316E+00
+109        -24         0.1705745506E+00
+109         25        -0.1200617570E+00
+109        -25        -0.2227799490E+00
+109         26        -0.2491703134E-01
+109        -26        -0.2405329761E+00
+109         27        -0.7795998245E-01
+109        -27         0.1764034653E+00
+109         28        -0.4965589504E-01
+109        -28         0.3764935815E+00
+109         29         0.2707542273E+00
+109        -29        -0.3091246448E-01
+109         30         0.3739393309E+00
+109        -30        -0.2778494522E+00
+109         31         0.2390235813E-01
+109        -31        -0.2677383783E+00
+109         32        -0.2630162171E+00
+109        -32        -0.7594271486E-01
+109         33        -0.2002330808E+00
+109        -33         0.1614374059E+00
+109         34         0.1183703908E+00
+109        -34         0.2811260188E+00
+109         35         0.7261635009E-01
+109        -35         0.9133474467E-01
+109         36        -0.2500444070E+00
+109        -36        -0.7048976184E-01
+109         37        -0.3266711900E+00
+109        -37        -0.1464106668E+00
+109         38        -0.1454642141E-01
+109        -38        -0.9450624961E-01
+109         39         0.1758228447E+00
+109        -39         0.1576442253E+00
+109         40         0.1742275555E-02
+109        -40         0.5143061519E-01
+109         41        -0.6793045223E-01
+109        -41        -0.2903335514E+00
+109         42         0.3506623450E-01
+109        -42        -0.3108415099E+00
+109         43        -0.1569468863E+00
+109        -43        -0.1949229023E+00
+109         44        -0.1640147759E-01
+109        -44        -0.1108460514E+00
+109         45         0.6134836471E-01
+109        -45        -0.1366622931E+00
+109         46         0.4506123197E-01
+109        -46         0.1310519718E+00
+109         47        -0.1010203290E+00
+109        -47         0.2603100962E+00
+109         48        -0.2125212691E+00
+109        -48         0.1665914520E+00
+109         49        -0.6209851985E-01
+109        -49        -0.6237426747E-01
+109         50         0.8344173334E-01
+109        -50        -0.3840093798E-01
+109         51        -0.5621245853E-01
+109        -51         0.1295337417E-01
+109         52         0.1908827011E-01
+109        -52        -0.1006323687E+00
+109         53         0.1357733868E+00
+109        -53        -0.1619701660E+00
+109         54         0.2228473524E+00
+109        -54        -0.8608197845E-02
+109         55         0.7194454194E-01
+109        -55         0.2198976096E+00
+109         56         0.1154991316E+00
+109        -56         0.2416299322E+00
+109         57         0.1295061130E+00
+109        -57         0.4299749590E-01
+109         58         0.1584652390E+00
+109        -58        -0.5034570497E-02
+109         59        -0.3638031871E-01
+109        -59        -0.4952828403E-01
+109         60         0.1014508182E+00
+109        -60         0.1414546271E-01
+109         61         0.1191846926E+00
+109        -61         0.8349964297E-01
+109         62        -0.4714350899E-01
+109        -62         0.1348196790E+00
+109         63        -0.6689150194E-01
+109        -63         0.1764984133E+00
+109         64        -0.4801361688E-01
+109        -64         0.1024011896E+00
+109         65        -0.1081506743E+00
+109        -65         0.1316010885E+00
+109         66        -0.2016615659E+00
+109        -66         0.1196925897E+00
+109         67        -0.1179160723E+00
+109        -67         0.3310865514E-01
+109         68         0.4778085260E-01
+109        -68        -0.6673173910E-01
+109         69         0.6278132565E-01
+109        -69        -0.9714081101E-01
+109         70         0.3892433634E-01
+109        -70        -0.3234531145E-01
+109         71         0.2745170479E-01
+109        -71        -0.2859002985E-01
+109         72         0.1222862580E+00
+109        -72        -0.1537749385E-01
+109         73         0.9851454401E-01
+109        -73        -0.9571667590E-02
+109         74         0.2109829667E-01
+109        -74         0.1287588372E+00
+109         75         0.4073419988E-01
+109        -75         0.9621573639E-01
+109         76        -0.3095935535E-01
+109        -76         0.1025246271E+00
+109         77        -0.9480192889E-01
+109        -77         0.1056899271E+00
+109         78        -0.1045385186E+00
+109        -78         0.5128467814E-01
+109         79         0.4402237688E-01
+109        -79        -0.5855861061E-01
+109         80         0.9514964144E-01
+109        -80         0.1974866696E-01
+109         81        -0.1373894490E+00
+109        -81         0.1963761249E-01
+109         82        -0.1853592315E+00
+109        -82        -0.4813855013E-01
+109         83        -0.5643745689E-01
+109        -83        -0.6140175738E-01
+109         84        -0.4933247583E-01
+109        -84        -0.1584148860E-01
+109         85        -0.6925420067E-01
+109        -85        -0.3213081114E-01
+109         86        -0.2929644638E-01
+109        -86         0.6148346742E-01
+109         87         0.5563970954E-01
+109        -87         0.6252322322E-01
+109         88        -0.7004714956E-02
+109        -88         0.1460720033E-01
+109         89        -0.1545880682E-01
+109        -89        -0.3059857010E-01
+109         90        -0.6575052234E-01
+109        -90        -0.7736709814E-01
+109         91         0.1428114656E-02
+109        -91        -0.1783854940E+00
+109         92        -0.1647432544E+00
+109        -92        -0.1123169256E+00
+109         93        -0.1889228935E+00
+109        -93         0.8920511885E-02
+109         94        -0.4669464720E-02
+109        -94         0.4031399924E-01
+109         95         0.1713643108E+00
+109        -95         0.1074127480E-02
+109         96         0.7510677400E-01
+109        -96        -0.2306020213E-01
+109         97         0.7909434581E-01
+109        -97        -0.3454761264E-01
+109         98        -0.7302418093E-01
+109        -98        -0.5883986508E-01
+109         99        -0.3711458406E-01
+109        -99        -0.6586755126E-01
+109        100        -0.2118650230E-01
+109       -100        -0.1119700435E+00
+109        101         0.3572228383E-01
+109       -101         0.4934816974E-01
+109        102         0.7557241452E-01
+109       -102         0.3741202966E-01
+109        103         0.9542450189E-01
+109       -103         0.1141847287E+00
+109        104        -0.4912427946E-01
+109       -104         0.2685883480E-01
+109        105        -0.1086159416E+00
+109       -105         0.7313005588E-01
+109        106        -0.1332927700E-01
+109       -106         0.3194323659E-01
+109        107        -0.7789727637E-02
+109       -107        -0.1281856653E+00
+109        108        -0.7192336821E-01
+109       -108        -0.6331590136E-01
+109        109        -0.2699156776E-02
+109       -109         0.1513883035E-01
+110          0        -0.2778540945E+00
+110          1        -0.1821632893E+00
+110         -1        -0.8964298540E-01
+110          2         0.3622177048E+00
+110         -2         0.1344940932E+00
+110          3         0.1133118298E+00
+110         -3         0.8377715421E-01
+110          4        -0.2296263223E+00
+110         -4        -0.1913914991E+00
+110          5        -0.6392810510E-02
+110         -5         0.5742355370E-01
+110          6         0.2084246506E+00
+110         -6         0.1107765012E+00
+110          7        -0.1164514010E-01
+110         -7        -0.1129586751E+00
+110          8        -0.4427015726E-01
+110         -8        -0.8214031039E-01
+110          9         0.7362094975E-01
+110         -9         0.1105062246E+00
+110         10        -0.1229984414E+00
+110        -10         0.4318246046E-01
+110         11        -0.3362470964E+00
+110        -11        -0.1518053105E+00
+110         12         0.1349970079E+00
+110        -12         0.2690088465E-01
+110         13         0.2613402102E+00
+110        -13         0.2833936512E+00
+110         14        -0.2815525798E+00
+110        -14        -0.9867798703E-01
+110         15        -0.2381349843E+00
+110        -15        -0.2747461202E+00
+110         16         0.3376411572E+00
+110        -16         0.1419347082E+00
+110         17         0.2703579648E+00
+110        -17         0.1912920992E+00
+110         18        -0.1555177604E+00
+110        -18        -0.1015238197E+00
+110         19        -0.1601665593E+00
+110        -19        -0.1076762729E+00
+110         20         0.2229136852E-01
+110        -20        -0.8413432725E-02
+110         21         0.2035223721E-01
+110        -21         0.3768606571E-01
+110         22        -0.1583249079E+00
+110        -22         0.1246358886E+00
+110         23        -0.4202825290E-01
+110        -23        -0.6266563182E-01
+110         24         0.8885011769E-01
+110        -24        -0.1708635773E+00
+110         25         0.7868924066E-01
+110        -25         0.7462151865E-01
+110         26        -0.2161731212E-01
+110        -26         0.1678617082E+00
+110         27         0.7014444008E-01
+110        -27         0.3266940638E-01
+110         28         0.9503506351E-01
+110        -28        -0.1566909283E+00
+110         29        -0.1213525909E+00
+110        -29        -0.8501351646E-01
+110         30        -0.2356513584E+00
+110        -30         0.8861392622E-01
+110         31        -0.1368854475E+00
+110        -31         0.2037480609E+00
+110         32         0.1055069202E+00
+110        -32         0.9880511280E-01
+110         33         0.1933172167E+00
+110        -33        -0.1228560481E-01
+110         34        -0.5243543021E-01
+110        -34        -0.1474390588E+00
+110         35        -0.1504874740E+00
+110        -35        -0.1286673020E+00
+110         36         0.9582265134E-01
+110        -36        -0.4686108126E-01
+110         37         0.2639337980E+00
+110        -37         0.1475979692E+00
+110         38         0.6973062778E-01
+110        -38         0.8880676701E-01
+110         39        -0.5508275905E-01
+110        -39        -0.8823730328E-01
+110         40        -0.3039592745E-01
+110        -40        -0.1245048533E+00
+110         41         0.1410069043E-01
+110        -41         0.1256880861E+00
+110         42         0.4931701537E-01
+110        -42         0.2605107177E+00
+110         43         0.7949608274E-01
+110        -43         0.1637231196E+00
+110         44         0.7857907522E-01
+110        -44        -0.1749983127E-01
+110         45        -0.2819529143E-01
+110        -45         0.8708985485E-01
+110         46        -0.1122420630E+00
+110        -46         0.1454636319E-01
+110         47        -0.2384523007E-02
+110        -47        -0.1352701200E+00
+110         48         0.1458218412E+00
+110        -48        -0.1654857227E+00
+110         49         0.4635806261E-02
+110        -49        -0.7618647008E-01
+110         50        -0.5322043561E-01
+110        -50        -0.1930511158E-01
+110         51         0.1287892696E-01
+110        -51         0.4275783227E-01
+110         52         0.1085254935E-01
+110        -52         0.5720320074E-01
+110         53        -0.2356476913E-01
+110        -53         0.1443202164E+00
+110         54        -0.1429178509E+00
+110        -54         0.1129756016E+00
+110         55        -0.7963821687E-01
+110        -55        -0.7113706476E-01
+110         56        -0.6123540390E-02
+110        -56        -0.1416402815E+00
+110         57        -0.1055886088E+00
+110        -57        -0.3761656526E-02
+110         58        -0.9201033617E-01
+110        -58        -0.2465279132E-01
+110         59         0.4799475927E-01
+110        -59         0.4137408052E-02
+110         60        -0.4168720020E-01
+110        -60        -0.8372959936E-02
+110         61        -0.1143145174E+00
+110        -61        -0.1039679562E-01
+110         62        -0.7305416653E-01
+110        -62        -0.4828301177E-02
+110         63        -0.4159999227E-02
+110        -63        -0.6342542266E-01
+110         64        -0.4396887627E-02
+110        -64        -0.7788573328E-01
+110         65         0.4679021417E-01
+110        -65        -0.1414709322E+00
+110         66         0.1426584827E+00
+110        -66        -0.6629434680E-01
+110         67         0.9547944304E-01
+110        -67        -0.6312626543E-01
+110         68         0.5243209530E-01
+110        -68        -0.2318583244E-01
+110         69        -0.1556713710E-01
+110        -69         0.1080831485E+00
+110         70         0.4018537848E-02
+110        -70         0.1019879247E+00
+110         71         0.4391849118E-01
+110        -71         0.1684483484E-01
+110         72        -0.5569293883E-01
+110        -72        -0.6037208122E-01
+110         73        -0.1340146236E+00
+110        -73        -0.4265541760E-01
+110         74        -0.3786075741E-01
+110        -74         0.8744297677E-02
+110         75        -0.8742026208E-02
+110        -75        -0.9444920802E-01
+110         76         0.4927582711E-01
+110        -76        -0.4283550908E-02
+110         77         0.5122632129E-01
+110        -77        -0.2372630689E-01
+110         78         0.9992625689E-01
+110        -78         0.1085705090E-01
+110         79        -0.2071666107E-01
+110        -79        -0.1726713482E-01
+110         80        -0.1029222568E+00
+110        -80        -0.3029864573E-01
+110         81        -0.9424651076E-02
+110        -81        -0.8082030199E-01
+110         82         0.1921223990E-01
+110        -82        -0.6507682712E-01
+110         83         0.1919823180E-01
+110        -83        -0.4458331153E-01
+110         84         0.1726342571E-01
+110        -84        -0.1702084661E-01
+110         85         0.2127231589E-01
+110        -85         0.3928162241E-02
+110         86         0.6720248459E-01
+110        -86         0.2216034638E-01
+110         87        -0.2379243312E-01
+110        -87        -0.1648181811E-01
+110         88        -0.3181841049E-01
+110        -88        -0.1675877458E-02
+110         89        -0.2159637654E-01
+110        -89         0.3760187997E-02
+110         90         0.3966418690E-01
+110        -90         0.1377490632E+00
+110         91        -0.6090814843E-01
+110        -91         0.1452081939E+00
+110         92         0.1886663729E-01
+110        -92         0.7052304497E-01
+110         93         0.1649584827E+00
+110        -93        -0.3759468136E-01
+110         94         0.5904292068E-01
+110        -94        -0.4504786059E-01
+110         95        -0.4882339567E-01
+110        -95        -0.5615825502E-01
+110         96        -0.3453372213E-01
+110        -96        -0.4689150157E-02
+110         97         0.1160831534E-01
+110        -97         0.8863240022E-02
+110         98         0.4980808615E-01
+110        -98         0.1316578863E-01
+110         99         0.2488608662E-01
+110        -99         0.5550985917E-01
+110        100        -0.6847900989E-01
+110       -100         0.7407133077E-01
+110        101        -0.2098946024E-01
+110       -101        -0.5247275775E-01
+110        102        -0.5111939432E-01
+110       -102        -0.3553482404E-01
+110        103        -0.9252924575E-02
+110       -103        -0.2429745479E-01
+110        104         0.3126780377E-02
+110       -104         0.1670463788E-01
+110        105         0.4833889635E-01
+110       -105        -0.5505439771E-01
+110        106         0.4392719548E-01
+110       -106        -0.2494189241E-01
+110        107        -0.9413859673E-02
+110       -107         0.3299927709E-01
+110        108        -0.2076620891E-01
+110       -108         0.2796391567E-01
+110        109        -0.1034297749E+00
+110       -109        -0.1739361040E-01
+110        110        -0.8319098871E-01
+110       -110        -0.4510348835E-01
diff --git a/amda_plus/amdalib/src/mars/ac2mso.pro b/amda_plus/amdalib/src/mars/ac2mso.pro
new file mode 100644
index 0000000..f7ba29d
--- /dev/null
+++ b/amda_plus/amdalib/src/mars/ac2mso.pro
@@ -0,0 +1,17 @@
+; $Id:   $
+pro ac2mso, Time, VecMSO
+  
+  Number = N_elements(Time);
+  VecAC = fltarr(3); 
+
+  for i = 0, Number-1 do begin
+
+          JDReal = Doubl2JD(Time[i]);
+          err = call_external(!PROJLIB + 'idl_mexcom.so','AC2MSO', JDReal, VecMSO[*,i],  VecAC)       
+          VecMSO[*,i] =  VecAC
+         
+  endfor
+ return
+end
+
+ 
\ No newline at end of file
diff --git a/amda_plus/amdalib/src/mars/g2c.h b/amda_plus/amdalib/src/mars/g2c.h
new file mode 100644
index 0000000..71e021d
--- /dev/null
+++ b/amda_plus/amdalib/src/mars/g2c.h
@@ -0,0 +1,236 @@
+/* g2c.h  --  g77 version of f2c (Standard Fortran to C header file) */
+
+/* This file is generated by the g77 libg2c configuration process from a
+   file named g2c.hin.  This process sets up the appropriate types,
+   defines the appropriate macros, and so on.  The resulting g2c.h file
+   is used to build g77's copy of libf2c, named libg2c, and also can
+   be used when compiling C code produced by f2c to link the resulting
+   object file(s) with those produced by the same version of g77 that
+   produced this file, allowing inter-operability of f2c-compiled and
+   g77-compiled code.  */
+
+/**  barf  [ba:rf]  2.  "He suggested using FORTRAN, and everybody barfed."
+
+	- From The Shogakukan DICTIONARY OF NEW ENGLISH (Second edition) */
+
+#ifndef F2C_INCLUDE
+#define F2C_INCLUDE
+
+/* F2C_INTEGER will normally be `int' but would be `long' on 16-bit systems */
+/* we assume short, float are OK */
+typedef int /* long int */ integer;
+typedef unsigned long int /* long */ uinteger;
+typedef char *address;
+typedef short int shortint;
+typedef float real;
+typedef double doublereal;
+typedef struct { real r, i; } complex;
+typedef struct { doublereal r, i; } doublecomplex;
+typedef int /* long int */ logical;
+typedef short int shortlogical;
+typedef char logical1;
+typedef char integer1;
+typedef long long int /* long long */ longint;		/* system-dependent */
+typedef unsigned long long int /* long long */ ulongint;	/* system-dependent */
+#define qbit_clear(a,b)	((a) & ~((ulongint)1 << (b)))
+#define qbit_set(a,b)	((a) |  ((ulongint)1 << (b)))
+
+#define TRUE_ (1)
+#define FALSE_ (0)
+
+/* Extern is for use with -E */
+#ifndef Extern
+#define Extern extern
+#endif
+
+/* I/O stuff */
+
+#ifdef f2c_i2
+#error "f2c_i2 will not work with g77!!!!"
+/* for -i2 */
+typedef short flag;
+typedef short ftnlen;
+typedef short ftnint;
+#else
+typedef int /* long int */ flag;
+typedef int /* long int */ ftnlen;
+typedef int /* long int */ ftnint;
+#endif
+
+/*external read, write*/
+typedef struct
+{	flag cierr;
+	ftnint ciunit;
+	flag ciend;
+	char *cifmt;
+	ftnint cirec;
+} cilist;
+
+/*internal read, write*/
+typedef struct
+{	flag icierr;
+	char *iciunit;
+	flag iciend;
+	char *icifmt;
+	ftnint icirlen;
+	ftnint icirnum;
+} icilist;
+
+/*open*/
+typedef struct
+{	flag oerr;
+	ftnint ounit;
+	char *ofnm;
+	ftnlen ofnmlen;
+	char *osta;
+	char *oacc;
+	char *ofm;
+	ftnint orl;
+	char *oblnk;
+} olist;
+
+/*close*/
+typedef struct
+{	flag cerr;
+	ftnint cunit;
+	char *csta;
+} cllist;
+
+/*rewind, backspace, endfile*/
+typedef struct
+{	flag aerr;
+	ftnint aunit;
+} alist;
+
+/* inquire */
+typedef struct
+{	flag inerr;
+	ftnint inunit;
+	char *infile;
+	ftnlen infilen;
+	ftnint	*inex;	/*parameters in standard's order*/
+	ftnint	*inopen;
+	ftnint	*innum;
+	ftnint	*innamed;
+	char	*inname;
+	ftnlen	innamlen;
+	char	*inacc;
+	ftnlen	inacclen;
+	char	*inseq;
+	ftnlen	inseqlen;
+	char 	*indir;
+	ftnlen	indirlen;
+	char	*infmt;
+	ftnlen	infmtlen;
+	char	*inform;
+	ftnint	informlen;
+	char	*inunf;
+	ftnlen	inunflen;
+	ftnint	*inrecl;
+	ftnint	*innrec;
+	char	*inblank;
+	ftnlen	inblanklen;
+} inlist;
+
+#define VOID void
+
+union Multitype {	/* for multiple entry points */
+	integer1 g;
+	shortint h;
+	integer i;
+	/* longint j; */
+	real r;
+	doublereal d;
+	complex c;
+	doublecomplex z;
+	};
+
+typedef union Multitype Multitype;
+
+/*typedef long int Long;*/	/* No longer used; formerly in Namelist */
+
+struct Vardesc {	/* for Namelist */
+	char *name;
+	char *addr;
+	ftnlen *dims;
+	int  type;
+	};
+typedef struct Vardesc Vardesc;
+
+struct Namelist {
+	char *name;
+	Vardesc **vars;
+	int nvars;
+	};
+typedef struct Namelist Namelist;
+
+#define abs(x) ((x) >= 0 ? (x) : -(x))
+#define dabs(x) (doublereal)abs(x)
+#define min(a,b) ((a) <= (b) ? (a) : (b))
+#define max(a,b) ((a) >= (b) ? (a) : (b))
+#define dmin(a,b) (doublereal)min(a,b)
+#define dmax(a,b) (doublereal)max(a,b)
+#define bit_test(a,b)	((a) >> (b) & 1)
+#define bit_clear(a,b)	((a) & ~((uinteger)1 << (b)))
+#define bit_set(a,b)	((a) |  ((uinteger)1 << (b)))
+
+/* procedure parameter types for -A and -C++ */
+
+#define F2C_proc_par_types 1
+#ifdef __cplusplus
+typedef int /* Unknown procedure type */ (*U_fp)(...);
+typedef shortint (*J_fp)(...);
+typedef integer (*I_fp)(...);
+typedef real (*R_fp)(...);
+typedef doublereal (*D_fp)(...), (*E_fp)(...);
+typedef /* Complex */ VOID (*C_fp)(...);
+typedef /* Double Complex */ VOID (*Z_fp)(...);
+typedef logical (*L_fp)(...);
+typedef shortlogical (*K_fp)(...);
+typedef /* Character */ VOID (*H_fp)(...);
+typedef /* Subroutine */ int (*S_fp)(...);
+#else
+typedef int /* Unknown procedure type */ (*U_fp)();
+typedef shortint (*J_fp)();
+typedef integer (*I_fp)();
+typedef real (*R_fp)();
+typedef doublereal (*D_fp)(), (*E_fp)();
+typedef /* Complex */ VOID (*C_fp)();
+typedef /* Double Complex */ VOID (*Z_fp)();
+typedef logical (*L_fp)();
+typedef shortlogical (*K_fp)();
+typedef /* Character */ VOID (*H_fp)();
+typedef /* Subroutine */ int (*S_fp)();
+#endif
+/* E_fp is for real functions when -R is not specified */
+typedef VOID C_f;	/* complex function */
+typedef VOID H_f;	/* character function */
+typedef VOID Z_f;	/* double complex function */
+typedef doublereal E_f;	/* real function with -R not specified */
+
+/* undef any lower-case symbols that your C compiler predefines, e.g.: */
+
+#ifndef Skip_f2c_Undefs
+/* (No such symbols should be defined in a strict ANSI C compiler.
+   We can avoid trouble with f2c-translated code by using
+   gcc -ansi [-traditional].) */
+#undef cray
+#undef gcos
+#undef mc68010
+#undef mc68020
+#undef mips
+#undef pdp11
+#undef sgi
+#undef sparc
+#undef sun
+#undef sun2
+#undef sun3
+#undef sun4
+#undef u370
+#undef u3b
+#undef u3b2
+#undef u3b5
+#undef unix
+#undef vax
+#endif
+#endif
diff --git a/amda_plus/amdalib/src/mars/idl_cain.c b/amda_plus/amdalib/src/mars/idl_cain.c
new file mode 100644
index 0000000..d6e61fc
--- /dev/null
+++ b/amda_plus/amdalib/src/mars/idl_cain.c
@@ -0,0 +1,80 @@
+/***************************************************************************
+*                   MEX DD LIBRARY
+*                    idl_cain.c
+*                      V.2.0
+*   Mars Crustal Model Field -> Cain 2000 n=90
+*  
+*   SetUp function:  int  CainSetUp -> reads file   FSU_mars90 and fills COMMONs
+*
+*   Crustal field in MSO:
+*           int  CainField(double JulDay, float MSO(3), float BMSO(3))
+* Versions
+*    17 Dec 2007: Fedorov V.2.0
+****************************************************************************/
+
+#include <stdio.h>
+#include <string.h>
+#include <DD.h>
+#include <math.h>
+#include <external/export.h>
+#ifdef F2C
+#include "f2c.h"
+#else
+#include "g2c.h"
+#endif
+#include "mexcom.h"
+
+/*-------------------- Cain2000 Env SetUp ---------------------------------*/
+int  CainSetUp(int argc, void **argv)
+{
+     real    ty = 2000.0;
+     integer l = 1, maxln;
+     real a;
+     cread_(&ty, &l, &maxln, &a);
+
+     return (short)1;
+}
+
+/*-------------------- Crustal Field ---------------------------------*/
+int  CainField(int argc, void **argv)
+{
+    double *JulDay;
+    float *SS;
+    float *Bmso;
+    double *MSO2PC;
+    real dlat,  dlong, alt;
+    real x, y, z__, f, a = 3390.0;
+    integer mln = 90;
+    double PC[3], PCM=0.0;
+    double pi2deg = 180.0/M_PI;
+
+    JulDay =  (double *)argv[0];
+    SS =      (float *)argv[1];
+    Bmso =    (float *)argv[2];
+
+/*-------------- MSO2AC Position-----------------------------------*/
+          MSO2PC =  mso2pc(*JulDay);
+       //   printf("MSO  %f %f %f\n\r",   SS[0], SS[1], SS[2]);
+          PC[0] = MSO2PC[0]*SS[0]+ MSO2PC[1]*SS[1]+ MSO2PC[2]*SS[2];
+          PC[1] = MSO2PC[3]*SS[0]+ MSO2PC[4]*SS[1]+ MSO2PC[5]*SS[2];
+          PC[2] = MSO2PC[6]*SS[0]+ MSO2PC[7]*SS[1]+ MSO2PC[8]*SS[2];
+ //         PC[0] = -3000.;
+ //         PC[1] = 1500.0;
+ //         PC[2]= 1000.0;
+          PCM =   sqrt(PC[0]*PC[0] +  PC[1]*PC[1] +  PC[2]*PC[2]);
+/*-----------------Cain Crustal Field --------------------------*/
+          dlat =  (real)asin(PC[2]/PCM)*pi2deg;
+          dlong = (real)atan2(PC[1]/PCM,PC[0]/PCM)*pi2deg;
+          alt =   (real)(PCM  - a);
+ //         printf("PC  %f %f %f %f\n\r",   PC[0], PC[1], PC[2], PCM);
+ //         printf("Input %f %f %f\n\r",   dlat,  dlong, alt);
+          gfield_(&dlat, &dlong, &alt, &mln, &a, &x, &y, &z__, &f) ;
+  // printf("AC field %f %f %f\n\r",   x,  y, z__);
+/*-------------- AC2MSO Field-----------------------------------*/
+
+           Bmso[0] = -MSO2PC[0]*(float)x - MSO2PC[3]*(float)y + MSO2PC[6]*(float)z__;
+           Bmso[1] = -MSO2PC[1]*(float)x - MSO2PC[4]*(float)y + MSO2PC[7]*(float)z__;
+           Bmso[2] = -MSO2PC[2]*(float)x - MSO2PC[5]*(float)y + MSO2PC[8]*(float)z__;
+
+return 1;
+}
diff --git a/amda_plus/amdalib/src/mars/idl_mexcom.c b/amda_plus/amdalib/src/mars/idl_mexcom.c
new file mode 100644
index 0000000..69fdc8c
--- /dev/null
+++ b/amda_plus/amdalib/src/mars/idl_mexcom.c
@@ -0,0 +1,66 @@
+/***************************************************************************
+*                    idl_mexcom.c
+*
+*     1. Transformations
+*        Mars-Sun (SunState) to areocentric (fixed-body)
+*           int  MSO2AC(double Julday, float MSO(3), float AC(3))
+*
+*       Areocentic (fixed-body) to Mars-Sun (SunState)                                                                                                  *
+*           int  AC2MSO(double Julday, float AC(3), float MSO(3))
+*
+*
+*     2. Mars Crustal Model Field -> Cain 2000 n=90
+*          Set Up
+*           int  CainSetUp -> reads file   FSU_mars90 and fills COMMONs
+*
+*          Field in MSO
+*           int  CainField(double JulDay, float MSO(3), float BMSO(3))
+****************************************************************************/
+#include <stdio.h>
+#include <string.h>
+#include <DD.h>
+#include <math.h>
+#include <external/export.h>
+#include "mexcom.h"
+
+/*-------------------- MSO2AC ---------------------------------*/
+int  MSO2AC(int argc, void **argv)
+{
+    double *JulDay;
+    float *SS;
+    float *PC;
+    double *MSO2PC;
+
+    JulDay =  (double *)argv[0];
+    SS =  (float *)argv[1];
+    PC =  (float *)argv[2];
+
+          MSO2PC =  mso2pc(*JulDay);
+
+          PC[0] = MSO2PC[0]*SS[0]+ MSO2PC[1]*SS[1]+ MSO2PC[2]*SS[2];
+          PC[1] = MSO2PC[3]*SS[0]+ MSO2PC[4]*SS[1]+ MSO2PC[5]*SS[2];
+          PC[2] = MSO2PC[6]*SS[0]+ MSO2PC[7]*SS[1]+ MSO2PC[8]*SS[2];
+
+return 1;
+ }
+
+/*-------------------- AC2MSO ---------------------------------*/
+int  AC2MSO(int argc, void **argv)
+{
+    double *JulDay;
+    float *SS;
+    float *PC;
+    double *MSO2PC;
+
+    JulDay =  (double *)argv[0];
+    PC =  (float *)argv[1];
+    SS =  (float *)argv[2];
+
+          MSO2PC =  mso2pc(*JulDay);
+
+          SS[0] = MSO2PC[0]*PC[0]+ MSO2PC[3]*PC[1]+ MSO2PC[6]*PC[2];
+          SS[1] = MSO2PC[1]*PC[0]+ MSO2PC[4]*PC[1]+ MSO2PC[7]*PC[2];
+          SS[2] = MSO2PC[2]*PC[0]+ MSO2PC[5]*PC[1]+ MSO2PC[8]*PC[2];
+
+return 1;
+ }
diff --git a/amda_plus/amdalib/src/mars/idl_morsch.c b/amda_plus/amdalib/src/mars/idl_morsch.c
new file mode 100644
index 0000000..124e773
--- /dev/null
+++ b/amda_plus/amdalib/src/mars/idl_morsch.c
@@ -0,0 +1,53 @@
+/***************************************************************************
+****************************************************************************/
+
+#include <stdio.h>
+#include <string.h>
+#include <DD.h>
+#include <math.h>
+#include <external/export.h>
+#include "mexcom.h"
+/*-------------------- Crustal Field ---------------------------------*/
+int  MorschSetUp(int argc, void **argv)
+{
+ 
+     cread_();
+
+     return (short)1;
+}
+
+
+int  MorschField(int argc, void **argv)
+{
+    double *JulDay;
+    float *SS;
+    float *Bmso;
+    double *MSO2PC;
+
+    double B[3], Bm;
+    double PC[3];
+    short side = 0;
+
+    JulDay =  (double *)argv[0];
+    SS =      (float *)argv[1];
+    Bmso =    (float *)argv[2];
+
+/*-------------- MSO2AC Position-----------------------------------*/
+         MSO2PC =  mso2pc(*JulDay);
+     //    fprintf(stderr,"MSO  %f %f %f\n\r",   SS[0], SS[1], SS[2]);
+          PC[0] = MSO2PC[0]*SS[0]+ MSO2PC[1]*SS[1]+ MSO2PC[2]*SS[2];
+          PC[1] = MSO2PC[3]*SS[0]+ MSO2PC[4]*SS[1]+ MSO2PC[5]*SS[2];
+          PC[2] = MSO2PC[6]*SS[0]+ MSO2PC[7]*SS[1]+ MSO2PC[8]*SS[2];
+          
+          if (SS[0] > 0)  side = 1;
+        //  fprintf(stderr,"PC  %f %f %f\n\r",   PC[0], PC[1], PC[2]);
+          field_(PC, side, B, Bm) ;
+        //  fprintf(stderr, "AC field %f %f %f\n\r",   B[0], B[1], B[2]);
+/*-------------- AC2MSO Field-----------------------------------*/
+       
+           Bmso[0] = MSO2PC[0]*(float)B[0] + MSO2PC[3]*(float)B[1] + MSO2PC[6]*(float)B[2];
+           Bmso[1] = MSO2PC[1]*(float)B[0] + MSO2PC[4]*(float)B[1] + MSO2PC[7]*(float)B[2];
+           Bmso[2] = MSO2PC[2]*(float)B[0] + MSO2PC[5]*(float)B[1] + MSO2PC[8]*(float)B[2];
+
+return 1;
+}
diff --git a/amda_plus/amdalib/src/mars/mexcom.h b/amda_plus/amdalib/src/mars/mexcom.h
new file mode 100644
index 0000000..d1bdffa
--- /dev/null
+++ b/amda_plus/amdalib/src/mars/mexcom.h
@@ -0,0 +1,25 @@
+ /*==================================================================
+  *                       mexcom.h
+  *    Header for the libmexcom.so library  &    libmexcom.a
+  *
+  *   Versions revision:
+  *       13 Fev., 2004 - V.1.0  (Fedorov)
+  *       08 July, 2004 - V.2.0 -  Crustal field model -> n=90, Cain, 2003
+  *                                            ms02pc transformation
+  *==================================================================*/
+#ifndef _MEXCOM
+#define _MEXCOM 1
+ 
+
+extern  int GetTime(int ID, char *TimeInt, size_t OrderSize, double *TimeVal) ;
+
+/*---- Returns number of data, or error code -------------*/
+
+extern double *mso2pc(double JDay) ;
+
+/*      Returns pointer to static double array [9] of tranformation matrix
+*       MSO2PC   0-2 -> 1 string, 3-5 -> 2 string, 6-8 -> 3 string
+*       Input -> Current Julian Day
+*/
+
+#endif
diff --git a/amda_plus/amdalib/src/mars/mflpgms4.c b/amda_plus/amdalib/src/mars/mflpgms4.c
new file mode 100644
index 0000000..3f0be0b
--- /dev/null
+++ b/amda_plus/amdalib/src/mars/mflpgms4.c
@@ -0,0 +1,506 @@
+/* mflpgms4.f -- translated by f2c (version 20020314).
+   You must link the resulting object file with the libraries:
+	-lf2c -lm   (in that order)
+   Versions:
+      10 July 2004: V.1.0 - budnik
+      27 July 2004: V.2.0 - flexible read of the data file
+*/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#ifdef F2C
+#include "f2c.h"
+#else
+#include "g2c.h"
+#endif
+
+
+#define DATAFILE "FSU_mars90"
+
+/* Common Block Declarations */
+
+union {
+    struct {
+	real tg[10201]	/* was [101][101] */, const__[10201]	/* was [101][
+		101] */, fm[101], fn[101], ge[8];
+    } _1;
+    struct {
+	real tg[10201]	/* was [101][101] */, c__[10201]	/* was [101][
+		101] */, fm[101], fn[101], ge[8];
+    } _2;
+    struct {
+	real g[10201]	/* was [101][101] */, const__[10201]	/* was [101][
+		101] */, fm[101], fn[101], ge[8];
+    } _3;
+} coeff_;
+
+#define coeff_1 (coeff_._1)
+#define coeff_2 (coeff_._2)
+#define coeff_3 (coeff_._3)
+
+struct {
+    real st, ct, sph, cph, aor, bt, bp, br;
+    integer nmax;
+    real sind, cosd;
+} gcom_;
+
+#define gcom_1 gcom_
+
+/* Table of constant values */
+
+static integer c__1 = 1;
+static integer c__4 = 4;
+static integer c__8 = 8;
+
+/* Subroutine */ int cread_(ty, l, maxln, a)
+real *ty;
+integer *l, *maxln;
+real *a;
+{
+    /* Format strings */
+    static char fmt_9[] = "(a)";
+    static char fmt_10[] = "(2i3,2f16.8,4f10.5)";
+    static char fmt_16[] = "(6x,8f11.4)";
+
+    /* System generated locals */
+    integer i__1, i__2;
+    olist o__1;
+    cllist cl__1;
+
+    /* Builtin functions */
+    integer f_open(), s_rsfe(), do_fio(), e_rsfe(), s_rsle(), do_lio(), 
+	    e_rsle(), f_clos();
+
+    /* Local variables */
+    static integer minn, maxn;
+    static real gtnm, htnm, g[10201]	/* was [101][101] */;
+    static integer i__, m, n;
+    static real t;
+    static integer maxnt;
+    static real gttnm, httnm, tzero;
+    static char ai[72];
+    static integer in, lm;
+    static real tf, gt[10201]	/* was [101][101] */;
+    static integer ln;
+    static real tl;
+    extern /* Subroutine */ int convrt_(), con_();
+    static real gnm, hnm, gtt[10201]	/* was [101][101] */;
+
+    /* Fortran I/O blocks */
+    static cilist io___5 = { 0, 0, 0, fmt_9, 0 };
+    static cilist io___7 = { 0, 0, 0, 0, 0 };
+    static cilist io___12 = { 0, 0, 0, fmt_10, 0 };
+    static cilist io___26 = { 0, 0, 0, fmt_16, 0 };
+    
+/*------ variables to get the data file name -----------*/
+    char DataName[250];
+    
+/* reads schmidt coeffs (with true second derivatives) */
+/* and sets up for gfield and/or sphrc */
+/* mod 5/15/83 to make less work of time update (j. cain) */
+/* only updates after l=0 to maximum nonzero gt or ht value */
+/* expanded coefficient format: 2i3,2f16.8,f,4f10.5 */
+/* also reads from unit 2, not 12 */
+    strcpy(DataName,getenv("DDPROJLIB"));
+    strcat(DataName,DATAFILE);
+//    fprintf(stderr,"%s\n\r",DataName);
+    in = 2;
+    o__1.oerr = 0;
+    o__1.ounit = in;
+    o__1.ofnmlen = strlen(DataName);
+    o__1.ofnm = DataName;
+    o__1.orl = 0;
+    o__1.osta = 0;
+    o__1.oacc = 0;
+    o__1.ofm = 0;
+    o__1.oblnk = 0;
+    f_open(&o__1);
+    if (*l != 0) {
+	minn = 2;
+	con_();
+	maxn = 0;
+	maxnt = 0;
+	io___5.ciunit = in;
+	s_rsfe(&io___5);
+	do_fio(&c__1, ai, (ftnlen)72);
+	e_rsfe();
+	io___7.ciunit = in;
+	s_rsle(&io___7);
+	do_lio(&c__4, &c__1, (char *)&(*a), (ftnlen)sizeof(real));
+	do_lio(&c__4, &c__1, (char *)&tzero, (ftnlen)sizeof(real));
+	do_lio(&c__4, &c__1, (char *)&tf, (ftnlen)sizeof(real));
+	do_lio(&c__4, &c__1, (char *)&tl, (ftnlen)sizeof(real));
+	e_rsle();
+	for (i__ = 1; i__ <= 10000000; ++i__) {
+	    io___12.ciunit = in;
+	    s_rsfe(&io___12);
+	    do_fio(&c__1, (char *)&ln, (ftnlen)sizeof(integer));
+	    do_fio(&c__1, (char *)&lm, (ftnlen)sizeof(integer));
+	    do_fio(&c__1, (char *)&gnm, (ftnlen)sizeof(real));
+	    do_fio(&c__1, (char *)&hnm, (ftnlen)sizeof(real));
+	    do_fio(&c__1, (char *)&gtnm, (ftnlen)sizeof(real));
+	    do_fio(&c__1, (char *)&htnm, (ftnlen)sizeof(real));
+	    do_fio(&c__1, (char *)&gttnm, (ftnlen)sizeof(real));
+	    do_fio(&c__1, (char *)&httnm, (ftnlen)sizeof(real));
+	    e_rsfe();
+	    n = ln + 1;
+	    m = lm + 1;
+	    if (lm * ln == 0) {
+		minn = 1;
+	    }
+	    if (ln < 0) {
+		goto L101;
+	    }
+	    maxn = max(n,maxn);
+	    if (gtnm != (float)0. || htnm != (float)0.) {
+		maxnt = max(n,maxnt);
+	    }
+	    g[n + m * 101 - 102] = gnm;
+	    gt[n + m * 101 - 102] = gtnm;
+	    gtt[n + m * 101 - 102] = gttnm;
+	    if (lm == 0) {
+		goto L100;
+	    }
+	    g[lm + n * 101 - 102] = hnm;
+	    gt[lm + n * 101 - 102] = htnm;
+	    gtt[lm + n * 101 - 102] = httnm;
+L100:
+	    ;
+	}
+L101:
+	*maxln = maxn - 1;
+	io___26.ciunit = in;
+	s_rsfe(&io___26);
+	do_fio(&c__8, (char *)&coeff_1.ge[0], (ftnlen)sizeof(real));
+	e_rsfe();
+/*        write (out,11) ai,maxln,maxnt-1,a,tzero,tf,tl */
+/*         if (l <= 1) then */
+/*           write (out,12) */
+/*           write(6,*)  minn, maxn */
+/*           do 102 n = minn, maxn */
+/*             ln = n - 1 */
+/*             do 103 m = 1, n */
+/*               lm = m - 1 */
+/*               if (m == 1) then */
+/*                 write (out,14) ln,lm,g(n,m),gt(n,m),gtt(n,m) */
+/*               else */
+/*                 write (out,13) ln,lm,g(n,m),g(lm,n),gt(n,m),gt(lm,n),gtt(n,m),gtt(lm,n) */
+/*               endif */
+/*  103       continue */
+/*  102    continue */
+/*           write (out,44) ge */
+/*        endif */
+	i__1 = maxn;
+	for (n = 1; n <= i__1; ++n) {
+	    i__2 = maxn;
+	    for (m = 1; m <= i__2; ++m) {
+		convrt_(&g[n + m * 101 - 102], &n, &m, &c__1);
+		coeff_1.tg[n + m * 101 - 102] = g[n + m * 101 - 102];
+		convrt_(&gt[n + m * 101 - 102], &n, &m, &c__1);
+		gtt[n + m * 101 - 102] *= (float).5;
+		convrt_(&gtt[n + m * 101 - 102], &n, &m, &c__1);
+	    }
+	}
+/*       if(ty > tl .or. ty < tf) write (out,15) ty */
+	*l = 0;
+    }
+    t = *ty - tzero;
+    i__1 = maxnt;
+    for (n = 1; n <= i__1; ++n) {
+	i__2 = maxnt;
+	for (m = 1; m <= i__2; ++m) {
+	    coeff_1.tg[n + m * 101 - 102] = g[n + m * 101 - 102] + t * (gt[n 
+		    + m * 101 - 102] + t * gtt[n + m * 101 - 102]);
+	}
+    }
+    cl__1.cerr = 0;
+    cl__1.cunit = in;
+    cl__1.csta = 0;
+    f_clos(&cl__1);
+    return 0;
+/* two formats for coeffs */
+/*  10 format (2i3,6f11.5) */
+/* L11: */
+/* L12: */
+/* L13: */
+/* L14: */
+/* L15: */
+/* L44: */
+} /* cread_ */
+
+/* Subroutine */ int convrt_(g, i__, l, k)
+real *g;
+integer *i__, *l, *k;
+{
+    /* Initialized data */
+
+    static logical next = FALSE_;
+
+    /* System generated locals */
+    integer i__1;
+
+    /* Builtin functions */
+    double sqrt();
+
+    /* Local variables */
+    static integer j, m, n;
+    static real s[10201]	/* was [101][101] */;
+
+/* k=1 converts schmidt to gauss,k>1 converts gauss to schmidt */
+    if (! next) {
+	next = TRUE_;
+	s[0] = (float)-1.;
+	for (n = 2; n <= 101; ++n) {
+	    s[n - 1] = s[n - 2] * (real) ((n << 1) - 3) / (real) (n - 1);
+	    s[n * 101 - 101] = (float)0.;
+	    j = 2;
+	    i__1 = n;
+	    for (m = 2; m <= i__1; ++m) {
+		s[n + m * 101 - 102] = s[n + (m - 1) * 101 - 102] * sqrt((
+			real) ((n - m + 1) * j) / (real) (n + m - 2));
+		s[m - 1 + n * 101 - 102] = s[n + m * 101 - 102];
+		j = 1;
+	    }
+	}
+    }
+    if (*k > 1) {
+	*g /= s[*i__ + *l * 101 - 102];
+    } else {
+	*g *= s[*i__ + *l * 101 - 102];
+    }
+    return 0;
+} /* convrt_ */
+
+/* Subroutine */ int con_()
+{
+    /* System generated locals */
+    integer i__1, i__2, i__3;
+
+    /* Local variables */
+    static integer m, n;
+
+/* sets up constants for use by sphrc (normally called by one */
+/* of the subroutines that sets up the coefficients tg) */
+/*     data c/3721*0./  ! assume computer core preset to zero or needed */
+    coeff_2.fm[0] = (float)0.;
+    for (n = 2; n <= 101; ++n) {
+	coeff_2.fm[n - 1] = (real) (n - 1);
+	coeff_2.fn[n - 1] = (real) n;
+	i__1 = n;
+	for (m = 1; m <= i__1; ++m) {
+/* Computing 2nd power */
+	    i__2 = n - 2;
+/* Computing 2nd power */
+	    i__3 = m - 1;
+	    coeff_2.c__[n + m * 101 - 102] = (real) (i__2 * i__2 - i__3 * 
+		    i__3) / (real) (((n << 1) - 3) * ((n << 1) - 5));
+	}
+    }
+    return 0;
+} /* con_ */
+
+/* Subroutine */ int sphrc_()
+{
+    /* System generated locals */
+    integer i__1, i__2;
+    real r__1;
+
+    /* Local variables */
+    static integer m, n;
+    static real p[10201]	/* was [101][101] */, q[10404]	/* was [102][
+	    102] */, s[10404]	/* was [102][102] */, gc, dp[10201]	/* 
+	    was [101][101] */, cp[101], ar, pp[10404]	/* was [102][102] */, 
+	    sp[101], ar2, e_p__, e_r__, e_t__, roa, dpp[10404]	/* was [102][
+	    102] */, spm, srm, stm, c2ph, s2ph;
+
+/* assume computer core is initiallized to zero */
+/* otherwise should zero p,dp,sp arrays */
+/* this version best if frequent dipole only computation. */
+/* otherwise would be better to put n=2 in main loop */
+/* Computing 2nd power */
+    r__1 = gcom_1.aor;
+    ar2 = r__1 * r__1;
+    ar = ar2 * gcom_1.aor;
+    gc = coeff_3.g[102] * gcom_1.cph + coeff_3.g[101] * gcom_1.sph;
+    gcom_1.br = -ar2 * coeff_3.g[0] - ar * (float)2. * (coeff_3.g[1] * 
+	    gcom_1.ct + gc * gcom_1.st);
+    gcom_1.bt = ar * (gc * gcom_1.ct - coeff_3.g[1] * gcom_1.st);
+    gcom_1.bp = ar * (coeff_3.g[101] * gcom_1.cph - coeff_3.g[102] * 
+	    gcom_1.sph);
+    if (gcom_1.nmax != 2) {
+	gcom_1.bp *= gcom_1.st;
+	p[1] = gcom_1.ct;
+	dp[1] = -gcom_1.st;
+	p[102] = gcom_1.st;
+	dp[102] = gcom_1.ct;
+	sp[1] = gcom_1.sph;
+	cp[1] = gcom_1.cph;
+	p[0] = (float)1.;
+	i__1 = gcom_1.nmax;
+	for (n = 3; n <= i__1; ++n) {
+	    sp[n - 1] = gcom_1.sph * cp[n - 2] + gcom_1.cph * sp[n - 2];
+	    cp[n - 1] = gcom_1.cph * cp[n - 2] - gcom_1.sph * sp[n - 2];
+	    dp[n - 1] = gcom_1.ct * dp[n - 2] - gcom_1.st * p[n - 2] - 
+		    coeff_3.const__[n - 1] * dp[n - 3];
+	    stm = coeff_3.g[n - 1] * dp[n - 1];
+	    spm = (float)0.;
+	    p[n - 1] = gcom_1.ct * p[n - 2] - coeff_3.const__[n - 1] * p[n - 
+		    3];
+	    srm = -coeff_3.g[n - 1] * p[n - 1];
+	    p[n + n * 101 - 102] = gcom_1.st * p[n - 1 + (n - 1) * 101 - 102];
+	    dp[n + n * 101 - 102] = coeff_3.fm[n - 1] * gcom_1.ct * p[n - 1 + 
+		    (n - 1) * 101 - 102];
+	    i__2 = n;
+	    for (m = 2; m <= i__2; ++m) {
+		if (n != m) {
+		    p[n + m * 101 - 102] = gcom_1.ct * p[n - 1 + m * 101 - 
+			    102] - coeff_3.const__[n + m * 101 - 102] * p[n - 
+			    2 + m * 101 - 102];
+		    dp[n + m * 101 - 102] = gcom_1.ct * dp[n - 1 + m * 101 - 
+			    102] - gcom_1.st * p[n - 1 + m * 101 - 102] - 
+			    coeff_3.const__[n + m * 101 - 102] * dp[n - 2 + m 
+			    * 101 - 102];
+		}
+		gc = coeff_3.g[n + m * 101 - 102] * cp[m - 1] + coeff_3.g[m - 
+			1 + n * 101 - 102] * sp[m - 1];
+		stm += gc * dp[n + m * 101 - 102];
+		spm += (coeff_3.g[m - 1 + n * 101 - 102] * cp[m - 1] - 
+			coeff_3.g[n + m * 101 - 102] * sp[m - 1]) * 
+			coeff_3.fm[m - 1] * p[n + m * 101 - 102];
+		srm -= gc * p[n + m * 101 - 102];
+	    }
+	    ar = gcom_1.aor * ar;
+	    gcom_1.bt += stm * ar;
+	    gcom_1.bp += spm * ar;
+	    gcom_1.br += srm * coeff_3.fn[n - 1] * ar;
+	}
+	if (gcom_1.st == (float)0.) {
+	    gcom_1.st = (float)1e-9;
+	}
+	gcom_1.bp /= gcom_1.st;
+    }
+/* assume first order external usually non-zero */
+    roa = (float)1. / gcom_1.aor;
+    c2ph = gcom_1.cph * (float)2. * gcom_1.cph - (float)1.;
+    s2ph = gcom_1.sph * (float)2. * gcom_1.cph;
+    q[1] = coeff_3.ge[0];
+    q[103] = coeff_3.ge[1];
+    s[103] = coeff_3.ge[2];
+    q[2] = coeff_3.ge[3];
+    q[104] = coeff_3.ge[4];
+    s[104] = coeff_3.ge[5];
+    q[206] = coeff_3.ge[6];
+    s[206] = coeff_3.ge[7];
+    pp[1] = p[1];
+    pp[103] = p[102];
+    pp[2] = p[2];
+    pp[104] = p[103];
+    pp[206] = p[204];
+    dpp[1] = dp[1];
+    dpp[103] = dp[102];
+    dpp[2] = dp[2];
+    dpp[104] = dp[103];
+    dpp[206] = dp[204];
+    e_r__ = q[1] * pp[1] + (q[103] * gcom_1.cph + s[103] * gcom_1.sph) * pp[
+	    103] + (q[2] * pp[2] + (q[104] * gcom_1.cph + s[104] * gcom_1.sph)
+	     * pp[104] + (q[206] * c2ph + s[206] * s2ph) * pp[206]) * (float)
+	    2. * roa;
+    e_t__ = q[1] * dpp[1] + (q[103] * gcom_1.cph + s[103] * gcom_1.sph) * dpp[
+	    103] + (q[2] * dpp[2] + (q[104] * gcom_1.cph + s[104] * 
+	    gcom_1.sph) * dpp[104] + (q[206] * c2ph + s[206] * s2ph) * dpp[
+	    206]) * roa;
+    e_p__ = s[103] * gcom_1.cph - q[103] * gcom_1.sph + ((s[104] * gcom_1.cph 
+	    - q[104] * gcom_1.sph) * pp[104] + (s[206] * c2ph - q[206] * s2ph)
+	     * (float)2. * pp[206]) * roa / gcom_1.st;
+    gcom_1.br -= e_r__;
+    gcom_1.bt -= e_t__;
+    gcom_1.bp -= e_p__;
+    return 0;
+} /* sphrc_ */
+
+/* Subroutine */ int gfield_(dlat, dlong, alt, mln, a, x, y, z__, f)
+real *dlat, *dlong, *alt;
+integer *mln;
+real *a, *x, *y, *z__, *f;
+{
+    /* Initialized data */
+
+    static real re = (float)0.;
+    static real rp = (float)3374.9;
+
+    /* System generated locals */
+    real r__1, r__2, r__3;
+
+    /* Builtin functions */
+    double atan(), sin(), cos(), sqrt();
+
+    /* Local variables */
+    static real drad, flat, r__, sinla;
+    extern /* Subroutine */ int sphrc_();
+    static real rlong, a2, b2, a4, cosla2, sinla2, a2b2, fac, a4b4, den, den2;
+
+    if (re != (float)3396.9) {
+	re = (float)3396.9;
+/* Computing 2nd power */
+	r__1 = re;
+	a2 = r__1 * r__1;
+/* Computing 2nd power */
+	r__1 = a2;
+	a4 = r__1 * r__1;
+/*        flat = 1.-1./298.25 */
+	flat = rp / re;
+/* Computing 2nd power */
+	r__1 = re * flat;
+	b2 = r__1 * r__1;
+/* Computing 2nd power */
+	r__1 = flat;
+	a2b2 = a2 * ((float)1. - r__1 * r__1);
+/* Computing 4th power */
+	r__1 = flat, r__1 *= r__1;
+	a4b4 = a4 * ((float)1. - r__1 * r__1);
+	drad = atan((float)1.) / (float)45.;
+    }
+    sinla = sin(*dlat * drad);
+    rlong = *dlong * drad;
+    gcom_1.cph = cos(rlong);
+    gcom_1.sph = sin(rlong);
+/* Computing 2nd power */
+    r__1 = sinla;
+    sinla2 = r__1 * r__1;
+/* Computing 2nd power */
+    r__1 = sinla;
+    cosla2 = (float)1. - r__1 * r__1;
+/* Computing 2nd power */
+    r__1 = sinla;
+    den2 = a2 - a2b2 * (r__1 * r__1);
+    den = sqrt(den2);
+/* Computing 2nd power */
+    r__1 = (*alt * den + a2) / (*alt * den + b2);
+    fac = r__1 * r__1;
+    r__ = sqrt(*alt * (*alt + den * (float)2.) + (a4 - a4b4 * sinla2) / den2);
+    gcom_1.ct = sinla / sqrt(fac * cosla2 + sinla2);
+/* Computing 2nd power */
+    r__1 = gcom_1.ct;
+    gcom_1.st = sqrt((float)1. - r__1 * r__1);
+    gcom_1.nmax = *mln + 1;
+    gcom_1.aor = *a / r__;
+    sphrc_();
+/* Computing 2nd power */
+    r__1 = gcom_1.bt;
+/* Computing 2nd power */
+    r__2 = gcom_1.bp;
+/* Computing 2nd power */
+    r__3 = gcom_1.br;
+    *f = sqrt(r__1 * r__1 + r__2 * r__2 + r__3 * r__3);
+/* transforms to geodetic directions */
+    gcom_1.sind = sinla * gcom_1.st - sqrt(cosla2) * gcom_1.ct;
+/* Computing 2nd power */
+    r__1 = gcom_1.sind;
+    gcom_1.cosd = sqrt((float)1. - r__1 * r__1);
+    *x = -gcom_1.bt * gcom_1.cosd - gcom_1.br * gcom_1.sind;
+    *y = gcom_1.bp;
+    *z__ = gcom_1.bt * gcom_1.sind - gcom_1.br * gcom_1.cosd;
+    return 0;
+} /* gfield_ */
+
diff --git a/amda_plus/amdalib/src/mars/morsch.c b/amda_plus/amdalib/src/mars/morsch.c
new file mode 100644
index 0000000..683d538
--- /dev/null
+++ b/amda_plus/amdalib/src/mars/morsch.c
@@ -0,0 +1,390 @@
+#include <stdio.h>
+#include <stddef.h>
+#include <stdlib.h>
+#include <string.h>
+//The <tgmath.h> header shall include the headers <math.h> 
+//and <complex.h> and shall define several type-generic macros
+#include <tgmath.h>
+//The <fenv.h> header floating-point environment
+#include <fenv.h>
+#include <time.h>
+//#include <complex.h>
+
+int field_(double* , short, double* , double);
+int cread_( void );
+void scan_coef_V_int( void );
+void scan_coef_V_ext_day( void );
+void scan_coef_V_ext_night( void );
+
+int  V_int( long double , long double , long double, short );
+void plgndr(  double );
+long double Ylm( int , int , long double , long double );
+long double dYlmdtheta( int , int , long double , long double );
+
+
+#define DATAFILE_DAY "V_ext_day.txt"
+#define DATAFILE_NIGHT "V_ext_night.txt"
+#define DATAFILE_INT "V_int.txt"
+
+#define EPS 3.0e-14
+#define PIM4 0.7511255444649425
+#define MAXIT 10
+#define NR_END 1
+#define FREE_ARG char*
+#define M_PIl		3.1415926535897932384626433832795029L
+#define J     (-0.5L + sqrtl( 3.0L / 4.0L ) * I)
+#define Rma 3393.5
+#define Rlim   1.0 + 450.0 / Rma
+
+long double coef_V_int[111][221],coef_V_ext_day[6][11],coef_V_ext_night[11][21],Br,Btheta,Bphi;
+long double P[111][111]={ {0.0L} , {0.0L} };
+
+int cread_()
+{    
+    scan_coef_V_int();
+    scan_coef_V_ext_night();
+    scan_coef_V_ext_day();  
+}
+
+int field_(double *XX, short sign, double *B, double BM)
+{
+long double r,dtheta,dphi,x,y,z;
+int l;
+long double cos_theta, sin_theta, cos_phi, sin_phi;
+clock_t start, end;
+double cpu_time_used;
+ // start = clock();
+
+x =  (long double)XX[0];
+y =  (long double)XX[1];
+z =  (long double)XX[2];
+
+r = sqrtl( x * x + y * y + z * z );
+//fprintf(stderr,"R %Lf  Rlim %f\n\r", r, Rlim);
+dtheta = acosl( z / r );
+dphi   = atanl( y / x );
+  
+
+if ( x < 0.0 )
+{
+dphi += M_PIl;
+}
+
+if ( r < Rlim )
+{
+ cos_theta = cosl( dtheta );
+ sin_theta = sinl( dtheta );
+ cos_phi = cosl( dphi );
+ sin_phi = sinl( dphi );
+ 
+ plgndr( cos_theta );   
+ V_int( Rma * r , dtheta , dphi, sign );  
+ BM   = (double)sqrtl( Br * Br + Btheta * Btheta + Bphi * Bphi );
+ B[0] = (double)(Br * cos_phi * sin_theta - Bphi * sin_phi  + Btheta * cos_phi * cos_theta);
+ B[1] = (double)(Br * sin_phi * sin_theta + Bphi * cos_phi);
+ B[2] = (double)(Br * cos_theta - Btheta * sin_theta);
+}
+else 
+{ 
+Br = ( Btheta = ( Bphi = 0.0L / 0.0L ) );
+BM =  0.0L / 0.0L;
+B[0] =  0.0L / 0.0L;
+B[1] =  0.0L / 0.0L;
+B[2] =  0.0L / 0.0L;
+}
+
+//  end = clock(); 
+//  cpu_time_used = ((double) (end - start)) / CLOCKS_PER_SEC;
+// fprintf(stderr," cpu used %f\n\r", cpu_time_used);
+
+return 0;
+
+}
+
+
+//Coefficients of Spherical Harmonics for the crustal fields
+
+void scan_coef_V_int(){
+
+FILE* fichier = NULL;
+
+int i,l,m;
+long double glm;
+/*------ variables to get the data file name -----------*/
+char DataName[250];
+    
+strcpy(DataName,getenv("DDPROJLIB"));
+strcat(DataName,DATAFILE_INT); 
+
+fichier=fopen(DataName,"r");
+for (i=1;i<=12321;i++)
+{
+fscanf(fichier,"%i %i %Lf\n",&l,&m,&glm);
+coef_V_int[l][l+m]=glm;
+}
+fclose(fichier);
+}
+
+//
+
+void scan_coef_V_ext_night(){
+
+FILE* fichier = NULL;
+
+int i,l,m;
+long double glm;
+/*------ variables to get the data file name -----------*/
+char DataName[250];
+    
+strcpy(DataName,getenv("DDPROJLIB"));
+strcat(DataName,DATAFILE_NIGHT); 
+
+fichier=fopen(DataName,"r"); 
+
+for (i=1;i<=121;i++)
+{
+fscanf(fichier,"%i %i %Lf\n",&l,&m,&glm);
+coef_V_ext_night[l][l+m]=glm;
+
+}
+fclose(fichier);
+}
+
+//
+
+void scan_coef_V_ext_day(){
+
+FILE* fichier = NULL;
+
+int i,l,m;
+long double glm;
+/*------ variables to get the data file name -----------*/
+char DataName[250];
+    
+strcpy(DataName,getenv("DDPROJLIB"));
+strcat(DataName,DATAFILE_DAY); 
+
+fichier=fopen(DataName,"r"); 
+
+for (i=1;i<=36;i++)
+{
+fscanf(fichier,"%i %i %Lf\n",&l,&m,&glm);
+coef_V_ext_day[l][l+m]=glm;
+
+}
+fclose(fichier);
+}
+ 
+long double Ylm( int l , int m , long double theta , long double phi )
+{
+
+long double Plm;
+int k;
+long double p, sqrt2 = sqrtl( 2.0L );
+
+Plm = P[l][abs(m)];
+
+p = 1;
+
+if ( m != 0 )
+{
+
+        for ( k = (l - abs(m) + 1 ) ; k <= ( l + abs(m) ) ; k++)
+        {
+        
+        p *= sqrtl( (long double) k );
+        
+        }
+        Plm /= p;
+        Plm *= sqrt2;
+        }
+
+if ( m < 0 )
+{
+
+        Plm *= sinl( fabsl( m ) * phi );
+        
+}
+
+else if ( m > 0 )
+{
+
+        Plm *= cosl(  fabsl( m ) * phi );
+        
+}
+
+Plm *= powl( - 1.0L , fabsl( m ) );
+
+if ( abs(m) > l )
+{
+
+Plm = 0.0L;
+
+}
+
+return Plm;
+
+
+}
+
+//Harmonic spherical real values
+
+void plgndr( double x )
+{
+
+int m,l;
+double fact,coef;
+
+fact = 1.0;
+coef = sqrt( 1.0 - x * x ); 
+P[0][0] = 1.0;
+
+
+for ( m = 1 ; m <= 110 ; m++ )
+{
+
+P[m][m] = - P[m-1][m-1] * fact * coef;
+fact += 2.0;
+
+}
+
+for ( m = 0 ; m <= 109 ; m++ )
+{
+
+P[m+1][m] = x * ( 2.0 * m + 1.0 ) * P[m][m];
+
+}
+
+for ( m = 0 ; m <= 108 ; m++ )
+{
+
+        for ( l = m + 2 ; l <= 110 ; l++ )
+        {
+        
+        P[l][m] = ( x * ( 2.0 * l - 1.0 ) * P[l-1][m] - ( l + m - 1.0 ) * P[l-2][m] ) / ( l - m );
+        
+        }
+        
+}
+}
+
+int V_int( long double r , long double theta , long double phi, short sign )
+{
+
+long double V1,V2,V3,V4,V5,V6,x,y,z,Ypm,Ymm, puis,Ypmav,Ymmav,puis2;
+int l,m;
+long double tan_theta, sin_theta, cos_theta;
+
+tan_theta = tanl( theta );
+sin_theta = sinl( theta );
+cos_theta = cosl( theta );
+ 
+Br     = 0.0L;
+Bphi   = 0.0L;
+Btheta = 0.0L;
+x = ( y = ( z = 0.0L ) );
+Ypm = ( Ypmav = 0.0L );
+Ymm = ( Ymmav = 0.0L );
+ 
+for (l = 1 ; l <= 110 ; l++ )
+{
+
+	V1 = 0.0L;
+	V2 = 0.0L;
+	V3 = 0.0L;
+	V4 = 0.0L;
+	V5 = 0.0L;
+	V6 = 0.0L;
+	puis = 0.0L;
+	Ypmav = 0.0L;
+	Ymmav = 0.0L;
+	
+	for ( m = l ; m > 0 ; m-- )
+	{
+	
+	Ypm = Ylm( l ,  m , theta , phi );
+	Ymm = Ylm( l , -m , theta , phi );
+	
+	V1 += coef_V_int[l][l+m] * Ypm;
+	V1 += coef_V_int[l][l-m] * Ymm;
+	
+	V2 -= m * coef_V_int[l][l+m] * Ymm;
+	V2 += m * coef_V_int[l][l-m] * Ypm;
+	
+	if( sign == 0 && l <= 10 ) // night side MSO
+	{
+	V4 += coef_V_ext_night[l][l+m] * Ypm;
+	V4 += coef_V_ext_night[l][l-m] * Ymm;
+	V5 -= m * coef_V_ext_night[l][l+m] * Ymm;
+	V5 += m * coef_V_ext_night[l][l-m] * Ypm;
+	V6 += coef_V_ext_night[l][l+m] * ( m * Ypm / tan_theta - sqrtl( l - m + l * l - m * m ) * cosl( m * phi ) / cosl( ( m + 1.0l ) * phi ) * Ypmav );
+	V6 += coef_V_ext_night[l][l-m] * ( m * Ymm / tan_theta - sqrtl( l - m + l * l - m * m ) * sinl( m * phi ) / sinl( ( m + 1.0l ) * phi ) * Ymmav );
+	}
+	
+	if( sign > 0 && l <= 5 )  // day side MSO
+	{
+	V4 += coef_V_ext_day[l][l+m] * Ypm;
+	V4 += coef_V_ext_day[l][l-m] * Ymm;
+	V5 -= m * coef_V_ext_day[l][l+m] * Ymm;
+	V5 += m * coef_V_ext_day[l][l-m] * Ypm;
+	V6 += coef_V_ext_day[l][l+m] * ( m * Ypm / tan_theta - sqrtl( l - m + l * l - m * m ) * cosl( m * phi ) / cosl( ( m + 1.0l ) * phi ) * Ypmav );
+	V6 += coef_V_ext_day[l][l-m] * ( m * Ymm / tan_theta - sqrtl( l - m + l * l - m * m ) * sinl( m * phi ) / sinl( ( m + 1.0l ) * phi ) * Ymmav );
+	}
+		
+	if ( phi != 0.0L )
+	{
+	V3 += coef_V_int[l][l+m] * ( m * Ypm / tan_theta - sqrtl( l - m + l * l - m * m ) * cosl( m * phi ) / cosl( ( m + 1.0l ) * phi ) * Ypmav );
+	V3 += coef_V_int[l][l-m] * ( m * Ymm / tan_theta - sqrtl( l - m + l * l - m * m ) * sinl( m * phi ) / sinl( ( m + 1.0l ) * phi ) * Ymmav );
+	}
+	else
+	{
+	V3 += coef_V_int[l][l+m] * ( m * Ypm / tan_theta - sqrtl( l - m + l * l - m * m ) * Ypmav );
+	}
+	
+	Ypmav = Ypm;
+	Ymmav = Ymm;
+	
+	
+	}
+	
+	V1 +=   coef_V_int[l][l] * Ylm( l , 0 , theta , phi );
+	
+	if( sign == 0 && l <= 10 ) // night side MSO
+	{
+	V4 +=   coef_V_ext_night[l][l] * Ylm( l , 0 , theta , phi );
+	}
+	if( sign > 0 && l <= 5 ) // day side MSO
+	{
+	V4 +=   coef_V_ext_day[l][l] * Ylm( l , 0 , theta , phi );
+	}
+	
+	V3 +=   coef_V_int[l][l] * l / sin_theta * ( cos_theta * P[l][0]-P[l-1][0] );   
+	
+	if( sign == 0 && l <= 10 ) // night side MSO
+	{
+	V6 +=   coef_V_ext_night[l][l] * l / sin_theta * ( cos_theta * P[l][0]-P[l-1][0] );   
+	}
+	if( sign > 0 && l <= 5 ) // day side MSO
+	{
+	V6 +=   coef_V_ext_day[l][l] * l / sin_theta * ( cos_theta * P[l][0]-P[l-1][0] );   
+	}
+	
+	
+	puis = powl( Rma / r , l + 2.0L );
+	puis2= powl( r / Rma , l - 1.0L );
+        
+	z -= - ( l + 1.0L ) * V1 * puis + l * V4 * puis2; //minus sign disappear because magnetic field is the ooposite of the gradient
+	x -=                  ( V2 * puis + V5 * puis2 ) / sin_theta;
+	y -=                  ( V3 * puis + V6 * puis2 );
+	
+}
+
+Br = z;
+Bphi = x;
+Btheta= y;
+
+return 0;
+}
+
+
+
diff --git a/amda_plus/amdalib/src/mars/mso2ac.pro b/amda_plus/amdalib/src/mars/mso2ac.pro
new file mode 100644
index 0000000..5ae7eb2
--- /dev/null
+++ b/amda_plus/amdalib/src/mars/mso2ac.pro
@@ -0,0 +1,24 @@
+; $Id:   $
+pro mso2ac, Time, VecMSO
+
+  MarsR = 3397.0
+  Number = N_elements(Time);
+  VecAC = fltarr(3); 
+
+  for i = 0, Number-1 do begin
+
+          JDReal = Doubl2JD(Time[i]);
+          err = call_external(!PROJLIB + 'idl_mexcom.so','MSO2AC', JDReal, VecMSO[*,i],  VecAC)   
+; cartesian to spherical
+          PCM =   sqrt(total(VecAC^2));
+          lat =   asin(VecAC[2]/PCM);*180./!pi;
+          lon =  atan(vecAC[1]/PCM,VecAC[0]/PCM);*180./!pi;
+          R =   PCM/MarsR;
+          VecMSO[*,i] =  [R, lon, lat]
+ 
+         
+  endfor
+ return
+end
+
+ 
\ No newline at end of file
diff --git a/amda_plus/amdalib/src/mars/mso2pc.c b/amda_plus/amdalib/src/mars/mso2pc.c
new file mode 100755
index 0000000..10052be
--- /dev/null
+++ b/amda_plus/amdalib/src/mars/mso2pc.c
@@ -0,0 +1,72 @@
+/***************************************************************************
+*                         mso2pc.c                                                                      *
+*  MSO to areocentric transformation matrix                                          *
+*                                                                                                              *
+****************************************************************************/
+#include <stdio.h>
+#include <string.h>
+#include <math.h>
+
+#define JD2000  2451545.0  /* 2451545.0  */
+
+double *mso2pc(double JDay)
+{
+   int i;
+   double deg2pi = M_PI /180.0, M,  Afms, PBS = 0.0, Ls, dTJ2000, Vm, As;
+   double A[7] =  {7.e-3, 6.e-3,4.e-3, 4.e-3, 2.e-3, 2.e-3, 2.e-3};
+   double tau[7] = {2.2353, 2.7543, 1.1177, 15.7866, 2.1354, 2.4694, 32.8493};
+   double phi[7] = {49.409, 168.173, 191.837, 21.736, 15.704, 95.528, 49.095};
+   double  ang = 0.985626, Tilt = 25.19;
+   double cosT, sinT, cosN, sinN, cosC, sinC;
+   static double MSO2PC[9];
+
+    dTJ2000 =  JDay -  JD2000;
+/*-------------------- Mean Anomaly ----------------------*/
+
+         M =  (19.3870 + 0.52402075*dTJ2000)*deg2pi;
+
+/*------------------ Fictitious Mean Sun Angle ------------*/
+
+        Afms = 270.3863 + 0.52403840*dTJ2000;
+
+/*--------------------   Primary short-term perturbations --------*/
+         ang *= dTJ2000;
+         for ( i = 0; i < 7; i++ )   PBS = PBS+A[i]*cos((ang/tau[i]+phi[i])*deg2pi);
+
+/*---------------------- areocentric solar longitude  Ls ---------------------------*/
+          Ls =   Afms + (10.691+ 3.e-7*dTJ2000)*sin(M) + 0.623*sin(2.0*M) +
+                  5.e-2*sin(3.0*M) + 5.e-3*sin(4.0*M) + 5.e-4*sin(5.0*M) +PBS;
+          Ls -= (int)(Ls/360.0)*360.0;
+          Ls *= deg2pi;
+/*---------------- Prime Meridian degrees from Vernal Equinox---------------------*/
+             Vm =  (313.384 + 350.891985* dTJ2000) * deg2pi;
+  //         Vm =  (176.63 + 350.89198226* dTJ2000) * deg2pi;
+
+/*---------------------Sub solar Longitude degrees from Vernal Equinox---------*/
+             Tilt *= deg2pi;
+             As = atan(cos(Tilt)*tan(Ls));
+	     if (Ls >= M_PI/2.0 && Ls < M_PI*3.0/2.0) As = As + M_PI;
+	     if (Ls >= M_PI*3.0/2.0 && Ls < M_PI*2.0) As = As + 2.0*M_PI;
+
+/*----------------------------  transformatiom matrix -----------------------*/
+     cosT = cos(Tilt*sin(Ls));
+     sinT = sin(Tilt*sin(Ls)) ;
+     cosC = cos(Tilt*cos(Ls)) ;
+     sinC = sin(Tilt*cos(Ls));
+     cosN = cos(-Vm + As);
+     sinN = sin(-Vm + As);
+
+    MSO2PC[0] =  cosT*cosN;
+    MSO2PC[1] = -(sinC*sinT*cosN+cosC*sinN);
+    MSO2PC[2] = -(cosC*sinT*cosN-sinC*sinN);
+
+    MSO2PC[3] = cosT*sinN;
+    MSO2PC[4] =  -(sinC*sinT*sinN-cosC*cosN);
+    MSO2PC[5] =  -(cosC*sinT*sinN+sinC*cosN);
+
+    MSO2PC[6] =  sinT;
+    MSO2PC[7] = sinC*cosT;
+    MSO2PC[8] =  cosC*cosT;
+
+   return  MSO2PC;
+ }
diff --git a/amda_plus/amdalib/sta_swea_pad_init.pro b/amda_plus/amdalib/sta_swea_pad_init.pro
new file mode 100644
index 0000000..3ba9333
--- /dev/null
+++ b/amda_plus/amdalib/sta_swea_pad_init.pro
@@ -0,0 +1,42 @@
+;---------------------------------------------------
+; $Id: sta_swea_pad_init.pro,v 1.2 2009/12/18 13:18:39 budnik Exp $
+;              STA_SWEA_PAD_init
+;                
+;----------------------------------------------------
+
+pro sta_swea_pad_init,  PA = PA,  ENERGY = energy, LIN = lin, LOG = log
+
+  common Request, List, StartTime, TimeInt
+  common GraphC, graph, GraphN, Item
+
+  EnMin = 250
+  Pitch = 0;
+ 
+  if (KEYWORD_SET(ENERGY)) then  EnMin = Energy;
+  if (KEYWORD_SET(PA)) then  pitch = PA - 1;
+   
+  graph[GraphN].Type = 'SWEA_T'
+  graph[GraphN].DataN = 1
+  graph[GraphN].SetCommonF[0] = 'swea_pad_com, "sta"'
+  graph[GraphN].GetDataF[0] = 'get_swea_pad, "sta"'
+  graph[GraphN].DeltaT = (Graph[GraphN].TotalTime + 60.0D0) < 36100.0D0
+  if (Pitch EQ 0) then begin
+  options = '"sta",' + string(EnMin);
+  
+  graph[GraphN].names = PTR_NEW(/ALLOCATE_HEAP)
+  *(graph[GraphN].names) = 'log PSD km!U3!N/s!U6'
+ 
+  graph[GraphN].PlotF =  'swea_pad_plot,' + options
+  endif else begin
+  pitchValue = strtrim(string(Pitch*15),1) + '-' +  strtrim(string((Pitch+1)*15),1) + 'deg';
+
+  options = '"sta",' +string(Pitch) +',' + string(EnMin);
+ 
+  graph[GraphN].Ly.title = 'STA e-PSD (km!U3!N/s!U6) !C E ' + strtrim(string(EnMin),1) +' eV PA '+ pitchValue;
+  graph[GraphN].AxisF =  KEYWORD_SET(lin) ?  'lineaxis, 0' : 'logaxis';
+  graph[GraphN].PlotF =  'swea_psd_plot,' + options
+  endelse
+
+return
+end
+;------------------------------------------------------------
diff --git a/amda_plus/amdalib/stb_swea_pad_init.pro b/amda_plus/amdalib/stb_swea_pad_init.pro
new file mode 100644
index 0000000..83af431
--- /dev/null
+++ b/amda_plus/amdalib/stb_swea_pad_init.pro
@@ -0,0 +1,42 @@
+;---------------------------------------------------
+; $Id: sta_swea_pad_init.pro,v 1.2 2009/12/18 13:18:39 budnik Exp $
+;              STA_SWEA_PAD_init
+;                
+;----------------------------------------------------
+
+pro stb_swea_pad_init,  PA = PA,  ENERGY = energy, LIN = lin, LOG = log
+
+  common Request, List, StartTime, TimeInt
+  common GraphC, graph, GraphN, Item
+
+  EnMin = 250
+  Pitch = 0;
+ 
+  if (KEYWORD_SET(ENERGY)) then  EnMin = Energy;
+  if (KEYWORD_SET(PA)) then  pitch = PA - 1;
+   
+  graph[GraphN].Type = 'SWEA_T'
+  graph[GraphN].DataN = 1
+  graph[GraphN].SetCommonF[0] = 'swea_pad_com, "stb"'
+  graph[GraphN].GetDataF[0] = 'get_swea_pad, "stb"'
+  graph[GraphN].DeltaT = (Graph[GraphN].TotalTime + 60.0D0) < 36100.0D0
+  if (Pitch EQ 0) then begin
+  options = '"stb",' + string(EnMin);
+  
+  graph[GraphN].names = PTR_NEW(/ALLOCATE_HEAP)
+  *(graph[GraphN].names) = 'log PSD km!U3!N/s!U6'
+ 
+  graph[GraphN].PlotF =  'swea_pad_plot,' + options
+  endif else begin
+  pitchValue = strtrim(string(Pitch*15),1) + '-' +  strtrim(string((Pitch+1)*15),1) + 'deg';
+
+  options = '"stb",' +string(Pitch) +',' + string(EnMin);
+ 
+  graph[GraphN].Ly.title = 'STB e-PSD (km!U3!N/s!U6) !C E ' + strtrim(string(EnMin),1) +' eV PA '+ pitchValue;
+  graph[GraphN].AxisF =  KEYWORD_SET(lin) ?  'lineaxis, 0' : 'logaxis';
+  graph[GraphN].PlotF =  'swea_psd_plot,' + options
+  endelse
+
+return
+end
+;------------------------------------------------------------
diff --git a/amda_plus/amdalib/sw_monitor_.pro b/amda_plus/amdalib/sw_monitor_.pro
new file mode 100644
index 0000000..f5b1631
--- /dev/null
+++ b/amda_plus/amdalib/sw_monitor_.pro
@@ -0,0 +1,48 @@
+function sw_monitor_, StartTimeD, TimeIntD, TargetOrbit
+
+ names = ['ACE', 'WIND', 'IMP8']
+ Re = 6371.0
+ 
+ StartTime = call_external(!DDLIB + 'DD_idl.so','GetTime', StartTimeD, /S_Value)
+ TimeInt = call_external(!DDLIB + 'DD_idl.so','GetTime', TimeIntD, /S_Value)
+ 
+ params = [1.5, 0.0, 0.0, -1.0]
+
+ RetSizeSWN = -1;
+ RetSizeIMF = -1;
+
+  for i = 0, N_elements(names) do begin
+
+     Monitor = names[i]
+     functions = sw_monitor_init(Monitor)   
+     Orbit = Call_Function(functions.OrbitF, StartTime, TimeInt, Time, RetSizeOrb, Sampling, /CLOSE)
+     if (RetSizeOrb LE 0) then continue
+
+     SwV = Call_Function(functions.SwVF, StartTime, TimeInt, Time, RetSize, Sampling)            
+     VelSW = RetSize LE 0 ? 400.0 : mean(SwV);
+
+     if (Monitor eq 'WIND') and (mean(SWV) LT 200.0) then continue    
+     Delay = (Orbit[0,RetSizeOrb/2] - TargetOrbit[0])*Re/VelSW
+
+     StartTimeSW = call_external(!DDLIB + 'DD_idl.so','GetTime', double(StartTimeD-Delay), /S_Value)
+
+      if (RetSizeSWN LT 0) then begin 
+        SWN = Call_Function(functions.SwNF, StartTimeSW, TimeInt, Time, RetSizeSWN, Sampling)
+        SWV = Call_Function(functions.SwVF, StartTimeSW, TimeInt, Time, RetSizeSWV, Sampling, /CLOSE)
+     endif
+
+     if (RetSizeIMF LT 0) then begin
+        IMF = Call_Function(functions.ImfF, StartTimeSW, TimeInt, Time, RetSizeIMF, Sampling, /CLOSE)
+     endif
+
+     if (RetSizeSWN LE 0) AND (RetSizeIMF LE 0) then continue;
+     if (RetSizeSWN GT 0) then params[0] = mean(SWN)*(mean(SWV))^2*1.673e-6
+     if (RetSizeIMF GT 0) then params[1:3] = [mean(IMF[0,*]),mean(IMF[1,*]),mean(IMF[2,*])]
+     if (RetSizeSWN GT 0) AND (RetSizeIMF GT 0) then return, params;
+
+  endfor 
+
+
+
+return, params
+end
\ No newline at end of file
diff --git a/amda_plus/amdalib/sw_monitor_a99_.pro b/amda_plus/amdalib/sw_monitor_a99_.pro
new file mode 100644
index 0000000..2a09fb4
--- /dev/null
+++ b/amda_plus/amdalib/sw_monitor_a99_.pro
@@ -0,0 +1,47 @@
+function sw_monitor_a99_, StartTimeD, TimeIntD, TargetOrbit
+
+ names = ['ACE', 'WIND', 'IMP8']
+ Re = 6371.0
+ 
+ StartTime = call_external(!DDLIB + 'DD_idl.so','GetTime', StartTimeD, /S_Value)
+ TimeInt = call_external(!DDLIB + 'DD_idl.so','GetTime', TimeIntD, /S_Value)
+ 
+ params = [1.5, 300.0, 0.0, 0.0, -1.0]
+ 
+ RetSizeSWN = -1;
+ RetSizeIMF = -1;
+
+  for i = 0, N_elements(names) do begin
+
+     Monitor = names[i]
+     functions = sw_monitor_init(Monitor)   
+     Orbit = Call_Function(functions.OrbitF, StartTime, TimeInt, Time, RetSizeOrb, Sampling, /CLOSE)
+     if RetSizeOrb LE 0 then continue
+
+     SWV = Call_Function(functions.SwVF, StartTime, TimeInt, Time, RetSize, Sampling)
+     
+          
+     VelSW = RetSize LE 0 ? 400.0 :  mean(SWV)
+     if (Monitor eq 'WIND') and (mean(SWV) LT 200.0) then continue    
+     Delay = (Orbit[0,RetSizeOrb/2] - TargetOrbit[0])*Re/VelSW
+
+     StartTimeSW = call_external(!DDLIB + 'DD_idl.so','GetTime', double(StartTimeD-Delay), /S_Value)
+     
+      if (RetSizeSWN LT 0) then begin 
+        SWN = Call_Function(functions.SwNF, StartTimeSW, TimeInt, Time, RetSizeSWN, Sampling)
+        SWV = Call_Function(functions.SwVF, StartTimeSW, TimeInt, Time, RetSizeSWV, Sampling, /CLOSE)
+     endif
+
+     if (RetSizeIMF LT 0) then begin
+        IMF = Call_Function(functions.ImfF, StartTimeSW, TimeInt, Time, RetSizeIMF, Sampling, /CLOSE)
+     endif
+
+     if (RetSizeSWN LE 0) AND (RetSizeIMF LE 0) then continue;
+     if (RetSizeSWN GT 0) then params[0:1] = [mean(SWN),mean(SWV)];
+     if (RetSizeIMF GT 0) then params[2:4] = [mean(IMF[0,*]),mean(IMF[1,*]),mean(IMF[2,*])]
+     if (RetSizeSWN GT 0) AND (RetSizeIMF GT 0) then return, params; 
+  endfor 
+
+
+return, params
+end
\ No newline at end of file
diff --git a/amda_plus/amdalib/sw_monitor_a99_omni_.pro b/amda_plus/amdalib/sw_monitor_a99_omni_.pro
new file mode 100644
index 0000000..be846db
--- /dev/null
+++ b/amda_plus/amdalib/sw_monitor_a99_omni_.pro
@@ -0,0 +1,22 @@
+function sw_monitor_a99_omni_, StartTimeD, TimeIntD, TargetOrbit
+
+ 
+ StartTime = call_external(!DDLIB + 'DD_idl.so','GetTime', StartTimeD, /S_Value)
+ TimeInt = call_external(!DDLIB + 'DD_idl.so','GetTime', TimeIntD, /S_Value)
+ 
+ params = [1.5, 300.0, 0.0, 0.0, -1.0]
+        
+     SW_V = omni5_sw_v_(StartTime, TimeInt, Time, RetSize, Sampling, /CLOSE);
+     VelSW = RetSize LE 0 ? 400.0 : mean(SW_V);
+     SW_N = omni5_sw_n_(StartTime, TimeInt, Time, RetSize, Sampling, /CLOSE);          
+     DensSW = RetSize LE 0 ? 5.0 : mean(SW_N);
+
+     params[0] = DensSW;
+     params[1] = VelSW;
+     IMF = omni5_imf_(StartTime, TimeInt, Time, RetSize, Sampling, /CLOSE); 
+     if (RetSize LE 0) then return, params;
+     
+     params[2:4] = [mean(IMF[0,*]),mean(IMF[1,*]),mean(IMF[2,*])];
+
+return, params
+end
\ No newline at end of file
diff --git a/amda_plus/amdalib/sw_monitor_init.pro b/amda_plus/amdalib/sw_monitor_init.pro
new file mode 100644
index 0000000..1e93d0f
--- /dev/null
+++ b/amda_plus/amdalib/sw_monitor_init.pro
@@ -0,0 +1,31 @@
+function sw_monitor_init, Monitor
+
+ ; Default Set -> ACE with 5 min plasma
+       OrbitF = 'ace_xyz_'
+       ImfF   = 'imf_'
+       SwNF    = 'swp_n_'
+       SwVF    = 'swp_v_'
+  
+ if monitor eq 'WIND' then begin
+       OrbitF = 'wnd_xyz_'
+       ImfF   = 'wnd_b_'
+       SwNF   = 'wnd_swe_n_' 
+       SwVF   = 'wnd_swe_vmag_'
+  endif
+ 
+ if monitor eq 'IMP8' then begin
+       OrbitF = 'imp8_xyz_'
+       ImfF  =  'imp8_b_'
+       SwNF  =  'imp_mit_nfit_'
+       SwVF  =  'imp_mit_vfit_'
+  endif
+   
+  functions = { $
+             OrbitF: OrbitF, $   
+             ImfF: ImfF, $
+             SwNF: SwNF, $
+             SwVF: SwVF $
+           }
+
+return, functions
+end 
\ No newline at end of file
diff --git a/amda_plus/amdalib/sw_monitor_omni_.pro b/amda_plus/amdalib/sw_monitor_omni_.pro
new file mode 100644
index 0000000..eff8a25
--- /dev/null
+++ b/amda_plus/amdalib/sw_monitor_omni_.pro
@@ -0,0 +1,20 @@
+function sw_monitor_omni_, StartTimeD, TimeIntD, TargetOrbit
+ 
+ StartTime = call_external(!DDLIB + 'DD_idl.so','GetTime', StartTimeD, /S_Value)
+ TimeInt = call_external(!DDLIB + 'DD_idl.so','GetTime', TimeIntD, /S_Value)
+ 
+ params = [1.5, 0.0, 0.0, -1.0]
+        
+     SW_V = omni5_sw_v_(StartTime, TimeInt, Time, RetSize, Sampling, /CLOSE);
+     VelSW = RetSize LE 0 ? 400.0 : mean(SW_V);
+     SW_N = omni5_sw_n_(StartTime, TimeInt, Time, RetSize, Sampling, /CLOSE);          
+     DensSW = RetSize LE 0 ? 5.0 : mean(SW_N);
+     params[0] = DensSW*VelSW^2*1.673e-6;
+ 
+     IMF = omni5_imf_(StartTime, TimeInt, Time, RetSize, Sampling, /CLOSE); 
+     if (RetSize LE 0) then return, params;
+     
+     params[1:3] = [mean(IMF[0,*]),mean(IMF[1,*]),mean(IMF[2,*])];
+   
+return, params
+end
\ No newline at end of file
diff --git a/amda_plus/amdalib/swea_psd_plot.pro b/amda_plus/amdalib/swea_psd_plot.pro
new file mode 100644
index 0000000..5c36f0e
--- /dev/null
+++ b/amda_plus/amdalib/swea_psd_plot.pro
@@ -0,0 +1,89 @@
+;============================================================
+; $Id: swea_pad_plot.pro,v 1.3 2009/12/18 13:18:39 budnik Exp $
+;=============================================================
+
+pro swea_psd_plot, Mission, Pitch, EnMin
+
+ common GraphC, Graph, GraphN, Item
+
+    EnMin = EnMin > 50;
+
+    ID = Long(graph[GraphN].DataID[Item])  
+    VI = mission + ':swea:pad';
+ 
+   
+; Change from Table0 to Table1 13.02.2008 01:00
+
+    FirstChangeToTableOne = 1.2029508d+09
+
+;------- Energy table ----------------- 
+    sz = 16L
+    Energy = fltarr(sz)
+    ChangeTable = 0
+    
+    if ((graph[GraphN].TimeBase + graph[GraphN].TotalTime) LE FirstChangeToTableOne) then begin
+
+         err = call_external(!PROJLIB + 'libParam.so', 'getInfo', ID, VI, 'ETab0', sz, Energy)  
+ 
+     endif else if (graph[GraphN].TimeBase GE FirstChangeToTableOne) then begin
+
+                 err = call_external(!PROJLIB + 'libParam.so', 'getInfo', ID, VI, 'ETab1', sz, Energy)
+
+          endif else begin
+		  Energy1 = fltarr(sz)
+		  err = call_external(!PROJLIB + 'libParam.so', 'getInfo', ID, VI, 'ETab0', sz, Energy)  
+		  err = call_external(!PROJLIB + 'libParam.so', 'getInfo', ID, VI, 'ETab1', sz, Energy1)
+		  ChangeTable = 1
+      endelse
+
+     if (err LT 0) then return
+   
+
+  numEn = where(abs(Energy-EnMin) eq min(abs(Energy-EnMin)))
+    
+;--------------------- No DATA - just axes -----------------------
+   if (N_Elements(*Graph[GraphN].Time[0]) eq 0) then begin
+         nodata
+         return
+   endif
+
+    Time = (*Graph[GraphN].Time[0])
+
+    Val = (*Graph[GraphN].Val[0])
+    N_Time = N_elements(Time);
+    Val = temporary(reform(Val, 16, 12, N_Time))
+     
+    LocVal = reform(Val[numEn[0],Pitch,*], N_time);
+
+    numMinMax = where(LocVal gt 0.0, IndexMinMax)
+ 
+ ;--------------------- No DATA - just axes -----------------------
+  if (IndexMinMax LE 0) then begin
+         nodatafortimeinterval
+         return
+  endif
+
+  if (Time[0] GT Graph[GraphN].TotalTime) then begin
+        nodatafortimeinterval
+         return
+  endif
+  
+  
+  MinVal = min(LocVal[numMinMax]) > 0.001
+  MaxVal = max(LocVal[numMinMax])
+
+  
+  if Graph[GraphN].Ly.range[0] eq Graph[GraphN].Ly.range[1] then begin
+                Graph[GraphN].Ly.range = Graph[GraphN].AxisF eq 'logaxis' ? [MinVal, MaxVal] : [0.0, MaxVal]
+                Graph[GraphN].Ly.style = 0
+    endif else Graph[GraphN].Ly.style = 1
+    
+    !y = Graph[GraphN].Ly;
+         
+    if (execute(Graph[GraphN].AxisF) NE 1) then plot, Time, LocVal, MIN_VALUE = MinVal, MAX_VALUE=MaxValue,  color = !dnc-1, /NODATA, /NOERASE 
+    oplot, Time, LocVal, MIN_VALUE = MinVal, MAX_VALUE=MaxValue, color = !dnc-1 
+  
+    
+return
+end
+;--------------------------------------------------------------------
diff --git a/amda_plus/amdalib/t96.pro b/amda_plus/amdalib/t96.pro
new file mode 100644
index 0000000..0005eab
--- /dev/null
+++ b/amda_plus/amdalib/t96.pro
@@ -0,0 +1,43 @@
+pro t96, Time, Orbit
+
+  StepDefaut = 3600.0
+  FillValue = -1.e31
+  Number = N_elements(Time)
+  Bgsm = fltarr(3)
+  xyz = fltarr(3)
+  
+  num31 = where(Orbit[0,*] ne FillValue, Index31)
+  if (Index31 le 0) then return
+
+  Time = Time[num31]
+  Orbit = Orbit[*,num31]
+
+ ; StepAve = (Time[Number-1] - Time[0])/20.0 > StepDefaut
+  StepAve =  StepDefaut;
+  TimeIntDst = StepAve > 3600.0
+  TimeIntDstS = call_external(!DDLIB + 'DD_idl.so','GetTime', double(TimeIntDst), /S_Value)
+
+  for TimeCurr = Time[0], Time[Number-1], double(StepAve) do begin
+
+        numOrb = where((Time - TimeCurr LT StepAve) AND (Time - TimeCurr GE 0.0), IndexOrb)
+        if (IndexOrb LE 0) then continue
+        
+        params = sw_monitor_(TimeCurr,StepAve,Orbit[*,numOrb[IndexOrb/2]])
+        STime = call_external(!DDLIB + 'DD_idl.so','GetTime', double(TimeCurr+StepAve/2.0), /S_Value)
+        Dst = dst_(STime, TimeIntDstS, TimeDst, RetSize, Sampling, /CLOSE)
+        Dst_av = RetSize GT 0 ? mean(Dst) : -10.0
+        TILT = call_external(!DDLIB + 'Ts96.so','MFsetupMAN', STime, Dst_av, params, /F_VALUE) 
+
+        for i = 0, IndexOrb - 1 do begin        
+          err = call_external(!DDLIB + 'idl_geopack.so', 'gse2gsm',STime, Orbit[*,numOrb[i]], xyz)
+          err = call_external(!DDLIB + 'Ts96.so', 'MFpoint', xyz, Bgsm);
+          if Bgsm[0] eq 0.0 then Bgsm(*) = FillValue ; in BL or MSH
+          Orbit[*,numOrb[i]] =  Bgsm         
+        endfor         
+  endfor
+
+ return
+end
+
+  
+  
\ No newline at end of file
diff --git a/amda_plus/amdalib/t96omni.pro b/amda_plus/amdalib/t96omni.pro
new file mode 100644
index 0000000..583b05a
--- /dev/null
+++ b/amda_plus/amdalib/t96omni.pro
@@ -0,0 +1,43 @@
+pro t96omni, Time, Orbit
+
+  StepDefaut = 3600.0
+  FillValue = -1.e31
+  Number = N_elements(Time)
+  Bgsm = fltarr(3)
+  xyz = fltarr(3)
+  
+  num31 = where(Orbit[0,*] ne FillValue, Index31)
+  if (Index31 le 0) then return
+
+  Time = Time[num31]
+  Orbit = Orbit[*,num31]
+
+ ; StepAve = (Time[Number-1] - Time[0])/20.0 > StepDefaut
+  StepAve =  StepDefaut;
+  TimeIntDst = StepAve > 3600.0
+  TimeIntDstS = call_external(!DDLIB + 'DD_idl.so','GetTime', double(TimeIntDst), /S_Value)
+
+  for TimeCurr = Time[0], Time[Number-1], double(StepAve) do begin
+
+        numOrb = where((Time - TimeCurr LT StepAve) AND (Time - TimeCurr GE 0.0), IndexOrb)
+        if (IndexOrb LE 0) then continue
+        
+        params = sw_monitor_omni_(TimeCurr,StepAve,Orbit[*,numOrb[IndexOrb/2]])
+        STime = call_external(!DDLIB + 'DD_idl.so','GetTime', double(TimeCurr+StepAve/2.0), /S_Value)
+        Dst = dst_(STime, TimeIntDstS, TimeDst, RetSize, Sampling, /CLOSE)
+        Dst_av = RetSize GT 0 ? mean(Dst) : -10.0
+        TILT = call_external(!DDLIB + 'Ts96.so','MFsetupMAN', STime, Dst_av, params, /F_VALUE) 
+
+        for i = 0, IndexOrb - 1 do begin        
+          err = call_external(!DDLIB + 'idl_geopack.so', 'gse2gsm',STime, Orbit[*,numOrb[i]], xyz)
+          err = call_external(!DDLIB + 'Ts96.so', 'MFpoint', xyz, Bgsm);
+          if Bgsm[0] eq 0.0 then Bgsm(*) = FillValue ; in BL or MSH
+          Orbit[*,numOrb[i]] =  Bgsm         
+        endfor         
+  endfor
+
+ return
+end
+
+  
+  
\ No newline at end of file
diff --git a/amda_plus/amdalib/th_e_sp_com.pro b/amda_plus/amdalib/th_e_sp_com.pro
new file mode 100644
index 0000000..55ffa19
--- /dev/null
+++ b/amda_plus/amdalib/th_e_sp_com.pro
@@ -0,0 +1,62 @@
+;------------------------ THEMIS SPECTRA SET ---------------------
+;  
+;-----------------------------------------------------------------------------------
+pro th_e_sp_com, THEMIS
+
+common ThaeSpecCom, ThaeSpec
+common ThbeSpecCom, ThbeSpec
+common ThceSpecCom, ThceSpec
+common ThdeSpecCom, ThdeSpec
+common TheeSpecCom, TheeSpec
+common GraphC, graph, GraphN, Item
+Common Record, Record
+
+ FillValue =  !Values.F_NAN
+ Sampling = 3.0
+ MaxSampling = 385.09
+
+ DELAY = 0.0D0
+ Sz =  Long((Graph(GraphN).DeltaT)/Sampling + 1)
+  
+  SWP = record
+  SWP.DefSize = long(Graph[GraphN].DeltaT/Sampling + 1)
+  SWP.Sampling = Sampling 
+  Graph[GraphN].FillValue[Item] = FillValue
+  Graph[GraphN].Lag[Item] = double(Delay) 
+
+  SWP.Time = PTR_NEW(/ALLOCATE_HEAP)
+  SWP.Val = PTR_NEW(/ALLOCATE_HEAP)
+  SWP.LastTime = PTR_NEW(/ALLOCATE_HEAP)
+  SWP.LastVal = PTR_NEW(/ALLOCATE_HEAP)
+ 
+  Graph[GraphN].Sampling[Item] =  Sampling
+  Graph[GraphN].MaxSampling[Item] =  MaxSampling
+  Graph[GraphN].Time[Item] =  SWP.Time
+  Graph[GraphN].Val[Item] = SWP.Val
+
+  if (Graph[GraphN].Step GT Sampling*2.0) then begin
+    *(SWP.Time) = indgen(Graph[GraphN].ppp)*Graph[GraphN].Step + Graph[GraphN].Step/2.0
+    *(SWP.Val)  =  replicate(FillValue, 32L*Graph[GraphN].ppp)
+  endif
+
+; Get Energy Info 
+ 
+      ID = Long(graph[GraphN].DataID[Item])  
+      VI = 'th'+THEMIS+':esa:l2e'
+      sz = 32L
+      Energy = fltarr(sz)
+      err = call_external(!PROJLIB + 'libParam.so', 'getInfo', $
+                          ID, VI, 'Energy', sz, Energy)
+     if (err LT 0) then stop
+    
+     Graph[GraphN].yaxis = PTR_NEW(/ALLOCATE_HEAP)
+     *(Graph[GraphN].yaxis) = Energy
+
+     graph[GraphN].DataID[Item] = ID;
+
+  cmd = 'Th'+THEMIS+'eSpec = SWP' 
+  R = execute(cmd)
+ 
+
+return
+end
\ No newline at end of file
diff --git a/amda_plus/amdalib/vex_els_spec_init.pro b/amda_plus/amdalib/vex_els_spec_init.pro
new file mode 100644
index 0000000..33c4e61
--- /dev/null
+++ b/amda_plus/amdalib/vex_els_spec_init.pro
@@ -0,0 +1,62 @@
+;==========================================================
+;                DD DDMARS/DDVEX
+;                elspec_init.pro
+;-----------------------------------------------------------
+
+pro vex_els_spec_init, ANODE = Anode, Stop_Anode = Stop_Anode, $
+                      LOG = log, LIN = lin, PSYM = psym, COLOR = color, AY1TITLE = AY1Title, $
+                     ; spectra
+                     MINCOUNT = minCount, MAXCOUNT = maxCount, BACKGRDCHAN = backgrdChan, BACKGRDVAL = backgrdVal, $
+                     CHANNEL = channel, Energy = energy, ENERGYMIN = energymin, ENERGYMAX =  energymax, $
+                     
+                     DELAY = delay, $                      
+                     ; all additional keywords
+                    _EXTRA = e 
+
+common Request, List, StartTime, TimeInt
+common GraphC, graph, GraphN, Item
+
+AnMin = 6
+AnMax = 15
+ 
+EnMin = 1.0;
+EnMax = 2800.0;
+
+if (KEYWORD_SET(ANODE)) then begin
+   AnMin = Anode
+   if (KEYWORD_SET(Stop_Anode)) then AnMax = Stop_Anode $
+   else AnMax = -1;
+endif
+
+energyTitle = '';
+graph[GraphN].Type = 'ELS_T'
+graph[GraphN].DataN = 1
+graph[GraphN].SetCommonF[0] = 'elscom, "vex"'
+graph[GraphN].GetDataF[0] = 'getels, "vex"'
+graph[GraphN].DeltaT = (Graph[GraphN].TotalTime + 60.0D0) < 36100.0D0
+
+if (KEYWORD_SET(energymin)) then begin
+   EnMin = energymin;
+   EnMax =  energymax;  
+   energyTitle = energymin eq energymax ? '!C E ' + string(energymin) + 'eV' : '!C E ' + string(energymin) + '-'+  string(energymax) + 'eV'; 
+      
+      options = '"vex", ' + string(AnMin) +','+string(AnMax) +','  +string(EnMin) +','+string(EnMax);
+      angleTitle =  AnMax GT AnMin ? 'VEX ELS An'+ string(AnMin,format='(i2.2)') +'-'+ string(AnMax,format='(i2.2)') : 'VEX ELS An'+ string(AnMin,format='(i2.2)');
+      
+
+      graph[GraphN].AxisF =  KEYWORD_SET(lin) ?  'lineaxis, 0' : 'logaxis';
+      graph[GraphN].Ly.title =  'VEX ELS Cnts ' +  angleTitle + energyTitle					    
+      graph[GraphN].PlotF = 'elscntplot,' + options
+endif else begin 
+      options = '"vex", ' + string(AnMin) +','+string(AnMax);
+
+      graph[GraphN].names = PTR_NEW(/ALLOCATE_HEAP)
+      *(graph[GraphN].names) = 'log Counts'
+
+      graph[GraphN].Ly.title = AnMax GT AnMin ? 'VEX ELS An'+ string(AnMin,format='(i2.2)') +'-'+ string(AnMax,format='(i2.2)') +'!C E, eV' : 'VEX ELS An'+ string(AnMin,format='(i2.2)') + '!C E, eV'
+      graph[GraphN].PlotF = 'elsspecplot,' + options
+ 
+endelse
+return
+end
+;------------------------------------------------------------
diff --git a/amda_plus/amdalib/vex_h_dens_init.pro b/amda_plus/amdalib/vex_h_dens_init.pro
new file mode 100755
index 0000000..df50c15
--- /dev/null
+++ b/amda_plus/amdalib/vex_h_dens_init.pro
@@ -0,0 +1,22 @@
+;--------------------------------------
+;
+;---------------------------------------
+
+pro vex_h_dens_INIT,  LIN = LIN, LOG = LOG,  COLOR = color, PSYM = psym
+
+common GraphC, graph, GraphN, Item
+
+names = ['Poor', 'Satisfactory', 'Good', 'Excellent']
+
+Graph[GraphN].names = PTR_NEW(/ALLOCATE_HEAP)
+*(graph[GraphN].names) =  names;
+graph[GraphN].Type = 'FGM_T' 
+graph[GraphN].DataN = 1
+graph[GraphN].SetCommonF[0] = 'vexmex_dens_com, "vex", "h"' 
+graph[GraphN].GetDataF[0] ='get_vexmex_dens, "vex", "h"'
+graph[GraphN].DeltaT = (Graph[GraphN].TotalTime + 60.0D0) <  36100.0D0
+graph[GraphN].Ly.title = 'VEX ima-H N, cm!U-3'
+graph[GraphN].AxisF =  KEYWORD_SET(LIN) ?  'lineaxis, 0' : 'logaxis'
+graph[GraphN].PlotF = 'PlotImaDens'
+return
+end
diff --git a/amda_plus/amdalib/vex_h_qual_init.pro b/amda_plus/amdalib/vex_h_qual_init.pro
new file mode 100644
index 0000000..9c7768f
--- /dev/null
+++ b/amda_plus/amdalib/vex_h_qual_init.pro
@@ -0,0 +1,26 @@
+;--------------------------------------
+;
+;---------------------------------------
+
+pro vex_h_qual_INIT, $
+                     LOG = log, LIN = lin, PSYM = psym, COLOR = color, AY1TITLE = AY1Title, $                   
+                     ; vector
+                     X = x, Y = y, Z = z, TOTAL = total, FRAME = frame, $
+                     DELAY = delay, $
+                     
+                     ; all additional keywords
+                    _EXTRA = e    
+
+common GraphC, graph, GraphN, Item
+
+
+graph[GraphN].Type = 'FGM_T' 
+graph[GraphN].DataN = 1
+graph[GraphN].SetCommonF[0] = 'vexmex_qual_com, "vex", "h"' 
+graph[GraphN].GetDataF[0] ='get_vexmex_qual, "vex", "h"'
+graph[GraphN].DeltaT = (Graph[GraphN].TotalTime + 60.0D0) <  18000.0D0 
+graph[GraphN].Ly.title = 'VEX ima-H Quality'
+graph[GraphN].AxisF = 'lineaxis, 0'
+graph[GraphN].PlotF = 'PlotImaQual'
+return
+end
diff --git a/amda_plus/amdalib/vex_h_spec_init.pro b/amda_plus/amdalib/vex_h_spec_init.pro
new file mode 100644
index 0000000..0926521
--- /dev/null
+++ b/amda_plus/amdalib/vex_h_spec_init.pro
@@ -0,0 +1,74 @@
+;====================================================
+;              VEX_h_spec_init
+;                 1.0
+;   Init module of "h_spec" object
+;   HPSPEC from IMAEXTRA product VEX
+;
+;              18 Mars 2009
+;----------------------------------------------------
+
+pro vex_h_spec_init, ANODE = Anode, STOP_ANODE = Stop_Anode, elevationAsTime = elevationAsTime, $
+                     LOG = log, LIN = lin, PSYM = psym, COLOR = color, AY1TITLE = AY1Title, $
+                     ; spectra
+                     MINCOUNT = minCount, MAXCOUNT = maxCount, BACKGRDCHAN = backgrdChan, BACKGRDVAL = backgrdVal, $
+                     CHANNEL = channel, Energy = energy, ENERGYMIN = energymin, ENERGYMAX =  energymax, $
+                     
+                     DELAY = delay, $                      
+                     ; all additional keywords
+                    _EXTRA = e 
+
+  common Request, List, StartTime, TimeInt
+  common GraphC, graph, GraphN, Item
+
+  AzMin = 0
+  AzMax = 15
+
+   elevation = 1;
+   if (KEYWORD_SET(elevationAsTime)) then elevation = 0;
+
+  if (KEYWORD_SET(ANODE)) then begin
+    AzMin = Anode
+   if (KEYWORD_SET(STOP_ANODE)) then AzMax = Stop_Anode $
+   else AzMax = -1;
+  endif
+  
+  
+  graph(GraphN).Type = 'IMA_T'
+  graph(GraphN).DataN = 1
+  graph(GraphN).SetCommonF(0) = 'ima_h_spec_com, "vex"'
+  graph(GraphN).GetDataF(0) = 'get_ima_h_spec'
+  graph[GraphN].DeltaT = (Graph[GraphN].TotalTime + 60.0D0) < 36100.0D0
+
+
+EnMin = 1.0;
+EnMax = 25000.0;
+
+energyTitle = '';
+
+
+if (KEYWORD_SET(ENERGYMIN)) then begin
+   EnMin = energymin;
+   EnMax =  energymax;
+   energyTitle = energymin eq energymax ? '!C E ' + string(energymin,format='(f7.1)') + 'eV' : '!C E ' + string(energymin,format='(f7.1)') + '-'+  string(energymax,format='(f7.1)') + 'eV'; 
+    
+    options = '"vex", ' + string(AzMin) +','+string(AzMax) +','+string(EnMin) +','+string(EnMax) + ',' + string(elevation);
+
+    angleTitle =   AzMax GT AzMin ?  'VEX IMA H+ An'+ string(AzMin,format='(i2.2)') +'-'+ string(AzMax,format='(i2.2)') : 'VEX IMA H+ An'+ string(AzMin,format='(i2.2)');
+    
+    graph[GraphN].AxisF =  KEYWORD_SET(lin) ?  'lineaxis, 0' : 'logaxis';
+    graph[GraphN].Ly.title =  'VEX H Cnts ' +  angleTitle + energyTitle
+					  
+    graph[GraphN].PlotF = 'imacntplot,' + options
+endif else begin
+    options = '"vex",'+string(AzMin) +','+string(AzMax) + ',' + string(elevation);
+    
+    graph[GraphN].names = PTR_NEW(/ALLOCATE_HEAP)
+    *(graph[GraphN].names) = 'log Counts'
+    
+    
+    graph[GraphN].Ly.title = AzMax GT AzMin ?  'VEX IMA H+ An'+ string(AzMin,format='(i2.2)') +'-'+ string(AzMax,format='(i2.2)') +'!CE/Q, eV' : 'VEX IMA H+ An'+ string(AzMin,format='(i2.2)') + '!C E/Q, eV'
+    graph[GraphN].PlotF =  'imaspecplot,' + options
+endelse
+return
+end
+;------------------------------------------------------------
diff --git a/amda_plus/amdalib/vex_h_temp_init.pro b/amda_plus/amdalib/vex_h_temp_init.pro
new file mode 100644
index 0000000..43113f8
--- /dev/null
+++ b/amda_plus/amdalib/vex_h_temp_init.pro
@@ -0,0 +1,36 @@
+;--------------------------------------
+;
+;---------------------------------------
+
+pro vex_h_temp_INIT,$
+                     LOG = log, LIN = lin, PSYM = psym, COLOR = color, AY1TITLE = AY1Title, $                   
+                     ; vector
+                     X = x, Y = y, Z = z, TOTAL = total, FRAME = frame, $
+                     DELAY = delay, $
+                     
+                     ; all additional keywords
+                    _EXTRA = e
+
+common GraphC, graph, GraphN, Item
+
+ 
+ pen = !dnc-1  & symbol = -3;
+ 
+ if (KEYWORD_SET(COLOR)) then pen = color; 
+ if (KEYWORD_SET(PSYM)) then symbol = psym;    
+ 
+   
+ 
+graph[GraphN].Type = 'FGM_T' 
+graph[GraphN].DataN = 1
+graph[GraphN].SetCommonF[0] = 'vexmex_temp_com, "vex", "h"' 
+graph[GraphN].GetDataF[0] ='get_vexmex_temp, "vex", "h"'
+graph[GraphN].DeltaT = (Graph[GraphN].TotalTime + 60.0D0) <  18000.0D0 
+graph[GraphN].Ly.title = 'VEX ima-H T VSO, eV'
+graph[GraphN].PlotF = 'PlotScal_New, 0,' + string(pen)  + ',' + string(symbol);   
+if (KEYWORD_SET(LOG)) then AxisF = 'logaxis' $
+else AxisF = 'lineaxis, ' + string(Graph[GraphN].TotalTime);
+graph[GraphN].AxisF = AxisF; 
+
+return
+end
diff --git a/amda_plus/amdalib/vex_h_vel_0_init.pro b/amda_plus/amdalib/vex_h_vel_0_init.pro
new file mode 100644
index 0000000..d246a9d
--- /dev/null
+++ b/amda_plus/amdalib/vex_h_vel_0_init.pro
@@ -0,0 +1,17 @@
+pro vex_h_vel_0_init, LOG = log, LIN = lin, PSYM = psym, COLOR = color, AY1TITLE = AY1Title, $                   
+                     ; vector
+                     X = x, Y = y, Z = z, TOTAL = total, FRAME = frame, $
+                     DELAY = delay, $                     
+                     ; all additional keywords
+                    _EXTRA = e
+ 
+
+  cmd = 'vex_h_vel_init, /X' 
+ 
+  if (KEYWORD_SET(PSYM)) then cmd += ", PSYM=" + string(psym)
+  if (KEYWORD_SET(COLOR)) then cmd += ", COLOR=" + string(color)
+  if (KEYWORD_SET(AY1TITLE)) then cmd += ", AY1TITLE=" + string(AY1Title)
+  R = execute(cmd) 
+
+return
+end 
diff --git a/amda_plus/amdalib/vex_h_vel_1_init.pro b/amda_plus/amdalib/vex_h_vel_1_init.pro
new file mode 100644
index 0000000..82d354e
--- /dev/null
+++ b/amda_plus/amdalib/vex_h_vel_1_init.pro
@@ -0,0 +1,17 @@
+pro vex_h_vel_1_init, LOG = log, LIN = lin, PSYM = psym, COLOR = color, AY1TITLE = AY1Title, $                   
+                     ; vector
+                     X = x, Y = y, Z = z, TOTAL = total, FRAME = frame, $
+                     DELAY = delay, $                     
+                     ; all additional keywords
+                    _EXTRA = e
+ 
+
+  cmd = 'vex_h_vel_init, /Y' 
+ 
+  if (KEYWORD_SET(PSYM)) then cmd += ", PSYM=" + string(psym)
+  if (KEYWORD_SET(COLOR)) then cmd += ", COLOR=" + string(color)
+  if (KEYWORD_SET(AY1TITLE)) then cmd += ", AY1TITLE=" + string(AY1Title)
+  R = execute(cmd) 
+
+return
+end 
diff --git a/amda_plus/amdalib/vex_h_vel_2_init.pro b/amda_plus/amdalib/vex_h_vel_2_init.pro
new file mode 100644
index 0000000..a4a3eb8
--- /dev/null
+++ b/amda_plus/amdalib/vex_h_vel_2_init.pro
@@ -0,0 +1,17 @@
+pro vex_h_vel_2_init, LOG = log, LIN = lin, PSYM = psym, COLOR = color, AY1TITLE = AY1Title, $                   
+                     ; vector
+                     X = x, Y = y, Z = z, TOTAL = total, FRAME = frame, $
+                     DELAY = delay, $                     
+                     ; all additional keywords
+                    _EXTRA = e
+ 
+
+  cmd = 'vex_h_vel_init, /Z' 
+ 
+  if (KEYWORD_SET(PSYM)) then cmd += ", PSYM=" + string(psym)
+  if (KEYWORD_SET(COLOR)) then cmd += ", COLOR=" + string(color)
+  if (KEYWORD_SET(AY1TITLE)) then cmd += ", AY1TITLE=" + string(AY1Title)
+  R = execute(cmd) 
+
+return
+end 
diff --git a/amda_plus/amdalib/vex_h_vel_init.pro b/amda_plus/amdalib/vex_h_vel_init.pro
new file mode 100644
index 0000000..60e6a47
--- /dev/null
+++ b/amda_plus/amdalib/vex_h_vel_init.pro
@@ -0,0 +1,47 @@
+;--------------------------------------
+;
+;---------------------------------------
+
+pro vex_h_vel_INIT, $
+		     LOG = log, LIN = lin, PSYM = psym, COLOR = color, AY1TITLE = AY1Title, $                   
+                     ; vector
+                     X = x, Y = y, Z = z, TOTAL = total, FRAME = frame, $
+                     DELAY = delay, $
+                     
+                     ; all additional keywords
+                    _EXTRA = e
+
+common GraphC, graph, GraphN, Item
+
+names = ['V!DX', 'V!DY', 'V!DZ', 'V']
+frame = 'VSO'
+
+
+pen = !dnc-1 & comp = 100 & symbol = -3;
+ 
+ if (KEYWORD_SET(COLOR)) then pen = color; 
+ if (KEYWORD_SET(PSYM)) then symbol = psym;   
+  
+   
+   if KEYWORD_SET(X) then comp = 0
+   if KEYWORD_SET(Y) then comp = 1
+   if KEYWORD_SET(Z) then comp = 2
+   if KEYWORD_SET(TOT) then comp = 3
+ 
+yTitle = 'VEX ima-H V VSO, km/s' 
+if (KEYWORD_SET(AY1TITLE)) then graph[GraphN].Ly.title = AY1Title $
+else graph[GraphN].Ly.title = yTitle 
+
+graph[GraphN].names = PTR_NEW(/ALLOCATE_HEAP)
+graph[GraphN].Type = 'FGM_T' 
+graph[GraphN].DataN = 1
+graph[GraphN].SetCommonF[0] = 'vexmex_vel_com, "vex", "h"' 
+graph[GraphN].GetDataF[0] ='get_vexmex_vel, "vex", "h"'
+graph[GraphN].DeltaT = (Graph[GraphN].TotalTime + 60.0D0) <  18000.0D0 
+
+*(graph[GraphN].names) = (comp le 3) ? names : names[0:2]
+graph[GraphN].PlotF = comp eq 100 ? 'PlotVec': 'PlotVec_Comp_New, ' + string(comp) +','+ string(pen ) +','+ string(symbol)
+graph[GraphN].AxisF = 'lineaxis,' + string(graph[graphN].TotalTime)
+ 
+return
+end
diff --git a/amda_plus/amdalib/vex_o_dens_init.pro b/amda_plus/amdalib/vex_o_dens_init.pro
new file mode 100644
index 0000000..e0018e6
--- /dev/null
+++ b/amda_plus/amdalib/vex_o_dens_init.pro
@@ -0,0 +1,23 @@
+;--------------------------------------
+;
+;---------------------------------------
+
+pro vex_o_dens_INIT,  LIN = LIN, LOG = LOG, COLOR = color, PSYM = psym
+
+common GraphC, graph, GraphN, Item
+
+names = ['Poor', 'Satisfactory', 'Good', 'Excellent']
+
+Graph[GraphN].names = PTR_NEW(/ALLOCATE_HEAP)
+*(graph[GraphN].names) =  names;
+
+graph[GraphN].Type = 'FGM_T' 
+graph[GraphN].DataN = 1
+graph[GraphN].SetCommonF[0] = 'vexmex_dens_com, "vex", "o"' 
+graph[GraphN].GetDataF[0] ='get_vexmex_dens, "vex", "o"'
+graph[GraphN].DeltaT = (Graph[GraphN].TotalTime + 60.0D0) <  18000.0D0 
+graph[GraphN].Ly.title = 'VEX ima-O N, cm!U-3'
+graph[GraphN].AxisF =  KEYWORD_SET(LIN) ?  'lineaxis, 0' : 'logaxis'
+graph[GraphN].PlotF = 'PlotImaDens'
+return
+end
diff --git a/amda_plus/amdalib/vex_o_qual_init.pro b/amda_plus/amdalib/vex_o_qual_init.pro
new file mode 100644
index 0000000..b18827f
--- /dev/null
+++ b/amda_plus/amdalib/vex_o_qual_init.pro
@@ -0,0 +1,30 @@
+;--------------------------------------
+;
+;---------------------------------------
+
+pro vex_o_qual_INIT, $
+                     LOG = log, LIN = lin, PSYM = psym, COLOR = color, AY1TITLE = AY1Title, $                   
+                     ; vector
+                     X = x, Y = y, Z = z, TOTAL = total, FRAME = frame, $
+                     DELAY = delay, $
+                     
+                     ; all additional keywords
+                    _EXTRA = e     
+
+common GraphC, graph, GraphN, Item
+
+names = ['Poor', 'Satisfactory', 'Good', 'Excellent']
+
+Graph[GraphN].names = PTR_NEW(/ALLOCATE_HEAP)
+*(graph[GraphN].names) =  names;
+
+graph[GraphN].Type = 'FGM_T' 
+graph[GraphN].DataN = 1
+graph[GraphN].SetCommonF[0] = 'vexmex_qual_com, "vex", "o"' 
+graph[GraphN].GetDataF[0] ='get_vexmex_qual, "vex", "o"'
+graph[GraphN].DeltaT = (Graph[GraphN].TotalTime + 60.0D0) <  18000.0D0 
+graph[GraphN].Ly.title = 'VEX ima-O Quality'
+graph[GraphN].AxisF = 'lineaxis, 0'
+graph[GraphN].PlotF = 'PlotImaQual'
+return
+end
diff --git a/amda_plus/amdalib/vex_o_spec_init.pro b/amda_plus/amdalib/vex_o_spec_init.pro
new file mode 100644
index 0000000..82d76de
--- /dev/null
+++ b/amda_plus/amdalib/vex_o_spec_init.pro
@@ -0,0 +1,73 @@
+;====================================================
+;              VEX_h_spec_init
+;                 1.0
+;   Init module of "h_spec" object
+;   HPSPEC from IMAEXTRA product VEX
+;
+;              18 Mars 2009
+;----------------------------------------------------
+
+pro vex_o_spec_init, ANODE = Anode, STOP_ANODE = Stop_Anode, elevationAsTime = elevationAsTime, $
+                     LOG = log, LIN = lin, PSYM = psym, COLOR = color, AY1TITLE = AY1Title, $
+                     ; spectra
+                     MINCOUNT = minCount, MAXCOUNT = maxCount, BACKGRDCHAN = backgrdChan, BACKGRDVAL = backgrdVal, $
+                     CHANNEL = channel, Energy = energy, ENERGYMIN = energymin, ENERGYMAX =  energymax, $
+                     
+                     DELAY = delay, $                      
+                     ; all additional keywords
+                    _EXTRA = e 
+
+  common Request, List, StartTime, TimeInt
+  common GraphC, graph, GraphN, Item
+
+  AzMin = 0
+  AzMax = 15
+
+   elevation = 1;
+   if (KEYWORD_SET(elevationAsTime)) then elevation = 0;
+
+  if (KEYWORD_SET(ANODE)) then begin
+    AzMin = Anode
+   if (KEYWORD_SET(STOP_ANODE)) then AzMax = Stop_Anode $
+   else AzMax = -1;
+  endif
+  
+  
+  graph(GraphN).Type = 'IMA_T'
+  graph(GraphN).DataN = 1
+  graph(GraphN).SetCommonF(0) = 'ima_o_spec_com, "vex"'
+  graph(GraphN).GetDataF(0) = 'get_ima_o_spec, "vex"'
+  graph[GraphN].DeltaT = (Graph[GraphN].TotalTime + 60.0D0) < 36100.0D0
+
+EnMin = 1.0;
+EnMax = 25000.0;
+
+energyTitle = '';
+
+
+if (KEYWORD_SET(ENERGYMIN)) then begin
+   EnMin = energymin;
+   EnMax =  energymax;
+   energyTitle = energymin eq energymax ? '!C E ' + string(energymin,format='(f7.1)') + 'eV' : '!C E ' + string(energymin,format='(f7.1)') + '-'+  string(energymax,format='(f7.1)') + 'eV'; 
+    
+    options = '"vex", ' + string(AzMin) +','+string(AzMax) +','+string(EnMin) +','+string(EnMax)+ ',' + string(elevation);
+
+    angleTitle =   AzMax GT AzMin ?  'VEX IMA Heavy An'+ string(AzMin,format='(i2.2)') +'-'+ string(AzMax,format='(i2.2)') : 'VEX IMA Heavy An'+ string(AzMin,format='(i2.2)');
+    
+    graph[GraphN].AxisF =  KEYWORD_SET(lin) ?  'lineaxis, 0' : 'logaxis';
+    graph[GraphN].Ly.title =  'VEX Heavy Cnts ' +  angleTitle + energyTitle
+					  
+    graph[GraphN].PlotF = 'imacntplot,' + options
+endif else begin
+    options = '"vex",'+string(AzMin) +','+string(AzMax) + ',' + string(elevation);
+    
+    graph[GraphN].names = PTR_NEW(/ALLOCATE_HEAP)
+    *(graph[GraphN].names) = 'log Counts'
+    
+    
+    graph[GraphN].Ly.title = AzMax GT AzMin ?  'VEX IMA Heavy An'+ string(AzMin,format='(i2.2)') +'-'+ string(AzMax,format='(i2.2)') +'!CE/Q, eV' : 'VEX IMA Heavy An'+ string(AzMin,format='(i2.2)') + '!C E/Q, eV'
+    graph[GraphN].PlotF =  'imaspecplot,' + options
+endelse
+return
+end
+;------------------------------------------------------------
diff --git a/amda_plus/amdalib/vex_o_temp_init.pro b/amda_plus/amdalib/vex_o_temp_init.pro
new file mode 100644
index 0000000..df7782f
--- /dev/null
+++ b/amda_plus/amdalib/vex_o_temp_init.pro
@@ -0,0 +1,35 @@
+;--------------------------------------
+;
+;---------------------------------------
+
+pro vex_o_temp_INIT,$
+                     LOG = log, LIN = lin, PSYM = psym, COLOR = color, AY1TITLE = AY1Title, $                   
+                     ; vector
+                     X = x, Y = y, Z = z, TOTAL = total, FRAME = frame, $
+                     DELAY = delay, $
+                     
+                     ; all additional keywords
+                    _EXTRA = e
+
+
+common GraphC, graph, GraphN, Item
+
+ 
+pen = !dnc-1  & symbol = -3;
+ 
+ if (KEYWORD_SET(COLOR)) then pen = color; 
+ if (KEYWORD_SET(PSYM)) then symbol = psym;     
+    
+graph[GraphN].Type = 'FGM_T' 
+graph[GraphN].DataN = 1
+graph[GraphN].SetCommonF[0] = 'vexmex_temp_com, "vex", "o"' 
+graph[GraphN].GetDataF[0] ='get_vexmex_temp, "vex", "o"'
+graph[GraphN].DeltaT = (Graph[GraphN].TotalTime + 60.0D0) <  18000.0D0 
+graph[GraphN].Ly.title = 'VEX ima-O T VSO, eV'
+graph[GraphN].PlotF = 'PlotScal_New, 0,' + string(pen)  + ',' + string(symbol); 
+if (KEYWORD_SET(LOG)) then AxisF = 'logaxis' $
+else AxisF = 'lineaxis, ' + string(Graph[GraphN].TotalTime);
+graph[GraphN].AxisF = AxisF; 
+
+return
+end
diff --git a/amda_plus/amdalib/vex_o_vel_0_init.pro b/amda_plus/amdalib/vex_o_vel_0_init.pro
new file mode 100644
index 0000000..cad84e9
--- /dev/null
+++ b/amda_plus/amdalib/vex_o_vel_0_init.pro
@@ -0,0 +1,17 @@
+pro vex_o_vel_0_init, LOG = log, LIN = lin, PSYM = psym, COLOR = color, AY1TITLE = AY1Title, $                   
+                     ; vector
+                     X = x, Y = y, Z = z, TOTAL = total, FRAME = frame, $
+                     DELAY = delay, $                     
+                     ; all additional keywords
+                    _EXTRA = e
+ 
+
+  cmd = 'vex_o_vel_init, /X' 
+ 
+  if (KEYWORD_SET(PSYM)) then cmd += ", PSYM=" + string(psym)
+  if (KEYWORD_SET(COLOR))  then cmd += ", COLOR=" +  string(color)
+  if (KEYWORD_SET(AY1TITLE))  then cmd += ", AY1TITLE=" +  string(AY1Title)
+  R = execute(cmd) 
+
+return
+end 
diff --git a/amda_plus/amdalib/vex_o_vel_1_init.pro b/amda_plus/amdalib/vex_o_vel_1_init.pro
new file mode 100644
index 0000000..a1413fc
--- /dev/null
+++ b/amda_plus/amdalib/vex_o_vel_1_init.pro
@@ -0,0 +1,17 @@
+pro vex_o_vel_1_init, LOG = log, LIN = lin, PSYM = psym, COLOR = color, AY1TITLE = AY1Title, $                   
+                     ; vector
+                     X = x, Y = y, Z = z, TOTAL = total, FRAME = frame, $
+                     DELAY = delay, $                     
+                     ; all additional keywords
+                    _EXTRA = e
+ 
+
+  cmd = 'vex_o_vel_init, /Y' 
+ 
+  if (KEYWORD_SET(PSYM)) then cmd += ", PSYM=" + string(psym)
+  if (KEYWORD_SET(COLOR)) then cmd += ", COLOR=" + string(color)
+  if (KEYWORD_SET(AY1TITLE)) then cmd += ", AY1TITLE=" + string(AY1Title)
+  R = execute(cmd) 
+
+return
+end 
diff --git a/amda_plus/amdalib/vex_o_vel_2_init.pro b/amda_plus/amdalib/vex_o_vel_2_init.pro
new file mode 100644
index 0000000..f63da18
--- /dev/null
+++ b/amda_plus/amdalib/vex_o_vel_2_init.pro
@@ -0,0 +1,17 @@
+pro vex_o_vel_2_init, LOG = log, LIN = lin, PSYM = psym, COLOR = color, AY1TITLE = AY1Title, $                   
+                     ; vector
+                     X = x, Y = y, Z = z, TOTAL = total, FRAME = frame, $
+                     DELAY = delay, $                     
+                     ; all additional keywords
+                    _EXTRA = e
+ 
+
+  cmd = 'vex_o_vel_init, /Z' 
+ 
+  if (KEYWORD_SET(PSYM)) then cmd += ", PSYM=" + string(psym)
+  if (KEYWORD_SET(COLOR))  then  cmd += ", COLOR=" + string(color)
+  if (KEYWORD_SET(AY1TITLE))  then  cmd += ", AY1TITLE=" + string(AY1Title)
+  R = execute(cmd) 
+
+return
+end 
diff --git a/amda_plus/amdalib/vex_o_vel_init.pro b/amda_plus/amdalib/vex_o_vel_init.pro
new file mode 100644
index 0000000..77c0d2a
--- /dev/null
+++ b/amda_plus/amdalib/vex_o_vel_init.pro
@@ -0,0 +1,46 @@
+;--------------------------------------
+;
+;---------------------------------------
+
+pro vex_o_vel_INIT, $
+		     LOG = log, LIN = lin, PSYM = psym, COLOR = color, AY1TITLE = AY1Title, $                   
+                     ; vector
+                     X = x, Y = y, Z = z, TOTAL = total, FRAME = frame, $
+                     DELAY = delay, $
+                     
+                     ; all additional keywords
+                    _EXTRA = e
+
+common GraphC, graph, GraphN, Item
+
+names = ['V!DX', 'V!DY', 'V!DZ', 'V']
+frame = 'VSO'
+
+
+pen = !dnc-1 & comp = 100 & symbol = -3;
+ 
+ if (KEYWORD_SET(COLOR)) then pen = color; 
+ if (KEYWORD_SET(PSYM)) then symbol = psym;   
+  
+   
+   if KEYWORD_SET(X) then comp = 0
+   if KEYWORD_SET(Y) then comp = 1
+   if KEYWORD_SET(Z) then comp = 2
+   if KEYWORD_SET(TOT) then comp = 3
+ 
+yTitle =  'VEX ima-Heavy V VSO, km/s'
+if (KEYWORD_SET(AY1TITLE)) then graph[GraphN].Ly.title = AY1Title $
+else graph[GraphN].Ly.title = yTitle 
+
+graph[GraphN].names = PTR_NEW(/ALLOCATE_HEAP)
+graph[GraphN].Type = 'FGM_T' 
+graph[GraphN].DataN = 1
+graph[GraphN].SetCommonF[0] = 'vexmex_vel_com, "vex", "o"' 
+graph[GraphN].GetDataF[0] ='get_vexmex_vel, "vex", "o"'
+graph[GraphN].DeltaT = (Graph[GraphN].TotalTime + 60.0D0) <  18000.0D0 
+*(graph[GraphN].names) = (comp le 3) ? names : names[0:2]
+graph[GraphN].PlotF = comp eq 100 ? 'PlotVec': 'PlotVec_Comp_New, ' + string(comp) +','+ string(pen ) +','+ string(symbol)
+graph[GraphN].AxisF = 'lineaxis,' + string(graph[graphN].TotalTime)
+ 
+return
+end
diff --git a/amda_plus/amdalib/vex_scan_init.pro b/amda_plus/amdalib/vex_scan_init.pro
new file mode 100644
index 0000000..016a859
--- /dev/null
+++ b/amda_plus/amdalib/vex_scan_init.pro
@@ -0,0 +1,30 @@
+;--------------------------------------
+;
+;---------------------------------------
+
+pro vex_scan_INIT, $
+                     LOG = log, LIN = lin, PSYM = psym, COLOR = color, AY1TITLE = AY1Title, $                   
+                     ; vector
+                     X = x, Y = y, Z = z, TOTAL = total, FRAME = frame, $
+                     DELAY = delay, $
+                     
+                     ; all additional keywords
+                    _EXTRA = e  
+
+common GraphC, graph, GraphN, Item
+ pen = !dnc-1  & symbol = -3;
+ 
+ if (KEYWORD_SET(COLOR)) then pen = color; 
+ if (KEYWORD_SET(PSYM)) then symbol = psym;    
+
+
+graph[GraphN].Type = 'FGM_T' 
+graph[GraphN].DataN = 1
+graph[GraphN].SetCommonF[0] = 'vexmex_scan_com, "vex"' 
+graph[GraphN].GetDataF[0] ='get_vexmex_scan, "vex"'
+graph[GraphN].DeltaT = (Graph[GraphN].TotalTime + 60.0D0) <  86400.0D0 
+graph[GraphN].Ly.title = 'VEX Scan Flag'
+graph[GraphN].AxisF = 'lineaxis, 0'
+graph[GraphN].PlotF = 'PlotScal_New, 0,' + string(pen)  + ',' + string(symbol); 
+return
+end
diff --git a/amda_plus/ddlib/DD_Graph.pro b/amda_plus/ddlib/DD_Graph.pro
new file mode 100755
index 0000000..38ae553
--- /dev/null
+++ b/amda_plus/ddlib/DD_Graph.pro
@@ -0,0 +1,738 @@
+; $Id: DD_Graph.pro,v 1.13 2010/06/22 08:47:43 budnik Exp $
+;======================================================================
+;
+;                        DD_GRAPH_AMDA
+;
+;          Main system procedures of LEVEL2 of DD system
+;                        Version 5.0
+; 
+; Language: IDL 5.3 and later
+;
+; Author : Andrey O. Fedorov
+; Institution: Space research Institute (IKI)
+; Date: Fri Jun  9 11:06:53 EET DST 1995
+; Last revision Oct 4 2006
+;
+; This program module is made to display various data in DD style
+; to complete description see DD user guide and DD reference guide
+;
+;----------------------------------------------------------------
+; Revisions:
+; Fri Aug 11 15:47:50 EET DST 1995
+; The double field TimeBase was added to Graph Structure.
+; Now each plot with X axis == Time you have to make as Time - TimeBase
+; Tue May 28 12:36:48 EET DST 1996
+; Complete revision to change way to run INIT and PLOT procedures.
+; 9 12:25:56 WET 2000
+; DDGIF and correct list processing
+; just one time tick line
+;  13 March 2000 - layout of page changed
+;  21 June 2002 - True color display;  in pro SetDevice  - if 'X' then  DEVICE, Decomposed=0
+;  21 June 2002 -  getenv PROJECT to select CLUSTER-INTERBAL in pro GraphPlot
+;  21 June 2002 - OFFSETS in PostScript Portrait settings
+;  21 June 2002 - added getenv DDPROJLIB in pro Get_Graph
+;  GIF changed to PNG
+;  Added IF 'PS' then device, /close_file
+;   -----22 July 2002   YYYY:MM:DD:HH:MM:SS instead of DDday----
+;   22 July 2002   Added Min Max tags to DDGraph structure
+;   22 July 2002   Added LastPlot to DDGraph structure
+;   Oct 29, 2002   Change the footnote generation
+;   Oct 30, 2002   Introduce !DNC, !DDLIB, !PROJLIB system variables
+;   Apr 29, 2003   Change the visual class for TRUE, and retain also
+;   Sep 7, 2003    V.3.1  Change again the !DNC variable
+;   Apr 1, 2004    V.4.0  StartTime and StopTime (Double) are in Graph structure
+;   Apr 6, 2004    CLOSEALL after each Request finished
+;   Apr 9, 2004    DataN Max = 8
+;   Nov 23, 2004    V.4.2 Contunue to take data up to StopTime, even if there
+;                        is no data in the first package
+;   Oct 4 2006     V.4.3  GetTicks -> separate file; TimeAxis now up to TickVlaue = 10 days !
+;   Dec 13 2006    V.5.0  New design -> first create averaged data then PLOT
+;======================================================================
+
+; --------------------- Get_list -----------------------
+; The procedure return array of strings on graph names
+;
+pro Get_List,ListString
+
+common GraphC, Graph, GraphN, Item
+common Request, List, StartTime, TimeInt
+
+; ListString - the array of line with record of List from calling program
+; List - returned structure
+; Graph - filling array of graph
+
+; Declaration of LIST structure
+SList = { LIST, $
+          Name:'XXXXXXXXXXXXXXXXXXX', $
+          WindowRange: [0.05, 0.95, 0.0, 0.0], $     ;Range for region of plot
+          DataRange: [0.0, 0.0, 0.0, 0.0],     $     ;Range of data
+          Arguments: ''}                             ; Arguments of init
+
+List = replicate(Slist,n_elements(ListString))
+
+;Reading the lines of ListString and filling structure
+
+for i=0,n_elements(ListString)-1 do begin
+   Line1 = strcompress(ListString[i])
+   Line2 = strtrim(Line1,1)
+   ListString[i] = Line2
+   pos = strpos(ListString[i],' ')
+   List[i].Name=strmid(ListString[i],0,pos)
+   rem = strmid(ListString[i],pos,strlen(ListString[i])-pos)
+   reads,rem,a1,a2,a3,a4,a5,a6,a7,a8
+   List[i].WindowRange = [a1,a2,a3,a4]
+   List[i].DataRange = [a5,a6,a7,a8]
+   for npos = 0,7 do pos = strpos(ListString[i],' ',pos+1)
+   if (pos GT 0) then $
+      List[i].Arguments = strmid(ListString[i],pos,strlen(ListString[i])-pos)
+endfor
+
+; Setting defined parameters to Graph
+for i=0,n_elements(List)-1 do begin
+   Graph[i].Lp.region = List[i].WindowRange
+   Graph[i].Lx.range = List[i].DataRange[0:1]
+   Graph[i].Ly.range = List[i].DataRange[2:3]
+endfor
+
+return
+end
+;--------------------------------------------------------
+;----------------------GetListFile ----------------------
+;Program reads file with list of plots
+pro GetListFile, ListFile, ListString,ST,TI
+
+; ListFile - string with name
+
+       ListFile=StrCompress(ListFile,/remove_all)
+       openr,ListUnit,ListFile(0),/Get_Lun,ERROR=err
+       if (err EQ 0) then begin
+          i=0
+          Number = 0
+          readf,ListUnit,Number,format='(i)'
+
+          ListString=strarr(Number)
+          s=''
+          for i = 0,Number-1 do begin
+             readf,ListUnit,s
+             ListString(i) = StrTrim(StrCompress(s),2)
+          endfor
+          ST=''
+          TI=''
+          DEV=''
+          readf, ListUnit,ST
+          readf, ListUnit,TI
+
+;          readf, ListUnit, DEV
+
+          close,ListUnit
+          free_lun, ListUnit
+       endif
+return
+end
+;---------------------------------------------------------
+;------------------------ Get_Times ----------------------
+; The procedure to get StartTime and TimeInterval for
+; data request
+pro Get_Times,ST,TI
+
+   common GraphC, Graph, I, Item
+   common Request, List, StartTime, TimeInt
+
+; ST - input string of start time
+; TI - input string of time interval
+;
+
+LST = STRTrim(StrCompress(ST, /remove_all),1)
+LTI = STRTrim(StrCompress(TI, /remove_all),1)
+
+if StrLen(LST) GT 11 then begin
+StartTime = StrMid(LST,0,4)+$
+            STRMID(LST,5,3)+$
+            StrMid(LST,9,2)+$
+            StrMid(LST,12,2)+$
+            StrMid(LST,15,2)+$
+            '000'
+endif else StartTime='1979155080000000'
+
+if StrLen(LTI) GT 8 then $
+TimeInt =   '0000'+$
+            StrMid(LTI,0,3)+$
+            StrMid(LTI,4,2)+$
+            StrMid(LTI,7,2)+$
+            StrMid(LTI,10,2)+$
+            '000'         $
+else Timeint = '0000000010000000'
+
+;------------- SPECIAL INSERT TO PROCESS 4-digit days -------------
+if StrLen(LTI) EQ 13 then begin
+  
+   timeArr = strsplit(LTI, ':', /EXTRACT);
+   allDays = fix(timeArr[0]);
+
+   if (allDays GT 999) then begin
+           
+          years = allDays / 365;
+          days = allDays mod 365;
+
+     timeArr[0] = string(years, format = '(i4.4)') + string(days,format = '(i3.3)');
+     
+   endif else timeArr[0] = '000' + timeArr[0];
+
+  TimeInt = strjoin(timeArr);
+endif
+ 
+;------------------------------------------------------
+
+StD = call_external(!DDLIB+'DD_idl.so','GetDTime',StartTime, /D_VALUE)
+TiD = call_external(!DDLIB+'DD_idl.so','GetDTime',TimeInt, /D_VALUE)
+Graph[*].TimeRange = [StD, StD + TiD]
+Graph[*].TotalTime = TiD
+
+return
+end
+;---------------------------------------------------------
+;------------------------ Get_Graph --------------------
+; The procedure to create array of graphics
+;
+pro Get_Graph, DEV, scale, media, font, ppp, png_charsize, png_thick
+
+Common GraphC, Graph, GraphN, Item
+
+;---------------- Define system variables -----------------
+DDLIB = getenv('DDLIB')
+if DDLIB EQ '' then begin
+   print, 'No DDLIB environment, null string is set'
+endif
+defsysv, '!DDLIB', DDLIB, 1
+
+DDPROJLIB = getenv('DDPROJLIB')
+if DDPROJLIB EQ '' then begin
+   print, 'No DDPROJLIB environment, null string is set'
+endif
+defsysv, '!PROJLIB', DDPROJLIB, 1
+
+sg={GRAPH, $                                               ; The tag name of structure
+    Type: 'XXXXX', $                                       ; The name of type of graphics
+    AxisF: '',     $                                       ; Name of procedure to plot axis
+    ProcessF : '', $
+    PlotF: '',     $                                       ; Name of procedure to plot data
+    LastPlotF:'',     $                                    ; Name of procedure to complete the plot (when StopFlag == 1)
+    GetDataF: ['','','','','','','',''],  $                ; Names of procedures to get data
+    SetCommonF:['','','','','','','',''], $                ; Name of procedure to set common blocks
+    TimeRange:[0.0D0, 0.0D0], $                            ; Start and Stop times for current request
+    DataID: [-1L,-1L,-1L,-1L,-1L,-1L,-1L,-1L], $           ; Array of data IDs
+    DataFlags: [0,0,0,0,0,0,0,0], $                        ; Array of data flags for each virtual data set
+    DataTime: dblarr(8), $                                 ; Array of start time of data
+    Time : PTRARR(8), $
+    Val : PTRARR(8) , $
+    FillValue : fltarr(8),  $
+    Sampling : fltarr(8),  $                                ; [Min]Sampling rate for each data set
+    MaxSampling : fltarr(8),  $                             ; MaxSampling rate for each data set
+    Lag : dblarr(8) , $
+    DataN: 1,               $                               ; Number of DataBases to be open
+    StopFlag: 0,    $                                       ; 0 - data set not finished yet, 1 -  data completed
+    TimeBase: double(0.0) ,$                                ; The Base of time for making plot
+    TotalTime : double(0.0) ,$          
+    Sections: 0,            $                               ; Number of sections
+    CurrentSec: 0,          $                               ; Current section
+    DeltaT: double(0.0),    $                               ; TimeInterval for particular section
+    Lp: !P,         $                                       ; The tag of plot
+    Lx: !X,         $                                       ; The Tag of X axis
+    Ly: !Y,         $                                       ; The Tag of Y axis
+    Min : 1.e31,    $                                       ; Min Value
+    Max : -1.e31,   $                                       ; Max Value
+    ErrorFlag: 0,   $                                       ; Error flag could be set at any stage
+    Step : 0.0,     $                                       ; For Averging                   
+    ppp : ppp, $                                            ; points-per-plot
+    names: PTR_NEW(), $                                     ; additional subtitles
+    yaxis: PTR_NEW()}                                       ; array of Y (Energy steps etc...)                     
+    
+graph = replicate(sg,20)
+
+fnt = [font,'']
+
+SetDevice, DEV, scale, media, fnt, png_charsize, png_thick
+
+return
+end
+;---------------------------------------------------------
+;------------------------ SetDevice ----------------------
+;Pocedure sets X or PS devices
+pro SetDevice, DEV, scale, media,font, png_charsize, png_thick
+Common GraphC, Graph, GraphN, Item
+
+if DEV EQ 'X' then begin
+   Set_Plot, 'X'
+   DEVICE, True_Color=24, Decomposed=0, BYPASS_TRANSLATION = 0
+   dim = intarr(2)
+   err = call_external(!DDLIB+'DD_idl.so','GetWin',dim)
+   defsysv, '!AMDA_TITLE', 1, 1  
+   if (media EQ 'landscape') then  $
+     window,0, xsize=fix(0.9*float(dim(1))),$
+               ysize=fix(0.638*float(dim(1))),$
+               title='DD window', retain=2 $
+     else $
+     window,0, xsize=fix(0.638*float(dim(1))),$
+               ysize=fix(0.9*float(dim(1))),$
+               title='DD window', retain=2
+      !X.CHARSIZE = 1.2
+      !X.THICK = 1
+      !Y.CHARSIZE = 1.2
+      !Y.THICK = 1
+      !P.CHARTHICK = 1
+      !P.CHARSIZE = 1.2
+      !P.FONT = -1  
+endif
+
+if DEV EQ 'PS' then begin
+   Set_Plot,'PS'
+   defsysv, '!AMDA_TITLE', 0, 1 
+   if (media EQ 'portrait') then  $
+      Device,/color, BITS=8, XSIZE=21.0, YSIZE=28.8,$
+              XOFFSET= -0.5, YOFFSET = 0.5, /PORTRAIT , SET_FONT='Helvetica' $                ;  XOFFSET=0.0, YOFFSET =0.3, /PORTRAIT', file = FILENAME
+   else $
+      Device,/color, BITS=8, XSIZE=29.5, YSIZE=19.3,$
+              XOFFSET=0.3, YOFFSET=29.7, /LANDSCAPE, SET_FONT='Helvetica'  ;, file = FILENAME
+    ;----- Set Axis properties ------------------
+      !X.CHARSIZE = 1.2
+      !X.THICK = 4
+      !Y.CHARSIZE = 1.2
+      !Y.THICK = 4
+      !P.CHARTHICK = 4
+      !P.CHARSIZE = 1.2
+      !P.FONT = 0
+      !P.THICK = 3   
+endif
+
+if DEV EQ 'GIF' then begin
+   Set_Plot,'Z'
+   defsysv, '!AMDA_TITLE', 1, 1
+    if (media EQ 'portrait') then  device, SET_COLORS=256, SET_FONT='Helvetica', SET_RESOLUTION=[700,987] $
+;   if (media EQ 'portrait') then  device, SET_COLORS=256, SET_FONT='Helvetica', SET_RESOLUTION=[467,658] $
+      else device, SET_COLORS=256, SET_FONT='Helvetica', SET_RESOLUTION=[987,700]
+        ;----- Set Axis properties ------------------
+ ;     !X.CHARSIZE = 1.1
+ ;     !X.THICK = 2
+ ;     !Y.CHARSIZE = 1.1
+ ;     !Y.THICK = 2
+      !P.CHARTHICK = 1.0
+      !P.CHARSIZE = png_charsize;
+      !P.THICK = png_thick;
+endif
+
+defsysv,'!ORIENTATION', media, 1;
+
+ddcolortab = getenv('DDCOLORTAB')
+loadct,scale, FILE=ddcolortab
+defsysv,'!DNC',!D.TABLE_SIZE
+!P.COLOR = !DNC - 1
+
+for ip = 0, 9 do begin
+   Graph[ip].Lp = !P
+   Graph[ip].Lx = !X
+   Graph[ip].Ly = !Y
+endfor
+return
+end
+;----------------------------------------------------------
+;-------------------- AXISINSTALL -------------------------
+pro AxisInstall
+
+Common GraphC, Graph, i, Item
+common Request, List, StartTime, TimeInt
+
+
+; Set X axis for Time-along OBJECTS
+GetTicks, Index, LowN
+
+; Setting defined parameters to Graph
+; and install default location of axis 
+ps=fltarr(4)
+bs=fltarr(4)
+ 
+for i=0,n_elements(List)-1 do begin
+ 
+   Graph[i].Lp.position = List[i].WindowRange
+   Graph[i].Lx.range = List[i].DataRange[0:1]
+   Graph[i].Ly.range = List[i].DataRange[2:3]
+   bs = graph[i].Lp.position
+   
+    ps(1) = bs(1)+0.03*(bs(3) - bs(1))
+    ps(2) = bs(0)+0.99*(bs(2) - bs(0))
+    ps(3) = bs(1)+0.97*(bs(3) - bs(1)) 
+
+    ps(0) = bs(0)+0.2*(bs(2)-bs(0));
+
+    if (List[i].NAME ne 'scatter') then begin
+	Res = where((i EQ Index), NonZeroNumber)
+	if (NonZeroNumber EQ 0) then ps(1) = bs(1)+0.2*(bs(3) - bs(1))
+    endif
+
+   Graph[i].Lp.position = ps
+   Graph[i].Lp.tickLen=-0.03   
+   Graph[i].Lp.charsize = !P.charsize
+   Graph[i].Lp.charthick = !P.charthick
+endfor
+
+; Set Time Base
+   TB = call_external(!DDLIB+'DD_idl.so','GetDTime',StartTime, /D_VALUE)
+   for i=0,n_elements(List)-1 do Graph[i].TimeBase = TB
+   
+return
+end
+;----------------------------------------------------------
+;--------------------------------------------------------
+;------------------------ SET COMMON --------------------
+; This procedure call users procedures to set common blocks
+; for data. One common block for one dataset. Each Graph
+; can hold no more, then 5 different blocks.
+; This particular procedures must not only set common blocks,
+; but read resource file if need.
+
+pro SetCommon
+Common GraphC, Graph, NN, Item
+Common Request, List, StartTime, TimeInt
+Common Record, Record
+
+Record = { $  
+                DefSize:  1L,    $            
+                Time : PTR_NEW(),$
+                Val:  PTR_NEW(), $
+                Nres   : -1L, $
+                LastTime : PTR_NEW(), $
+                LastVal : PTR_NEW(), $
+                Sampling : 0.0 }
+              
+
+; Define Step for averaging ---------------
+for i = 0, n_elements(List) - 1 do begin 
+     Graph[i].Step = Graph[i].TotalTime / Graph[i].ppp
+     if (Graph[i].Step GT Graph[i].DeltaT) then begin            
+           Graph[i].Step = Graph[i].DeltaT 
+           Graph[i].ppp = Graph[i].Sections         
+    endif
+ endfor
+
+for j = 0, Graph[0].DataN-1 do begin
+  Item = j
+  NN = 0
+  if execute(Graph[0].SetCommonF[j]) NE 1 then Graph[0].ErrorFlag = 1   
+endfor
+
+if n_elements(List) GT 1 then begin
+
+  for i = 1, n_elements(List)-1 do begin
+    for j = 0, Graph[i].DataN-1 do begin
+     InitDoneFlag = 0
+     Item = j
+     for k = 0,i-1 do begin
+        for m = 0,Graph[k].DataN -1 do $
+           if STRCOMPRESS(Graph[i].SetCommonF[j], /REMOVE_ALL) EQ STRCOMPRESS(Graph[k].SetCommonF[m], /REMOVE_ALL) then begin
+                 InitDoneFlag = 1
+                 Graph[i].FillValue[j]=Graph[k].FillValue[m]
+                 Graph[i].Time[j]=Graph[k].Time[m]
+                 Graph[i].Val[j]=Graph[k].Val[m]
+                 Graph[i].Lag[j]=Graph[k].Lag[m]
+                 Graph[i].Sampling[j]=Graph[k].Sampling[m]
+                 Graph[i].MaxSampling[j]=Graph[k].MaxSampling[m]
+                 if ((j eq 0) and (m eq 0)) then Graph[i].yaxis[j] = Graph[k].yaxis[m]
+           endif 
+     endfor
+     if InitDoneFlag EQ 0 then  begin
+        Item = j
+        NN = i
+        if execute(Graph[i].SetCommonF[j]) NE 1 then Graph[i].ErrorFlag = 1
+     endif
+   endfor      
+  endfor
+endif
+return
+end
+;----------------------------------------------------------
+;------------------------ IS DATA ? ---------------------
+; The pro find the graph with the same type to set in current graph
+;data flag and data ID 
+pro IsData
+
+common GraphC, Graph, Number, Item
+; Graph - array of graph
+; CommonRefName - name of common block of request
+; Number - number of calling graph
+
+if Number GT 0 then begin
+    for i = 0, Number-1 do begin
+      for j = 0,Graph[i].DataN - 1 do begin
+       if STRCOMPRESS(Graph[i].SetCommonF[j], /REMOVE_ALL) EQ STRCOMPRESS(Graph[Number].SetCommonF[Item], /REMOVE_ALL) then begin 
+          Graph[Number].DataID[Item] = Long(Graph[i].DataID[j])
+          Graph[Number].DataFlags[Item] = Graph[i].DataFlags[j]
+          Graph[Number].DataTime[Item] = Graph[i].DataTime[j]
+       endif
+      endfor
+    endfor
+endif
+
+return
+end
+;---------------------------------------------------------
+;----------------------- Close ALL -----------------------
+; This procedure closes all opened database in case of QUIT
+;
+pro CloseAll
+
+Common GraphC, Graph, GraphN, Item
+Common Request, List, StartTime, StopTime
+
+MaxPanels = 20;
+DataBaseMax = 8
+RMID = intarr(DataBaseMax*MaxPanels)
+RMID[*] = -1
+N = n_elements(List)
+
+for i= 0, N-1 do begin
+  for j= 0, Graph[i].DataN -1 do begin
+
+     LID = graph[i].DataID[j]
+     flag = 1
+     for k=0,DataBaseMax*MaxPanels - 1 do if LID EQ RMID[k] then flag = 0
+     if flag GT 0 then begin
+         bbf=call_external(!DDLIB+'DD_idl.so','CloseID',LID )
+         RMID[i*DataBaseMax + j] = LID
+     endif
+     Graph[i].DataID[j] = -1
+  endfor
+endfor
+return
+end
+;---------------------------------------------------------
+;------------------------ GRAPH INITIALIZE ---------------
+; Call all initialization functions
+
+pro GraphIni
+  
+common Request, List, StartTime, TimeInt
+common GraphC, Graph, i, Item
+
+Erase
+for i=0,n_elements(List)-1 do begin
+   Graph[i].ErrorFlag = 0;
+   if (List[i].Arguments EQ '') then $
+      oper=List[i].name+'_init' $
+   else oper=List[i].name+'_init,' + List[i].Arguments
+   if (execute(oper) NE 1) then Graph[i].ErrorFlag = 1
+   if (Graph[i].ErrorFlag EQ 0) then begin
+      Graph[i].Sections = fix(Graph[i].TotalTime / Graph[i].DeltaT) + 1;
+      Graph[i].Min = 1.0e31
+      Graph[i].Max = -1.0e31
+   endif
+endfor
+return
+end
+;--------------------------------------------------------
+;------------------------ GRAPH PLOT ---------------------
+; Call All plot function
+
+pro GraphPlot
+
+common GraphC, Graph, I, Item
+common Request, List, StartTime, TimeInt
+
+MNTH = ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep',$
+        'Oct','Nov','Dec']
+
+; Defining Stop time for whole plot
+Tmax = call_external(!DDLIB+'DD_idl.so','GetDTime',TimeInt, /D_VALUE) 
+Tmax = Graph[0].TimeBase + Tmax + 60.0D0 
+
+;Cleanup all previous settings:
+for i=0,n_elements(List)-1 do begin
+  for j = 0,Graph[i].DataN -1 do $
+      Graph[i].DataFlags[j] = 0
+  Graph[i].StopFlag = 0
+  Graph[i].CurrentSec = 0
+endfor
+ 
+TotalStopFlag = 0
+
+while (TotalStopFlag EQ 0) do begin
+  TotalStopFlag = 1
+
+; Loop for all objects
+  for i=0,n_elements(List)-1 do begin
+
+     TimeCurr = Graph(i).TimeBase + double(Graph(i).CurrentSec)*Graph(i).DeltaT
+; Is some data to plot?
+; If previous got data have a time greater than start of this secton
+; then it is not necessary to get it again
+     if (Graph[i].StopFlag EQ 0) then begin
+        for j = 0,Graph[i].DataN -1 do begin
+           if (Graph[i].DataTime[j] LT TimeCurr) then $
+             Graph[i].DataFlags[j] = 0
+        endfor
+     endif
+
+; Setting Timestart & TimeInt
+        st = call_external(!DDLIB+'DD_idl.so','GetTime', TimeCurr,/S_VALUE)
+        dt = call_external(!DDLIB+'DD_idl.so','GetTime', $
+                            Graph[i].DeltaT,/S_VALUE)
+        strput, dt, '0000', 0
+        TimeCurrStop = TimeCurr + Graph[i].DeltaT
+
+; Getting all data
+; Data are ordered only if there is no  the same data in other
+; objects and the previous data flag was reset
+ 
+        for j = 0, Graph[i].DataN-1 do begin
+           Item = j
+           if (Graph[i].ErrorFlag EQ 0) then begin 
+              IsData
+              if (Graph[i].DataFlags[j] EQ 0) then begin
+                  oper = Graph[i].GetDataF[j] + ', st, dt';        
+                  if (execute(oper) NE 1) then Graph[i].ErrorFlag = 1       
+                  if (Graph[i].DataFlags[j] EQ 0) AND (TimeCurrStop GT Tmax) $
+                                   then Graph[i].ErrorFlag = 1
+                  if (Graph[i].DataTime[Item] GT Tmax) then Graph[i].StopFlag = 1
+              endif
+           endif          
+      endfor          
+          Graph[i].CurrentSec = Graph[i].CurrentSec + 1
+          if (Graph[i].CurrentSec EQ Graph[i].Sections) then Graph[i].StopFlag = 1
+          if (Graph[i].StopFlag EQ 0) then TotalStopFlag = 0 
+          if (TimeCurrStop GT Tmax) then Graph[i].StopFlag = 1
+   endfor
+  endwhile 
+
+; Plot those data
+    openw, setlun, 'plotSettings', /GET_LUN
+    for i=0,n_elements(List)-1 do begin   
+            !x = Graph[i].Lx
+            if (Graph[i].Ly.range[0] ne Graph[i].Ly.range[1]) then !y = Graph[i].Ly else begin 
+               !y.thick = Graph[i].Ly.thick
+               !y.charsize= Graph[i].Ly.charsize
+            endelse
+            !p = Graph[i].Lp
+            ExeFlag = execute(Graph[i].PlotF);
+	    printf, setlun, !X.window, !Y.window;
+            if (Graph[i].LastPlotF NE '') then ExeFlag = execute(Graph[i].LastPlotF)        
+    endfor
+    close, setlun;
+    free_lun, setlun;
+;----------------- Free Pointers
+   for i = 0, n_elements(List) - 1 do begin
+    if ptr_valid(Graph[i].names) then ptr_free, Graph[i].names
+    if ptr_valid(Graph[i].yaxis) then ptr_free, Graph[i].yaxis
+    for j = 0,Graph[i].DataN - 1 do begin
+        if ptr_valid(Graph[i].Time[j]) then ptr_free, Graph[i].Time[j] 
+        if ptr_valid(Graph[i].Val[j]) then ptr_free, Graph[i].Val[j]    
+    endfor
+  endfor
+  
+ UT = lonarr(7)
+ a=call_external(!DDLIB + 'DD_idl.so','GetGavTime',UT,Graph[0].Timebase)
+ 
+ if (Tmax - Graph[0].TimeBase) LE 3600.0*24.0*2.0 then begin
+   s =  MNTH[UT[1]-1] + string(UT[2],FORMAT='(I3)') + string(UT[0],FORMAT = '(I5)')
+   xyouts, 0.07, 0.023, s,/normal, ORIENTATION=0, COLOR=!DNC - 1
+ endif else begin
+   s =  MNTH(UT(1)-1) + string(UT(0),FORMAT = '(I5)')
+   xyouts, 0.07, 0.023, s, /normal, ORIENTATION=0, COLOR=!DNC - 1
+ endelse
+
+;  PROJECT = getenv('DDPROJECT')
+;  BaseName = PROJECT
+
+;------- Define version number and create label -------------------;
+get_lun, dpath
+openr, dpath, getenv('DDPATH')+'/DD.res'
+url = ''
+readf, dpath, url
+readf, dpath, url
+readf, dpath, url
+close, dpath
+free_lun, dpath
+ 
+vers = 'V2.0'
+s = 'Created by AMDA(C) '+ vers + ' ' + SYSTIME(0);
+
+if (!ORIENTATION eq 'portrait') then x0 = 0.45 else x0 = 0.58;
+if (!AMDA_TITLE) then xyouts, x0, 0.009, s,/normal, ORIENTATION=0, COLOR=!DNC - 1, CHARSIZE = !P.CHARSIZE*0.8
+
+closeall
+return
+end
+;-----------------------------------------------------------
+;---------------------- DD_Request ----------------------
+; Procedure to read request file and to run request 
+
+pro DD_Request, ListFile, DEV, GIFFILE = GifName
+Common GraphC, Graph, GraphN, Item
+Common Request, List, StartTime, TimeInt
+; Common COLORS, r_orig, g_orig, b_orig, r_curr, g_curr, b_curr
+
+;Setup default colortable and orientation
+md = 'portrait'
+ct = 38
+font = 'triplex'
+ppp = 1000 ; points-per-plot
+png_charsize = 1.3;
+png_thick =  1;
+
+;Read file DD_request.res
+get_lun,unt
+openr,unt,'./DD_Request.res', ERROR=errof
+if (errof EQ 0) then begin
+  ss = ''
+  readf,unt,ss
+  parts = strsplit(ss,' ',/EXTRACT)
+  md = parts[0]
+  readf,unt,ct
+  readf,unt,ss
+  parts = strsplit(ss,' ',/EXTRACT)
+  font = parts[0]
+  readf, unt, ppp 
+  close,unt
+endif
+free_lun,unt
+
+openr,unt,'./DD_PlotSettings.res', ERROR=errof
+if (errof EQ 0) then begin
+   readf, unt, png_charsize
+   readf, unt, png_thick     
+  close,unt
+endif
+free_lun,unt 
+
+
+Get_Graph, DEV, ct, md, font, ppp,  png_charsize, png_thick
+
+GetListFile, ListFile, ListString, StartTime, TimeInt
+ 
+Get_List, ListString
+Get_Times, StartTime, TimeInt
+GraphIni
+AxisInstall
+SetCommon
+GraphPlot
+if DEV EQ 'GIF' then begin
+   PICTURE = tvrd();
+   tvlct, redPNG, greenPNG, bluePNG, /GET
+   WRITE_PNG,  GifName, PICTURE, redPNG, greenPNG, bluePNG
+   device,/close
+endif
+ if DEV EQ 'PS' then device,/close_file
+closeall
+return
+end
+
+;-------------------------------------------------------
+;----------------------- DD_Graph ----------------------
+pro DD_Graph, DEV
+;
+ppp = 1000  
+;1. Getting GRAPH structures for 10 graphics
+Get_Graph, DEV, 38, 'portrait', 'default', ppp
+
+;2. Start Widget Control
+
+DD_Widget
+
+end
diff --git a/amda_plus/predefined/getmapskp_caps_espc_electron_counts.pro b/amda_plus/predefined/getmapskp_caps_espc_electron_counts.pro
new file mode 100644
index 0000000..47649d7
--- /dev/null
+++ b/amda_plus/predefined/getmapskp_caps_espc_electron_counts.pro
@@ -0,0 +1,34 @@
+; $Id: getmapskp_caps_espc_electron_counts.pro,v 1.1 2010/04/06 14:59:19 budnik Exp $
+;--------------------------------------
+;   GETNEWPARAM - TEMPLATE
+;---------------------------------------
+
+ pro GETMAPSKP_CAPS_ESPC_ELECTRON_COUNTS, st, dt
+ 
+ 
+common MAPSKP_CAPS_ESPC_ELECTRON_COUNTS_Common, Final 
+common GraphC, graph, GraphN, Item
+
+     
+    Size = Final.DefSize
+    Data = fltarr(15,Size)
+    Time  =  dblarr(size)
+  
+   ID = Long(graph[GraphN].DataID[Item])
+
+   RetSize = call_external(!PROJLIB + 'getParam.so', 'getData', $         
+                          ID, 'caps:espc', 'ELECTRON_COUNTS', st, dt, size, Time, Data) 
+
+    NewData = fltarr(16,RetSize)
+   NewData[0:14,*] = Data[*,0:RetSize-1] 
+   NewData[15,*] = Data[14,0:RetSize-1]     
+   if (RetSize GT 1) then begin         
+         Time -= graph[GraphN].TimeBase
+         graph[GraphN].DataID[Item] = ID
+         graph[GraphN].DataFlags[Item] = 1
+         graph[GraphN].dataTime[Item] = Time[0]
+         average, Final, Time[0:RetSize-1], NewData
+   endif
+    
+return
+end
diff --git a/amda_plus/predefined/getmapskp_caps_ispc_ion_counts.pro b/amda_plus/predefined/getmapskp_caps_ispc_ion_counts.pro
new file mode 100644
index 0000000..efa371e
--- /dev/null
+++ b/amda_plus/predefined/getmapskp_caps_ispc_ion_counts.pro
@@ -0,0 +1,33 @@
+; $Id: getmapskp_caps_ispc_ion_counts.pro,v 1.1 2010/04/06 14:59:19 budnik Exp $
+;--------------------------------------
+;   GETNEWPARAM - TEMPLATE
+;---------------------------------------
+
+ pro GETMAPSKP_CAPS_ISPC_ION_COUNTS, st, dt
+ 
+ 
+common MAPSKP_CAPS_ISPC_ION_COUNTS_Common, Final 
+common GraphC, graph, GraphN, Item
+
+     
+    Size = Final.DefSize
+    Data = fltarr(15,Size)
+    Time  =  dblarr(size)
+  
+   ID = Long(graph[GraphN].DataID[Item])
+
+   RetSize = call_external(!PROJLIB + 'getParam.so', 'getData', $         
+                          ID, 'caps:ispc', 'ION_COUNTS', st, dt, size, Time, Data) 
+   NewData = fltarr(16,RetSize)
+   NewData[0:14,*] = Data[*,0:RetSize-1] 
+   NewData[15,*] = Data[14,0:RetSize-1] 
+   if (RetSize GT 1) then begin         
+         Time -= graph[GraphN].TimeBase
+         graph[GraphN].DataID[Item] = ID
+         graph[GraphN].DataFlags[Item] = 1
+         graph[GraphN].dataTime[Item] = Time[0]
+         average, Final, Time[0:RetSize-1], NewData
+   endif
+    
+return
+end
diff --git a/amda_plus/predefined/getmapskp_rpws_key_electric_spectral_densities.pro b/amda_plus/predefined/getmapskp_rpws_key_electric_spectral_densities.pro
new file mode 100644
index 0000000..749b4f3
--- /dev/null
+++ b/amda_plus/predefined/getmapskp_rpws_key_electric_spectral_densities.pro
@@ -0,0 +1,35 @@
+; $Id: getmapskp_rpws_key_electric_spectral_densities.pro,v 1.1 2008/04/17 10:06:09 elena Exp $
+;--------------------------------------
+;   GETNEWPARAM - TEMPLATE
+;
+; Fri Sep 21 11:57:01 CEST 2007
+;
+;---------------------------------------
+
+ pro GETMAPSKP_RPWS_KEY_ELECTRIC_SPECTRAL_DENSITIES, st, dt
+ 
+ 
+common MAPSKP_RPWS_KEY_ELECTRIC_SPECTRAL_DENSITIES_Common, Final
+common GraphC, graph, GraphN, Item
+
+    
+     
+    Size = Final.DefSize
+    Data=fltarr(73, Size)
+    Time  =  dblarr(Size)
+  
+    ID = Long(graph[GraphN].DataID[Item])
+
+    RetSize = call_external(!PROJLIB + 'getParam.so', 'getData', $         
+                          ID, 'rpws:key', 'ELECTRIC_SPECTRAL_DENSITIES', st, dt, size, Time, Data) 
+       
+   if (RetSize GT 1) then begin         
+         Time -= graph[GraphN].TimeBase
+         graph[GraphN].DataID[Item] = ID
+         graph[GraphN].DataFlags[Item] = 1
+         graph[GraphN].dataTime[Item] = Time[0]
+         average, Final, Time[0:RetSize-1], float(Data[*,0:RetSize-1])
+   endif
+    
+return
+end
diff --git a/amda_plus/predefined/getmapskp_rpws_key_magnetic_spectral_densities.pro b/amda_plus/predefined/getmapskp_rpws_key_magnetic_spectral_densities.pro
new file mode 100644
index 0000000..891a618
--- /dev/null
+++ b/amda_plus/predefined/getmapskp_rpws_key_magnetic_spectral_densities.pro
@@ -0,0 +1,35 @@
+; $Id: getmapskp_rpws_key_magnetic_spectral_densities.pro,v 1.1 2008/04/17 10:06:09 elena Exp $
+;--------------------------------------
+;   GETNEWPARAM - TEMPLATE
+;
+; Fri Sep 21 11:57:01 CEST 2007
+;
+;---------------------------------------
+
+ pro GETMAPSKP_RPWS_KEY_MAGNETIC_SPECTRAL_DENSITIES, st, dt
+ 
+ 
+common MAPSKP_RPWS_KEY_MAGNETIC_SPECTRAL_DENSITIES_Common, Final
+common GraphC, graph, GraphN, Item
+
+    
+     
+    Size = Final.DefSize
+    Data=fltarr(42, Size)
+    Time  =  dblarr(Size)
+  
+    ID = Long(graph[GraphN].DataID[Item])
+
+    RetSize = call_external(!PROJLIB + 'getParam.so', 'getData', $         
+                          ID, 'rpws:key', 'MAGNETIC_SPECTRAL_DENSITIES', st, dt, size, Time, Data) 
+       
+   if (RetSize GT 1) then begin         
+         Time -= graph[GraphN].TimeBase
+         graph[GraphN].DataID[Item] = ID
+         graph[GraphN].DataFlags[Item] = 1
+         graph[GraphN].dataTime[Item] = Time[0]
+         average, Final, Time[0:RetSize-1], float(Data[*,0:RetSize-1])
+   endif
+    
+return
+end
diff --git a/amda_plus/predefined/mapskp_caps_espc_electron_counts_com.pro b/amda_plus/predefined/mapskp_caps_espc_electron_counts_com.pro
new file mode 100644
index 0000000..9bab9e6
--- /dev/null
+++ b/amda_plus/predefined/mapskp_caps_espc_electron_counts_com.pro
@@ -0,0 +1,54 @@
+; $Id: mapskp_caps_espc_electron_counts_com.pro,v 1.1 2010/04/06 14:59:19 budnik Exp $
+;--------------------------------------
+;   MAPSKP:CAPS_ISPC:ELECTRON_COUNTS_COMMON - TEMPLATE
+;---------------------------------------
+
+ pro MAPSKP_CAPS_ESPC_ELECTRON_COUNTS_com
+ 
+common MAPSKP_CAPS_ESPC_ELECTRON_COUNTS_Common, Final
+common GraphC, Graph, GraphN, Item
+common record, Record
+
+ FillValue = -1.e31; !Values.F_NAN
+ Sampling = 60.0
+  
+ 
+;------------- Get Info --------------------------------    
+;          Get FrequencyInfo 
+ 
+      ID = Long(graph[GraphN].DataID[Item])  
+      VI = 'caps:espc'
+      sz = 16L
+      Energy = fltarr(sz)
+      err = call_external(!PROJLIB + 'libParam.so', 'getInfo', $
+                          ID, VI, 'ENERGY', sz, Energy)
+     if (err LT 0) then stop
+    
+     Graph[GraphN].yaxis = PTR_NEW(/ALLOCATE_HEAP)
+     *(Graph[GraphN].yaxis) = Energy
+     
+     graph[GraphN].DataID[Item] = ID
+
+;---------------------- General Structure ---------------
+  Final = record
+  Final.DefSize = long(Graph[GraphN].DeltaT/Sampling + 1)
+  Final.Sampling = Sampling 
+   
+  Graph[GraphN].FillValue[Item] = FillValue
+
+  Final.Time = PTR_NEW(/ALLOCATE_HEAP)
+  Final.Val = PTR_NEW(/ALLOCATE_HEAP)
+  Final.LastTime = PTR_NEW(/ALLOCATE_HEAP)
+  Final.LastVal = PTR_NEW(/ALLOCATE_HEAP)
+ 
+  Graph[GraphN].Time[Item] =  Final.Time
+  Graph[GraphN].Val[Item] = Final.Val
+  Graph[GraphN].MaxSampling[Item] = Sampling
+  Graph[GraphN].Sampling[Item] = Sampling
+
+  if (Graph[GraphN].Step GT Sampling*2.0) then begin
+    *(Final.Time) = indgen(Graph[GraphN].ppp)*Graph[GraphN].Step + Graph[GraphN].Step/2.0
+    *(Final.Val)  = replicate(FillValue, sz*Graph[GraphN].ppp)
+  endif   
+ return
+ end
diff --git a/amda_plus/predefined/mapskp_caps_ispc_ion_counts_com.pro b/amda_plus/predefined/mapskp_caps_ispc_ion_counts_com.pro
new file mode 100644
index 0000000..3fb3648
--- /dev/null
+++ b/amda_plus/predefined/mapskp_caps_ispc_ion_counts_com.pro
@@ -0,0 +1,54 @@
+; $Id: mapskp_caps_ispc_ion_counts_com.pro,v 1.1 2010/04/06 14:59:19 budnik Exp $
+;--------------------------------------
+;   MAPSKP:CAPS_ISPC:ION_COUNTS_COMMON - TEMPLATE
+;---------------------------------------
+
+ pro MAPSKP_CAPS_ISPC_ION_COUNTS_com
+ 
+common MAPSKP_CAPS_ISPC_ION_COUNTS_Common, Final
+common GraphC, Graph, GraphN, Item
+common record, Record
+
+ FillValue = -1.e31; !Values.F_NAN
+ Sampling = 60.0
+  
+ 
+;------------- Get Info --------------------------------    
+;          Get FrequencyInfo 
+ 
+      ID = Long(graph[GraphN].DataID[Item])  
+      VI = 'caps:ispc'
+      sz = 16L
+      Energy = fltarr(sz)
+      err = call_external(!PROJLIB + 'libParam.so', 'getInfo', $
+                          ID, VI, 'ENERGY', sz, Energy)
+     if (err LT 0) then stop
+    
+     Graph[GraphN].yaxis = PTR_NEW(/ALLOCATE_HEAP)
+     *(Graph[GraphN].yaxis) = Energy
+     
+     graph[GraphN].DataID[Item] = ID
+
+;---------------------- General Structure ---------------
+  Final = record
+  Final.DefSize = long(Graph[GraphN].DeltaT/Sampling + 1)
+  Final.Sampling = Sampling 
+   
+  Graph[GraphN].FillValue[Item] = FillValue
+
+  Final.Time = PTR_NEW(/ALLOCATE_HEAP)
+  Final.Val = PTR_NEW(/ALLOCATE_HEAP)
+  Final.LastTime = PTR_NEW(/ALLOCATE_HEAP)
+  Final.LastVal = PTR_NEW(/ALLOCATE_HEAP)
+ 
+  Graph[GraphN].Time[Item] =  Final.Time
+  Graph[GraphN].Val[Item] = Final.Val
+  Graph[GraphN].MaxSampling[Item] = Sampling
+  Graph[GraphN].Sampling[Item] = Sampling
+
+  if (Graph[GraphN].Step GT Sampling*2.0) then begin
+    *(Final.Time) = indgen(Graph[GraphN].ppp)*Graph[GraphN].Step + Graph[GraphN].Step/2.0
+    *(Final.Val)  = replicate(FillValue, sz*Graph[GraphN].ppp)
+  endif   
+ return
+ end
diff --git a/amda_plus/predefined/mapskp_rpws_key_electric_spectral_densities_com.pro b/amda_plus/predefined/mapskp_rpws_key_electric_spectral_densities_com.pro
new file mode 100644
index 0000000..c062e72
--- /dev/null
+++ b/amda_plus/predefined/mapskp_rpws_key_electric_spectral_densities_com.pro
@@ -0,0 +1,57 @@
+; $Id: mapskp_rpws_key_electric_spectral_densities_com.pro,v 1.2 2009/04/14 13:07:53 budnik Exp $
+;--------------------------------------
+;   MAPSKP:RPWS_KEY:ELECTRIC_SPECTRAL_DENSITIES_COMMON - TEMPLATE
+;
+; Fri Sep 21 11:57:01 CEST 2007
+;
+;---------------------------------------
+
+ pro MAPSKP_RPWS_KEY_ELECTRIC_SPECTRAL_DENSITIES_com
+ 
+common MAPSKP_RPWS_KEY_ELECTRIC_SPECTRAL_DENSITIES_Common, Final
+common GraphC, Graph, GraphN, Item
+common record, Record
+
+ FillValue = -1.e31; !Values.F_NAN
+ Sampling = 60.0
+  
+ 
+;------------- Get Info --------------------------------    
+;          Get FrequencyInfo 
+ 
+      ID = Long(graph[GraphN].DataID[Item])  
+      VI = 'rpws:key'
+      sz = 73L
+      Energy = fltarr(sz)
+      err = call_external(!PROJLIB + 'libParam.so', 'getInfo', $
+                          ID, VI, 'ELECTRIC_SPECTRAL_DENSITIES', sz, Energy)
+     if (err LT 0) then stop
+    
+     Graph[GraphN].yaxis = PTR_NEW(/ALLOCATE_HEAP)
+     *(Graph[GraphN].yaxis) = Energy
+     
+     graph[GraphN].DataID[Item] = ID
+
+;---------------------- General Structure ---------------
+  Final = record
+  Final.DefSize = long(Graph[GraphN].DeltaT/Sampling + 1)
+  Final.Sampling = Sampling 
+   
+  Graph[GraphN].FillValue[Item] = FillValue
+
+  Final.Time = PTR_NEW(/ALLOCATE_HEAP)
+  Final.Val = PTR_NEW(/ALLOCATE_HEAP)
+  Final.LastTime = PTR_NEW(/ALLOCATE_HEAP)
+  Final.LastVal = PTR_NEW(/ALLOCATE_HEAP)
+ 
+  Graph[GraphN].Time[Item] =  Final.Time
+  Graph[GraphN].Val[Item] = Final.Val
+  Graph[GraphN].MaxSampling[Item] = Sampling
+  Graph[GraphN].Sampling[Item] = Sampling
+
+  if (Graph[GraphN].Step GT Sampling*2.0) then begin
+    *(Final.Time) = indgen(Graph[GraphN].ppp)*Graph[GraphN].Step + Graph[GraphN].Step/2.0
+    *(Final.Val)  =  replicate(FillValue, sz*Graph[GraphN].ppp)
+  endif   
+ return
+ end
diff --git a/amda_plus/predefined/mapskp_rpws_key_electric_spectral_densities_init.pro b/amda_plus/predefined/mapskp_rpws_key_electric_spectral_densities_init.pro
new file mode 100644
index 0000000..22a4023
--- /dev/null
+++ b/amda_plus/predefined/mapskp_rpws_key_electric_spectral_densities_init.pro
@@ -0,0 +1,40 @@
+; $Id: mapskp_rpws_key_electric_spectral_densities_init.pro,v 1.1 2008/04/17 10:06:09 elena Exp $
+;--------------------------------------
+;   MAPSKP:RPWS_KEY:ELECTRIC_SPECTRAL_DENSITIES_INIT 
+;
+; Tue Jun 11 16:32:21 CEST 2007
+;
+;---------------------------------------
+
+pro MAPSKP_RPWS_KEY_ELECTRIC_SPECTRAL_DENSITIES_INIT, LOG = log, LIN = lin, COLOR = color, PSYM = psym, CHANNEL = channel, DELAY=delay, AY1TITLE = AY1TITLE
+
+
+common GraphC, graph, GraphN, Item
+
+pen = !dnc-1 &  symbol = -3;
+
+ if (KEYWORD_SET(COLOR)) then pen = color; 
+ if (KEYWORD_SET(PSYM)) then symbol = psym;  
+
+if (KEYWORD_SET(LOG)) then AxisF = 'logaxis' $
+else AxisF = 'lineaxis, ' + string(Graph[GraphN].TotalTime);
+graph[GraphN].AxisF = AxisF
+ 
+graph[GraphN].Type = 'FGM_T' 
+graph[GraphN].DataN = 1
+graph[GraphN].SetCommonF[0] = 'MAPSKP_RPWS_KEY_ELECTRIC_SPECTRAL_DENSITIES_com' 
+graph[GraphN].GetDataF[0] ='getMAPSKP_RPWS_KEY_ELECTRIC_SPECTRAL_DENSITIES'
+graph[GraphN].DeltaT = (Graph[GraphN].TotalTime + 60.0D0) <  18000.0D0 
+graph[GraphN].Ly.title = "Cassini - RPWS!CE Spectral Density !CFrequency, Hz"
+graph[GraphN].names = PTR_NEW(/ALLOCATE_HEAP)
+*(graph[GraphN].names) = 'V!U2!N/m!U2!N/Hz'
+if (KEYWORD_SET(CHANNEL)) then begin
+                location = channel-1
+                graph[GraphN].PlotF = 'PlotScal_New, '+ string(location) +',' + string(pen) +','+ string(symbol)
+                graph[GraphN].Ly.title += '  ch ' + strtrim(string(location+1),1);  
+           ;     graph[GraphN].Ly.title +=  '!C' + legend;
+             endif else begin
+       graph[GraphN].PlotF = 'PlotSpec' 
+endelse
+return
+end
diff --git a/amda_plus/predefined/mapskp_rpws_key_magnetic_spectral_densities_com.pro b/amda_plus/predefined/mapskp_rpws_key_magnetic_spectral_densities_com.pro
new file mode 100644
index 0000000..4a16047
--- /dev/null
+++ b/amda_plus/predefined/mapskp_rpws_key_magnetic_spectral_densities_com.pro
@@ -0,0 +1,55 @@
+; $Id: mapskp_rpws_key_magnetic_spectral_densities_com.pro,v 1.1 2008/04/17 10:06:09 elena Exp $
+;--------------------------------------
+;   MAPSKP:RPWS_KEY:MAGNETIC_SPECTRAL_DENSITIES_COMMON - TEMPLATE
+;
+; Fri Sep 21 11:57:01 CEST 2007
+;
+;---------------------------------------
+
+ pro MAPSKP_RPWS_KEY_MAGNETIC_SPECTRAL_DENSITIES_com
+ 
+common MAPSKP_RPWS_KEY_MAGNETIC_SPECTRAL_DENSITIES_Common, Final
+common GraphC, Graph, GraphN, Item
+common record, Record
+
+ FillValue = -1.e31; !Values.F_NAN
+ Sampling = 60.0
+  
+ 
+;------------- Get Info --------------------------------    
+;          Get FrequencyInfo 
+ 
+      ID = Long(graph[GraphN].DataID[Item])  
+      VI = 'rpws:key'
+      sz = 42L
+      Energy = fltarr(sz)
+      err = call_external(!PROJLIB + 'libParam.so', 'getInfo', $
+                          ID, VI, 'MAGNETIC_SPECTRAL_DENSITIES', sz, Energy)
+     if (err LT 0) then stop
+    
+     Graph[GraphN].yaxis = PTR_NEW(/ALLOCATE_HEAP)
+     *(Graph[GraphN].yaxis) = Energy
+
+;---------------------- General Structure ---------------
+  Final = record
+  Final.DefSize = long(Graph[GraphN].DeltaT/Sampling + 1)
+  Final.Sampling = Sampling 
+   
+  Graph[GraphN].FillValue[Item] = FillValue
+
+  Final.Time = PTR_NEW(/ALLOCATE_HEAP)
+  Final.Val = PTR_NEW(/ALLOCATE_HEAP)
+  Final.LastTime = PTR_NEW(/ALLOCATE_HEAP)
+  Final.LastVal = PTR_NEW(/ALLOCATE_HEAP)
+ 
+  Graph[GraphN].Time[Item] =  Final.Time
+  Graph[GraphN].Val[Item] = Final.Val
+  Graph[GraphN].MaxSampling[Item] = Sampling
+  Graph[GraphN].Sampling[Item] = Sampling
+
+  if (Graph[GraphN].Step GT Sampling*2.0) then begin
+    *(Final.Time) = indgen(Graph[GraphN].ppp)*Graph[GraphN].Step + Graph[GraphN].Step/2.0
+    *(Final.Val)  =  replicate(FillValue, sz*Graph[GraphN].ppp)
+  endif   
+ return
+ end
diff --git a/amda_plus/predefined/mapskp_rpws_key_magnetic_spectral_densities_init.pro b/amda_plus/predefined/mapskp_rpws_key_magnetic_spectral_densities_init.pro
new file mode 100644
index 0000000..ee04ea0
--- /dev/null
+++ b/amda_plus/predefined/mapskp_rpws_key_magnetic_spectral_densities_init.pro
@@ -0,0 +1,40 @@
+; $Id: mapskp_rpws_key_electric_spectral_densities_init.pro,v 1.1 2008/04/17 10:06:09 elena Exp $
+;--------------------------------------
+;   MAPSKP:RPWS_KEY:MAGNETIC_SPECTRAL_DENSITIES_INIT 
+;
+; Tue Jun 11 16:32:21 CEST 2007
+;
+;---------------------------------------
+
+pro MAPSKP_RPWS_KEY_MAGNETIC_SPECTRAL_DENSITIES_INIT, LOG = log, LIN = lin, COLOR = color, PSYM = psym, CHANNEL = channel, DELAY=delay, AY1TITLE = AY1TITLE
+
+
+common GraphC, graph, GraphN, Item
+
+pen = !dnc-1 &  symbol = -3;
+
+ if (KEYWORD_SET(COLOR)) then pen = color; 
+ if (KEYWORD_SET(PSYM)) then symbol = psym;  
+
+if (KEYWORD_SET(LOG)) then AxisF = 'logaxis' $
+else AxisF = 'lineaxis, ' + string(Graph[GraphN].TotalTime);
+graph[GraphN].AxisF = AxisF
+ 
+graph[GraphN].Type = 'FGM_T' 
+graph[GraphN].DataN = 1
+graph[GraphN].SetCommonF[0] = 'MAPSKP_RPWS_KEY_MAGNETIC_SPECTRAL_DENSITIES_com' 
+graph[GraphN].GetDataF[0] ='getMAPSKP_RPWS_KEY_MAGNETIC_SPECTRAL_DENSITIES'
+graph[GraphN].DeltaT = (Graph[GraphN].TotalTime + 60.0D0) <  18000.0D0 
+graph[GraphN].Ly.title = "Cassini - RPWS!CE Spectral Density !CFrequency, Hz"
+graph[GraphN].names = PTR_NEW(/ALLOCATE_HEAP)
+*(graph[GraphN].names) = 'nT!U2!N/Hz'
+if (KEYWORD_SET(CHANNEL)) then begin
+                location = channel-1
+                graph[GraphN].PlotF = 'PlotScal_New, '+ string(location) +',' + string(pen) +','+ string(symbol)
+                graph[GraphN].Ly.title += '  ch ' + strtrim(string(location+1),1);  
+           ;     graph[GraphN].Ly.title +=  '!C' + legend;
+             endif else begin
+       graph[GraphN].PlotF = 'PlotSpec' 
+endelse
+return
+end
diff --git a/amda_plus/pro/ba2000_.pro b/amda_plus/pro/ba2000_.pro
new file mode 100644
index 0000000..54d5947
--- /dev/null
+++ b/amda_plus/pro/ba2000_.pro
@@ -0,0 +1,46 @@
+function BA2000_EMIN_EMAX_, StartTime, TimeInt, TimeRet, RetSize, Sampling, close=close
+common GraphC, Graph, GraphN
+
+   FillValue = -1.e31;
+  
+   if n_elements(ID) EQ 0 then ID = -1L;   
+   
+   Spacecraft = 'EMIN';                                    
+   Monitor = 'EMAX';
+ 
+   case Spacecraft of 
+     'cluster1' :  OrbitF = 'c1_xyz_';
+     'cluster2' :  OrbitF = 'c2_xyz_';
+     'cluster3' :  OrbitF = 'c3_xyz_';
+     'cluster4' :  OrbitF = 'c4_xyz_';  
+     'themisa' :  OrbitF = 'tha_xyz_';
+     'themisb' :  OrbitF = 'thb_xyz_';
+     'themisc' :  OrbitF = 'thc_xyz_';
+     'themisd' :  OrbitF = 'thd_xyz_';
+     'themise' :  OrbitF = 'the_xyz_';
+     'geotail' :  OrbitF = 'gtl_xyz_';
+      else      : OrbitF = 'c1_xyz_';
+   endcase
+  
+   Orbit = Call_Function(OrbitF, StartTime, TimeInt, Time, RetSizeOrb, SamplingOrb, /CLOSE);
+
+    if (RetSizeOrb LE 0) then begin
+              TimeRet = 0.D0 
+               error = call_external(!DDLIB + 'DD_idl.so', 'CloseID', ID);
+              return, replicate(0.0, 3);
+    endif
+   
+   gse2gsm, Time, Orbit;
+
+   if (Monitor eq 'amda') then begin          
+          a2000, Time, Orbit
+   endif else begin 
+          a2000omni, Time, Orbit
+   endelse
+
+   TimeRet = Time;
+   Sampling = SamplingOrb;
+   RetSize = RetSizeOrb;
+
+return, Orbit
+end
\ No newline at end of file
diff --git a/amda_plus/pro/bcain_mso_.pro b/amda_plus/pro/bcain_mso_.pro
new file mode 100644
index 0000000..4041f3f
--- /dev/null
+++ b/amda_plus/pro/bcain_mso_.pro
@@ -0,0 +1,46 @@
+function BCAIN_MSO_EMIN_EMAX_, StartTime, TimeInt, TimeRet, RetSize, Sampling, close=close
+common GraphC, Graph, GraphN
+
+   FillValue = -1.e31;
+  
+   
+   Spacecraft = 'EMIN';                                    
+   SamplingA = float('EMAX');
+
+   case Spacecraft of 
+     'mex' :  OrbitF = 'mex_xyz_';
+     'mgs' :  OrbitF = 'xyz_mgs_mso_';
+     'maven' :  OrbitF = 'mav_xyz_mso_';
+      else      : OrbitF = 'mex_xyz_';
+   endcase
+  
+   Orbit = Call_Function(OrbitF, StartTime, TimeInt, Time, RetSizeOrb, SamplingOrb, /CLOSE);
+
+    if (RetSizeOrb LE 0) then begin
+              TimeRet = 0.D0                
+              return, replicate(0.0, 3);
+    endif
+ 
+   if (samplingA ne SamplingOrb) then begin
+ 
+        coeff = samplingorb / samplinga
+        timesize = long(RetSizeOrb*coeff);
+
+        finaltime = dindgen(timesize)*samplinga + time[0];
+        flag = intarr(timesize);
+        y = reform(replicate(fillvalue, 3l*timesize),3l, timesize);
+        interpolation_, time, orbit, SamplingOrb* 3.0, finaltime, y, flag;
+        cain, finaltime, y
+        timeret = finaltime
+        sampling = samplinga
+        retsize = n_elements(finaltime);
+        orbit = y
+   endif else begin
+        cain, Time, Orbit
+        TimeRet = Time;
+        Sampling = SamplingOrb;
+        RetSize = RetSizeOrb;
+   endelse
+
+return, Orbit
+end
\ No newline at end of file
diff --git a/amda_plus/pro/bcain_tot_.pro b/amda_plus/pro/bcain_tot_.pro
new file mode 100644
index 0000000..319d584
--- /dev/null
+++ b/amda_plus/pro/bcain_tot_.pro
@@ -0,0 +1,47 @@
+function BCAIN_TOT_EMIN_EMAX_, StartTime, TimeInt, TimeRet, RetSize, Sampling, close=close
+common GraphC, Graph, GraphN
+
+   FillValue = -1.e31;
+  
+   if n_elements(ID) EQ 0 then ID = -1L;   
+   
+   Spacecraft = 'EMIN';                                    
+   SamplingA = float('EMAX'); 
+   case Spacecraft of 
+     'mex'   :  OrbitF = 'mex_xyz_';
+     'mgs'   :  OrbitF = 'xyz_mgs_mso_';
+     'maven' :  OrbitF = 'mav_xyz_mso_';
+      else   : OrbitF = 'mex_xyz_';
+   endcase
+  
+   Orbit = Call_Function(OrbitF, StartTime, TimeInt, Time, RetSizeOrb, SamplingOrb, /CLOSE);
+
+    if (RetSizeOrb LE 0) then begin
+              TimeRet = 0.D0               
+              return, 0.0;
+    endif
+
+      if (samplingA ne SamplingOrb) then begin
+        coeff = samplingorb / samplinga
+        timesize = long(RetSizeOrb*coeff);
+ 
+        finaltime = dindgen(timesize)*samplinga + time[0];
+        flag = intarr(timesize);
+        y = reform(replicate(fillvalue, 3l*timesize),3l, timesize);
+        interpolation_, time, orbit, SamplingOrb* 3.0, finaltime, y, flag;  
+        cain, finaltime, y
+        timeret = finaltime
+        sampling = samplinga
+        retsize = n_elements(finaltime);
+        Orb = sqrt(total(Y^2,1));
+   endif else begin
+        cain, Time, Orbit
+        TimeRet = Time;
+        Sampling = SamplingOrb;
+        RetSize = RetSizeOrb;
+        Orb = sqrt(total(Orbit^2,1));
+   endelse
+   
+ 
+return, Orb
+end
\ No newline at end of file
diff --git a/amda_plus/pro/bmorsch_mso_.pro b/amda_plus/pro/bmorsch_mso_.pro
new file mode 100644
index 0000000..147fe50
--- /dev/null
+++ b/amda_plus/pro/bmorsch_mso_.pro
@@ -0,0 +1,46 @@
+function BMORSCH_MSO_EMIN_EMAX_, StartTime, TimeInt, TimeRet, RetSize, Sampling, close=close
+common GraphC, Graph, GraphN
+
+   FillValue = -1.e31;
+  
+   
+   Spacecraft = 'EMIN';                                    
+   SamplingA = float('EMAX');
+
+   case Spacecraft of 
+     'mex' :  OrbitF = 'mex_xyz_';
+     'mgs' :  OrbitF = 'xyz_mgs_mso_';
+     'maven' :  OrbitF = 'mav_xyz_mso_';
+      else      : OrbitF = 'mex_xyz_';
+   endcase
+  
+   Orbit = Call_Function(OrbitF, StartTime, TimeInt, Time, RetSizeOrb, SamplingOrb, /CLOSE);
+
+    if (RetSizeOrb LE 0) then begin
+              TimeRet = 0.D0                
+              return, replicate(0.0, 3);
+    endif
+ 
+   if (samplingA ne SamplingOrb) then begin
+ 
+        coeff = samplingorb / samplinga
+        timesize = long(RetSizeOrb*coeff);
+
+        finaltime = dindgen(timesize)*samplinga + time[0];
+        flag = intarr(timesize);
+        y = reform(replicate(fillvalue, 3l*timesize),3l, timesize);
+        interpolation_, time, orbit, SamplingOrb* 3.0, finaltime, y, flag;
+        morsch, finaltime, y
+        timeret = finaltime
+        sampling = samplinga
+        retsize = n_elements(finaltime);
+        orbit = y
+   endif else begin
+        morsch, Time, Orbit
+        TimeRet = Time;
+        Sampling = SamplingOrb;
+        RetSize = RetSizeOrb;
+   endelse
+
+return, Orbit
+end
\ No newline at end of file
diff --git a/amda_plus/pro/bmorsch_tot_.pro b/amda_plus/pro/bmorsch_tot_.pro
new file mode 100644
index 0000000..eabd136
--- /dev/null
+++ b/amda_plus/pro/bmorsch_tot_.pro
@@ -0,0 +1,47 @@
+function BMORSCH_TOT_EMIN_EMAX_, StartTime, TimeInt, TimeRet, RetSize, Sampling, close=close
+common GraphC, Graph, GraphN
+
+   FillValue = -1.e31;
+  
+   if n_elements(ID) EQ 0 then ID = -1L;   
+   
+   Spacecraft = 'EMIN';                                    
+   SamplingA = float('EMAX'); 
+   case Spacecraft of 
+     'mex'   :  OrbitF = 'mex_xyz_';
+     'mgs'   :  OrbitF = 'xyz_mgs_mso_';
+     'maven' :  OrbitF = 'mav_xyz_mso_';
+      else   : OrbitF = 'mex_xyz_';
+   endcase
+  
+   Orbit = Call_Function(OrbitF, StartTime, TimeInt, Time, RetSizeOrb, SamplingOrb, /CLOSE);
+
+    if (RetSizeOrb LE 0) then begin
+              TimeRet = 0.D0               
+              return, 0.0;
+    endif
+
+      if (samplingA ne SamplingOrb) then begin
+        coeff = samplingorb / samplinga
+        timesize = long(RetSizeOrb*coeff);
+ 
+        finaltime = dindgen(timesize)*samplinga + time[0];
+        flag = intarr(timesize);
+        y = reform(replicate(fillvalue, 3l*timesize),3l, timesize);
+        interpolation_, time, orbit, SamplingOrb* 3.0, finaltime, y, flag;  
+        morsch, finaltime, y
+        timeret = finaltime
+        sampling = samplinga
+        retsize = n_elements(finaltime);
+        Orb = sqrt(total(Y^2,1));
+   endif else begin
+        morsch, Time, Orbit
+        TimeRet = Time;
+        Sampling = SamplingOrb;
+        RetSize = RetSizeOrb;
+        Orb = sqrt(total(Orbit^2,1));
+   endelse
+   
+ 
+return, Orb
+end
\ No newline at end of file
diff --git a/amda_plus/pro/bt96_.pro b/amda_plus/pro/bt96_.pro
new file mode 100644
index 0000000..c52a931
--- /dev/null
+++ b/amda_plus/pro/bt96_.pro
@@ -0,0 +1,44 @@
+function BT96_EMIN_EMAX_, StartTime, TimeInt, TimeRet, RetSize, Sampling, close=close
+common GraphC, Graph, GraphN
+
+   FillValue = -1.e31;
+  
+   if n_elements(ID) EQ 0 then ID = -1L;   
+   
+   Spacecraft = 'EMIN';                                    
+   Monitor = 'EMAX';
+ 
+   case Spacecraft of 
+     'cluster1' :  OrbitF = 'c1_xyz_';
+     'cluster2' :  OrbitF = 'c2_xyz_';
+     'cluster3' :  OrbitF = 'c3_xyz_';
+     'cluster4' :  OrbitF = 'c4_xyz_';  
+     'themisa' :  OrbitF = 'tha_xyz_';
+     'themisb' :  OrbitF = 'thb_xyz_';
+     'themisc' :  OrbitF = 'thc_xyz_';
+     'themisd' :  OrbitF = 'thd_xyz_';
+     'themise' :  OrbitF = 'the_xyz_';
+     'geotail' :  OrbitF = 'gtl_xyz_';
+      else      : OrbitF = 'c1_xyz_';
+   endcase
+  
+   Orbit = Call_Function(OrbitF, StartTime, TimeInt, Time, RetSizeOrb, SamplingOrb, /CLOSE);
+
+    if (RetSizeOrb LE 0) then begin
+              TimeRet = 0.D0 
+               error = call_external(!DDLIB + 'DD_idl.so', 'CloseID', ID);
+              return, replicate(0.0, 3);
+    endif
+    
+   if (Monitor eq 'amda') then begin
+          t96, Time, Orbit
+   endif else begin
+           t96omni, Time, Orbit
+   endelse
+
+   TimeRet = Time;
+   Sampling = SamplingOrb;
+   RetSize = RetSizeOrb;
+
+return, Orbit
+end
\ No newline at end of file
diff --git a/amda_plus/pro/c1_hia_pad_.pro b/amda_plus/pro/c1_hia_pad_.pro
new file mode 100644
index 0000000..c4c01c4
--- /dev/null
+++ b/amda_plus/pro/c1_hia_pad_.pro
@@ -0,0 +1,42 @@
+function C1_HIA_PAD_EMIN_EMAX_, StartTime, TimeInt, TimeRet, RetSize, Sampling, close=close
+common GraphC, Graph, GraphN
+common Pad_Hia_C1, ID, Section, Data, Time  
+
+   FillValue = -1.e31
+  
+   if n_elements(ID) EQ 0 then begin
+                   ID = -1L
+                   Section = -1;
+   endif
+ 
+   sampling = 4.0;
+   maxSampling = 16.0;
+   Size = long(graph[GraphN].DeltaT/sampling)
+    
+   if ( Section LT  Graph[GraphN].CurrentSec ) then begin 
+     
+     Data=fltarr(16L*31L, Size)
+     Time=dblarr(Size) 
+   
+          VI = 'clust1:hia:pad'          
+          RetSize = call_external(!PROJLIB + 'libParam.so', 'getLocalData', $
+                                  ID, VI, 'HIA', StartTime, TimeInt, Size, Time, Data)
+          
+          if (RetSize LE 0) then begin
+              TimeRet = 0.D0
+              return, replicate(0.0, 31);
+          endif
+
+        Section =  Graph[GraphN].CurrentSec
+        Time = Time[0:Retsize-1]
+        Data = reform(Data[*, 0:Retsize-1], 31L, 16L, Retsize)
+  endif        
+         
+    TimeRet =  Time;
+
+   if KEYWORD_SET(CLOSE) then begin
+      error = call_external(!DDLIB+'DD_idl.so','CloseID',ID)
+      ID = -1L
+   endif
+return, reform(Data[(31-EMAX), (EMIN-1), *])
+end
\ No newline at end of file
diff --git a/amda_plus/pro/c3_hia_pad_.pro b/amda_plus/pro/c3_hia_pad_.pro
new file mode 100644
index 0000000..587aa94
--- /dev/null
+++ b/amda_plus/pro/c3_hia_pad_.pro
@@ -0,0 +1,42 @@
+function C3_HIA_PAD_EMIN_EMAX_, StartTime, TimeInt, TimeRet, RetSize, Sampling, close=close
+common GraphC, Graph, GraphN
+common Pad_Hia_C1, ID, Section, Data, Time  
+
+   FillValue = -1.e31
+  
+   if n_elements(ID) EQ 0 then begin
+                   ID = -1L
+                   Section = -1;
+   endif
+ 
+   sampling = 4.0;
+   maxSampling = 16.0;
+   Size = long(graph[GraphN].DeltaT/sampling)
+    
+   if ( Section LT  Graph[GraphN].CurrentSec ) then begin 
+     
+     Data=fltarr(16L*31L, Size)
+     Time=dblarr(Size) 
+   
+          VI = 'clust3:hia:pad'          
+          RetSize = call_external(!PROJLIB + 'libParam.so', 'getLocalData', $
+                                  ID, VI, 'HIA', StartTime, TimeInt, Size, Time, Data)
+          
+          if (RetSize LE 0) then begin
+              TimeRet = 0.D0
+              return, replicate(0.0, 31);
+          endif
+
+        Section =  Graph[GraphN].CurrentSec
+        Time = Time[0:Retsize-1]
+        Data = reform(Data[*, 0:Retsize-1], 31L, 16L, Retsize)
+  endif        
+         
+    TimeRet =  Time;
+
+   if KEYWORD_SET(CLOSE) then begin
+      error = call_external(!DDLIB+'DD_idl.so','CloseID',ID)
+      ID = -1L
+   endif
+return, reform(Data[(31-EMAX), (EMIN-1), *])
+end
\ No newline at end of file
diff --git a/amda_plus/pro/e_mgs_omni_.pro b/amda_plus/pro/e_mgs_omni_.pro
new file mode 100644
index 0000000..ea5afe5
--- /dev/null
+++ b/amda_plus/pro/e_mgs_omni_.pro
@@ -0,0 +1,59 @@
+;===========================================================
+; $Id: mgs_e_flux_.pro,v 1.1 2010/11/02 11:33:33 budnik Exp $
+;       
+;   Get MGS ER Flux OMNI
+;============================================================ 
+
+function e_mgs_omni_EMIN_EMAX_, StartTime, TimeInt, Time, RetSize, Sampling, close=close
+common GraphC, graph, GraphN
+common MGS_ER_OMNI, ID, Energy, EnNum 
+
+   FillValue =  -1.e31
+   VI = 'mgs:er:omni';
+
+   if n_elements(ID) EQ 0 then  begin
+     ID = -1L     
+     EnNum = 20
+     Energy = fltarr(EnNum)
+     err = call_external(!PROJLIB + 'libParam.so', 'getInfo', ID, VI, 'energy', EnNum, Energy)
+   endif
+   
+   sampling = 2.0;
+  
+   Size = long(graph[GraphN].DeltaT/sampling)
+
+   Time=dblarr(Size)
+   Spectra = fltarr(19L, Size)
+ 
+    
+   RetSize = call_external(!PROJLIB + 'libParam.so','getLocalData',$
+                                ID, VI, 'e_flux', StartTime, TimeInt,$
+                                Size, Time, Spectra)  
+  
+   if KEYWORD_SET(CLOSE) then begin
+      error = call_external(!DDLIB+'DD_idl.so','CloseID',ID)
+      ID = -1L
+   endif                              
+   
+   if (RetSize LE 0) then begin
+      Time = 0.D0
+      return, 0.0
+   endif
+
+    Spectra = temporary(Spectra[*,0:RetSize-1]);
+
+    num0 = where(Energy ge EMIN, Index0);
+    num1 = where(Energy ge EMAX, Index1);
+ 
+    if (Index1 eq EnNum) then begin
+	 Time = 0.D0
+         return, 0.0 
+    endif
+      
+   SpectraOut  = num0[Index0-1] ne num1[Index1-1] ? total(Spectra[num1[Index1-1]:num0[Index0-1],*],1) : reform(Spectra[num0[Index0-1],*], Retsize);
+    
+   Time=Time[0:Retsize-1]   
+
+   
+return, SpectraOut
+end
\ No newline at end of file
diff --git a/amda_plus/pro/hia_padflux_c1_.pro b/amda_plus/pro/hia_padflux_c1_.pro
new file mode 100644
index 0000000..d7bc3b8
--- /dev/null
+++ b/amda_plus/pro/hia_padflux_c1_.pro
@@ -0,0 +1,42 @@
+function HIA_PADFLUX_C1_EMIN_EMAX_, StartTime, TimeInt, TimeRet, RetSize, Sampling, close=close
+common GraphC, Graph, GraphN
+common Pad_Hia_C1, ID, Section, Data, Time  
+
+   FillValue = -1.e31
+  
+   if n_elements(ID) EQ 0 then begin
+                   ID = -1L
+                   Section = -1;
+   endif
+ 
+   sampling = 4.0;
+   maxSampling = 16.0;
+   Size = long(graph[GraphN].DeltaT/sampling)
+    
+   if ( Section LT  Graph[GraphN].CurrentSec ) then begin 
+     
+     Data=fltarr(16L*31L, Size)
+     Time=dblarr(Size) 
+   
+          VI = 'clust1:hia:pad'          
+          RetSize = call_external(!PROJLIB + 'libParam.so', 'getLocalData', $
+                                  ID, VI, 'HIA', StartTime, TimeInt, Size, Time, Data)
+          
+          if (RetSize LE 0) then begin
+              TimeRet = 0.D0
+              return, replicate(0.0, 31);
+          endif
+
+        Section =  Graph[GraphN].CurrentSec
+        Time = Time[0:Retsize-1]
+        Data = reform(Data[*, 0:Retsize-1], 31L, 16L, Retsize)
+  endif        
+         
+    TimeRet =  Time;
+
+   if KEYWORD_SET(CLOSE) then begin
+      error = call_external(!DDLIB+'DD_idl.so','CloseID',ID)
+      ID = -1L
+   endif
+return, reform(Data[(31-EMAX), (EMIN-1), *])
+end
\ No newline at end of file
diff --git a/amda_plus/pro/hia_padflux_c3_.pro b/amda_plus/pro/hia_padflux_c3_.pro
new file mode 100644
index 0000000..d1bd0f4
--- /dev/null
+++ b/amda_plus/pro/hia_padflux_c3_.pro
@@ -0,0 +1,42 @@
+function HIA_PADFLUX_C3_EMIN_EMAX_, StartTime, TimeInt, TimeRet, RetSize, Sampling, close=close
+common GraphC, Graph, GraphN
+common Pad_Hia_C3, ID, Section, Data, Time  
+
+   FillValue = -1.e31
+  
+   if n_elements(ID) EQ 0 then begin
+                   ID = -1L
+                   Section = -1;
+   endif
+ 
+   sampling = 4.0;
+   maxSampling = 16.0;
+   Size = long(graph[GraphN].DeltaT/sampling)
+    
+   if ( Section LT  Graph[GraphN].CurrentSec ) then begin 
+     
+     Data=fltarr(16L*31L, Size)
+     Time=dblarr(Size) 
+   
+          VI = 'clust3:hia:pad';          
+          RetSize = call_external(!PROJLIB + 'libParam.so', 'getLocalData', $
+                                  ID, VI, 'HIA', StartTime, TimeInt, Size, Time, Data)
+          
+          if (RetSize LE 0) then begin
+              TimeRet = 0.D0
+              return, replicate(0.0, 31);
+          endif
+
+        Section =  Graph[GraphN].CurrentSec
+        Time = Time[0:Retsize-1]
+        Data = reform(Data[*, 0:Retsize-1], 31L, 16L, Retsize)
+  endif        
+         
+    TimeRet =  Time;
+
+   if KEYWORD_SET(CLOSE) then begin
+      error = call_external(!DDLIB+'DD_idl.so','CloseID',ID)
+      ID = -1L
+   endif
+return, reform(Data[(31-EMAX), (EMIN-1), *])
+end
\ No newline at end of file
diff --git a/amda_plus/pro/mex_els_spec_.pro b/amda_plus/pro/mex_els_spec_.pro
new file mode 100644
index 0000000..f15dc52
--- /dev/null
+++ b/amda_plus/pro/mex_els_spec_.pro
@@ -0,0 +1,136 @@
+ function MEX_ELS_SPEC_EMIN_EMAX_, StartTime, TimeInt, TimeArr, RetSize, Sampling, close=close
+ common GraphC, graph, GraphN
+ common MEXELSSPEC_COM, ID, IDCLB
+ 
+   if n_elements(ID) EQ 0 then begin
+          ID = -1L
+          IDCLB = -1L
+          err = call_external(!PROJLIB + 'libplanetcom.so','SetMission_idl', 'mex');        
+   endif
+   
+   sampling = 4.0
+    
+   Size = long(graph[GraphN].DeltaT/sampling)
+;
+;      Electron Spectra
+; 
+   Data = fltarr(16L, 128L, Size)
+   TimeArr = dblarr(Size)  
+     
+  
+    T_Compres  =  intarr(Size)
+    E_Compres  =  intarr(Size)
+ 
+    RetSize = call_external(!PROJLIB + 'els_idl.so','GetEls',$
+                                      ID, StartTime, TimeInt, Size,$
+                                      TimeArr, T_Compres, E_Compres, Data)
+ 
+    if (RetSize LE 0) then begin
+      Time = 0.D0
+      return, 0.0
+   endif
+   
+   T_Compres = T_Compres[0:RetSize-1]
+   if (max(T_Compres) GT 1) then sampling *= max(T_Compres);
+   
+   Sens = fltarr(16)
+   Resol = fltarr(16)
+   GF = fltarr(16)  
+   
+   error = call_external(!PROJLIB + 'els_idl.so', 'GetElsInfo',$
+                                                         ID, $
+                                                       Sens, $
+                                                      Resol, $
+                                                          GF )
+;
+;         Calibration
+; 
+    StD = call_external(!DDLIB+'DD_idl.so','GetDTime', StartTime, /D_VALUE)
+    DtD = call_external(!DDLIB+'DD_idl.so','GetDTime', TimeInt, /D_VALUE)
+    StD = StD - 100.0D0
+    DtD = DtD + 200.0D0
+    stloc = call_external(!DDLIB+'DD_idl.so','GetTime', StD, /S_VALUE)
+    dtloc = call_external(!DDLIB+'DD_idl.so','GetTime', DtD, /S_VALUE)
+    SizeCLB = Long(DtD/4. + 2)
+    Energy = fltarr(128, SizeCLB)
+    Tm = dblarr(SizeCLB)
+ 
+    RetSizeClb = call_external(!PROJLIB + 'els_idl.so','GetRef',   $
+                                                 IDCLB,    $
+                                                 stloc, $
+                                                 dtloc, $
+                                                 Size,  $
+                                                 Tm,    $
+                                                 Energy)
+   if KEYWORD_SET(CLOSE) then begin
+      error = call_external(!DDLIB+'DD_idl.so','CloseID',ID)
+      error = call_external(!DDLIB+'DD_idl.so','CloseID',IDCLB)
+      ID = -1L
+      IDCLB = -1L
+   endif  
+  
+   if (RetSizeClb LE 0) then begin
+      RetSize = 0
+      Time = 0.D0
+      return, 0.0
+   endif  
+ 
+    TimeArr = TimeArr[0:Retsize-1]
+    Data = total(Data[*,*,0:RetSize-1],1);
+   
+    N_Time = N_elements(TimeArr);
+    num = where(abs(Tm - TimeArr[N_Time/2]) EQ min(abs(Tm - TimeArr[N_Time/2])));
+   
+   Enumb = 128
+   E = fltarr(Enumb)
+   E = Energy[*,num[0]]*Sens[7];
+
+   reducedEnergy = 0; always full for Mars ?!
+ ;  reducedEnergy = E[0] LT 1000.0 ? 1 : 0; 
+      ; if reduced Energy Table expand time
+      if (reducedEnergy) then begin
+ 	Enumb = 32;     
+        DataReduced = reform(Data, Enumb, N_Time*4);          
+       E = E(0:Enumb-1);                   
+     endif  
+  
+    E[Enumb-1] = E[Enumb-2]; 
+    EBounds = fltarr(Enumb+1);
+    EBounds[0] = E[0];
+    EBounds[Enumb] = E[Enumb-1]; 
+    for ie = 1, Enumb-1 do EBounds(ie) = sqrt(E(ie-1)*E(ie)); 
+      
+    num0 = where(EBounds ge EMIN, Index0);   
+    num1 = where(EBounds ge EMAX, Index1);
+
+    if (index0 eq 0) then begin
+      RetSize = 0
+      Time = 0.D0
+      return, 0.0    
+    endif
+
+    if (Index1 eq Enumb+1) then begin
+	 Time = 0.D0
+         return, 0.0 
+    endif
+ 
+    if (Index1 eq 0) then numStop = 0 $
+    else numStop = num1[Index1-1];
+    
+    if (Index0 eq Enumb+1) then numStart = 31 else numStart = num0[Index0-1];
+ 
+    if (reducedEnergy) then begin
+	   tempData = fltarr(N_time);
+           for i = 0, N_time - 1 do for j = 0, 3 do begin	       
+              if (numStart ne numStop) then tempData[i] = tempData[i] + total(DataReduced[numStop:numStart,i*4+j],1) $
+              else tempData[i] = tempData[i] + DataReduced[numStart,i*4+j]; 
+	     endfor   
+            Data = tempData/4.0;   	 
+    endif else Data = numStart ne numStop ? total(Data[numStop:numStart,*],1) : reform(Data[numStart,*], N_Time);  
+  
+   ; Data = total(total(Data[*,numE,*],1),1);/IndexE;
+ 
+return, Data
+end
+;------------------------------------------------------------
+                         
diff --git a/amda_plus/pro/mex_h_spec_.pro b/amda_plus/pro/mex_h_spec_.pro
new file mode 100644
index 0000000..5db846f
--- /dev/null
+++ b/amda_plus/pro/mex_h_spec_.pro
@@ -0,0 +1,64 @@
+function mex_h_spec_EMIN_EMAX_, StartTime, TimeInt, Time, RetSize, Sampling, close=close
+common GraphC, graph, GraphN
+common MEX_H_COM, ID, Energy
+
+FORWARD_FUNCTION gfl
+
+   FillValue =  !Values.F_NAN
+   
+   if n_elements(ID) EQ 0 then  begin
+     ID = -1L
+     err = call_external(!PROJLIB + 'libplanetcom.so','SetMission_idl', 'mex');
+     
+     EnNum = 96
+     Energy = fltarr(EnNum)
+     err = call_external(!PROJLIB + 'imainfo.so','GetImaEner_idl', Energy, 0)
+     Energy =  temporary(Energy(where(Energy GT 0)));
+   endif
+   
+   sampling = 192.0;
+  
+   Size = long(graph[GraphN].DeltaT/sampling)
+
+   Time=dblarr(Size)
+   SpectraTot = fltarr(16, 96, 16, 2, Size)
+   Product = 'HPSPEC';
+   PaccArr = intarr(Size);
+   EnergyTab = intarr(Size);
+
+    RetSize = call_external(!PROJLIB + 'libImaExtra.so','GetImaExtra_idl',$
+                                ID, StartTime, TimeInt,$
+                                Product, Size, $
+                                Time, PaccArr, EnergyTab, SpectraTot)
+                                
+  
+   if KEYWORD_SET(CLOSE) then begin
+      error = call_external(!DDLIB+'DD_idl.so','CloseID',ID)
+      ID = -1L
+   endif                              
+   
+   if (RetSize LE 0) then begin
+      Time = 0.D0
+      return, replicate(0.0, 96)
+   endif
+ 
+   Spectra = fltarr(16, 96, 16, RetSize);
+   
+         for i = 0, RetSize - 1 do $
+            for j = 0, N_elements(Energy) - 1 do begin
+               GFeff = gfl(Energy[j], PaccArr[i], 1.0);
+               GFeffG = gfl(Energy[j], PaccArr[i], 0.0); Ghost
+                 
+               coeffH = GFeff GT 0 ? 1.e-5/GFeff : 0.0;
+               coeffG = GFeffG GT 0 ? 1.e-5/GFeffG : 0.0;
+             
+               Spectra[*,j,*,i] = SpectraTot[*,j,*,0,i]*coeffH + SpectraTot[*,j,*,1,i] * coeffG;
+         endfor 
+
+    
+   numE = where(Energy ge EMIN and Energy le EMAX, IndexE)
+   SpectraOut = total(total(total(Spectra[*,numE,*,*],1),1),1);
+   Time=Time[0:Retsize-1]
+   
+return, SpectraOut
+end
\ No newline at end of file
diff --git a/amda_plus/pro/sta_swea_pad_.pro b/amda_plus/pro/sta_swea_pad_.pro
new file mode 100644
index 0000000..cb69083
--- /dev/null
+++ b/amda_plus/pro/sta_swea_pad_.pro
@@ -0,0 +1,71 @@
+; EMIN == FIST_PARAMETER == PITCH
+; EMAX == SECOND_PARAMETER == ENERGY
+; TODO FIRST_PARAMETER, SECOND_PARAMETER...
+
+function sta_swea_pad_EMIN_EMAX_, StartTime, TimeInt, Time, RetSize, Sampling, close=close
+common GraphC, graph, GraphN
+common STA_SWE_PAD, ID, Energy0, Energy1 
+
+   FillValue =  -1.e31
+   VI = 'sta:swea:pad';
+
+   FirstChangeToTableOne = 1.2029508d+09;
+
+   if n_elements(ID) EQ 0 then  begin
+     ID = -1L     
+     EnNum = 16
+     Energy0 = fltarr(EnNum) 
+     Energy1 = fltarr(EnNum)
+     err = call_external(!PROJLIB + 'libParam.so', 'getInfo', ID, VI, 'ETab0', EnNum, Energy0);
+     err = call_external(!PROJLIB + 'libParam.so', 'getInfo', ID, VI, 'ETab1', EnNum, Energy1);
+   endif
+   
+   sampling = 20.0;
+  
+   Size = long(graph[GraphN].DeltaT/sampling)
+
+   Time=dblarr(Size)
+   Spectra = fltarr(16L, 12L, Size)
+ 
+    
+   RetSize = call_external(!PROJLIB + 'libParam.so','getLocalData',$
+                                ID, VI, 'PAD250', StartTime, TimeInt,$
+                                Size, Time, Spectra)  
+  
+   if KEYWORD_SET(CLOSE) then begin
+      error = call_external(!DDLIB+'DD_idl.so','CloseID',ID)
+      ID = -1L
+   endif                              
+   
+   if (RetSize LE 0) then begin
+      Time = 0.D0
+      return, 0.0
+   endif
+
+    Spectra = temporary(Spectra[*,*,0:RetSize-1]);
+    Emaximum =  EMAX > 50;
+
+   if (Time[0] GT  FirstChangeToTableOne) then Energy = Energy1 else Energy = Energy0;
+
+   numE = where(abs(Energy - Emaximum) eq min(abs(Energy - Emaximum)))
+   
+   Npitch = EMIN - 2;
+
+   if (Npitch GE 0) then begin
+    SpectraOut =  reform(Spectra[numE[0],npitch,*])
+   endif else begin
+    SpectraOut =  reform(total(Spectra[numE[0],*,*],2));
+   endelse
+
+    numOK = where(SpectraOut gt -1.e+31, Index31)
+
+    if (Index31 eq 0) then begin
+      RetSize = -1
+      Time = 0.D0
+      return, 0.0
+   endif
+
+   Time=Time[numOK]
+   
+return, SpectraOut[numOK]
+end
\ No newline at end of file
diff --git a/amda_plus/pro/stb_swea_pad_.pro b/amda_plus/pro/stb_swea_pad_.pro
new file mode 100644
index 0000000..f00adf8
--- /dev/null
+++ b/amda_plus/pro/stb_swea_pad_.pro
@@ -0,0 +1,71 @@
+; EMIN == FIST_PARAMETER == PITCH
+; EMAX == SECOND_PARAMETER == ENERGY
+; TODO FIRST_PARAMETER, SECOND_PARAMETER...
+
+function stb_swea_pad_EMIN_EMAX_, StartTime, TimeInt, Time, RetSize, Sampling, close=close
+common GraphC, graph, GraphN
+common STA_SWE_PAD, ID, Energy0, Energy1 
+
+   FillValue =  -1.e31
+   VI = 'stb:swea:pad';
+
+   FirstChangeToTableOne = 1.2029508d+09;
+ 
+   if n_elements(ID) EQ 0 then  begin
+     ID = -1L     
+     EnNum = 16
+     Energy0 = fltarr(EnNum) 
+     Energy1 = fltarr(EnNum)
+     err = call_external(!PROJLIB + 'libParam.so', 'getInfo', ID, VI, 'ETab0', EnNum, Energy0);
+     err = call_external(!PROJLIB + 'libParam.so', 'getInfo', ID, VI, 'ETab1', EnNum, Energy1);
+   endif
+   
+   sampling = 20.0;
+  
+   Size = long(graph[GraphN].DeltaT/sampling)
+
+   Time=dblarr(Size)
+   Spectra = fltarr(16L, 12L, Size)
+ 
+    
+   RetSize = call_external(!PROJLIB + 'libParam.so','getLocalData',$
+                                ID, VI, 'PAD250', StartTime, TimeInt,$
+                                Size, Time, Spectra)  
+  
+   if KEYWORD_SET(CLOSE) then begin
+      error = call_external(!DDLIB+'DD_idl.so','CloseID',ID)
+      ID = -1L
+   endif                              
+   
+   if (RetSize LE 0) then begin
+      Time = 0.D0
+      return, 0.0
+   endif
+
+    Spectra = temporary(Spectra[*,*,0:RetSize-1]);
+    Emaximum =  EMAX > 50;
+
+   if (Time[0] GT  FirstChangeToTableOne) then Energy = Energy1 else Energy = Energy0;
+
+   numE = where(abs(Energy - Emaximum) eq min(abs(Energy - Emaximum)))
+   
+      
+   Npitch = EMIN - 2;
+
+   if (Npitch GE 0) then begin
+    SpectraOut =  reform(Spectra[numE[0],npitch,*])
+   endif else begin
+    SpectraOut =  reform(total(Spectra[numE[0],*,*],2));
+   endelse
+  
+    numOK = where(SpectraOut gt -1.e+31, Index31)
+    if (Index31 eq 0) then begin
+      RetSize = -1
+      Time = 0.D0
+      return, 0.0
+   endif
+
+   Time=Time[numOK]
+   
+return, SpectraOut[numOK]
+end
\ No newline at end of file
diff --git a/amda_plus/pro/vex_els_spec_.pro b/amda_plus/pro/vex_els_spec_.pro
new file mode 100644
index 0000000..bcf9343
--- /dev/null
+++ b/amda_plus/pro/vex_els_spec_.pro
@@ -0,0 +1,135 @@
+ function VEX_ELS_SPEC_EMIN_EMAX_, StartTime, TimeInt, TimeArr, RetSize, Sampling, close=close
+ common GraphC, graph, GraphN
+ common VEXELSSPEC_COM, ID, IDCLB
+ 
+   if n_elements(ID) EQ 0 then begin
+          ID = -1L
+          IDCLB = -1L
+          err = call_external(!PROJLIB + 'libplanetcom.so','SetMission_idl', 'vex');        
+   endif
+   
+   sampling = 4.0
+    
+   Size = long(graph[GraphN].DeltaT/sampling)
+;
+;      Electron Spectra
+; 
+   Data = fltarr(16L, 128L, Size)
+   TimeArr = dblarr(Size)  
+     
+  
+    T_Compres  =  intarr(Size)
+    E_Compres  =  intarr(Size)
+ 
+    RetSize = call_external(!PROJLIB + 'els_idl.so','GetEls',$
+                                      ID, StartTime, TimeInt, Size,$
+                                      TimeArr, T_Compres, E_Compres, Data)
+ 
+    if (RetSize LE 0) then begin
+      Time = 0.D0
+      return, 0.0
+   endif
+   
+   T_Compres = T_Compres[0:RetSize-1]
+   if (max(T_Compres) GT 1) then sampling *= max(T_Compres);
+   
+   Sens = fltarr(16)
+   Resol = fltarr(16)
+   GF = fltarr(16)  
+   
+   error = call_external(!PROJLIB + 'els_idl.so', 'GetElsInfo',$
+                                                         ID, $
+                                                       Sens, $
+                                                      Resol, $
+                                                          GF )
+;
+;         Calibration
+; 
+    StD = call_external(!DDLIB+'DD_idl.so','GetDTime', StartTime, /D_VALUE)
+    DtD = call_external(!DDLIB+'DD_idl.so','GetDTime', TimeInt, /D_VALUE)
+    StD = StD - 100.0D0
+    DtD = DtD + 200.0D0
+    stloc = call_external(!DDLIB+'DD_idl.so','GetTime', StD, /S_VALUE)
+    dtloc = call_external(!DDLIB+'DD_idl.so','GetTime', DtD, /S_VALUE)
+    SizeCLB = Long(DtD/4. + 2)
+    Energy = fltarr(128, SizeCLB)
+    Tm = dblarr(SizeCLB)
+ 
+    RetSizeClb = call_external(!PROJLIB + 'els_idl.so','GetRef',   $
+                                                 IDCLB,    $
+                                                 stloc, $
+                                                 dtloc, $
+                                                 Size,  $
+                                                 Tm,    $
+                                                 Energy)
+   if KEYWORD_SET(CLOSE) then begin
+      error = call_external(!DDLIB+'DD_idl.so','CloseID',ID)
+      error = call_external(!DDLIB+'DD_idl.so','CloseID',IDCLB)
+      ID = -1L
+      IDCLB = -1L
+   endif  
+  
+   if (RetSizeClb LE 0) then begin
+      RetSize = 0
+      Time = 0.D0
+      return, 0.0
+   endif  
+ 
+    TimeArr = TimeArr[0:Retsize-1]
+    Data = total(Data[5:9,*,0:RetSize-1],1);
+   
+    N_Time = N_elements(TimeArr);
+    num = where(abs(Tm - TimeArr[N_Time/2]) EQ min(abs(Tm - TimeArr[N_Time/2])));
+   
+   Enumb = 128
+   E = fltarr(Enumb)
+   E = Energy[*,num[0]]*Sens[7];
+
+   reducedEnergy = E[0] LT 1000.0 ? 1 : 0; 
+      ; if reduced Energy Table expand time
+     if (reducedEnergy) then begin
+	Enumb = 32;     
+        DataReduced = reform(Data, Enumb, N_Time*4);          
+        E = E(0:Enumb-1);                   
+     endif  
+  
+    E[Enumb-1] = E[Enumb-2]; 
+    EBounds = fltarr(Enumb+1);
+    EBounds[0] = E[0];
+    EBounds[Enumb] = E[Enumb-1]; 
+    for ie = 1, Enumb-1 do EBounds(ie) = sqrt(E(ie-1)*E(ie)); 
+      
+    num0 = where(EBounds ge EMIN, Index0);
+    num1 = where(EBounds ge EMAX, Index1);
+
+    if (index0 eq 0) then begin
+      RetSize = 0
+      Time = 0.D0
+      return, 0.0    
+    endif
+
+    if (Index1 eq 0) then numStop = 0 $
+    else numStop = num1[Index1-1];
+
+    if (Index1 eq Enumb+1) then begin
+	 Time = 0.D0
+         return, 0.0 
+    endif
+ 
+    if (Index0 eq Enumb+1) then numStart = 31 else numStart = num0[Index0-1];
+ 
+    if (reducedEnergy) then begin
+	   tempData = fltarr(N_time);
+           for i = 0, N_time - 1 do for j = 0, 3 do begin	       
+              if (numStart ne numStop) then tempData[i] = tempData[i] + total(DataReduced[numStop:numStart,i*4+j],1) $
+              else tempData[i] = tempData[i] + DataReduced[numStart,i*4+j]; 
+	     endfor   
+            Data = tempData/4.0;   	 
+    endif else Data = numStart ne numStop ? total(Data[numStop:numStart,*],1) : reform(Data[numStart,*], N_Time);  
+  
+   ; Data = total(total(Data[*,numE,*],1),1);/IndexE;
+ 
+return, Data
+end
+;------------------------------------------------------------
+                         
diff --git a/amda_plus/pro/vex_h_spec_.pro b/amda_plus/pro/vex_h_spec_.pro
new file mode 100644
index 0000000..5b97f08
--- /dev/null
+++ b/amda_plus/pro/vex_h_spec_.pro
@@ -0,0 +1,50 @@
+function vex_h_spec_EMIN_EMAX_, StartTime, TimeInt, Time, RetSize, Sampling, close=close
+common GraphC, graph, GraphN
+common VEX_H_COM, ID, Energy
+
+   FillValue =  !Values.F_NAN
+   
+   if n_elements(ID) EQ 0 then  begin
+     ID = -1L
+     err = call_external(!PROJLIB + 'libplanetcom.so','SetMission_idl', 'vex');
+     
+     EnNum = 96
+     Energy = fltarr(EnNum)
+     err = call_external(!PROJLIB + 'imainfo.so','GetImaEner_idl', Energy, 0)
+     Energy =  temporary(Energy(where(Energy GT 0)));
+   endif
+   
+   sampling = 192.0;
+  
+   Size = long(graph[GraphN].DeltaT/sampling)
+
+   Time=dblarr(Size)
+   Spectra = fltarr(16, 96, 16, Size)
+   Product = 'HPSPEC';
+   PaccArr = intarr(Size);
+   EnergyTab = intarr(Size);
+
+    RetSize = call_external(!PROJLIB + 'libImaExtra.so','GetImaExtra_idl',$
+                                ID, StartTime, TimeInt,$
+                                Product, Size, $
+                                Time, PaccArr, EnergyTab, Spectra)
+                                
+  
+   if KEYWORD_SET(CLOSE) then begin
+      error = call_external(!DDLIB+'DD_idl.so','CloseID',ID)
+      ID = -1L
+   endif                              
+   
+   if (RetSize LE 0) then begin
+      Time = 0.D0
+      return, replicate(0.0, 96)
+   endif
+
+   Spectra = temporary(Spectra[*,*,*,0:RetSize-1]);
+   
+   numE = where(Energy ge EMIN and Energy le EMAX, IndexE)
+   SpectraOut = total(total(total(Spectra[*,numE,*,*],1),1),1);
+   Time=Time[0:Retsize-1]
+   
+return, SpectraOut
+end
\ No newline at end of file
diff --git a/amda_plus/pro/vex_o_spec_.pro b/amda_plus/pro/vex_o_spec_.pro
new file mode 100644
index 0000000..928b032
--- /dev/null
+++ b/amda_plus/pro/vex_o_spec_.pro
@@ -0,0 +1,53 @@
+function vex_o_spec_EMIN_EMAX_, StartTime, TimeInt, Time, RetSize, Sampling, close=close
+common GraphC, graph, GraphN
+common VEX_O_COM, ID, Energy
+
+   FillValue =  !Values.F_NAN
+   
+  if n_elements(ID) EQ 0 then  begin
+     ID = -1L
+     err = call_external(!PROJLIB + 'libplanetcom.so','SetMission_idl', 'vex');
+   endif   
+   
+   sampling = 192.0;
+  
+   Size = long(graph[GraphN].DeltaT/sampling)
+
+   Time=dblarr(Size)
+   Spectra = fltarr(16, 96, 16, Size)
+   Product = 'HEAVYSPEC';
+   PaccArr = intarr(Size);
+   EnergyTab = intarr(Size);
+   EnNum = 96
+   Energy = fltarr(EnNum)
+
+    RetSize = call_external(!PROJLIB + 'libImaExtra.so','GetImaExtra_idl',$
+                                ID, StartTime, TimeInt,$
+                                Product, Size, $
+                                Time, PaccArr, EnergyTab, Spectra)
+  
+    
+     
+     err = call_external(!PROJLIB + 'imainfo.so','GetImaEner_idl', Energy, EnergyTab[0])
+     Energy =  temporary(Energy(where(Energy GT 0)));
+   
+                                
+  
+   if KEYWORD_SET(CLOSE) then begin
+      error = call_external(!DDLIB+'DD_idl.so','CloseID',ID)
+      ID = -1L
+   endif                              
+   
+   if (RetSize LE 0) then begin
+      Time = 0.D0
+      return, replicate(0.0, 96)
+   endif
+
+   Spectra = temporary(Spectra[*,*,*,0:RetSize-1]);
+   
+   numE = where(Energy ge EMIN and Energy le EMAX, IndexE)
+   SpectraOut = total(total(total(Spectra[*,numE,*,*],1),1),1);
+   Time=Time[0:Retsize-1]
+   
+return, SpectraOut
+end
\ No newline at end of file
diff --git a/amda_plus/templates/getlocalparam.pro b/amda_plus/templates/getlocalparam.pro
new file mode 100755
index 0000000..7dbd2b5
--- /dev/null
+++ b/amda_plus/templates/getlocalparam.pro
@@ -0,0 +1,68 @@
+; $Id: getlocalparam.pro,v 1.5 2011/09/21 16:01:45 budnik Exp $
+;--------------------------------------
+;   GETNEWPARAM - TEMPLATE
+;
+; Fri Sep 21 11:57:01 CEST 2007
+;
+;---------------------------------------
+
+ pro GETLOCALPARAM, st, dt
+ 
+ 
+common LOCALPARAM_Common, Final 
+common GraphC, graph, GraphN, Item
+
+    paramName = LOCALPARAMNAME;
+    dims = long(LOCALSIZE);
+    dataType = LOCALDATATYPE;
+    VI = LOCALVI;
+    coeff = float(LOCALCONVERSION);
+    Size = Final.DefSize
+
+    case dataType of
+      "FLOAT":   Data = dims eq 1 ? fltarr(size) : fltarr(dims,size);
+      "DOUBLE":  Data = dims eq 1 ? dblarr(size) : dblarr(dims,size);
+      "INTEGER": Data = dims eq 1 ? intarr(size) : intarr(dims,size);
+      "LONG":    Data = dims eq 1 ? lonarr(size) : lonarr(dims,size);
+    endcase
+
+    Time  =  dblarr(size)
+  
+   ID = Long(graph[GraphN].DataID[Item])
+   Lag = Graph[GraphN].Lag[0];
+   Sampling =  Graph[GraphN].Sampling[Item];
+ 
+   if (Lag ne 0.0) then begin
+     rt = call_external(!DDLIB+'DD_idl.so', 'GetDTime', st, /D_VALUE)
+     rt -=  Lag
+     st = call_external(!DDLIB+'DD_idl.so', 'GetTime', double(rt), /S_VALUE)
+   endif
+ 
+   RetSize = call_external(!PROJLIB + 'libParam.so', 'getLocalData', $         
+                          ID, VI, paramName, st, dt, size, Time, Data) 
+
+   if (ID GE 0) then  Graph[GraphN].DataID[Item] = ID    
+
+   if (RetSize GT 1) then begin          
+         if (coeff ne -1) then begin
+            if (finite(Graph[GraphN].FillValue[Item])) then begin
+                num31 = dims eq 1 ? where(Data[*] gt Graph[GraphN].FillValue[Item], Index31) : where(Data[0,*] gt Graph[GraphN].FillValue[Item], Index31); ;
+                if (Index31 gt 0) then begin
+                    if (dims eq 1) then Data[num31] *=  coeff else Data[*,num31] *=  coeff;
+                endif
+            endif else begin
+                num31 = dims eq 1 ? where(finite(Data[*]), Index31) : where(finite(Data[0,*]), Index31); ;
+                if (Index31 gt 0) then begin
+                    if (dims eq 1) then Data[num31] *=  coeff else Data[*,num31] *=  coeff;
+                endif
+            endelse
+         endif
+         Time = Time - graph[GraphN].TimeBase + Lag;
+         graph[GraphN].DataFlags[Item] = 1;
+         graph[GraphN].dataTime[Item] = Time[0];
+         if (dims eq 1) then average, Final, Time[0:RetSize-1], float(Data[0:RetSize-1]) $ 
+         else average, Final, Time[0:RetSize-1], float(Data[*,0:RetSize-1])
+   endif ; else Graph[GraphN].ErrorFlag = 1;
+    
+return
+end
diff --git a/amda_plus/templates/getnewparam.pro b/amda_plus/templates/getnewparam.pro
new file mode 100755
index 0000000..f31c15f
--- /dev/null
+++ b/amda_plus/templates/getnewparam.pro
@@ -0,0 +1,45 @@
+; $Id: getnewparam.pro,v 1.2 2009/04/14 11:58:11 budnik Exp $
+;--------------------------------------
+;   GETNEWPARAM - TEMPLATE
+;
+; Fri Sep 21 11:57:01 CEST 2007
+;
+;---------------------------------------
+
+ pro GETDDPARAM, st, dt
+ 
+ 
+common DDPARAM_Common, Final, dims, dType, VI, paramName
+common GraphC, graph, GraphN, Item
+
+    arrType = ['str', 'lon', 'flt', 'dbl', 'int', 'byt']
+     
+    Size = Final.DefSize
+    Alloc = dims eq 1 ? 'Data='+arrtype[dType]+'arr('+string(size)+')' : 'Data='+arrtype[dType]+'arr('+string(dims)+','+string(size)+')'
+
+    err = execute(Alloc)
+    Time  =  dblarr(size)
+  
+   ID = Long(graph[GraphN].DataID[Item]);
+
+   Lag = Graph[GraphN].Lag[0];
+    if (Lag ne 0.0) then begin
+    rt = call_external(!DDLIB+'DD_idl.so', 'GetDTime', st, /D_VALUE)
+      rt -=  Lag
+      st = call_external(!DDLIB+'DD_idl.so', 'GetTime', double(rt), /S_VALUE)
+   endif
+
+   RetSize = call_external(!PROJLIB + 'getParam.so', 'getData', $         
+                          ID, VI, paramName, st, dt, size, Time, Data) 
+                          
+   if (ID GE 0) then  Graph[GraphN].DataID[Item] = ID    
+   if (RetSize GT 1) then begin         
+         Time -= graph[GraphN].TimeBase +lag
+         graph[GraphN].DataFlags[Item] = 1
+         graph[GraphN].dataTime[Item] = Time[0]
+         if (dims eq 1) then average, Final, Time[0:RetSize-1], float(Data[0:RetSize-1]) $ 
+              else   average, Final, Time[0:RetSize-1], float(Data[*,0:RetSize-1])
+   endif else Graph[GraphN].ErrorFlag = 1
+    
+return
+end
diff --git a/amda_plus/templates/getws.pro b/amda_plus/templates/getws.pro
new file mode 100755
index 0000000..cf3ba30
--- /dev/null
+++ b/amda_plus/templates/getws.pro
@@ -0,0 +1,118 @@
+; $Id: getws.pro,v 1.6 2010/03/15 13:55:28 budnik Exp $
+;--------------------------------------
+;   GET_COMPOUND 
+;
+; Tue Jun 28 16:32:21 CEST 2005
+; TEMPLATE for WorkSpace Variable GET
+;---------------------------------------
+
+ pro GETWS, st, dt
+ 
+ 
+common WS_Common, N_Param, TimeAver, DataCommon, Final
+common GraphC, graph, GraphN, Item
+common InternalCommon, FinalTime, indices
+
+ THRESH = 5.0
+ FillValue = !Values.F_NAN;
+
+   Lag = Graph[GraphN].Lag[0];
+    if (Lag ne 0.0) then begin
+    rt = call_external(!DDLIB+'DD_idl.so', 'GetDTime', st, /D_VALUE)
+      rt -=  Lag
+      st = call_external(!DDLIB+'DD_idl.so', 'GetTime', double(rt), /S_VALUE)
+   endif
+
+   for i = 0, N_Param-1 do begin     
+     if(Graph[GraphN].CurrentSec EQ Graph[GraphN].Sections-1) then $
+         *(DataCommon[i].data) = Call_Function(DataCommon[i].name, st, dt, Time, RetSize, Sampling, /close) $
+     else *(DataCommon[i].data) = Call_Function(DataCommon[i].name, st, dt, Time, RetSize, Sampling)
+    
+       Yinfo = size(*DataCommon[i].data)
+     if (RetSize GT 0) then begin
+;
+; Different processing if 1D array and RetSize = 1
+;
+       if  (Yinfo[0] eq 1) then begin
+         if (RetSize gt 1) then begin 
+             (*DataCommon[i].data) = reform((*DataCommon[i].data), 1, RetSize);
+              DataCommon[i].size[1] = 1;
+         endif else (*DataCommon[i].data) = reform((*DataCommon[i].data), Yinfo[1], RetSize);
+       endif else DataCommon[i].size[1] = Yinfo[1]
+
+    ;   if (RetSize GT 0) then begin          
+     ;    if  Yinfo[0] eq 1 then begin
+     ;      (*DataCommon[i].data) = reform((*DataCommon[i].data), 1, RetSize);
+    ;       DataCommon[i].size[1] = 1;
+    ;     endif else DataCommon[i].size[1] = Yinfo[1]
+                  
+        *(DataCommon[i].Time) = Time; 
+        
+        if (N_elements(*(DataCommon(i).LastTime)) GT 0) then $
+         if (*(DataCommon(i).LastTime) LT Time[0]) then begin       
+          *(DataCommon(i).Time) = [*(DataCommon(i).LastTime),Time]
+           TempArr = fltarr(DataCommon(i).size(1),Retsize+1)
+           TempArr(*,0) = *(DataCommon(i).LastData)
+           TempArr(*,1:*) = *(DataCommon(i).data)
+           *(DataCommon(i).data) = TempArr
+           *(DataCommon(i).LastTime) = Time(RetSize-1) 
+           *(DataCommon(i).LastData) = (*DataCommon(i).data)(*,RetSize-1)
+            RetSize  +=  1  
+        endif  else begin         
+  ;      (*DataCommon(i).Data) = [*(DataCommon(i).LastData), *(DataCommon(i).data)]  
+          *(DataCommon(i).LastTime) = Time(RetSize-1) 
+          *(DataCommon(i).LastData) = (*DataCommon(i).data)(*,RetSize-1)
+        endelse        
+       endif else if (Yinfo[1] gt 1) then DataCommon[i].size[1] = Yinfo[1]
+       
+       DataCommon(i).size(0) = RetSize
+       DataCommon(i).Sampling = Sampling
+       TempArr = 0.0
+   endfor
+
+   
+ ;     print, ' SECTIONS', Graph(GraphN).CurrentSec, Graph(GraphN).Sections
+   
+ ;================= Reference Time ===========================
+   StartTime = call_external(!DDLIB+'DD_idl.so','GetDTime',st, /D_VALUE)
+   TimeInt =  call_external(!DDLIB+'DD_idl.so','GetDTime',dt, /D_VALUE)
+   TimeSize = long(TimeInt/TimeAver) + long(TimeInt mod TimeAver GT TimeAver/4.0)
+   FinalTime = dindgen(TimeSize)*TimeAver + StartTime+TimeAver/2.0;
+   FinalPar = fltarr(TimeSize) 
+   Flag = intarr(TimeSize)
+
+
+   function_calcul = 'FinalPar = WS_calcul(Y00';
+
+   for i = 0, N_Param - 1 do begin
+ 
+       Y = reform(replicate(FillValue,DataCommon[i].size[1]*TimeSize),DataCommon[i].size[1], TimeSize);              
+       if (DataCommon[i].size[0] GT 1) then begin
+	    if (TimeAver GE DataCommon[i].Sampling*2.0) then $
+		  averaging_,*(DataCommon[i].time), *(DataCommon[i].data), FinalTime, Y, Flag $
+	    else  $
+		  interpolation_,*(DataCommon[i].time), *(DataCommon[i].data), DataCommon[i].sampling*Thresh, FinalTime, Y, Flag;    
+       endif
+       res = execute('Y'+ string(i, format='(i2.2)') + '= Y');
+       if (i gt 0) then function_calcul += ',Y'+ string(i, format='(i2.2)')
+   endfor
+
+     function_calcul += ')';
+     res = execute(function_calcul);
+;print, function_calcul
+     FinalTime -= graph[GraphN].TimeBase - lag 
+     average, Final, FinalTime, FinalPar
+
+ ; print, ' In Get ',Graph(GraphN).CurrentSec, Graph(GraphN).Sections    
+ if(Graph(GraphN).CurrentSec EQ Graph(GraphN).Sections-1) then  $
+
+  for i = 0, N_Param-1 do begin 
+     if ptr_valid(DataCommon(i).data) then ptr_free,  DataCommon(i).data 
+     if ptr_valid(DataCommon(i).time) then  ptr_free, DataCommon(i).time     
+   endfor 
+    
+  Graph(GraphN).DataFlags(0) = 1
+  Graph(GraphN).ErrorFlag    = 0
+     
+return
+end 
\ No newline at end of file
diff --git a/amda_plus/templates/getwsd.pro b/amda_plus/templates/getwsd.pro
new file mode 100644
index 0000000..53ba9d0
--- /dev/null
+++ b/amda_plus/templates/getwsd.pro
@@ -0,0 +1,114 @@
+; $Id: getwsd.pro,v 1.7 2013/02/26 15:06:03 benjamin Exp $
+;--------------------------------------
+ 
+
+ pro GETWSDPARAM, st, dt
+ 
+ common WSDPARAM_Common, Final 
+ common GraphC, graph, GraphN, Item
+ 
+    paramName = WSDPARAMNAME
+    dims = long(WSDSIZE)
+    dataType = WSDDATATYPE
+    format = WSDFORMAT
+    vi =  WSDVI 
+    isMoreData = WSDMOREDATA;
+    plottype = WSDPLOTTYPE
+
+; to rewrite as internal idl routines   
+    spawn, "php ./getViStart.php " + vi, ViStart
+    spawn, "php ./getViStop.php "  + vi, ViStop
+         
+    Lag = Graph[GraphN].Lag[0];
+    if (Lag ne 0.0) then begin
+      rt = call_external(!DDLIB + 'DD_idl.so', 'GetDTime', st, /D_VALUE)
+      rt -=  Lag
+      st = call_external(!DDLIB + 'DD_idl.so', 'GetTime', double(rt), /S_VALUE)
+   endif
+  
+   StartDouble = call_external(!DDLIB + "DD_idl.so", 'GetDTime', st, /D_VALUE)
+   IntDouble = call_external(!DDLIB + "DD_idl.so", 'GetDTime', dt, /D_VALUE)
+   EndDouble = StartDouble + IntDouble
+   
+;   ViString = call_external(!DDLIB + "DD_idl.so", 'GetTime', double(ViStart), /S_VALUE)
+
+    if (isMoreData) then begin
+        spawn, "php ./moreData.php "  + vi + " " + string(StartDouble,format='(f16.0)') + " " + string(EndDouble, format='(f16.0)');
+    endif else begin
+     ; print, string(StartDouble,format='(f15.0)'), string(EndDouble,format='(f15.0)')
+      if ((double(ViStart) gt StartDouble+IntDouble) or (StartDouble gt double(ViStop))) then begin      
+	  RetSize = -10;
+	  print, "NO DATA : RETURN "
+	  return;
+      endif
+    endelse
+
+    spawn, "php ./getFileNames.php " + vi + " " + string(StartDouble,format='(f16.0)') + " " + string(IntDouble), FileNames 
+; print, "FILENAMES ",FileNames 
+    files = strsplit(FileNames,",",/EXTRACT);
+
+    if (N_elements(files) eq 1 and files[0] eq "") then return
+      
+    Size = Final.DefSize + 1L
+
+    case dataType of
+        "FLOAT":    Data = dims eq 1 ? fltarr(size) : fltarr(dims,size)
+        "DOUBLE":   Data = dims eq 1 ? dblarr(size) : dblarr(dims,size)
+        "INTEGER" : Data = dims eq 1 ? intarr(size) : intarr(dims,size)
+        "LONG"  :   Data = dims eq 1 ? lonarr(size) : lonarr(dims,size)
+    endcase
+ 
+    Time  =  dblarr(size);
+
+dimsReal = dims;
+
+    if (format eq "cdf") then RetSize = GetCdfVar(files, paramName, dims, StartDouble, IntDouble, Time, Data);
+
+    if (format eq "txt") then RetSize = GetTxtVar(files, paramName, dims, StartDouble, IntDouble, Time, Data);
+ 
+    if (format eq "cef") then RetSize = GetCefVar(files, paramName, dims, StartDouble, IntDouble, Time, Data);
+
+    if (format eq "nc")  then RetSize = GetNcVar(files, paramName, dims, StartDouble, IntDouble, Time, Data);
+ 
+    if (format eq "vot") then begin
+        spawn, "php ./getVotVar.php " + strjoin(files,",") + " " + paramName + " " + string(dims) + " " + string(StartDouble,format='(f16.0)') + " " + string(IntDouble), result;
+        RETSIZE = n_elements(result);
+        if (size LT RETSIZE) then begin 
+            Time  =  dblarr(RETSIZE);
+            if ( dims eq 1 ) then begin
+                Data  = fltarr(RETSIZE); 
+            endif else begin
+                Data = fltarr(dims,RETSIZE);
+            endelse
+        endif
+        for i = 0L, RETSIZE - 1 do begin
+            arr = strsplit(result[i]," ",/EXTRACT);
+            Time[i] = arr[0];
+            if ( dims eq 1 ) then begin
+                Data[i] = arr[1]; 
+            endif else begin
+                Data[*,i] = arr[1:N_Elements(arr)-1];
+            endelse
+        endfor
+    endif
+ 
+   if (RetSize GT 1) then begin  
+         Time -= graph[GraphN].TimeBase - lag;
+         graph[GraphN].DataFlags[Item] = 1
+         graph[GraphN].dataTime[Item] = Time[0]
+         if (dims eq 1) then average, Final, Time[0:RetSize-1], float(Data[0:RetSize-1]) $ 
+              else   average, Final, Time[0:RetSize-1], float(Data[*,0:RetSize-1])
+   endif ;  else  Graph[GraphN].ErrorFlag = 1
+
+  ;------------- Get Energy info on spectro case --------------------------------
+
+  if (strlowcase(plottype) eq 'spectra') then begin
+       if (not ptr_valid(Graph[GraphN].yaxis)) then begin 
+         Energy = findgen(dimsReal+1);
+         Graph[GraphN].yaxis = PTR_NEW(/ALLOCATE_HEAP)
+         *(Graph[GraphN].yaxis) = Energy;
+      endif
+  endif       
+
+return
+end
diff --git a/amda_plus/templates/localparam_.pro b/amda_plus/templates/localparam_.pro
new file mode 100755
index 0000000..5022a7d
--- /dev/null
+++ b/amda_plus/templates/localparam_.pro
@@ -0,0 +1,132 @@
+; $Id: localparam_.pro,v 1.5 2013/03/15 09:55:01 benjamin Exp $
+;------------------------------------------------------
+;  Template for EXTERNAL PARAMETER OBJECT
+;  NEWPARAM is changed by REAL paramID at parameter call 
+;
+;     Tue Sep 11 11:40:40 CEST 2007
+;------------------------------------------------------
+
+
+function LOCALPARAM_, StartTime, TimeInt, Time, RetSize, Sampling, close=close
+common GraphC, graph, GraphN
+common LOCALPARAM_COM, ID
+
+; DD_SHORT   4
+; DD_INT     1
+; DD_FLOAT   2
+; DD_DOUBLE  3
+; DD_CHAR    0
+; BYTE  5
+;-----------------------------------------------------------------
+
+;------------GET ALL THE INFO for parameter build-----------------
+  if n_elements(ID) EQ 0 then  ID = -1L 
+
+  VI = LOCALVI 
+  paramName = LOCALPARAMNAME
+  Sampling  = float(LOCALSAMPLING)  
+  dataType = LOCALDATATYPE
+  dims = long(LOCALSIZE)
+  FillValue  = LOCALFILLVALUE
+  coeff = float(LOCALCONVERSION);
+  process = LOCALPROCESS;
+
+  if (Sampling GE graph[graphN].DeltaT) then begin
+
+      StartTimeD = call_external(!DDLIB + 'DD_idl.so', 'GetDTime', StartTime, /D_VALUE);
+      StartTimeReal =  call_external(!DDLIB + 'DD_idl.so', 'GetTime', StartTimeD - double(sampling*2.5), /S_VALUE);
+      TimeIntD = call_external(!DDLIB + 'DD_idl.so', 'GetDTime', TimeInt, /D_VALUE);
+      TimeIntD +=  double(sampling*5.0)
+      TimeIntReal = call_external(!DDLIB + 'DD_idl.so', 'GetTime', TimeIntD, /S_VALUE);
+
+   endif else begin
+     
+       TimeIntD = graph[graphN].DeltaT;
+       StartTimeReal = StartTime
+       TimeIntReal = TimeInt;
+
+   endelse
+
+
+   Size = long(TimeIntD/Sampling) 
+      
+   case dataType of
+      "FLOAT":    Data = dims eq 1 ? fltarr(size) : fltarr(dims,size)
+      "DOUBLE":   Data = dims eq 1 ? dblarr(size) : dblarr(dims,size)
+      "INTEGER" : Data = dims eq 1 ? intarr(size) : intarr(dims,size)
+      "LONG":     Data = dims eq 1 ? lonarr(size) : lonarr(dims,size);
+    endcase    
+    case dataType of
+      "FLOAT":    EmptyData = dims eq 1 ? 0.0 : fltarr(dims)
+      "DOUBLE":   EmptyData = dims eq 1 ? 0.d0 : dblarr(dims)
+      "INTEGER":  EmptyData = dims eq 1 ? 0 : intarr(dims)
+      "LONG":     EmptyData = dims eq 1 ? 0 : lonarr(dims)
+    endcase     
+     
+   Time=dblarr(Size)
+    
+   RetSize = call_external(!PROJLIB + 'libParam.so', 'getLocalData', $
+                          ID, VI, paramName, StartTimeReal, TimeIntReal, size, Time, Data)
+ 
+   if (KEYWORD_SET(CLOSE) AND ID ge 0) then begin
+      error = call_external(!DDLIB+'DD_idl.so','CloseID',ID)
+      ID = -1L
+   endif
+
+
+   if (RetSize LE 0) then begin
+      Time = 0.D0
+      return, EmptyData
+   endif
+   
+   Time=Time[0:Retsize-1]
+   Data = dims eq 1 ? Data[0:Retsize-1] : Data[*,0:Retsize-1]
+   
+   if (dims eq 1) then begin
+
+      if finite(FillValue) then $
+         num_gap = where(Data[*] ne FillValue, Cntr) $
+      else $
+         num_gap = where(finite(Data[*]), Cntr)
+
+   endif else begin
+      
+    for i = 0, dims - 1 do begin
+        if finite(FillValue) then $
+            g = where(Data[i,*] ne FillValue, Cntr) $
+        else $
+            g = where(finite(Data[i,*]), Cntr)
+        if (Cntr gt 0) then begin
+                if (N_Elements(num_gap) gt 0) then num_gap = [num_gap , g] $
+                else num_gap = g 
+        endif 
+    endfor
+
+       if (N_Elements(num_gap) gt 0) then num_gap = num_gap(uniq(num_gap, sort(num_gap)))
+      Cntr = N_elements(num_gap);
+
+   endelse
+   
+   if Cntr le 0 then begin
+       Retsize = -999
+       Time = 0.D0
+       return, EmptyData
+   endif
+   
+    Time = Time[num_gap]
+    Data = dims eq 1 ? Data[num_gap] : Data[*,num_gap]
+    Retsize=Cntr
+
+    if (coeff ne -1) then Data *=  coeff;
+
+    Data = float(Data);
+
+    if (process ne "") then begin
+           cmd = process + ', Time, Data'; 
+           res = execute(cmd); 
+    endif
+ 
+
+return, Data
+end
+
diff --git a/amda_plus/templates/localparam_com.pro b/amda_plus/templates/localparam_com.pro
new file mode 100755
index 0000000..5d8e1dd
--- /dev/null
+++ b/amda_plus/templates/localparam_com.pro
@@ -0,0 +1,78 @@
+; $Id: localparam_com.pro,v 1.6 2012/03/16 08:47:15 benjamin Exp $
+;--------------------------------------
+;   NEWPARAM_COMMON - TEMPLATE
+;
+; Fri Sep 21 11:57:01 CEST 2007
+;
+;---------------------------------------
+
+ pro LOCALPARAM_com
+ 
+common LOCALPARAM_Common, Final
+common GraphC, Graph, GraphN, Item
+common record, Record
+
+;------------- Get Info --------------------------------
+    
+       ID = Graph[GraphN].DataID[Item]
+       Sampling = float(LOCALSAMPLING)
+       maxSampling = float(LOCALMAXSAMPLING)
+       dims = long(LOCALSIZE)
+       FillValue = LOCALFILLVALUE 
+       coeff = float(LOCALCONVERSION);
+  
+      ;  if (coeff ne -1 AND finite(FillValue)) then  FillValue *= coeff; 
+ 
+; Close VI to update info if there are several params from the same VI 
+       if (ID ge 0) then err=call_external(!DDLIB + 'DD_idl.so', 'CloseID', ID)
+       ID = -1L  
+       Graph[GraphN].DataID[Item] = ID
+
+;------------- Get Energy info on spectro case --------------------------------
+  plottype = LOCALPLOTTYPE
+  useEnTable = 0
+  if strmid(strlowcase(plottype),0,6) eq 'spectr' then begin
+       VI = LOCALVI
+       EnergyChannel = strsplit(LOCALENERGYCHANNEL,/EXTRACT,';')
+        
+       if (strmid(strlowcase(EnergyChannel[0]), 6, 6, /REVERSE_OFFSET) eq 'bounds') then edims = dims + 1L $
+       else  edims = dims
+print,strmid(strlowcase(EnergyChannel[0]), 5, 6, /REVERSE_OFFSET)
+   
+       Energy = fltarr(edims,N_Elements(EnergyChannel))
+
+       for i = 0, N_Elements(EnergyChannel) - 1 do begin
+         temp = reform(Energy[*,i])
+         err = call_external(!PROJLIB + 'libParam.so', 'getInfo', $
+                             ID, VI, EnergyChannel[i], edims, temp)
+         Energy[*,i] = temp
+         if (err LT 0) then stop
+       endfor
+
+      Graph[GraphN].yaxis = PTR_NEW(/ALLOCATE_HEAP)
+      *(Graph[GraphN].yaxis) = Energy;
+      useEnTable = (N_Elements(EnergyChannel) gt 1)
+  endif
+
+;---------------------- General Structure ------------------------- 
+  Final = record
+  Final.DefSize = long(Graph[GraphN].DeltaT/Sampling + 1)
+  Final.Sampling = Sampling   
+  Graph[GraphN].FillValue[Item] = FillValue
+  Graph[GraphN].Sampling[Item] = Sampling
+  if (maxSampling GT Sampling) then Graph[GraphN].MaxSampling[Item] = maxSampling;
+
+  Final.Time = PTR_NEW(/ALLOCATE_HEAP)
+  Final.Val = PTR_NEW(/ALLOCATE_HEAP)
+  Final.LastTime = PTR_NEW(/ALLOCATE_HEAP)
+  Final.LastVal = PTR_NEW(/ALLOCATE_HEAP)
+ 
+  Graph[GraphN].Time[Item] =  Final.Time
+  Graph[GraphN].Val[Item] = Final.Val
+
+  if (Graph[GraphN].Step GT Sampling*2.0) then begin
+    *(Final.Time) = indgen(Graph[GraphN].ppp)*Graph[GraphN].Step + Graph[GraphN].Step/2.0
+    *(Final.Val)  =  float(replicate(FillValue, dims*Graph[GraphN].ppp));
+  endif   
+ return
+ end
diff --git a/amda_plus/templates/localparam_init.pro b/amda_plus/templates/localparam_init.pro
new file mode 100644
index 0000000..5bded3c
--- /dev/null
+++ b/amda_plus/templates/localparam_init.pro
@@ -0,0 +1,163 @@
+; $Id: localparam_init.pro,v 1.10 2012/03/16 08:47:15 benjamin Exp $
+;--------------------------------------
+;  LOCALPARAM_INIT made from TEMPLATE newparam_init
+;
+;   Tue Jun 11 16:32:21 CEST 2007
+;
+;---------------------------------------
+
+pro LOCALPARAM_INIT, LOG = log, LIN = lin, PSYM = psym, COLOR = color, AY1TITLE = AY1Title, $
+                     ; spectra
+                     MINCOUNT = minCount, MAXCOUNT = maxCount, BACKGRDCHAN = backgrdChan, BACKGRDVAL = backgrdVal, $
+                     CHANNEL = channel, Energy = energy, ENERGYMIN = minenergy,  ENERGYMAX = maxenergy, $
+                     LLOG = llog, LLIN = llin, $ ; Z axis scaling
+                     ; vector
+                     X = x, Y = y, Z = z, TOTAL = total, FRAME = frame, $
+                     DELAY = delay, $
+                     ; orbit
+                     CYL = cyl, TICKS = ticks, TIMESERIES = timeseries, GLOBAL = global, $
+                     ; all additional keywords
+                    _EXTRA = e
+
+common GraphC, graph, GraphN, Item
+
+tensor = LOCALTENSOR;
+yTitle = LOCALYTITLE;
+legend = LOCALLEGEND;
+dims   = LOCALSIZE;
+plottype = LOCALPLOTTYPE;
+mission = LOCALMISSION;
+process = LOCALPROCESS;
+
+pen = !dnc-1 & comp = 100 & symbol = -3;
+ 
+if (KEYWORD_SET(COLOR)) then pen = color; 
+if (KEYWORD_SET(PSYM)) then symbol = psym;
+ 
+graph[GraphN].Type = 'FGM_T'; 
+graph[GraphN].DataN = 1;
+graph[GraphN].SetCommonF[0] = 'LOCALPARAM_com'; 
+graph[GraphN].GetDataF[0] = 'getLOCALPARAM';
+graph[GraphN].DeltaT = (Graph[GraphN].TotalTime + 60.0D0) <  86400.0D0 
+
+if (KEYWORD_SET(AY1TITLE)) then graph[GraphN].Ly.title = AY1Title $
+else graph[GraphN].Ly.title = yTitle
+
+if (KEYWORD_SET(LOG)) then AxisF = 'logaxis' $
+else AxisF = 'lineaxis, ' + string(Graph[GraphN].TotalTime);
+graph[GraphN].AxisF = AxisF;
+
+if (KEYWORD_SET(FRAME)) then begin 
+  if (frame eq "GSM") then graph[GraphN].ProcessF='gse2gsm';
+  if (frame eq "SM") then  graph[GraphN].ProcessF='gse2sm';
+endif else frame = LOCALFRAME;
+ 
+if (process ne "") then graph[GraphN].ProcessF=LOCALPROCESS;
+
+if (frame ne "") then graph[GraphN].Ly.title += ', '+frame;
+
+case tensor of
+; scalar
+  0:  PlotF = 'PlotScal_New, 0,' + string(pen)  + ',' + string(symbol);
+; vector or vector component
+  1:  begin
+
+	  if (KEYWORD_SET(X)) then comp = 0;
+	  if (KEYWORD_SET(Y)) then comp = 1;
+	  if (KEYWORD_SET(Z)) then comp = 2;
+          if (KEYWORD_SET(TOTAL)) then comp = 3;
+
+           PlotF = comp eq 100 ? 'PlotVec': 'PlotVec_Comp_New, ' + string(comp) +','+ string(pen ) +','+ string(symbol)
+           graph[GraphN].names = PTR_NEW(/ALLOCATE_HEAP)
+           *(graph[GraphN].names) = strsplit(legend,';',/EXTRACT)
+      end 
+   -1: begin
+	   if (KEYWORD_SET(X)) then comp = 0
+           if (KEYWORD_SET(Y)) then comp = 1
+           if (KEYWORD_SET(Z)) then comp = 2
+           PlotF = comp eq 100 ? 'PlotTen, 0,' +string(dims) : 'PlotTen_Comp_New, 0,'+string(dims)+','+string(comp)+','+ string(pen)+ ','+ string(symbol) 
+           graph[GraphN].names = PTR_NEW(/ALLOCATE_HEAP)
+           *(graph[GraphN].names) = strsplit(legend,';',/EXTRACT)
+       end
+   else: begin
+; spectra or time series for channel/energy selected => tensor_order = 2 : temporary
+           if (strmid(strlowcase(plottype),0,6) eq 'spectr' OR strmid(strlowcase(plottype),0,5) eq 'stack') then begin
+             if (KEYWORD_SET(channel) or KEYWORD_SET(energy)) then begin
+                location = KEYWORD_SET(channel) ? channel-1 : energy;
+                PlotF = 'PlotScal_New, '+ string(location) +',' + string(pen) +','+ string(symbol)
+                graph[GraphN].Ly.title += '  ch ' + strtrim(string(location+1),1);  
+           ;    graph[GraphN].Ly.title +=  '!C' + legend;
+
+             endif else begin
+               graph[GraphN].names = PTR_NEW(/ALLOCATE_HEAP)
+               *(graph[GraphN].names) = strsplit(legend,';',/EXTRACT)
+               arg = ''
+
+               if (KEYWORD_SET(BACKGRDCHAN)) then arg = arg+', '+string(BACKGRDCHAN) $
+               else arg = arg+', -1';
+               if (KEYWORD_SET(BACKGRDVAL)) then arg = arg+', '+string(BACKGRDVAL) $
+               else arg = arg+', -1';
+               if (KEYWORD_SET(MINCOUNT)) then arg = arg+', '+string(MINCOUNT) $
+               else arg = arg+', -1';
+               if (KEYWORD_SET(MAXCOUNT)) then arg = arg+', '+string(MAXCOUNT) $
+               else arg = arg+', -1';
+               if (KEYWORD_SET(LIN)) then arg = arg+', /LIN'
+               if (KEYWORD_SET(LLIN)) then arg = arg+', /LLIN'
+
+               if (strmid(strlowcase(plottype),0,6) eq 'spectr') then PlotF = 'PlotSpecGen'+arg $
+               else  PlotF = 'PlotTen, 0,' + string(dims)
+             endelse
+; tensor
+         endif else begin
+           if (dims NE 9) then begin
+            if (KEYWORD_SET(X)) then comp = 0
+            if (KEYWORD_SET(Y)) then comp = 1
+            if (KEYWORD_SET(Z)) then comp = 2
+           endif else begin
+            if (KEYWORD_SET(X)) then comp = 0
+            if (KEYWORD_SET(Y)) then comp = 4
+            if (KEYWORD_SET(Z)) then comp = 8
+           endelse
+           PlotF = comp eq 100 ? 'PlotTen, 0,' +string(dims) : 'PlotTen_Comp_New, 0,'+string(dims)+','+string(comp)+','+ string(pen)+','+string(symbol) 
+           graph[GraphN].names = PTR_NEW(/ALLOCATE_HEAP)
+           *(graph[GraphN].names) = strsplit(legend,';',/EXTRACT)
+        endelse
+      end
+endcase
+
+  if ((plottype eq 'ORBIT') AND  (KEYWORD_SET(TICKS))) then begin
+     PlotF = "tickmarks";
+;TODO mission
+    *(graph[GraphN].names) = [ytitle,frame]
+  endif
+
+  if ((plottype eq 'ORBIT') AND  (KEYWORD_SET(CYL))) then begin
+;TODO 
+     graph[GraphN].Type = 'ORB_XYZ'; 
+     graph[GraphN].AxisF = 'earthorbaxis, 0'; 
+; MARS
+     if (mission EQ 'MEX' OR mission EQ 'MGS' OR mission EQ 'MAVEN' OR frame EQ 'MSO') then  graph[GraphN].AxisF = 'mexorbaxis, 0';
+; Mercury
+     if (mission EQ 'MESSENGER' AND frame EQ 'MSO') then  graph[GraphN].AxisF = 'mercorbaxis, 0';
+; VENUS     
+    if (mission EQ 'VEX' OR mission EQ 'PVO' OR frame EQ 'VSO') then  graph[GraphN].AxisF = 'vexorbaxis, 0, 0';
+  ;   deltaT = Graph[GraphN].TotalTime / 600 ;
+     PlotF = "orb_plot, "+string(60)+", 0";
+  endif
+  
+ if ((plottype eq 'ORBIT') AND  (KEYWORD_SET(GLOBAL))) then begin
+;TODO only for STEREO for the moment
+      graph[GraphN].Type = 'ORB_XYZ'
+      graph[GraphN].DataN = 1
+      graph[GraphN].SetCommonF[0] = 'empty_com' 
+      graph[GraphN].GetDataF[0] ='get_empty'
+      PlotF = 'hee_stereo_glob'  
+  endif
+
+
+graph[GraphN].PlotF = PlotF
+
+if KEYWORD_SET(DELAY) then Graph[GraphN].Lag[0] = double(delay);
+ 
+return
+end
diff --git a/amda_plus/templates/newparam_.pro b/amda_plus/templates/newparam_.pro
new file mode 100755
index 0000000..929b632
--- /dev/null
+++ b/amda_plus/templates/newparam_.pro
@@ -0,0 +1,91 @@
+; $Id: newparam_.pro,v 1.3 2009/04/14 13:33:17 budnik Exp $
+;------------------------------------------------------
+;  Template for EXTERNAL PARAMETER OBJECT
+;  NEWPARAM is changed by REAL paramID at parameter call 
+;
+;     Tue Sep 11 11:40:40 CEST 2007
+;------------------------------------------------------
+
+
+function DDPARAM_, StartTime, TimeInt, Time, RetSize, Sampling, close=close
+common GraphC, graph, GraphN
+common DDPARAM_COM, ID, size, Sampling_, FillValue, dType, dims
+
+; DD_SHORT   4
+; DD_INT     1
+; DD_FLOAT   2
+; DD_DOUBLE  3
+; DD_CHAR    0
+; BYTE  5
+;-----------------------------------------------------------------
+
+defsysv, '!AMDANGLIB', getenv('AMDANGLIB'), 1
+
+ arrType = ['str', 'lon', 'flt', 'dbl', 'int', 'byt']
+ fillValueType = ['string', 'long', 'float', 'double', 'fix', 'byte']
+ paramID = 'NEWPARAM'
+
+  arrParam = strsplit(paramID,":", /EXTRACT) 
+  arrVI = strsplit(arrParam[1], "_", /EXTRACT);            
+  VI = strjoin((strlowcase(arrVI)),':',/SINGLE) 
+  paramName = N_elements(arrParam) eq 3 ? arrParam[2] : strjoin(arrParam[2:*]) ;
+  
+
+;------------GET ALL THE INFO for parameter build-----------------
+;------------ First call Only-----------------------
+    if n_elements(ID) EQ 0 then begin
+       ID = -1L
+       XML = "NEWPARAM.xml"
+       Sampling_ = call_external(!PROJLIB +'getParam.so', 'getGeneralInfo', ID, VI, /F_VALUE)       
+       dataType = call_external(!AMDANGLIB +'getParamAmda.so', 'getTagValue', XML, '//DATATYPE', /S_VALUE)
+       dimension = call_external(!AMDANGLIB + 'getParamAmda.so', 'getTagValue', XML, '//DIMENSION', /S_VALUE)
+       FillValueS = call_external(!AMDANGLIB + 'getParamAmda.so', 'getTagValue', XML, '//FILLVAL', /S_VALUE)
+       Size = long(Graph[GraphN].DeltaT/Sampling_) 
+       dType = fix(dataType)
+       dims = fix(dimension) 
+       AllocFillValue = 'FillValue = '+ fillvalueType[dType] +'(FillValueS)'
+       err = execute(AllocFillValue)
+     endif 
+    
+     Sampling = Sampling_
+
+     Alloc = dims eq 1 ? 'Data='+arrtype[dType]+'arr('+string(size)+')' : 'Data='+arrtype[dType]+'arr('+string(dims)+','+string(size)+')'
+     err = execute(Alloc)  
+     Alloc = dims eq 1 ? 'EmptyData = 0' : 'EmptyData='+arrtype[dType]+'arr('+string(dims)+')'
+     err = execute(Alloc)  
+     Time=dblarr(Size)
+    
+   RetSize = call_external(!PROJLIB + 'getParam.so', 'getData', $
+                          ID, VI, paramName, StartTime, TimeInt, size, Time, Data)
+
+ 
+   if KEYWORD_SET(CLOSE) then begin
+      error = call_external(!DDLIB+'DD_idl.so','CloseID',ID)
+      ID = -1L
+   endif
+   
+   if (RetSize LE 0) then begin
+      Time = 0.D0
+      return, EmptyData
+   endif
+   
+   Time=Time[0:Retsize-1]
+   Data = dims eq 1 ? Data[0:Retsize-1] : Data[*,0:Retsize-1]
+   
+   num_gap = dims eq 1 ? where(Data[*] ne FillValue, Cntr) : where(Data[0,*] ne FillValue, Cntr)
+  
+   if Cntr le 0 then begin
+       Retsize = -999
+       Time = 0.D0
+       return, EmptyData
+   endif
+   
+    Time = Time[num_gap]
+    Data = dims eq 1 ? Data[num_gap] : Data[*,num_gap]
+    Retsize=Cntr
+  
+
+
+return, float(Data)
+end
+
diff --git a/amda_plus/templates/newparam_XXX_init.pro b/amda_plus/templates/newparam_XXX_init.pro
new file mode 100644
index 0000000..f03536e
--- /dev/null
+++ b/amda_plus/templates/newparam_XXX_init.pro
@@ -0,0 +1,28 @@
+; $Id: newparam_init.pro,v 1.2 2009/03/23 10:06:46 budnik Exp $
+;--------------------------------------
+;   NEWPARAM_INIT made from TEMPLATE newparam_init
+;
+; Tue Jun 11 16:32:21 CEST 2007
+;
+;---------------------------------------
+
+pro DDPARAM_XXX_INIT, LOG = log, LIN = lin, X = X, Y = Y, Z = Z, COLOR=color, PSYM=psym, AY1TITLE=AY1Title, DELAY=delay
+
+common GraphC, graph, GraphN, Item
+
+  comp = XXX;
+  component = ['/X', '/Y', '/Z'];
+
+  cmd = 'DDPARAM_init, ' + component[comp];
+
+  if KEYWORD_SET(GSM) then cmd += ',/GSM'
+  if KEYWORD_SET(SM) then cmd += ',/SM'
+
+   if KEYWORD_SET(COLOR) then cmd += ',COLOR='+string(color)
+  if KEYWORD_SET(PSYM) then cmd += ',PSYM='+string(psym)
+  if KEYWORD_SET(AY1Title) then cmd += ',AY1TITLE='+string(ay1title) 
+
+  R = execute(cmd)
+  
+return
+end
diff --git a/amda_plus/templates/newparam_com.pro b/amda_plus/templates/newparam_com.pro
new file mode 100755
index 0000000..59cd89f
--- /dev/null
+++ b/amda_plus/templates/newparam_com.pro
@@ -0,0 +1,58 @@
+; $Id: newparam_com.pro,v 1.1 2008/04/17 10:05:37 elena Exp $
+;--------------------------------------
+;   NEWPARAM_COMMON - TEMPLATE
+;
+; Fri Sep 21 11:57:01 CEST 2007
+;
+;---------------------------------------
+
+ pro DDPARAM_com
+ 
+common DDPARAM_Common, Final, dims, dType, VI, paramName
+common GraphC, Graph, GraphN, Item
+common record, Record
+
+
+;------------- Get Info --------------------------------
+       arrParam = strsplit("NEWPARAM",":", /EXTRACT) 
+       arrVI = strsplit(arrParam[1], "_", /EXTRACT);            
+       VI = strjoin((strlowcase(arrVI)),':',/SINGLE)    
+          
+       paramName = N_elements(arrParam) eq 3 ? arrParam[2] : strjoin(arrParam[2:*]) ;
+   
+       ID = Graph[GraphN].DataID[Item]
+       XML =  "NEWPARAM.xml"
+
+       Sampling = call_external(!PROJLIB +'getParam.so', 'getGeneralInfo', ID, VI, /F_VALUE)
+       dataType = call_external(!AMDANGLIB +'getParamAmda.so', 'getTagValue', XML, '//DATATYPE', /S_VALUE)
+       dimension = call_external(!AMDANGLIB + 'getParamAmda.so', 'getTagValue', XML, '//DIMENSION', /S_VALUE)
+       FillValueS = call_external(!AMDANGLIB + 'getParamAmda.so', 'getTagValue', XML, '//FILLVAL', /S_VALUE)
+       FillValue = float(FillValueS)
+       dims = long(dimension)  
+       dType = fix(dataType) 
+; Close VI to udate info if there are several params from the same VI 
+       err=call_external(!DDLIB + 'DD_idl.so', 'CloseID', ID)
+       ID = -1L  
+       Graph[GraphN].DataID[Item] = ID
+;---------------------- General Structure ------------------------- 
+  Final = record
+  Final.DefSize = long(Graph[GraphN].DeltaT/Sampling + 1)
+  Final.Sampling = Sampling   
+  Graph[GraphN].FillValue[Item] = FillValue
+  Graph[GraphN].Sampling[Item] = Sampling
+
+
+  Final.Time = PTR_NEW(/ALLOCATE_HEAP)
+  Final.Val = PTR_NEW(/ALLOCATE_HEAP)
+  Final.LastTime = PTR_NEW(/ALLOCATE_HEAP)
+  Final.LastVal = PTR_NEW(/ALLOCATE_HEAP)
+ 
+  Graph[GraphN].Time[Item] =  Final.Time
+  Graph[GraphN].Val[Item] = Final.Val
+
+  if (Graph[GraphN].Step GT Sampling*2.0) then begin
+    *(Final.Time) = indgen(Graph[GraphN].ppp)*Graph[GraphN].Step + Graph[GraphN].Step/2.0
+    *(Final.Val)  =  replicate(FillValue, dims*Graph[GraphN].ppp)
+  endif   
+ return
+ end
diff --git a/amda_plus/templates/newparam_comp_init.pro b/amda_plus/templates/newparam_comp_init.pro
new file mode 100644
index 0000000..a56ef6a
--- /dev/null
+++ b/amda_plus/templates/newparam_comp_init.pro
@@ -0,0 +1,28 @@
+; $Id: newparam_init.pro,v 1.2 2009/03/23 10:06:46 budnik Exp $
+;--------------------------------------
+;   NEWPARAM_INIT made from TEMPLATE newparam_init
+;
+; Tue Jun 11 16:32:21 CEST 2007
+;
+;---------------------------------------
+
+pro DDPARAM_COMP_INIT, LOG = log, LIN = lin, X = X, Y = Y, Z = Z, COLOR=color, PSYM=psym, AY1TITLE=AY1Title, DELAY=delay
+
+common GraphC, graph, GraphN, Item
+
+  comp = COMP;
+  component = ['/X', '/Y', '/Z'];
+
+  cmd = 'DDPARAM_init, ' + component[comp];
+
+  if KEYWORD_SET(GSM) then cmd += ',/GSM'
+  if KEYWORD_SET(SM) then cmd += ',/SM'
+
+  if KEYWORD_SET(COLOR) then cmd += ',COLOR='+string(color)
+  if KEYWORD_SET(PSYM) then cmd += ',PSYM='+string(psym)
+  if KEYWORD_SET(AY1Title) then cmd += ',AY1TITLE='+string(ay1title)
+
+  R = execute(cmd)
+  
+return
+end
diff --git a/amda_plus/templates/newparam_init.pro b/amda_plus/templates/newparam_init.pro
new file mode 100755
index 0000000..c00974f
--- /dev/null
+++ b/amda_plus/templates/newparam_init.pro
@@ -0,0 +1,94 @@
+; $Id: newparam_init.pro,v 1.2 2009/03/23 10:06:46 budnik Exp $
+;--------------------------------------
+;   NEWPARAM_INIT made from TEMPLATE newparam_init
+;
+; Tue Jun 11 16:32:21 CEST 2007
+;
+;---------------------------------------
+
+pro DDPARAM_INIT, LOG = log, LIN = lin, X = X, Y = Y, Z = Z, COLOR = color, PSYM = psym, $
+		  CHANNEL = channel, Energy = energy, DELAY=delay, AY1TITLE = AY1title
+
+common GraphC, graph, GraphN, Item
+
+defsysv, '!AMDANGLIB', getenv('AMDANGLIB'), 1
+
+pen = !dnc-1 & comp = 100 & symbol = -3;
+
+ if (KEYWORD_SET(X)) then comp = 0
+ if (KEYWORD_SET(Y)) then comp = 1
+ if (KEYWORD_SET(Z)) then comp = 2  
+  
+ if (KEYWORD_SET(COLOR)) then pen = color; 
+ if (KEYWORD_SET(PSYM)) then symbol = psym;  
+
+   XML =  "NEWPARAM.xml"
+
+   ax = KEYWORD_SET(lin) ? 0 : 1;
+  
+  dimension = call_external(!AMDANGLIB +'getParamAmda.so', 'getTagValue', XML, '//DIMENSION', /S_VALUE)
+  units =  call_external(!AMDANGLIB +'getParamAmda.so', 'getTagValue', XML, '//UNITS', /S_VALUE)
+  yTitle =  call_external(!AMDANGLIB +'getParamAmda.so', 'getTagValue', XML, '//FIELDNAM', /S_VALUE)
+  legend = call_external(!AMDANGLIB +'getParamAmda.so', 'getTagValue', XML, '//LABLAXIS', /S_VALUE)
+  display = call_external(!AMDANGLIB +'getParamAmda.so', 'getTagValue', XML, '//DISPLAY_TYPE', /S_VALUE)
+    
+   if strmid(strlowcase(display),0,6) eq 'spectr' then begin
+	  if (KEYWORD_SET(channel) or KEYWORD_SET(energy)) then begin
+	    location = KEYWORD_SET(channel) ? channel-1 : energy;
+	    PlotF = 'PlotScal_New, '+ string(location) +',' + string(pen)+',' + string(symbol)             
+	    graph[GraphN].Ly.title += '   ch ' + strtrim(string(location+1),1);
+	  endif else begin
+	  ; Get Energy Bounds
+	    graph[GraphN].names = PTR_NEW(/ALLOCATE_HEAP)
+	    *(graph[GraphN].names) = units
+	    Graph[GraphN].yaxis = PTR_NEW(/ALLOCATE_HEAP)
+	    *(Graph[GraphN].yaxis) = findgen(fix(dimension))+1.0
+	    if (ax eq 0) then PlotF = 'PlotSpec, /LIN' else PlotF = 'PlotSpec'
+	endelse
+    endif else begin 
+	case fix(dimension) of
+	  1: PlotF = 'PlotScal_New, 0, ' + string(pen)  + ',' + string(symbol);
+	  2: PlotF = 'PlotTen, 0, 2'
+	  3: begin
+	      PlotF = comp eq 100 ? 'PlotVec': 'PlotVec_Comp_New, '+string(comp)+','+ string(pen)+','+ string(symbol)
+	      graph[GraphN].names = PTR_NEW(/ALLOCATE_HEAP)
+	      *(graph[GraphN].names) = strsplit(legend,';',/EXTRACT)
+	    end  
+	  else : PlotF = 'PlotTen, 0,' + dimension
+	endcase
+   endelse 
+
+graph[GraphN].Type = 'FGM_T' 
+graph[GraphN].DataN = 1
+graph[GraphN].SetCommonF[0] = 'DDPARAM_com' 
+graph[GraphN].GetDataF[0] ='getDDPARAM'
+
+graph[GraphN].DeltaT = (Graph[GraphN].TotalTime + 60.0D0) <  86400.0D0
+
+if (KEYWORD_SET(AY1TITLE)) then graph[GraphN].Ly.title = AY1Title $
+else graph[GraphN].Ly.title = yTitle 
+
+if KEYWORD_SET(LOG) then AxisF = 'logaxis' $
+else AxisF = 'lineaxis, ' + string(Graph[GraphN].TotalTime);
+
+graph[GraphN].AxisF = AxisF;
+
+  
+graph[GraphN].PlotF = PlotF
+
+case strmid(PlotF,0,7) of
+  'PlotVec' : begin
+                  graph[GraphN].names = PTR_NEW(/ALLOCATE_HEAP)
+                   *(graph[GraphN].names) = strsplit(legend,'$',/EXTRACT)
+              end
+  'PlotTen' : begin
+                   graph[GraphN].names = PTR_NEW(/ALLOCATE_HEAP)
+                   *(graph[GraphN].names) = strsplit(legend,'$',/EXTRACT)
+ 
+              end
+   else:
+endcase
+;graph[GraphN].LastPlotF = 'nodatalast'
+if KEYWORD_SET(DELAY) then Graph[GraphN].Lag[0] = double(delay); 
+return
+end
diff --git a/amda_plus/templates/thX_YYYY_mode_Z_init.pro b/amda_plus/templates/thX_YYYY_mode_Z_init.pro
new file mode 100644
index 0000000..f9e7c64
--- /dev/null
+++ b/amda_plus/templates/thX_YYYY_mode_Z_init.pro
@@ -0,0 +1,18 @@
+;----------------ENVELOPE-------------------------
+; 
+pro THX_YYYY_mode_Z_init, LOG=log, LIN=lin, COLOR=color, PSYM=psym, AY1TITLE=aytitle, _extra=e 
+
+  comp = ['/x', '/y', '/z']
+
+  cmd = 'thX_YYYY_mode_init, ' + string(comp[Z]);
+  if KEYWORD_SET(COLOR) then cmd += ',COLOR = '+ string(color);
+  if KEYWORD_SET(PSYM) then cmd += ',PSYM= ' + string(psym);
+  if KEYWORD_SET(LOG) then cmd += ',/LOG';
+  if KEYWORD_SET(LIN) then cmd += ',/LIN';
+  if KEYWORD_SET(AY1TITLE) then cmd += ',AY1TITLE='+string(ay1title);	 
+
+  R = execute(cmd)
+
+return
+end
+;------------------------------------------------------------
\ No newline at end of file
diff --git a/amda_plus/templates/thX_YYYY_mode_init.pro b/amda_plus/templates/thX_YYYY_mode_init.pro
new file mode 100644
index 0000000..5f696e0
--- /dev/null
+++ b/amda_plus/templates/thX_YYYY_mode_init.pro
@@ -0,0 +1,40 @@
+;-----------------THEMIS T_INIT--------------------------
+;         
+;-------------------------------------------------------
+pro thX_YYYY_mode_INIT, LOG = log, LIN = lin, PSYM = psym, COLOR = color, AY1TITLE = AY1Title, $
+                      
+                     ; vector
+                     x = x, y = y, z = z, TOTAL = total, FRAME = frame, $
+                     
+                     ; all additional keywords
+                    _extra = e 
+
+common GraphC, graph, GraphN, Item
+ 
+title = ["!CMode", "!CEnergy,N", "!CAngles,N", "!CEnergy,N"] 
+pen = !dnc-1 &   symbol = -3;
+ 
+ if (KEYWORD_SET(COLOR)) then pen = color; 
+ if (KEYWORD_SET(PSYM)) then symbol = psym;
+
+  
+graph[GraphN].AxisF = 'lineaxis, ' + string(Graph[GraphN].TotalTime); 
+
+ option = 3; 
+ if KEYWORD_SET(x) then option = 0;
+ if KEYWORD_SET(y) then option = 1;
+ if KEYWORD_SET(z) then option = 2;
+ 
+graph[GraphN].names = PTR_NEW(/ALLOCATE_HEAP) 
+graph[GraphN].Type = 'HIAM_T' 
+graph[GraphN].DataN = 1
+graph[GraphN].SetCommonF[0] = 'mode_YYYY_com, "X"'
+graph[GraphN].GetDataF[0] ='get_mode_YYYY, "X"'
+graph[GraphN].DeltaT =  (graph[graphN].TotalTime+10.0D0)  <  18000.0D0
+yTitle = 'thX_peir'+title[option] 
+if (KEYWORD_SET(AY1TITLE)) then graph[GraphN].Ly.title = AY1Title $
+else graph[GraphN].Ly.title = yTitle 
+graph[GraphN].PlotF = 'PlotModeReduced,' + string(option);
+return
+end
+;------------------------------------------------------------
diff --git a/amda_plus/templates/thX_YYYY_n_.pro b/amda_plus/templates/thX_YYYY_n_.pro
new file mode 100644
index 0000000..bbdeccf
--- /dev/null
+++ b/amda_plus/templates/thX_YYYY_n_.pro
@@ -0,0 +1,75 @@
+function THX_YYYY_N, StartTime, TimeInt, Time, RetSize, Sampling, close=close
+common GraphC, graph, GraphN
+common NYYYYTHX_COM, ID
+
+  
+   operation_mode = "YYYY";
+   if n_elements(ID) EQ 0 then ID = -1L
+   sampling = operation_mode EQ "peif" ?  96.27 : 3.0;
+   if (operation_mode eq "peif" OR operation_mode eq "peef") then  MaxSampling = 385.09;
+  
+   Size = long(graph[GraphN].DeltaT/sampling)
+     
+   Bdata=dblarr(Size)
+   Time=dblarr(Size)
+      
+   VI =  operation_mode EQ "peif" OR operation_mode eq "peef" ? 'thX:YYYY:all' : 'thX:YYYY:mom';
+
+   CONT:   
+   RetSize = call_external(!PROJLIB + 'libParam.so', 'getLocalData', $
+                          ID, VI, 'Density', StartTime, TimeInt, Size, Time, Bdata)
+  
+    if (Retsize eq -34) OR (Retsize eq -35) then begin  
+                   wait, 3               
+                   goto, CONT
+    endif 
+   
+   if (operation_mode EQ "peir" OR operation_mode EQ "peer") then begin
+	mode = fltarr(3,Size);
+	RetSize = call_external(!PROJLIB + 'libParam.so', 'getLocalData', $
+                             ID, VI, 'Mode', StartTime, TimeInt, Size, Time, mode);   
+   endif 
+  if (RetSize LE 0) then begin
+      Time = 0.D0
+      return, 0.0
+   endif
+  
+    Time=Time[0:Retsize-1]
+    Bdata=Bdata[0:Retsize-1]
+   if (operation_mode EQ "peir") then begin
+  ; 1-Angle modes ....
+      num1 = where(mode[2,0:RetSize-1] eq 1, index1)
+      if (index1 gt 0) then Bdata[num1] = !Values.F_NAN; 
+      num3 = where(mode[2,0:RetSize-1] eq 3, index3)
+      if (index3 gt 0) then Bdata[num3] = !Values.F_NAN; 
+      num5 = where(mode[2,0:RetSize-1] eq 5, index5)
+      if (index5 gt 0) then Bdata[num5] = !Values.F_NAN;  
+   endif
+
+   if (operation_mode EQ "peer") then begin
+   ; 1-Angle modes ....
+      num1 = where(mode[2,0:RetSize-1] eq 1, index1)
+      if (index1 gt 0) then Bdata[num1] = !Values.F_NAN; 
+      num3 = where(mode[2,0:RetSize-1] eq 3, index3)
+      if (index3 gt 0) then Bdata[num3] = !Values.F_NAN; 
+   endif 
+   num_gap = where(finite(Bdata), Cntr)
+  
+   if Cntr le 0 then begin
+       Retsize = -999
+       Time = 0.D0
+       return, 0.0
+   endif
+   
+    Time=Time[num_gap]
+    Bdata=Bdata[num_gap]
+    Retsize=Cntr
+
+    B = float(Bdata)
+   
+   if KEYWORD_SET(CLOSE) then begin
+      error = call_external(!DDLIB+'DD_idl.so','CloseID',ID)
+      ID = -1L
+   endif
+return, B
+end
\ No newline at end of file
diff --git a/amda_plus/templates/thX_YYYY_n_init.pro b/amda_plus/templates/thX_YYYY_n_init.pro
new file mode 100644
index 0000000..7bf4bce
--- /dev/null
+++ b/amda_plus/templates/thX_YYYY_n_init.pro
@@ -0,0 +1,38 @@
+;--------------------------------------
+;   THA_ION_DENS_INIT  Level2
+;
+;   17 Oct 2007
+;
+;---------------------------------------
+
+pro thX_YYYY_n_init, LOG = log, LIN = lin, PSYM = psym, COLOR = color, AY1TITLE = AY1Title, $                     
+                     ; all additional keywords
+                    _extra = e
+
+common GraphC, graph, GraphN, Item
+
+pen = !dnc-1 & symbol = -3;
+ 
+ if (KEYWORD_SET(COLOR)) then pen = color; 
+ if (KEYWORD_SET(PSYM)) then symbol = psym;
+
+
+yTitle = 'THX YYYY N, cm!U-3'
+if (KEYWORD_SET(AY1TITLE)) then graph[GraphN].Ly.title = AY1Title $
+else graph[GraphN].Ly.title = yTitle
+
+if (KEYWORD_SET(LOG)) then AxisF = 'logaxis' $
+else AxisF = 'lineaxis, ' + string(Graph[GraphN].TotalTime);
+graph[GraphN].AxisF = AxisF;
+
+graph[GraphN].Type = 'FGM_T' 
+graph[GraphN].DataN = 1
+graph[GraphN].SetCommonF[0] = 'dens_YYYY_com, "X"' 
+graph[GraphN].GetDataF[0] ='get_dens_YYYY, "X"'
+graph[GraphN].DeltaT = (Graph[GraphN].TotalTime + 60.0D0) <  18000.0D0 
+ 
+
+graph[GraphN].PlotF = 'PlotScal_New, 0,' + string(pen)  + ',' + string(symbol);
+graph[GraphN].LastPlotF = 'nodatalast'
+return
+end
diff --git a/amda_plus/templates/thX_YYYY_pot_init.pro b/amda_plus/templates/thX_YYYY_pot_init.pro
new file mode 100644
index 0000000..5dc359c
--- /dev/null
+++ b/amda_plus/templates/thX_YYYY_pot_init.pro
@@ -0,0 +1,38 @@
+;--------------------------------------
+;   THA_ION_DENS_INIT  Level2
+;
+;   17 Oct 2007
+;
+;---------------------------------------
+
+pro thX_YYYY_pot_init, LOG = log, LIN = lin, PSYM = psym, COLOR = color, AY1TITLE = AY1Title, $                     
+                     ; all additional keywords
+                    _extra = e
+
+common GraphC, graph, GraphN, Item
+
+pen = !dnc-1 & symbol = -3;
+ 
+ if (KEYWORD_SET(COLOR)) then pen = color; 
+ if (KEYWORD_SET(PSYM)) then symbol = psym;
+
+
+yTitle = 'THX YYYY POT, V'
+if (KEYWORD_SET(AY1TITLE)) then graph[GraphN].Ly.title = AY1Title $
+else graph[GraphN].Ly.title = yTitle
+
+if (KEYWORD_SET(LOG)) then AxisF = 'logaxis' $
+else AxisF = 'lineaxis, ' + string(Graph[GraphN].TotalTime);
+graph[GraphN].AxisF = AxisF;
+
+graph[GraphN].Type = 'FGM_T' 
+graph[GraphN].DataN = 1
+graph[GraphN].SetCommonF[0] = 'pot_YYYY_com, "X"' 
+graph[GraphN].GetDataF[0] ='get_pot_YYYY, "X"'
+graph[GraphN].DeltaT = (Graph[GraphN].TotalTime + 60.0D0) <  18000.0D0 
+ 
+
+graph[GraphN].PlotF = 'PlotScal_New, 0,' + string(pen)  + ',' + string(symbol);
+graph[GraphN].LastPlotF = 'nodatalast'
+return
+end
diff --git a/amda_plus/templates/thX_YYYY_sp_init.pro b/amda_plus/templates/thX_YYYY_sp_init.pro
new file mode 100644
index 0000000..2109d67
--- /dev/null
+++ b/amda_plus/templates/thX_YYYY_sp_init.pro
@@ -0,0 +1,45 @@
+;--------------------------------------
+;   THA_ION_SPEC_INIT  Level2
+;
+;   22 Oct 2007
+;
+;---------------------------------------
+
+pro THX_YYYY_SP_INIT, LOG = log, LIN = lin, PSYM = psym, COLOR = color, AY1TITLE = AY1Title, $
+                     ; spectra
+                     MINCOUNT = minCount, MAXCOUNT = maxCount, BACKGRDCHAN = backgrdChan, BACKGRDVAL = backgrdVal, $
+                     CHANNEL = channel, $
+                     DELAY = delay, $
+                     ; all additional keywords
+                    _extra = e 
+
+common GraphC, graph, GraphN, Item
+
+pen = !dnc-1 & comp = 100 & symbol = -3;
+ 
+ if (KEYWORD_SET(COLOR)) then pen = color; 
+ if (KEYWORD_SET(PSYM)) then symbol = psym; 
+
+ 
+
+graph[GraphN].Type = 'FGM_T' 
+graph[GraphN].DataN = 1
+graph[GraphN].SetCommonF[0] = 'YYYY_sp_com, "X"' 
+graph[GraphN].GetDataF[0] ='get_YYYY_sp, "X"'
+graph[GraphN].DeltaT = (Graph[GraphN].TotalTime + 60.0D0) <  18000.0D0 
+graph[GraphN].Ly.title = 'THX YYYY !C Energy, eV'
+graph[GraphN].names = PTR_NEW(/ALLOCATE_HEAP)
+*(graph[GraphN].names) = 'log Flux'
+
+if (KEYWORD_SET(channel)) then begin
+	    if KEYWORD_SET(LOG) then graph[GraphN].AxisF = 'logaxis' $
+	    else graph[GraphN].AxisF = 'lineaxis, ' + string(Graph[GraphN].TotalTime)
+	    location = channel-1;
+	    graph[GraphN].PlotF = 'PlotScal_New, '+ string(location) +',' + string(pen) +',' + string(symbol)             
+	    graph[GraphN].Ly.title += '   ch ' + strtrim(string(location+1),1);
+endif else begin
+	    graph[GraphN].PlotF = 'PlotSpecThemisCesr, "YYYY"'
+endelse
+
+return
+end
diff --git a/amda_plus/templates/thX_YYYY_t_.pro b/amda_plus/templates/thX_YYYY_t_.pro
new file mode 100644
index 0000000..fe9ff54
--- /dev/null
+++ b/amda_plus/templates/thX_YYYY_t_.pro
@@ -0,0 +1,76 @@
+function THX_YYYY_T, StartTime, TimeInt, Time, RetSize, Sampling, close=close
+common GraphC, graph, GraphN
+common TYYYYTHX_COM, ID
+
+  
+   operation_mode = "YYYY";
+   if n_elements(ID) EQ 0 then ID = -1L
+   sampling = operation_mode EQ "peif" ?  96.27 : 3.0;
+   if (operation_mode eq "peif" OR operation_mode eq "peef") then  MaxSampling = 385.09;
+  
+   Size = long(graph[GraphN].DeltaT/sampling)
+     
+   Bdata=dblarr(3,Size)
+   Time=dblarr(Size)
+      
+   VI =  operation_mode EQ "peif" OR operation_mode eq "peef" ? 'thX:YYYY:all' : 'thX:YYYY:mom';
+
+   CONT:   
+   RetSize = call_external(!PROJLIB + 'libParam.so', 'getLocalData', $
+                          ID, VI, 'B_Temperature', StartTime, TimeInt, Size, Time, Bdata)
+  
+    if (Retsize eq -34) OR (Retsize eq -35) then begin  
+                   wait, 3               
+                   goto, CONT
+    endif 
+   
+   if (operation_mode EQ "peir" OR operation_mode EQ "peer") then begin
+	mode = fltarr(3,Size);
+	RetSize = call_external(!PROJLIB + 'libParam.so', 'getLocalData', $
+                             ID, VI, 'Mode', StartTime, TimeInt, Size, Time, mode);   
+   endif 
+
+   if (RetSize LE 0) then begin
+      Time = 0.D0
+      return, [0.0,0.0,0.0]
+   endif 
+  
+    Time=Time[0:Retsize-1]
+    Bdata=Bdata[*, 0:Retsize-1]
+   if (operation_mode EQ "peir") then begin
+  ; 1-Angle modes ....
+      num1 = where(mode[2,0:RetSize-1] eq 1, index1)
+      if (index1 gt 0) then Bdata[*,num1] = !Values.F_NAN; 
+      num3 = where(mode[2,0:RetSize-1] eq 3, index3)
+      if (index3 gt 0) then Bdata[*,num3] = !Values.F_NAN; 
+      num5 = where(mode[2,0:RetSize-1] eq 5, index5)
+      if (index5 gt 0) then Bdata[*,num5] = !Values.F_NAN;  
+   endif
+
+   if (operation_mode EQ "peer") then begin
+   ; 1-Angle modes ....
+      num1 = where(mode[2,0:RetSize-1] eq 1, index1)
+      if (index1 gt 0) then Bdata[*,num1] = !Values.F_NAN; 
+      num3 = where(mode[2,0:RetSize-1] eq 3, index3)
+      if (index3 gt 0) then Bdata[*,num3] = !Values.F_NAN; 
+   endif 
+   num_gap = where(finite(0,Bdata), Cntr)
+  
+   if Cntr le 0 then begin
+       Retsize = -999
+       Time = 0.D0
+       return, [0.0,0.0,0.0] 
+   endif
+   
+    Time=Time[num_gap]
+    Bdata=Bdata[*,num_gap]
+    Retsize=Cntr
+
+    B = float(Bdata)
+   
+   if KEYWORD_SET(CLOSE) then begin
+      error = call_external(!DDLIB+'DD_idl.so','CloseID',ID)
+      ID = -1L
+   endif
+return, B
+end
\ No newline at end of file
diff --git a/amda_plus/templates/thX_YYYY_t_Z_init.pro b/amda_plus/templates/thX_YYYY_t_Z_init.pro
new file mode 100644
index 0000000..2344fae
--- /dev/null
+++ b/amda_plus/templates/thX_YYYY_t_Z_init.pro
@@ -0,0 +1,18 @@
+;----------------ENVELOPE-------------------------
+; 
+pro THX_YYYY_t_Z_init,  FRAME=frame, LOG=log, LIN=lin, COLOR=color, PSYM=psym, AY1TITLE=aytitle, _extra=e 
+
+  comp = ['/x', '/y', '/z']
+
+  cmd = 'thX_YYYY_t_init, ' + string(comp[Z]);
+  if KEYWORD_SET(COLOR) then cmd += ',COLOR = '+ string(color);
+  if KEYWORD_SET(PSYM) then cmd += ',PSYM= ' + string(psym);
+  if KEYWORD_SET(LOG) then cmd += ',/LOG';
+  if KEYWORD_SET(LIN) then cmd += ',/LIN';
+  if KEYWORD_SET(AY1TITLE) then cmd += ',AY1TITLE='+string(ay1title);	 
+
+  R = execute(cmd)
+
+return
+end
+;------------------------------------------------------------
\ No newline at end of file
diff --git a/amda_plus/templates/thX_YYYY_t_init.pro b/amda_plus/templates/thX_YYYY_t_init.pro
new file mode 100644
index 0000000..16d2700
--- /dev/null
+++ b/amda_plus/templates/thX_YYYY_t_init.pro
@@ -0,0 +1,46 @@
+;-----------------THEMIS T_INIT--------------------------
+;         
+;-------------------------------------------------------
+pro thX_YYYY_t_INIT, LOG = log, LIN = lin, PSYM = psym, COLOR = color, AY1TITLE = AY1Title, $
+                      
+                     ; vector
+                     x = x, y = y, z = z, TOTAL = total, FRAME = frame, $
+                     
+                     ; all additional keywords
+                    _extra = e 
+
+common GraphC, graph, GraphN, Item
+
+names = ['T!DPERP1', 'T!DPERP2', 'T!DPAR']
+ 
+pen = !dnc-1 & comp = 100 & symbol = -3;
+ 
+ if (KEYWORD_SET(COLOR)) then pen = color; 
+ if (KEYWORD_SET(PSYM)) then symbol = psym;
+ 
+ytitle =   'THX YYYY !C T, eV' 
+if (KEYWORD_SET(AY1TITLE)) then graph[GraphN].Ly.title = AY1Title $
+else graph[GraphN].Ly.title = yTitle
+
+if (KEYWORD_SET(LOG)) then AxisF = 'logaxis' $
+else AxisF = 'lineaxis, ' + string(Graph[GraphN].TotalTime);
+graph[GraphN].AxisF = AxisF;
+
+if (KEYWORD_SET(x)) then comp = 0;
+if (KEYWORD_SET(y)) then comp = 1;
+if (KEYWORD_SET(z)) then comp = 2;
+if (KEYWORD_SET(TOTAL)) then comp = 3;
+
+graph[GraphN].names = PTR_NEW(/ALLOCATE_HEAP) 
+graph[GraphN].Type = 'HIAM_T' 
+graph[GraphN].DataN = 1
+graph[GraphN].SetCommonF[0] = 'YYYY_t_com, "X"'
+graph[GraphN].GetDataF[0] ='get_YYYY_t, "X"'
+graph[GraphN].DeltaT =  (graph[graphN].TotalTime+10.0D0)  <  18000.0D0
+ 
+*(graph[GraphN].names) = names 
+graph[GraphN].PlotF = (comp le 2) ? 'plotten_comp_new, 0, 3,'+string(comp)+',' +string(pen)+',' +string(symbol) : 'plotten, 0, 3'
+graph[GraphN].LastPlotF = 'nodatalast'
+return
+end
+;------------------------------------------------------------
diff --git a/amda_plus/templates/thX_YYYY_v_.pro b/amda_plus/templates/thX_YYYY_v_.pro
new file mode 100644
index 0000000..db18264
--- /dev/null
+++ b/amda_plus/templates/thX_YYYY_v_.pro
@@ -0,0 +1,76 @@
+function THX_YYYY_V, StartTime, TimeInt, Time, RetSize, Sampling, close=close
+common GraphC, graph, GraphN
+common VYYYYTHX_COM, ID
+
+  
+   operation_mode = "YYYY";
+   if n_elements(ID) EQ 0 then ID = -1L
+   sampling = operation_mode EQ "peif" ?  96.27 : 3.0;
+   if (operation_mode eq "peif" OR operation_mode eq "peef") then  MaxSampling = 385.09;
+  
+   Size = long(graph[GraphN].DeltaT/sampling)
+     
+   Bdata=dblarr(3,Size)
+   Time=dblarr(Size)
+      
+   VI =  operation_mode EQ "peif" OR operation_mode eq "peef" ? 'thX:YYYY:all' : 'thX:YYYY:mom';
+
+   CONT:   
+   RetSize = call_external(!PROJLIB + 'libParam.so', 'getLocalData', $
+                          ID, VI, 'Velocity', StartTime, TimeInt, Size, Time, Bdata)
+  
+    if (Retsize eq -34) OR (Retsize eq -35) then begin  
+                   wait, 3               
+                   goto, CONT
+    endif 
+   
+   if (operation_mode EQ "peir" OR operation_mode EQ "peer") then begin
+	mode = fltarr(3,Size);
+	RetSize = call_external(!PROJLIB + 'libParam.so', 'getLocalData', $
+                             ID, VI, 'Mode', StartTime, TimeInt, Size, Time, mode);   
+   endif 
+
+   if (RetSize LE 0) then begin
+      Time = 0.D0
+      return, [0.0,0.0,0.0]
+   endif 
+  
+    Time=Time[0:Retsize-1]
+    Bdata=Bdata[*, 0:Retsize-1]
+   if (operation_mode EQ "peir") then begin
+  ; 1-Angle modes ....
+      num1 = where(mode[2,0:RetSize-1] eq 1, index1)
+      if (index1 gt 0) then Bdata[*,num1] = !Values.F_NAN; 
+      num3 = where(mode[2,0:RetSize-1] eq 3, index3)
+      if (index3 gt 0) then Bdata[*,num3] = !Values.F_NAN; 
+      num5 = where(mode[2,0:RetSize-1] eq 5, index5)
+      if (index5 gt 0) then Bdata[*,num5] = !Values.F_NAN;  
+   endif
+
+   if (operation_mode EQ "peer") then begin
+   ; 1-Angle modes ....
+      num1 = where(mode[2,0:RetSize-1] eq 1, index1)
+      if (index1 gt 0) then Bdata[*,num1] = !Values.F_NAN; 
+      num3 = where(mode[2,0:RetSize-1] eq 3, index3)
+      if (index3 gt 0) then Bdata[*,num3] = !Values.F_NAN; 
+   endif 
+   num_gap = where(finite(0,Bdata), Cntr)
+  
+   if Cntr le 0 then begin
+       Retsize = -999
+       Time = 0.D0
+       return, [0.0,0.0,0.0] 
+   endif
+   
+    Time=Time[num_gap]
+    Bdata=Bdata[*,num_gap]
+    Retsize=Cntr
+
+    B = float(Bdata)
+   
+   if KEYWORD_SET(CLOSE) then begin
+      error = call_external(!DDLIB+'DD_idl.so','CloseID',ID)
+      ID = -1L
+   endif
+return, B
+end
\ No newline at end of file
diff --git a/amda_plus/templates/thX_YYYY_v_Z_init.pro b/amda_plus/templates/thX_YYYY_v_Z_init.pro
new file mode 100644
index 0000000..a23b72a
--- /dev/null
+++ b/amda_plus/templates/thX_YYYY_v_Z_init.pro
@@ -0,0 +1,18 @@
+;----------------ENVELOPE-------------------------
+; 
+pro THX_YYYY_v_Z_init,  FRAME=frame, LOG=log, LIN=lin, COLOR=color, PSYM=psym, AY1TITLE=aytitle, _extra=e 
+
+  comp = ['/x', '/y', '/z']
+
+  cmd = 'thX_YYYY_v_init, ' + string(comp[Z]);
+  if KEYWORD_SET(COLOR) then cmd += ',COLOR = '+ string(color);
+  if KEYWORD_SET(PSYM) then cmd += ',PSYM= ' + string(psym);
+  if KEYWORD_SET(LOG) then cmd += ',/LOG';
+  if KEYWORD_SET(LIN) then cmd += ',/LIN';
+  if KEYWORD_SET(AY1TITLE) then cmd += ',AY1TITLE='+string(ay1title);	 
+
+  R = execute(cmd)
+
+return
+end
+;------------------------------------------------------------
\ No newline at end of file
diff --git a/amda_plus/templates/thX_YYYY_v_init.pro b/amda_plus/templates/thX_YYYY_v_init.pro
new file mode 100644
index 0000000..b11430b
--- /dev/null
+++ b/amda_plus/templates/thX_YYYY_v_init.pro
@@ -0,0 +1,54 @@
+;-----------------THA V_INIT--------------------------
+; ---------------------------------------------------------
+pro thX_YYYY_v_init,   LOG = log, LIN = lin, PSYM = psym, COLOR = color, AY1TITLE = AY1Title, $
+                      
+                     ; vector
+                     x = x, y = y, z = z, TOTAL = total, FRAME = frame, $
+                     
+                     ; all additional keywords
+                    _extra = e
+
+common GraphC, graph, GraphN, Item
+  
+   names = ['V!Dx', 'V!Dy', 'V!Dz', 'V']
+   
+   
+frame = 'GSE'
+pen = !dnc-1 & comp = 100 & symbol = -3;
+ 
+ if (KEYWORD_SET(COLOR)) then pen = color; 
+ if (KEYWORD_SET(PSYM)) then symbol = psym;
+ 
+ytitle =  'THX YYYY !CV '+frame+', km/s'
+if (KEYWORD_SET(AY1TITLE)) then graph[GraphN].Ly.title = AY1Title $
+else graph[GraphN].Ly.title = yTitle
+
+if (KEYWORD_SET(LOG)) then AxisF = 'logaxis' $
+else AxisF = 'lineaxis, ' + string(Graph[GraphN].TotalTime);
+graph[GraphN].AxisF = AxisF;
+
+if (KEYWORD_SET(FRAME)) then begin 
+  if (frame eq "GSM") then graph[GraphN].ProcessF='gse2gsm';
+  if (frame eq "SM") then  graph[GraphN].ProcessF='gse2sm';
+endif else frame = LOCALFRAME;
+
+graph[GraphN].names = PTR_NEW(/ALLOCATE_HEAP)
+graph[GraphN].Type = 'FGM_T'
+graph[GraphN].DataN = 1
+graph[GraphN].SetCommonF[0] = 'YYYY_vel_com, "X"' 
+graph[GraphN].GetDataF[0] ='get_YYYY_vel, "X"'
+graph[GraphN].DeltaT =  (graph[graphN].TotalTime+10.0D0) <  18000.0D0
+if (KEYWORD_SET(x)) then comp = 0;
+if (KEYWORD_SET(y)) then comp = 1;
+if (KEYWORD_SET(z)) then comp = 2;
+if (KEYWORD_SET(TOTAL)) then comp = 3;
+
+  graph[GraphN].PlotF = comp eq 100 ? 'PlotVec': 'PlotVec_Comp_New, ' + string(comp) +','+ string(pen ) +','+ string(symbol)
+  graph[GraphN].names = PTR_NEW(/ALLOCATE_HEAP)
+ 
+*(graph[GraphN].names) = (comp le 3) ? names : names[0:2]
+
+graph[GraphN].LastPlotF = 'nodatalast'
+return
+end
+;------------------------------------------------------------
diff --git a/amda_plus/templates/thX_bh_Z_init.pro b/amda_plus/templates/thX_bh_Z_init.pro
new file mode 100644
index 0000000..99008d9
--- /dev/null
+++ b/amda_plus/templates/thX_bh_Z_init.pro
@@ -0,0 +1,18 @@
+;----------------ENVELOPE-------------------------
+; 
+pro THX_bh_Z_init,  FRAME=frame, LOG=log, LIN=lin, COLOR=color, PSYM=psym, AY1TITLE=aytitle, _extra=e 
+
+  comp = ['/x', '/y', '/z']
+
+  cmd = 'thX_bh_init, ' + string(comp[Z]);
+  if KEYWORD_SET(COLOR) then cmd += ',COLOR = '+ string(color);
+  if KEYWORD_SET(PSYM) then cmd += ',PSYM= ' + string(psym);
+  if KEYWORD_SET(LOG) then cmd += ',/LOG';
+  if KEYWORD_SET(LIN) then cmd += ',/LIN';
+  if KEYWORD_SET(AY1TITLE) then cmd += ',AY1TITLE='+string(ay1title);	 
+
+  R = execute(cmd)
+
+return
+end
+;------------------------------------------------------------
\ No newline at end of file
diff --git a/amda_plus/templates/thX_bh_init.pro b/amda_plus/templates/thX_bh_init.pro
new file mode 100644
index 0000000..4236134
--- /dev/null
+++ b/amda_plus/templates/thX_bh_init.pro
@@ -0,0 +1,54 @@
+;-----------------THA V_INIT--------------------------
+; ---------------------------------------------------------
+pro thX_bh_init,   LOG = log, LIN = lin, PSYM = psym, COLOR = color, AY1TITLE = AY1Title, $
+                      
+                     ; vector
+                     x = x, y = y, z = z, TOTAL = total, FRAME = frame, $
+                     
+                     ; all additional keywords
+                    _extra = e
+
+common GraphC, graph, GraphN, Item
+  
+   names = ['B!Dx', 'B!Dy', 'B!Dz', 'B']
+   
+   
+frame = 'GSE'
+pen = !dnc-1 & comp = 100 & symbol = -3;
+ 
+ if (KEYWORD_SET(COLOR)) then pen = color; 
+ if (KEYWORD_SET(PSYM)) then symbol = psym;
+ 
+ytitle =  'THX !CB '+frame+', km/s'
+if (KEYWORD_SET(AY1TITLE)) then graph[GraphN].Ly.title = AY1Title $
+else graph[GraphN].Ly.title = yTitle
+
+if (KEYWORD_SET(LOG)) then AxisF = 'logaxis' $
+else AxisF = 'lineaxis, ' + string(Graph[GraphN].TotalTime);
+graph[GraphN].AxisF = AxisF;
+
+if (KEYWORD_SET(FRAME)) then begin 
+  if (frame eq "GSM") then graph[GraphN].ProcessF='gse2gsm';
+  if (frame eq "SM") then  graph[GraphN].ProcessF='gse2sm';
+endif else frame = LOCALFRAME;
+
+graph[GraphN].names = PTR_NEW(/ALLOCATE_HEAP)
+graph[GraphN].Type = 'FGM_T'
+graph[GraphN].DataN = 1
+graph[GraphN].SetCommonF[0] = 'th_fgmh_com, "X"' 
+graph[GraphN].GetDataF[0] ='get_th_fgmh, "X"'
+graph[GraphN].DeltaT =  (graph[graphN].TotalTime+10.0D0) <  18000.0D0
+if (KEYWORD_SET(x)) then comp = 0;
+if (KEYWORD_SET(y)) then comp = 1;
+if (KEYWORD_SET(z)) then comp = 2;
+if (KEYWORD_SET(TOTAL)) then comp = 3;
+
+  graph[GraphN].PlotF = comp eq 100 ? 'PlotVec': 'PlotVec_Comp_New, ' + string(comp) +','+ string(pen ) +','+ string(symbol)
+  graph[GraphN].names = PTR_NEW(/ALLOCATE_HEAP)
+ 
+*(graph[GraphN].names) = (comp le 3) ? names : names[0:2]
+
+graph[GraphN].LastPlotF = 'nodatalast'
+return
+end
+;------------------------------------------------------------
diff --git a/amda_plus/templates/thX_el_sp_init.pro b/amda_plus/templates/thX_el_sp_init.pro
new file mode 100644
index 0000000..8f9edbe
--- /dev/null
+++ b/amda_plus/templates/thX_el_sp_init.pro
@@ -0,0 +1,46 @@
+;--------------------------------------
+;   THA_ION_SPEC_INIT  Level2
+;
+;   22 Oct 2007
+;
+;---------------------------------------
+
+pro THX_EL_SP_INIT, LOG = log, LIN = lin, PSYM = psym, COLOR = color, AY1TITLE = AY1Title, $
+                     ; spectra
+                     MINCOUNT = minCount, MAXCOUNT = maxCount, BACKGRDCHAN = backgrdChan, BACKGRDVAL = backgrdVal, $
+                     CHANNEL = channel, $
+                     DELAY = delay, $
+                     ; all additional keywords
+                    _extra = e 
+
+common GraphC, graph, GraphN, Item
+
+pen = !dnc-1 & comp = 100 & symbol = -3;
+ 
+ if (KEYWORD_SET(COLOR)) then pen = color; 
+ if (KEYWORD_SET(PSYM)) then symbol = psym; 
+
+ 
+
+graph[GraphN].Type = 'FGM_T' 
+graph[GraphN].DataN = 1
+graph[GraphN].SetCommonF[0] = 'th_e_sp_com, "X"' 
+graph[GraphN].GetDataF[0] ='get_th_e_sp, "X"'
+graph[GraphN].DeltaT = (Graph[GraphN].TotalTime + 60.0D0) <  18000.0D0 
+graph[GraphN].Ly.title = 'THX PEEF !C Energy, eV'
+graph[GraphN].names = PTR_NEW(/ALLOCATE_HEAP)
+*(graph[GraphN].names) = 'log Flux'
+
+if (KEYWORD_SET(channel)) then begin
+	    if KEYWORD_SET(LOG) then graph[GraphN].AxisF = 'logaxis' $
+	    else graph[GraphN].AxisF = 'lineaxis, ' + string(Graph[GraphN].TotalTime)
+	    location = channel-1;
+	    graph[GraphN].PlotF = 'PlotScal_New, '+ string(location) +',' + string(pen) +',' + string(symbol)             
+	    graph[GraphN].Ly.title += '   ch ' + strtrim(string(location+1),1);
+endif else begin
+	    graph[GraphN].PlotF = 'PlotSpecThemisEl, X'
+            if KEYWORD_SET(LIN) then  graph[GraphN].PlotF += ', LIN=LIN';
+endelse
+
+return
+end
diff --git a/amda_plus/templates/ws_.pro b/amda_plus/templates/ws_.pro
new file mode 100644
index 0000000..4eda373
--- /dev/null
+++ b/amda_plus/templates/ws_.pro
@@ -0,0 +1,156 @@
+; $Id: ws_.pro,v 1.3 2010/09/07 13:43:59 budnik Exp $
+;------------------------------------------------------
+function WS_, StartTime, TimeInt, Time, TimeSize, Sampling, Close = Close
+common GraphC, graph, GraphN
+common InternalCommon, FinalTime, indices 
+;-----------------------------------------------------------------
+ FillValue = !Values.F_NAN;
+ THRESH = 5.0
+
+  get_lun,unit
+  openr,unit, 'WS.res',error=err
+  if (err EQ 0) then begin
+    temp = ' '   
+    readf, unit, temp
+    readf, unit, TimeAver
+  endif
+  close, unit
+  free_lun, unit
+ 
+    Params = strsplit(temp, " ", /EXTRACT);
+    N_Param = N_elements(Params)
+
+    if (TimeAver GE graph[graphN].DeltaT) then begin
+      StartTimeD = call_external(!DDLIB + 'DD_idl.so', 'GetDTime', StartTime, /D_VALUE);
+      StartTimeReal =  call_external(!DDLIB + 'DD_idl.so', 'GetTime', StartTimeD - double(TimeAver*2.5), /S_VALUE);
+      TimeIntD = call_external(!DDLIB + 'DD_idl.so', 'GetDTime', TimeInt, /D_VALUE);
+      TimeIntD +=  double(TimeAver*5.0)
+      TimeIntReal = call_external(!DDLIB + 'DD_idl.so', 'GetTime', TimeIntD, /S_VALUE);
+   endif else begin     
+       TimeIntD = graph[graphN].DeltaT;
+       StartTimeReal = StartTime
+       TimeIntReal = TimeInt;
+   endelse
+
+   record_local = {      name : '   ',             $ ; procedure name             
+		  size : [1L,1L],                  $ ; Time Dimension, VectorSize
+                  Sampling : 1.0 ,                 $ 
+		  time : PTR_NEW(),                $
+	          data : PTR_NEW(),                $
+		  LastTime: PTR_NEW(),             $ 
+		  LastData: PTR_NEW()              $
+		  } 
+
+   
+  N_Param = N_elements(Params)
+  DataCommon = REPLICATE(record_local,N_Param)
+   
+   
+  for i = 0, N_Param-1 do begin     
+   DataCommon[i].name = Params[i]+'_'
+   DataCommon[i].time = PTR_NEW(/ALLOCATE_HEAP)
+   DataCommon[i].data = PTR_NEW(/ALLOCATE_HEAP)
+   DataCommon[i].LastTime = PTR_NEW(/ALLOCATE_HEAP)
+   DataCommon[i].LastData = PTR_NEW(/ALLOCATE_HEAP) 
+  endfor
+   
+   for i = 0, N_Param-1 do begin     
+     if(Graph[GraphN].CurrentSec EQ Graph[GraphN].Sections-1) then $
+          *(DataCommon[i].data) = Call_Function(DataCommon[i].name, StartTimeReal, TimeIntReal, Time, RetSize, Sampling, /close) $
+     else *(DataCommon[i].data) = Call_Function(DataCommon[i].name, StartTimeReal, TimeIntReal, Time, RetSize, Sampling)
+    
+     Yinfo = size(*DataCommon[i].data)
+     if (RetSize GT 0) then begin
+;
+; Different processing if 1D array and RetSize = 1
+;
+       if  (Yinfo[0] eq 1) then begin
+         if (RetSize gt 1) then begin 
+             (*DataCommon[i].data) = reform((*DataCommon[i].data), 1, RetSize);
+              DataCommon[i].size[1] = 1;
+         endif else (*DataCommon[i].data) = reform((*DataCommon[i].data), Yinfo[1], RetSize);
+       endif else DataCommon[i].size[1] = Yinfo[1]
+
+    ;   if (RetSize GT 0) then begin          
+     ;    if  Yinfo[0] eq 1 then begin
+     ;      (*DataCommon[i].data) = reform((*DataCommon[i].data), 1, RetSize);
+    ;       DataCommon[i].size[1] = 1;
+    ;     endif else DataCommon[i].size[1] = Yinfo[1]
+                  
+        *(DataCommon[i].Time) = Time; 
+        
+        if (N_elements(*(DataCommon(i).LastTime)) GT 0) then $
+         if (*(DataCommon(i).LastTime) LT Time[0]) then begin       
+          *(DataCommon(i).Time) = [*(DataCommon(i).LastTime),Time]
+           TempArr = fltarr(DataCommon(i).size(1),Retsize+1)
+           TempArr(*,0) = *(DataCommon(i).LastData)
+           TempArr(*,1:*) = *(DataCommon(i).data)
+           *(DataCommon(i).data) = TempArr
+           *(DataCommon(i).LastTime) = Time(RetSize-1) 
+           *(DataCommon(i).LastData) = (*DataCommon(i).data)(*,RetSize-1)
+            RetSize  +=  1  
+        endif  else begin         
+  ;      (*DataCommon(i).Data) = [*(DataCommon(i).LastData), *(DataCommon(i).data)]  
+          *(DataCommon(i).LastTime) = Time(RetSize-1) 
+          *(DataCommon(i).LastData) = (*DataCommon(i).data)(*,RetSize-1)
+        endelse        
+       endif else if (Yinfo[1] gt 1) then DataCommon[i].size[1] = Yinfo[1]
+       
+       DataCommon(i).size(0) = RetSize
+       DataCommon(i).Sampling = Sampling
+       TempArr = 0.0
+   endfor
+
+   
+ ;     print, ' SECTIONS', Graph(GraphN).CurrentSec, Graph(GraphN).Sections
+   
+ ;================= Reference Time ===========================
+   StartTimeD = call_external(!DDLIB+'DD_idl.so','GetDTime',StartTimeReal, /D_VALUE)
+   TimeIntD =  call_external(!DDLIB+'DD_idl.so','GetDTime',TimeIntReal, /D_VALUE)
+   TimeSize = long(TimeIntD/TimeAver) + long(TimeInt mod TimeAver GT TimeAver/4.0)
+   FinalTime = dindgen(TimeSize)*TimeAver + StartTimeD+TimeAver/2.0;
+   FinalPar = fltarr(TimeSize) 
+   Flag = intarr(TimeSize)
+
+
+   function_calcul = 'FinalPar = WS_calcul(Y00';
+
+   for i = 0, N_Param - 1 do begin
+ 
+       Y = reform(replicate(FillValue,DataCommon[i].size[1]*TimeSize),DataCommon[i].size[1], TimeSize);              
+       if (DataCommon[i].size[0] GT 1) then begin
+	    if (TimeAver GE DataCommon[i].Sampling*2.0) then $
+		  averaging_,*(DataCommon[i].time), *(DataCommon[i].data), FinalTime, Y, Flag $
+	    else  $
+		  interpolation_,*(DataCommon[i].time), *(DataCommon[i].data), DataCommon[i].sampling*Thresh, FinalTime, Y, Flag;    
+       endif
+       res = execute('Y'+ string(i, format='(i2.2)') + '= Y');
+       if (i gt 0) then function_calcul += ',Y'+ string(i, format='(i2.2)')
+   endfor
+
+     function_calcul += ')';
+     res = execute(function_calcul);
+;print, function_calcul
+    
+ ; print, ' In Get ',Graph(GraphN).CurrentSec, Graph(GraphN).Sections    
+ if(Graph(GraphN).CurrentSec EQ Graph(GraphN).Sections-1) then  $
+
+  for i = 0, N_Param-1 do begin 
+     if ptr_valid(DataCommon(i).data) then ptr_free,  DataCommon(i).data 
+     if ptr_valid(DataCommon(i).time) then  ptr_free, DataCommon(i).time     
+   endfor 
+    
+ ; Graph(GraphN).DataFlags(0) = 1
+ ; Graph(GraphN).ErrorFlag    = 0
+     
+        
+  ; if (RetSize LE 0) then begin
+  ;    Time = 0.D0
+ ;     return, EmptyData
+ ;  endif
+     
+
+  Time = FinalTime; 
+return, float(FinalPar)
+end
+
diff --git a/amda_plus/templates/ws_com.pro b/amda_plus/templates/ws_com.pro
new file mode 100755
index 0000000..718500b
--- /dev/null
+++ b/amda_plus/templates/ws_com.pro
@@ -0,0 +1,71 @@
+; $Id: ws_com.pro,v 1.3 2010/03/15 13:55:28 budnik Exp $
+;--------------------------------------
+;   COMPOUND_COMMON
+;
+; Tue Jun 28 16:32:21 CEST 2005
+; TEMPLATE for WorkSpace Variable Common
+;---------------------------------------
+
+ pro WS_COM
+ 
+common WS_Common, N_Param, TimeAver, DataCommon, Final
+common GraphC, graph, GraphN, Item
+common record, Record
+
+ FillValue = !Values.F_NAN;-1.e31
+;-------------------- Read resource file named "compound.res"--------------
+  get_lun,unit
+  openr,unit, 'WS.res',error=err
+  if (err EQ 0) then begin
+    temp = ' '   
+    readf, unit, temp
+    readf, unit, TimeAver
+  endif
+  close, unit
+  free_lun,unit
+  
+ ; Params = parser(temp,'WS')
+  Params = strsplit(temp, " ", /EXTRACT);
+
+  record_local = {      name : '   ',             $ ; procedure name             
+		  size : [1L,1L],                 $ ; Time Dimension, VectorSize
+                  Sampling : 1.0 ,                $ 
+		  time : PTR_NEW(),               $
+	          data : PTR_NEW(),               $
+		  LastTime: PTR_NEW(),            $ 
+		  LastData: PTR_NEW()             $
+		  } 
+
+   
+  N_Param = N_elements(Params)
+  DataCommon = REPLICATE(record_local,N_Param)
+   
+   
+  for i = 0, N_Param-1 do begin     
+   DataCommon[i].name = Params[i]+'_'
+   DataCommon[i].time = PTR_NEW(/ALLOCATE_HEAP)
+   DataCommon[i].data = PTR_NEW(/ALLOCATE_HEAP)
+   DataCommon[i].LastTime = PTR_NEW(/ALLOCATE_HEAP)
+   DataCommon[i].LastData = PTR_NEW(/ALLOCATE_HEAP) 
+  endfor
+ 
+;---------------------- General Structure ------------------------- 
+  Final = record
+  Final.DefSize = long(Graph[GraphN].DeltaT/TimeAver + 1)
+  Final.Sampling = TimeAver  
+  Graph[GraphN].FillValue[Item] = FillValue
+
+  Final.Time = PTR_NEW(/ALLOCATE_HEAP)
+  Final.Val = PTR_NEW(/ALLOCATE_HEAP)
+  Final.LastTime = PTR_NEW(/ALLOCATE_HEAP)
+  Final.LastVal = PTR_NEW(/ALLOCATE_HEAP)
+ 
+  Graph[GraphN].Time[Item] =  Final.Time
+  Graph[GraphN].Val[Item] = Final.Val
+
+  if (Graph[GraphN].Step GT TimeAver*2.0) then begin
+    *(Final.Time) = indgen(Graph[GraphN].ppp)*Graph[GraphN].Step + Graph[GraphN].Step/2.0
+    *(Final.Val)  =  replicate(FillValue, Graph[GraphN].ppp)
+  endif   
+ return
+ end
diff --git a/amda_plus/templates/ws_init.pro b/amda_plus/templates/ws_init.pro
new file mode 100755
index 0000000..680cb3b
--- /dev/null
+++ b/amda_plus/templates/ws_init.pro
@@ -0,0 +1,35 @@
+; $Id: ws_init.pro,v 1.4 2010/08/31 12:17:28 budnik Exp $
+;--------------------------------------
+;   COMPOUND_INIT
+;
+; Tue Jun 28 16:32:21 CEST 2005
+; TEMPLATE for WorkSpace variable INIT
+;---------------------------------------
+
+pro WS_INIT,  LOG = log, LIN = lin, DELAY = delay, PSYM = psym, COLOR = color, AY1TITLE = AY1Title, _EXTRA = e
+
+
+common GraphC, graph, GraphN, Item
+
+pen = !dnc-1  & symbol = -3;
+
+if (KEYWORD_SET(COLOR)) then pen = color; 
+if (KEYWORD_SET(PSYM)) then symbol = psym;
+
+if (KEYWORD_SET(AY1TITLE)) then graph[GraphN].Ly.title = AY1Title $
+else graph[GraphN].Ly.title = 'TTT'; 
+
+graph[GraphN].Type = 'FGM_T' 
+graph[GraphN].DataN = 1
+graph[GraphN].SetCommonF[0] = 'WS_com' 
+graph[GraphN].GetDataF[0] ='getWS'  ;
+graph[GraphN].DeltaT = (Graph[GraphN].TotalTime + 60.0D0) <  86400.0D0
+
+if KEYWORD_SET(LOG) then graph[GraphN].AxisF = "logaxis" $
+    else graph[GraphN].AxisF = 'lineaxis,' + string(Graph[GraphN].TotalTime)
+graph[GraphN].PlotF =  'PlotScal_New, 0,' + string(pen)  + ',' + string(symbol);
+graph[GraphN].LastPlotF = 'nodatalast'
+
+if KEYWORD_SET(DELAY) then Graph[GraphN].Lag[0] = double(delay);
+return
+end
\ No newline at end of file
diff --git a/amda_plus/templates/wsd_.pro b/amda_plus/templates/wsd_.pro
new file mode 100755
index 0000000..253d25d
--- /dev/null
+++ b/amda_plus/templates/wsd_.pro
@@ -0,0 +1,114 @@
+; $Id: wsd_.pro,v 1.3 2010/09/07 13:43:59 budnik Exp $
+;------------------------------------------------------
+function WSDPARAM_, StartTime, TimeInt, Time, RetSize, Sampling, Close = Close
+common GraphC, graph, GraphN
+
+; DD_SHORT   4
+; DD_INT     1
+; DD_FLOAT   2
+; DD_DOUBLE  3
+; DD_CHAR    0
+; BYTE  5
+;-----------------------------------------------------------------
+
+;------------GET ALL THE INFO for parameter build-----------------
+   
+  paramName = WSDPARAMNAME
+  Sampling  = float(WSDSAMPLING)  
+  dataType = WSDDATATYPE
+  dims = long(WSDSIZE)
+  FillValue  = WSDFILLVALUE
+  format = WSDFORMAT
+  vi =  WSDVI 
+
+    case dataType of
+      "FLOAT":    EmptyData =  fltarr(dims)
+      "DOUBLE":   EmptyData =  dblarr(dims)
+      "INTEGER" : EmptyData =  intarr(dims)
+    endcase 
+    
+  ; to rewrite as internal idl routines    
+   spawn, "php ./getViStart.php " + vi, ViStart
+   spawn, "php ./getViStop.php "  + vi, ViStop
+    
+   ViString = call_external(!DDLIB + "DD_idl.so", 'GetTime', double(ViStart), /S_VALUE)
+
+  ; print, "VISTART ",ViString , " Start ", StartTime  
+
+   StartDouble = call_external(!DDLIB + "DD_idl.so", 'GetDTime', StartTime, /D_VALUE)
+   IntDouble = call_external(!DDLIB + "DD_idl.so", 'GetDTime', TimeInt, /D_VALUE)
+
+   if ((double(ViStart) gt StartDouble+IntDouble) or (StartDouble gt double(ViStop))) then begin       
+       RetSize = -10L;
+       Time = 0.D0
+       return, EmptyData     
+   endif
+ 
+  spawn, "php ./getFileNames.php "+ vi + " " + string(StartDouble,format='(f16.0)') + " " + string(IntDouble), FileNames
+ ;  help, FileNames 
+  files = strsplit(FileNames,",",/EXTRACT);
+
+   if (N_elements(files) eq 1 and files[0] eq "") then begin
+       Retsize = -999L
+       Time = 0.D0
+       return, EmptyData     
+   endif 
+  
+   Size = long(IntDouble/Sampling) + 2L; 
+      
+   case dataType of
+      "FLOAT":    Data =  fltarr(dims,size)
+      "DOUBLE":   Data =  dblarr(dims,size)
+      "INTEGER" : Data =  intarr(dims,size)
+    endcase    
+         
+   Time=dblarr(Size)
+    
+;   print,"FILES ",files, N_elements(files), " VI ", Vi 
+   RetSize = -1L;
+
+   if (format eq "cdf") then RetSize = GetCdfVar(files, paramName, dims, StartDouble, IntDouble, Time, Data);
+   if (format eq "txt") then RetSize = GetTxtVar(files, paramName, dims, StartDouble, IntDouble, Time, Data); 
+   if (format eq "cef") then RetSize = GetCefVar(files, paramName, dims, StartDouble, IntDouble, Time, Data);
+   if (format eq "nc")  then RetSize = GetNcVar(files, paramName, dims, StartDouble, IntDouble, Time, Data);
+   if (format eq "vot") then begin
+       spawn, "php ./getVotVar.php " + strjoin(files,",") + " " + paramName + " " + string(dims) + " " + string(StartDouble,format='(f16.0)') + " " + string(IntDouble), result;
+       RETSIZE = n_elements(result);
+
+       for i = 0L, RETSIZE - 1 do begin
+         arr = strsplit(result[i]," ",/EXTRACT);
+         Time[i] = arr[0];
+         if ( dims eq 1 ) then begin
+            Data[i] = arr[1]; 
+         endif else begin
+             Data[*,i] = arr[1:N_Elements(arr)-1];
+         endelse
+      endfor
+   endif
+ 
+   if (RetSize LE 0) then begin
+      Time = 0.D0
+      return, EmptyData
+   endif
+   
+   Time=Time[0:Retsize-1]
+ 
+   if (dims eq 1) then Data = reform(Data[0:Retsize-1],1,Retsize) $
+   else Data = Data[*,0:Retsize-1]
+   
+   if finite(FillValue) then num_gap = where(Data[0,*] ne FillValue, Cntr) $
+   else num_gap = where(finite(Data[0,*]), Cntr)
+   
+   if Cntr le 0 then begin
+       Retsize = -999L
+       Time = 0.D0
+       return, EmptyData
+   endif
+   
+    Time = Time[num_gap]
+    Data = Data[*,num_gap]
+    Retsize=Cntr
+   
+return, float(Data)
+end
+
diff --git a/amda_plus/templates/wsd_com.pro b/amda_plus/templates/wsd_com.pro
new file mode 100755
index 0000000..050d6a6
--- /dev/null
+++ b/amda_plus/templates/wsd_com.pro
@@ -0,0 +1,39 @@
+; $Id: wsd_com.pro,v 1.2 2010/09/17 10:02:27 budnik Exp $
+;--------------------------------------
+
+ pro WSDPARAM_com
+ 
+common WSDPARAM_Common, Final
+common GraphC, Graph, GraphN, Item
+common record, Record
+
+;------------- Get Info --------------------------------
+    
+  Sampling = float(WSDSAMPLING)
+  maxSampling = float(WSDMAXSAMPLING)
+  dims = long(WSDSIZE)
+  FillValue = WSDFILLVALUE 
+
+;---------------------- General Structure ------------------------- 
+  Final = record
+  Final.DefSize = long(Graph[GraphN].DeltaT/Sampling + 2)
+  Final.Sampling = Sampling 
+   
+  Graph[GraphN].FillValue[Item] = FillValue
+  Graph[GraphN].Sampling[Item] = Sampling
+  if (maxSampling GT  Sampling) then Graph[GraphN].MaxSampling[Item] = maxSampling;
+
+  Final.Time = PTR_NEW(/ALLOCATE_HEAP)
+  Final.Val = PTR_NEW(/ALLOCATE_HEAP)
+  Final.LastTime = PTR_NEW(/ALLOCATE_HEAP)
+  Final.LastVal = PTR_NEW(/ALLOCATE_HEAP)
+ 
+  Graph[GraphN].Time[Item] =  Final.Time
+  Graph[GraphN].Val[Item] = Final.Val
+
+  if (Graph[GraphN].Step GT Sampling*2.0) then begin
+    *(Final.Time) = indgen(Graph[GraphN].ppp)*Graph[GraphN].Step + Graph[GraphN].Step/2.0
+    *(Final.Val)  =  replicate(FillValue, dims*Graph[GraphN].ppp)
+  endif   
+ return
+ end
diff --git a/amda_plus/templates/wsd_init.pro b/amda_plus/templates/wsd_init.pro
new file mode 100755
index 0000000..b935023
--- /dev/null
+++ b/amda_plus/templates/wsd_init.pro
@@ -0,0 +1,78 @@
+; $Id: wsd_init.pro,v 1.1 2010/08/31 12:17:56 budnik Exp $
+;--------------------------------------
+
+pro WSDPARAM_INIT, LOG = log, LIN = lin, PSYM = psym, COLOR = color, AY1TITLE = AY1Title, $
+                     ; spectra
+                     MINCOUNT = minCount, MAXCOUNT = maxCount, BACKGRDCHAN = backgrdChan, BACKGRDVAL = backgrdVal, $
+                     CHANNEL = channel, Energy = energy, MINENERGY = minenergy, MAXENERGY = maxenergy, $
+                     ; vector
+                     X = x, Y = y, Z = z, TOTAL = total, FRAME = frame, $
+                     DELAY = delay, $
+                     ; orbit
+                     CYL = cyl, TICKS = ticks, TIMESERIES = timeseries, GLOBAL = global, $
+                     ; all additional keywords
+                    _EXTRA = e  
+
+common GraphC, graph, GraphN, Item
+
+tensor = WSDTENSOR
+yTitle = WSDYTITLE
+legend = WSDLEGEND
+dims   = WSDSIZE
+units = WSDUNITS;
+plottype = WSDPLOTTYPE
+
+component = ["X", "Y","Z"];
+
+pen = !dnc-1 & comp = 100 & symbol = -3;
+ 
+ if (KEYWORD_SET(COLOR)) then pen = color; 
+ if (KEYWORD_SET(PSYM)) then symbol = psym;
+ 
+ if (KEYWORD_SET(X)) then comp = 0
+ if (KEYWORD_SET(Y)) then comp = 1
+ if (KEYWORD_SET(Z)) then comp = 2
+
+ax = KEYWORD_SET(LOG) ? 1 : 0
+
+graph[GraphN].Type = 'FGM_T' 
+graph[GraphN].DataN = 1
+graph[GraphN].SetCommonF[0] = 'WSDPARAM_com' 
+graph[GraphN].GetDataF[0] ='getWSDPARAM'
+graph[GraphN].DeltaT = (Graph[GraphN].TotalTime + 60.0D0) <  86410.0D0 
+graph[GraphN].Ly.title = yTitle + ',' + units;
+
+graph[GraphN].AxisF = KEYWORD_SET(LOG) ?  'logaxis' : 'lineaxis, ' + string(Graph[GraphN].TotalTime)
+
+case tensor of
+  0:  PlotF = 'PlotScal_New, 0,' + string(pen)  + ',' + string(symbol);
+  1:  begin
+        if (strlowcase(plottype) eq 'spectra') then begin 
+                graph[GraphN].names = PTR_NEW(/ALLOCATE_HEAP);
+                *(graph[GraphN].names) = yTitle + ',' + units;;
+                PlotF = 'PlotWsdSpec, /LIN, /LLIN';
+        endif else begin
+            PlotF = comp eq 100 ? 'PlotVec': 'PlotVec_Comp_New, ' + string(comp) +','+ string(pen ) +','+ string(symbol);
+            graph[GraphN].names = PTR_NEW(/ALLOCATE_HEAP)
+            if (comp gt 2) then *(graph[GraphN].names) = strsplit(legend,';',/EXTRACT) $
+            else *(graph[GraphN].names) = component[comp];
+       endelse
+      end 
+ else: begin
+        if (strlowcase(plottype) eq 'spectra') then begin 
+                graph[GraphN].names = PTR_NEW(/ALLOCATE_HEAP);
+                *(graph[GraphN].names) = yTitle + ',' + units;;
+                PlotF = 'PlotWsdSpec, /LIN';
+        endif else begin
+                PlotF = comp eq 100 ? 'PlotTen, 0,' +string(dims) : 'PlotTen_Comp_New, 0,'+string(dims)+','+string(comp)+','+ string(pen) +',' + string(symbol)
+                 graph[GraphN].names = PTR_NEW(/ALLOCATE_HEAP)
+                 *(graph[GraphN].names) = strsplit(legend,';',/EXTRACT)
+        endelse
+      end
+endcase
+
+
+graph[GraphN].PlotF = PlotF
+if KEYWORD_SET(DELAY) then Graph[GraphN].Lag[0] = double(delay);
+return
+end
diff --git a/desktop.php b/desktop.php
new file mode 100644
index 0000000..8e4ce34
--- /dev/null
+++ b/desktop.php
@@ -0,0 +1,222 @@
+<?php
+ /**
+ * @file index.php
+ * @version $Id: desktop.php 2915 2015-05-19 10:34:38Z elena $
+ *
+ *
+ */
+  
+  require_once('php/config.php');
+  
+  // error_reporting(E_ALL);
+  if (!isset($_POST['username'])) die('<a href="index.html">LOGIN SVP</a>');
+ 
+  $usrMgr = new UserMgr();
+  $sessionID = $usrMgr->init();
+ 
+
+ //AKKA - Delete immediate results is now done in AmdaApp.js
+ //       ToDo : do the same mechanism for simu files and simuparams
+//delete immediate results if logout was not proper  
+  //$jobsMgr = new JobsMgr();
+  //$jobsMgr->deleteTmp();
+  
+//delete simu files & clean simuparams in base.xml and WSparam.xml  
+  $myBaseMgr = new BaseManager();
+  $myBaseMgr->delSimuFiles("mywsrdata"); 
+  $myBaseMgr->delSimuFiles("mysimudata");
+?>
+
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+<head>
+    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+    <meta http-equiv="PRAGMA" content="NO-CACHE">
+    <meta http-equiv="CACHE-CONTROL" content="NO-CACHE">
+    <meta http-equiv="EXPIRES" content="-1">
+
+    <title>AMDA-NG4/Migration Step - Virtual Desktop Application</title>
+
+    <link rel="stylesheet" type="text/css" href="js/resources/css/desktop.css" />
+    <link rel="stylesheet" type="text/css" href="js/resources/css/amda.css" />
+    <link rel="stylesheet" type="text/css" href="js/lib/ext/resources/css/ext-all.css" />
+    <link rel="icon" href="favicon.ico" type="image/x-icon">
+    <link rel="shortcut icon" href="favicon.ico" type="image/x-icon"> 
+    
+<!--     <script type="text/javascript" src="js/lib/ext/builds/ext-core.js"></script> -->
+<!--     <script type="text/javascript" src="js/lib/ext/bootstrap.js"></script> -->
+    <script type="text/javascript" src="js/lib/ext/ext-all-debug-w-comments.js"></script> 
+<!-- 	<script type="text/javascript" src="js/lib/ext/ext-all.js"></script>  -->
+<!--	<script type="text/javascript" src="js/lib/ext/ext-all-dev.js"> -->
+   <script type="text/javascript" src="js/lib/ext-override.js"></script>
+
+	
+<!-- Direct API -->
+    <script type="text/javascript" src="php/api.php"></script> 
+
+   <!-- This extjs script is not automatically loaded (probably due to a bug on extjs 4) -->
+    <!--   <script type="text/javascript" src="js/lib/ux/Browser.js"></script> -->
+
+  
+  <!--  <script src="help/movies/Resources/scripts/prototype.js" language="JavaScript" type="text/javascript"></script>
+    <script src="help/movies/Resources/scripts/qtp_poster.js" language="JavaScript" type="text/javascript"></script>          
+    <link href="help/movies/Resources/stylesheets/qtp_poster.css" rel="StyleSheet" type="text/css" /> --->
+
+
+    <script type="text/javascript">
+    //Enable dynamic loading for improved debugging support
+        Ext.Loader.setConfig({enabled: true});
+ 
+        Ext.Loader.setPath({
+            'Ext'               : 'js/lib/ext/src',
+            'Ext.ux.desktop'    : 'js/lib/ux/desktop',
+            'Ext.ux'            : 'js/lib/ext/examples/ux',
+            'MyDesktop'         : 'js/lib/ux/desktop/exampleModules',
+            'extensions'        : 'js/lib/ux',
+            'Ext.ux.amdaGrid'   : 'js/lib/ux/grid',
+            'samp'              : 'js/lib/SAMP',
+            'amdaDesktop'       : 'js/app/controllers',
+            'amdaUI'            : 'js/app/views',
+            'amdaModel'         : 'js/app/models',
+            'amdaReader'        : 'js/app/stores',
+            'amdaApp'           : 'js/app'
+        });
+
+        Ext.require('amdaDesktop.AmdaStateProvider');
+        Ext.direct.Manager.addProvider(Ext.app.REMOTING_API);
+
+        Ext.require('amdaDesktop.JobsMgr');
+        Ext.require('amdaApp.AmdaApp');
+
+        var myDesktopApp;
+ 
+        var sessionID = '<?php echo $sessionID; ?>';
+        var isFirstVisit =  '<?php echo $usrMgr->isFirst; ?>';
+        var isSpecialInfo =  '<?php echo $usrMgr->isSpecialInfo; ?>';
+        var isNewInfo =  '<?php echo $usrMgr->isNewInfo; ?>';        
+        var AMDAVERSION =  '<?php if (defined('AMDA_VERSION')) echo AMDA_VERSION;?>';
+ 
+        var wsSize =  '<?php echo $usrMgr->getWsSize(); ?>';
+        var diskQuota = '<?php echo DISK_QUOTA; ?>';
+
+        var freeSpace = diskQuota - wsSize;
+
+        var helpDir = 'help/';
+
+        var isGuest = sessionID.match('guest');
+
+        var guestSessionDuration = '<?php echo GuestSessionDuration*60; ?>'; // in secs
+        var maxGuestTimeInterval = '<?php echo MaxGuestTimeInterval; ?>'; // in days
+ 
+        //create mask class (LoadMask for elements has been deprecated, use Ext.dom.Element.mask & Ext.dom.Element.unmask)
+        var AMDAMask = new Ext.Class({
+            show : function(tabId)
+            {
+                var msg = 'Processing...Please wait';  
+                if (tabId)   
+                    msg += ' <br/> <p align="center"><input id="killopBtn" type="button" value="Kill process" /></p>';
+
+                var mask = Ext.getBody().mask(msg);
+
+                mask.dom.style.zIndex = '99998';
+ 
+                var maskMsg = Ext.DomQuery.select('div[class=x-mask-msg]');
+                if (maskMsg)
+                    maskMsg = maskMsg[0];
+    
+                if (maskMsg)
+                    maskMsg.style.zIndex = '99999';
+                if (tabId)
+                {
+                    var killBtn = Ext.get('killopBtn');
+                    var multiPlotWin =  myDesktopApp.desktop.getWindow(amdaDesktop.InteractivePlotMgr.id);
+                    // multiPlotWin was closed - single plot mode                   
+                    if (!multiPlotWin) {
+                        var tabIds = tabId;
+                    }
+                    else {
+                        var multiCheckedTabs = multiPlotWin.items.items[0].checkedTabs;
+
+                        if (multiCheckedTabs && multiCheckedTabs.length > 1) 
+                            var tabIds = multiCheckedTabs; 
+                        else 
+                            var tabIds = tabId;
+                    }
+                    killBtn.on('click',function(e,t) {                     
+                        AmdaAction.killPlotRequest({tabId : tabIds},function (result, e)
+                        {
+                            var t = e.getTransaction();
+                            if (e.status)
+                            { 
+                                if (!result)
+                                    myDesktopApp.errorMsg('Cannot kill process');
+                            }
+                            else
+                                myDesktopApp.errorMsg(e.message);
+
+                            var multiPlotWin =  myDesktopApp.desktop.getWindow(amdaDesktop.InteractivePlotMgr.id);
+                            if (multiPlotWin && tabIds.length > 1)  
+                                  multiPlotWin.items.items[0].checkBoxGroup.reset();
+                            
+                        },this);  
+                   
+                    },
+                    this);
+
+                }
+            },
+            hide : function()
+            {
+                Ext.getBody().unmask();
+                this.tid = null;
+            },
+            isMasked : function()
+            {
+                return Ext.getBody().isMasked();
+            }
+        });
+ 
+        var loadMask;
+
+        Ext.onReady(function () { 
+            //TODO update jobsStatus onLogin             
+            Ext.Ajax.extraParams = {sessionID : sessionID};
+            Ext.Ajax.timeout = 600000;
+            Ext.Ajax.on('requestexception', function(conn, response, options, e) {                   
+                if (loadMask && loadMask.isMasked())
+                    loadMask.hide();
+               if (response && response.statusText)
+                    myDesktopApp.errorMsg(response.statusText);
+                else
+                    myDesktopApp.errorMsg('Communication failure');
+                });
+            // backspace key disable           
+            Ext.EventManager.on(window, 'keydown', function(e, t) {
+                if (e.getKey() == e.BACKSPACE && ((!/^input$/i.test(t.tagName) && !/^textarea$/i.test(t.tagName)) || t.disabled || t.readOnly)) {
+                     e.stopEvent();
+                }
+            });
+
+            var stateProvider = Ext.create('amdaDesktop.AmdaStateProvider');
+
+            stateProvider.on({
+                scope: this,
+                afterrestore: function(provider)
+                {
+                    amdaDesktop.JobsMgr.getStatus(); 	    
+                    Ext.state.Manager.setProvider(provider);
+                    myDesktopApp = new amdaApp.AmdaApp(); 
+                    // global message bus
+                    myDesktopApp.EventManager = new Ext.util.Observable();
+                    // not needed - for documentation only
+                    myDesktopApp.EventManager.addEvents('refresh');
+                    loadMask = new AMDAMask();
+                }
+            });
+
+            stateProvider.restoreState();
+        });
+    </script>
+</head>
+<body/> 
+</html>
diff --git a/favicon.ico b/favicon.ico
new file mode 100644
index 0000000..2421d8b
Binary files /dev/null and b/favicon.ico differ
diff --git a/generic_data/Feedback/Feedback.xml b/generic_data/Feedback/Feedback.xml
new file mode 100644
index 0000000..8185d10
--- /dev/null
+++ b/generic_data/Feedback/Feedback.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<root>
+  
+  <issue user="ToDo" userAgent="Chrome - WebKit - 534.10" interface="General" IP="195.83.102.217" date="2011-10-17" subject="Bug" read="" xml:id="0">fsdfsdf</issue>
+  <issue user="cecconi" userAgent="Safari - WebKit - 536.26.17" interface="Plot_Data" IP="145.238.174.117" date="2012-12-17" subject="Bug" read="" xml:id="1">J'essaye de tracer les données "cass_lp_ne" (via drap and drop). Un seul panel de plot.
+Je selectionne une date de début 2005/02/16 00:00:00 et durée: 2j
+
+Je clique sur "Plot"
+
+Ca grise l'écran pendant une fraction de seconde avec la mini-fenêtre avec le truc qui tourne. Et puis ça revient, sans afficher la fenêtre de plot.</issue>
+  
+</root>
diff --git a/generic_data/Filters/filters_info.xml b/generic_data/Filters/filters_info.xml
new file mode 100644
index 0000000..dc948c6
--- /dev/null
+++ b/generic_data/Filters/filters_info.xml
@@ -0,0 +1,223 @@
+<?xml version="1.0"?>
+<filters>
+  <filter id='param' name='Local Parameters'>
+    <conditions>
+      <condition id='tar' name='Target' type='select' selectList='target'>
+      	<ops>
+          <op id='eq' name='='/>
+          <op id='ne' name='!='/>
+        </ops>
+      </condition>
+      <condition id='sta' name='Start Time' type='date'>
+        <ops>
+          <op id='le' name='&lt;='/>
+          <op id='ge' name='&gt;='/>
+        </ops>
+      </condition>
+      <condition id='sto' name='Stop Time' type='date'>
+        <ops>
+          <op id='le' name='&lt;='/>
+          <op id='ge' name='&gt;='/>
+        </ops>
+      </condition>
+      <condition id='mis' name='Mission Name' type='string'>
+        <ops>
+          <op id='eq' name='='/>
+          <op id='ne' name='!='/>
+        </ops>
+      </condition>
+      <condition id='pro' name='Provider' type='string'>
+        <ops>
+          <op id='eq' name='='/>
+          <op id='ne' name='!='/>
+        </ops>
+      </condition>
+      <condition id='typ' name='Data type' type='select' selectList='dataType'>
+        <ops>
+          <op id='eq' name='='/>
+          <op id='ne' name='!='/>
+        </ops>
+      </condition>
+    </conditions>
+  </filter>
+  <filter id='simu' name='Simulation Parameters'>
+    <conditions>
+      <condition id='dprod' name='Data Productor' type='select' selectList='dprod'>
+      	<ops>
+          <op id='eq' name='='/>
+          <op id='ne' name='!='/>
+        </ops>
+      </condition>
+      <condition id='simt' name='Simulation Type' type='select' selectList='simt'>
+      	<ops>
+          <op id='eq' name='='/>
+          <op id='ne' name='!='/>
+        </ops>
+      </condition>
+      <condition id='reld' name='Release Date' type='date'>
+      	<ops>
+          <op id='le' name='&lt;='/>
+          <op id='ge' name='&gt;='/>
+        </ops>
+      </condition>
+      <condition id='simReg' name='Simulation Region' type='select' selectList='target'>
+      	<ops>
+          <op id='eq' name='='/>
+          <op id='ne' name='!='/>
+        </ops>
+      </condition> 
+      <condition id='tempDepend' name='Temporal Dependence' type='select' selectList='YesNo'>
+      	<ops>
+          <op id='eq' name='='/>
+          <op id='ne' name='!='/>
+        </ops>
+      </condition> 
+      <condition id='rating' name='Likelihood Rating' type='select' selectList='LikelihoodRating'>
+      	<ops>
+          <op id='eq' name='='/>
+          <op id='ne' name='!='/>
+        </ops>
+      </condition>
+      <condition id='GridCellSize_X' name='Grid Cell Size X' type='string'>
+      	<ops>
+          <op id='le' name='&lt;='/>
+          <op id='ge' name='&gt;='/>
+        </ops>
+      </condition>
+      <condition id='GridCellSize_Y' name='Grid Cell Size Y' type='string'>
+      	<ops>
+          <op id='le' name='&lt;='/>
+          <op id='ge' name='&gt;='/>
+        </ops>
+      </condition>
+      <condition id='GridCellSize_Z' name='Grid Cell Size Z' type='string'>
+      	<ops>
+          <op id='le' name='&lt;='/>
+          <op id='ge' name='&gt;='/>
+        </ops>
+      </condition>
+      <condition id='FieldValue_Bx' name='Field Value Bx' type='string'>
+      	<ops>
+          <op id='le' name='&lt;='/>
+          <op id='ge' name='&gt;='/>
+        </ops>
+      </condition>
+      <condition id='FieldValue_By' name='Field Value By' type='string'>
+      	<ops>
+          <op id='le' name='&lt;='/>
+          <op id='ge' name='&gt;='/>
+        </ops>
+      </condition>
+      <condition id='FieldValue_Bz' name='Field Value Bz' type='string'>
+      	<ops>
+          <op id='le' name='&lt;='/>
+          <op id='ge' name='&gt;='/>
+        </ops>
+      </condition>
+    
+      <condition id='Solar_Wind_electrons-Density' name='Solar Wind electrons Density' type='string'>
+      	<ops>
+          <op id='le' name='&lt;='/>
+          <op id='ge' name='&gt;='/>
+        </ops>
+      </condition>
+      <condition id='Solar_Wind_electrons-Temperature' name='Solar Wind electrons Temperature' type='string'>
+      	<ops>
+          <op id='le' name='&lt;='/>
+          <op id='ge' name='&gt;='/>
+        </ops>
+      </condition>
+      <condition id='Solar_Wind_electrons-FlowSpeed' name='Solar Wind electrons FlowSpeed' type='string'>
+      	<ops>
+          <op id='le' name='&lt;='/>
+          <op id='ge' name='&gt;='/>
+        </ops>
+      </condition>
+      <condition id='Solar_Wind_H-Density' name='Solar Wind H Density' type='string'>
+      	<ops>
+          <op id='le' name='&lt;='/>
+          <op id='ge' name='&gt;='/>
+        </ops>
+      </condition>
+      <condition id='Solar_Wind_H-Temperature' name='Solar Wind H Temperature' type='string'>
+      	<ops>
+          <op id='le' name='&lt;='/>
+          <op id='ge' name='&gt;='/>
+        </ops>
+      </condition>
+      <condition id='Solar_Wind_H-FlowSpeed' name='Solar Wind H FlowSpeed' type='string'>
+      	<ops>
+          <op id='le' name='&lt;='/>
+          <op id='ge' name='&gt;='/>
+        </ops>
+      </condition>
+      <condition id='Solar_Wind_He-Density' name='Solar Wind He Density' type='string'>
+      	<ops>
+          <op id='le' name='&lt;='/>
+          <op id='ge' name='&gt;='/>
+        </ops>
+      </condition>
+      <condition id='Solar_Wind_He-Temperature' name='Solar Wind He Temperature' type='string'>
+      	<ops>
+          <op id='le' name='&lt;='/>
+          <op id='ge' name='&gt;='/>
+        </ops>
+      </condition>
+      <condition id='SolarUVFlux' name='Solar UV Flux' type='string'>
+      	<ops>
+          <op id='le' name='&lt;='/>
+          <op id='ge' name='&gt;='/>
+        </ops>
+      </condition>
+      </conditions>
+    </filter>
+    
+
+  <!-- <filter id='tt' name='Time Tables'>
+    <conditions>
+      <condition id='tim' name='Time' type='date'>
+        <ops>
+          <op id='in' name='E'/>
+          <op id='ni' name='!E'/>
+        </ops>
+      </condition>
+      <condition id='nam' name='Name' type='string'>
+        <ops>
+          <op id='eq' name='='/>
+          <op id='ne' name='!='/>
+        </ops>
+      </condition>
+      <condition id='des' name='Description' type='string'>
+        <ops>
+          <op id='in' name='E'/>
+          <op id='ni' name='!E'/>
+        </ops>
+      </condition>
+    </conditions>
+  </filter>
+  <filter id='sim' name='Simulations'>
+    <conditions>
+      <condition id='tar' name='Target' type='target'>
+        <ops>
+          <op id='eq' name='='/>
+          <op id='ne' name='!='/>
+        </ops>
+      </condition>
+      <condition id='sta' name='Release Time' type='date'>
+        <ops>
+          <op id='le' name='&lt;='/>
+          <op id='ge' name='&gt;='/>
+        </ops>
+      </condition>
+      <condition id='imf_bx' name='Bx Value' type='number'>
+        <ops>
+          <op id='eq' name='='/>
+          <op id='ne' name='!='/>
+          <op id='le' name='&lt;='/>
+          <op id='ge' name='&gt;='/>
+        </ops>
+      </condition>
+    </conditions>
+  </filter>
+  -->
+</filters>
\ No newline at end of file
diff --git a/generic_data/Filters/filters_selectLists.xml b/generic_data/Filters/filters_selectLists.xml
new file mode 100644
index 0000000..d3c3326
--- /dev/null
+++ b/generic_data/Filters/filters_selectLists.xml
@@ -0,0 +1,70 @@
+<?xml version="1.0"?>
+<selectLists>
+  <selectList id='target'>
+    <elts>
+      <elt id='none' name='None'/>
+      <elt id='Heliosphere' name='Heliosphere'/>
+      <elt id='Heliosphere.NearEarth' name='Heliosphere - Near Earth'/>
+      <elt id='Heliosphere.Remote1AU' name='Heliosphere - Remote 1 AU'/>
+      <elt id='Mercury' name='Mercury'/>
+      <elt id='Mercury.Magnetosphere' name='Mercury - Magnetosphere'/>
+      <elt id='Venus' name='Venus'/>
+      <elt id='Earth' name='Earth'/>
+      <elt id='Earth.Magnetosphere' name='Earth - Magnetosphere'/>
+      <elt id='Earth.Magnetosheath' name='Earth - Magnetosheath'/>
+      <elt id='Earth.Surface' name='Earth - Surface'/>
+      <elt id='Moon' name='Moon'/>
+      <elt id='Mars' name='Mars'/>
+      <elt id='Jupiter' name='Jupiter'/>
+      <elt id='Callisto' name='Callisto'/>
+      <elt id='Europa' name='Europa'/>
+      <elt id='Ganymede' name='Ganymede'/>
+      <elt id='Io' name='Io'/>
+      <elt id='Saturn' name='Saturn'/>
+      <elt id='Saturn.Magnetosphere' name='Saturn - Magnetosphere'/>
+      <elt id='Uranus' name='Uranus'/>
+      <elt id='Neptune' name='Neptune'/> 
+      <elt id='Comet' name='Comet'/>
+    </elts>
+  </selectList>
+  <selectList id='dataType'>
+    <elts>
+      <elt id='mag' name='Magnetometer'/>
+      <elt id='eph' name='Ephemeris'/>
+      <elt id='pls' name='Plasma'/>
+      <elt id='eps' name='Energetic Particules'/>
+      <elt id='wav' name='Wave'/>
+    </elts>
+  </selectList>
+  <selectList id='dprod'>
+    <elts>
+      <elt id='LATMOS' name='LATMOS'/>
+      <elt id='FMI_GUMICS' name='FMI_GUMICS'/>
+      <elt id='FMI_HYBRID' name='FMI_HYBRID'/>
+      <elt id='SINP' name='SINP'/>
+    </elts>
+  </selectList>
+  <selectList id='simt'>
+    <elts>
+      <elt id='Hybrid' name='Hybrid'/>
+      <elt id='MHD' name='MHD'/>
+      <elt id='PIC' name='PIC'/>
+      <elt id='Test_Particle' name='Test_Particle'/>
+      <elt id='Paraboloid' name='Paraboloid'/> 
+    </elts>
+  </selectList>
+  <selectList id='YesNo'>
+    <elts>
+      <elt id='Yes' name='Yes'/>
+      <elt id='No' name='No'/>
+    </elts>
+  </selectList>
+  <selectList id='LikelihoodRating'>
+    <elts>
+      <elt id='Probable' name='Probable'/>
+      <elt id='Strong' name='Strong'/>
+      <elt id='Unlikely' name='Unlikely'/>
+      <elt id='Weak' name='Weak'/>
+    </elts>
+  </selectList>
+</selectLists>
diff --git a/generic_data/Functions/constants.xml b/generic_data/Functions/constants.xml
new file mode 100755
index 0000000..a8dca04
--- /dev/null
+++ b/generic_data/Functions/constants.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0"?>
+<constants>
+  <constant info="astronomical unit" name="AU" units="m">1.49598e+11</constant>
+  <constant info="Boltzmann constant" name="k" units="J/K">1.38054e-23</constant>
+  <constant info="kelvin to electron-volt" name="K2eV" units="eV/K">8.622e-5</constant>
+  <constant info="electron-volt to kelvin" name="eV2K" units="K/eV">1.160e4</constant>
+  <constant info="proton mass" name="m_p" units="kg">1.67e-27</constant>
+  <constant info="electron mass" name="m_e" units="kg">9.1091e-31</constant>
+  <constant info="speed of light in vacuum" name="c" units="m/s">2.99792e+08</constant>
+  <constant info="elementary charge" name="q_e" units="C">1.6021e-19</constant>
+  <constant info='electric constant' name="epsilon_0" units="F/m">8.85416e-12</constant>
+  <constant info='magnetic constant' name="mu_0" units="H/m">1.25664e-06</constant>
+  <constant info="pi" name="pi">3.14159</constant>
+  <constant info="rad2deg" name="rad2deg" units="deg/rad">57.2958</constant>
+  <constant info="deg2rad" name="deg2rad" units="rad/deg">0.0174533</constant>
+  <constant info="gravitational constant" name="G" units="m3/kg/s2">6.674e-11</constant>
+  <constant info="acceleration of gravity at Earth" name="g" units="m/s2">9.81</constant>
+  <constant info="Planck constant" name="h" units="Js">6.626e-34</constant>
+  <constant info="Avogadro number" name="NA" units="1/mol">6.0221367e+23</constant>
+  <constant info="Mercury equatorial radius" name="Rme" units="m">2.4397e+06</constant>
+  <constant info="Venus equatorial radius" name="Rv" units="m">6.0518e+06</constant>
+  <constant info="Earth equatorial radius" name="Re" units="m">6.3712e+06</constant>  
+  <constant info="Mars equatorial radius" name="Rma" units="m">3.3962e+06</constant>
+  <constant info="Jupiter equatorial radius" name="Rj" units="m">71.492e+06</constant>
+  <constant info="Saturn equatorial radius" name="Rs" units="m">60.268e+06</constant>
+  <constant info="Uranus equatorial radius" name="Ru" units="m">25.559+06</constant>
+  <constant info="Neptune equatorial radius" name="Rn" units="m">24.764+06</constant>
+  <constant info="Moon equatorial radius" name="Rmo" units="m">1.738e+06</constant>
+  <constant info="Pluto equatorial radius" name="Rpl" units="m">1.195e+06</constant>
+  <constant info="Sun equatorial radius" name="Rsun" units="m">6.95e+08</constant>
+</constants>
diff --git a/generic_data/Functions/functions.xml b/generic_data/Functions/functions.xml
new file mode 100644
index 0000000..22155dc
--- /dev/null
+++ b/generic_data/Functions/functions.xml
@@ -0,0 +1,143 @@
+<?xml version="1.0"?>
+<functions>
+  <function name="mean_(,)" args="1" kind="time">
+    <prompt>input averaging time in secs</prompt>
+    <info_brief>average</info_brief>
+    <new_kernel>#sampling_classic</new_kernel>
+  </function> 
+  <function name="median_(,)" args="1" kind="time">
+    <prompt>input averaging time in secs</prompt>
+    <info_brief>median average</info_brief>
+  </function>
+  <function name="rms_(,)" args="1" kind="time">
+    <prompt>input averaging time in secs</prompt>
+    <info_brief>root mean square</info_brief>
+  </function>   
+  <function name="min_(,)" args="1" kind="time">
+    <prompt>input window time in secs</prompt>
+    <info_brief> IDL min() function</info_brief>
+  </function> 
+  <function name="max_(,)" args="1" params="1" kind="time">
+    <prompt>input window time in secs</prompt>
+    <info_brief> IDL max() function</info_brief>
+  </function>
+  <function name="var_(,)" args="1" kind="time">
+    <prompt>input window time in secs</prompt>
+    <info_brief> IDL variance() function</info_brief>
+  </function>
+   <function name="skew_(,)" args="1" kind="time">
+    <prompt>input window time in secs</prompt>
+    <info_brief> IDL skewness() function</info_brief>
+  </function>
+  <function name="mean_sm_(,)" args="1" kind="sliding">
+    <prompt>input averaging time in secs</prompt>
+    <info_brief>average</info_brief>
+	<new_kernel>#sliding_average</new_kernel>
+  </function> 
+  <function name="rms_sm_(,)" args="1" kind="sliding">
+    <prompt>input averaging time in secs</prompt>
+    <info_brief>root mean square</info_brief>
+  </function>   
+  <function name="min_sm_(,)" args="1" kind="sliding">
+    <prompt>input window time in secs</prompt>
+    <info_brief> IDL min() function</info_brief>
+  </function> 
+  <function name="max_sm_(,)" args="1" params="1" kind="sliding">
+    <prompt>input window time in secs</prompt>
+    <info_brief> IDL max() function</info_brief>
+  </function>
+  <function name="var_sm_(,)" args="1" kind="sliding">
+    <prompt>input window time in secs</prompt>
+    <info_brief> IDL variance() function</info_brief>
+  </function>
+   <function name="skew_sm_(,)" args="1" kind="sliding">
+    <prompt>input window time in secs</prompt>
+    <info_brief> IDL skewness() function</info_brief>
+  </function>
+   <function name="smooth_(,)" args="1" kind="sliding">
+    <prompt>input averaging time in secs</prompt>
+    <info_brief>smooths with a boxcar average</info_brief>
+	<new_kernel>#boxcar</new_kernel>
+   </function> 
+   <function name="shiftN_(,)" args="1" kind="amda">
+    <prompt>input number of points  N to delay by</prompt>
+    <info_brief>Delays array by N points back (N &lt; 0) and forth (N &gt; 0)</info_brief>
+  </function>
+  <function name="shiftT_(,)" args="1" kind="amda">
+    <prompt>input time interval T in secs to delay by</prompt>
+    <info_brief>Delays array by T secs back (T &lt; 0) and forth (T &gt; 0))</info_brief>
+	<new_kernel>#timeShift</new_kernel>
+   </function>
+   <function name="gsegsm_()" argv="vector" kind="amda">
+     <prompt/>
+     <info_brief>GSE to GSM transformation</info_brief>
+   </function>
+   <function name="gsesm_()"  argv="vector" kind="amda">
+     <prompt/>
+     <info_brief>GSE to SM transformation</info_brief>
+   </function>
+   <function name="abs()" kind="idl">
+     <info_brief>Absolute value</info_brief>
+	 <new_kernel>abs</new_kernel>
+   </function>
+   <function name="acos()" kind="idl">
+     <info_brief>Arc-cosine</info_brief>
+	 <new_kernel>acos</new_kernel>
+   </function>
+   <function name="alog()" kind="idl">
+     <info_brief>Natural logarithm</info_brief>
+	 <new_kernel>log</new_kernel>
+   </function>
+   <function name="alog10()" kind="idl">
+     <info_brief>Logarithm to the base 10</info_brief>
+	 <new_kernel>log10</new_kernel>
+   </function>
+   <function name="asin()" kind="idl">
+     <info_brief>Arc-sine</info_brief>
+	 <new_kernel>asin</new_kernel>
+   </function>
+   <function name="atan()" kind="idl">
+     <info_brief>Arc-tangent</info_brief>
+	 <new_kernel>atan</new_kernel>
+   </function>
+   <function name="cos()" kind="idl">
+     <info_brief>cosine</info_brief>
+	 <new_kernel>cos</new_kernel>
+   </function>
+   <function name="cosh()" kind="idl">
+     <info_brief>Hyperbolic cosine</info_brief>
+	 <new_kernel>cosh</new_kernel>
+   </function>
+   <function name="deriv_()" kind="idl">
+     <prompt/>
+     <info_brief>IDL deriv() function with possibly unequal point spacing</info_brief>
+	 <new_kernel>#deriv</new_kernel>
+   </function>
+   <function name="exp()" kind="idl">
+     <info_brief>Natural exponential function</info_brief>
+	 <new_kernel>exp</new_kernel>
+   </function>
+   <function name="fix()" kind="idl">
+     <info_brief>Integer</info_brief>
+   </function>
+   <function name="sin()" kind="idl">
+     <info_brief>Sine</info_brief>
+	 <new_kernel>sin</new_kernel>
+   </function>
+   <function name="sinh()" kind="idl">
+     <info_brief>Hyperbolic sine</info_brief>
+	 <new_kernel>sinh</new_kernel>
+   </function>
+   <function name="tan()" kind="idl">
+     <info_brief>Tangent</info_brief>
+	 <new_kernel>tan</new_kernel>
+   </function>
+   <function name="tanh()" kind="idl">
+     <info_brief>Hyperbolic tangent</info_brief>
+	 <new_kernel>tanh</new_kernel>
+   </function>
+   <function name="sqrt()" kind="idl">
+     <info_brief>Square root</info_brief>
+	 <new_kernel>sqrt</new_kernel>
+   </function>
+</functions>
diff --git a/generic_data/Hst/hstVOtable-jupiter.xml b/generic_data/Hst/hstVOtable-jupiter.xml
new file mode 100644
index 0000000..3ca21b8
--- /dev/null
+++ b/generic_data/Hst/hstVOtable-jupiter.xml
@@ -0,0 +1,9652 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<VOTABLE version="v1.0">
+
+ <DESCRIPTION>
+
+   Mikulski Archive for Space Telescopes (MAST)    archive.stsci.edu
+
+   send questions to: archive@stsci.edu
+
+ </DESCRIPTION>
+
+<DEFINITIONS>
+
+  <COOSYS ID="myJ2000" system="eq_FK5" equinox="2000." epoch="2000."/>
+
+</DEFINITIONS>
+
+<RESOURCE type="results">
+
+<INFO name="QUERY_STATUS" value="OK"/>
+
+<PARAM ID="sci_pep_id" name="sci_pep_id" value="13035,12883,12244,11649,11645,11539,11085,10871,10862,10507,10506,10301,10140,10083,9941,9685,9556,9296,9211,8657,8171,8108,7939,7308,6743,6531,6291,6145,5828,5757,5424,5417,5414,5348,5217,5167,4601,4580,4005,4001,1286"/>
+
+<PARAM ID="ordercolumn1" name="ordercolumn1" value="sci_start_time"/>
+
+<PARAM ID="ordercolumn2" name="ordercolumn2" value="sci_targname"/>
+
+<PARAM ID="ordercolumn3" name="ordercolumn3" value="sci_data_set_name"/>
+
+<PARAM ID="max_records" name="max_records" value="2000"/>
+
+<PARAM ID="verb" name="verb" value="1"/>
+
+<PARAM ID="coordformat" name="coordformat" value="sex"/>
+
+<PARAM ID="mission" name="mission" value="hst"/>
+
+<PARAM ID="target" name="target" value=""/>
+
+<PARAM ID="found_rows" name="found_rows" value="1584"/>
+
+<TABLE name="HST">
+
+<DESCRIPTION>MAST HST Search: 1584 row(s) returned!</DESCRIPTION>
+
+<FIELD name="Dataset" datatype="char" ucd="ID_MAIN" arraysize="*"><DESCRIPTION>Data set name First character indicates instrument; L=COS; I=WFC3; J=ACS; N=NICMOS; O=STIS; U=WFPC2; W=WFPC; X=FOC; Y=FOS; Z=GHRS; F=FGS; V=HSP;
+
+   </DESCRIPTION>
+
+</FIELD>
+
+<FIELD name="Target Name" datatype="char" ucd="ID_TARGET" arraysize="*"><DESCRIPTION>Observer assigned target name; uppercase; no blank characters;  spaces sometimes filled with - ; use with wildcards
+
+   </DESCRIPTION>
+
+</FIELD>
+
+<FIELD name="RA (J2000)" datatype="double" ucd="POS_EQ_RA_MAIN" unit="degrees" ref="myJ2000"><DESCRIPTION>Right Ascension (J2000)
+
+   </DESCRIPTION>
+
+</FIELD>
+
+<FIELD name="Dec (J2000)" datatype="double" ucd="POS_EQ_DEC_MAIN" unit="degrees" ref="myJ2000"><DESCRIPTION>Declination (J2000)
+
+   </DESCRIPTION>
+
+</FIELD>
+
+<FIELD name="Ref" datatype="int" ucd="REFER_CODE"><DESCRIPTION>The number of known literature references associated with the listed proposal ID (HST) or data set name.
+
+   </DESCRIPTION>
+
+</FIELD>
+
+<FIELD name="Start Time" datatype="char" ucd="TIME_DATE" arraysize="*"><DESCRIPTION>Observation start time
+
+   </DESCRIPTION>
+
+</FIELD>
+
+<FIELD name="Stop Time" datatype="char" ucd="TIME_DATE" arraysize="*"><DESCRIPTION>Observation stop time
+
+   </DESCRIPTION>
+
+</FIELD>
+
+<FIELD name="Exp Time" datatype="float" ucd="TIME_EXPTIME" unit="seconds"><DESCRIPTION>Exposure time
+
+   </DESCRIPTION>
+
+</FIELD>
+
+<FIELD name="Instrument" datatype="char" ucd="INST_ID" arraysize="*"><DESCRIPTION>Instrument used
+
+   </DESCRIPTION>
+
+</FIELD>
+
+<FIELD name="Apertures" datatype="char" ucd="INST_APERT" arraysize="*"><DESCRIPTION>Aperture configuration See  &amp;#60;a href=&amp;#34;/hst/aperturelist.html&amp;#34;&amp;#62; a complete list&amp;#60;/a&amp;#62;
+
+   </DESCRIPTION>
+
+</FIELD>
+
+<FIELD name="Filters/Gratings" datatype="char" ucd="INST_FILTER" arraysize="*"><DESCRIPTION>Filter used. See &lt;a href="/hst/filterlist.html"&gt;a more complete list&lt;/a&gt; Sometimes combined so wildcard search may be needed
+
+   </DESCRIPTION>
+
+</FIELD>
+
+<FIELD name="Proposal ID" datatype="int" ucd="OBS_ID"><DESCRIPTION>Integer assign to each proposal
+
+   </DESCRIPTION>
+
+</FIELD>
+
+<FIELD name="Release Date" datatype="char" ucd="TIME_DATE" arraysize="*"><DESCRIPTION>Date data become publicly available
+
+   </DESCRIPTION>
+
+</FIELD>
+
+<FIELD name="Preview Name" datatype="char" ucd="ID_DATA" arraysize="*"><DESCRIPTION>Preview name (generally the same as the data set name)
+
+   </DESCRIPTION>
+
+</FIELD>
+
+<FIELD name="High-Level Science Products" datatype="int"><DESCRIPTION>Number of known High Level Science Products
+
+   </DESCRIPTION>
+
+</FIELD>
+
+<DATA>
+
+<TABLEDATA>
+
+<TR>
+
+<TD>Z2NO0101T</TD><TD>IO</TD><TD/><TD/><TD>0</TD><TD/><TD/><TD/><TD>HRS   </TD><TD>2.0</TD><TD>MIRROR-N2</TD><TD>5167</TD><TD>1996-04-17 12:12:01</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2NO0701T</TD><TD>IO</TD><TD/><TD/><TD>0</TD><TD/><TD/><TD/><TD>HRS   </TD><TD>2.0</TD><TD>MIRROR-N2</TD><TD>5167</TD><TD>1996-04-17 15:10:17</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2NO0A01T</TD><TD>IO</TD><TD/><TD/><TD>0</TD><TD/><TD/><TD/><TD>HRS   </TD><TD>2.0</TD><TD>MIRROR-N2</TD><TD>5167</TD><TD>1996-04-18 13:22:48</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2NO1701P</TD><TD>IO</TD><TD/><TD/><TD>0</TD><TD/><TD/><TD/><TD>HRS   </TD><TD>2.0</TD><TD>MIRROR-N2</TD><TD>5167</TD><TD>1997-04-12 19:16:15</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2O50101T</TD><TD>IO</TD><TD/><TD/><TD>1</TD><TD/><TD/><TD/><TD>HRS   </TD><TD>2.0</TD><TD>MIRROR-N2</TD><TD>5348</TD><TD>1996-07-28 14:32:21</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2O50103T</TD><TD>IO</TD><TD/><TD/><TD>1</TD><TD/><TD/><TD/><TD>HRS   </TD><TD>2.0</TD><TD>MIRROR-N2</TD><TD>5348</TD><TD>1996-07-29 13:23:54</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2O50401T</TD><TD>IO</TD><TD/><TD/><TD>1</TD><TD/><TD/><TD/><TD>HRS   </TD><TD>2.0</TD><TD>MIRROR-N2</TD><TD>5348</TD><TD>1996-07-29 12:25:55</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2O50403T</TD><TD>IO</TD><TD/><TD/><TD>1</TD><TD/><TD/><TD/><TD>HRS   </TD><TD>2.0</TD><TD>MIRROR-N2</TD><TD>5348</TD><TD>1996-07-30 16:15:24</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2O50701T</TD><TD>IO</TD><TD/><TD/><TD>1</TD><TD/><TD/><TD/><TD>HRS   </TD><TD>2.0</TD><TD>MIRROR-N2</TD><TD>5348</TD><TD>1996-07-29 19:14:50</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2O50703T</TD><TD>IO</TD><TD/><TD/><TD>1</TD><TD/><TD/><TD/><TD>HRS   </TD><TD>2.0</TD><TD>MIRROR-N2</TD><TD>5348</TD><TD>1996-07-30 16:26:31</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z1F50101T</TD><TD>IO-ACQ</TD><TD>186.399333333</TD><TD>-1.35658888889</TD><TD>2</TD><TD/><TD/><TD/><TD>HRS   </TD><TD>2.0</TD><TD>MIRROR-N2</TD><TD>4580</TD><TD>1994-07-04 12:55:06</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z1F50102T</TD><TD>IO-ACQ</TD><TD>186.399333333</TD><TD>-1.35658888889</TD><TD>2</TD><TD/><TD/><TD/><TD>HRS   </TD><TD>2.0</TD><TD>MIRROR-N2</TD><TD>4580</TD><TD>1994-07-04 12:56:48</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z1F50103T</TD><TD>IO-ACQ</TD><TD>186.3994125</TD><TD>-1.35666666667</TD><TD>2</TD><TD/><TD/><TD/><TD>HRS   </TD><TD>2.0</TD><TD>MIRROR-N2</TD><TD>4580</TD><TD>1994-07-04 12:58:03</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z1F50104T</TD><TD>IO-ACQ</TD><TD>186.3994125</TD><TD>-1.35666666667</TD><TD>2</TD><TD/><TD/><TD/><TD>HRS   </TD><TD>2.0</TD><TD>MIRROR-N2</TD><TD>4580</TD><TD>1994-07-04 12:59:50</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z1F50601T</TD><TD>IO-ACQ</TD><TD>186.360820833</TD><TD>-1.33979444444</TD><TD>2</TD><TD/><TD/><TD/><TD>HRS   </TD><TD>2.0</TD><TD>MIRROR-N2</TD><TD>4580</TD><TD>1994-07-03 13:35:18</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z1F50602T</TD><TD>IO-ACQ</TD><TD>186.360820833</TD><TD>-1.33979444444</TD><TD>2</TD><TD/><TD/><TD/><TD>HRS   </TD><TD>2.0</TD><TD>MIRROR-N2</TD><TD>4580</TD><TD>1994-07-03 13:36:07</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z1F50603T</TD><TD>IO-ACQ</TD><TD>186.362495833</TD><TD>-1.34055833333</TD><TD>2</TD><TD/><TD/><TD/><TD>HRS   </TD><TD>2.0</TD><TD>MIRROR-N2</TD><TD>4580</TD><TD>1994-07-03 13:36:50</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z1F50604T</TD><TD>IO-ACQ</TD><TD>186.362495833</TD><TD>-1.34055833333</TD><TD>2</TD><TD/><TD/><TD/><TD>HRS   </TD><TD>2.0</TD><TD>MIRROR-N2</TD><TD>4580</TD><TD>1994-07-03 13:37:30</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z1F50B01T</TD><TD>IO-ACQ</TD><TD>188.129404167</TD><TD>-2.169125</TD><TD>2</TD><TD/><TD/><TD/><TD>HRS   </TD><TD>2.0</TD><TD>MIRROR-N2</TD><TD>4580</TD><TD>1994-07-21 14:10:57</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z1F50B03T</TD><TD>IO-ACQ</TD><TD>188.131516667</TD><TD>-2.17007222222</TD><TD>2</TD><TD/><TD/><TD/><TD>HRS   </TD><TD>2.0</TD><TD>MIRROR-N2</TD><TD>4580</TD><TD>1994-07-23 12:07:50</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z1F50B04T</TD><TD>IO-ACQ</TD><TD>188.131516667</TD><TD>-2.17007222222</TD><TD>2</TD><TD/><TD/><TD/><TD>HRS   </TD><TD>2.0</TD><TD>MIRROR-N2</TD><TD>4580</TD><TD>1994-07-23 12:12:25</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z1F50K01T</TD><TD>IO-ACQ</TD><TD>186.004558333</TD><TD>-1.16660833333</TD><TD>2</TD><TD/><TD/><TD/><TD>HRS   </TD><TD>2.0</TD><TD>MIRROR-N2</TD><TD>4580</TD><TD>1994-06-29 13:48:02</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z1F50K02T</TD><TD>IO-ACQ</TD><TD>186.004558333</TD><TD>-1.16660833333</TD><TD>2</TD><TD/><TD/><TD/><TD>HRS   </TD><TD>2.0</TD><TD>MIRROR-N2</TD><TD>4580</TD><TD>1994-06-29 13:49:34</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z1F50K03T</TD><TD>IO-ACQ</TD><TD>186.005695833</TD><TD>-1.16721111111</TD><TD>2</TD><TD/><TD/><TD/><TD>HRS   </TD><TD>2.0</TD><TD>MIRROR-N2</TD><TD>4580</TD><TD>1994-06-29 13:51:29</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z1F50K04T</TD><TD>IO-ACQ</TD><TD>186.005695833</TD><TD>-1.16721111111</TD><TD>2</TD><TD/><TD/><TD/><TD>HRS   </TD><TD>2.0</TD><TD>MIRROR-N2</TD><TD>4580</TD><TD>1994-06-29 13:52:43</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2NQ0101T</TD><TD>IO-ACQ</TD><TD/><TD/><TD>2</TD><TD/><TD/><TD/><TD>HRS   </TD><TD>2.0</TD><TD>MIRROR-N2</TD><TD>5424</TD><TD>1996-05-03 21:56:19</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2NQ0103T</TD><TD>IO-ACQ</TD><TD/><TD/><TD>2</TD><TD/><TD/><TD/><TD>HRS   </TD><TD>2.0</TD><TD>MIRROR-N2</TD><TD>5424</TD><TD>1996-05-03 21:57:58</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2NQ0104T</TD><TD>IO-ACQ</TD><TD/><TD/><TD>2</TD><TD/><TD/><TD/><TD>HRS   </TD><TD>2.0</TD><TD>MIRROR-N2</TD><TD>5424</TD><TD>1996-05-03 21:58:30</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2NQ0A01T</TD><TD>IO-ACQ</TD><TD/><TD/><TD>2</TD><TD/><TD/><TD/><TD>HRS   </TD><TD>2.0</TD><TD>MIRROR-N2</TD><TD>5424</TD><TD>1996-04-29 19:34:19</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2NQ0A03T</TD><TD>IO-ACQ</TD><TD/><TD/><TD>2</TD><TD/><TD/><TD/><TD>HRS   </TD><TD>2.0</TD><TD>MIRROR-N2</TD><TD>5424</TD><TD>1996-04-29 19:36:13</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2NQ0A04T</TD><TD>IO-ACQ</TD><TD/><TD/><TD>2</TD><TD/><TD/><TD/><TD>HRS   </TD><TD>2.0</TD><TD>MIRROR-N2</TD><TD>5424</TD><TD>1996-04-29 19:36:47</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2NQ5101T</TD><TD>IO-ACQ</TD><TD/><TD/><TD>2</TD><TD/><TD/><TD/><TD>HRS   </TD><TD>2.0</TD><TD>MIRROR-N2</TD><TD>5424</TD><TD>1996-06-10 22:55:41</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2NQ5103T</TD><TD>IO-ACQ</TD><TD/><TD/><TD>2</TD><TD/><TD/><TD/><TD>HRS   </TD><TD>2.0</TD><TD>MIRROR-N2</TD><TD>5424</TD><TD>1996-06-10 22:58:26</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2NQ5104T</TD><TD>IO-ACQ</TD><TD/><TD/><TD>2</TD><TD/><TD/><TD/><TD>HRS   </TD><TD>2.0</TD><TD>MIRROR-N2</TD><TD>5424</TD><TD>1996-06-10 22:59:14</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2NO0904T</TD><TD>JUPITER-PM</TD><TD/><TD/><TD>0</TD><TD/><TD/><TD/><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5167</TD><TD>1996-04-20 18:52:08</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2IJ0101T</TD><TD>TITANIA-ACQ</TD><TD/><TD/><TD>1</TD><TD/><TD/><TD/><TD>HRS   </TD><TD>2.0</TD><TD>MIRROR-N2</TD><TD>5414</TD><TD>1995-09-21 14:37:20</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2IJ0103T</TD><TD>TITANIA-ACQ</TD><TD/><TD/><TD>1</TD><TD/><TD/><TD/><TD>HRS   </TD><TD>2.0</TD><TD>MIRROR-N2</TD><TD>5414</TD><TD>1995-09-22 16:34:21</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z32Y0101T</TD><TD>TITANIA-OFFSET</TD><TD/><TD/><TD>0</TD><TD/><TD/><TD/><TD>HRS   </TD><TD>2.0</TD><TD>MIRROR-N2</TD><TD>6291</TD><TD>1997-04-25 12:05:25</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z32Y0103T</TD><TD>TITANIA-OFFSET</TD><TD/><TD/><TD>0</TD><TD/><TD/><TD/><TD>HRS   </TD><TD>2.0</TD><TD>MIRROR-N2</TD><TD>6291</TD><TD>1997-04-25 18:04:12</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2IJ0301T</TD><TD>TRITON-ACQ</TD><TD/><TD/><TD>1</TD><TD/><TD/><TD/><TD>HRS   </TD><TD>2.0</TD><TD>MIRROR-N2</TD><TD>5414</TD><TD>1995-09-19 17:56:55</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2IJ0303T</TD><TD>TRITON-ACQ</TD><TD/><TD/><TD>1</TD><TD/><TD/><TD/><TD>HRS   </TD><TD>2.0</TD><TD>MIRROR-N2</TD><TD>5414</TD><TD>1995-09-20 20:15:13</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>X0UT0101T</TD><TD>JUPITER-NPR</TD><TD>164.369654167</TD><TD>8.10346388889</TD><TD>3</TD><TD>1992-02-07 02:41:34</TD><TD>1992-02-07 02:59:30</TD><TD>1075.750</TD><TD>FOC   </TD><TD>512X512</TD><TD>CLEAR1;F140W;F130M;CLEAR4</TD><TD>4005</TD><TD>1992-08-10 19:29:16</TD><TD>X0UT0101T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>X0UT0102T</TD><TD>JUPITER-NPR</TD><TD>164.361216667</TD><TD>8.10721388889</TD><TD>3</TD><TD>1992-02-07 04:09:19</TD><TD>1992-02-07 04:27:15</TD><TD>1075.750</TD><TD>FOC   </TD><TD>512X512</TD><TD>CLEAR1;F140W;F130M;CLEAR4</TD><TD>4005</TD><TD>1992-08-10 19:33:15</TD><TD>X0UT0102T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>X0UT0201T</TD><TD>JUPITER-SPR</TD><TD>164.3375625</TD><TD>8.10588055556</TD><TD>3</TD><TD>1992-02-07 09:08:48</TD><TD>1992-02-07 09:26:44</TD><TD>1075.750</TD><TD>FOC   </TD><TD>512X512</TD><TD>CLEAR1;F140W;F130M;CLEAR4</TD><TD>4005</TD><TD>1992-08-07 16:14:24</TD><TD>X0UT0201T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>X0UT0202T</TD><TD>JUPITER-SPR</TD><TD>164.329691667</TD><TD>8.10936388889</TD><TD>3</TD><TD>1992-02-07 10:35:28</TD><TD>1992-02-07 10:53:24</TD><TD>1075.750</TD><TD>FOC   </TD><TD>512X512</TD><TD>CLEAR1;F140W;F130M;CLEAR4</TD><TD>4005</TD><TD>1992-08-07 16:46:43</TD><TD>X0UT0202T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>X0UX0101T</TD><TD>JUPITER-NORTHPOLE</TD><TD>164.288525</TD><TD>8.13773055556</TD><TD>1</TD><TD>1992-02-07 21:53:49</TD><TD>1992-02-07 22:00:45</TD><TD>415.750</TD><TD>FOC   </TD><TD>512X1024</TD><TD>CLEAR1;F140W;F152M;CLEAR4</TD><TD>1286</TD><TD>1993-02-07 17:52:21</TD><TD>X0UX0101T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>X0UX0102T</TD><TD>JUPITER-NORTHPOLE</TD><TD>164.286945833</TD><TD>8.13843333333</TD><TD>1</TD><TD>1992-02-07 22:07:08</TD><TD>1992-02-07 22:23:04</TD><TD>955.750</TD><TD>FOC   </TD><TD>512X1024</TD><TD>CLEAR1;F140W;F152M;CLEAR4</TD><TD>1286</TD><TD>1993-02-07 02:35:11</TD><TD>X0UX0102T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>X0UX0103T</TD><TD>JUPITER-NORTHPOLE</TD><TD>164.2862875</TD><TD>8.138725</TD><TD>1</TD><TD>1992-02-07 22:29:44</TD><TD>1992-02-07 22:32:20</TD><TD>155.750</TD><TD>FOC   </TD><TD>512X1024</TD><TD>CLEAR1;F175W;F170M;CLEAR4</TD><TD>1286</TD><TD>1993-02-07 03:04:27</TD><TD>X0UX0103T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z0UU0101T</TD><TD>WAVE</TD><TD>164.275866667</TD><TD>8.13885833333</TD><TD>3</TD><TD>1992-02-08 01:05:10</TD><TD>1992-02-08 01:05:26</TD><TD>4.800</TD><TD>HRS   </TD><TD>2.0</TD><TD>G160M</TD><TD>4001</TD><TD>1993-02-07 02:47:46</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z0UU0102T</TD><TD>JUPITER-QUIET</TD><TD>164.275866667</TD><TD>8.13885833333</TD><TD>3</TD><TD>1992-02-08 01:06:13</TD><TD>1992-02-08 01:23:41</TD><TD>1036.800</TD><TD>HRS   </TD><TD>2.0</TD><TD>G160M</TD><TD>4001</TD><TD>1993-02-07 02:51:07</TD><TD>Z0UU0102T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z0UU0103T</TD><TD>WAVE</TD><TD>164.27275</TD><TD>8.14027222222</TD><TD>3</TD><TD>1992-02-08 01:29:24</TD><TD>1992-02-08 01:29:40</TD><TD>4.800</TD><TD>HRS   </TD><TD>2.0</TD><TD>G160M</TD><TD>4001</TD><TD>1993-02-07 02:53:56</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z0UU0104T</TD><TD>JUPITER-QUIET</TD><TD>164.27275</TD><TD>8.14027222222</TD><TD>3</TD><TD>1992-02-08 01:30:25</TD><TD>1992-02-08 01:46:56</TD><TD>979.200</TD><TD>HRS   </TD><TD>2.0</TD><TD>G160M</TD><TD>4001</TD><TD>1993-02-07 02:57:01</TD><TD>Z0UU0104T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z0UU0105T</TD><TD>WAVE</TD><TD>164.263541667</TD><TD>8.14436944444</TD><TD>3</TD><TD>1992-02-08 02:41:45</TD><TD>1992-02-08 02:42:01</TD><TD>4.800</TD><TD>HRS   </TD><TD>2.0</TD><TD>G160M</TD><TD>4001</TD><TD>1993-02-07 14:24:13</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z0UU0106T</TD><TD>JUPITER-QUIET</TD><TD>164.263541667</TD><TD>8.14436944444</TD><TD>3</TD><TD>1992-02-08 02:42:49</TD><TD>1992-02-08 03:00:17</TD><TD>1036.800</TD><TD>HRS   </TD><TD>2.0</TD><TD>G160M</TD><TD>4001</TD><TD>1993-02-07 14:29:06</TD><TD>Z0UU0106T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z0UU0107T</TD><TD>WAVE</TD><TD>164.2608125</TD><TD>8.14556111111</TD><TD>3</TD><TD>1992-02-08 03:05:40</TD><TD>1992-02-08 03:05:56</TD><TD>4.800</TD><TD>HRS   </TD><TD>2.0</TD><TD>G160M</TD><TD>4001</TD><TD>1993-02-07 14:33:09</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z0UU0108T</TD><TD>JUPITER-QUIET</TD><TD>164.2608125</TD><TD>8.14556111111</TD><TD>3</TD><TD>1992-02-08 03:06:49</TD><TD>1992-02-08 03:23:20</TD><TD>979.200</TD><TD>HRS   </TD><TD>2.0</TD><TD>G160M</TD><TD>4001</TD><TD>1993-02-07 14:38:17</TD><TD>Z0UU0108T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>X0UX0201T</TD><TD>JUPITER-NORTHPOLE</TD><TD>164.2466625</TD><TD>8.15627777778</TD><TD>1</TD><TD>1992-02-08 07:40:25</TD><TD>1992-02-08 07:49:21</TD><TD>535.750</TD><TD>FOC   </TD><TD>512X1024</TD><TD>CLEAR1;F140W;F152M;CLEAR4</TD><TD>1286</TD><TD>1993-02-07 15:11:38</TD><TD>X0UX0201T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>X0UX0202T</TD><TD>JUPITER-NORTHPOLE</TD><TD>164.240475</TD><TD>8.15901666667</TD><TD>1</TD><TD>1992-02-08 09:07:03</TD><TD>1992-02-08 09:15:59</TD><TD>535.750</TD><TD>FOC   </TD><TD>512X1024</TD><TD>CLEAR1;F140W;F152M;CLEAR4</TD><TD>1286</TD><TD>1993-02-07 15:36:43</TD><TD>X0UX0202T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>X0UX0203T</TD><TD>JUPITER-NORTHPOLE</TD><TD>164.239416667</TD><TD>8.15948611111</TD><TD>1</TD><TD>1992-02-08 09:21:52</TD><TD>1992-02-08 09:30:48</TD><TD>535.750</TD><TD>FOC   </TD><TD>512X1024</TD><TD>CLEAR1;F140W;F152M;CLEAR4</TD><TD>1286</TD><TD>1993-02-07 16:00:37</TD><TD>X0UX0203T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z0UU0201T</TD><TD>WAVE</TD><TD>164.2161</TD><TD>8.17094166667</TD><TD>3</TD><TD>1992-02-08 15:41:23</TD><TD>1992-02-08 15:41:39</TD><TD>4.800</TD><TD>HRS   </TD><TD>2.0</TD><TD>G160M</TD><TD>4001</TD><TD>1993-02-07 22:26:22</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z0UU0202T</TD><TD>JUPITER-NPR</TD><TD>164.2161</TD><TD>8.17094166667</TD><TD>3</TD><TD>1992-02-08 15:42:25</TD><TD>1992-02-08 15:59:53</TD><TD>1036.800</TD><TD>HRS   </TD><TD>2.0</TD><TD>G160M</TD><TD>4001</TD><TD>1992-02-08 22:28:09</TD><TD>Z0UU0202T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z0UU0203T</TD><TD>WAVE</TD><TD>164.209466667</TD><TD>8.17396111111</TD><TD>3</TD><TD>1992-02-08 17:10:49</TD><TD>1992-02-08 17:11:04</TD><TD>4.800</TD><TD>HRS   </TD><TD>2.0</TD><TD>G160M</TD><TD>4001</TD><TD>1993-02-07 22:30:00</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z0UU0204T</TD><TD>JUPITER-NPR</TD><TD>164.209466667</TD><TD>8.17396111111</TD><TD>3</TD><TD>1992-02-08 17:11:50</TD><TD>1992-02-08 17:29:17</TD><TD>1036.800</TD><TD>HRS   </TD><TD>2.0</TD><TD>G160M</TD><TD>4001</TD><TD>1993-02-07 22:34:19</TD><TD>Z0UU0204T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z0UU0205T</TD><TD>WAVE</TD><TD>00</TD><TD/><TD>3</TD><TD>1992-02-08 17:34:07</TD><TD>1992-02-08 17:34:23</TD><TD>4.800</TD><TD>HRS   </TD><TD>SC2</TD><TD>G160M</TD><TD>4001</TD><TD>1993-02-07 22:36:26</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z0UU0206T</TD><TD>WAVE</TD><TD>00</TD><TD/><TD>3</TD><TD>1992-02-08 17:34:53</TD><TD>1992-02-08 17:36:02</TD><TD>57.600</TD><TD>HRS   </TD><TD>SC2</TD><TD>G160M</TD><TD>4001</TD><TD>1993-02-07 22:38:25</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z0UU0207T</TD><TD>WAVE</TD><TD>164.200020833</TD><TD>8.17821388889</TD><TD>3</TD><TD>1992-02-08 18:47:09</TD><TD>1992-02-08 18:47:25</TD><TD>4.800</TD><TD>HRS   </TD><TD>2.0</TD><TD>G160M</TD><TD>4001</TD><TD>1993-02-07 22:40:25</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z0UU0208T</TD><TD>JUPITER-NPR</TD><TD>164.200020833</TD><TD>8.17821388889</TD><TD>3</TD><TD>1992-02-08 18:48:13</TD><TD>1992-02-08 19:05:41</TD><TD>1036.800</TD><TD>HRS   </TD><TD>2.0</TD><TD>G160M</TD><TD>4001</TD><TD>1993-02-07 22:42:50</TD><TD>Z0UU0208T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z0UU0209T</TD><TD>WAVE</TD><TD>164.1975625</TD><TD>8.17930833333</TD><TD>3</TD><TD>1992-02-08 19:11:10</TD><TD>1992-02-08 19:11:26</TD><TD>4.800</TD><TD>HRS   </TD><TD>2.0</TD><TD>G160M</TD><TD>4001</TD><TD>1993-02-07 22:45:16</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z0UU020AT</TD><TD>JUPITER-NPR</TD><TD>164.1975625</TD><TD>8.17930833333</TD><TD>3</TD><TD>1992-02-08 19:12:13</TD><TD>1992-02-08 19:28:44</TD><TD>979.200</TD><TD>HRS   </TD><TD>2.0</TD><TD>G160M</TD><TD>4001</TD><TD>1993-02-07 22:48:58</TD><TD>Z0UU020AT</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z0UU020BT</TD><TD>WAVE</TD><TD>00</TD><TD/><TD>3</TD><TD>1992-02-08 19:33:23</TD><TD>1992-02-08 19:33:38</TD><TD>4.800</TD><TD>HRS   </TD><TD>SC2</TD><TD>G160M</TD><TD>4001</TD><TD>1993-02-07 22:51:26</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z0UU020CT</TD><TD>WAVE</TD><TD>00</TD><TD/><TD>3</TD><TD>1992-02-08 19:34:16</TD><TD>1992-02-08 19:35:25</TD><TD>57.600</TD><TD>HRS   </TD><TD>SC2</TD><TD>G160M</TD><TD>4001</TD><TD>1993-02-07 22:54:02</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>X0UT0301T</TD><TD>JUPITER-SPR</TD><TD>164.173933333</TD><TD>8.17830833333</TD><TD>3</TD><TD>1992-02-08 23:47:24</TD><TD>1992-02-09 00:05:20</TD><TD>1075.750</TD><TD>FOC   </TD><TD>512X512</TD><TD>CLEAR1;F140W;F130M;CLEAR4</TD><TD>4005</TD><TD>1992-08-08 14:18:31</TD><TD>X0UT0301T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>X0UT0302T</TD><TD>JUPITER-SPR</TD><TD>164.165741667</TD><TD>8.18195833333</TD><TD>3</TD><TD>1992-02-09 01:12:29</TD><TD>1992-02-09 01:30:25</TD><TD>1075.750</TD><TD>FOC   </TD><TD>512X512</TD><TD>CLEAR1;F140W;F130M;CLEAR4</TD><TD>4005</TD><TD>1992-08-08 14:26:11</TD><TD>X0UT0302T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>X0UT0401T</TD><TD>JUPITER-SPR</TD><TD>164.132433333</TD><TD>8.1966</TD><TD>3</TD><TD>1992-02-09 09:25:03</TD><TD>1992-02-09 09:42:59</TD><TD>1075.750</TD><TD>FOC   </TD><TD>512X512</TD><TD>CLEAR1;F140W;F130M;CLEAR4</TD><TD>4005</TD><TD>1992-08-08 15:28:49</TD><TD>X0UT0401T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>X0UT0402T</TD><TD>JUPITER-SPR</TD><TD>164.124129167</TD><TD>8.20030833333</TD><TD>3</TD><TD>1992-02-09 10:51:45</TD><TD>1992-02-09 11:09:41</TD><TD>1075.750</TD><TD>FOC   </TD><TD>512X512</TD><TD>CLEAR1;F140W;F130M;CLEAR4</TD><TD>4005</TD><TD>1992-08-08 15:34:11</TD><TD>X0UT0402T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z1D90201T</TD><TD>WAVE</TD><TD>185.03745</TD><TD>-0.6006</TD><TD>3</TD><TD>1993-05-28 11:54:23</TD><TD>1993-05-28 11:54:30</TD><TD>4.800</TD><TD>HRS   </TD><TD>2.0</TD><TD>G160M</TD><TD>4601</TD><TD>1994-05-28 14:38:41</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z1D90202T</TD><TD>JUPITER+50</TD><TD>185.03745</TD><TD>-0.6006</TD><TD>3</TD><TD>1993-05-28 11:55:14</TD><TD>1993-05-28 12:15:20</TD><TD>1088.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>G160M</TD><TD>4601</TD><TD>1994-05-28 14:41:22</TD><TD>Z1D90202T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z1D90203T</TD><TD>WAVE</TD><TD>185.0366875</TD><TD>-0.600577777778</TD><TD>3</TD><TD>1993-05-28 13:30:35</TD><TD>1993-05-28 13:30:42</TD><TD>4.800</TD><TD>HRS   </TD><TD>2.0</TD><TD>G160M</TD><TD>4601</TD><TD>1994-05-28 14:42:56</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z1D90204T</TD><TD>JUPITER+50</TD><TD>185.0366875</TD><TD>-0.600577777778</TD><TD>3</TD><TD>1993-05-28 13:31:26</TD><TD>1993-05-28 13:51:32</TD><TD>1088.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>G160M</TD><TD>4601</TD><TD>1994-05-28 14:47:00</TD><TD>Z1D90204T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z1D90601T</TD><TD>WAVE</TD><TD>185.029891667</TD><TD>-0.554405555556</TD><TD>3</TD><TD>1993-05-29 00:46:48</TD><TD>1993-05-29 00:46:54</TD><TD>4.800</TD><TD>HRS   </TD><TD>2.0</TD><TD>G160M</TD><TD>4601</TD><TD>1994-05-29 15:01:48</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z1D90602T</TD><TD>SKY-BACKGROUND</TD><TD>185.029891667</TD><TD>-0.554405555556</TD><TD>3</TD><TD>1993-05-29 00:47:44</TD><TD>1993-05-29 01:07:50</TD><TD>1088.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>G160M</TD><TD>4601</TD><TD>1994-05-29 15:06:58</TD><TD>Z1D90602T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z1D90603T</TD><TD>WAVE</TD><TD>185.029233333</TD><TD>-0.554427777778</TD><TD>3</TD><TD>1993-05-29 02:22:44</TD><TD>1993-05-29 02:22:50</TD><TD>4.800</TD><TD>HRS   </TD><TD>2.0</TD><TD>G160M</TD><TD>4601</TD><TD>1994-05-29 14:50:57</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z1D90604T</TD><TD>SKY-BACKGROUND</TD><TD>185.029233333</TD><TD>-0.554427777778</TD><TD>3</TD><TD>1993-05-29 02:23:38</TD><TD>1993-05-29 02:43:44</TD><TD>1088.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>G160M</TD><TD>4601</TD><TD>1994-05-29 14:58:54</TD><TD>Z1D90604T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z1D90401T</TD><TD>WAVE</TD><TD>185.013933333</TD><TD>-0.609030555556</TD><TD>3</TD><TD>1993-06-01 15:24:41</TD><TD>1993-06-01 15:24:48</TD><TD>4.800</TD><TD>HRS   </TD><TD>2.0</TD><TD>G160M</TD><TD>4601</TD><TD>1994-06-01 23:07:44</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z1D90402T</TD><TD>JUPITER+60</TD><TD>185.013933333</TD><TD>-0.609030555556</TD><TD>3</TD><TD>1993-06-01 15:25:32</TD><TD>1993-06-01 15:45:38</TD><TD>1088.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>G160M</TD><TD>4601</TD><TD>1994-06-01 23:11:53</TD><TD>Z1D90402T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z1D90403T</TD><TD>WAVE</TD><TD>185.013941667</TD><TD>-0.60935</TD><TD>3</TD><TD>1993-06-01 17:02:48</TD><TD>1993-06-01 17:02:54</TD><TD>4.800</TD><TD>HRS   </TD><TD>2.0</TD><TD>G160M</TD><TD>4601</TD><TD>1994-06-01 23:13:35</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z1D90404T</TD><TD>JUPITER+60</TD><TD>185.013941667</TD><TD>-0.60935</TD><TD>3</TD><TD>1993-06-01 17:03:51</TD><TD>1993-06-01 17:23:57</TD><TD>1088.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>G160M</TD><TD>4601</TD><TD>1994-06-01 23:16:42</TD><TD>Z1D90404T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z1D90301T</TD><TD>WAVE</TD><TD>185.017704167</TD><TD>-0.618625</TD><TD>3</TD><TD>1993-06-03 07:35:29</TD><TD>1993-06-03 07:35:36</TD><TD>4.800</TD><TD>HRS   </TD><TD>2.0</TD><TD>G160M</TD><TD>4601</TD><TD>1994-06-03 14:09:28</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z1D90302T</TD><TD>JUPITER+55</TD><TD>185.017704167</TD><TD>-0.618625</TD><TD>3</TD><TD>1993-06-03 07:36:20</TD><TD>1993-06-03 07:56:26</TD><TD>1088.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>G160M</TD><TD>4601</TD><TD>1994-06-03 14:17:19</TD><TD>Z1D90302T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z1D90303T</TD><TD>WAVE</TD><TD>185.018016667</TD><TD>-0.619072222222</TD><TD>3</TD><TD>1993-06-03 09:11:43</TD><TD>1993-06-03 09:11:50</TD><TD>4.800</TD><TD>HRS   </TD><TD>2.0</TD><TD>G160M</TD><TD>4601</TD><TD>1994-06-03 14:19:23</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z1D90304T</TD><TD>JUPITER+55</TD><TD>185.018016667</TD><TD>-0.619072222222</TD><TD>3</TD><TD>1993-06-03 09:12:38</TD><TD>1993-06-03 09:32:44</TD><TD>1088.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>G160M</TD><TD>4601</TD><TD>1994-06-03 14:23:09</TD><TD>Z1D90304T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z1F50L01T</TD><TD>WAVE</TD><TD>186.038345833</TD><TD>-1.17754722222</TD><TD>2</TD><TD>1993-06-29 08:23:59</TD><TD>1993-06-29 08:24:15</TD><TD>4.800</TD><TD>HRS   </TD><TD>2.0</TD><TD>G160M</TD><TD>4580</TD><TD>1994-06-29 13:56:47</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z1F50L02T</TD><TD>JUPITER-N3</TD><TD>186.038345833</TD><TD>-1.17754722222</TD><TD>2</TD><TD>1993-06-29 08:25:01</TD><TD>1993-06-29 08:39:57</TD><TD>761.600</TD><TD>HRS   </TD><TD>2.0</TD><TD>G160M</TD><TD>4580</TD><TD>1994-06-29 14:01:02</TD><TD>Z1F50L02T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z1F50M01T</TD><TD>WAVE</TD><TD>186.038854167</TD><TD>-1.17770555556</TD><TD>2</TD><TD>1993-06-29 08:45:48</TD><TD>1993-06-29 08:46:04</TD><TD>4.800</TD><TD>HRS   </TD><TD>2.0</TD><TD>G160M</TD><TD>4580</TD><TD>1994-06-29 14:03:21</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z1F50M02T</TD><TD>JUPITER-N4</TD><TD>186.038854167</TD><TD>-1.17770555556</TD><TD>2</TD><TD>1993-06-29 08:46:49</TD><TD>1993-06-29 09:01:48</TD><TD>761.600</TD><TD>HRS   </TD><TD>2.0</TD><TD>G160M</TD><TD>4580</TD><TD>1994-06-29 14:07:00</TD><TD>Z1F50M02T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z1F50701T</TD><TD>WAVE</TD><TD>186.3512625</TD><TD>-1.32955833333</TD><TD>2</TD><TD>1993-07-03 10:23:22</TD><TD>1993-07-03 10:23:37</TD><TD>4.800</TD><TD>HRS   </TD><TD>2.0</TD><TD>G160M</TD><TD>4580</TD><TD>1994-07-03 13:40:21</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z1F50702T</TD><TD>JUPITER-N1A2</TD><TD>186.3512625</TD><TD>-1.32955833333</TD><TD>2</TD><TD>1993-07-03 10:24:24</TD><TD>1993-07-03 10:39:21</TD><TD>761.600</TD><TD>HRS   </TD><TD>2.0</TD><TD>G160M</TD><TD>4580</TD><TD>1994-07-03 13:43:13</TD><TD>Z1F50702T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z1F50801T</TD><TD>WAVE</TD><TD>186.3524125</TD><TD>-1.33011388889</TD><TD>2</TD><TD>1993-07-03 10:45:17</TD><TD>1993-07-03 10:45:33</TD><TD>4.800</TD><TD>HRS   </TD><TD>2.0</TD><TD>G160M</TD><TD>4580</TD><TD>1994-07-03 13:45:02</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z1F50802T</TD><TD>JUPITER-N1B2</TD><TD>186.3524125</TD><TD>-1.33011388889</TD><TD>2</TD><TD>1993-07-03 10:46:04</TD><TD>1993-07-03 11:01:06</TD><TD>761.600</TD><TD>HRS   </TD><TD>2.0</TD><TD>G160M</TD><TD>4580</TD><TD>1994-07-03 13:47:50</TD><TD>Z1F50802T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z1F50901T</TD><TD>WAVE</TD><TD>186.3553125</TD><TD>-1.33151666667</TD><TD>2</TD><TD>1993-07-03 11:59:09</TD><TD>1993-07-03 11:59:25</TD><TD>4.800</TD><TD>HRS   </TD><TD>2.0</TD><TD>G160M</TD><TD>4580</TD><TD>1994-07-03 13:49:26</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z1F50902T</TD><TD>JUPITER-N2A2</TD><TD>186.3553125</TD><TD>-1.33151666667</TD><TD>2</TD><TD>1993-07-03 11:59:58</TD><TD>1993-07-03 12:14:56</TD><TD>761.600</TD><TD>HRS   </TD><TD>2.0</TD><TD>G160M</TD><TD>4580</TD><TD>1994-07-03 13:51:54</TD><TD>Z1F50902T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z1F50A01T</TD><TD>WAVE</TD><TD>186.356420833</TD><TD>-1.33208888889</TD><TD>2</TD><TD>1993-07-03 12:21:18</TD><TD>1993-07-03 12:21:33</TD><TD>4.800</TD><TD>HRS   </TD><TD>2.0</TD><TD>G160M</TD><TD>4580</TD><TD>1994-07-03 13:53:45</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z1F50A02T</TD><TD>JUPITER-N2B2</TD><TD>186.356420833</TD><TD>-1.33208888889</TD><TD>2</TD><TD>1993-07-03 12:22:18</TD><TD>1993-07-03 12:37:29</TD><TD>761.600</TD><TD>HRS   </TD><TD>2.0</TD><TD>G160M</TD><TD>4580</TD><TD>1994-07-03 13:56:16</TD><TD>Z1F50A02T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z1F50201T</TD><TD>WAVE</TD><TD>186.421870833</TD><TD>-1.36349444444</TD><TD>2</TD><TD>1993-07-04 07:16:32</TD><TD>1993-07-04 07:16:48</TD><TD>4.800</TD><TD>HRS   </TD><TD>2.0</TD><TD>G160M</TD><TD>4580</TD><TD>1994-07-04 13:06:19</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z1F50202T</TD><TD>JUPITER-N1A1</TD><TD>186.421870833</TD><TD>-1.36349444444</TD><TD>2</TD><TD>1993-07-04 07:17:36</TD><TD>1993-07-04 07:32:34</TD><TD>761.600</TD><TD>HRS   </TD><TD>2.0</TD><TD>G160M</TD><TD>4580</TD><TD>1994-07-04 13:10:25</TD><TD>Z1F50202T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z1F50301T</TD><TD>WAVE</TD><TD>186.423045833</TD><TD>-1.36406388889</TD><TD>2</TD><TD>1993-07-04 07:38:22</TD><TD>1993-07-04 07:38:38</TD><TD>4.800</TD><TD>HRS   </TD><TD>2.0</TD><TD>G160M</TD><TD>4580</TD><TD>1994-07-04 13:12:46</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z1F50302T</TD><TD>JUPITER-N1B1</TD><TD>186.423045833</TD><TD>-1.36406388889</TD><TD>2</TD><TD>1993-07-04 07:39:10</TD><TD>1993-07-04 07:54:10</TD><TD>761.600</TD><TD>HRS   </TD><TD>2.0</TD><TD>G160M</TD><TD>4580</TD><TD>1994-07-04 13:15:52</TD><TD>Z1F50302T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z1F50401T</TD><TD>WAVE</TD><TD>186.426441667</TD><TD>-1.36596666667</TD><TD>2</TD><TD>1993-07-04 08:52:22</TD><TD>1993-07-04 08:52:38</TD><TD>4.800</TD><TD>HRS   </TD><TD>2.0</TD><TD>G160M</TD><TD>4580</TD><TD>1994-07-04 13:17:54</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z1F50402T</TD><TD>JUPITER-N2A1</TD><TD>186.426441667</TD><TD>-1.36596666667</TD><TD>2</TD><TD>1993-07-04 08:53:10</TD><TD>1993-07-04 09:08:08</TD><TD>761.600</TD><TD>HRS   </TD><TD>2.0</TD><TD>G160M</TD><TD>4580</TD><TD>1994-07-04 13:21:43</TD><TD>Z1F50402T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z1F50501T</TD><TD>WAVE</TD><TD>186.427479167</TD><TD>-1.36655833333</TD><TD>2</TD><TD>1993-07-04 09:14:22</TD><TD>1993-07-04 09:14:38</TD><TD>4.800</TD><TD>HRS   </TD><TD>2.0</TD><TD>G160M</TD><TD>4580</TD><TD>1994-07-04 13:24:00</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z1F50502T</TD><TD>JUPITER-N2B1</TD><TD>186.427479167</TD><TD>-1.36655833333</TD><TD>2</TD><TD>1993-07-04 09:15:10</TD><TD>1993-07-04 09:30:10</TD><TD>761.600</TD><TD>HRS   </TD><TD>2.0</TD><TD>G160M</TD><TD>4580</TD><TD>1994-07-04 13:26:14</TD><TD>Z1F50502T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z1D90101T</TD><TD>WAVE</TD><TD>186.984583333</TD><TD>-1.632375</TD><TD>3</TD><TD>1993-07-10 12:53:28</TD><TD>1993-07-10 12:53:35</TD><TD>4.800</TD><TD>HRS   </TD><TD>2.0</TD><TD>G160M</TD><TD>4601</TD><TD>1994-07-10 14:36:38</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z1D90102T</TD><TD>JUPITER+40</TD><TD>186.984583333</TD><TD>-1.632375</TD><TD>3</TD><TD>1993-07-10 12:54:24</TD><TD>1993-07-10 13:14:31</TD><TD>1088.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>G160M</TD><TD>4601</TD><TD>1994-07-10 21:16:48</TD><TD>Z1D90102T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z1D90103T</TD><TD>WAVE</TD><TD>186.991195833</TD><TD>-1.63549166667</TD><TD>3</TD><TD>1993-07-10 14:31:24</TD><TD>1993-07-10 14:31:31</TD><TD>4.800</TD><TD>HRS   </TD><TD>2.0</TD><TD>G160M</TD><TD>4601</TD><TD>1994-07-10 21:09:42</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z1D90104T</TD><TD>JUPITER+40</TD><TD>186.991195833</TD><TD>-1.63549166667</TD><TD>3</TD><TD>1993-07-10 14:32:18</TD><TD>1993-07-10 14:52:25</TD><TD>1088.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>G160M</TD><TD>4601</TD><TD>1994-07-10 21:12:31</TD><TD>Z1D90104T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z1F50B02T</TD><TD>IO-ACQ</TD><TD>188.129404167</TD><TD>-2.169125</TD><TD>2</TD><TD>1993-07-21 01:04:10</TD><TD>1993-07-21 01:12:20</TD><TD/><TD>HRS   </TD><TD>2.0</TD><TD>MIRROR-N2</TD><TD>4580</TD><TD>1994-07-21 14:12:43</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z1F50C01T</TD><TD>WAVE</TD><TD>188.120720833</TD><TD>-2.16846388889</TD><TD>2</TD><TD>1993-07-21 02:32:45</TD><TD>1993-07-21 02:33:01</TD><TD>4.800</TD><TD>HRS   </TD><TD>2.0</TD><TD>G160M</TD><TD>4580</TD><TD>1994-07-21 14:18:55</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z1F50C02T</TD><TD>JUPITER-S1</TD><TD>188.120720833</TD><TD>-2.16846388889</TD><TD>2</TD><TD>1993-07-21 02:33:48</TD><TD>1993-07-21 02:48:53</TD><TD>761.600</TD><TD>HRS   </TD><TD>2.0</TD><TD>G160M</TD><TD>4580</TD><TD>1994-07-21 14:22:26</TD><TD>Z1F50C02T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z1F50D01T</TD><TD>WAVE</TD><TD>188.122445833</TD><TD>-2.16925833333</TD><TD>2</TD><TD>1993-07-21 02:54:37</TD><TD>1993-07-21 02:54:52</TD><TD>4.800</TD><TD>HRS   </TD><TD>2.0</TD><TD>G160M</TD><TD>4580</TD><TD>1994-07-21 14:24:48</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z1F50D02T</TD><TD>JUPITER-S2</TD><TD>188.122445833</TD><TD>-2.16925833333</TD><TD>2</TD><TD>1993-07-21 02:55:36</TD><TD>1993-07-21 03:10:41</TD><TD>761.600</TD><TD>HRS   </TD><TD>2.0</TD><TD>G160M</TD><TD>4580</TD><TD>1994-07-21 14:29:02</TD><TD>Z1F50D02T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z1F50E01T</TD><TD>WAVE</TD><TD>188.1296</TD><TD>-2.17236944444</TD><TD>2</TD><TD>1993-07-21 04:08:45</TD><TD>1993-07-21 04:09:01</TD><TD>4.800</TD><TD>HRS   </TD><TD>2.0</TD><TD>G160M</TD><TD>4580</TD><TD>1994-07-21 14:31:53</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z1F50E02T</TD><TD>JUPITER-S3</TD><TD>188.1296</TD><TD>-2.17236944444</TD><TD>2</TD><TD>1993-07-21 04:09:48</TD><TD>1993-07-21 04:24:48</TD><TD>761.600</TD><TD>HRS   </TD><TD>2.0</TD><TD>G160M</TD><TD>4580</TD><TD>1994-07-21 14:37:26</TD><TD>Z1F50E02T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z1F50F01T</TD><TD>WAVE</TD><TD>188.130654167</TD><TD>-2.17284722222</TD><TD>2</TD><TD>1993-07-21 04:30:53</TD><TD>1993-07-21 04:31:09</TD><TD>4.800</TD><TD>HRS   </TD><TD>2.0</TD><TD>G160M</TD><TD>4580</TD><TD>1994-07-21 14:40:09</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z1F50F02T</TD><TD>JUPITER-S4</TD><TD>188.130654167</TD><TD>-2.17284722222</TD><TD>2</TD><TD>1993-07-21 04:31:54</TD><TD>1993-07-21 04:46:54</TD><TD>761.600</TD><TD>HRS   </TD><TD>2.0</TD><TD>G160M</TD><TD>4580</TD><TD>1994-07-22 15:03:48</TD><TD>Z1F50F02T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z1F50G01T</TD><TD>WAVE</TD><TD>188.140504167</TD><TD>-2.16830277778</TD><TD>2</TD><TD>1993-07-21 05:45:15</TD><TD>1993-07-21 05:45:31</TD><TD>4.800</TD><TD>HRS   </TD><TD>2.0</TD><TD>G160M</TD><TD>4580</TD><TD>1994-07-21 14:45:25</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z1F50G02T</TD><TD>JUPITER-N1A3</TD><TD>188.140504167</TD><TD>-2.16830277778</TD><TD>2</TD><TD>1993-07-21 05:46:18</TD><TD>1993-07-21 06:01:24</TD><TD>761.600</TD><TD>HRS   </TD><TD>2.0</TD><TD>G160M</TD><TD>4580</TD><TD>1994-07-21 14:47:47</TD><TD>Z1F50G02T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z1F50H01T</TD><TD>WAVE</TD><TD>188.142233333</TD><TD>-2.16909722222</TD><TD>2</TD><TD>1993-07-21 06:07:23</TD><TD>1993-07-21 06:07:39</TD><TD>4.800</TD><TD>HRS   </TD><TD>2.0</TD><TD>G160M</TD><TD>4580</TD><TD>1994-07-21 14:49:30</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z1F50H02T</TD><TD>JUPITER-N1B3</TD><TD>188.142233333</TD><TD>-2.16909722222</TD><TD>2</TD><TD>1993-07-21 06:08:24</TD><TD>1993-07-21 06:23:21</TD><TD>761.600</TD><TD>HRS   </TD><TD>2.0</TD><TD>G160M</TD><TD>4580</TD><TD>1994-07-21 14:51:58</TD><TD>Z1F50H02T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z1F50I01T</TD><TD>WAVE</TD><TD>188.147383333</TD><TD>-2.171875</TD><TD>2</TD><TD>1993-07-21 07:21:27</TD><TD>1993-07-21 07:21:43</TD><TD>4.800</TD><TD>HRS   </TD><TD>2.0</TD><TD>G160M</TD><TD>4580</TD><TD>1994-07-21 14:53:35</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z1F50I02T</TD><TD>JUPITER-N2A3</TD><TD>188.147383333</TD><TD>-2.171875</TD><TD>2</TD><TD>1993-07-21 07:22:30</TD><TD>1993-07-21 07:37:33</TD><TD>761.600</TD><TD>HRS   </TD><TD>2.0</TD><TD>G160M</TD><TD>4580</TD><TD>1994-07-21 14:55:51</TD><TD>Z1F50I02T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z1F50J01T</TD><TD>WAVE</TD><TD>188.149075</TD><TD>-2.17265555556</TD><TD>2</TD><TD>1993-07-21 07:43:35</TD><TD>1993-07-21 07:43:51</TD><TD>4.800</TD><TD>HRS   </TD><TD>2.0</TD><TD>G160M</TD><TD>4580</TD><TD>1994-07-21 14:57:22</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z1F50J02T</TD><TD>JUPITER-N2B3</TD><TD>188.149075</TD><TD>-2.17265555556</TD><TD>2</TD><TD>1993-07-21 07:44:36</TD><TD>1993-07-21 07:59:33</TD><TD>761.600</TD><TD>HRS   </TD><TD>2.0</TD><TD>G160M</TD><TD>4580</TD><TD>1994-07-21 14:59:24</TD><TD>Z1F50J02T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z1D90501T</TD><TD>WAVE</TD><TD>189.412691667</TD><TD>-2.74672222222</TD><TD>3</TD><TD>1993-07-31 05:13:21</TD><TD>1993-07-31 05:13:28</TD><TD>4.800</TD><TD>HRS   </TD><TD>2.0</TD><TD>G160M</TD><TD>4601</TD><TD>1995-07-31 00:00:00</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z1D90502T</TD><TD>JUPITER+70</TD><TD>189.412691667</TD><TD>-2.74672222222</TD><TD>3</TD><TD>1993-07-31 05:14:12</TD><TD>1993-07-31 05:34:19</TD><TD>1088.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>G160M</TD><TD>4601</TD><TD>1995-07-31 00:00:00</TD><TD>Z1D90502T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z1D90503T</TD><TD>WAVE</TD><TD>189.421108333</TD><TD>-2.75051388889</TD><TD>3</TD><TD>1993-07-31 06:42:11</TD><TD>1993-07-31 06:42:18</TD><TD>4.800</TD><TD>HRS   </TD><TD>2.0</TD><TD>G160M</TD><TD>4601</TD><TD>1995-07-31 00:00:00</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z1D90504T</TD><TD>JUPITER+70</TD><TD>189.421108333</TD><TD>-2.75051388889</TD><TD>3</TD><TD>1993-07-31 06:43:06</TD><TD>1993-07-31 07:03:13</TD><TD>1088.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>G160M</TD><TD>4601</TD><TD>1995-07-31 00:00:00</TD><TD>Z1D90504T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2DQ0B01T</TD><TD>WAVE</TD><TD>00</TD><TD/><TD>1</TD><TD>1994-05-09 15:58:39</TD><TD>1994-05-09 15:59:16</TD><TD>32.000</TD><TD>HRS   </TD><TD>SC2</TD><TD>ECH-A</TD><TD>5417</TD><TD>1995-05-10 01:17:40</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2DQ0B02T</TD><TD>WAVE</TD><TD>00</TD><TD/><TD>1</TD><TD>1994-05-09 16:00:00</TD><TD>1994-05-09 16:00:30</TD><TD>27.200</TD><TD>HRS   </TD><TD>SC2</TD><TD>ECH-A</TD><TD>5417</TD><TD>1995-05-10 01:20:05</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2DQ0B03T</TD><TD>SKY-BACKGROUND</TD><TD>216.7534125</TD><TD>-13.0346388889</TD><TD>1</TD><TD>1994-05-09 16:05:17</TD><TD>1994-05-09 16:19:42</TD><TD>734.400</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5417</TD><TD>1995-05-10 01:25:02</TD><TD>Z2DQ0B03T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2DQ0B04T</TD><TD>WAVE</TD><TD>216.7461875</TD><TD>-13.0323888889</TD><TD>1</TD><TD>1994-05-09 17:31:20</TD><TD>1994-05-09 17:31:57</TD><TD>32.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5417</TD><TD>1995-05-10 01:26:22</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2DQ0B05T</TD><TD>SKY-BACKGROUND</TD><TD>216.7461875</TD><TD>-13.0323888889</TD><TD>1</TD><TD>1994-05-09 17:32:43</TD><TD>1994-05-09 17:47:01</TD><TD>734.400</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5417</TD><TD>1995-05-10 01:30:38</TD><TD>Z2DQ0B05T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2DQ0101T</TD><TD>WAVE</TD><TD>00</TD><TD/><TD>1</TD><TD>1994-05-11 17:48:46</TD><TD>1994-05-11 17:49:23</TD><TD>32.000</TD><TD>HRS   </TD><TD>SC2</TD><TD>ECH-A</TD><TD>5417</TD><TD>1995-05-11 23:36:58</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2DQ0102T</TD><TD>WAVE</TD><TD>00</TD><TD/><TD>1</TD><TD>1994-05-11 17:50:07</TD><TD>1994-05-11 17:50:37</TD><TD>27.200</TD><TD>HRS   </TD><TD>SC2</TD><TD>ECH-A</TD><TD>5417</TD><TD>1995-05-11 23:38:50</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2DQ0103T</TD><TD>JUPITER+58</TD><TD>216.504325</TD><TD>-13.0014361111</TD><TD>1</TD><TD>1994-05-11 17:55:29</TD><TD>1994-05-11 18:14:25</TD><TD>979.200</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5417</TD><TD>1995-05-12 15:51:04</TD><TD>Z2DQ0103T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2DQ0104T</TD><TD>WAVE</TD><TD>216.4946875</TD><TD>-12.9984722222</TD><TD>1</TD><TD>1994-05-11 19:25:04</TD><TD>1994-05-11 19:25:41</TD><TD>32.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5417</TD><TD>1995-05-12 16:51:02</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2DQ0105T</TD><TD>JUPITER+58</TD><TD>216.4946875</TD><TD>-12.9984722222</TD><TD>1</TD><TD>1994-05-11 19:26:37</TD><TD>1994-05-11 19:32:03</TD><TD>244.800</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5417</TD><TD>1995-05-12 16:54:50</TD><TD>Z2DQ0105T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2DQ0201T</TD><TD>WAVE</TD><TD>00</TD><TD/><TD>1</TD><TD>1994-05-12 03:27:57</TD><TD>1994-05-12 03:28:34</TD><TD>32.000</TD><TD>HRS   </TD><TD>SC2</TD><TD>ECH-A</TD><TD>5417</TD><TD>1995-05-12 16:56:35</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2DQ0202T</TD><TD>WAVE</TD><TD>00</TD><TD/><TD>1</TD><TD>1994-05-12 03:29:04</TD><TD>1994-05-12 03:29:34</TD><TD>27.200</TD><TD>HRS   </TD><TD>SC2</TD><TD>ECH-A</TD><TD>5417</TD><TD>1995-05-12 16:58:28</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2DQ0203T</TD><TD>JUPITER+58A</TD><TD>216.459633333</TD><TD>-12.9877666667</TD><TD>1</TD><TD>1994-05-12 03:34:35</TD><TD>1994-05-12 03:53:17</TD><TD>979.200</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5417</TD><TD>1995-05-12 17:05:41</TD><TD>Z2DQ0203T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2DQ0204T</TD><TD>WAVE</TD><TD>216.449775</TD><TD>-12.9845166667</TD><TD>1</TD><TD>1994-05-12 05:04:30</TD><TD>1994-05-12 05:05:08</TD><TD>32.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5417</TD><TD>1995-05-12 17:07:33</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2DQ0205T</TD><TD>JUPITER+58A</TD><TD>216.449775</TD><TD>-12.9845166667</TD><TD>1</TD><TD>1994-05-12 05:05:41</TD><TD>1994-05-12 05:11:07</TD><TD>244.800</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5417</TD><TD>1995-05-12 17:10:22</TD><TD>Z2DQ0205T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2DQ0701T</TD><TD>WAVE</TD><TD>00</TD><TD/><TD>1</TD><TD>1994-05-14 11:48:29</TD><TD>1994-05-14 11:49:06</TD><TD>32.000</TD><TD>HRS   </TD><TD>SC2</TD><TD>ECH-A</TD><TD>5417</TD><TD>1995-05-15 12:05:07</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2DQ0702T</TD><TD>WAVE</TD><TD>00</TD><TD/><TD>1</TD><TD>1994-05-14 11:49:37</TD><TD>1994-05-14 11:50:07</TD><TD>27.200</TD><TD>HRS   </TD><TD>SC2</TD><TD>ECH-A</TD><TD>5417</TD><TD>1995-05-15 12:06:19</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2DQ0703T</TD><TD>JUPITER-58</TD><TD>216.1782125</TD><TD>-12.9113138889</TD><TD>1</TD><TD>1994-05-14 11:55:05</TD><TD>1994-05-14 12:13:47</TD><TD>979.200</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5417</TD><TD>1995-05-15 12:12:37</TD><TD>Z2DQ0703T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2DQ0704T</TD><TD>WAVE</TD><TD>216.168270833</TD><TD>-12.9080972222</TD><TD>1</TD><TD>1994-05-14 13:23:34</TD><TD>1994-05-14 13:24:11</TD><TD>32.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5417</TD><TD>1995-05-15 12:14:01</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2DQ0705T</TD><TD>JUPITER-58</TD><TD>216.168270833</TD><TD>-12.9080972222</TD><TD>1</TD><TD>1994-05-14 13:24:47</TD><TD>1994-05-14 13:30:13</TD><TD>244.800</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5417</TD><TD>1995-05-15 12:16:57</TD><TD>Z2DQ0705T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2DQ0801T</TD><TD>WAVE</TD><TD>00</TD><TD/><TD>1</TD><TD>1994-05-14 23:04:53</TD><TD>1994-05-14 23:05:30</TD><TD>32.000</TD><TD>HRS   </TD><TD>SC2</TD><TD>ECH-A</TD><TD>5417</TD><TD>1995-05-15 13:07:56</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2DQ0802T</TD><TD>WAVE</TD><TD>00</TD><TD/><TD>1</TD><TD>1994-05-14 23:06:07</TD><TD>1994-05-14 23:06:37</TD><TD>27.200</TD><TD>HRS   </TD><TD>SC2</TD><TD>ECH-A</TD><TD>5417</TD><TD>1995-05-15 13:09:41</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2DQ0803T</TD><TD>JUPITER-58A</TD><TD>216.124033333</TD><TD>-12.8945777778</TD><TD>1</TD><TD>1994-05-14 23:11:17</TD><TD>1994-05-14 23:29:59</TD><TD>979.200</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5417</TD><TD>1995-05-15 13:16:32</TD><TD>Z2DQ0803T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2DQ0804T</TD><TD>WAVE</TD><TD>216.114325</TD><TD>-12.8914027778</TD><TD>1</TD><TD>1994-05-15 00:39:24</TD><TD>1994-05-15 00:40:02</TD><TD>32.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5417</TD><TD>1995-05-15 13:18:43</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2DQ0805T</TD><TD>JUPITER-58A</TD><TD>216.114325</TD><TD>-12.8914027778</TD><TD>1</TD><TD>1994-05-15 00:40:49</TD><TD>1994-05-15 00:46:15</TD><TD>244.800</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5417</TD><TD>1995-05-15 13:20:55</TD><TD>Z2DQ0805T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2DQ0301T</TD><TD>WAVE</TD><TD>00</TD><TD/><TD>1</TD><TD>1994-05-16 15:18:47</TD><TD>1994-05-16 15:19:24</TD><TD>32.000</TD><TD>HRS   </TD><TD>SC2</TD><TD>ECH-A</TD><TD>5417</TD><TD>1995-05-16 18:52:59</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2DQ0302T</TD><TD>WAVE</TD><TD>00</TD><TD/><TD>1</TD><TD>1994-05-16 15:19:55</TD><TD>1994-05-16 15:20:25</TD><TD>27.200</TD><TD>HRS   </TD><TD>SC2</TD><TD>ECH-A</TD><TD>5417</TD><TD>1995-05-16 18:54:42</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2DQ0303T</TD><TD>JUPITER+28</TD><TD>215.933258333</TD><TD>-12.8268916667</TD><TD>1</TD><TD>1994-05-16 15:25:23</TD><TD>1994-05-16 15:44:05</TD><TD>979.200</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5417</TD><TD>1995-05-17 00:12:05</TD><TD>Z2DQ0303T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2DQ0304T</TD><TD>WAVE</TD><TD>215.921841667</TD><TD>-12.8232222222</TD><TD>1</TD><TD>1994-05-16 16:52:34</TD><TD>1994-05-16 16:53:11</TD><TD>32.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5417</TD><TD>1995-05-17 00:15:06</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2DQ0305T</TD><TD>JUPITER+28</TD><TD>215.921841667</TD><TD>-12.8232222222</TD><TD>1</TD><TD>1994-05-16 16:53:48</TD><TD>1994-05-16 16:59:13</TD><TD>244.800</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5417</TD><TD>1995-05-17 00:19:57</TD><TD>Z2DQ0305T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2DQ0401T</TD><TD>WAVE</TD><TD>00</TD><TD/><TD>1</TD><TD>1994-05-17 02:31:51</TD><TD>1994-05-17 02:32:28</TD><TD>32.000</TD><TD>HRS   </TD><TD>SC2</TD><TD>ECH-A</TD><TD>5417</TD><TD>1995-05-17 14:52:22</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2DQ0402T</TD><TD>WAVE</TD><TD>00</TD><TD/><TD>1</TD><TD>1994-05-17 02:32:58</TD><TD>1994-05-17 02:33:28</TD><TD>27.200</TD><TD>HRS   </TD><TD>SC2</TD><TD>ECH-A</TD><TD>5417</TD><TD>1995-05-17 14:54:54</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2DQ0403T</TD><TD>JUPITER+28A</TD><TD>215.881266667</TD><TD>-12.8109166667</TD><TD>1</TD><TD>1994-05-17 02:38:29</TD><TD>1994-05-17 02:57:11</TD><TD>979.200</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5417</TD><TD>1995-05-17 15:06:22</TD><TD>Z2DQ0403T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2DQ0404T</TD><TD>WAVE</TD><TD>215.869479167</TD><TD>-12.8070638889</TD><TD>1</TD><TD>1994-05-17 04:08:14</TD><TD>1994-05-17 04:08:51</TD><TD>32.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5417</TD><TD>1995-05-17 15:09:48</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2DQ0405T</TD><TD>JUPITER+28A</TD><TD>215.869479167</TD><TD>-12.8070638889</TD><TD>1</TD><TD>1994-05-17 04:09:23</TD><TD>1994-05-17 04:14:49</TD><TD>244.800</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5417</TD><TD>1995-05-17 15:14:34</TD><TD>Z2DQ0405T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2DQ0501T</TD><TD>WAVE</TD><TD>00</TD><TD/><TD>1</TD><TD>1994-05-17 21:53:53</TD><TD>1994-05-17 21:54:30</TD><TD>32.000</TD><TD>HRS   </TD><TD>SC2</TD><TD>ECH-A</TD><TD>5417</TD><TD>1995-05-18 13:15:33</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2DQ0502T</TD><TD>WAVE</TD><TD>00</TD><TD/><TD>1</TD><TD>1994-05-17 21:55:01</TD><TD>1994-05-17 21:55:31</TD><TD>27.200</TD><TD>HRS   </TD><TD>SC2</TD><TD>ECH-A</TD><TD>5417</TD><TD>1995-05-18 13:19:32</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2DQ0503T</TD><TD>JUPITER-28</TD><TD>215.785866667</TD><TD>-12.7873888889</TD><TD>1</TD><TD>1994-05-17 22:00:29</TD><TD>1994-05-17 22:19:11</TD><TD>979.200</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5417</TD><TD>1995-05-18 13:27:20</TD><TD>Z2DQ0503T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2DQ0504T</TD><TD>WAVE</TD><TD>215.779191667</TD><TD>-12.7853305556</TD><TD>1</TD><TD>1994-05-17 23:26:32</TD><TD>1994-05-17 23:27:09</TD><TD>32.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5417</TD><TD>1995-05-18 13:29:24</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2DQ0505T</TD><TD>JUPITER-28</TD><TD>215.779191667</TD><TD>-12.7853305556</TD><TD>1</TD><TD>1994-05-17 23:27:41</TD><TD>1994-05-17 23:33:07</TD><TD>244.800</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5417</TD><TD>1995-05-18 13:33:53</TD><TD>Z2DQ0505T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2DQ0601T</TD><TD>WAVE</TD><TD>00</TD><TD/><TD>1</TD><TD>1994-05-18 18:48:35</TD><TD>1994-05-18 18:49:12</TD><TD>32.000</TD><TD>HRS   </TD><TD>SC2</TD><TD>ECH-A</TD><TD>5417</TD><TD>1995-05-19 15:39:34</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2DQ0602T</TD><TD>WAVE</TD><TD>00</TD><TD/><TD>1</TD><TD>1994-05-18 18:49:43</TD><TD>1994-05-18 18:50:13</TD><TD>27.200</TD><TD>HRS   </TD><TD>SC2</TD><TD>ECH-A</TD><TD>5417</TD><TD>1995-05-19 15:42:14</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2DQ0603T</TD><TD>JUPITER-28A</TD><TD>215.687516667</TD><TD>-12.7570333333</TD><TD>1</TD><TD>1994-05-18 18:55:11</TD><TD>1994-05-18 19:13:54</TD><TD>979.200</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5417</TD><TD>1995-05-19 15:52:40</TD><TD>Z2DQ0603T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2DQ0604T</TD><TD>WAVE</TD><TD>215.677304167</TD><TD>-12.7539027778</TD><TD>1</TD><TD>1994-05-18 20:21:23</TD><TD>1994-05-18 20:22:00</TD><TD>32.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5417</TD><TD>1995-05-19 15:55:00</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2DQ0605T</TD><TD>JUPITER-28A</TD><TD>215.677304167</TD><TD>-12.7539027778</TD><TD>1</TD><TD>1994-05-18 20:22:35</TD><TD>1994-05-18 20:28:01</TD><TD>244.800</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5417</TD><TD>1995-05-19 16:00:02</TD><TD>Z2DQ0605T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U2EQ0201T</TD><TD>JUPITER-N-AUR1</TD><TD>215.588858333</TD><TD>-12.7348</TD><TD>3</TD><TD>1994-05-19 15:41:17</TD><TD>1994-05-19 15:41:17</TD><TD>0.230</TD><TD>WFPC2 </TD><TD>WF4-FIX</TD><TD>F673N</TD><TD>5217</TD><TD>1995-05-19 23:05:16</TD><TD>U2EQ0201T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U2EQ0202T</TD><TD>JUPITER-N-AUR1</TD><TD>215.58635</TD><TD>-12.7340277778</TD><TD>3</TD><TD>1994-05-19 15:48:17</TD><TD>1994-05-19 16:13:17</TD><TD>1500.000</TD><TD>WFPC2 </TD><TD>WF4-FIX</TD><TD>F130LP;F160BW</TD><TD>5217</TD><TD>1995-05-20 02:38:07</TD><TD>U2EQ0202T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U2EQ0203T</TD><TD>JUPITER-N-AUR1</TD><TD>215.580270833</TD><TD>-12.7321611111</TD><TD>3</TD><TD>1994-05-19 17:08:17</TD><TD>1994-05-19 17:33:17</TD><TD>1500.000</TD><TD>WFPC2 </TD><TD>WF4-FIX</TD><TD>F160BW</TD><TD>5217</TD><TD>1995-05-19 23:09:32</TD><TD>U2EQ0203T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U2EQ0204T</TD><TD>JUPITER-N-AUR1</TD><TD>215.574875</TD><TD>-12.7305027778</TD><TD>3</TD><TD>1994-05-19 18:45:17</TD><TD>1994-05-19 18:45:17</TD><TD>0.230</TD><TD>WFPC2 </TD><TD>WF4-FIX</TD><TD>F673N</TD><TD>5217</TD><TD>1995-05-19 23:11:46</TD><TD>U2EQ0204T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U2EQ0205T</TD><TD>JUPITER-N-AUR1</TD><TD>215.574041667</TD><TD>-12.7302472222</TD><TD>3</TD><TD>1994-05-19 18:49:17</TD><TD>1994-05-19 18:55:07</TD><TD>350.000</TD><TD>WFPC2 </TD><TD>WF4-FIX</TD><TD>F160BW;F165LP</TD><TD>5217</TD><TD>1995-05-20 02:36:23</TD><TD>U2EQ0205T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U2EQ0206T</TD><TD>JUPITER-N-AUR1</TD><TD>215.573358333</TD><TD>-12.7300361111</TD><TD>3</TD><TD>1994-05-19 18:58:17</TD><TD>1994-05-19 19:04:07</TD><TD>350.000</TD><TD>WFPC2 </TD><TD>WF4-FIX</TD><TD>F160BW;F165LP</TD><TD>5217</TD><TD>1995-05-20 02:33:38</TD><TD>U2EQ0206T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2DQ0901T</TD><TD>WAVE</TD><TD>00</TD><TD/><TD>1</TD><TD>1994-05-27 18:24:15</TD><TD>1994-05-27 18:24:52</TD><TD>32.000</TD><TD>HRS   </TD><TD>SC2</TD><TD>ECH-A</TD><TD>5417</TD><TD>1995-05-28 15:16:12</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2DQ0902T</TD><TD>WAVE</TD><TD>00</TD><TD/><TD>1</TD><TD>1994-05-27 18:25:22</TD><TD>1994-05-27 18:25:52</TD><TD>27.200</TD><TD>HRS   </TD><TD>SC2</TD><TD>ECH-A</TD><TD>5417</TD><TD>1995-05-28 15:20:09</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2DQ0903T</TD><TD>JUPITER-BULGE</TD><TD>214.765520833</TD><TD>-12.4727416667</TD><TD>1</TD><TD>1994-05-27 18:30:53</TD><TD>1994-05-27 18:49:35</TD><TD>979.200</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5417</TD><TD>1995-05-28 15:31:48</TD><TD>Z2DQ0903T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2DQ0904T</TD><TD>WAVE</TD><TD>214.754991667</TD><TD>-12.4692277778</TD><TD>1</TD><TD>1994-05-27 19:56:14</TD><TD>1994-05-27 19:56:51</TD><TD>32.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5417</TD><TD>1995-05-28 15:34:58</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2DQ0905T</TD><TD>JUPITER-BULGE</TD><TD>214.754991667</TD><TD>-12.4692277778</TD><TD>1</TD><TD>1994-05-27 19:57:23</TD><TD>1994-05-27 20:02:49</TD><TD>244.800</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5417</TD><TD>1995-05-28 15:39:55</TD><TD>Z2DQ0905T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2DQ0A01T</TD><TD>WAVE</TD><TD>00</TD><TD/><TD>1</TD><TD>1994-05-28 15:19:53</TD><TD>1994-05-28 15:20:30</TD><TD>32.000</TD><TD>HRS   </TD><TD>SC2</TD><TD>ECH-A</TD><TD>5417</TD><TD>1995-05-29 00:05:49</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2DQ0A02T</TD><TD>WAVE</TD><TD>00</TD><TD/><TD>1</TD><TD>1994-05-28 15:21:01</TD><TD>1994-05-28 15:21:31</TD><TD>27.200</TD><TD>HRS   </TD><TD>SC2</TD><TD>ECH-A</TD><TD>5417</TD><TD>1995-05-29 00:07:03</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2DQ0A03T</TD><TD>JUPITER-BULGEA</TD><TD>214.68015</TD><TD>-12.4468138889</TD><TD>1</TD><TD>1994-05-28 15:26:29</TD><TD>1994-05-28 15:45:11</TD><TD>979.200</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5417</TD><TD>1995-05-29 00:14:11</TD><TD>Z2DQ0A03T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2DQ0A04T</TD><TD>WAVE</TD><TD>214.674691667</TD><TD>-12.4451777778</TD><TD>1</TD><TD>1994-05-28 16:51:24</TD><TD>1994-05-28 16:52:02</TD><TD>32.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5417</TD><TD>1995-05-29 00:15:05</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2DQ0A05T</TD><TD>JUPITER-BULGEA</TD><TD>214.674691667</TD><TD>-12.4451777778</TD><TD>1</TD><TD>1994-05-28 16:52:35</TD><TD>1994-05-28 16:58:02</TD><TD>244.800</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5417</TD><TD>1995-05-29 00:16:48</TD><TD>Z2DQ0A05T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U2EQ0101T</TD><TD>JUPITER-N-160</TD><TD>214.4210875</TD><TD>-12.38125</TD><TD>3</TD><TD>1994-05-31 10:58:17</TD><TD>1994-05-31 10:58:18</TD><TD>1.000</TD><TD>WFPC2 </TD><TD>WF4-FIX</TD><TD>F673N</TD><TD>5217</TD><TD>1995-05-31 15:10:52</TD><TD>U2EQ0101T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U2EQ0102T</TD><TD>JUPITER-N-160</TD><TD>214.4203</TD><TD>-12.3810166667</TD><TD>3</TD><TD>1994-05-31 11:02:17</TD><TD>1994-05-31 11:10:37</TD><TD>500.000</TD><TD>WFPC2 </TD><TD>WF4-FIX</TD><TD>F160BW;F165LP</TD><TD>5217</TD><TD>1995-06-01 02:03:10</TD><TD>U2EQ0102T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U2EQ0103T</TD><TD>JUPITER-N-160</TD><TD>214.415645833</TD><TD>-12.3796388889</TD><TD>3</TD><TD>1994-05-31 12:19:17</TD><TD>1994-05-31 12:27:37</TD><TD>500.000</TD><TD>WFPC2 </TD><TD>WF4-FIX</TD><TD>F130LP;F160BW</TD><TD>5217</TD><TD>1995-06-01 02:15:12</TD><TD>U2EQ0103T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U2EQ0104T</TD><TD>JUPITER-N-160</TD><TD>214.414620833</TD><TD>-12.3793361111</TD><TD>3</TD><TD>1994-05-31 12:34:17</TD><TD>1994-05-31 12:44:17</TD><TD>600.000</TD><TD>WFPC2 </TD><TD>WF4-FIX</TD><TD>F160BW</TD><TD>5217</TD><TD>1995-05-31 23:44:17</TD><TD>U2EQ0104T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U2EQ0105T</TD><TD>JUPITER-N-160</TD><TD>214.4138375</TD><TD>-12.3791027778</TD><TD>3</TD><TD>1994-05-31 12:47:17</TD><TD>1994-05-31 12:57:17</TD><TD>600.000</TD><TD>WFPC2 </TD><TD>WF4-FIX</TD><TD>F160BW</TD><TD>5217</TD><TD>1995-05-31 23:49:21</TD><TD>U2EQ0105T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U2EQ0106T</TD><TD>JUPITER-N-160</TD><TD>214.409916667</TD><TD>-12.3779416667</TD><TD>3</TD><TD>1994-05-31 13:53:17</TD><TD>1994-05-31 14:01:37</TD><TD>500.000</TD><TD>WFPC2 </TD><TD>WF4-FIX</TD><TD>F130LP;F160BW</TD><TD>5217</TD><TD>1995-06-01 02:22:31</TD><TD>U2EQ0106T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U2EQ0107T</TD><TD>JUPITER-N-160</TD><TD>214.408891667</TD><TD>-12.3776388889</TD><TD>3</TD><TD>1994-05-31 14:08:17</TD><TD>1994-05-31 14:18:17</TD><TD>600.000</TD><TD>WFPC2 </TD><TD>WF4-FIX</TD><TD>F160BW</TD><TD>5217</TD><TD>1995-05-31 23:54:33</TD><TD>U2EQ0107T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U2EQ0108T</TD><TD>JUPITER-N-160</TD><TD>214.408108333</TD><TD>-12.3774083333</TD><TD>3</TD><TD>1994-05-31 14:21:17</TD><TD>1994-05-31 14:31:17</TD><TD>600.000</TD><TD>WFPC2 </TD><TD>WF4-FIX</TD><TD>F160BW</TD><TD>5217</TD><TD>1995-05-31 23:59:42</TD><TD>U2EQ0108T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U2EQ0109T</TD><TD>JUPITER-N-160</TD><TD>214.404133333</TD><TD>-12.3762305556</TD><TD>3</TD><TD>1994-05-31 15:29:17</TD><TD>1994-05-31 15:37:37</TD><TD>500.000</TD><TD>WFPC2 </TD><TD>WF4-FIX</TD><TD>F130LP;F160BW</TD><TD>5217</TD><TD>1995-06-01 02:29:55</TD><TD>U2EQ0109T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U2EQ010AT</TD><TD>JUPITER-N-160</TD><TD>214.403108333</TD><TD>-12.3759277778</TD><TD>3</TD><TD>1994-05-31 15:45:17</TD><TD>1994-05-31 15:55:17</TD><TD>600.000</TD><TD>WFPC2 </TD><TD>WF4-FIX</TD><TD>F160BW</TD><TD>5217</TD><TD>1995-06-01 00:05:01</TD><TD>U2EQ010AT</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U2EQ010BT</TD><TD>JUPITER-N-160</TD><TD>214.402329167</TD><TD>-12.3756972222</TD><TD>3</TD><TD>1994-05-31 15:58:17</TD><TD>1994-05-31 16:08:17</TD><TD>600.000</TD><TD>WFPC2 </TD><TD>WF4-FIX</TD><TD>F160BW</TD><TD>5217</TD><TD>1995-06-01 00:10:08</TD><TD>U2EQ010BT</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U2EQ010CT</TD><TD>JUPITER-N-160</TD><TD>214.3983</TD><TD>-12.3745055556</TD><TD>3</TD><TD>1994-05-31 17:06:17</TD><TD>1994-05-31 17:14:37</TD><TD>500.000</TD><TD>WFPC2 </TD><TD>WF4-FIX</TD><TD>F160BW;F165LP</TD><TD>5217</TD><TD>1995-06-01 02:37:40</TD><TD>U2EQ010CT</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U2EQ010DT</TD><TD>JUPITER-N-160</TD><TD>214.398120833</TD><TD>-12.3744527778</TD><TD>3</TD><TD>1994-05-31 17:18:17</TD><TD>1994-05-31 17:18:18</TD><TD>1.000</TD><TD>WFPC2 </TD><TD>WF4-FIX</TD><TD>F673N</TD><TD>5217</TD><TD>1995-06-01 00:18:56</TD><TD>U2EQ010DT</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2IJ0302T</TD><TD>TRITON-ACQ</TD><TD>292.249904167</TD><TD>-21.4061472222</TD><TD>1</TD><TD>1994-09-19 04:53:16</TD><TD>1994-09-19 05:08:33</TD><TD>0.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>MIRROR-N2</TD><TD>5414</TD><TD>1995-09-19 17:58:01</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2IJ0304T</TD><TD>TRITON-ACQ</TD><TD>292.280595833</TD><TD>-21.2612638889</TD><TD>1</TD><TD>1994-09-19 05:21:40</TD><TD>1994-09-19 05:24:48</TD><TD>1.350</TD><TD>HRS   </TD><TD>2.0</TD><TD>MIRROR-N2</TD><TD>5414</TD><TD>1995-09-20 01:26:07</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2IJ0305T</TD><TD>SPYBAL</TD><TD>292.278045833</TD><TD>-21.2581722222</TD><TD>1</TD><TD>1994-09-19 06:39:02</TD><TD>1994-09-19 06:39:39</TD><TD>32.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5414</TD><TD>1995-09-20 01:36:22</TD><TD>Z2IJ0305T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2IJ0306T</TD><TD>NEPTUNE</TD><TD>292.278045833</TD><TD>-21.2581722222</TD><TD>1</TD><TD>1994-09-19 06:40:24</TD><TD>1994-09-19 07:00:31</TD><TD>1088.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5414</TD><TD>1995-09-20 01:40:08</TD><TD>Z2IJ0306T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2IJ0307T</TD><TD>SPYBAL</TD><TD>292.277541667</TD><TD>-21.258275</TD><TD>1</TD><TD>1994-09-19 08:15:28</TD><TD>1994-09-19 08:16:05</TD><TD>32.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5414</TD><TD>1995-09-20 01:41:29</TD><TD>Z2IJ0307T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2IJ0308T</TD><TD>NEPTUNE</TD><TD>292.277541667</TD><TD>-21.258275</TD><TD>1</TD><TD>1994-09-19 08:16:40</TD><TD>1994-09-19 08:36:47</TD><TD>1088.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5414</TD><TD>1995-09-20 01:45:10</TD><TD>Z2IJ0308T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2IJ0309T</TD><TD>SPYBAL</TD><TD>292.277025</TD><TD>-21.2583833333</TD><TD>1</TD><TD>1994-09-19 09:55:01</TD><TD>1994-09-19 09:55:38</TD><TD>32.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5414</TD><TD>1995-09-20 01:46:44</TD><TD>Z2IJ0309T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2IJ030AT</TD><TD>NEPTUNE</TD><TD>292.277025</TD><TD>-21.2583833333</TD><TD>1</TD><TD>1994-09-19 09:56:10</TD><TD>1994-09-19 10:06:44</TD><TD>544.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5414</TD><TD>1995-09-20 01:49:02</TD><TD>Z2IJ030AT</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2IJ030BT</TD><TD>WAVE</TD><TD>0.0001875</TD><TD>-0.00127222222222</TD><TD>1</TD><TD>1994-09-19 10:09:11</TD><TD>1994-09-19 10:09:41</TD><TD>27.200</TD><TD>HRS   </TD><TD>SC2</TD><TD>ECH-A</TD><TD>5414</TD><TD>1995-09-20 01:50:15</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2IJ030CT</TD><TD>SPYBAL</TD><TD>292.276541667</TD><TD>-21.2418194444</TD><TD>1</TD><TD>1994-09-19 11:28:26</TD><TD>1994-09-19 11:29:03</TD><TD>32.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5414</TD><TD>1995-09-20 01:51:37</TD><TD>Z2IJ030CT</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2IJ030DT</TD><TD>NEPTUNE-OFFSET-SKY</TD><TD>292.276541667</TD><TD>-21.2418194444</TD><TD>1</TD><TD>1994-09-19 11:29:34</TD><TD>1994-09-19 11:52:00</TD><TD>1196.799</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5414</TD><TD>1995-09-20 01:55:21</TD><TD>Z2IJ030DT</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2IJ030ET</TD><TD>SPYBAL</TD><TD>292.276033333</TD><TD>-21.241925</TD><TD>1</TD><TD>1994-09-19 13:08:02</TD><TD>1994-09-19 13:08:39</TD><TD>32.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5414</TD><TD>1995-09-20 01:56:15</TD><TD>Z2IJ030ET</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2IJ030FT</TD><TD>NEPTUNE-OFFSET-SKY</TD><TD>292.276033333</TD><TD>-21.241925</TD><TD>1</TD><TD>1994-09-19 13:09:10</TD><TD>1994-09-19 13:20:53</TD><TD>598.400</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5414</TD><TD>1995-09-20 01:58:39</TD><TD>Z2IJ030FT</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2IJ0102T</TD><TD>TITANIA-ACQ</TD><TD>294.371825</TD><TD>-22.2112222222</TD><TD>1</TD><TD>1994-09-20 06:35:52</TD><TD>1994-09-20 06:48:01</TD><TD>0.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>MIRROR-N2</TD><TD>5414</TD><TD>1995-09-21 14:38:15</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2IJ0104T</TD><TD>TITANIA-ACQ</TD><TD>294.399258333</TD><TD>-22.0656027778</TD><TD>1</TD><TD>1994-09-20 07:03:58</TD><TD>1994-09-20 07:07:06</TD><TD>1.350</TD><TD>HRS   </TD><TD>2.0</TD><TD>MIRROR-N2</TD><TD>5414</TD><TD>1995-09-21 14:39:40</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2IJ0201T</TD><TD>SPYBAL</TD><TD>294.403545833</TD><TD>-22.0721944444</TD><TD>1</TD><TD>1994-09-20 08:23:14</TD><TD>1994-09-20 08:23:51</TD><TD>32.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5414</TD><TD>1995-09-21 14:44:25</TD><TD>Z2IJ0201T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2IJ0202T</TD><TD>URANUS-CENTER</TD><TD>294.403545833</TD><TD>-22.0721944444</TD><TD>1</TD><TD>1994-09-20 08:24:22</TD><TD>1994-09-20 08:46:48</TD><TD>1196.799</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5414</TD><TD>1995-09-21 14:53:22</TD><TD>Z2IJ0202T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2IJ0203T</TD><TD>SPYBAL</TD><TD>294.402858333</TD><TD>-22.0722805556</TD><TD>1</TD><TD>1994-09-20 09:59:45</TD><TD>1994-09-20 10:00:22</TD><TD>32.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5414</TD><TD>1995-09-21 14:56:22</TD><TD>Z2IJ0203T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2IJ0204T</TD><TD>URANUS-CENTER</TD><TD>294.402858333</TD><TD>-22.0722805556</TD><TD>1</TD><TD>1994-09-20 10:00:58</TD><TD>1994-09-20 10:12:41</TD><TD>598.400</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5414</TD><TD>1995-09-21 15:01:51</TD><TD>Z2IJ0204T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2IJ0205T</TD><TD>SPYBAL</TD><TD>294.402308333</TD><TD>-22.0722611111</TD><TD>1</TD><TD>1994-09-20 10:18:02</TD><TD>1994-09-20 10:18:39</TD><TD>32.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5414</TD><TD>1995-09-21 15:03:27</TD><TD>Z2IJ0205T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2IJ0206T</TD><TD>URANUS-AUR</TD><TD>294.402308333</TD><TD>-22.0722611111</TD><TD>1</TD><TD>1994-09-20 10:19:10</TD><TD>1994-09-20 10:25:32</TD><TD>299.200</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5414</TD><TD>1995-09-21 15:09:21</TD><TD>Z2IJ0206T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2IJ0207T</TD><TD>SPYBAL</TD><TD>294.401754167</TD><TD>-22.0723305556</TD><TD>1</TD><TD>1994-09-20 11:36:15</TD><TD>1994-09-20 11:36:52</TD><TD>32.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5414</TD><TD>1995-09-21 15:12:25</TD><TD>Z2IJ0207T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2IJ0208T</TD><TD>URANUS-AUR</TD><TD>294.401754167</TD><TD>-22.0723305556</TD><TD>1</TD><TD>1994-09-20 11:37:28</TD><TD>1994-09-20 11:59:55</TD><TD>1196.799</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5414</TD><TD>1995-09-21 15:22:06</TD><TD>Z2IJ0208T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2IJ0209T</TD><TD>SPYBAL</TD><TD>294.40105</TD><TD>-22.0724194444</TD><TD>1</TD><TD>1994-09-20 13:16:09</TD><TD>1994-09-20 13:16:46</TD><TD>32.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5414</TD><TD>1995-09-21 15:24:57</TD><TD>Z2IJ0209T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2IJ020AT</TD><TD>URANUS-AUR</TD><TD>294.40105</TD><TD>-22.0724194444</TD><TD>1</TD><TD>1994-09-20 13:17:22</TD><TD>1994-09-20 13:23:44</TD><TD>299.200</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5414</TD><TD>1995-09-21 15:30:40</TD><TD>Z2IJ020AT</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2IJ020BT</TD><TD>WAVE</TD><TD>0.000216666666667</TD><TD>-0.00126666666667</TD><TD>1</TD><TD>1994-09-20 13:26:05</TD><TD>1994-09-20 13:26:35</TD><TD>27.200</TD><TD>HRS   </TD><TD>SC2</TD><TD>ECH-A</TD><TD>5414</TD><TD>1995-09-21 15:33:05</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2JR0201T</TD><TD>SPYBAL</TD><TD>7.91666666667E-5</TD><TD>-8.33333333333E-6</TD><TD>0</TD><TD>1994-10-24 09:53:35</TD><TD>1994-10-24 09:54:20</TD><TD>32.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5757</TD><TD>1995-10-25 15:32:24</TD><TD>Z2JR0201T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2JR0202T</TD><TD>SATURN-EW</TD><TD>338.4753875</TD><TD>-11.1301222222</TD><TD>0</TD><TD>1994-10-24 09:56:05</TD><TD>1994-10-24 10:14:40</TD><TD>952.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5757</TD><TD>1995-10-25 15:38:01</TD><TD>Z2JR0202T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2JR0203T</TD><TD>SPYBAL</TD><TD>338.4753875</TD><TD>-11.1301194444</TD><TD>0</TD><TD>1994-10-24 11:29:25</TD><TD>1994-10-24 11:30:12</TD><TD>32.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5757</TD><TD>1995-10-25 15:40:08</TD><TD>Z2JR0203T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2JR0204T</TD><TD>SATURN-EW</TD><TD>338.4753875</TD><TD>-11.1301194444</TD><TD>0</TD><TD>1994-10-24 11:30:47</TD><TD>1994-10-24 11:35:38</TD><TD>272.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5757</TD><TD>1995-10-25 15:43:22</TD><TD>Z2JR0204T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2JR0205T</TD><TD>WAVE</TD><TD>0.0004375</TD><TD>-0.00120833333333</TD><TD>0</TD><TD>1994-10-24 11:38:17</TD><TD>1994-10-24 11:40:31</TD><TD>115.600</TD><TD>HRS   </TD><TD>SC2</TD><TD>ECH-A</TD><TD>5757</TD><TD>1995-10-25 15:45:58</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2JR0206T</TD><TD>SPYBAL</TD><TD>7.91666666667E-5</TD><TD>-8.33333333333E-6</TD><TD>0</TD><TD>1994-10-24 13:06:15</TD><TD>1994-10-24 13:07:01</TD><TD>32.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5757</TD><TD>1995-10-25 15:48:24</TD><TD>Z2JR0206T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2JR0207T</TD><TD>SATURN-EW</TD><TD>338.4753875</TD><TD>-11.1301222222</TD><TD>0</TD><TD>1994-10-24 13:08:47</TD><TD>1994-10-24 13:27:22</TD><TD>952.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5757</TD><TD>1995-10-25 15:53:05</TD><TD>Z2JR0207T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2JR0101T</TD><TD>SPYBAL</TD><TD>359.999995833</TD><TD>-5.55555555556E-5</TD><TD>0</TD><TD>1994-10-24 14:42:42</TD><TD>1994-10-24 14:43:28</TD><TD>32.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5757</TD><TD>1995-10-25 15:55:18</TD><TD>Z2JR0101T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2JR0102T</TD><TD>SATURN-NS</TD><TD>338.470125</TD><TD>-11.1317583333</TD><TD>0</TD><TD>1994-10-24 14:45:29</TD><TD>1994-10-24 15:04:05</TD><TD>952.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5757</TD><TD>1995-10-25 15:59:29</TD><TD>Z2JR0102T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2JR0103T</TD><TD>SPYBAL</TD><TD>338.470125</TD><TD>-11.1317583333</TD><TD>0</TD><TD>1994-10-24 16:19:15</TD><TD>1994-10-24 16:20:01</TD><TD>32.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5757</TD><TD>1995-10-25 16:01:12</TD><TD>Z2JR0103T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2JR0104T</TD><TD>SATURN-NS</TD><TD>338.470125</TD><TD>-11.1317583333</TD><TD>0</TD><TD>1994-10-24 16:20:35</TD><TD>1994-10-24 16:25:26</TD><TD>272.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5757</TD><TD>1995-10-25 16:03:14</TD><TD>Z2JR0104T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2JR0105T</TD><TD>WAVE</TD><TD>0.0004625</TD><TD>-0.0012</TD><TD>0</TD><TD>1994-10-24 16:27:59</TD><TD>1994-10-24 16:30:13</TD><TD>115.600</TD><TD>HRS   </TD><TD>SC2</TD><TD>ECH-A</TD><TD>5757</TD><TD>1995-10-25 16:05:03</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2JR0106T</TD><TD>SPYBAL</TD><TD>359.999995833</TD><TD>-5.55555555556E-5</TD><TD>0</TD><TD>1994-10-24 17:56:02</TD><TD>1994-10-24 17:56:48</TD><TD>32.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5757</TD><TD>1995-10-25 16:06:39</TD><TD>Z2JR0106T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2JR0107T</TD><TD>SATURN-NS</TD><TD>338.470125</TD><TD>-11.1317583333</TD><TD>0</TD><TD>1994-10-24 17:58:29</TD><TD>1994-10-24 18:17:04</TD><TD>952.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5757</TD><TD>1995-10-25 16:09:59</TD><TD>Z2JR0107T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U2N20301T</TD><TD>JUPITER-AURORA</TD><TD>253.4237375</TD><TD>-21.7594194444</TD><TD>3</TD><TD>1995-03-09 17:21:16</TD><TD>1995-03-09 17:21:20</TD><TD>3.500</TD><TD>WFPC2 </TD><TD>WF3-FIX</TD><TD>F336W</TD><TD>6145</TD><TD>1996-03-10 14:28:42</TD><TD>U2N20301T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U2N20302T</TD><TD>JUPITER-AURORA</TD><TD>253.424558333</TD><TD>-21.7594944444</TD><TD>3</TD><TD>1995-03-09 17:25:17</TD><TD>1995-03-09 17:36:57</TD><TD>700.000</TD><TD>WFPC2 </TD><TD>F160BN15;F160BN15</TD><TD>F160BN15</TD><TD>6145</TD><TD>1996-03-10 16:52:27</TD><TD>U2N20302T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U2N20303T</TD><TD>JUPITER-AURORA</TD><TD>253.425529167</TD><TD>-21.7595861111</TD><TD>3</TD><TD>1995-03-09 17:44:17</TD><TD>1995-03-09 17:55:57</TD><TD>700.000</TD><TD>WFPC2 </TD><TD>F160BN15;F160BN15</TD><TD>F130LP;F160BN15</TD><TD>6145</TD><TD>1996-03-10 16:59:57</TD><TD>U2N20303T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U2N20201T</TD><TD>JUPITER-AURORA-IO</TD><TD>254.1754125</TD><TD>-21.8229027778</TD><TD>3</TD><TD>1995-03-24 14:24:16</TD><TD>1995-03-24 14:24:20</TD><TD>3.500</TD><TD>WFPC2 </TD><TD>WF3-FIX</TD><TD>F336W</TD><TD>6145</TD><TD>1996-03-24 19:02:37</TD><TD>U2N20201T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U2N20202T</TD><TD>JUPITER-AURORA-IO</TD><TD>254.175708333</TD><TD>-21.8229222222</TD><TD>3</TD><TD>1995-03-24 14:28:17</TD><TD>1995-03-24 14:39:57</TD><TD>700.000</TD><TD>WFPC2 </TD><TD>F160BN15;F160BN15</TD><TD>F160BN15</TD><TD>6145</TD><TD>1996-03-25 19:43:41</TD><TD>U2N20202T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U2N20203T</TD><TD>JUPITER-AURORA-IO</TD><TD>254.176075</TD><TD>-21.8229444444</TD><TD>3</TD><TD>1995-03-24 14:47:17</TD><TD>1995-03-24 14:58:57</TD><TD>700.000</TD><TD>WFPC2 </TD><TD>F160BN15;F160BN15</TD><TD>F130LP;F160BN15</TD><TD>6145</TD><TD>1996-03-25 19:47:33</TD><TD>U2N20203T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U2NO0401T</TD><TD>JUPITER-IMAGE</TD><TD>253.957625</TD><TD>-21.778525</TD><TD>0</TD><TD>1995-04-15 22:08:17</TD><TD>1995-04-15 22:14:07</TD><TD>350.000</TD><TD>WFPC2 </TD><TD>PC1-FIX</TD><TD>F160BW</TD><TD>5167</TD><TD>1996-04-16 12:41:42</TD><TD>U2NO0401T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U2NO0402T</TD><TD>JUPITER-IMAGE</TD><TD>253.957329167</TD><TD>-21.7784916667</TD><TD>0</TD><TD>1995-04-15 22:17:17</TD><TD>1995-04-15 22:23:07</TD><TD>350.000</TD><TD>WFPC2 </TD><TD>PC1-FIX</TD><TD>F160BW</TD><TD>5167</TD><TD>1996-04-16 12:46:10</TD><TD>U2NO0402T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U2NO0403T</TD><TD>JUPITER-IMAGE</TD><TD>253.9569</TD><TD>-21.7784416667</TD><TD>0</TD><TD>1995-04-15 22:30:17</TD><TD>1995-04-15 22:36:07</TD><TD>350.000</TD><TD>WFPC2 </TD><TD>PC1-FIX</TD><TD>F160BW</TD><TD>5167</TD><TD>1996-04-16 12:50:45</TD><TD>U2NO0403T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U2NO0404T</TD><TD>JUPITER-IMAGE</TD><TD>253.956604167</TD><TD>-21.7784083333</TD><TD>0</TD><TD>1995-04-15 22:39:17</TD><TD>1995-04-15 22:45:07</TD><TD>350.000</TD><TD>WFPC2 </TD><TD>PC1-FIX</TD><TD>F160BW</TD><TD>5167</TD><TD>1996-04-16 12:55:20</TD><TD>U2NO0404T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2NO0102T</TD><TD>IO</TD><TD>253.885825</TD><TD>-21.7752972222</TD><TD>0</TD><TD>1995-04-16 15:50:47</TD><TD>1995-04-16 15:53:56</TD><TD>0.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>MIRROR-N2</TD><TD>5167</TD><TD>1996-04-17 12:15:34</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2NO0201T</TD><TD>WAVE</TD><TD>0.000125</TD><TD>0.00127777777778</TD><TD>0</TD><TD>1995-04-16 17:24:25</TD><TD>1995-04-16 17:25:02</TD><TD>32.000</TD><TD>HRS   </TD><TD>SC2</TD><TD>ECH-A</TD><TD>5167</TD><TD>1996-04-17 12:18:02</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2NO0202T</TD><TD>WAVE</TD><TD>0.000125</TD><TD>0.00127777777778</TD><TD>0</TD><TD>1995-04-16 17:25:47</TD><TD>1995-04-16 17:26:44</TD><TD>54.400</TD><TD>HRS   </TD><TD>SC2</TD><TD>ECH-A</TD><TD>5167</TD><TD>1996-04-17 12:19:33</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2NO0203T</TD><TD>JUPITER-AM</TD><TD>253.911341667</TD><TD>-21.7740222222</TD><TD>0</TD><TD>1995-04-16 17:28:53</TD><TD>1995-04-16 17:45:15</TD><TD>979.200</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5167</TD><TD>1996-04-17 12:21:19</TD><TD>Z2NO0203T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2NO0204T</TD><TD>SPYBAL</TD><TD>253.910633333</TD><TD>-21.7739416667</TD><TD>0</TD><TD>1995-04-16 17:49:25</TD><TD>1995-04-16 17:50:03</TD><TD>32.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5167</TD><TD>1996-04-17 12:22:53</TD><TD>Z2NO0204T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2NO0205T</TD><TD>JUPITER-AM</TD><TD>253.910633333</TD><TD>-21.7739416667</TD><TD>0</TD><TD>1995-04-16 17:50:35</TD><TD>1995-04-16 18:06:57</TD><TD>979.200</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5167</TD><TD>1996-04-17 12:24:32</TD><TD>Z2NO0205T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2NO0301T</TD><TD>SPYBAL</TD><TD>253.9041</TD><TD>-21.7732638889</TD><TD>0</TD><TD>1995-04-16 19:00:49</TD><TD>1995-04-16 19:01:36</TD><TD>32.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5167</TD><TD>1996-04-17 12:25:46</TD><TD>Z2NO0301T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2NO0302T</TD><TD>JUPITER-PM</TD><TD>253.9041</TD><TD>-21.7732638889</TD><TD>0</TD><TD>1995-04-16 19:02:11</TD><TD>1995-04-16 19:19:13</TD><TD>1006.400</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5167</TD><TD>1996-04-17 12:27:34</TD><TD>Z2NO0302T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2NO0303T</TD><TD>SPYBAL</TD><TD>253.9032625</TD><TD>-21.7731694444</TD><TD>0</TD><TD>1995-04-16 19:24:54</TD><TD>1995-04-16 19:25:40</TD><TD>32.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5167</TD><TD>1996-04-17 12:29:05</TD><TD>Z2NO0303T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2NO0304T</TD><TD>JUPITER-PM</TD><TD>253.9032625</TD><TD>-21.7731694444</TD><TD>0</TD><TD>1995-04-16 19:26:11</TD><TD>1995-04-16 19:43:13</TD><TD>1006.400</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5167</TD><TD>1996-04-17 12:30:14</TD><TD>Z2NO0304T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2NO0702T</TD><TD>IO</TD><TD>253.8623125</TD><TD>-21.7751277778</TD><TD>0</TD><TD>1995-04-17 01:38:59</TD><TD>1995-04-17 01:42:14</TD><TD>0.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>MIRROR-N2</TD><TD>5167</TD><TD>1996-04-17 15:11:01</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2NO0801T</TD><TD>SPYBAL</TD><TD>253.891129167</TD><TD>-21.7717527778</TD><TD>0</TD><TD>1995-04-17 03:03:38</TD><TD>1995-04-17 03:04:24</TD><TD>32.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5167</TD><TD>1996-04-17 15:18:05</TD><TD>Z2NO0801T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2NO0802T</TD><TD>JUPITER-AM</TD><TD>253.891129167</TD><TD>-21.7717527778</TD><TD>0</TD><TD>1995-04-17 03:05:13</TD><TD>1995-04-17 03:22:15</TD><TD>1006.400</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5167</TD><TD>1996-04-17 15:23:11</TD><TD>Z2NO0802T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2NO0803T</TD><TD>SPYBAL</TD><TD>253.890279167</TD><TD>-21.7716583333</TD><TD>0</TD><TD>1995-04-17 03:27:22</TD><TD>1995-04-17 03:28:07</TD><TD>32.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5167</TD><TD>1996-04-17 15:26:10</TD><TD>Z2NO0803T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2NO0804T</TD><TD>JUPITER-AM</TD><TD>253.890279167</TD><TD>-21.7716583333</TD><TD>0</TD><TD>1995-04-17 03:28:41</TD><TD>1995-04-17 03:45:43</TD><TD>1006.400</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5167</TD><TD>1996-04-17 15:30:44</TD><TD>Z2NO0804T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2NO0901T</TD><TD>SPYBAL</TD><TD>253.883633333</TD><TD>-21.7709666667</TD><TD>0</TD><TD>1995-04-17 04:39:57</TD><TD>1995-04-17 04:40:43</TD><TD>32.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5167</TD><TD>1996-04-17 15:34:07</TD><TD>Z2NO0901T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2NO0902T</TD><TD>JUPITER-PM</TD><TD>253.883633333</TD><TD>-21.7709666667</TD><TD>0</TD><TD>1995-04-17 04:41:17</TD><TD>1995-04-17 04:58:19</TD><TD>1006.400</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5167</TD><TD>1996-04-17 15:38:31</TD><TD>Z2NO0902T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2NO0903T</TD><TD>SPYBAL</TD><TD>253.882775</TD><TD>-21.7708722222</TD><TD>0</TD><TD>1995-04-17 05:03:49</TD><TD>1995-04-17 05:04:35</TD><TD>32.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5167</TD><TD>1996-04-17 15:42:43</TD><TD>Z2NO0903T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2NO0501T</TD><TD>SPYBAL</TD><TD>254.07685</TD><TD>-21.7946333333</TD><TD>0</TD><TD>1995-04-17 15:57:43</TD><TD>1995-04-17 15:58:29</TD><TD>32.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5167</TD><TD>1996-04-18 13:07:45</TD><TD>Z2NO0501T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2NO0503T</TD><TD>SPYBAL</TD><TD>254.076083333</TD><TD>-21.79455</TD><TD>0</TD><TD>1995-04-17 16:18:24</TD><TD>1995-04-17 16:19:11</TD><TD>32.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5167</TD><TD>1996-04-18 13:08:51</TD><TD>Z2NO0503T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2NO0A02T</TD><TD>IO</TD><TD>253.884754167</TD><TD>-21.7750111111</TD><TD>0</TD><TD>1995-04-17 20:48:11</TD><TD>1995-04-17 20:51:23</TD><TD>0.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>MIRROR-N2</TD><TD>5167</TD><TD>1996-04-18 13:23:31</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2NO0B01T</TD><TD>SPYBAL</TD><TD>253.848854167</TD><TD>-21.7670305556</TD><TD>0</TD><TD>1995-04-17 22:21:47</TD><TD>1995-04-17 22:22:33</TD><TD>32.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5167</TD><TD>1996-04-18 13:33:16</TD><TD>Z2NO0B01T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2NO0B02T</TD><TD>JUPITER-AM</TD><TD>253.848854167</TD><TD>-21.7670305556</TD><TD>0</TD><TD>1995-04-17 22:23:05</TD><TD>1995-04-17 22:40:07</TD><TD>1006.400</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5167</TD><TD>1996-04-18 13:36:38</TD><TD>Z2NO0B02T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2NO0B03T</TD><TD>SPYBAL</TD><TD>253.847958333</TD><TD>-21.7669305556</TD><TD>0</TD><TD>1995-04-17 22:45:25</TD><TD>1995-04-17 22:46:11</TD><TD>32.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5167</TD><TD>1996-04-18 13:39:16</TD><TD>Z2NO0B03T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2NO0B04T</TD><TD>JUPITER-AM</TD><TD>253.847958333</TD><TD>-21.7669305556</TD><TD>0</TD><TD>1995-04-17 22:46:47</TD><TD>1995-04-17 23:03:49</TD><TD>1006.400</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5167</TD><TD>1996-04-18 13:42:06</TD><TD>Z2NO0B04T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2NO0C01T</TD><TD>SPYBAL</TD><TD>253.841179167</TD><TD>-21.7662277778</TD><TD>0</TD><TD>1995-04-17 23:58:00</TD><TD>1995-04-17 23:58:46</TD><TD>32.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5167</TD><TD>1996-04-18 13:44:15</TD><TD>Z2NO0C01T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2NO0C02T</TD><TD>JUPITER-PM</TD><TD>253.841179167</TD><TD>-21.7662277778</TD><TD>0</TD><TD>1995-04-17 23:59:17</TD><TD>1995-04-18 00:16:19</TD><TD>1006.400</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5167</TD><TD>1996-04-18 13:47:34</TD><TD>Z2NO0C02T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2NO0C03T</TD><TD>SPYBAL</TD><TD>253.840279167</TD><TD>-21.7661277778</TD><TD>0</TD><TD>1995-04-18 00:21:58</TD><TD>1995-04-18 00:22:43</TD><TD>32.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5167</TD><TD>1996-04-18 13:49:46</TD><TD>Z2NO0C03T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2NO0C04T</TD><TD>JUPITER-PM</TD><TD>253.840279167</TD><TD>-21.7661277778</TD><TD>0</TD><TD>1995-04-18 00:23:17</TD><TD>1995-04-18 00:40:19</TD><TD>1006.400</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5167</TD><TD>1996-04-18 13:52:14</TD><TD>Z2NO0C04T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2NQ0A02T</TD><TD>IO-ACQ</TD><TD>252.996345833</TD><TD>-21.6808055556</TD><TD>2</TD><TD>1995-04-29 11:02:35</TD><TD>1995-04-29 11:09:58</TD><TD>0.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>MIRROR-N2</TD><TD>5424</TD><TD>1996-04-29 19:35:37</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2NQ0B01T</TD><TD>SPYBAL</TD><TD>253.022295833</TD><TD>-21.6771277778</TD><TD>2</TD><TD>1995-04-29 12:36:22</TD><TD>1995-04-29 12:36:37</TD><TD>4.800</TD><TD>HRS   </TD><TD>2.0</TD><TD>G160M</TD><TD>5424</TD><TD>1996-04-29 19:39:39</TD><TD>Z2NQ0B01T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2NQ0B02T</TD><TD>JUPITER-N3A</TD><TD>253.022295833</TD><TD>-21.6771277778</TD><TD>2</TD><TD>1995-04-29 12:37:11</TD><TD>1995-04-29 12:50:21</TD><TD>652.800</TD><TD>HRS   </TD><TD>2.0</TD><TD>G160M</TD><TD>5424</TD><TD>1996-04-29 19:43:16</TD><TD>Z2NQ0B02T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2NQ0C01T</TD><TD>SPYBAL</TD><TD>253.0203375</TD><TD>-21.6768972222</TD><TD>2</TD><TD>1995-04-29 12:58:29</TD><TD>1995-04-29 12:58:44</TD><TD>4.800</TD><TD>HRS   </TD><TD>2.0</TD><TD>G160M</TD><TD>5424</TD><TD>1996-04-29 19:45:54</TD><TD>Z2NQ0C01T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2NQ0C02T</TD><TD>JUPITER-N3B</TD><TD>253.0203375</TD><TD>-21.6768972222</TD><TD>2</TD><TD>1995-04-29 12:59:17</TD><TD>1995-04-29 13:12:26</TD><TD>652.800</TD><TD>HRS   </TD><TD>2.0</TD><TD>G160M</TD><TD>5424</TD><TD>1996-04-29 19:49:54</TD><TD>Z2NQ0C02T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2NQ0D01T</TD><TD>SPYBAL</TD><TD>253.0123875</TD><TD>-21.67615</TD><TD>2</TD><TD>1995-04-29 14:12:43</TD><TD>1995-04-29 14:12:58</TD><TD>4.800</TD><TD>HRS   </TD><TD>2.0</TD><TD>G160M</TD><TD>5424</TD><TD>1996-04-29 19:52:25</TD><TD>Z2NQ0D01T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2NQ0D02T</TD><TD>JUPITER-N4A</TD><TD>253.0123875</TD><TD>-21.67615</TD><TD>2</TD><TD>1995-04-29 14:13:29</TD><TD>1995-04-29 14:28:26</TD><TD>761.600</TD><TD>HRS   </TD><TD>2.0</TD><TD>G160M</TD><TD>5424</TD><TD>1996-04-29 19:55:41</TD><TD>Z2NQ0D02T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2NQ0E01T</TD><TD>SPYBAL</TD><TD>253.010433333</TD><TD>-21.6759666667</TD><TD>2</TD><TD>1995-04-29 14:35:17</TD><TD>1995-04-29 14:35:32</TD><TD>4.800</TD><TD>HRS   </TD><TD>2.0</TD><TD>G160M</TD><TD>5424</TD><TD>1996-04-29 19:57:37</TD><TD>Z2NQ0E01T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2NQ0E02T</TD><TD>JUPITER-N4B</TD><TD>253.010433333</TD><TD>-21.6759666667</TD><TD>2</TD><TD>1995-04-29 14:36:05</TD><TD>1995-04-29 14:51:02</TD><TD>761.600</TD><TD>HRS   </TD><TD>2.0</TD><TD>G160M</TD><TD>5424</TD><TD>1996-04-29 20:00:25</TD><TD>Z2NQ0E02T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2NQ0102T</TD><TD>IO-ACQ</TD><TD>252.7058125</TD><TD>-21.6469277778</TD><TD>2</TD><TD>1995-05-02 14:38:53</TD><TD>1995-05-02 14:46:23</TD><TD>0.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>MIRROR-N2</TD><TD>5424</TD><TD>1996-05-03 21:57:21</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2NQ0201T</TD><TD>SPYBAL</TD><TD>252.728241667</TD><TD>-21.6557722222</TD><TD>2</TD><TD>1995-05-02 16:12:04</TD><TD>1995-05-02 16:12:20</TD><TD>4.800</TD><TD>HRS   </TD><TD>2.0</TD><TD>G160M</TD><TD>5424</TD><TD>1996-05-03 22:05:52</TD><TD>Z2NQ0201T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2NQ0202T</TD><TD>JUPITER-S1A</TD><TD>252.728241667</TD><TD>-21.6557722222</TD><TD>2</TD><TD>1995-05-02 16:13:07</TD><TD>1995-05-02 16:28:15</TD><TD>761.600</TD><TD>HRS   </TD><TD>2.0</TD><TD>G160M</TD><TD>5424</TD><TD>1996-05-03 22:09:26</TD><TD>Z2NQ0202T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2NQ0301T</TD><TD>SPYBAL</TD><TD>252.726254167</TD><TD>-21.6555722222</TD><TD>2</TD><TD>1995-05-02 16:34:35</TD><TD>1995-05-02 16:34:50</TD><TD>4.800</TD><TD>HRS   </TD><TD>2.0</TD><TD>G160M</TD><TD>5424</TD><TD>1996-05-03 22:11:06</TD><TD>Z2NQ0301T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2NQ0302T</TD><TD>JUPITER-S1B</TD><TD>252.726254167</TD><TD>-21.6555722222</TD><TD>2</TD><TD>1995-05-02 16:35:23</TD><TD>1995-05-02 16:50:22</TD><TD>761.600</TD><TD>HRS   </TD><TD>2.0</TD><TD>G160M</TD><TD>5424</TD><TD>1996-05-03 22:14:29</TD><TD>Z2NQ0302T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2NQ0401T</TD><TD>SPYBAL</TD><TD>252.721516667</TD><TD>-21.6549277778</TD><TD>2</TD><TD>1995-05-02 17:48:22</TD><TD>1995-05-02 17:48:37</TD><TD>4.800</TD><TD>HRS   </TD><TD>2.0</TD><TD>G160M</TD><TD>5424</TD><TD>1996-05-03 22:16:15</TD><TD>Z2NQ0401T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2NQ0402T</TD><TD>JUPITER-S2A</TD><TD>252.721516667</TD><TD>-21.6549277778</TD><TD>2</TD><TD>1995-05-02 17:49:25</TD><TD>1995-05-02 18:04:30</TD><TD>761.600</TD><TD>HRS   </TD><TD>2.0</TD><TD>G160M</TD><TD>5424</TD><TD>1996-05-03 22:19:30</TD><TD>Z2NQ0402T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2NQ0501T</TD><TD>SPYBAL</TD><TD>252.719491667</TD><TD>-21.6547277778</TD><TD>2</TD><TD>1995-05-02 18:11:05</TD><TD>1995-05-02 18:11:20</TD><TD>4.800</TD><TD>HRS   </TD><TD>2.0</TD><TD>G160M</TD><TD>5424</TD><TD>1996-05-03 22:20:39</TD><TD>Z2NQ0501T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2NQ0502T</TD><TD>JUPITER-S2B</TD><TD>252.719491667</TD><TD>-21.6547277778</TD><TD>2</TD><TD>1995-05-02 18:11:53</TD><TD>1995-05-02 18:26:51</TD><TD>761.600</TD><TD>HRS   </TD><TD>2.0</TD><TD>G160M</TD><TD>5424</TD><TD>1996-05-03 22:23:48</TD><TD>Z2NQ0502T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2NQ0601T</TD><TD>SPYBAL</TD><TD>252.720216667</TD><TD>-21.64455</TD><TD>2</TD><TD>1995-05-02 19:24:52</TD><TD>1995-05-02 19:25:07</TD><TD>4.800</TD><TD>HRS   </TD><TD>2.0</TD><TD>G160M</TD><TD>5424</TD><TD>1996-05-03 22:25:17</TD><TD>Z2NQ0601T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2NQ0602T</TD><TD>JUPITER-N1A</TD><TD>252.720216667</TD><TD>-21.64455</TD><TD>2</TD><TD>1995-05-02 19:25:55</TD><TD>1995-05-02 19:40:57</TD><TD>761.600</TD><TD>HRS   </TD><TD>2.0</TD><TD>G160M</TD><TD>5424</TD><TD>1996-05-03 22:28:17</TD><TD>Z2NQ0602T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2NQ0701T</TD><TD>SPYBAL</TD><TD>252.71815</TD><TD>-21.6442972222</TD><TD>2</TD><TD>1995-05-02 19:47:35</TD><TD>1995-05-02 19:47:50</TD><TD>4.800</TD><TD>HRS   </TD><TD>2.0</TD><TD>G160M</TD><TD>5424</TD><TD>1996-05-03 22:29:34</TD><TD>Z2NQ0701T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2NQ0702T</TD><TD>JUPITER-N1B</TD><TD>252.71815</TD><TD>-21.6442972222</TD><TD>2</TD><TD>1995-05-02 19:48:23</TD><TD>1995-05-02 20:03:25</TD><TD>761.600</TD><TD>HRS   </TD><TD>2.0</TD><TD>G160M</TD><TD>5424</TD><TD>1996-05-03 22:32:31</TD><TD>Z2NQ0702T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2NQ0801T</TD><TD>SPYBAL</TD><TD>252.709991667</TD><TD>-21.6433916667</TD><TD>2</TD><TD>1995-05-02 21:01:22</TD><TD>1995-05-02 21:01:37</TD><TD>4.800</TD><TD>HRS   </TD><TD>2.0</TD><TD>G160M</TD><TD>5424</TD><TD>1996-05-03 22:33:42</TD><TD>Z2NQ0801T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2NQ0802T</TD><TD>JUPITER-N2A</TD><TD>252.709991667</TD><TD>-21.6433916667</TD><TD>2</TD><TD>1995-05-02 21:02:11</TD><TD>1995-05-02 21:19:21</TD><TD>736.400</TD><TD>HRS   </TD><TD>2.0</TD><TD>G160M</TD><TD>5424</TD><TD>1996-05-03 22:35:45</TD><TD>Z2NQ0802T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2NQ0901T</TD><TD>SPYBAL</TD><TD>252.707645833</TD><TD>-21.6431555556</TD><TD>2</TD><TD>1995-05-02 21:25:23</TD><TD>1995-05-02 21:25:39</TD><TD>4.800</TD><TD>HRS   </TD><TD>2.0</TD><TD>G160M</TD><TD>5424</TD><TD>1996-05-03 22:36:48</TD><TD>Z2NQ0901T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2NQ0902T</TD><TD>JUPITER-N2B</TD><TD>252.707645833</TD><TD>-21.6431555556</TD><TD>2</TD><TD>1995-05-02 21:26:25</TD><TD>1995-05-02 21:41:24</TD><TD>761.600</TD><TD>HRS   </TD><TD>2.0</TD><TD>G160M</TD><TD>5424</TD><TD>1996-05-03 22:38:50</TD><TD>Z2NQ0902T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2NQ5102T</TD><TD>IO-ACQ</TD><TD>247.854795833</TD><TD>-21.0849722222</TD><TD>2</TD><TD>1995-06-10 11:41:05</TD><TD>1995-06-10 11:49:07</TD><TD>0.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>MIRROR-N2</TD><TD>5424</TD><TD>1996-06-10 22:57:21</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2NQ5201T</TD><TD>SPYBAL</TD><TD>247.872966667</TD><TD>-21.0944722222</TD><TD>2</TD><TD>1995-06-10 13:14:40</TD><TD>1995-06-10 13:14:55</TD><TD>4.800</TD><TD>HRS   </TD><TD>2.0</TD><TD>G160M</TD><TD>5424</TD><TD>1996-06-10 23:02:05</TD><TD>Z2NQ5201T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2NQ5202T</TD><TD>JUPITER-S1A</TD><TD>247.872966667</TD><TD>-21.0944722222</TD><TD>2</TD><TD>1995-06-10 13:15:43</TD><TD>1995-06-10 13:30:40</TD><TD>761.600</TD><TD>HRS   </TD><TD>2.0</TD><TD>G160M</TD><TD>5424</TD><TD>1996-06-10 23:04:47</TD><TD>Z2NQ5202T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2NQ5301T</TD><TD>SPYBAL</TD><TD>247.870433333</TD><TD>-21.0941694444</TD><TD>2</TD><TD>1995-06-10 13:37:23</TD><TD>1995-06-10 13:37:38</TD><TD>4.800</TD><TD>HRS   </TD><TD>2.0</TD><TD>G160M</TD><TD>5424</TD><TD>1996-06-10 23:06:06</TD><TD>Z2NQ5301T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2NQ5302T</TD><TD>JUPITER-S1B</TD><TD>247.870433333</TD><TD>-21.0941694444</TD><TD>2</TD><TD>1995-06-10 13:38:11</TD><TD>1995-06-10 13:53:09</TD><TD>761.600</TD><TD>HRS   </TD><TD>2.0</TD><TD>G160M</TD><TD>5424</TD><TD>1996-06-10 23:08:35</TD><TD>Z2NQ5302T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2NQ5401T</TD><TD>SPYBAL</TD><TD>247.8638625</TD><TD>-21.093225</TD><TD>2</TD><TD>1995-06-10 14:50:58</TD><TD>1995-06-10 14:51:13</TD><TD>4.800</TD><TD>HRS   </TD><TD>2.0</TD><TD>G160M</TD><TD>5424</TD><TD>1996-06-10 23:09:50</TD><TD>Z2NQ5401T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2NQ5402T</TD><TD>JUPITER-S2A</TD><TD>247.8638625</TD><TD>-21.093225</TD><TD>2</TD><TD>1995-06-10 14:52:01</TD><TD>1995-06-10 15:06:56</TD><TD>761.600</TD><TD>HRS   </TD><TD>2.0</TD><TD>G160M</TD><TD>5424</TD><TD>1996-06-10 23:12:06</TD><TD>Z2NQ5402T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2NQ5501T</TD><TD>SPYBAL</TD><TD>247.861291667</TD><TD>-21.0929222222</TD><TD>2</TD><TD>1995-06-10 15:13:53</TD><TD>1995-06-10 15:14:09</TD><TD>4.800</TD><TD>HRS   </TD><TD>2.0</TD><TD>G160M</TD><TD>5424</TD><TD>1996-06-10 23:13:28</TD><TD>Z2NQ5501T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2NQ5502T</TD><TD>JUPITER-S2B</TD><TD>247.861291667</TD><TD>-21.0929222222</TD><TD>2</TD><TD>1995-06-10 15:14:41</TD><TD>1995-06-10 15:29:36</TD><TD>761.600</TD><TD>HRS   </TD><TD>2.0</TD><TD>G160M</TD><TD>5424</TD><TD>1996-06-10 23:15:08</TD><TD>Z2NQ5502T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2NQ5601T</TD><TD>SPYBAL</TD><TD>247.860691667</TD><TD>-21.0823083333</TD><TD>2</TD><TD>1995-06-10 16:27:28</TD><TD>1995-06-10 16:27:43</TD><TD>4.800</TD><TD>HRS   </TD><TD>2.0</TD><TD>G160M</TD><TD>5424</TD><TD>1996-06-10 23:16:21</TD><TD>Z2NQ5601T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2NQ5602T</TD><TD>JUPITER-N1A</TD><TD>247.860691667</TD><TD>-21.0823083333</TD><TD>2</TD><TD>1995-06-10 16:28:31</TD><TD>1995-06-10 16:43:29</TD><TD>761.600</TD><TD>HRS   </TD><TD>2.0</TD><TD>G160M</TD><TD>5424</TD><TD>1996-06-10 23:18:03</TD><TD>Z2NQ5602T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2NQ5701T</TD><TD>SPYBAL</TD><TD>247.85795</TD><TD>-21.0819333333</TD><TD>2</TD><TD>1995-06-10 16:50:23</TD><TD>1995-06-10 16:50:39</TD><TD>4.800</TD><TD>HRS   </TD><TD>2.0</TD><TD>G160M</TD><TD>5424</TD><TD>1996-06-10 23:18:59</TD><TD>Z2NQ5701T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2NQ5702T</TD><TD>JUPITER-N1B</TD><TD>247.85795</TD><TD>-21.0819333333</TD><TD>2</TD><TD>1995-06-10 16:51:25</TD><TD>1995-06-10 17:06:21</TD><TD>761.600</TD><TD>HRS   </TD><TD>2.0</TD><TD>G160M</TD><TD>5424</TD><TD>1996-06-10 23:20:22</TD><TD>Z2NQ5702T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2NQ5801T</TD><TD>SPYBAL</TD><TD>247.847883333</TD><TD>-21.0806361111</TD><TD>2</TD><TD>1995-06-10 18:03:59</TD><TD>1995-06-10 18:04:15</TD><TD>4.800</TD><TD>HRS   </TD><TD>2.0</TD><TD>G160M</TD><TD>5424</TD><TD>1996-06-10 23:21:08</TD><TD>Z2NQ5801T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2NQ5802T</TD><TD>JUPITER-N2A</TD><TD>247.847883333</TD><TD>-21.0806361111</TD><TD>2</TD><TD>1995-06-10 18:05:01</TD><TD>1995-06-10 18:19:57</TD><TD>761.600</TD><TD>HRS   </TD><TD>2.0</TD><TD>G160M</TD><TD>5424</TD><TD>1996-06-10 23:22:27</TD><TD>Z2NQ5802T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2NQ5901T</TD><TD>SPYBAL</TD><TD>247.845004167</TD><TD>-21.0802944444</TD><TD>2</TD><TD>1995-06-10 18:27:59</TD><TD>1995-06-10 18:28:15</TD><TD>4.800</TD><TD>HRS   </TD><TD>2.0</TD><TD>G160M</TD><TD>5424</TD><TD>1996-06-10 23:23:14</TD><TD>Z2NQ5901T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2NQ5902T</TD><TD>JUPITER-N2B</TD><TD>247.845004167</TD><TD>-21.0802944444</TD><TD>2</TD><TD>1995-06-10 18:28:47</TD><TD>1995-06-10 18:43:46</TD><TD>761.600</TD><TD>HRS   </TD><TD>2.0</TD><TD>G160M</TD><TD>5424</TD><TD>1996-06-10 23:24:30</TD><TD>Z2NQ5902T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2O50102T</TD><TD>IO</TD><TD>243.821625</TD><TD>-20.6186138889</TD><TD>1</TD><TD>1995-07-28 04:53:59</TD><TD>1995-07-28 04:57:19</TD><TD>0.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>MIRROR-N2</TD><TD>5348</TD><TD>1996-07-28 14:32:50</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2O50104T</TD><TD>IO</TD><TD>243.820770833</TD><TD>-20.6185305556</TD><TD>1</TD><TD>1995-07-28 05:04:05</TD><TD>1995-07-28 05:04:40</TD><TD>0.200</TD><TD>HRS   </TD><TD>2.0</TD><TD>MIRROR-N2</TD><TD>5348</TD><TD>1996-07-28 14:33:38</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2O50201T</TD><TD>SPYBAL</TD><TD>243.846608333</TD><TD>-20.6193611111</TD><TD>1</TD><TD>1995-07-28 06:27:40</TD><TD>1995-07-28 06:27:55</TD><TD>4.800</TD><TD>HRS   </TD><TD>2.0</TD><TD>G160M</TD><TD>5348</TD><TD>1996-07-28 14:35:20</TD><TD>Z2O50201T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2O50202T</TD><TD>JUP-N1-AURORA</TD><TD>243.846608333</TD><TD>-20.6193611111</TD><TD>1</TD><TD>1995-07-28 06:28:43</TD><TD>1995-07-28 06:54:49</TD><TD>1550.400</TD><TD>HRS   </TD><TD>2.0</TD><TD>G160M</TD><TD>5348</TD><TD>1996-07-28 14:36:37</TD><TD>Z2O50202T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2O50203T</TD><TD>SPYBAL</TD><TD>243.846191667</TD><TD>-20.619375</TD><TD>1</TD><TD>1995-07-28 07:00:22</TD><TD>1995-07-28 07:00:38</TD><TD>4.800</TD><TD>HRS   </TD><TD>2.0</TD><TD>G160M</TD><TD>5348</TD><TD>1996-07-28 14:37:38</TD><TD>Z2O50203T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2O50204T</TD><TD>JUP-N1-AURORA</TD><TD>243.846191667</TD><TD>-20.619375</TD><TD>1</TD><TD>1995-07-28 07:01:25</TD><TD>1995-07-28 07:09:23</TD><TD>462.400</TD><TD>HRS   </TD><TD>2.0</TD><TD>G160M</TD><TD>5348</TD><TD>1996-07-28 14:38:57</TD><TD>Z2O50204T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2O50301T</TD><TD>SPYBAL</TD><TD>243.8415</TD><TD>-20.61875</TD><TD>1</TD><TD>1995-07-28 08:03:51</TD><TD>1995-07-28 08:04:07</TD><TD>4.800</TD><TD>HRS   </TD><TD>2.0</TD><TD>G160M</TD><TD>5348</TD><TD>1996-07-28 14:40:01</TD><TD>Z2O50301T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2O50302T</TD><TD>JUP-N2-AURORA</TD><TD>243.8415</TD><TD>-20.61875</TD><TD>1</TD><TD>1995-07-28 08:04:55</TD><TD>1995-07-28 08:31:01</TD><TD>1550.400</TD><TD>HRS   </TD><TD>2.0</TD><TD>G160M</TD><TD>5348</TD><TD>1996-07-28 14:41:00</TD><TD>Z2O50302T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2O50303T</TD><TD>SPYBAL</TD><TD>243.8410875</TD><TD>-20.6187666667</TD><TD>1</TD><TD>1995-07-28 08:36:58</TD><TD>1995-07-28 08:37:13</TD><TD>4.800</TD><TD>HRS   </TD><TD>2.0</TD><TD>G160M</TD><TD>5348</TD><TD>1996-07-28 14:41:42</TD><TD>Z2O50303T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2O50304T</TD><TD>JUP-N2-AURORA</TD><TD>243.8410875</TD><TD>-20.6187666667</TD><TD>1</TD><TD>1995-07-28 08:38:01</TD><TD>1995-07-28 08:46:00</TD><TD>462.400</TD><TD>HRS   </TD><TD>2.0</TD><TD>G160M</TD><TD>5348</TD><TD>1996-07-28 14:42:36</TD><TD>Z2O50304T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2O50402T</TD><TD>IO</TD><TD>243.807816667</TD><TD>-20.6199972222</TD><TD>1</TD><TD>1995-07-28 14:33:23</TD><TD>1995-07-28 14:37:10</TD><TD>0.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>MIRROR-N2</TD><TD>5348</TD><TD>1996-07-29 12:27:41</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2O50404T</TD><TD>IO</TD><TD>243.808220833</TD><TD>-20.6201305556</TD><TD>1</TD><TD>1995-07-28 14:43:29</TD><TD>1995-07-28 14:44:04</TD><TD>0.200</TD><TD>HRS   </TD><TD>2.0</TD><TD>MIRROR-N2</TD><TD>5348</TD><TD>1996-07-29 12:30:09</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2O50501T</TD><TD>SPYBAL</TD><TD>243.8395375</TD><TD>-20.6196638889</TD><TD>1</TD><TD>1995-07-28 16:07:04</TD><TD>1995-07-28 16:07:19</TD><TD>4.800</TD><TD>HRS   </TD><TD>2.0</TD><TD>G160M</TD><TD>5348</TD><TD>1996-07-29 12:33:50</TD><TD>Z2O50501T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2O50502T</TD><TD>JUP-N1-AURORA</TD><TD>243.8395375</TD><TD>-20.6196638889</TD><TD>1</TD><TD>1995-07-28 16:08:07</TD><TD>1995-07-28 16:34:13</TD><TD>1550.400</TD><TD>HRS   </TD><TD>2.0</TD><TD>G160M</TD><TD>5348</TD><TD>1996-07-29 12:37:33</TD><TD>Z2O50502T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2O50503T</TD><TD>SPYBAL</TD><TD>243.83915</TD><TD>-20.6196833333</TD><TD>1</TD><TD>1995-07-28 16:39:46</TD><TD>1995-07-28 16:40:01</TD><TD>4.800</TD><TD>HRS   </TD><TD>2.0</TD><TD>G160M</TD><TD>5348</TD><TD>1996-07-29 12:39:38</TD><TD>Z2O50503T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2O50504T</TD><TD>JUP-N1-AURORA</TD><TD>243.83915</TD><TD>-20.6196833333</TD><TD>1</TD><TD>1995-07-28 16:40:49</TD><TD>1995-07-28 16:48:47</TD><TD>462.400</TD><TD>HRS   </TD><TD>2.0</TD><TD>G160M</TD><TD>5348</TD><TD>1996-07-29 12:42:27</TD><TD>Z2O50504T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2O50601T</TD><TD>SPYBAL</TD><TD>243.834520833</TD><TD>-20.6190694444</TD><TD>1</TD><TD>1995-07-28 17:43:15</TD><TD>1995-07-28 17:43:30</TD><TD>4.800</TD><TD>HRS   </TD><TD>2.0</TD><TD>G160M</TD><TD>5348</TD><TD>1996-07-29 12:44:58</TD><TD>Z2O50601T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2O50602T</TD><TD>JUP-N2-AURORA</TD><TD>243.834520833</TD><TD>-20.6190694444</TD><TD>1</TD><TD>1995-07-28 17:44:19</TD><TD>1995-07-28 18:10:25</TD><TD>1550.400</TD><TD>HRS   </TD><TD>2.0</TD><TD>G160M</TD><TD>5348</TD><TD>1996-07-29 12:48:13</TD><TD>Z2O50602T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2O50603T</TD><TD>SPYBAL</TD><TD>243.8341375</TD><TD>-20.6190888889</TD><TD>1</TD><TD>1995-07-28 18:16:22</TD><TD>1995-07-28 18:16:38</TD><TD>4.800</TD><TD>HRS   </TD><TD>2.0</TD><TD>G160M</TD><TD>5348</TD><TD>1996-07-29 12:49:51</TD><TD>Z2O50603T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2O50604T</TD><TD>JUP-N2-AURORA</TD><TD>243.8341375</TD><TD>-20.6190888889</TD><TD>1</TD><TD>1995-07-28 18:17:11</TD><TD>1995-07-28 18:25:09</TD><TD>462.400</TD><TD>HRS   </TD><TD>2.0</TD><TD>G160M</TD><TD>5348</TD><TD>1996-07-29 12:52:50</TD><TD>Z2O50604T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2O50605T</TD><TD>WAVE</TD><TD>243.8336</TD><TD>-20.6203333333</TD><TD>1</TD><TD>1995-07-28 18:30:22</TD><TD>1995-07-28 18:30:29</TD><TD>4.800</TD><TD>HRS   </TD><TD>SC2</TD><TD>G160M</TD><TD>5348</TD><TD>1996-07-29 12:55:19</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2O50606T</TD><TD>WAVE</TD><TD>243.8336</TD><TD>-20.6203333333</TD><TD>1</TD><TD>1995-07-28 18:31:07</TD><TD>1995-07-28 18:32:04</TD><TD>54.400</TD><TD>HRS   </TD><TD>SC2</TD><TD>G160M</TD><TD>5348</TD><TD>1996-07-29 12:58:06</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2O50702T</TD><TD>IO</TD><TD>243.859520833</TD><TD>-20.63025</TD><TD>1</TD><TD>1995-07-29 09:52:11</TD><TD>1995-07-29 09:55:29</TD><TD>0.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>MIRROR-N2</TD><TD>5348</TD><TD>1996-07-29 19:15:33</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2O50704T</TD><TD>IO</TD><TD>243.859129167</TD><TD>-20.6301694444</TD><TD>1</TD><TD>1995-07-29 10:02:17</TD><TD>1995-07-29 10:02:51</TD><TD>0.200</TD><TD>HRS   </TD><TD>2.0</TD><TD>MIRROR-N2</TD><TD>5348</TD><TD>1996-07-29 19:16:33</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2O50801T</TD><TD>SPYBAL</TD><TD>243.826820833</TD><TD>-20.6205472222</TD><TD>1</TD><TD>1995-07-29 11:40:40</TD><TD>1995-07-29 11:40:56</TD><TD>4.800</TD><TD>HRS   </TD><TD>2.0</TD><TD>G160M</TD><TD>5348</TD><TD>1996-07-29 19:19:58</TD><TD>Z2O50801T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2O50802T</TD><TD>JUP-N1-AURORA</TD><TD>243.826820833</TD><TD>-20.6205472222</TD><TD>1</TD><TD>1995-07-29 11:41:43</TD><TD>1995-07-29 12:07:49</TD><TD>1550.400</TD><TD>HRS   </TD><TD>2.0</TD><TD>G160M</TD><TD>5348</TD><TD>1996-07-29 19:22:40</TD><TD>Z2O50802T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2O50803T</TD><TD>SPYBAL</TD><TD>243.8260125</TD><TD>-20.6206194444</TD><TD>1</TD><TD>1995-07-29 13:01:57</TD><TD>1995-07-29 13:02:12</TD><TD>4.800</TD><TD>HRS   </TD><TD>2.0</TD><TD>G160M</TD><TD>5348</TD><TD>1996-07-29 19:24:12</TD><TD>Z2O50803T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2O50804T</TD><TD>JUP-N1-AURORA</TD><TD>243.8260125</TD><TD>-20.6206194444</TD><TD>1</TD><TD>1995-07-29 13:03:01</TD><TD>1995-07-29 13:11:00</TD><TD>462.400</TD><TD>HRS   </TD><TD>2.0</TD><TD>G160M</TD><TD>5348</TD><TD>1996-07-29 19:26:31</TD><TD>Z2O50804T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2O50805T</TD><TD>WAVE</TD><TD>243.825629167</TD><TD>-20.6218972222</TD><TD>1</TD><TD>1995-07-29 13:16:12</TD><TD>1995-07-29 13:16:19</TD><TD>4.800</TD><TD>HRS   </TD><TD>SC2</TD><TD>G160M</TD><TD>5348</TD><TD>1996-07-29 19:27:53</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2O50806T</TD><TD>WAVE</TD><TD>243.825629167</TD><TD>-20.6218972222</TD><TD>1</TD><TD>1995-07-29 13:16:49</TD><TD>1995-07-29 13:17:46</TD><TD>54.400</TD><TD>HRS   </TD><TD>SC2</TD><TD>G160M</TD><TD>5348</TD><TD>1996-07-29 19:29:21</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2O50901T</TD><TD>SPYBAL</TD><TD>243.821908333</TD><TD>-20.6199888889</TD><TD>1</TD><TD>1995-07-29 13:24:57</TD><TD>1995-07-29 13:25:13</TD><TD>4.800</TD><TD>HRS   </TD><TD>2.0</TD><TD>G160M</TD><TD>5348</TD><TD>1996-07-29 19:30:17</TD><TD>Z2O50901T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2O50902T</TD><TD>JUP-N2-AURORA</TD><TD>243.821908333</TD><TD>-20.6199888889</TD><TD>1</TD><TD>1995-07-29 13:26:01</TD><TD>1995-07-29 13:45:19</TD><TD>1142.400</TD><TD>HRS   </TD><TD>2.0</TD><TD>G160M</TD><TD>5348</TD><TD>1996-07-29 19:31:43</TD><TD>Z2O50902T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2O50903T</TD><TD>SPYBAL</TD><TD>243.821191667</TD><TD>-20.6200583333</TD><TD>1</TD><TD>1995-07-29 14:38:27</TD><TD>1995-07-29 14:38:43</TD><TD>4.800</TD><TD>HRS   </TD><TD>2.0</TD><TD>G160M</TD><TD>5348</TD><TD>1996-07-29 19:32:43</TD><TD>Z2O50903T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2O50904T</TD><TD>JUP-N2-AURORA</TD><TD>243.821191667</TD><TD>-20.6200583333</TD><TD>1</TD><TD>1995-07-29 14:39:31</TD><TD>1995-07-29 14:46:35</TD><TD>408.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>G160M</TD><TD>5348</TD><TD>1996-07-29 19:33:46</TD><TD>Z2O50904T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2DQ1101T</TD><TD>WAVE</TD><TD>359.999770833</TD><TD>-0.00126388888889</TD><TD>1</TD><TD>1995-08-16 05:43:59</TD><TD>1995-08-16 05:44:36</TD><TD>32.000</TD><TD>HRS   </TD><TD>SC2</TD><TD>ECH-A</TD><TD>5417</TD><TD>1996-08-16 17:59:07</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2DQ1102T</TD><TD>WAVE</TD><TD>359.999770833</TD><TD>-0.00126388888889</TD><TD>1</TD><TD>1995-08-16 05:45:21</TD><TD>1995-08-16 05:45:51</TD><TD>27.200</TD><TD>HRS   </TD><TD>SC2</TD><TD>ECH-A</TD><TD>5417</TD><TD>1996-08-16 18:02:04</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2DQ1103T</TD><TD>SPYBAL</TD><TD>244.076029167</TD><TD>-20.7334833333</TD><TD>1</TD><TD>1995-08-16 05:53:39</TD><TD>1995-08-16 05:54:16</TD><TD>32.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5417</TD><TD>1996-08-16 18:04:30</TD><TD>Z2DQ1103T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2DQ1104T</TD><TD>JUPITER+58</TD><TD>244.076029167</TD><TD>-20.7334833333</TD><TD>1</TD><TD>1995-08-16 05:54:47</TD><TD>1995-08-16 06:17:53</TD><TD>1224.001</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5417</TD><TD>1996-08-16 18:12:42</TD><TD>Z2DQ1104T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2DQ1201T</TD><TD>WAVE</TD><TD>359.999658333</TD><TD>-0.00123888888889</TD><TD>1</TD><TD>1995-08-16 13:46:12</TD><TD>1995-08-16 13:46:50</TD><TD>32.000</TD><TD>HRS   </TD><TD>SC2</TD><TD>ECH-A</TD><TD>5417</TD><TD>1996-08-17 00:10:08</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2DQ1202T</TD><TD>WAVE</TD><TD>359.999658333</TD><TD>-0.00123888888889</TD><TD>1</TD><TD>1995-08-16 13:47:20</TD><TD>1995-08-16 13:47:50</TD><TD>27.200</TD><TD>HRS   </TD><TD>SC2</TD><TD>ECH-A</TD><TD>5417</TD><TD>1996-08-17 00:12:44</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2DQ1203T</TD><TD>SPYBAL</TD><TD>244.096066667</TD><TD>-20.7380305556</TD><TD>1</TD><TD>1995-08-16 13:55:58</TD><TD>1995-08-16 13:56:36</TD><TD>32.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5417</TD><TD>1996-08-17 00:15:11</TD><TD>Z2DQ1203T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2DQ1204T</TD><TD>JUPITER+58</TD><TD>244.096066667</TD><TD>-20.7380305556</TD><TD>1</TD><TD>1995-08-16 13:57:11</TD><TD>1995-08-16 14:20:17</TD><TD>1224.001</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5417</TD><TD>1996-08-17 00:24:45</TD><TD>Z2DQ1204T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2DQ1B01T</TD><TD>WAVE</TD><TD>359.999916667</TD><TD>-0.00128055555556</TD><TD>1</TD><TD>1995-08-16 15:27:46</TD><TD>1995-08-16 15:28:23</TD><TD>32.000</TD><TD>HRS   </TD><TD>SC2</TD><TD>ECH-A</TD><TD>5417</TD><TD>1996-08-17 00:27:38</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2DQ1B02T</TD><TD>WAVE</TD><TD>359.999916667</TD><TD>-0.00128055555556</TD><TD>1</TD><TD>1995-08-16 15:29:01</TD><TD>1995-08-16 15:29:31</TD><TD>27.200</TD><TD>HRS   </TD><TD>SC2</TD><TD>ECH-A</TD><TD>5417</TD><TD>1996-08-17 00:29:56</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2DQ1B03T</TD><TD>SPYBAL</TD><TD>244.095991667</TD><TD>-20.6858277778</TD><TD>1</TD><TD>1995-08-16 15:37:24</TD><TD>1995-08-16 15:38:01</TD><TD>32.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5417</TD><TD>1996-08-17 00:32:26</TD><TD>Z2DQ1B03T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2DQ1B04T</TD><TD>SKY-BACKGROUND</TD><TD>244.095991667</TD><TD>-20.6858277778</TD><TD>1</TD><TD>1995-08-16 15:38:35</TD><TD>1995-08-16 15:52:53</TD><TD>734.400</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5417</TD><TD>1996-08-17 00:37:51</TD><TD>Z2DQ1B04T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2DQ1B05T</TD><TD>SKY-BACKGROUND</TD><TD>244.09655</TD><TD>-20.6859666667</TD><TD>1</TD><TD>1995-08-16 15:55:35</TD><TD>1995-08-16 16:05:32</TD><TD>489.600</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5417</TD><TD>1996-08-17 00:43:21</TD><TD>Z2DQ1B05T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2DQ1B06T</TD><TD>SPYBAL</TD><TD>244.098291667</TD><TD>-20.6863916667</TD><TD>1</TD><TD>1995-08-16 16:52:55</TD><TD>1995-08-16 16:53:33</TD><TD>32.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5417</TD><TD>1996-08-17 00:44:35</TD><TD>Z2DQ1B06T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2DQ1B07T</TD><TD>SKY-BACKGROUND</TD><TD>244.098291667</TD><TD>-20.6863916667</TD><TD>1</TD><TD>1995-08-16 16:54:05</TD><TD>1995-08-16 16:59:31</TD><TD>244.800</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5417</TD><TD>1996-08-17 00:48:53</TD><TD>Z2DQ1B07T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2DQ1701P</TD><TD>WAVE</TD><TD>359.999779167</TD><TD>-0.00126666666667</TD><TD>1</TD><TD>1995-08-26 02:10:02</TD><TD>1995-08-26 02:10:40</TD><TD>32.000</TD><TD>HRS   </TD><TD>SC2</TD><TD>ECH-A</TD><TD>5417</TD><TD>1996-08-26 22:52:02</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2DQ1702P</TD><TD>WAVE</TD><TD>359.999779167</TD><TD>-0.00126666666667</TD><TD>1</TD><TD>1995-08-26 02:11:24</TD><TD>1995-08-26 02:11:54</TD><TD>27.200</TD><TD>HRS   </TD><TD>SC2</TD><TD>ECH-A</TD><TD>5417</TD><TD>1996-08-26 22:54:54</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2DQ1703P</TD><TD>SPYBAL</TD><TD>244.646141667</TD><TD>-20.8623277778</TD><TD>1</TD><TD>1995-08-26 02:19:37</TD><TD>1995-08-26 02:20:14</TD><TD>32.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5417</TD><TD>1996-08-26 22:57:45</TD><TD>Z2DQ1703P</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2DQ1704P</TD><TD>JUPITER-58</TD><TD>244.646141667</TD><TD>-20.8623277778</TD><TD>1</TD><TD>1995-08-26 02:21:08</TD><TD>1995-08-26 02:44:14</TD><TD>1224.001</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5417</TD><TD>1996-08-26 23:03:30</TD><TD>Z2DQ1704P</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2DQ1801T</TD><TD>WAVE</TD><TD>359.999729167</TD><TD>-0.00125555555556</TD><TD>1</TD><TD>1995-08-26 13:26:14</TD><TD>1995-08-26 13:26:52</TD><TD>32.000</TD><TD>HRS   </TD><TD>SC2</TD><TD>ECH-A</TD><TD>5417</TD><TD>1996-08-26 16:49:25</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2DQ1802T</TD><TD>WAVE</TD><TD>359.999729167</TD><TD>-0.00125555555556</TD><TD>1</TD><TD>1995-08-26 13:27:22</TD><TD>1995-08-26 13:27:52</TD><TD>27.200</TD><TD>HRS   </TD><TD>SC2</TD><TD>ECH-A</TD><TD>5417</TD><TD>1996-08-26 16:50:54</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2DQ1803T</TD><TD>SPYBAL</TD><TD>244.678020833</TD><TD>-20.8690722222</TD><TD>1</TD><TD>1995-08-26 13:35:45</TD><TD>1995-08-26 13:36:23</TD><TD>32.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5417</TD><TD>1996-08-26 16:52:14</TD><TD>Z2DQ1803T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2DQ1804T</TD><TD>JUPITER-58</TD><TD>244.678020833</TD><TD>-20.8690722222</TD><TD>1</TD><TD>1995-08-26 13:36:53</TD><TD>1995-08-26 14:00:00</TD><TD>1224.001</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5417</TD><TD>1996-08-26 16:56:51</TD><TD>Z2DQ1804T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2DQ1301P</TD><TD>WAVE</TD><TD>359.999733333</TD><TD>-0.00125555555556</TD><TD>1</TD><TD>1995-09-07 00:43:19</TD><TD>1995-09-07 00:43:56</TD><TD>32.000</TD><TD>HRS   </TD><TD>SC2</TD><TD>ECH-A</TD><TD>5417</TD><TD>1996-09-07 23:23:54</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2DQ1302P</TD><TD>WAVE</TD><TD>359.999733333</TD><TD>-0.00125555555556</TD><TD>1</TD><TD>1995-09-07 00:44:34</TD><TD>1995-09-07 00:45:04</TD><TD>27.200</TD><TD>HRS   </TD><TD>SC2</TD><TD>ECH-A</TD><TD>5417</TD><TD>1996-09-07 23:25:48</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2DQ1303P</TD><TD>SPYBAL</TD><TD>245.719429167</TD><TD>-21.0708777778</TD><TD>1</TD><TD>1995-09-07 00:52:43</TD><TD>1995-09-07 00:53:21</TD><TD>32.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5417</TD><TD>1996-09-07 23:27:15</TD><TD>Z2DQ1303P</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2DQ1304P</TD><TD>JUPITER+28</TD><TD>245.719429167</TD><TD>-21.0708777778</TD><TD>1</TD><TD>1995-09-07 00:53:53</TD><TD>1995-09-07 01:08:11</TD><TD>734.400</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5417</TD><TD>1996-09-07 23:31:49</TD><TD>Z2DQ1304P</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2DQ1305P</TD><TD>SPYBAL</TD><TD>245.722825</TD><TD>-21.0714888889</TD><TD>1</TD><TD>1995-09-07 02:01:22</TD><TD>1995-09-07 02:01:59</TD><TD>32.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5417</TD><TD>1996-09-07 23:33:34</TD><TD>Z2DQ1305P</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2DQ1306P</TD><TD>JUPITER+28</TD><TD>245.722825</TD><TD>-21.0714888889</TD><TD>1</TD><TD>1995-09-07 02:02:35</TD><TD>1995-09-07 02:12:25</TD><TD>489.600</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5417</TD><TD>1996-09-07 23:37:21</TD><TD>Z2DQ1306P</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2DQ1401P</TD><TD>WAVE</TD><TD>359.999733333</TD><TD>-0.00125555555556</TD><TD>1</TD><TD>1995-09-07 02:42:11</TD><TD>1995-09-07 02:42:48</TD><TD>32.000</TD><TD>HRS   </TD><TD>SC2</TD><TD>ECH-A</TD><TD>5417</TD><TD>1996-09-07 23:39:30</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2DQ1402P</TD><TD>WAVE</TD><TD>359.999733333</TD><TD>-0.00125555555556</TD><TD>1</TD><TD>1995-09-07 02:43:19</TD><TD>1995-09-07 02:43:49</TD><TD>27.200</TD><TD>HRS   </TD><TD>SC2</TD><TD>ECH-A</TD><TD>5417</TD><TD>1996-09-07 23:41:28</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2DQ1403P</TD><TD>SPYBAL</TD><TD>245.727066667</TD><TD>-21.0723805556</TD><TD>1</TD><TD>1995-09-07 03:37:42</TD><TD>1995-09-07 03:38:20</TD><TD>32.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5417</TD><TD>1996-09-07 23:43:29</TD><TD>Z2DQ1403P</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2DQ1404P</TD><TD>JUPITER+28</TD><TD>245.727066667</TD><TD>-21.0723805556</TD><TD>1</TD><TD>1995-09-07 03:38:53</TD><TD>1995-09-07 03:53:11</TD><TD>734.400</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5417</TD><TD>1996-09-07 23:47:43</TD><TD>Z2DQ1404P</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2DQ1405P</TD><TD>SPYBAL</TD><TD>245.728225</TD><TD>-21.0726305556</TD><TD>1</TD><TD>1995-09-07 03:59:50</TD><TD>1995-09-07 04:00:28</TD><TD>32.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5417</TD><TD>1996-09-07 23:48:48</TD><TD>Z2DQ1405P</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2DQ1406P</TD><TD>JUPITER+28</TD><TD>245.728225</TD><TD>-21.0726305556</TD><TD>1</TD><TD>1995-09-07 04:00:59</TD><TD>1995-09-07 04:10:49</TD><TD>489.600</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5417</TD><TD>1996-09-07 23:52:03</TD><TD>Z2DQ1406P</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2DQ1501T</TD><TD>WAVE</TD><TD>359.999795833</TD><TD>-0.00126944444444</TD><TD>1</TD><TD>1995-09-15 09:29:56</TD><TD>1995-09-15 09:30:34</TD><TD>32.000</TD><TD>HRS   </TD><TD>SC2</TD><TD>ECH-A</TD><TD>5417</TD><TD>1996-09-15 21:23:34</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2DQ1502T</TD><TD>WAVE</TD><TD>359.999795833</TD><TD>-0.00126944444444</TD><TD>1</TD><TD>1995-09-15 09:31:18</TD><TD>1995-09-15 09:31:48</TD><TD>27.200</TD><TD>HRS   </TD><TD>SC2</TD><TD>ECH-A</TD><TD>5417</TD><TD>1996-09-15 21:26:50</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2DQ1503T</TD><TD>SPYBAL</TD><TD>246.698241667</TD><TD>-21.2431611111</TD><TD>1</TD><TD>1995-09-15 09:39:28</TD><TD>1995-09-15 09:40:06</TD><TD>32.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5417</TD><TD>1996-09-15 21:29:54</TD><TD>Z2DQ1503T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2DQ1504T</TD><TD>JUPITER-28</TD><TD>246.698241667</TD><TD>-21.2431611111</TD><TD>1</TD><TD>1995-09-15 09:40:55</TD><TD>1995-09-15 10:04:02</TD><TD>1224.001</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5417</TD><TD>1996-09-15 21:37:58</TD><TD>Z2DQ1504T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2DQ1601T</TD><TD>WAVE</TD><TD>359.9998</TD><TD>-0.00126944444444</TD><TD>1</TD><TD>1995-09-15 20:45:55</TD><TD>1995-09-15 20:46:33</TD><TD>32.000</TD><TD>HRS   </TD><TD>SC2</TD><TD>ECH-A</TD><TD>5417</TD><TD>1996-09-16 12:57:10</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2DQ1602T</TD><TD>WAVE</TD><TD>359.9998</TD><TD>-0.00126944444444</TD><TD>1</TD><TD>1995-09-15 20:47:10</TD><TD>1995-09-15 20:47:40</TD><TD>27.200</TD><TD>HRS   </TD><TD>SC2</TD><TD>ECH-A</TD><TD>5417</TD><TD>1996-09-16 12:59:32</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2DQ1603T</TD><TD>SPYBAL</TD><TD>246.754775</TD><TD>-21.2529916667</TD><TD>1</TD><TD>1995-09-15 20:55:21</TD><TD>1995-09-15 20:55:58</TD><TD>32.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5417</TD><TD>1996-09-16 13:01:47</TD><TD>Z2DQ1603T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2DQ1604T</TD><TD>JUPITER-28</TD><TD>246.754775</TD><TD>-21.2529916667</TD><TD>1</TD><TD>1995-09-15 20:56:29</TD><TD>1995-09-15 21:21:34</TD><TD>1178.101</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5417</TD><TD>1996-09-16 13:12:27</TD><TD>Z2DQ1604T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2DQ1901T</TD><TD>WAVE</TD><TD>359.9998</TD><TD>-0.00126944444444</TD><TD>1</TD><TD>1995-09-17 13:04:47</TD><TD>1995-09-17 13:05:24</TD><TD>32.000</TD><TD>HRS   </TD><TD>SC2</TD><TD>ECH-A</TD><TD>5417</TD><TD>1996-09-18 02:27:56</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2DQ1902T</TD><TD>WAVE</TD><TD>359.9998</TD><TD>-0.00126944444444</TD><TD>1</TD><TD>1995-09-17 13:05:55</TD><TD>1995-09-17 13:06:25</TD><TD>27.200</TD><TD>HRS   </TD><TD>SC2</TD><TD>ECH-A</TD><TD>5417</TD><TD>1996-09-18 02:31:54</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2DQ1903T</TD><TD>SPYBAL</TD><TD>246.974270833</TD><TD>-21.287575</TD><TD>1</TD><TD>1995-09-17 13:14:17</TD><TD>1995-09-17 13:14:54</TD><TD>32.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5417</TD><TD>1996-09-18 02:35:54</TD><TD>Z2DQ1903T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2DQ1904T</TD><TD>JUPITER-BULGE</TD><TD>246.974270833</TD><TD>-21.287575</TD><TD>1</TD><TD>1995-09-17 13:15:29</TD><TD>1995-09-17 13:38:35</TD><TD>1224.001</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5417</TD><TD>1996-09-18 02:45:39</TD><TD>Z2DQ1904T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2DQ1A01T</TD><TD>WAVE</TD><TD>359.9998</TD><TD>-0.00126944444444</TD><TD>1</TD><TD>1995-09-17 21:02:03</TD><TD>1995-09-17 21:02:40</TD><TD>32.000</TD><TD>HRS   </TD><TD>SC2</TD><TD>ECH-A</TD><TD>5417</TD><TD>1996-09-18 03:13:47</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2DQ1A02T</TD><TD>WAVE</TD><TD>359.9998</TD><TD>-0.00126944444444</TD><TD>1</TD><TD>1995-09-17 21:03:11</TD><TD>1995-09-17 21:03:41</TD><TD>27.200</TD><TD>HRS   </TD><TD>SC2</TD><TD>ECH-A</TD><TD>5417</TD><TD>1996-09-18 03:15:26</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2DQ1A03T</TD><TD>SPYBAL</TD><TD>247.024441667</TD><TD>-21.2958222222</TD><TD>1</TD><TD>1995-09-17 21:11:25</TD><TD>1995-09-17 21:12:02</TD><TD>32.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5417</TD><TD>1996-09-18 03:17:50</TD><TD>Z2DQ1A03T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2DQ1A04T</TD><TD>JUPITER-BULGE</TD><TD>247.024441667</TD><TD>-21.2958222222</TD><TD>1</TD><TD>1995-09-17 21:12:35</TD><TD>1995-09-17 21:37:46</TD><TD>1203.751</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5417</TD><TD>1996-09-18 03:22:13</TD><TD>Z2DQ1A04T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2NO1501P</TD><TD>SPYBAL</TD><TD>288.51335</TD><TD>-22.2352555556</TD><TD>0</TD><TD>1996-04-11 21:45:14</TD><TD>1996-04-11 21:46:00</TD><TD>32.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5167</TD><TD>1997-04-12 19:15:17</TD><TD>Z2NO1501P</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2NO1502P</TD><TD>GEOCORONA-CALIB</TD><TD>288.51335</TD><TD>-22.2352555556</TD><TD>0</TD><TD>1996-04-11 21:46:34</TD><TD>1996-04-11 22:00:30</TD><TD>816.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5167</TD><TD>1997-04-12 19:23:50</TD><TD>Z2NO1502P</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2NO1503P</TD><TD>SPYBAL</TD><TD>288.51445</TD><TD>-22.2351472222</TD><TD>0</TD><TD>1996-04-11 22:06:23</TD><TD>1996-04-11 22:07:09</TD><TD>32.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5167</TD><TD>1997-04-12 19:22:51</TD><TD>Z2NO1503P</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2NO1504P</TD><TD>GEOCORONA-CALIB</TD><TD>288.51445</TD><TD>-22.2351472222</TD><TD>0</TD><TD>1996-04-11 22:07:41</TD><TD>1996-04-11 22:21:36</TD><TD>816.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5167</TD><TD>1997-04-12 19:19:08</TD><TD>Z2NO1504P</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2NO1702P</TD><TD>IO</TD><TD>288.295941667</TD><TD>-22.2666861111</TD><TD>0</TD><TD>1996-04-12 01:33:10</TD><TD>1996-04-12 01:36:13</TD><TD>0.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>MIRROR-N2</TD><TD>5167</TD><TD>1997-04-12 19:18:37</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2NO1703P</TD><TD>SPYBAL</TD><TD>288.328304167</TD><TD>-22.2572888889</TD><TD>0</TD><TD>1996-04-12 02:46:56</TD><TD>1996-04-12 02:47:42</TD><TD>32.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5167</TD><TD>1997-04-12 19:26:51</TD><TD>Z2NO1703P</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2NO1704P</TD><TD>JUPITER-PM</TD><TD>288.328304167</TD><TD>-22.2572888889</TD><TD>0</TD><TD>1996-04-12 02:48:16</TD><TD>1996-04-12 03:05:18</TD><TD>1006.400</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5167</TD><TD>1997-04-12 19:27:24</TD><TD>Z2NO1704P</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2NO1705P</TD><TD>SPYBAL</TD><TD>288.333475</TD><TD>-22.2567972222</TD><TD>0</TD><TD>1996-04-12 04:28:04</TD><TD>1996-04-12 04:28:50</TD><TD>32.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5167</TD><TD>1997-04-12 19:27:12</TD><TD>Z2NO1705P</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2NO1706P</TD><TD>JUPITER-PM</TD><TD>288.333475</TD><TD>-22.2567972222</TD><TD>0</TD><TD>1996-04-12 04:29:22</TD><TD>1996-04-12 04:46:24</TD><TD>1006.400</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5167</TD><TD>1997-04-12 19:28:48</TD><TD>Z2NO1706P</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2NO1601P</TD><TD>SPYBAL</TD><TD>288.334625</TD><TD>-22.2566888889</TD><TD>0</TD><TD>1996-04-12 05:02:04</TD><TD>1996-04-12 05:02:51</TD><TD>32.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5167</TD><TD>1997-04-24 15:33:23</TD><TD>Z2NO1601P</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2NO1602P</TD><TD>EARTH-CALIB</TD><TD>288.334625</TD><TD>-22.2566888889</TD><TD>0</TD><TD>1996-04-12 05:03:22</TD><TD>1996-04-12 05:18:36</TD><TD>897.600</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5167</TD><TD>1997-04-24 13:46:45</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z32Y0102T</TD><TD>TITANIA-OFFSET</TD><TD>307.0337375</TD><TD>-19.6745888889</TD><TD>0</TD><TD>1996-04-25 01:18:10</TD><TD>1996-04-25 01:25:44</TD><TD>0.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>MIRROR-N2</TD><TD>6291</TD><TD>1997-04-25 12:16:10</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z32Y0104T</TD><TD>TITANIA-OFFSET</TD><TD>307.033933333</TD><TD>-19.6744777778</TD><TD>0</TD><TD>1996-04-25 01:38:16</TD><TD>1996-04-25 01:48:43</TD><TD>4.650</TD><TD>HRS   </TD><TD>2.0</TD><TD>MIRROR-N2</TD><TD>6291</TD><TD>1997-04-25 12:20:43</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z32Y0105T</TD><TD>WAVE</TD><TD>359.999416667</TD><TD>0.00150277777778</TD><TD>0</TD><TD>1996-04-25 02:39:51</TD><TD>1996-04-25 02:39:58</TD><TD>4.800</TD><TD>HRS   </TD><TD>SC2</TD><TD>G140L</TD><TD>6291</TD><TD>1997-04-25 12:25:22</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z32Y0106T</TD><TD>WAVE</TD><TD>359.999416667</TD><TD>0.00150277777778</TD><TD>0</TD><TD>1996-04-25 02:40:28</TD><TD>1996-04-25 02:40:58</TD><TD>27.200</TD><TD>HRS   </TD><TD>SC2</TD><TD>G140L</TD><TD>6291</TD><TD>1997-04-25 12:25:32</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z32Y0107T</TD><TD>URANUS</TD><TD>307.0400875</TD><TD>-19.6779861111</TD><TD>0</TD><TD>1996-04-25 02:43:10</TD><TD>1996-04-25 02:50:01</TD><TD>408.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>G140L</TD><TD>6291</TD><TD>1997-04-25 12:27:57</TD><TD>Z32Y0107T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z32Y0108T</TD><TD>SPYBAL</TD><TD>307.040183333</TD><TD>-19.6779694444</TD><TD>0</TD><TD>1996-04-25 02:54:40</TD><TD>1996-04-25 02:54:47</TD><TD>4.800</TD><TD>HRS   </TD><TD>2.0</TD><TD>G140L</TD><TD>6291</TD><TD>1997-04-25 12:29:44</TD><TD>Z32Y0108T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z32Y0109T</TD><TD>URANUS</TD><TD>307.040183333</TD><TD>-19.6779694444</TD><TD>0</TD><TD>1996-04-25 02:55:22</TD><TD>1996-04-25 03:22:50</TD><TD>1632.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>G140L</TD><TD>6291</TD><TD>1997-04-25 12:30:44</TD><TD>Z32Y0109T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z32Y010AT</TD><TD>SPYBAL</TD><TD>307.040841667</TD><TD>-19.67785</TD><TD>0</TD><TD>1996-04-25 04:15:56</TD><TD>1996-04-25 04:16:03</TD><TD>4.800</TD><TD>HRS   </TD><TD>2.0</TD><TD>G140L</TD><TD>6291</TD><TD>1997-04-25 12:32:34</TD><TD>Z32Y010AT</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z32Y010BT</TD><TD>URANUS</TD><TD>307.040841667</TD><TD>-19.67785</TD><TD>0</TD><TD>1996-04-25 04:16:34</TD><TD>1996-04-25 04:37:10</TD><TD>1224.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>G140L</TD><TD>6291</TD><TD>1997-04-25 12:36:00</TD><TD>Z32Y010BT</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z32Y010CT</TD><TD>SPYBAL</TD><TD>307.0410625</TD><TD>-19.6778111111</TD><TD>0</TD><TD>1996-04-25 04:43:04</TD><TD>1996-04-25 04:43:11</TD><TD>4.800</TD><TD>HRS   </TD><TD>2.0</TD><TD>G140L</TD><TD>6291</TD><TD>1997-04-25 12:34:46</TD><TD>Z32Y010CT</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z32Y010DT</TD><TD>URANUS</TD><TD>307.0410625</TD><TD>-19.6778111111</TD><TD>0</TD><TD>1996-04-25 04:43:47</TD><TD>1996-04-25 04:57:29</TD><TD>816.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>G140L</TD><TD>6291</TD><TD>1997-04-25 12:36:54</TD><TD>Z32Y010DT</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z32Y010ET</TD><TD>SPYBAL</TD><TD>307.041625</TD><TD>-19.6777111111</TD><TD>0</TD><TD>1996-04-25 05:52:28</TD><TD>1996-04-25 05:52:35</TD><TD>4.800</TD><TD>HRS   </TD><TD>2.0</TD><TD>G140L</TD><TD>6291</TD><TD>1997-04-25 12:39:03</TD><TD>Z32Y010ET</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z32Y010FT</TD><TD>URANUS</TD><TD>307.041625</TD><TD>-19.6777111111</TD><TD>0</TD><TD>1996-04-25 05:53:10</TD><TD>1996-04-25 06:13:45</TD><TD>1224.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>G140L</TD><TD>6291</TD><TD>1997-04-25 12:41:43</TD><TD>Z32Y010FT</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z32Y010GT</TD><TD>SPYBAL</TD><TD>307.041841667</TD><TD>-19.6776694444</TD><TD>0</TD><TD>1996-04-25 06:20:13</TD><TD>1996-04-25 06:20:50</TD><TD>32.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>6291</TD><TD>1997-04-25 12:41:25</TD><TD>Z32Y010GT</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z32Y010HT</TD><TD>URANUS</TD><TD>307.041841667</TD><TD>-19.6776694444</TD><TD>0</TD><TD>1996-04-25 06:21:22</TD><TD>1996-04-25 06:30:32</TD><TD>544.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>6291</TD><TD>1997-04-25 12:44:09</TD><TD>Z32Y010HT</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z32Y010IT</TD><TD>SPYBAL</TD><TD>307.0424</TD><TD>-19.6775694444</TD><TD>0</TD><TD>1996-04-25 07:29:14</TD><TD>1996-04-25 07:29:51</TD><TD>32.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>6291</TD><TD>1997-04-25 12:43:02</TD><TD>Z32Y010IT</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z32Y010JT</TD><TD>URANUS</TD><TD>307.0424</TD><TD>-19.6775694444</TD><TD>0</TD><TD>1996-04-25 07:30:22</TD><TD>1996-04-25 07:57:55</TD><TD>1632.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>6291</TD><TD>1997-04-25 21:42:32</TD><TD>Z32Y010JT</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z32Y010KT</TD><TD>SPYBAL</TD><TD>307.042675</TD><TD>-19.6775222222</TD><TD>0</TD><TD>1996-04-25 08:03:21</TD><TD>1996-04-25 08:03:58</TD><TD>32.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>6291</TD><TD>1997-04-25 20:07:38</TD><TD>Z32Y010KT</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z32Y010LT</TD><TD>URANUS</TD><TD>307.042675</TD><TD>-19.6775222222</TD><TD>0</TD><TD>1996-04-25 08:04:34</TD><TD>1996-04-25 08:13:44</TD><TD>544.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>6291</TD><TD>1997-04-25 20:09:15</TD><TD>Z32Y010LT</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z32Y010MT</TD><TD>SPYBAL</TD><TD>307.043175</TD><TD>-19.6774305556</TD><TD>0</TD><TD>1996-04-25 09:05:48</TD><TD>1996-04-25 09:06:25</TD><TD>32.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>6291</TD><TD>1997-04-25 20:10:26</TD><TD>Z32Y010MT</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z32Y010NT</TD><TD>URANUS</TD><TD>307.043175</TD><TD>-19.6774305556</TD><TD>0</TD><TD>1996-04-25 09:06:58</TD><TD>1996-04-25 09:34:31</TD><TD>1632.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>6291</TD><TD>1997-04-25 20:16:28</TD><TD>Z32Y010NT</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z32Y010OT</TD><TD>SPYBAL</TD><TD>307.043445833</TD><TD>-19.6773833333</TD><TD>0</TD><TD>1996-04-25 09:39:49</TD><TD>1996-04-25 09:40:26</TD><TD>32.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>6291</TD><TD>1997-04-25 20:16:49</TD><TD>Z32Y010OT</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z32Y010PT</TD><TD>URANUS</TD><TD>307.043445833</TD><TD>-19.6773833333</TD><TD>0</TD><TD>1996-04-25 09:40:58</TD><TD>1996-04-25 09:50:09</TD><TD>544.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>6291</TD><TD>1997-04-25 20:18:06</TD><TD>Z32Y010PT</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z32Y010QT</TD><TD>SPYBAL</TD><TD>307.043941667</TD><TD>-19.6772944444</TD><TD>0</TD><TD>1996-04-25 10:42:18</TD><TD>1996-04-25 10:42:55</TD><TD>32.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>6291</TD><TD>1997-04-25 20:20:23</TD><TD>Z32Y010QT</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z32Y010RT</TD><TD>URANUS</TD><TD>307.043941667</TD><TD>-19.6772944444</TD><TD>0</TD><TD>1996-04-25 10:43:28</TD><TD>1996-04-25 11:11:02</TD><TD>1632.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>6291</TD><TD>1997-04-25 20:21:45</TD><TD>Z32Y010RT</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z32Y010ST</TD><TD>SPYBAL</TD><TD>307.0442125</TD><TD>-19.6772444444</TD><TD>0</TD><TD>1996-04-25 11:16:27</TD><TD>1996-04-25 11:17:04</TD><TD>32.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>6291</TD><TD>1997-04-25 20:19:45</TD><TD>Z32Y010ST</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z32Y010TT</TD><TD>URANUS</TD><TD>307.0442125</TD><TD>-19.6772444444</TD><TD>0</TD><TD>1996-04-25 11:17:40</TD><TD>1996-04-25 11:26:50</TD><TD>544.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>6291</TD><TD>1997-04-25 20:24:06</TD><TD>Z32Y010TT</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z3B1A301T</TD><TD>SPYBAL</TD><TD>285.410866667</TD><TD>-22.7184305556</TD><TD>8</TD><TD>1996-06-23 13:18:45</TD><TD>1996-06-23 13:19:31</TD><TD>32.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5828</TD><TD>1997-06-23 17:35:11</TD><TD>Z3B1A301T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z3B1A302T</TD><TD>JUP-AUR-OVALN</TD><TD>285.410866667</TD><TD>-22.7184305556</TD><TD>8</TD><TD>1996-06-23 13:20:04</TD><TD>1996-06-23 13:31:47</TD><TD>363.400</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5828</TD><TD>1997-06-23 17:38:18</TD><TD>Z3B1A302T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z3B1A303T</TD><TD>WAVE</TD><TD>4.58333333333E-5</TD><TD>0.00128333333333</TD><TD>8</TD><TD>1996-06-23 13:32:51</TD><TD>1996-06-23 13:33:37</TD><TD>32.000</TD><TD>HRS   </TD><TD>SC2</TD><TD>ECH-A</TD><TD>5828</TD><TD>1997-06-23 17:38:33</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z3B1A304T</TD><TD>WAVE</TD><TD>4.58333333333E-5</TD><TD>0.00128333333333</TD><TD>8</TD><TD>1996-06-23 13:34:15</TD><TD>1996-06-23 13:36:20</TD><TD>108.800</TD><TD>HRS   </TD><TD>SC2</TD><TD>ECH-A</TD><TD>5828</TD><TD>1997-06-23 17:38:18</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z3B1A305T</TD><TD>SPYBAL</TD><TD>285.4078875</TD><TD>-22.718775</TD><TD>8</TD><TD>1996-06-23 13:41:33</TD><TD>1996-06-23 13:41:49</TD><TD>4.800</TD><TD>HRS   </TD><TD>2.0</TD><TD>G140L</TD><TD>5828</TD><TD>1997-06-23 17:40:29</TD><TD>Z3B1A305T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U3B10301T</TD><TD>JUP-OVALN-IMAGE</TD><TD>285.380216667</TD><TD>-22.7304583333</TD><TD>8</TD><TD>1996-06-23 14:55:16</TD><TD>1996-06-23 14:55:36</TD><TD>20.000</TD><TD>WFPC2 </TD><TD>FQCH4W3</TD><TD>FQCH4N</TD><TD>5828</TD><TD>1997-06-23 17:47:33</TD><TD>U3B10301T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U3B10302P</TD><TD>JUP-OVALN-IMAGE</TD><TD>285.386</TD><TD>-22.7289083333</TD><TD>8</TD><TD>1996-06-23 15:01:16</TD><TD>1996-06-23 15:09:36</TD><TD>500.000</TD><TD>WFPC2 </TD><TD>F160BN15;F160BN15</TD><TD>F160BN15</TD><TD>5828</TD><TD>1997-06-23 18:08:51</TD><TD>U3B10302P</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U3B10303T</TD><TD>JUP-OVALN-IMAGE</TD><TD>285.384529167</TD><TD>-22.7290805556</TD><TD>8</TD><TD>1996-06-23 15:15:16</TD><TD>1996-06-23 15:25:16</TD><TD>600.000</TD><TD>WFPC2 </TD><TD>F160BN15;F160BN15</TD><TD>F130LP;F160BN15</TD><TD>5828</TD><TD>1997-06-23 17:45:24</TD><TD>U3B10303T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U3B10304T</TD><TD>JUP-OVALN-IMAGE</TD><TD>285.384070833</TD><TD>-22.7286861111</TD><TD>8</TD><TD>1996-06-23 15:32:16</TD><TD>1996-06-23 15:34:56</TD><TD>160.000</TD><TD>WFPC2 </TD><TD>WF3-FIX</TD><TD>F218W</TD><TD>5828</TD><TD>1997-06-23 17:46:36</TD><TD>U3B10304T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U3B10201T</TD><TD>JUP-OVALS1-IMAGE</TD><TD>285.308304167</TD><TD>-22.7347944444</TD><TD>8</TD><TD>1996-06-24 03:48:16</TD><TD>1996-06-24 03:48:36</TD><TD>20.000</TD><TD>WFPC2 </TD><TD>FQCH4W3</TD><TD>FQCH4N</TD><TD>5828</TD><TD>1997-06-24 14:52:02</TD><TD>U3B10201T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U3B10202T</TD><TD>JUP-OVALS1-IMAGE</TD><TD>285.314120833</TD><TD>-22.7345833333</TD><TD>8</TD><TD>1996-06-24 03:54:16</TD><TD>1996-06-24 04:04:16</TD><TD>600.000</TD><TD>WFPC2 </TD><TD>F160BN15;F160BN15</TD><TD>F160BN15</TD><TD>5828</TD><TD>1997-06-24 14:34:47</TD><TD>U3B10202T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U3B10203T</TD><TD>JUP-OVALS1-IMAGE</TD><TD>285.312091667</TD><TD>-22.7348166667</TD><TD>8</TD><TD>1996-06-24 04:13:16</TD><TD>1996-06-24 04:26:36</TD><TD>800.000</TD><TD>WFPC2 </TD><TD>F160BN15;F160BN15</TD><TD>F160BN15;F165LP</TD><TD>5828</TD><TD>1997-06-24 16:37:37</TD><TD>U3B10203T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z3B1A201T</TD><TD>SPYBAL</TD><TD>285.321254167</TD><TD>-22.7280805556</TD><TD>8</TD><TD>1996-06-24 05:23:50</TD><TD>1996-06-24 05:24:36</TD><TD>32.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5828</TD><TD>1997-06-24 14:32:23</TD><TD>Z3B1A201T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z3B1A202T</TD><TD>JUP-AUR-OVALS1</TD><TD>285.321254167</TD><TD>-22.7280805556</TD><TD>8</TD><TD>1996-06-24 05:25:10</TD><TD>1996-06-24 05:34:51</TD><TD>544.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5828</TD><TD>1997-06-24 14:40:35</TD><TD>Z3B1A202T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z3B1A203T</TD><TD>WAVE</TD><TD>0.000366666666667</TD><TD>0.00123333333333</TD><TD>8</TD><TD>1996-06-24 05:37:57</TD><TD>1996-06-24 05:38:43</TD><TD>32.000</TD><TD>HRS   </TD><TD>SC2</TD><TD>ECH-A</TD><TD>5828</TD><TD>1997-06-24 14:39:50</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z3B1A204T</TD><TD>WAVE</TD><TD>0.000366666666667</TD><TD>0.00123333333333</TD><TD>8</TD><TD>1996-06-24 05:39:21</TD><TD>1996-06-24 05:41:26</TD><TD>108.800</TD><TD>HRS   </TD><TD>SC2</TD><TD>ECH-A</TD><TD>5828</TD><TD>1997-06-24 14:41:02</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z3B1A205T</TD><TD>SPYBAL</TD><TD>285.318708333</TD><TD>-22.728375</TD><TD>8</TD><TD>1996-06-24 05:46:33</TD><TD>1996-06-24 05:46:49</TD><TD>4.800</TD><TD>HRS   </TD><TD>2.0</TD><TD>G140L</TD><TD>5828</TD><TD>1997-06-24 14:43:55</TD><TD>Z3B1A205T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z3B1A206T</TD><TD>JUP-AUR-OVALS1</TD><TD>285.318708333</TD><TD>-22.728375</TD><TD>8</TD><TD>1996-06-24 05:47:22</TD><TD>1996-06-24 05:55:09</TD><TD>408.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>G140L</TD><TD>5828</TD><TD>1997-06-24 14:44:42</TD><TD>Z3B1A206T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z3B1A207T</TD><TD>JUP-AUR-OVALS1</TD><TD>285.317391667</TD><TD>-22.7285277778</TD><TD>8</TD><TD>1996-06-24 05:57:41</TD><TD>1996-06-24 06:02:50</TD><TD>272.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>G140L</TD><TD>5828</TD><TD>1997-06-24 14:46:27</TD><TD>Z3B1A207T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U3B10101T</TD><TD>JUP-FIRST</TD><TD>285.261020833</TD><TD>-22.7406916667</TD><TD>8</TD><TD>1996-06-24 13:29:16</TD><TD>1996-06-24 13:39:16</TD><TD>600.000</TD><TD>WFPC2 </TD><TD>F160BN15;F160BN15</TD><TD>F160BN15;F165LP</TD><TD>5828</TD><TD>1997-06-24 17:00:13</TD><TD>U3B10101T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U3B10102T</TD><TD>JUP-FIRST</TD><TD>285.26</TD><TD>-22.7408083333</TD><TD>8</TD><TD>1996-06-24 13:44:16</TD><TD>1996-06-24 13:50:56</TD><TD>400.000</TD><TD>WFPC2 </TD><TD>F160BN15;F160BN15</TD><TD>F160BN15</TD><TD>5828</TD><TD>1997-06-24 17:22:12</TD><TD>U3B10102T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U3B10103T</TD><TD>JUP-FIRST</TD><TD>285.258429167</TD><TD>-22.7409888889</TD><TD>8</TD><TD>1996-06-24 13:59:16</TD><TD>1996-06-24 14:07:36</TD><TD>500.000</TD><TD>WFPC2 </TD><TD>F160BN15;F160BN15</TD><TD>F130LP;F160BN15</TD><TD>5828</TD><TD>1997-06-24 17:19:32</TD><TD>U3B10103T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U3B1A101T</TD><TD>JUP-IMAGE-MAP</TD><TD>285.246233333</TD><TD>-22.7419305556</TD><TD>8</TD><TD>1996-06-24 15:00:16</TD><TD>1996-06-24 15:00:36</TD><TD>20.000</TD><TD>WFPC2 </TD><TD>FQCH4W3</TD><TD>FQCH4N</TD><TD>5828</TD><TD>1997-06-24 21:30:17</TD><TD>U3B1A101T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U3B1A102T</TD><TD>JUP-IMAGE-MAP</TD><TD>285.2521375</TD><TD>-22.7417111111</TD><TD>8</TD><TD>1996-06-24 15:07:16</TD><TD>1996-06-24 15:15:36</TD><TD>500.000</TD><TD>WFPC2 </TD><TD>F160BN15;F160BN15</TD><TD>F160BN15</TD><TD>5828</TD><TD>1997-06-24 21:23:05</TD><TD>U3B1A102T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U3B1A103T</TD><TD>JUP-IMAGE-MAP</TD><TD>285.250658333</TD><TD>-22.7418805556</TD><TD>8</TD><TD>1996-06-24 15:21:16</TD><TD>1996-06-24 15:31:16</TD><TD>600.000</TD><TD>WFPC2 </TD><TD>F160BN15;F160BN15</TD><TD>F130LP;F160BN15</TD><TD>5828</TD><TD>1997-06-24 21:21:00</TD><TD>U3B1A103T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U3B1A104T</TD><TD>JUP-IMAGE-MAP</TD><TD>285.2501</TD><TD>-22.7415666667</TD><TD>8</TD><TD>1996-06-24 15:37:16</TD><TD>1996-06-24 15:41:36</TD><TD>260.000</TD><TD>WFPC2 </TD><TD>WF3-FIX</TD><TD>F218W</TD><TD>5828</TD><TD>1997-06-24 21:24:58</TD><TD>U3B1A104T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U3B1A105T</TD><TD>JUP-IMAGE-MAP</TD><TD>285.244458333</TD><TD>-22.7425916667</TD><TD>8</TD><TD>1996-06-24 16:37:16</TD><TD>1996-06-24 16:39:56</TD><TD>160.000</TD><TD>WFPC2 </TD><TD>F160BN15;F160BN15</TD><TD>F160BN15</TD><TD>5828</TD><TD>1997-06-24 21:02:06</TD><TD>U3B1A105T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U3B1A106T</TD><TD>JUP-IMAGE-MAP</TD><TD>285.2440875</TD><TD>-22.7426361111</TD><TD>8</TD><TD>1996-06-24 16:41:16</TD><TD>1996-06-24 16:43:56</TD><TD>160.000</TD><TD>WFPC2 </TD><TD>F160BN15;F160BN15</TD><TD>F160BN15</TD><TD>5828</TD><TD>1997-06-24 21:24:38</TD><TD>U3B1A106T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U3B1A107T</TD><TD>JUP-IMAGE-MAP</TD><TD>285.243716667</TD><TD>-22.7426777778</TD><TD>8</TD><TD>1996-06-24 16:45:16</TD><TD>1996-06-24 16:47:56</TD><TD>160.000</TD><TD>WFPC2 </TD><TD>F160BN15;F160BN15</TD><TD>F160BN15</TD><TD>5828</TD><TD>1997-06-24 21:29:58</TD><TD>U3B1A107T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U3B1A108T</TD><TD>JUP-IMAGE-MAP</TD><TD>285.243345833</TD><TD>-22.7427194444</TD><TD>8</TD><TD>1996-06-24 16:49:16</TD><TD>1996-06-24 16:51:56</TD><TD>160.000</TD><TD>WFPC2 </TD><TD>F160BN15;F160BN15</TD><TD>F160BN15</TD><TD>5828</TD><TD>1997-06-24 21:34:58</TD><TD>U3B1A108T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U3B1A109T</TD><TD>JUP-IMAGE-MAP</TD><TD>285.2425125</TD><TD>-22.7428166667</TD><TD>8</TD><TD>1996-06-24 16:53:16</TD><TD>1996-06-24 16:59:56</TD><TD>400.000</TD><TD>WFPC2 </TD><TD>F160BN15;F160BN15</TD><TD>F160BN15</TD><TD>5828</TD><TD>1997-06-24 21:27:07</TD><TD>U3B1A109T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U3B1A10AT</TD><TD>JUP-IMAGE-MAP</TD><TD>285.240845833</TD><TD>-22.7430083333</TD><TD>8</TD><TD>1996-06-24 17:07:16</TD><TD>1996-06-24 17:17:16</TD><TD>600.000</TD><TD>WFPC2 </TD><TD>F160BN15;F160BN15</TD><TD>F130LP;F160BN15</TD><TD>5828</TD><TD>1997-06-24 21:29:08</TD><TD>U3B1A10AT</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U3B1A10BT</TD><TD>JUP-IMAGE-MAP</TD><TD>285.2284625</TD><TD>-22.7439694444</TD><TD>8</TD><TD>1996-06-24 18:12:16</TD><TD>1996-06-24 18:12:36</TD><TD>20.000</TD><TD>WFPC2 </TD><TD>FQCH4W3</TD><TD>FQCH4N</TD><TD>5828</TD><TD>1997-06-24 21:41:08</TD><TD>U3B1A10BT</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U3B1A10CT</TD><TD>JUP-IMAGE-MAP</TD><TD>285.2343625</TD><TD>-22.74375</TD><TD>8</TD><TD>1996-06-24 18:19:16</TD><TD>1996-06-24 18:27:36</TD><TD>500.000</TD><TD>WFPC2 </TD><TD>F160BN15;F160BN15</TD><TD>F160BN15</TD><TD>5828</TD><TD>1997-06-24 21:33:20</TD><TD>U3B1A10CT</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U3B1A10DT</TD><TD>JUP-IMAGE-MAP</TD><TD>285.232883333</TD><TD>-22.7439222222</TD><TD>8</TD><TD>1996-06-24 18:33:16</TD><TD>1996-06-24 18:43:16</TD><TD>600.000</TD><TD>WFPC2 </TD><TD>F160BN15;F160BN15</TD><TD>F130LP;F160BN15</TD><TD>5828</TD><TD>1997-06-24 21:43:05</TD><TD>U3B1A10DT</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U3B1A10ET</TD><TD>JUP-IMAGE-MAP</TD><TD>285.232233333</TD><TD>-22.7436194444</TD><TD>8</TD><TD>1996-06-24 18:50:16</TD><TD>1996-06-24 18:54:36</TD><TD>260.000</TD><TD>WFPC2 </TD><TD>WF3-FIX</TD><TD>F218W</TD><TD>5828</TD><TD>1997-06-24 21:44:55</TD><TD>U3B1A10ET</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U3B1A10FT</TD><TD>JUP-IMAGE-MAP</TD><TD>285.226583333</TD><TD>-22.7446444444</TD><TD>8</TD><TD>1996-06-24 19:50:16</TD><TD>1996-06-24 19:52:56</TD><TD>160.000</TD><TD>WFPC2 </TD><TD>F160BN15;F160BN15</TD><TD>F160BN15</TD><TD>5828</TD><TD>1997-06-24 21:37:37</TD><TD>U3B1A10FT</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U3B1A10GT</TD><TD>JUP-IMAGE-MAP</TD><TD>285.2262125</TD><TD>-22.7446861111</TD><TD>8</TD><TD>1996-06-24 19:54:16</TD><TD>1996-06-24 19:56:56</TD><TD>160.000</TD><TD>WFPC2 </TD><TD>F160BN15;F160BN15</TD><TD>F160BN15</TD><TD>5828</TD><TD>1997-06-25 03:32:56</TD><TD>U3B1A10GT</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U3B1A10HT</TD><TD>JUP-IMAGE-MAP</TD><TD>285.225841667</TD><TD>-22.7447277778</TD><TD>8</TD><TD>1996-06-24 19:58:16</TD><TD>1996-06-24 20:00:56</TD><TD>160.000</TD><TD>WFPC2 </TD><TD>F160BN15;F160BN15</TD><TD>F160BN15</TD><TD>5828</TD><TD>1997-06-25 03:35:55</TD><TD>U3B1A10HT</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U3B1A10IT</TD><TD>JUP-IMAGE-MAP</TD><TD>285.225470833</TD><TD>-22.7447722222</TD><TD>8</TD><TD>1996-06-24 20:02:16</TD><TD>1996-06-24 20:04:56</TD><TD>160.000</TD><TD>WFPC2 </TD><TD>F160BN15;F160BN15</TD><TD>F160BN15</TD><TD>5828</TD><TD>1997-06-25 03:27:44</TD><TD>U3B1A10IT</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U3B1A10JT</TD><TD>JUP-IMAGE-MAP</TD><TD>285.22445</TD><TD>-22.7448888889</TD><TD>8</TD><TD>1996-06-24 20:06:16</TD><TD>1996-06-24 20:14:36</TD><TD>500.000</TD><TD>WFPC2 </TD><TD>F160BN15;F160BN15</TD><TD>F160BN15</TD><TD>5828</TD><TD>1997-06-25 03:28:54</TD><TD>U3B1A10JT</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U3B1A10KT</TD><TD>JUP-IMAGE-MAP</TD><TD>285.2226875</TD><TD>-22.7450888889</TD><TD>8</TD><TD>1996-06-24 20:23:16</TD><TD>1996-06-24 20:33:16</TD><TD>600.000</TD><TD>WFPC2 </TD><TD>F160BN15;F160BN15</TD><TD>F130LP;F160BN15</TD><TD>5828</TD><TD>1997-06-25 03:29:04</TD><TD>U3B1A10KT</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U3B1A10LT</TD><TD>JUP-IMAGE-MAP</TD><TD>285.210579167</TD><TD>-22.7460166667</TD><TD>8</TD><TD>1996-06-24 21:25:16</TD><TD>1996-06-24 21:25:36</TD><TD>20.000</TD><TD>WFPC2 </TD><TD>FQCH4W3</TD><TD>FQCH4N</TD><TD>5828</TD><TD>1997-06-25 03:49:37</TD><TD>U3B1A10LT</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U3B1A10MT</TD><TD>JUP-IMAGE-MAP</TD><TD>285.216291667</TD><TD>-22.7458222222</TD><TD>8</TD><TD>1996-06-24 21:32:16</TD><TD>1996-06-24 21:42:16</TD><TD>600.000</TD><TD>WFPC2 </TD><TD>F160BN15;F160BN15</TD><TD>F160BN15</TD><TD>5828</TD><TD>1997-06-25 03:36:02</TD><TD>U3B1A10MT</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U3B1A10NT</TD><TD>JUP-IMAGE-MAP</TD><TD>285.214808333</TD><TD>-22.7459916667</TD><TD>8</TD><TD>1996-06-24 21:48:16</TD><TD>1996-06-24 21:58:16</TD><TD>600.000</TD><TD>WFPC2 </TD><TD>F160BN15;F160BN15</TD><TD>F130LP;F160BN15</TD><TD>5828</TD><TD>1997-06-25 03:50:47</TD><TD>U3B1A10NT</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U3B1A10OT</TD><TD>JUP-IMAGE-MAP</TD><TD>285.214158333</TD><TD>-22.7456888889</TD><TD>8</TD><TD>1996-06-24 22:05:16</TD><TD>1996-06-24 22:09:36</TD><TD>260.000</TD><TD>WFPC2 </TD><TD>WF3-FIX</TD><TD>F218W</TD><TD>5828</TD><TD>1997-06-25 03:30:39</TD><TD>U3B1A10OT</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U3B10501T</TD><TD>JUP-HILAT-IMAGE</TD><TD>284.842116667</TD><TD>-22.7952805556</TD><TD>8</TD><TD>1996-06-27 15:28:16</TD><TD>1996-06-27 15:28:36</TD><TD>20.000</TD><TD>WFPC2 </TD><TD>FQCH4W3</TD><TD>FQCH4N</TD><TD>5828</TD><TD>1997-06-27 16:22:26</TD><TD>U3B10501T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U3B10502T</TD><TD>JUP-HILAT-IMAGE</TD><TD>284.847425</TD><TD>-22.7925944444</TD><TD>8</TD><TD>1996-06-27 15:34:16</TD><TD>1996-06-27 15:42:36</TD><TD>500.000</TD><TD>WFPC2 </TD><TD>F160BN15;F160BN15</TD><TD>F160BN15</TD><TD>5828</TD><TD>1997-06-28 01:53:23</TD><TD>U3B10502T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U3B10503T</TD><TD>JUP-HILAT-IMAGE</TD><TD>284.845916667</TD><TD>-22.7927638889</TD><TD>8</TD><TD>1996-06-27 15:48:16</TD><TD>1996-06-27 15:58:16</TD><TD>600.000</TD><TD>WFPC2 </TD><TD>F160BN15;F160BN15</TD><TD>F130LP;F160BN15</TD><TD>5828</TD><TD>1997-06-28 01:59:10</TD><TD>U3B10503T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U3B10504T</TD><TD>JUP-HILAT-IMAGE</TD><TD>284.8453375</TD><TD>-22.7923333333</TD><TD>8</TD><TD>1996-06-27 16:05:16</TD><TD>1996-06-27 16:07:56</TD><TD>160.000</TD><TD>WFPC2 </TD><TD>WF3-FIX</TD><TD>F218W</TD><TD>5828</TD><TD>1997-06-28 01:58:21</TD><TD>U3B10504T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z3B1A501T</TD><TD>SPYBAL</TD><TD>284.85265</TD><TD>-22.7815694444</TD><TD>8</TD><TD>1996-06-27 17:04:14</TD><TD>1996-06-27 17:05:00</TD><TD>32.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5828</TD><TD>1997-06-28 01:44:04</TD><TD>Z3B1A501T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z3B1A502T</TD><TD>JUP-AUR-HILAT</TD><TD>284.85265</TD><TD>-22.7815694444</TD><TD>8</TD><TD>1996-06-27 17:05:34</TD><TD>1996-06-27 17:15:15</TD><TD>544.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5828</TD><TD>1997-06-28 01:45:25</TD><TD>Z3B1A502T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z3B1A503T</TD><TD>WAVE</TD><TD>359.999870833</TD><TD>0.00127777777778</TD><TD>8</TD><TD>1996-06-27 17:18:33</TD><TD>1996-06-27 17:19:19</TD><TD>32.000</TD><TD>HRS   </TD><TD>SC2</TD><TD>ECH-A</TD><TD>5828</TD><TD>1997-06-28 01:43:41</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z3B1A504T</TD><TD>WAVE</TD><TD>359.999870833</TD><TD>0.00127777777778</TD><TD>8</TD><TD>1996-06-27 17:19:49</TD><TD>1996-06-27 17:21:54</TD><TD>108.800</TD><TD>HRS   </TD><TD>SC2</TD><TD>ECH-A</TD><TD>5828</TD><TD>1997-06-28 01:45:56</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z3B1A505T</TD><TD>SPYBAL</TD><TD>284.849841667</TD><TD>-22.7818833333</TD><TD>8</TD><TD>1996-06-27 17:26:56</TD><TD>1996-06-27 17:27:12</TD><TD>4.800</TD><TD>HRS   </TD><TD>2.0</TD><TD>G140L</TD><TD>5828</TD><TD>1997-06-28 01:45:35</TD><TD>Z3B1A505T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z3B1A506T</TD><TD>JUP-AUR-HILAT</TD><TD>284.849841667</TD><TD>-22.7818833333</TD><TD>8</TD><TD>1996-06-27 17:27:46</TD><TD>1996-06-27 17:35:32</TD><TD>408.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>G140L</TD><TD>5828</TD><TD>1997-06-28 01:47:41</TD><TD>Z3B1A506T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z3B1A507T</TD><TD>JUP-AUR-HILAT</TD><TD>284.848395833</TD><TD>-22.78205</TD><TD>8</TD><TD>1996-06-27 17:38:07</TD><TD>1996-06-27 17:43:16</TD><TD>272.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>G140L</TD><TD>5828</TD><TD>1997-06-28 01:49:26</TD><TD>Z3B1A507T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U3B10601T</TD><TD>JUP-IOFOOT-IMAGE</TD><TD>284.785241667</TD><TD>-22.7940194444</TD><TD>8</TD><TD>1996-06-28 01:08:16</TD><TD>1996-06-28 01:08:36</TD><TD>20.000</TD><TD>WFPC2 </TD><TD>FQCH4W3</TD><TD>FQCH4N</TD><TD>5828</TD><TD>1997-06-28 11:46:08</TD><TD>U3B10601T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U3B10602T</TD><TD>JUP-IOFOOT-IMAGE</TD><TD>284.791120833</TD><TD>-22.7938416667</TD><TD>8</TD><TD>1996-06-28 01:14:16</TD><TD>1996-06-28 01:22:36</TD><TD>500.000</TD><TD>WFPC2 </TD><TD>F160BN15;F160BN15</TD><TD>F160BN15</TD><TD>5828</TD><TD>1997-06-28 11:51:30</TD><TD>U3B10602T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U3B10603T</TD><TD>JUP-IOFOOT-IMAGE</TD><TD>284.789608333</TD><TD>-22.7940111111</TD><TD>8</TD><TD>1996-06-28 01:28:16</TD><TD>1996-06-28 01:38:16</TD><TD>600.000</TD><TD>WFPC2 </TD><TD>F160BN15;F160BN15</TD><TD>F130LP;F160BN15</TD><TD>5828</TD><TD>1997-06-28 11:46:30</TD><TD>U3B10603T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U3B10604T</TD><TD>JUP-IOFOOT-IMAGE</TD><TD>284.789225</TD><TD>-22.7936777778</TD><TD>8</TD><TD>1996-06-28 01:45:16</TD><TD>1996-06-28 01:47:56</TD><TD>160.000</TD><TD>WFPC2 </TD><TD>WF3-FIX</TD><TD>F218W</TD><TD>5828</TD><TD>1997-06-28 12:03:31</TD><TD>U3B10604T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z3B1A601T</TD><TD>SPYBAL</TD><TD>284.799908333</TD><TD>-22.7881416667</TD><TD>8</TD><TD>1996-06-28 02:42:36</TD><TD>1996-06-28 02:43:23</TD><TD>32.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5828</TD><TD>1997-06-28 11:55:42</TD><TD>Z3B1A601T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z3B1A602T</TD><TD>JUP-AUR-IOFOOT</TD><TD>284.799908333</TD><TD>-22.7881416667</TD><TD>8</TD><TD>1996-06-28 02:43:58</TD><TD>1996-06-28 02:53:39</TD><TD>544.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5828</TD><TD>1997-06-28 11:55:15</TD><TD>Z3B1A602T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z3B1B601T</TD><TD>SPYBAL</TD><TD>284.797933333</TD><TD>-22.7883222222</TD><TD>8</TD><TD>1996-06-28 02:59:15</TD><TD>1996-06-28 02:59:31</TD><TD>4.800</TD><TD>HRS   </TD><TD>2.0</TD><TD>G140L</TD><TD>5828</TD><TD>1997-06-28 11:54:44</TD><TD>Z3B1B601T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z3B1B602T</TD><TD>JUP-AUR-IOFOOT2</TD><TD>284.797933333</TD><TD>-22.7883222222</TD><TD>8</TD><TD>1996-06-28 03:00:04</TD><TD>1996-06-28 03:05:13</TD><TD>272.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>G140L</TD><TD>5828</TD><TD>1997-06-28 12:03:07</TD><TD>Z3B1B602T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z3B1C601T</TD><TD>SPYBAL</TD><TD>284.7964875</TD><TD>-22.7884305556</TD><TD>8</TD><TD>1996-06-28 03:10:47</TD><TD>1996-06-28 03:11:02</TD><TD>4.800</TD><TD>HRS   </TD><TD>2.0</TD><TD>G140L</TD><TD>5828</TD><TD>1997-06-28 12:00:34</TD><TD>Z3B1C601T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z3B1C602T</TD><TD>JUP-AUR-IOFOOT3</TD><TD>284.7964875</TD><TD>-22.7884305556</TD><TD>8</TD><TD>1996-06-28 03:11:34</TD><TD>1996-06-28 03:16:43</TD><TD>272.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>G140L</TD><TD>5828</TD><TD>1997-06-28 12:03:45</TD><TD>Z3B1C602T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z3B1D601T</TD><TD>SPYBAL</TD><TD>284.775916667</TD><TD>-22.7943333333</TD><TD>8</TD><TD>1996-06-28 04:16:19</TD><TD>1996-06-28 04:17:05</TD><TD>32.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5828</TD><TD>1997-06-28 12:07:02</TD><TD>Z3B1D601T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z3B1D602T</TD><TD>JUP-OFFSET-SKY</TD><TD>284.775916667</TD><TD>-22.7943333333</TD><TD>8</TD><TD>1996-06-28 04:17:40</TD><TD>1996-06-28 04:32:14</TD><TD>816.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5828</TD><TD>1997-06-28 12:08:50</TD><TD>Z3B1D602T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z3B1D603T</TD><TD>WAVE</TD><TD>359.999870833</TD><TD>0.00127777777778</TD><TD>8</TD><TD>1996-06-28 04:35:01</TD><TD>1996-06-28 04:35:47</TD><TD>32.000</TD><TD>HRS   </TD><TD>SC2</TD><TD>ECH-A</TD><TD>5828</TD><TD>1997-06-28 12:08:27</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z3B1D604T</TD><TD>WAVE</TD><TD>359.999870833</TD><TD>0.00127777777778</TD><TD>8</TD><TD>1996-06-28 04:36:24</TD><TD>1996-06-28 04:38:29</TD><TD>108.800</TD><TD>HRS   </TD><TD>SC2</TD><TD>ECH-A</TD><TD>5828</TD><TD>1997-06-28 12:09:56</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z3B1E601T</TD><TD>SPYBAL</TD><TD>284.785629167</TD><TD>-22.7891444444</TD><TD>8</TD><TD>1996-06-28 04:43:48</TD><TD>1996-06-28 04:44:34</TD><TD>32.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5828</TD><TD>1997-06-28 12:11:30</TD><TD>Z3B1E601T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U3B10401T</TD><TD>JUP-OVALS2-IMAGE</TD><TD>284.519654167</TD><TD>-22.8233055556</TD><TD>8</TD><TD>1996-06-29 23:46:16</TD><TD>1996-06-29 23:46:36</TD><TD>20.000</TD><TD>WFPC2 </TD><TD>FQCH4W3</TD><TD>FQCH4N</TD><TD>5828</TD><TD>1997-06-30 02:53:23</TD><TD>U3B10401T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U3B10402T</TD><TD>JUP-OVALS2-IMAGE</TD><TD>284.5257125</TD><TD>-22.8231472222</TD><TD>8</TD><TD>1996-06-29 23:53:16</TD><TD>1996-06-29 23:59:56</TD><TD>400.000</TD><TD>WFPC2 </TD><TD>F160BN15;F160BN15</TD><TD>F160BN15</TD><TD>5828</TD><TD>1997-06-30 13:23:37</TD><TD>U3B10402T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U3B10403T</TD><TD>JUP-OVALS2-IMAGE</TD><TD>284.5241875</TD><TD>-22.8233138889</TD><TD>8</TD><TD>1996-06-30 00:05:16</TD><TD>1996-06-30 00:15:16</TD><TD>600.000</TD><TD>WFPC2 </TD><TD>F160BN15;F160BN15</TD><TD>F130LP;F160BN15</TD><TD>5828</TD><TD>1997-06-30 13:18:54</TD><TD>U3B10403T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U3B10404T</TD><TD>JUP-OVALS2-IMAGE</TD><TD>284.5238</TD><TD>-22.8229805556</TD><TD>8</TD><TD>1996-06-30 00:22:16</TD><TD>1996-06-30 00:24:56</TD><TD>160.000</TD><TD>WFPC2 </TD><TD>WF3-FIX</TD><TD>F218W</TD><TD>5828</TD><TD>1997-06-30 13:24:19</TD><TD>U3B10404T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z3B1A401T</TD><TD>SPYBAL</TD><TD>284.531175</TD><TD>-22.8169527778</TD><TD>8</TD><TD>1996-06-30 01:21:26</TD><TD>1996-06-30 01:22:12</TD><TD>32.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5828</TD><TD>1997-06-30 13:08:43</TD><TD>Z3B1A401T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z3B1A402T</TD><TD>JUP-AUR-OVALS2</TD><TD>284.531175</TD><TD>-22.8169527778</TD><TD>8</TD><TD>1996-06-30 01:22:46</TD><TD>1996-06-30 01:32:27</TD><TD>544.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5828</TD><TD>1997-06-30 13:10:52</TD><TD>Z3B1A402T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z3B1A403T</TD><TD>WAVE</TD><TD>359.999870833</TD><TD>0.00127777777778</TD><TD>8</TD><TD>1996-06-30 01:35:31</TD><TD>1996-06-30 01:36:17</TD><TD>32.000</TD><TD>HRS   </TD><TD>SC2</TD><TD>ECH-A</TD><TD>5828</TD><TD>1997-06-30 13:11:18</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z3B1A404T</TD><TD>WAVE</TD><TD>359.999870833</TD><TD>0.00127777777778</TD><TD>8</TD><TD>1996-06-30 01:36:48</TD><TD>1996-06-30 01:38:53</TD><TD>108.800</TD><TD>HRS   </TD><TD>SC2</TD><TD>ECH-A</TD><TD>5828</TD><TD>1997-06-30 13:12:08</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z3B1A405T</TD><TD>SPYBAL</TD><TD>284.528904167</TD><TD>-22.8172083333</TD><TD>8</TD><TD>1996-06-30 01:41:39</TD><TD>1996-06-30 01:41:55</TD><TD>4.800</TD><TD>HRS   </TD><TD>2.0</TD><TD>G140L</TD><TD>5828</TD><TD>1997-06-30 13:14:43</TD><TD>Z3B1A405T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z3B1A406T</TD><TD>JUP-AUR-OVALS2</TD><TD>284.528904167</TD><TD>-22.8172083333</TD><TD>8</TD><TD>1996-06-30 01:42:28</TD><TD>1996-06-30 01:47:37</TD><TD>272.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>G140L</TD><TD>5828</TD><TD>1997-06-30 13:15:26</TD><TD>Z3B1A406T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z3B1A407T</TD><TD>SPYBAL</TD><TD>284.527554167</TD><TD>-22.8173611111</TD><TD>8</TD><TD>1996-06-30 01:53:10</TD><TD>1996-06-30 01:53:25</TD><TD>4.800</TD><TD>HRS   </TD><TD>2.0</TD><TD>G140L</TD><TD>5828</TD><TD>1997-06-30 13:17:11</TD><TD>Z3B1A407T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z3B1A408T</TD><TD>JUP-AUR-OVALS2</TD><TD>284.527554167</TD><TD>-22.8173611111</TD><TD>8</TD><TD>1996-06-30 01:53:59</TD><TD>1996-06-30 01:59:07</TD><TD>272.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>G140L</TD><TD>5828</TD><TD>1997-06-30 13:17:43</TD><TD>Z3B1A408T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U3FW0501T</TD><TD>JUP-IOFOOT-IMAGE</TD><TD>278.5934875</TD><TD>-23.38755</TD><TD>8</TD><TD>1996-09-03 09:31:16</TD><TD>1996-09-03 09:31:36</TD><TD>20.000</TD><TD>WFPC2 </TD><TD>FQCH4W3</TD><TD>FQCH4N</TD><TD>6743</TD><TD>1997-09-03 15:38:35</TD><TD>U3FW0501T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U3FW0502T</TD><TD>JUP-IOFOOT-IMAGE</TD><TD>278.5862875</TD><TD>-23.3892694444</TD><TD>8</TD><TD>1996-09-03 09:38:16</TD><TD>1996-09-03 09:46:36</TD><TD>500.000</TD><TD>WFPC2 </TD><TD>F160BN15;F160BN15</TD><TD>F160BN15</TD><TD>6743</TD><TD>1997-09-03 15:47:47</TD><TD>U3FW0502T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U3FW0503T</TD><TD>JUP-IOFOOT-IMAGE</TD><TD>278.586279167</TD><TD>-23.3892861111</TD><TD>8</TD><TD>1996-09-03 09:52:16</TD><TD>1996-09-03 10:02:16</TD><TD>600.000</TD><TD>WFPC2 </TD><TD>F160BN15;F160BN15</TD><TD>F130LP;F160BN15</TD><TD>6743</TD><TD>1997-09-03 15:50:44</TD><TD>U3FW0503T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U3FW0504T</TD><TD>JUP-IOFOOT-IMAGE</TD><TD>278.586004167</TD><TD>-23.3897722222</TD><TD>8</TD><TD>1996-09-03 10:08:16</TD><TD>1996-09-03 10:10:56</TD><TD>160.000</TD><TD>WFPC2 </TD><TD>WF3-FIX</TD><TD>F218W</TD><TD>6743</TD><TD>1997-09-03 15:40:29</TD><TD>U3FW0504T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z3FWA501T</TD><TD>SPYBAL</TD><TD>278.572566667</TD><TD>-23.3982777778</TD><TD>8</TD><TD>1996-09-03 11:05:18</TD><TD>1996-09-03 11:06:05</TD><TD>32.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>6743</TD><TD>1997-09-03 15:48:12</TD><TD>Z3FWA501T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z3FWA502T</TD><TD>JUP-AUR-IOFOOT</TD><TD>278.572566667</TD><TD>-23.3982777778</TD><TD>8</TD><TD>1996-09-03 11:07:07</TD><TD>1996-09-03 11:16:48</TD><TD>544.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>6743</TD><TD>1997-09-03 15:55:03</TD><TD>Z3FWA502T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z3FWA503T</TD><TD>WAVE</TD><TD>7.5E-5</TD><TD>-0.00128333333333</TD><TD>8</TD><TD>1996-09-03 11:19:04</TD><TD>1996-09-03 11:21:09</TD><TD>108.800</TD><TD>HRS   </TD><TD>SC2</TD><TD>ECH-A</TD><TD>6743</TD><TD>1997-09-03 15:55:52</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z3FWB501T</TD><TD>SPYBAL</TD><TD>278.572008333</TD><TD>-23.3983444444</TD><TD>8</TD><TD>1996-09-03 11:25:51</TD><TD>1996-09-03 11:26:07</TD><TD>4.800</TD><TD>HRS   </TD><TD>2.0</TD><TD>G140L</TD><TD>6743</TD><TD>1997-09-03 15:51:01</TD><TD>Z3FWB501T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z3FWB502T</TD><TD>JUP-AUR-IOFOOT</TD><TD>278.572008333</TD><TD>-23.3983444444</TD><TD>8</TD><TD>1996-09-03 11:26:40</TD><TD>1996-09-03 11:34:27</TD><TD>408.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>G140L</TD><TD>6743</TD><TD>1997-09-03 15:56:57</TD><TD>Z3FWB502T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z3FWB503T</TD><TD>JUP-AUR-IOFOOT</TD><TD>278.5717</TD><TD>-23.3983805556</TD><TD>8</TD><TD>1996-09-03 11:37:00</TD><TD>1996-09-03 11:42:09</TD><TD>272.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>G140L</TD><TD>6743</TD><TD>1997-09-03 15:59:56</TD><TD>Z3FWB503T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z3FWB504T</TD><TD>SPYBAL</TD><TD>278.5994625</TD><TD>-23.3934194444</TD><TD>8</TD><TD>1996-09-03 12:38:07</TD><TD>1996-09-03 12:38:53</TD><TD>32.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>6743</TD><TD>1997-09-03 15:59:40</TD><TD>Z3FWB504T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z3FWB505T</TD><TD>JUP-OFFSET-SKY</TD><TD>278.5994625</TD><TD>-23.3934194444</TD><TD>8</TD><TD>1996-09-03 12:39:28</TD><TD>1996-09-03 12:54:02</TD><TD>816.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>6743</TD><TD>1997-09-03 16:02:08</TD><TD>Z3FWB505T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z3FWB506T</TD><TD>WAVE</TD><TD>7.5E-5</TD><TD>-0.00128333333333</TD><TD>8</TD><TD>1996-09-03 12:56:40</TD><TD>1996-09-03 12:58:45</TD><TD>108.800</TD><TD>HRS   </TD><TD>SC2</TD><TD>ECH-A</TD><TD>6743</TD><TD>1997-09-03 16:02:14</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z3FWC501T</TD><TD>SPYBAL</TD><TD>278.5701875</TD><TD>-23.3986305556</TD><TD>8</TD><TD>1996-09-03 13:03:37</TD><TD>1996-09-03 13:04:15</TD><TD>32.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>6743</TD><TD>1997-09-03 16:03:36</TD><TD>Z3FWC501T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z3FWC502T</TD><TD>JUP-AUR-IOFOOT</TD><TD>278.5701875</TD><TD>-23.3986305556</TD><TD>8</TD><TD>1996-09-03 13:04:46</TD><TD>1996-09-03 13:16:26</TD><TD>680.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>6743</TD><TD>1997-09-03 16:05:48</TD><TD>Z3FWC502T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>X3GF0101T</TD><TD>JUP-S-10</TD><TD>278.5785625</TD><TD>-23.4009277778</TD><TD>2</TD><TD>1996-09-05 09:46:59</TD><TD>1996-09-05 09:58:55</TD><TD>716.000</TD><TD>FOC   </TD><TD>512X1024</TD><TD>CLEAR1;F175W;F152M;CLEAR4</TD><TD>6531</TD><TD>1997-09-06 00:48:18</TD><TD>X3GF0101T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>X3GF0102T</TD><TD>JUP-S-10</TD><TD>278.578683333</TD><TD>-23.40095</TD><TD>2</TD><TD>1996-09-05 10:04:26</TD><TD>1996-09-05 10:25:51</TD><TD>1285.000</TD><TD>FOC   </TD><TD>512X1024</TD><TD>CLEAR1;F140W;F120M;CLEAR4</TD><TD>6531</TD><TD>1997-09-06 00:51:13</TD><TD>X3GF0102T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>X3GFA101T</TD><TD>JUP-S-65</TD><TD>278.578766667</TD><TD>-23.4010194444</TD><TD>2</TD><TD>1996-09-05 11:17:58</TD><TD>1996-09-05 11:32:54</TD><TD>896.000</TD><TD>FOC   </TD><TD>512X1024</TD><TD>CLEAR1;F175W;F152M;CLEAR4</TD><TD>6531</TD><TD>1997-09-06 00:34:28</TD><TD>X3GFA101T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>X3GFB101T</TD><TD>JUP-N-65</TD><TD>278.57955</TD><TD>-23.3911527778</TD><TD>2</TD><TD>1996-09-05 11:40:53</TD><TD>1996-09-05 12:01:25</TD><TD>1232.000</TD><TD>FOC   </TD><TD>512X1024</TD><TD>CLEAR1;F175W;F152M;CLEAR4</TD><TD>6531</TD><TD>1997-09-06 00:39:24</TD><TD>X3GFB101T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>X3GFC101T</TD><TD>JUP-S-125</TD><TD>278.579066667</TD><TD>-23.4012194444</TD><TD>2</TD><TD>1996-09-05 12:54:27</TD><TD>1996-09-05 13:10:23</TD><TD>956.000</TD><TD>FOC   </TD><TD>512X1024</TD><TD>CLEAR1;F175W;F152M;CLEAR4</TD><TD>6531</TD><TD>1997-09-06 00:43:21</TD><TD>X3GFC101T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>X3GFD101T</TD><TD>JUP-N-125</TD><TD>278.579516667</TD><TD>-23.3912416667</TD><TD>2</TD><TD>1996-09-05 13:18:22</TD><TD>1996-09-05 13:37:54</TD><TD>1172.000</TD><TD>FOC   </TD><TD>512X1024</TD><TD>CLEAR1;F175W;F152M;CLEAR4</TD><TD>6531</TD><TD>1997-09-06 00:52:08</TD><TD>X3GFD101T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>X3GFE101T</TD><TD>JUP-N-180</TD><TD>278.578125</TD><TD>-23.3914194444</TD><TD>2</TD><TD>1996-09-05 14:30:56</TD><TD>1996-09-05 14:44:04</TD><TD>788.000</TD><TD>FOC   </TD><TD>512X1024</TD><TD>CLEAR1;F175W;F152M;CLEAR4</TD><TD>6531</TD><TD>1997-09-06 01:21:07</TD><TD>X3GFE101T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>X3GFE102T</TD><TD>JUP-N-180</TD><TD>278.578266667</TD><TD>-23.3914416667</TD><TD>2</TD><TD>1996-09-05 14:49:35</TD><TD>1996-09-05 15:13:16</TD><TD>1421.000</TD><TD>FOC   </TD><TD>512X1024</TD><TD>CLEAR1;F140W;F120M;CLEAR4</TD><TD>6531</TD><TD>1997-09-06 01:00:33</TD><TD>X3GFE102T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U3FW0201T</TD><TD>JUP-OVALS-IMAGE</TD><TD>278.6208375</TD><TD>-23.3970027778</TD><TD>8</TD><TD>1996-09-07 11:37:16</TD><TD>1996-09-07 11:37:36</TD><TD>20.000</TD><TD>WFPC2 </TD><TD>FQCH4W3</TD><TD>FQCH4N</TD><TD>6743</TD><TD>1997-09-07 22:27:34</TD><TD>U3FW0201T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U3FW0202T</TD><TD>JUP-OVALS-IMAGE</TD><TD>278.613558333</TD><TD>-23.3971277778</TD><TD>8</TD><TD>1996-09-07 11:44:16</TD><TD>1996-09-07 11:52:36</TD><TD>500.000</TD><TD>WFPC2 </TD><TD>F160BN15;F160BN15</TD><TD>F160BN15</TD><TD>6743</TD><TD>1997-09-07 22:18:55</TD><TD>U3FW0202T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U3FW0203T</TD><TD>JUP-OVALS-IMAGE</TD><TD>278.613708333</TD><TD>-23.3971361111</TD><TD>8</TD><TD>1996-09-07 11:58:16</TD><TD>1996-09-07 12:08:16</TD><TD>600.000</TD><TD>WFPC2 </TD><TD>F160BN15;F160BN15</TD><TD>F130LP;F160BN15</TD><TD>6743</TD><TD>1997-09-08 13:06:25</TD><TD>U3FW0203T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U3FW0204T</TD><TD>JUP-OVALS-IMAGE</TD><TD>278.6133875</TD><TD>-23.3975444444</TD><TD>8</TD><TD>1996-09-07 12:14:16</TD><TD>1996-09-07 12:16:56</TD><TD>160.000</TD><TD>WFPC2 </TD><TD>WF3-FIX</TD><TD>F218W</TD><TD>6743</TD><TD>1997-09-08 13:12:58</TD><TD>U3FW0204T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z3FWA201T</TD><TD>SPYBAL</TD><TD>278.598625</TD><TD>-23.4032166667</TD><TD>8</TD><TD>1996-09-07 13:10:14</TD><TD>1996-09-07 13:11:00</TD><TD>32.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>6743</TD><TD>1997-09-08 12:42:24</TD><TD>Z3FWA201T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z3FWA202T</TD><TD>JUP-AUR-OVALS</TD><TD>278.598625</TD><TD>-23.4032166667</TD><TD>8</TD><TD>1996-09-07 13:11:34</TD><TD>1996-09-07 13:21:15</TD><TD>544.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>6743</TD><TD>1997-09-08 12:43:43</TD><TD>Z3FWA202T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z3FWA203T</TD><TD>WAVE</TD><TD>7.5E-5</TD><TD>-0.00128333333333</TD><TD>8</TD><TD>1996-09-07 13:24:04</TD><TD>1996-09-07 13:26:09</TD><TD>108.800</TD><TD>HRS   </TD><TD>SC2</TD><TD>ECH-A</TD><TD>6743</TD><TD>1997-09-08 13:01:26</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z3FWB201T</TD><TD>SPYBAL</TD><TD>278.598545833</TD><TD>-23.4032583333</TD><TD>8</TD><TD>1996-09-07 13:30:40</TD><TD>1996-09-07 13:30:56</TD><TD>4.800</TD><TD>HRS   </TD><TD>2.0</TD><TD>G140L</TD><TD>6743</TD><TD>1997-09-08 13:06:25</TD><TD>Z3FWB201T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z3FWB202T</TD><TD>JUP-AUR-OVALS</TD><TD>278.598545833</TD><TD>-23.4032583333</TD><TD>8</TD><TD>1996-09-07 13:31:28</TD><TD>1996-09-07 13:39:15</TD><TD>408.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>G140L</TD><TD>6743</TD><TD>1997-09-08 13:07:17</TD><TD>Z3FWB202T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z3FWB203T</TD><TD>JUP-AUR-OVALS</TD><TD>278.5985375</TD><TD>-23.4032777778</TD><TD>8</TD><TD>1996-09-07 13:41:48</TD><TD>1996-09-07 13:46:57</TD><TD>272.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>G140L</TD><TD>6743</TD><TD>1997-09-08 13:14:14</TD><TD>Z3FWB203T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U3FW0301T</TD><TD>JUP-OVALN-IMAGE</TD><TD>278.622683333</TD><TD>-23.3971027778</TD><TD>8</TD><TD>1996-09-07 14:50:16</TD><TD>1996-09-07 14:50:36</TD><TD>20.000</TD><TD>WFPC2 </TD><TD>FQCH4W3</TD><TD>FQCH4N</TD><TD>6743</TD><TD>1997-09-08 12:57:09</TD><TD>U3FW0301T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U3FW0302T</TD><TD>JUP-OVALN-IMAGE</TD><TD>278.615408333</TD><TD>-23.397225</TD><TD>8</TD><TD>1996-09-07 14:57:16</TD><TD>1996-09-07 15:05:36</TD><TD>500.000</TD><TD>WFPC2 </TD><TD>F160BN15;F160BN15</TD><TD>F160BN15</TD><TD>6743</TD><TD>1997-09-08 13:10:47</TD><TD>U3FW0302T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U3FW0303T</TD><TD>JUP-OVALN-IMAGE</TD><TD>278.615566667</TD><TD>-23.3972333333</TD><TD>8</TD><TD>1996-09-07 15:11:16</TD><TD>1996-09-07 15:21:16</TD><TD>600.000</TD><TD>WFPC2 </TD><TD>F160BN15;F160BN15</TD><TD>F130LP;F160BN15</TD><TD>6743</TD><TD>1997-09-08 13:02:29</TD><TD>U3FW0303T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U3FW0304T</TD><TD>JUP-OVALN-IMAGE</TD><TD>278.615245833</TD><TD>-23.3976416667</TD><TD>8</TD><TD>1996-09-07 15:27:16</TD><TD>1996-09-07 15:29:56</TD><TD>160.000</TD><TD>WFPC2 </TD><TD>WF3-FIX</TD><TD>F218W</TD><TD>6743</TD><TD>1997-09-08 13:03:33</TD><TD>U3FW0304T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z3FWA301T</TD><TD>SPYBAL</TD><TD>278.599929167</TD><TD>-23.3934555556</TD><TD>8</TD><TD>1996-09-07 16:23:14</TD><TD>1996-09-07 16:24:00</TD><TD>32.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>6743</TD><TD>1997-09-08 13:15:40</TD><TD>Z3FWA301T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z3FWA302T</TD><TD>JUP-AUR-OVALN</TD><TD>278.599929167</TD><TD>-23.3934555556</TD><TD>8</TD><TD>1996-09-07 16:24:34</TD><TD>1996-09-07 16:34:15</TD><TD>544.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>6743</TD><TD>1997-09-08 13:15:26</TD><TD>Z3FWA302T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z3FWA303T</TD><TD>WAVE</TD><TD>0.000375</TD><TD>-0.00123055555556</TD><TD>8</TD><TD>1996-09-07 16:37:16</TD><TD>1996-09-07 16:39:21</TD><TD>108.800</TD><TD>HRS   </TD><TD>SC2</TD><TD>ECH-A</TD><TD>6743</TD><TD>1997-09-08 13:20:01</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z3FWB301T</TD><TD>SPYBAL</TD><TD>278.599529167</TD><TD>-23.3935194444</TD><TD>8</TD><TD>1996-09-07 16:44:04</TD><TD>1996-09-07 16:44:19</TD><TD>4.800</TD><TD>HRS   </TD><TD>2.0</TD><TD>G140L</TD><TD>6743</TD><TD>1997-09-08 13:19:44</TD><TD>Z3FWB301T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z3FWB302T</TD><TD>JUP-AUR-OVALN</TD><TD>278.599529167</TD><TD>-23.3935194444</TD><TD>8</TD><TD>1996-09-07 16:44:52</TD><TD>1996-09-07 16:52:39</TD><TD>408.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>G140L</TD><TD>6743</TD><TD>1997-09-08 13:23:07</TD><TD>Z3FWB302T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z3FWB303T</TD><TD>JUP-AUR-OVALN</TD><TD>278.5993375</TD><TD>-23.3935555556</TD><TD>8</TD><TD>1996-09-07 16:55:18</TD><TD>1996-09-07 17:00:28</TD><TD>272.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>G140L</TD><TD>6743</TD><TD>1997-09-08 13:23:48</TD><TD>Z3FWB303T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U3FW0401T</TD><TD>JUP-HILAT-IMAGE</TD><TD>278.635058333</TD><TD>-23.3976138889</TD><TD>8</TD><TD>1996-09-08 10:08:16</TD><TD>1996-09-08 10:08:36</TD><TD>20.000</TD><TD>WFPC2 </TD><TD>FQCH4W3</TD><TD>FQCH4N</TD><TD>6743</TD><TD>1997-09-08 17:52:20</TD><TD>U3FW0401T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U3FW0402T</TD><TD>JUP-HILAT-IMAGE</TD><TD>278.627804167</TD><TD>-23.3977361111</TD><TD>8</TD><TD>1996-09-08 10:14:16</TD><TD>1996-09-08 10:22:36</TD><TD>500.000</TD><TD>WFPC2 </TD><TD>F160BN15;F160BN15</TD><TD>F160BN15</TD><TD>6743</TD><TD>1997-09-08 18:04:26</TD><TD>U3FW0402T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U3FW0403T</TD><TD>JUP-HILAT-IMAGE</TD><TD>278.627991667</TD><TD>-23.3977416667</TD><TD>8</TD><TD>1996-09-08 10:28:16</TD><TD>1996-09-08 10:38:16</TD><TD>600.000</TD><TD>WFPC2 </TD><TD>F160BN15;F160BN15</TD><TD>F130LP;F160BN15</TD><TD>6743</TD><TD>1997-09-09 03:00:18</TD><TD>U3FW0403T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U3FW0404T</TD><TD>JUP-HILAT-IMAGE</TD><TD>278.627695833</TD><TD>-23.39815</TD><TD>8</TD><TD>1996-09-08 10:45:16</TD><TD>1996-09-08 10:47:56</TD><TD>160.000</TD><TD>WFPC2 </TD><TD>WF3-FIX</TD><TD>F218W</TD><TD>6743</TD><TD>1997-09-09 02:46:56</TD><TD>U3FW0404T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z3FWA401T</TD><TD>SPYBAL</TD><TD>278.613908333</TD><TD>-23.3934666667</TD><TD>8</TD><TD>1996-09-08 11:40:52</TD><TD>1996-09-08 11:41:38</TD><TD>32.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>6743</TD><TD>1997-09-09 02:35:08</TD><TD>Z3FWA401T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z3FWA402T</TD><TD>JUP-AUR-HILAT</TD><TD>278.613908333</TD><TD>-23.3934666667</TD><TD>8</TD><TD>1996-09-08 11:42:10</TD><TD>1996-09-08 11:51:51</TD><TD>544.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>6743</TD><TD>1997-09-09 02:35:24</TD><TD>Z3FWA402T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z3FWA403T</TD><TD>WAVE</TD><TD>7.5E-5</TD><TD>-0.00128333333333</TD><TD>8</TD><TD>1996-09-08 11:54:40</TD><TD>1996-09-08 11:56:45</TD><TD>108.800</TD><TD>HRS   </TD><TD>SC2</TD><TD>ECH-A</TD><TD>6743</TD><TD>1997-09-09 02:35:04</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z3FWB401T</TD><TD>SPYBAL</TD><TD>278.6137</TD><TD>-23.3935055556</TD><TD>8</TD><TD>1996-09-08 12:01:27</TD><TD>1996-09-08 12:01:43</TD><TD>4.800</TD><TD>HRS   </TD><TD>2.0</TD><TD>G140L</TD><TD>6743</TD><TD>1997-09-09 02:40:34</TD><TD>Z3FWB401T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z3FWB402T</TD><TD>JUP-AUR-HILAT</TD><TD>278.6137</TD><TD>-23.3935055556</TD><TD>8</TD><TD>1996-09-08 12:02:16</TD><TD>1996-09-08 12:10:03</TD><TD>408.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>G140L</TD><TD>6743</TD><TD>1997-09-09 02:41:23</TD><TD>Z3FWB402T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z3FWB403T</TD><TD>JUP-AUR-HILAT</TD><TD>278.613583333</TD><TD>-23.3935305556</TD><TD>8</TD><TD>1996-09-08 12:12:35</TD><TD>1996-09-08 12:17:44</TD><TD>272.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>G140L</TD><TD>6743</TD><TD>1997-09-09 02:44:08</TD><TD>Z3FWB403T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2JR1101T</TD><TD>SPYBAL</TD><TD>1.9032625</TD><TD>-1.77748055556</TD><TD>0</TD><TD>1996-12-24 06:08:27</TD><TD>1996-12-24 06:09:04</TD><TD>32.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5757</TD><TD>1997-12-24 17:20:41</TD><TD>Z2JR1101T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2JR1102T</TD><TD>SATURN-EQ</TD><TD>1.9032625</TD><TD>-1.77748055556</TD><TD>0</TD><TD>1996-12-24 06:09:54</TD><TD>1996-12-24 06:23:51</TD><TD>816.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5757</TD><TD>1997-12-24 17:27:01</TD><TD>Z2JR1102T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2JR1103T</TD><TD>SPYBAL</TD><TD>1.903725</TD><TD>-1.77721944444</TD><TD>0</TD><TD>1996-12-24 06:28:31</TD><TD>1996-12-24 06:29:08</TD><TD>32.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5757</TD><TD>1997-12-24 17:23:56</TD><TD>Z2JR1103T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2JR1104T</TD><TD>SATURN-EQ</TD><TD>1.903725</TD><TD>-1.77721944444</TD><TD>0</TD><TD>1996-12-24 06:29:54</TD><TD>1996-12-24 06:44:13</TD><TD>816.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5757</TD><TD>1997-12-24 17:33:51</TD><TD>Z2JR1104T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2JR1105T</TD><TD>WAVE</TD><TD>0.0006</TD><TD>-0.00113611111111</TD><TD>0</TD><TD>1996-12-24 06:46:40</TD><TD>1996-12-24 06:48:41</TD><TD>115.600</TD><TD>HRS   </TD><TD>SC2</TD><TD>ECH-A</TD><TD>5757</TD><TD>1997-12-24 17:33:52</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2JR1106T</TD><TD>SPYBAL</TD><TD>1.90524583333</TD><TD>-1.77734722222</TD><TD>0</TD><TD>1996-12-24 07:38:44</TD><TD>1996-12-24 07:39:21</TD><TD>32.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5757</TD><TD>1997-12-24 17:35:10</TD><TD>Z2JR1106T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2JR1107T</TD><TD>SATURN-S-POLE</TD><TD>1.90524583333</TD><TD>-1.77734722222</TD><TD>0</TD><TD>1996-12-24 07:40:12</TD><TD>1996-12-24 07:54:13</TD><TD>816.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5757</TD><TD>1997-12-24 17:42:26</TD><TD>Z2JR1107T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2JR1108T</TD><TD>SPYBAL</TD><TD>1.90570833333</TD><TD>-1.77708611111</TD><TD>0</TD><TD>1996-12-24 07:59:17</TD><TD>1996-12-24 07:59:55</TD><TD>32.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5757</TD><TD>1997-12-24 17:41:49</TD><TD>Z2JR1108T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2JR1109T</TD><TD>SATURN-S-POLE</TD><TD>1.90570833333</TD><TD>-1.77708611111</TD><TD>0</TD><TD>1996-12-24 08:00:28</TD><TD>1996-12-24 08:17:11</TD><TD>952.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5757</TD><TD>1997-12-24 17:41:46</TD><TD>Z2JR1109T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2JR110AT</TD><TD>WAVE</TD><TD>0.0006</TD><TD>-0.00113611111111</TD><TD>0</TD><TD>1996-12-24 08:19:46</TD><TD>1996-12-24 08:21:47</TD><TD>115.600</TD><TD>HRS   </TD><TD>SC2</TD><TD>ECH-A</TD><TD>5757</TD><TD>1997-12-24 17:43:51</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2JR110BT</TD><TD>SPYBAL</TD><TD>1.9094875</TD><TD>-1.77531666667</TD><TD>0</TD><TD>1996-12-24 09:15:15</TD><TD>1996-12-24 09:15:52</TD><TD>32.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5757</TD><TD>1997-12-24 17:45:05</TD><TD>Z2JR110BT</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2JR110CT</TD><TD>SATURN-SUNLIT-LIMB</TD><TD>1.9094875</TD><TD>-1.77531666667</TD><TD>0</TD><TD>1996-12-24 09:16:28</TD><TD>1996-12-24 09:30:25</TD><TD>816.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5757</TD><TD>1997-12-24 17:46:24</TD><TD>Z2JR110CT</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2JR110DT</TD><TD>SPYBAL</TD><TD>1.90995</TD><TD>-1.77505277778</TD><TD>0</TD><TD>1996-12-24 09:35:45</TD><TD>1996-12-24 09:36:22</TD><TD>32.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5757</TD><TD>1997-12-24 17:45:59</TD><TD>Z2JR110DT</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2JR110ET</TD><TD>SATURN-SUNLIT-LIMB</TD><TD>1.90995</TD><TD>-1.77505277778</TD><TD>0</TD><TD>1996-12-24 09:36:58</TD><TD>1996-12-24 09:53:41</TD><TD>952.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5757</TD><TD>1997-12-24 17:49:56</TD><TD>Z2JR110ET</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2JR110FT</TD><TD>WAVE</TD><TD>0.0006</TD><TD>-0.00113611111111</TD><TD>0</TD><TD>1996-12-24 09:56:16</TD><TD>1996-12-24 09:58:17</TD><TD>115.600</TD><TD>HRS   </TD><TD>SC2</TD><TD>ECH-A</TD><TD>5757</TD><TD>1997-12-24 17:48:06</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2JR110GT</TD><TD>SPYBAL</TD><TD>1.90968333333</TD><TD>-1.73949444444</TD><TD>0</TD><TD>1996-12-24 10:47:18</TD><TD>1996-12-24 10:47:55</TD><TD>32.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5757</TD><TD>1997-12-24 17:49:58</TD><TD>Z2JR110GT</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2JR110HT</TD><TD>SATURN-OFFSET-SKY</TD><TD>1.90968333333</TD><TD>-1.73949444444</TD><TD>0</TD><TD>1996-12-24 10:48:28</TD><TD>1996-12-24 11:02:25</TD><TD>816.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5757</TD><TD>1997-12-24 17:50:38</TD><TD>Z2JR110HT</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2JR110IT</TD><TD>SPYBAL</TD><TD>1.91015</TD><TD>-1.73923055556</TD><TD>0</TD><TD>1996-12-24 11:07:49</TD><TD>1996-12-24 11:08:26</TD><TD>32.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5757</TD><TD>1997-12-24 17:54:49</TD><TD>Z2JR110IT</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2JR110JT</TD><TD>SATURN-OFFSET-SKY</TD><TD>1.91015</TD><TD>-1.73923055556</TD><TD>0</TD><TD>1996-12-24 11:08:58</TD><TD>1996-12-24 11:25:41</TD><TD>952.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5757</TD><TD>1997-12-24 17:55:10</TD><TD>Z2JR110JT</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2JR110KT</TD><TD>WAVE</TD><TD>0.0006</TD><TD>-0.00113611111111</TD><TD>0</TD><TD>1996-12-24 11:28:22</TD><TD>1996-12-24 11:30:23</TD><TD>115.600</TD><TD>HRS   </TD><TD>SC2</TD><TD>ECH-A</TD><TD>5757</TD><TD>1997-12-24 17:52:05</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U3B10701R</TD><TD>JUP-IMAGE-NORTH</TD><TD>317.485779167</TD><TD>-16.8574</TD><TD>8</TD><TD>1997-03-31 01:49:14</TD><TD>1997-03-31 01:49:34</TD><TD>20.000</TD><TD>WFPC2 </TD><TD>FQCH4W3</TD><TD>FQCH4N</TD><TD>5828</TD><TD>1998-03-31 07:03:04</TD><TD>U3B10701R</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U3B10702R</TD><TD>JUP-IMAGE-MAP</TD><TD>317.494566667</TD><TD>-16.8551944444</TD><TD>8</TD><TD>1997-03-31 01:55:14</TD><TD>1997-03-31 02:03:34</TD><TD>500.000</TD><TD>WFPC2 </TD><TD>F160BN15;F160BN15</TD><TD>F160BN15</TD><TD>5828</TD><TD>1998-03-31 07:03:03</TD><TD>U3B10702R</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U3B10703R</TD><TD>JUP-IMAGE-MAP</TD><TD>317.496575</TD><TD>-16.8546388889</TD><TD>8</TD><TD>1997-03-31 02:09:14</TD><TD>1997-03-31 02:19:14</TD><TD>600.000</TD><TD>WFPC2 </TD><TD>F160BN15;F160BN15</TD><TD>F160BN15;F130LP</TD><TD>5828</TD><TD>1998-03-31 07:02:04</TD><TD>U3B10703R</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U3B10704R</TD><TD>JUP-IMAGE-MAP</TD><TD>317.497845833</TD><TD>-16.8538833333</TD><TD>8</TD><TD>1997-03-31 02:26:14</TD><TD>1997-03-31 02:28:54</TD><TD>160.000</TD><TD>WFPC2 </TD><TD>WF3-FIX</TD><TD>F218W</TD><TD>5828</TD><TD>1998-03-31 07:06:37</TD><TD>U3B10704R</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U3FW0601N</TD><TD>JUP-IMAGE-NORTH</TD><TD>322.72755</TD><TD>-15.3649305556</TD><TD>8</TD><TD>1997-05-06 10:36:14</TD><TD>1997-05-06 10:36:34</TD><TD>20.000</TD><TD>WFPC2 </TD><TD>FQCH4W3</TD><TD>FQCH4N</TD><TD>6743</TD><TD>1998-05-06 12:53:23</TD><TD>U3FW0601N</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U3FW0602N</TD><TD>JUP-IMAGE-NORTH</TD><TD>322.735104167</TD><TD>-15.3629388889</TD><TD>8</TD><TD>1997-05-06 10:41:14</TD><TD>1997-05-06 10:41:21</TD><TD>7.000</TD><TD>WFPC2 </TD><TD>WF3-FIX</TD><TD>F953N</TD><TD>6743</TD><TD>1998-05-06 13:01:25</TD><TD>U3FW0602N</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U3FW0603N</TD><TD>JUP-IMAGE-NORTH</TD><TD>322.735320833</TD><TD>-15.3628777778</TD><TD>8</TD><TD>1997-05-06 10:44:14</TD><TD>1997-05-06 10:44:16</TD><TD>2.000</TD><TD>WFPC2 </TD><TD>WF3-FIX</TD><TD>F410M</TD><TD>6743</TD><TD>1998-05-06 13:09:56</TD><TD>U3FW0603N</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U3FW0604N</TD><TD>JUP-IMAGE-NORTH</TD><TD>322.736175</TD><TD>-15.3630222222</TD><TD>8</TD><TD>1997-05-06 10:51:14</TD><TD>1997-05-06 10:59:34</TD><TD>500.000</TD><TD>WFPC2 </TD><TD>F160BN15;F160BN15</TD><TD>F160BN15</TD><TD>6743</TD><TD>1998-05-06 12:53:39</TD><TD>U3FW0604N</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U3FW0605N</TD><TD>JUP-IMAGE-NORTH</TD><TD>322.737308333</TD><TD>-15.3626972222</TD><TD>8</TD><TD>1997-05-06 11:05:14</TD><TD>1997-05-06 11:15:14</TD><TD>600.000</TD><TD>WFPC2 </TD><TD>F160BN15;F160BN15</TD><TD>F160BN15;F130LP</TD><TD>6743</TD><TD>1998-05-06 13:02:51</TD><TD>U3FW0605N</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U3FW0701N</TD><TD>JUP-IMAGE-SOUTH</TD><TD>322.7480375</TD><TD>-15.3588361111</TD><TD>8</TD><TD>1997-05-06 15:26:14</TD><TD>1997-05-06 15:26:34</TD><TD>20.000</TD><TD>WFPC2 </TD><TD>FQCH4W3</TD><TD>FQCH4N</TD><TD>6743</TD><TD>1998-05-06 19:18:10</TD><TD>U3FW0701N</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U3FW0702M</TD><TD>JUP-IMAGE-SOUTH</TD><TD>322.7556875</TD><TD>-15.3569138889</TD><TD>8</TD><TD>1997-05-06 15:32:14</TD><TD>1997-05-06 15:32:21</TD><TD>7.000</TD><TD>WFPC2 </TD><TD>WF3-FIX</TD><TD>F953N</TD><TD>6743</TD><TD>1998-05-06 21:13:49</TD><TD>U3FW0702M</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U3FW0703M</TD><TD>JUP-IMAGE-SOUTH</TD><TD>322.7559</TD><TD>-15.3568527778</TD><TD>8</TD><TD>1997-05-06 15:35:14</TD><TD>1997-05-06 15:35:16</TD><TD>2.000</TD><TD>WFPC2 </TD><TD>WF3-FIX</TD><TD>F410M</TD><TD>6743</TD><TD>1998-05-06 20:54:24</TD><TD>U3FW0703M</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U3FW0704M</TD><TD>JUP-IMAGE-SOUTH</TD><TD>322.756670833</TD><TD>-15.3570166667</TD><TD>8</TD><TD>1997-05-06 15:41:14</TD><TD>1997-05-06 15:49:34</TD><TD>500.000</TD><TD>WFPC2 </TD><TD>F160BN15;F160BN15</TD><TD>F160BN15</TD><TD>6743</TD><TD>1998-05-06 21:02:25</TD><TD>U3FW0704M</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U3FW0705M</TD><TD>JUP-IMAGE-SOUTH</TD><TD>322.7578</TD><TD>-15.3566944444</TD><TD>8</TD><TD>1997-05-06 15:55:14</TD><TD>1997-05-06 16:05:14</TD><TD>600.000</TD><TD>WFPC2 </TD><TD>F160BN15;F160BN15</TD><TD>F160BN15;F130LP</TD><TD>6743</TD><TD>1998-05-06 20:55:40</TD><TD>U3FW0705M</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U43B0101M</TD><TD>JUP-NORTH-WFPC2</TD><TD>323.7817125</TD><TD>-15.2711333333</TD><TD>15</TD><TD>1997-07-03 06:08:13</TD><TD>1997-07-03 06:16:33</TD><TD>500.000</TD><TD>WFPC2 </TD><TD>F160BN15;F160BN15</TD><TD>F160BN15</TD><TD>7308</TD><TD>1998-07-03 12:33:10</TD><TD>U43B0101M</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U43B0102M</TD><TD>JUP-NORTH-WFPC2</TD><TD>323.780945833</TD><TD>-15.2714305556</TD><TD>15</TD><TD>1997-07-03 06:22:13</TD><TD>1997-07-03 06:32:13</TD><TD>600.000</TD><TD>WFPC2 </TD><TD>F160BN15;F160BN15</TD><TD>F160BN15;F130LP</TD><TD>7308</TD><TD>1998-07-03 12:28:13</TD><TD>U43B0102M</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U43B0103M</TD><TD>JUP-NORTH-WFPC2</TD><TD>323.780083333</TD><TD>-15.2717638889</TD><TD>15</TD><TD>1997-07-03 06:40:13</TD><TD>1997-07-03 06:50:13</TD><TD>600.000</TD><TD>WFPC2 </TD><TD>F160BN15;F160BN15</TD><TD>F160BN15;F165LP</TD><TD>7308</TD><TD>1998-07-05 16:26:44</TD><TD>U43B0103M</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O43BA1BNQ</TD><TD>JUP-AUR-OVALN</TD><TD>323.788925</TD><TD>-15.2633694444</TD><TD>15</TD><TD>1997-07-03 07:43:09</TD><TD>1997-07-03 07:54:49</TD><TD>700.186</TD><TD>STIS  </TD><TD>52X0.5</TD><TD>G140L</TD><TD>7308</TD><TD>1998-01-13 20:49:16</TD><TD>O43BA1BNQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O43BA1BPQ</TD><TD>JUP-AUR-OVALN</TD><TD>323.788120833</TD><TD>-15.2636805556</TD><TD>15</TD><TD>1997-07-03 07:59:07</TD><TD>1997-07-03 08:22:27</TD><TD>1400.188</TD><TD>STIS  </TD><TD>52X0.2</TD><TD>G140L</TD><TD>7308</TD><TD>1998-01-13 20:49:20</TD><TD>O43BA1BPQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U3B12701M</TD><TD>JUP-IMAGE-SOUTH</TD><TD>323.758295833</TD><TD>-15.2801972222</TD><TD>8</TD><TD>1997-07-03 14:12:13</TD><TD>1997-07-03 14:22:13</TD><TD>600.000</TD><TD>WFPC2 </TD><TD>F160BN15;F160BN15</TD><TD>F160BN15;F165LP</TD><TD>5828</TD><TD>1998-07-03 21:16:54</TD><TD>U3B12701M</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U3B1A701M</TD><TD>JUP-IMAGE-MAP</TD><TD>323.757566667</TD><TD>-15.2804777778</TD><TD>8</TD><TD>1997-07-03 14:29:13</TD><TD>1997-07-03 14:37:33</TD><TD>500.000</TD><TD>WFPC2 </TD><TD>F160BN15;F160BN15</TD><TD>F160BN15</TD><TD>5828</TD><TD>1998-07-03 21:28:20</TD><TD>U3B1A701M</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U3B1A702M</TD><TD>JUP-IMAGE-MAP</TD><TD>323.756791667</TD><TD>-15.2807777778</TD><TD>8</TD><TD>1997-07-03 14:43:13</TD><TD>1997-07-03 14:53:13</TD><TD>600.000</TD><TD>WFPC2 </TD><TD>F160BN15;F160BN15</TD><TD>F160BN15;F130LP</TD><TD>5828</TD><TD>1998-07-03 21:32:33</TD><TD>U3B1A702M</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U43B0201M</TD><TD>JUP-SOUTH-WFPC2</TD><TD>323.6996</TD><TD>-15.3019611111</TD><TD>15</TD><TD>1997-07-04 07:57:13</TD><TD>1997-07-04 07:57:33</TD><TD>20.000</TD><TD>WFPC2 </TD><TD>FQCH4W3</TD><TD>FQCH4N</TD><TD>7308</TD><TD>1998-07-04 11:09:49</TD><TD>U43B0201M</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U43B0202M</TD><TD>JUP-SOUTH-WFPC2</TD><TD>323.705579167</TD><TD>-15.3005111111</TD><TD>15</TD><TD>1997-07-04 08:03:13</TD><TD>1997-07-04 08:13:13</TD><TD>600.000</TD><TD>WFPC2 </TD><TD>F160BN15;F160BN15</TD><TD>F160BN15</TD><TD>7308</TD><TD>1998-07-04 11:15:26</TD><TD>U43B0202M</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U43B0203M</TD><TD>JUP-SOUTH-WFPC2</TD><TD>323.704779167</TD><TD>-15.3008166667</TD><TD>15</TD><TD>1997-07-04 08:19:13</TD><TD>1997-07-04 08:29:13</TD><TD>600.000</TD><TD>WFPC2 </TD><TD>F160BN15;F160BN15</TD><TD>F160BN15;F130LP</TD><TD>7308</TD><TD>1998-07-04 11:16:24</TD><TD>U43B0203M</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U43B0204M</TD><TD>JUP-SOUTH-WFPC2</TD><TD>323.7045375</TD><TD>-15.3005277778</TD><TD>15</TD><TD>1997-07-04 08:35:13</TD><TD>1997-07-04 08:39:33</TD><TD>260.000</TD><TD>WFPC2 </TD><TD>WF3-FIX</TD><TD>F218W</TD><TD>7308</TD><TD>1998-07-04 11:11:38</TD><TD>U43B0204M</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O43BA2H4Q</TD><TD>JUP-AUR-OVALS</TD><TD>323.717170833</TD><TD>-15.3030277778</TD><TD>15</TD><TD>1997-07-04 09:31:47</TD><TD>1997-07-04 09:43:27</TD><TD>700.196</TD><TD>STIS  </TD><TD>52X0.5</TD><TD>G140L</TD><TD>7308</TD><TD>1998-01-13 20:49:23</TD><TD>O43BA2H4Q</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O43BA2H6Q</TD><TD>JUP-AUR-OVALS</TD><TD>323.716333333</TD><TD>-15.3033472222</TD><TD>15</TD><TD>1997-07-04 09:47:45</TD><TD>1997-07-04 10:11:05</TD><TD>1400.188</TD><TD>STIS  </TD><TD>52X0.2</TD><TD>G140L</TD><TD>7308</TD><TD>1998-07-04 10:11:05</TD><TD>O43BA2H6Q</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U43B0401M</TD><TD>JUP-SOUTH-WFPC2</TD><TD>321.261633333</TD><TD>-16.16955</TD><TD>15</TD><TD>1997-07-28 17:42:13</TD><TD>1997-07-28 17:42:33</TD><TD>20.000</TD><TD>WFPC2 </TD><TD>FQCH4W3</TD><TD>FQCH4N</TD><TD>7308</TD><TD>1998-07-28 20:49:55</TD><TD>U43B0401M</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U43B0402M</TD><TD>JUP-SOUTH-WFPC2</TD><TD>321.267333333</TD><TD>-16.1686555556</TD><TD>15</TD><TD>1997-07-28 17:48:13</TD><TD>1997-07-28 17:56:33</TD><TD>500.000</TD><TD>WFPC2 </TD><TD>F160BN15;F160BN15</TD><TD>F160BN15</TD><TD>7308</TD><TD>1998-07-28 21:02:32</TD><TD>U43B0402M</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U43B0403M</TD><TD>JUP-SOUTH-WFPC2</TD><TD>321.265983333</TD><TD>-16.1691111111</TD><TD>15</TD><TD>1997-07-28 18:02:13</TD><TD>1997-07-28 18:12:13</TD><TD>600.000</TD><TD>WFPC2 </TD><TD>F160BN15;F160BN15</TD><TD>F160BN15;F130LP</TD><TD>7308</TD><TD>1998-07-28 21:02:55</TD><TD>U43B0403M</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U43B0404M</TD><TD>JUP-SOUTH-WFPC2</TD><TD>321.265429167</TD><TD>-16.1689333333</TD><TD>15</TD><TD>1997-07-28 18:19:13</TD><TD>1997-07-28 18:22:33</TD><TD>200.000</TD><TD>WFPC2 </TD><TD>WF3-FIX</TD><TD>F218W</TD><TD>7308</TD><TD>1998-07-29 03:35:39</TD><TD>U43B0404M</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O43BA4DUQ</TD><TD>JUP-AUR-OVALS</TD><TD>321.276483333</TD><TD>-16.1728194444</TD><TD>15</TD><TD>1997-07-28 19:17:07</TD><TD>1997-07-28 19:17:07</TD><TD>0.000</TD><TD>STIS  </TD><TD>52X0.5</TD><TD>G140L</TD><TD>7308</TD><TD>1998-07-28 19:17:07</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O43BA4DWQ</TD><TD>JUP-AUR-OVALS</TD><TD>321.275179167</TD><TD>-16.1732583333</TD><TD>15</TD><TD>1997-07-28 19:31:25</TD><TD>1997-07-28 19:31:25</TD><TD>0.000</TD><TD>STIS  </TD><TD>52X0.2</TD><TD>G140L</TD><TD>7308</TD><TD>1998-07-28 19:31:25</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U43B0301M</TD><TD>JUP-NORTH-WFPC2</TD><TD>321.039070833</TD><TD>-16.2442277778</TD><TD>15</TD><TD>1997-07-30 13:14:13</TD><TD>1997-07-30 13:14:33</TD><TD>20.000</TD><TD>WFPC2 </TD><TD>FQCH4W3</TD><TD>FQCH4N</TD><TD>7308</TD><TD>1998-07-30 17:02:42</TD><TD>U43B0301M</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U43B0302M</TD><TD>JUP-NORTH-WFPC2</TD><TD>321.0447625</TD><TD>-16.2434083333</TD><TD>15</TD><TD>1997-07-30 13:20:13</TD><TD>1997-07-30 13:28:33</TD><TD>500.000</TD><TD>WFPC2 </TD><TD>F160BN15;F160BN15</TD><TD>F160BN15</TD><TD>7308</TD><TD>1998-07-30 16:55:03</TD><TD>U43B0302M</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U43B0303M</TD><TD>JUP-NORTH-WFPC2</TD><TD>321.043391667</TD><TD>-16.2438694444</TD><TD>15</TD><TD>1997-07-30 13:34:13</TD><TD>1997-07-30 13:44:13</TD><TD>600.000</TD><TD>WFPC2 </TD><TD>F160BN15;F160BN15</TD><TD>F160BN15;F130LP</TD><TD>7308</TD><TD>1998-07-30 17:10:29</TD><TD>U43B0303M</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U43B0304M</TD><TD>JUP-NORTH-WFPC2</TD><TD>321.0429125</TD><TD>-16.2436694444</TD><TD>15</TD><TD>1997-07-30 13:50:13</TD><TD>1997-07-30 13:53:33</TD><TD>200.000</TD><TD>WFPC2 </TD><TD>WF3-FIX</TD><TD>F218W</TD><TD>7308</TD><TD>1998-07-30 17:15:00</TD><TD>U43B0304M</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O43BA3M4Q</TD><TD>JUP-AUR-OVALN</TD><TD>321.049583333</TD><TD>-16.2373944444</TD><TD>15</TD><TD>1997-07-30 14:50:26</TD><TD>1997-07-30 15:00:26</TD><TD>600.184</TD><TD>STIS  </TD><TD>52X0.5</TD><TD>G140L</TD><TD>7308</TD><TD>1998-07-30 15:00:26</TD><TD>O43BA3M4Q</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O43BA3M6Q</TD><TD>JUP-AUR-OVALN</TD><TD>321.0482625</TD><TD>-16.2378361111</TD><TD>15</TD><TD>1997-07-30 15:04:44</TD><TD>1997-07-30 15:26:24</TD><TD>1300.178</TD><TD>STIS  </TD><TD>52X0.2</TD><TD>G140L</TD><TD>7308</TD><TD>1998-07-30 15:26:24</TD><TD>O43BA3M6Q</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U43B0801R</TD><TD>JUP-SOUTH-WFPC2</TD><TD>315.413366667</TD><TD>-17.9591166667</TD><TD>15</TD><TD>1997-09-20 12:20:13</TD><TD>1997-09-20 12:20:33</TD><TD>20.000</TD><TD>WFPC2 </TD><TD>FQCH4W3</TD><TD>FQCH4N</TD><TD>7308</TD><TD>1998-09-20 14:56:58</TD><TD>U43B0801R</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U43B0802R</TD><TD>JUP-SOUTH-WFPC2</TD><TD>315.4064125</TD><TD>-17.9624083333</TD><TD>15</TD><TD>1997-09-20 12:26:13</TD><TD>1997-09-20 12:26:20</TD><TD>7.000</TD><TD>WFPC2 </TD><TD>WF3-FIX</TD><TD>F953N</TD><TD>7308</TD><TD>1998-09-20 14:57:30</TD><TD>U43B0802R</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U43B0803R</TD><TD>JUP-SOUTH-WFPC2</TD><TD>315.406291667</TD><TD>-17.9624416667</TD><TD>15</TD><TD>1997-09-20 12:29:13</TD><TD>1997-09-20 12:29:15</TD><TD>2.000</TD><TD>WFPC2 </TD><TD>WF3-FIX</TD><TD>F410M</TD><TD>7308</TD><TD>1998-09-20 14:55:07</TD><TD>U43B0803R</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U43B0804R</TD><TD>JUP-SOUTH-WFPC2</TD><TD>315.40575</TD><TD>-17.9621222222</TD><TD>15</TD><TD>1997-09-20 12:35:13</TD><TD>1997-09-20 12:45:13</TD><TD>600.000</TD><TD>WFPC2 </TD><TD>F160BN15;F160BN15</TD><TD>F160BN15</TD><TD>7308</TD><TD>1998-09-20 14:44:37</TD><TD>U43B0804R</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U43B0805R</TD><TD>JUP-SOUTH-WFPC2</TD><TD>315.405108333</TD><TD>-17.9622944444</TD><TD>15</TD><TD>1997-09-20 12:51:13</TD><TD>1997-09-20 13:01:13</TD><TD>600.000</TD><TD>WFPC2 </TD><TD>F160BN15;F160BN15</TD><TD>F160BN15;F130LP</TD><TD>7308</TD><TD>1998-09-20 14:46:19</TD><TD>U43B0805R</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O43B06BTQ</TD><TD>JUP-IMAGE-SOUTH</TD><TD>315.391970833</TD><TD>-17.9729694444</TD><TD>15</TD><TD>1997-09-20 13:58:28</TD><TD>1997-09-20 14:00:08</TD><TD>100.000</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>7308</TD><TD>1998-09-20 14:00:08</TD><TD>O43B06BTQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O43B06BVQ</TD><TD>JUP-IMAGE-SOUTH</TD><TD>315.3917</TD><TD>-17.9730416667</TD><TD>15</TD><TD>1997-09-20 14:05:08</TD><TD>1997-09-20 14:06:48</TD><TD>100.000</TD><TD>STIS  </TD><TD>F25SRF2</TD><TD>MIRFUV</TD><TD>7308</TD><TD>1998-09-20 14:06:48</TD><TD>O43B06BVQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O43BA6BXQ</TD><TD>JUP-AUR-OVALS</TD><TD>315.391675</TD><TD>-17.9741972222</TD><TD>15</TD><TD>1997-09-20 14:15:56</TD><TD>1997-09-20 14:29:16</TD><TD>800.122</TD><TD>STIS  </TD><TD>6X0.2</TD><TD>E140H</TD><TD>7308</TD><TD>2006-12-08 07:27:02</TD><TD>O43BA6BXQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O43BA6BZQ</TD><TD>JUP-AUR-OVALS</TD><TD>315.3909125</TD><TD>-17.9744</TD><TD>15</TD><TD>1997-09-20 14:36:15</TD><TD>1997-09-20 14:42:55</TD><TD>400.017</TD><TD>STIS  </TD><TD>52X0.2</TD><TD>G140L</TD><TD>7308</TD><TD>1998-01-29 15:44:15</TD><TD>O43BA6BZQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O43B05C1Q</TD><TD>JUP-IMAGE-NORTH</TD><TD>315.384754167</TD><TD>-17.9657027778</TD><TD>15</TD><TD>1997-09-20 15:35:15</TD><TD>1997-09-20 15:36:55</TD><TD>100.000</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>7308</TD><TD>1998-09-20 15:36:55</TD><TD>O43B05C1Q</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O43B05C3Q</TD><TD>JUP-IMAGE-NORTH</TD><TD>315.384483333</TD><TD>-17.965775</TD><TD>15</TD><TD>1997-09-20 15:41:55</TD><TD>1997-09-20 15:43:35</TD><TD>100.000</TD><TD>STIS  </TD><TD>F25SRF2</TD><TD>MIRFUV</TD><TD>7308</TD><TD>1998-09-20 15:43:35</TD><TD>O43B05C3Q</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O43BA5C5Q</TD><TD>JUP-AUR-OVALN</TD><TD>315.383625</TD><TD>-17.9648555556</TD><TD>15</TD><TD>1997-09-20 15:52:43</TD><TD>1997-09-20 16:06:03</TD><TD>800.184</TD><TD>STIS  </TD><TD>6X0.2</TD><TD>E140H</TD><TD>7308</TD><TD>1998-09-20 16:06:03</TD><TD>O43BA5C5Q</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O43BA5C7Q</TD><TD>JUP-AUR-OVALN</TD><TD>315.382866667</TD><TD>-17.9650583333</TD><TD>15</TD><TD>1997-09-20 16:13:02</TD><TD>1997-09-20 16:19:42</TD><TD>400.017</TD><TD>STIS  </TD><TD>52X0.2</TD><TD>G140L</TD><TD>7308</TD><TD>1998-01-29 15:44:21</TD><TD>O43BA5C7Q</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U43B0701R</TD><TD>JUP-NORTH-WFPC2</TD><TD>315.4010625</TD><TD>-17.9609722222</TD><TD>15</TD><TD>1997-09-20 17:11:13</TD><TD>1997-09-20 17:11:33</TD><TD>20.000</TD><TD>WFPC2 </TD><TD>FQCH4W3</TD><TD>FQCH4N</TD><TD>7308</TD><TD>1998-09-21 09:57:45</TD><TD>U43B0701R</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U43B0702R</TD><TD>JUP-NORTH-WFPC2</TD><TD>315.3943625</TD><TD>-17.9647</TD><TD>15</TD><TD>1997-09-20 17:16:13</TD><TD>1997-09-20 17:16:20</TD><TD>7.000</TD><TD>WFPC2 </TD><TD>WF3-FIX</TD><TD>F953N</TD><TD>7308</TD><TD>1998-09-21 16:13:12</TD><TD>U43B0702R</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U43B0703R</TD><TD>JUP-NORTH-WFPC2</TD><TD>315.394245833</TD><TD>-17.9647333333</TD><TD>15</TD><TD>1997-09-20 17:19:13</TD><TD>1997-09-20 17:19:15</TD><TD>2.000</TD><TD>WFPC2 </TD><TD>WF3-FIX</TD><TD>F410M</TD><TD>7308</TD><TD>1998-09-21 10:13:23</TD><TD>U43B0703R</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U43B0704R</TD><TD>JUP-NORTH-WFPC2</TD><TD>315.3937125</TD><TD>-17.9643916667</TD><TD>15</TD><TD>1997-09-20 17:25:13</TD><TD>1997-09-20 17:35:13</TD><TD>600.000</TD><TD>WFPC2 </TD><TD>F160BN15;F160BN15</TD><TD>F160BN15</TD><TD>7308</TD><TD>1998-09-21 09:51:58</TD><TD>U43B0704R</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U43B0705R</TD><TD>JUP-NORTH-WFPC2</TD><TD>315.393079167</TD><TD>-17.9645611111</TD><TD>15</TD><TD>1997-09-20 17:41:13</TD><TD>1997-09-20 17:51:13</TD><TD>600.000</TD><TD>WFPC2 </TD><TD>F160BN15;F160BN15</TD><TD>F160BN15;F130LP</TD><TD>7308</TD><TD>1998-09-21 09:54:17</TD><TD>U43B0705R</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O43B09B3Q</TD><TD>JUP-IMAGE-NORTH2</TD><TD>319.343825</TD><TD>-16.7083388889</TD><TD>15</TD><TD>1997-12-01 04:06:06</TD><TD>1997-12-01 04:11:06</TD><TD>300.020</TD><TD>STIS  </TD><TD>F25SRF2</TD><TD>MIRFUV</TD><TD>7308</TD><TD>1998-12-01 04:11:06</TD><TD>O43B09B3Q</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O43B09B5Q</TD><TD>JUP-IMAGE-NORTH2</TD><TD>319.344975</TD><TD>-16.7079805556</TD><TD>15</TD><TD>1997-12-01 04:17:06</TD><TD>1997-12-01 04:19:06</TD><TD>120.000</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>7308</TD><TD>1998-12-01 04:19:06</TD><TD>O43B09B5Q</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O43BA9B7Q</TD><TD>JUP-IMAGE-DUSK</TD><TD>319.343495833</TD><TD>-16.7128972222</TD><TD>15</TD><TD>1997-12-01 04:28:14</TD><TD>1997-12-01 04:30:14</TD><TD>120.000</TD><TD>STIS  </TD><TD>F25SRF2</TD><TD>MIRFUV</TD><TD>7308</TD><TD>1998-12-01 04:30:14</TD><TD>O43BA9B7Q</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O43BA9B9Q</TD><TD>JUP-IMAGE-DUSK</TD><TD>319.344220833</TD><TD>-16.7126722222</TD><TD>15</TD><TD>1997-12-01 04:35:14</TD><TD>1997-12-01 04:37:14</TD><TD>120.000</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>7308</TD><TD>1998-12-01 04:37:14</TD><TD>O43BA9B9Q</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O43BB9BBQ</TD><TD>JUP-SPEC-DUSK</TD><TD>319.344341667</TD><TD>-16.7126555556</TD><TD>15</TD><TD>1997-12-01 04:46:00</TD><TD>1997-12-01 04:51:00</TD><TD>300.013</TD><TD>STIS  </TD><TD>52X0.5</TD><TD>G140L</TD><TD>7308</TD><TD>1997-12-05 01:56:32</TD><TD>O43BB9BBQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O43BC9BDQ</TD><TD>JUP-IMAGE-NORTH3</TD><TD>319.354033333</TD><TD>-16.7051611111</TD><TD>15</TD><TD>1997-12-01 05:41:25</TD><TD>1997-12-01 05:41:25</TD><TD>0.000</TD><TD>STIS  </TD><TD>F25SRF2</TD><TD>MIRFUV</TD><TD>7308</TD><TD>1998-12-01 05:41:25</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O43BD9BFQ</TD><TD>JUP-IMAGE-DUSK</TD><TD>319.352958333</TD><TD>-16.7099527778</TD><TD>15</TD><TD>1997-12-01 05:56:33</TD><TD>1997-12-01 05:56:33</TD><TD>0.000</TD><TD>STIS  </TD><TD>F25SRF2</TD><TD>MIRFUV</TD><TD>7308</TD><TD>1998-12-01 05:56:33</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O43BD9BHQ</TD><TD>JUP-IMAGE-DUSK</TD><TD>319.3538625</TD><TD>-16.7096722222</TD><TD>15</TD><TD>1997-12-01 06:05:14</TD><TD>1997-12-01 06:05:14</TD><TD>0.000</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>7308</TD><TD>1998-12-01 06:05:14</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O43BE9BJQ</TD><TD>JUP-SPEC-DUSK</TD><TD>319.354241667</TD><TD>-16.709575</TD><TD>15</TD><TD>1997-12-01 06:19:28</TD><TD>1997-12-01 06:19:28</TD><TD>0.000</TD><TD>STIS  </TD><TD>52X0.2</TD><TD>E140H</TD><TD>7308</TD><TD>2006-12-09 03:40:33</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O43B20010</TD><TD>JUP-IMAGE-NORTH5</TD><TD>355.142645833</TD><TD>-3.30926111111</TD><TD>15</TD><TD>1998-05-28 11:58:04</TD><TD>1998-05-28 12:18:26</TD><TD>1200.000</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>7308</TD><TD>1999-05-28 12:18:26</TD><TD>O43B20010</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O43B20X9Q</TD><TD>JUP-IMAGE-NORTH5</TD><TD>355.144858333</TD><TD>-3.30838055556</TD><TD>15</TD><TD>1998-05-28 12:21:59</TD><TD>1998-05-28 12:41:23</TD><TD>1164.000</TD><TD>STIS  </TD><TD>F25SRF2</TD><TD>MIRFUV</TD><TD>7308</TD><TD>1999-05-28 12:41:23</TD><TD>O43B20X9Q</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O43B2AXBQ</TD><TD>JUP-IMAGE-DAWN</TD><TD>355.1569625</TD><TD>-3.30778611111</TD><TD>15</TD><TD>1998-05-28 13:33:08</TD><TD>1998-05-28 13:43:14</TD><TD>605.728</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>7308</TD><TD>1999-05-28 13:43:14</TD><TD>O43B2AXBQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O43B2AXCQ</TD><TD>JUP-IMAGE-DAWN</TD><TD>355.159141667</TD><TD>-3.30691944444</TD><TD>15</TD><TD>1998-05-28 13:56:41</TD><TD>1998-05-28 13:56:41</TD><TD>0.000</TD><TD>STIS  </TD><TD>F25SRF2</TD><TD>MIRFUV</TD><TD>7308</TD><TD>1999-05-28 13:56:41</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O43B12XAQ</TD><TD>JUP-IMAGE-NORTH55</TD><TD>358.679808333</TD><TD>-2.08470277778</TD><TD>15</TD><TD>1998-07-26 13:49:01</TD><TD>1998-07-26 13:52:13</TD><TD>192.000</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>7308</TD><TD>1999-07-26 13:52:13</TD><TD>O43B12XAQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O43B2QXCQ</TD><TD>JUP-AUR-OVALN55</TD><TD>358.6796</TD><TD>-2.08483888889</TD><TD>15</TD><TD>1998-07-26 14:01:33</TD><TD>1998-07-26 14:16:53</TD><TD>920.199</TD><TD>STIS  </TD><TD>52X0.2</TD><TD>G140L</TD><TD>7308</TD><TD>1998-07-26 16:40:46</TD><TD>O43B2QXCQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O43B2RXEQ</TD><TD>JUP-IMAGE-NORTH55</TD><TD>358.679175</TD><TD>-2.08511944444</TD><TD>15</TD><TD>1998-07-26 14:27:01</TD><TD>1998-07-26 14:32:01</TD><TD>300.020</TD><TD>STIS  </TD><TD>F25SRF2</TD><TD>MIRFUV</TD><TD>7308</TD><TD>1999-07-26 14:32:01</TD><TD>O43B2RXEQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O43B2SXGQ</TD><TD>JUP-IMAGE-NORTH55</TD><TD>358.678241667</TD><TD>-2.08573333333</TD><TD>15</TD><TD>1998-07-26 15:23:32</TD><TD>1998-07-26 15:25:19</TD><TD>107.000</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>7308</TD><TD>1999-07-26 15:25:19</TD><TD>O43B2SXGQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O43B2SXIQ</TD><TD>JUP-IMAGE-NORTH55</TD><TD>358.678129167</TD><TD>-2.08580833333</TD><TD>15</TD><TD>1998-07-26 15:30:14</TD><TD>1998-07-26 15:32:14</TD><TD>120.020</TD><TD>STIS  </TD><TD>F25SRF2</TD><TD>MIRFUV</TD><TD>7308</TD><TD>1999-07-26 15:32:14</TD><TD>O43B2SXIQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O43B2TXKQ</TD><TD>JUP-AUR-OVALN55</TD><TD>358.677920833</TD><TD>-2.08594166667</TD><TD>15</TD><TD>1998-07-26 15:42:22</TD><TD>1998-07-26 15:45:12</TD><TD>169.579</TD><TD>STIS  </TD><TD>6X0.2</TD><TD>E140H</TD><TD>7308</TD><TD>2000-05-09 14:54:20</TD><TD>O43B2TXKQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O43B2TXMQ</TD><TD>JUP-AUR-OVALN55</TD><TD>358.677616667</TD><TD>-2.08614444444</TD><TD>15</TD><TD>1998-07-26 16:01:22</TD><TD>1998-07-26 16:08:02</TD><TD>400.015</TD><TD>STIS  </TD><TD>52X0.5</TD><TD>G140L</TD><TD>7308</TD><TD>1998-07-27 18:12:11</TD><TD>O43B2TXMQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O53K01Z8Q</TD><TD>GANYMEDE-WEST</TD><TD>349.943945833</TD><TD>-5.94492222222</TD><TD>4</TD><TD>1998-10-30 08:06:23</TD><TD>1998-10-30 08:14:03</TD><TD>0.300</TD><TD>STIS  </TD><TD>F28X50LP</TD><TD>MIRVIS</TD><TD>7939</TD><TD>1999-10-30 08:14:03</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O53K01010</TD><TD>GANYMEDE-WEST</TD><TD>349.943704167</TD><TD>-5.94495277778</TD><TD>4</TD><TD>1998-10-30 08:21:19</TD><TD>1998-10-30 08:35:29</TD><TD>850.197</TD><TD>STIS  </TD><TD>52X2</TD><TD>G140L</TD><TD>7939</TD><TD>1999-10-30 08:35:29</TD><TD>O53K01010</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O53K01020</TD><TD>GANYMEDE-WEST</TD><TD>349.943404167</TD><TD>-5.94498333333</TD><TD>4</TD><TD>1998-10-30 08:38:57</TD><TD>1998-10-30 08:53:07</TD><TD>850.195</TD><TD>STIS  </TD><TD>52X2</TD><TD>G140L</TD><TD>7939</TD><TD>1999-10-30 08:53:07</TD><TD>O53K01020</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O53K01030</TD><TD>GANYMEDE-WEST</TD><TD>349.942479167</TD><TD>-5.94505277778</TD><TD>4</TD><TD>1998-10-30 09:40:09</TD><TD>1998-10-30 10:00:14</TD><TD>1205.200</TD><TD>STIS  </TD><TD>52X2</TD><TD>G140L</TD><TD>7939</TD><TD>1999-10-30 10:00:14</TD><TD>O53K01030</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O53K01040</TD><TD>GANYMEDE-WEST</TD><TD>349.9421125</TD><TD>-5.94506388889</TD><TD>4</TD><TD>1998-10-30 10:07:22</TD><TD>1998-10-30 10:27:27</TD><TD>1205.197</TD><TD>STIS  </TD><TD>52X2</TD><TD>G140L</TD><TD>7939</TD><TD>1999-10-30 10:27:27</TD><TD>O53K01040</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O53K01050</TD><TD>GANYMEDE-WEST</TD><TD>349.9412625</TD><TD>-5.94505</TD><TD>4</TD><TD>1998-10-30 11:16:55</TD><TD>1998-10-30 11:35:40</TD><TD>1125.199</TD><TD>STIS  </TD><TD>52X2</TD><TD>G140L</TD><TD>7939</TD><TD>1999-10-30 11:35:40</TD><TD>O53K01050</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O53K01060</TD><TD>GANYMEDE-WEST</TD><TD>349.940991667</TD><TD>-5.94502777778</TD><TD>4</TD><TD>1998-10-30 11:42:48</TD><TD>1998-10-30 12:01:08</TD><TD>1100.191</TD><TD>STIS  </TD><TD>52X2</TD><TD>G140L</TD><TD>7939</TD><TD>2006-11-23 19:10:40</TD><TD>O53K01060</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O53K01070</TD><TD>GANYMEDE-WEST</TD><TD>349.940341667</TD><TD>-5.94491388889</TD><TD>4</TD><TD>1998-10-30 12:53:42</TD><TD>1998-10-30 13:13:42</TD><TD>1200.199</TD><TD>STIS  </TD><TD>52X2</TD><TD>G140L</TD><TD>7939</TD><TD>2006-12-20 15:27:49</TD><TD>O53K01070</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O53K01080</TD><TD>GANYMEDE-WEST</TD><TD>349.9401625</TD><TD>-5.94486111111</TD><TD>4</TD><TD>1998-10-30 13:17:10</TD><TD>1998-10-30 13:36:00</TD><TD>1130.197</TD><TD>STIS  </TD><TD>52X2</TD><TD>G140L</TD><TD>7939</TD><TD>1999-10-30 13:36:00</TD><TD>O53K01080</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O43B15XEQ</TD><TD>JUP-IMAGE-SOUTH2</TD><TD>349.815579167</TD><TD>-5.97837777778</TD><TD>15</TD><TD>1998-11-05 04:26:00</TD><TD>1998-11-05 04:28:40</TD><TD>160.000</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>7308</TD><TD>1999-11-05 04:28:40</TD><TD>O43B15XEQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O43B5HXGQ</TD><TD>JUP-AUR-OVALS2</TD><TD>349.8142625</TD><TD>-5.9794</TD><TD>15</TD><TD>1998-11-05 04:38:19</TD><TD>1998-11-05 04:58:19</TD><TD>1199.729</TD><TD>STIS  </TD><TD>0.2X0.2</TD><TD>E140H</TD><TD>7308</TD><TD>1999-12-20 18:56:10</TD><TD>O43B5HXGQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O43B5HXIQ</TD><TD>JUP-AUR-OVALS2</TD><TD>349.813475</TD><TD>-5.97965</TD><TD>15</TD><TD>1998-11-05 05:05:10</TD><TD>1998-11-05 05:10:10</TD><TD>300.015</TD><TD>STIS  </TD><TD>52X0.5</TD><TD>G140L</TD><TD>7308</TD><TD>1998-11-05 13:21:45</TD><TD>O43B5HXIQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O43B13S4Q</TD><TD>JUP-IMAGE-NORTH6</TD><TD>349.915254167</TD><TD>-5.83183333333</TD><TD>15</TD><TD>1998-11-26 00:19:00</TD><TD>1998-11-26 00:30:40</TD><TD>700.199</TD><TD>STIS  </TD><TD>F25LYA</TD><TD>MIRFUV</TD><TD>7308</TD><TD>1999-11-26 00:30:40</TD><TD>O43B13S4Q</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O43B13S6Q</TD><TD>JUP-IMAGE-NORTH6</TD><TD>349.915708333</TD><TD>-5.83158611111</TD><TD>15</TD><TD>1998-11-26 00:34:08</TD><TD>1998-11-26 00:45:48</TD><TD>700.199</TD><TD>STIS  </TD><TD>F25LYA</TD><TD>MIRFUV</TD><TD>7308</TD><TD>1999-11-26 00:45:48</TD><TD>O43B13S6Q</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O43B13S8Q</TD><TD>JUP-IMAGE-NORTH6</TD><TD>349.916108333</TD><TD>-5.83136944444</TD><TD>15</TD><TD>1998-11-26 00:51:55</TD><TD>1998-11-26 00:54:35</TD><TD>160.000</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>7308</TD><TD>1999-11-26 00:54:35</TD><TD>O43B13S8Q</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O43B13SAQ</TD><TD>JUP-IMAGE-NORTH6</TD><TD>349.916275</TD><TD>-5.83127777778</TD><TD>15</TD><TD>1998-11-26 00:58:08</TD><TD>1998-11-26 01:01:28</TD><TD>200.000</TD><TD>STIS  </TD><TD>F25SRF2</TD><TD>MIRFUV</TD><TD>7308</TD><TD>1999-11-26 01:01:28</TD><TD>O43B13SAQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O43B14SFQ</TD><TD>JUP-AUR-OVALN6</TD><TD>349.917808333</TD><TD>-5.83044722222</TD><TD>15</TD><TD>1998-11-26 01:55:57</TD><TD>1998-11-26 02:10:57</TD><TD>900.195</TD><TD>STIS  </TD><TD>52X0.5</TD><TD>E140H</TD><TD>7308</TD><TD>1999-12-20 18:53:11</TD><TD>O43B14SFQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O43B14SIQ</TD><TD>JUP-AUR-OVALN6</TD><TD>349.918358333</TD><TD>-5.83014722222</TD><TD>15</TD><TD>1998-11-26 02:17:03</TD><TD>1998-11-26 02:27:03</TD><TD>600.199</TD><TD>STIS  </TD><TD>52X0.5</TD><TD>G140L</TD><TD>7308</TD><TD>1998-11-26 14:10:17</TD><TD>O43B14SIQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O43B4ASKQ</TD><TD>JUP-IMAGE-NORTH6</TD><TD>349.9189</TD><TD>-5.82985555556</TD><TD>15</TD><TD>1998-11-26 02:37:30</TD><TD>1998-11-26 02:39:50</TD><TD>140.000</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>7308</TD><TD>1999-11-26 02:39:50</TD><TD>O43B4ASKQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O43B11D7Q</TD><TD>JUP-IMAGE-DUSK2</TD><TD>355.931733333</TD><TD>-3.05007777778</TD><TD>15</TD><TD>1999-01-19 15:18:02</TD><TD>1999-01-19 15:38:52</TD><TD>1250.000</TD><TD>STIS  </TD><TD>F25SRF2</TD><TD>MIRFUV</TD><TD>7308</TD><TD>2000-01-19 15:38:52</TD><TD>O43B11D7Q</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O43B11D8Q</TD><TD>JUP-IMAGE-DUSK2</TD><TD>355.9345625</TD><TD>-3.04880833333</TD><TD>15</TD><TD>1999-01-19 15:42:25</TD><TD>1999-01-19 16:00:45</TD><TD>1100.000</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>7308</TD><TD>2000-01-19 16:00:45</TD><TD>O43B11D8Q</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O43B21010</TD><TD>JUP-IMAGE-NORTH555</TD><TD>28.4017</TD><TD>10.3627388889</TD><TD>15</TD><TD>1999-06-28 17:04:22</TD><TD>1999-06-28 17:20:57</TD><TD>951.000</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>7308</TD><TD>2000-06-28 17:20:57</TD><TD>O43B21010</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O43B21020</TD><TD>JUP-IMAGE-NORTH555</TD><TD>28.4038291667</TD><TD>10.3634777778</TD><TD>15</TD><TD>1999-06-28 17:24:30</TD><TD>1999-06-28 17:45:38</TD><TD>1224.000</TD><TD>STIS  </TD><TD>F25SRF2</TD><TD>MIRFUV</TD><TD>7308</TD><TD>2000-06-28 17:45:38</TD><TD>O43B21020</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O43B2XCLQ</TD><TD>JUP-IMAGE-DAWN2</TD><TD>28.4169125</TD><TD>10.3637194444</TD><TD>15</TD><TD>1999-06-28 18:36:52</TD><TD>1999-06-28 18:55:12</TD><TD>1100.000</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>7308</TD><TD>2000-06-28 18:55:12</TD><TD>O43B2XCLQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O43B2XCMQ</TD><TD>JUP-IMAGE-DAWN2</TD><TD>28.419225</TD><TD>10.3645222222</TD><TD>15</TD><TD>1999-06-28 18:58:45</TD><TD>1999-06-28 19:19:16</TD><TD>1231.000</TD><TD>STIS  </TD><TD>F25SRF2</TD><TD>MIRFUV</TD><TD>7308</TD><TD>2000-06-28 19:19:16</TD><TD>O43B2XCMQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O5HY03Z7Q</TD><TD>EUROPA-EAST</TD><TD>32.7799166667</TD><TD>11.7714888889</TD><TD>12</TD><TD>1999-08-08 11:19:59</TD><TD>1999-08-08 11:25:05</TD><TD>0.300</TD><TD>STIS  </TD><TD>F28X50LP</TD><TD>MIRVIS</TD><TD>8171</TD><TD>2006-12-18 00:22:17</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O5HYA3Z9Q</TD><TD>JUP-SOUTH-EUROFOOT</TD><TD>32.7414375</TD><TD>11.7550611111</TD><TD>12</TD><TD>1999-08-08 11:35:22</TD><TD>1999-08-08 11:37:02</TD><TD>100.000</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>8171</TD><TD>2000-08-08 11:37:02</TD><TD>O5HYA3Z9Q</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O5HYB3ZBQ</TD><TD>JUP-SPEC-EUROFOOT</TD><TD>32.741875</TD><TD>11.7551805556</TD><TD>12</TD><TD>1999-08-08 11:46:38</TD><TD>1999-08-08 11:50:58</TD><TD>260.017</TD><TD>STIS  </TD><TD>52X0.5</TD><TD>G140L</TD><TD>8171</TD><TD>2000-08-08 11:50:58</TD><TD>O5HYB3ZBQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O5HYB3ZDQ</TD><TD>JUP-SPEC-EUROFOOT</TD><TD>32.7421</TD><TD>11.7553194444</TD><TD>12</TD><TD>1999-08-08 11:54:26</TD><TD>1999-08-08 11:58:46</TD><TD>260.019</TD><TD>STIS  </TD><TD>52X0.5</TD><TD>G140L</TD><TD>8171</TD><TD>2000-08-08 11:58:46</TD><TD>O5HYB3ZDQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O5HYB3ZFQ</TD><TD>JUP-SPEC-EUROFOOT</TD><TD>32.74225</TD><TD>11.7554388889</TD><TD>12</TD><TD>1999-08-08 12:02:14</TD><TD>1999-08-08 12:06:34</TD><TD>260.019</TD><TD>STIS  </TD><TD>52X0.5</TD><TD>G140L</TD><TD>8171</TD><TD>2000-08-08 12:06:34</TD><TD>O5HYB3ZFQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O5HYC3ZHQ</TD><TD>JUP-SOUTH-EUROFOOT</TD><TD>32.7444458333</TD><TD>11.7558722222</TD><TD>12</TD><TD>1999-08-08 12:56:47</TD><TD>1999-08-08 13:00:07</TD><TD>148.740</TD><TD>STIS  </TD><TD>F25SRF2</TD><TD>MIRFUV</TD><TD>8171</TD><TD>2000-08-08 13:00:07</TD><TD>O5HYC3ZHQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O5HYD3ZJQ</TD><TD>JUP-SPEC-EUROFOOT</TD><TD>32.744975</TD><TD>11.7560166667</TD><TD>12</TD><TD>1999-08-08 13:10:48</TD><TD>1999-08-08 13:14:08</TD><TD>200.016</TD><TD>STIS  </TD><TD>52X0.5</TD><TD>G140L</TD><TD>8171</TD><TD>1999-08-08 19:34:15</TD><TD>O5HYD3ZJQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O5HYD3ZLQ</TD><TD>JUP-SPEC-EUROFOOT</TD><TD>32.7451583333</TD><TD>11.7561444444</TD><TD>12</TD><TD>1999-08-08 13:17:36</TD><TD>1999-08-08 13:20:56</TD><TD>200.018</TD><TD>STIS  </TD><TD>52X0.5</TD><TD>G140L</TD><TD>8171</TD><TD>2000-09-28 14:26:58</TD><TD>O5HYD3ZLQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O5HYD3ZNQ</TD><TD>JUP-SPEC-EUROFOOT</TD><TD>32.745275</TD><TD>11.7562527778</TD><TD>12</TD><TD>1999-08-08 13:24:24</TD><TD>1999-08-08 13:27:44</TD><TD>200.017</TD><TD>STIS  </TD><TD>52X0.5</TD><TD>G140L</TD><TD>8171</TD><TD>1999-08-09 12:38:50</TD><TD>O5HYD3ZNQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O5HYE3ZPQ</TD><TD>JUP-SOUTH-EUROFOOT</TD><TD>32.746</TD><TD>11.7562916667</TD><TD>12</TD><TD>1999-08-08 13:39:28</TD><TD>1999-08-08 13:41:08</TD><TD>100.000</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>8171</TD><TD>2000-08-08 13:41:08</TD><TD>O5HYE3ZPQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O5HY02TSQ</TD><TD>JUP-NORTH-SSI</TD><TD>32.9696041667</TD><TD>11.8220333333</TD><TD>12</TD><TD>1999-08-13 13:51:04</TD><TD>1999-08-13 13:52:44</TD><TD>100.000</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>8171</TD><TD>2000-08-13 13:52:44</TD><TD>O5HY02TSQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O5HY02TUQ</TD><TD>JUP-NORTH-SSI</TD><TD>32.9697791667</TD><TD>11.8220722222</TD><TD>12</TD><TD>1999-08-13 13:57:39</TD><TD>1999-08-13 14:02:39</TD><TD>240.256</TD><TD>STIS  </TD><TD>F25SRF2</TD><TD>MIRFUV</TD><TD>8171</TD><TD>2000-08-13 14:02:39</TD><TD>O5HY02TUQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O5HY02TWQ</TD><TD>JUP-NORTH-SSI</TD><TD>32.9700666667</TD><TD>11.8221416667</TD><TD>12</TD><TD>1999-08-13 14:08:50</TD><TD>1999-08-13 14:19:10</TD><TD>620.196</TD><TD>STIS  </TD><TD>52X0.5</TD><TD>G140M</TD><TD>8171</TD><TD>1999-08-13 23:28:15</TD><TD>O5HY02TWQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O5HY02TYQ</TD><TD>JUP-NORTH-SSI</TD><TD>32.9704958333</TD><TD>11.8222416667</TD><TD>12</TD><TD>1999-08-13 14:24:51</TD><TD>1999-08-13 14:35:11</TD><TD>620.183</TD><TD>STIS  </TD><TD>52X0.5</TD><TD>G140M</TD><TD>8171</TD><TD>1999-08-13 23:31:12</TD><TD>O5HY02TYQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O5HY02U0Q</TD><TD>JUP-NORTH-SSI</TD><TD>32.9720833333</TD><TD>11.8226166667</TD><TD>12</TD><TD>1999-08-13 15:26:49</TD><TD>1999-08-13 15:28:29</TD><TD>100.000</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>8171</TD><TD>2000-08-13 15:28:29</TD><TD>O5HY02U0Q</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O5HY02U2Q</TD><TD>JUP-NORTH-SSI</TD><TD>32.9722708333</TD><TD>11.8226611111</TD><TD>12</TD><TD>1999-08-13 15:33:24</TD><TD>1999-08-13 15:38:24</TD><TD>233.274</TD><TD>STIS  </TD><TD>F25SRF2</TD><TD>MIRFUV</TD><TD>8171</TD><TD>2000-08-13 15:38:24</TD><TD>O5HY02U2Q</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O5HY02U4Q</TD><TD>JUP-NORTH-SSI</TD><TD>32.9725541667</TD><TD>11.8227277778</TD><TD>12</TD><TD>1999-08-13 15:44:35</TD><TD>1999-08-13 15:55:15</TD><TD>640.169</TD><TD>STIS  </TD><TD>52X0.5</TD><TD>G140M</TD><TD>8171</TD><TD>1999-08-13 23:24:58</TD><TD>O5HY02U4Q</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O5HY02U6Q</TD><TD>JUP-NORTH-SSI</TD><TD>32.9729916667</TD><TD>11.8228305556</TD><TD>12</TD><TD>1999-08-13 16:00:56</TD><TD>1999-08-13 16:11:36</TD><TD>640.181</TD><TD>STIS  </TD><TD>52X0.5</TD><TD>G140M</TD><TD>8171</TD><TD>1999-08-13 23:37:04</TD><TD>O5HY02U6Q</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O5HY04HSQ</TD><TD>JUP-SOUTH-IMAGE</TD><TD>32.0237083333</TD><TD>11.3374638889</TD><TD>12</TD><TD>1999-09-21 18:56:54</TD><TD>1999-09-21 19:03:34</TD><TD>242.827</TD><TD>STIS  </TD><TD>F25SRF2</TD><TD>MIRFUV</TD><TD>8171</TD><TD>2000-09-21 19:03:34</TD><TD>O5HY04HSQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O5HY04010</TD><TD>JUP-SOUTH-IMAGE</TD><TD>32.0229916667</TD><TD>11.3371861111</TD><TD>12</TD><TD>1999-09-21 19:09:34</TD><TD>1999-09-21 19:26:02</TD><TD>520.000</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>8171</TD><TD>2000-09-21 19:26:02</TD><TD>O5HY04010</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O5HY04I2Q</TD><TD>JUP-SOUTH-IMAGE</TD><TD>32.0217541667</TD><TD>11.3367138889</TD><TD>12</TD><TD>1999-09-21 19:30:57</TD><TD>1999-09-21 19:37:17</TD><TD>232.158</TD><TD>STIS  </TD><TD>F25SRF2</TD><TD>MIRFUV</TD><TD>8171</TD><TD>2000-09-21 19:37:17</TD><TD>O5HY04I2Q</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O5HYA4I4Q</TD><TD>JUP-NORTH-SIMUL</TD><TD>32.0150125</TD><TD>11.3442694444</TD><TD>12</TD><TD>1999-09-21 20:27:30</TD><TD>1999-09-21 20:31:30</TD><TD>224.561</TD><TD>STIS  </TD><TD>F25SRF2</TD><TD>MIRFUV</TD><TD>8171</TD><TD>2000-09-21 20:31:30</TD><TD>O5HYA4I4Q</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O5HYA4I6Q</TD><TD>JUP-NORTH-SIMUL</TD><TD>32.0144458333</TD><TD>11.3440527778</TD><TD>12</TD><TD>1999-09-21 20:37:30</TD><TD>1999-09-21 20:39:25</TD><TD>115.000</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>8171</TD><TD>2000-09-21 20:39:25</TD><TD>O5HYA4I6Q</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O5HYA4I8Q</TD><TD>JUP-NORTH-SIMUL</TD><TD>32.01405</TD><TD>11.3439</TD><TD>12</TD><TD>1999-09-21 20:45:11</TD><TD>1999-09-21 20:58:31</TD><TD>800.194</TD><TD>STIS  </TD><TD>52X0.5</TD><TD>E140H</TD><TD>8171</TD><TD>1999-09-22 03:14:18</TD><TD>O5HYA4I8Q</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O5HYA4IAQ</TD><TD>JUP-NORTH-SIMUL</TD><TD>32.0128791667</TD><TD>11.3434527778</TD><TD>12</TD><TD>1999-09-21 21:04:50</TD><TD>1999-09-21 21:08:50</TD><TD>210.528</TD><TD>STIS  </TD><TD>F25SRF2</TD><TD>MIRFUV</TD><TD>8171</TD><TD>2000-09-21 21:08:50</TD><TD>O5HYA4IAQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O5HYA4ICQ</TD><TD>JUP-NORTH-SIMUL</TD><TD>32.0094</TD><TD>11.3421194444</TD><TD>12</TD><TD>1999-09-21 22:01:54</TD><TD>1999-09-21 22:06:54</TD><TD>238.347</TD><TD>STIS  </TD><TD>F25SRF2</TD><TD>MIRFUV</TD><TD>8171</TD><TD>2000-09-21 22:06:54</TD><TD>O5HYA4ICQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O5HYA4IEQ</TD><TD>JUP-NORTH-SIMUL</TD><TD>32.0089083333</TD><TD>11.3419305556</TD><TD>12</TD><TD>1999-09-21 22:12:54</TD><TD>1999-09-21 22:14:47</TD><TD>113.000</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>8171</TD><TD>2000-09-21 22:14:47</TD><TD>O5HYA4IEQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O5HYA4IGQ</TD><TD>JUP-NORTH-SIMUL</TD><TD>32.0085125</TD><TD>11.3417805556</TD><TD>12</TD><TD>1999-09-21 22:19:35</TD><TD>1999-09-21 22:32:55</TD><TD>800.195</TD><TD>STIS  </TD><TD>52X0.2</TD><TD>G140L</TD><TD>8171</TD><TD>1999-09-22 03:05:24</TD><TD>O5HYA4IGQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O5HYA4IIQ</TD><TD>JUP-NORTH-SIMUL</TD><TD>32.0073958333</TD><TD>11.3413527778</TD><TD>12</TD><TD>1999-09-21 22:38:52</TD><TD>1999-09-21 22:45:32</TD><TD>319.521</TD><TD>STIS  </TD><TD>F25SRF2</TD><TD>MIRFUV</TD><TD>8171</TD><TD>2000-09-21 22:45:32</TD><TD>O5HYA4IIQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O5HY05BFQ</TD><TD>IO-EAST</TD><TD>29.9715833333</TD><TD>10.5760472222</TD><TD>12</TD><TD>1999-10-11 07:51:29</TD><TD>1999-10-11 07:56:35</TD><TD>0.300</TD><TD>STIS  </TD><TD>F28X50LP</TD><TD>MIRVIS</TD><TD>8171</TD><TD>2006-12-18 03:04:33</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O5HYA5BHQ</TD><TD>JUP-NORTH-IOFOOT</TD><TD>29.9686916667</TD><TD>10.5825805556</TD><TD>12</TD><TD>1999-10-11 08:07:01</TD><TD>1999-10-11 08:09:01</TD><TD>120.000</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>8171</TD><TD>2000-10-11 08:09:01</TD><TD>O5HYA5BHQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O5HYA5BJQ</TD><TD>JUP-NORTH-IOFOOT</TD><TD>29.9679958333</TD><TD>10.582325</TD><TD>12</TD><TD>1999-10-11 08:15:43</TD><TD>1999-10-11 08:19:33</TD><TD>230.012</TD><TD>STIS  </TD><TD>52X0.5</TD><TD>G140L</TD><TD>8171</TD><TD>1999-10-11 15:33:57</TD><TD>O5HYA5BJQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O5HYA5BLQ</TD><TD>JUP-NORTH-IOFOOT</TD><TD>29.9669791667</TD><TD>10.5820472222</TD><TD>12</TD><TD>1999-10-11 08:23:01</TD><TD>1999-10-11 08:26:51</TD><TD>230.018</TD><TD>STIS  </TD><TD>52X0.5</TD><TD>G140L</TD><TD>8171</TD><TD>1999-10-11 15:20:21</TD><TD>O5HYA5BLQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O5HYA5BNQ</TD><TD>JUP-NORTH-IOFOOT</TD><TD>29.9662291667</TD><TD>10.5818611111</TD><TD>12</TD><TD>1999-10-11 08:30:19</TD><TD>1999-10-11 08:34:09</TD><TD>230.019</TD><TD>STIS  </TD><TD>52X0.5</TD><TD>G140L</TD><TD>8171</TD><TD>1999-10-11 15:34:52</TD><TD>O5HYA5BNQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O5HYA5BPQ</TD><TD>JUP-NORTH-IOFOOT</TD><TD>29.9619458333</TD><TD>10.5801138889</TD><TD>12</TD><TD>1999-10-11 09:26:34</TD><TD>1999-10-11 09:29:54</TD><TD>122.311</TD><TD>STIS  </TD><TD>F25SRF2</TD><TD>MIRFUV</TD><TD>8171</TD><TD>2000-10-11 09:29:54</TD><TD>O5HYA5BPQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O5HYA5BRQ</TD><TD>JUP-NORTH-IOFOOT</TD><TD>29.9610458333</TD><TD>10.5797861111</TD><TD>12</TD><TD>1999-10-11 09:37:12</TD><TD>1999-10-11 09:42:12</TD><TD>300.013</TD><TD>STIS  </TD><TD>52X0.5</TD><TD>G140L</TD><TD>8171</TD><TD>1999-10-11 15:27:01</TD><TD>O5HYA5BRQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O5HYA5BTQ</TD><TD>JUP-NORTH-IOFOOT</TD><TD>29.9598416667</TD><TD>10.5795277778</TD><TD>12</TD><TD>1999-10-11 09:45:40</TD><TD>1999-10-11 09:50:40</TD><TD>300.020</TD><TD>STIS  </TD><TD>52X0.5</TD><TD>G140L</TD><TD>8171</TD><TD>2000-10-11 09:50:40</TD><TD>O5HYA5BTQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O5HYA5BVQ</TD><TD>JUP-NORTH-IOFOOT</TD><TD>29.9588541667</TD><TD>10.5793472222</TD><TD>12</TD><TD>1999-10-11 09:54:08</TD><TD>1999-10-11 09:59:08</TD><TD>300.015</TD><TD>STIS  </TD><TD>52X0.5</TD><TD>G140L</TD><TD>8171</TD><TD>2000-10-11 09:59:08</TD><TD>O5HYA5BVQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O5HYA5BXQ</TD><TD>JUP-NORTH-IOFOOT</TD><TD>29.958675</TD><TD>10.5789166667</TD><TD>12</TD><TD>1999-10-11 10:05:40</TD><TD>1999-10-11 10:07:28</TD><TD>108.000</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>8171</TD><TD>2000-10-11 10:07:28</TD><TD>O5HYA5BXQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O5HY01QEQ</TD><TD>GANYMEDE-EAST</TD><TD>28.8024791667</TD><TD>10.1507805556</TD><TD>12</TD><TD>1999-10-21 01:27:08</TD><TD>1999-10-21 01:34:48</TD><TD>0.300</TD><TD>STIS  </TD><TD>F28X50LP</TD><TD>MIRVIS</TD><TD>8171</TD><TD>2006-12-17 14:22:26</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O5HYA1QGQ</TD><TD>JUP-SOUTH-GANYFOOT</TD><TD>28.7428041667</TD><TD>10.1282527778</TD><TD>12</TD><TD>1999-10-21 01:45:14</TD><TD>1999-10-21 01:47:14</TD><TD>120.000</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>8171</TD><TD>2000-10-21 01:47:14</TD><TD>O5HYA1QGQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O5HYA1QIQ</TD><TD>JUP-SOUTH-GANYFOOT</TD><TD>28.7420625</TD><TD>10.1279861111</TD><TD>12</TD><TD>1999-10-21 01:53:56</TD><TD>1999-10-21 01:56:56</TD><TD>180.019</TD><TD>STIS  </TD><TD>52X0.5</TD><TD>G140L</TD><TD>8171</TD><TD>1999-10-21 16:37:10</TD><TD>O5HYA1QIQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O5HYA1QKQ</TD><TD>JUP-SOUTH-GANYFOOT</TD><TD>28.7410875</TD><TD>10.1277472222</TD><TD>12</TD><TD>1999-10-21 02:00:24</TD><TD>1999-10-21 02:03:24</TD><TD>180.017</TD><TD>STIS  </TD><TD>52X0.5</TD><TD>G140L</TD><TD>8171</TD><TD>1999-10-21 20:32:06</TD><TD>O5HYA1QKQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O5HYA1QMQ</TD><TD>JUP-SOUTH-GANYFOOT</TD><TD>28.7403875</TD><TD>10.1276111111</TD><TD>12</TD><TD>1999-10-21 02:06:52</TD><TD>1999-10-21 02:09:52</TD><TD>180.018</TD><TD>STIS  </TD><TD>52X0.5</TD><TD>G140L</TD><TD>8171</TD><TD>1999-10-21 20:30:53</TD><TD>O5HYA1QMQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O5HYA1QOQ</TD><TD>JUP-SOUTH-GANYFOOT</TD><TD>28.7357958333</TD><TD>10.1257222222</TD><TD>12</TD><TD>1999-10-21 03:03:26</TD><TD>1999-10-21 03:05:06</TD><TD>89.719</TD><TD>STIS  </TD><TD>F25SRF2</TD><TD>MIRFUV</TD><TD>8171</TD><TD>2000-10-21 03:05:06</TD><TD>O5HYA1QOQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O5HYA1QQQ</TD><TD>JUP-SOUTH-GANYFOOT</TD><TD>28.735025</TD><TD>10.1254444444</TD><TD>12</TD><TD>1999-10-21 03:12:03</TD><TD>1999-10-21 03:16:53</TD><TD>290.019</TD><TD>STIS  </TD><TD>52X0.5</TD><TD>G140L</TD><TD>8171</TD><TD>1999-10-21 22:22:51</TD><TD>O5HYA1QQQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O5HYA1QSQ</TD><TD>JUP-SOUTH-GANYFOOT</TD><TD>28.7339291667</TD><TD>10.1251611111</TD><TD>12</TD><TD>1999-10-21 03:20:21</TD><TD>1999-10-21 03:25:11</TD><TD>290.016</TD><TD>STIS  </TD><TD>52X0.5</TD><TD>G140L</TD><TD>8171</TD><TD>1999-10-21 22:26:46</TD><TD>O5HYA1QSQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O5HYA1QUQ</TD><TD>JUP-SOUTH-GANYFOOT</TD><TD>28.7330625</TD><TD>10.1249638889</TD><TD>12</TD><TD>1999-10-21 03:28:39</TD><TD>1999-10-21 03:33:29</TD><TD>290.015</TD><TD>STIS  </TD><TD>52X0.5</TD><TD>G140L</TD><TD>8171</TD><TD>1999-10-21 22:29:11</TD><TD>O5HYA1QUQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O5HYA1QWQ</TD><TD>JUP-SOUTH-GANYFOOT</TD><TD>28.7324541667</TD><TD>10.1245138889</TD><TD>12</TD><TD>1999-10-21 03:41:16</TD><TD>1999-10-21 03:42:43</TD><TD>87.000</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>8171</TD><TD>2000-10-21 03:42:43</TD><TD>O5HYA1QWQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O5HQ03KFQ</TD><TD>EUROPA-ACQUISITION</TD><TD>26.1268958333</TD><TD>9.20616111111</TD><TD>0</TD><TD>1999-11-11 12:58:03</TD><TD>1999-11-11 13:03:10</TD><TD>2.273</TD><TD>STIS  </TD><TD>F28X50LP</TD><TD>MIRVIS</TD><TD>8108</TD><TD>2000-11-11 13:03:10</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O5HQA3KHQ</TD><TD>JUP-BULGE-LIMB-A</TD><TD>26.0698625</TD><TD>9.18148333333</TD><TD>0</TD><TD>1999-11-11 13:12:24</TD><TD>1999-11-11 13:12:24</TD><TD>0.000</TD><TD>STIS  </TD><TD>52X0.5</TD><TD>E140H</TD><TD>8108</TD><TD>2000-11-11 13:12:24</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O5HQB3KJQ</TD><TD>JUP-NORTH-LIMB-A</TD><TD>26.0630083333</TD><TD>9.18141388889</TD><TD>0</TD><TD>1999-11-11 14:34:50</TD><TD>1999-11-11 14:53:50</TD><TD>1140.188</TD><TD>STIS  </TD><TD>52X0.5</TD><TD>E140H</TD><TD>8108</TD><TD>2000-11-11 14:53:50</TD><TD>O5HQB3KJQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O5HQB3KLQ</TD><TD>JUP-NORTH-LIMB-A</TD><TD>26.0610791667</TD><TD>9.18074444444</TD><TD>0</TD><TD>1999-11-11 14:57:20</TD><TD>1999-11-11 15:16:20</TD><TD>1140.192</TD><TD>STIS  </TD><TD>52X0.5</TD><TD>E140H</TD><TD>8108</TD><TD>2000-11-11 15:16:20</TD><TD>O5HQB3KLQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O5HQC3KNQ</TD><TD>JUPITER-BULGE-CML</TD><TD>26.062125</TD><TD>9.17874722222</TD><TD>0</TD><TD>1999-11-11 16:11:28</TD><TD>1999-11-11 16:30:28</TD><TD>1140.191</TD><TD>STIS  </TD><TD>52X0.5</TD><TD>E140H</TD><TD>8108</TD><TD>2000-11-11 16:30:28</TD><TD>O5HQC3KNQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O5HQC3KPQ</TD><TD>JUPITER-BULGE-CML</TD><TD>26.0602</TD><TD>9.17807777778</TD><TD>0</TD><TD>1999-11-11 16:33:58</TD><TD>1999-11-11 16:52:58</TD><TD>1140.195</TD><TD>STIS  </TD><TD>52X0.5</TD><TD>E140H</TD><TD>8108</TD><TD>2000-11-11 16:52:58</TD><TD>O5HQC3KPQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O5HQD3KRQ</TD><TD>JUP-ANTIBLG-LIMB-A</TD><TD>26.0484666667</TD><TD>9.17404444444</TD><TD>0</TD><TD>1999-11-11 17:48:08</TD><TD>1999-11-11 18:07:08</TD><TD>1140.191</TD><TD>STIS  </TD><TD>52X0.5</TD><TD>E140H</TD><TD>8108</TD><TD>2000-11-11 18:07:08</TD><TD>O5HQD3KRQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O5HQD3KTQ</TD><TD>JUP-ANTIBLG-LIMB-A</TD><TD>26.0465458333</TD><TD>9.17337777778</TD><TD>0</TD><TD>1999-11-11 18:10:38</TD><TD>1999-11-11 18:29:38</TD><TD>1140.197</TD><TD>STIS  </TD><TD>52X0.5</TD><TD>E140H</TD><TD>8108</TD><TD>2000-11-11 18:29:38</TD><TD>O5HQD3KTQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O5HQE3KVQ</TD><TD>GEOCORONAL-BACKGROUND</TD><TD>26.0533458333</TD><TD>9.17616944444</TD><TD>0</TD><TD>1999-11-11 19:24:47</TD><TD>1999-11-11 19:43:47</TD><TD>1140.185</TD><TD>STIS  </TD><TD>52X0.5</TD><TD>E140H</TD><TD>8108</TD><TD>2000-11-11 19:43:47</TD><TD>O5HQE3KVQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O5HQE3KXQ</TD><TD>GEOCORONAL-BACKGROUND</TD><TD>26.051425</TD><TD>9.17550277778</TD><TD>0</TD><TD>1999-11-11 19:47:17</TD><TD>1999-11-11 20:06:17</TD><TD>1140.196</TD><TD>STIS  </TD><TD>52X0.5</TD><TD>E140H</TD><TD>8108</TD><TD>2000-11-11 20:06:17</TD><TD>O5HQE3KXQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O5HY16FPQ</TD><TD>ACQ-6</TD><TD>29.663475</TD><TD>11.015375</TD><TD>12</TD><TD>2000-02-22 14:46:25</TD><TD>2000-02-22 14:51:31</TD><TD>0.300</TD><TD>STIS  </TD><TD>F28X50LP</TD><TD>MIRVIS</TD><TD>8171</TD><TD>2006-12-18 06:17:43</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O5HYB6FRQ</TD><TD>JUP-NORTH-IOFOOT-6</TD><TD>29.5370166667</TD><TD>10.9704416667</TD><TD>12</TD><TD>2000-02-22 15:01:48</TD><TD>2000-02-22 15:03:48</TD><TD>120.000</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>8171</TD><TD>2001-02-22 15:03:48</TD><TD>O5HYB6FRQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O5HYB6FTQ</TD><TD>JUP-NORTH-IOFOOT-6</TD><TD>29.5379416667</TD><TD>10.9707972222</TD><TD>12</TD><TD>2000-02-22 15:10:10</TD><TD>2000-02-22 15:14:06</TD><TD>236.019</TD><TD>STIS  </TD><TD>52X0.5</TD><TD>G140L</TD><TD>8171</TD><TD>2000-02-22 17:39:22</TD><TD>O5HYB6FTQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O5HYB6FVQ</TD><TD>JUP-NORTH-IOFOOT-6</TD><TD>29.5393</TD><TD>10.9712194444</TD><TD>12</TD><TD>2000-02-22 15:17:34</TD><TD>2000-02-22 15:21:30</TD><TD>236.017</TD><TD>STIS  </TD><TD>52X0.5</TD><TD>G140L</TD><TD>8171</TD><TD>2000-02-22 17:40:44</TD><TD>O5HYB6FVQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O5HYB6FXQ</TD><TD>JUP-NORTH-IOFOOT-6</TD><TD>29.5403</TD><TD>10.9715055556</TD><TD>12</TD><TD>2000-02-22 15:24:58</TD><TD>2000-02-22 15:28:54</TD><TD>236.019</TD><TD>STIS  </TD><TD>52X0.5</TD><TD>G140L</TD><TD>8171</TD><TD>2000-02-22 17:41:25</TD><TD>O5HYB6FXQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O5HYB6FZQ</TD><TD>JUP-NORTH-IOFOOT-6</TD><TD>29.5461541667</TD><TD>10.9739555556</TD><TD>12</TD><TD>2000-02-22 16:19:51</TD><TD>2000-02-22 16:25:51</TD><TD>274.890</TD><TD>STIS  </TD><TD>F25SRF2</TD><TD>MIRFUV</TD><TD>8171</TD><TD>2001-02-22 16:25:51</TD><TD>O5HYB6FZQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O5HYB6G1Q</TD><TD>JUP-NORTH-IOFOOT-6</TD><TD>29.5476708333</TD><TD>10.9745388889</TD><TD>12</TD><TD>2000-02-22 16:32:48</TD><TD>2000-02-22 16:36:48</TD><TD>240.019</TD><TD>STIS  </TD><TD>52X0.5</TD><TD>G140L</TD><TD>8171</TD><TD>2000-02-22 21:45:16</TD><TD>O5HYB6G1Q</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O5HYB6G3Q</TD><TD>JUP-NORTH-IOFOOT-6</TD><TD>29.5489791667</TD><TD>10.9749416667</TD><TD>12</TD><TD>2000-02-22 16:40:16</TD><TD>2000-02-22 16:44:16</TD><TD>240.017</TD><TD>STIS  </TD><TD>52X0.5</TD><TD>G140L</TD><TD>8171</TD><TD>2000-02-22 21:46:16</TD><TD>O5HYB6G3Q</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O5HYB6G5Q</TD><TD>JUP-NORTH-IOFOOT-6</TD><TD>29.5499833333</TD><TD>10.9752305556</TD><TD>12</TD><TD>2000-02-22 16:47:44</TD><TD>2000-02-22 16:51:44</TD><TD>240.016</TD><TD>STIS  </TD><TD>52X0.5</TD><TD>G140L</TD><TD>8171</TD><TD>2000-02-22 21:50:20</TD><TD>O5HYB6G5Q</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O5HYB6G7Q</TD><TD>JUP-NORTH-IOFOOT-6</TD><TD>29.5507416667</TD><TD>10.9757194444</TD><TD>12</TD><TD>2000-02-22 16:59:32</TD><TD>2000-02-22 17:01:12</TD><TD>100.000</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>8171</TD><TD>2001-02-22 17:01:12</TD><TD>O5HYB6G7Q</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O5HY55EGQ</TD><TD>ACQ-55</TD><TD>66.3302791667</TD><TD>20.7090138889</TD><TD>12</TD><TD>2000-11-14 05:43:05</TD><TD>2000-11-14 05:48:12</TD><TD>0.300</TD><TD>STIS  </TD><TD>F28X50LP</TD><TD>MIRVIS</TD><TD>8171</TD><TD>2006-12-18 10:14:49</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O5HYB5EIQ</TD><TD>JUP-NORTH-IOFOOT-55</TD><TD>66.3766125</TD><TD>20.7178361111</TD><TD>12</TD><TD>2000-11-14 05:58:28</TD><TD>2000-11-14 06:00:28</TD><TD>120.000</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>8171</TD><TD>2001-11-14 06:00:28</TD><TD>O5HYB5EIQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O5HYB5EKQ</TD><TD>JUP-NORTH-IOFOOT-55</TD><TD>66.375875</TD><TD>20.7177305556</TD><TD>12</TD><TD>2000-11-14 06:06:50</TD><TD>2000-11-14 06:10:40</TD><TD>230.019</TD><TD>STIS  </TD><TD>52X0.5</TD><TD>G140L</TD><TD>8171</TD><TD>2001-11-14 06:10:40</TD><TD>O5HYB5EKQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O5HYB5EMQ</TD><TD>JUP-NORTH-IOFOOT-55</TD><TD>66.3747708333</TD><TD>20.7176361111</TD><TD>12</TD><TD>2000-11-14 06:14:08</TD><TD>2000-11-14 06:17:58</TD><TD>230.015</TD><TD>STIS  </TD><TD>52X0.5</TD><TD>G140L</TD><TD>8171</TD><TD>2001-11-14 06:17:58</TD><TD>O5HYB5EMQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O5HYB5EOQ</TD><TD>JUP-NORTH-IOFOOT-55</TD><TD>66.37395</TD><TD>20.7175805556</TD><TD>12</TD><TD>2000-11-14 06:21:26</TD><TD>2000-11-14 06:25:16</TD><TD>230.018</TD><TD>STIS  </TD><TD>52X0.5</TD><TD>G140L</TD><TD>8171</TD><TD>2001-11-14 06:25:16</TD><TD>O5HYB5EOQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O5HYB5EQQ</TD><TD>JUP-NORTH-IOFOOT-55</TD><TD>66.3692041667</TD><TD>20.7167777778</TD><TD>12</TD><TD>2000-11-14 07:17:59</TD><TD>2000-11-14 07:21:19</TD><TD>128.774</TD><TD>STIS  </TD><TD>F25SRF2</TD><TD>MIRFUV</TD><TD>8171</TD><TD>2001-11-14 07:21:19</TD><TD>O5HYB5EQQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O5HYB5ESQ</TD><TD>JUP-NORTH-IOFOOT-55</TD><TD>66.3682458333</TD><TD>20.7166416667</TD><TD>12</TD><TD>2000-11-14 07:28:16</TD><TD>2000-11-14 07:32:46</TD><TD>270.017</TD><TD>STIS  </TD><TD>52X0.5</TD><TD>G140L</TD><TD>8171</TD><TD>2001-11-14 07:32:46</TD><TD>O5HYB5ESQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O5HYB5EUQ</TD><TD>JUP-NORTH-IOFOOT-55</TD><TD>66.3669833333</TD><TD>20.7165861111</TD><TD>12</TD><TD>2000-11-14 07:36:14</TD><TD>2000-11-14 07:40:44</TD><TD>270.011</TD><TD>STIS  </TD><TD>52X0.5</TD><TD>G140L</TD><TD>8171</TD><TD>2001-11-14 07:40:44</TD><TD>O5HYB5EUQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O5HYB5EWQ</TD><TD>JUP-NORTH-IOFOOT-55</TD><TD>66.3659583333</TD><TD>20.7165638889</TD><TD>12</TD><TD>2000-11-14 07:44:12</TD><TD>2000-11-14 07:48:42</TD><TD>270.016</TD><TD>STIS  </TD><TD>52X0.5</TD><TD>G140L</TD><TD>8171</TD><TD>2000-11-14 16:30:42</TD><TD>O5HYB5EWQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O5HYB5EYQ</TD><TD>JUP-NORTH-IOFOOT-55</TD><TD>66.3656625</TD><TD>20.7162722222</TD><TD>12</TD><TD>2000-11-14 07:56:31</TD><TD>2000-11-14 07:58:31</TD><TD>120.000</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>8171</TD><TD>2001-11-14 07:58:31</TD><TD>O5HYB5EYQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O6BA02010</TD><TD>JUP-NORTH</TD><TD>62.1621333333</TD><TD>20.0936638889</TD><TD>21</TD><TD>2000-12-14 10:46:42</TD><TD>2000-12-14 11:05:52</TD><TD>660.000</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>8657</TD><TD>2001-12-14 11:05:52</TD><TD>O6BA02010</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O6BA02MHQ</TD><TD>JUP-NORTH</TD><TD>62.1598666667</TD><TD>20.0933194444</TD><TD>21</TD><TD>2000-12-14 11:12:02</TD><TD>2000-12-14 11:17:02</TD><TD>265.009</TD><TD>STIS  </TD><TD>F25SRF2</TD><TD>MIRFUV</TD><TD>8657</TD><TD>2001-12-14 11:17:02</TD><TD>O6BA02MHQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O6BA02020</TD><TD>JUP-NORTH</TD><TD>62.1551166667</TD><TD>20.0925944444</TD><TD>21</TD><TD>2000-12-14 12:05:24</TD><TD>2000-12-14 12:09:25</TD><TD>219.000</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>8657</TD><TD>2001-12-14 12:09:25</TD><TD>O6BA02020</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O6BA02MMQ</TD><TD>JUP-NORTH</TD><TD>62.1542083333</TD><TD>20.0924583333</TD><TD>21</TD><TD>2000-12-14 12:13:03</TD><TD>2000-12-14 12:14:43</TD><TD>100.000</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>8657</TD><TD>2001-12-14 12:14:43</TD><TD>O6BA02MMQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O6BA02MOQ</TD><TD>JUP-NORTH</TD><TD>62.1537666667</TD><TD>20.0923916667</TD><TD>21</TD><TD>2000-12-14 12:21:05</TD><TD>2000-12-14 12:31:35</TD><TD>630.191</TD><TD>STIS  </TD><TD>52X0.5</TD><TD>G140L</TD><TD>8657</TD><TD>2001-12-14 12:31:35</TD><TD>O6BA02MOQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O6BA02MQQ</TD><TD>JUP-NORTH</TD><TD>62.1520666667</TD><TD>20.0921333333</TD><TD>21</TD><TD>2000-12-14 12:37:06</TD><TD>2000-12-14 12:47:36</TD><TD>630.200</TD><TD>STIS  </TD><TD>52X0.5</TD><TD>G140L</TD><TD>8657</TD><TD>2001-12-14 12:47:36</TD><TD>O6BA02MQQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O6BA02MSQ</TD><TD>JUP-NORTH</TD><TD>62.1465333333</TD><TD>20.0912888889</TD><TD>21</TD><TD>2000-12-14 13:42:24</TD><TD>2000-12-14 13:44:24</TD><TD>120.000</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>8657</TD><TD>2001-12-14 13:44:24</TD><TD>O6BA02MSQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O6BA02030</TD><TD>JUP-NORTH</TD><TD>62.1458666667</TD><TD>20.0911888889</TD><TD>21</TD><TD>2000-12-14 13:46:47</TD><TD>2000-12-14 14:08:59</TD><TD>630.000</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>8657</TD><TD>2001-12-14 14:08:59</TD><TD>O6BA02030</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O6BA02N5Q</TD><TD>JUP-NORTH</TD><TD>62.1436833333</TD><TD>20.0908555556</TD><TD>21</TD><TD>2000-12-14 14:13:54</TD><TD>2000-12-14 14:18:54</TD><TD>271.712</TD><TD>STIS  </TD><TD>F25SRF2</TD><TD>MIRFUV</TD><TD>8657</TD><TD>2001-12-14 14:18:54</TD><TD>O6BA02N5Q</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O6BA02040</TD><TD>JUP-NORTH</TD><TD>62.1427041667</TD><TD>20.0907083333</TD><TD>21</TD><TD>2000-12-14 14:24:54</TD><TD>2000-12-14 14:28:16</TD><TD>180.000</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>8657</TD><TD>2001-12-14 14:28:16</TD><TD>O6BA02040</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O6BAA2NAQ</TD><TD>JUP-SOUTH</TD><TD>62.1399875</TD><TD>20.0801694444</TD><TD>21</TD><TD>2000-12-14 15:18:25</TD><TD>2000-12-14 15:20:21</TD><TD>115.200</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>8657</TD><TD>2001-12-14 15:20:21</TD><TD>O6BAA2NAQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O6BAA2NCQ</TD><TD>JUP-SOUTH</TD><TD>62.1392875</TD><TD>20.0800638889</TD><TD>21</TD><TD>2000-12-14 15:27:02</TD><TD>2000-12-14 15:36:02</TD><TD>540.010</TD><TD>STIS  </TD><TD>52X0.5</TD><TD>E140H</TD><TD>8657</TD><TD>2001-12-14 15:36:02</TD><TD>O6BAA2NCQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O6BAA2NEQ</TD><TD>JUP-SOUTH</TD><TD>62.1377</TD><TD>20.0798222222</TD><TD>21</TD><TD>2000-12-14 15:41:35</TD><TD>2000-12-14 15:50:35</TD><TD>540.017</TD><TD>STIS  </TD><TD>52X0.5</TD><TD>E140H</TD><TD>8657</TD><TD>2001-12-14 15:50:35</TD><TD>O6BAA2NEQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O6BAA2NGQ</TD><TD>JUP-SOUTH</TD><TD>62.136475</TD><TD>20.0796361111</TD><TD>21</TD><TD>2000-12-14 15:58:40</TD><TD>2000-12-14 16:00:36</TD><TD>115.200</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>8657</TD><TD>2001-12-14 16:00:36</TD><TD>O6BAA2NGQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O6BAA2NHQ</TD><TD>DARK</TD><TD>62.0478083333</TD><TD>20.1036888889</TD><TD>21</TD><TD>2000-12-14 16:00:53</TD><TD>2000-12-14 16:40:53</TD><TD>2400.000</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>8657</TD><TD>2001-12-14 16:40:53</TD><TD>O6BAA2NHQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O6BAA2010</TD><TD>JUP-SOUTH</TD><TD>62.1314208333</TD><TD>20.0788666667</TD><TD>21</TD><TD>2000-12-14 16:52:16</TD><TD>2000-12-14 17:09:50</TD><TD>564.000</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>8657</TD><TD>2001-12-14 17:09:50</TD><TD>O6BAA2010</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O6BAA2NTQ</TD><TD>JUP-SOUTH</TD><TD>62.1295375</TD><TD>20.0785805556</TD><TD>21</TD><TD>2000-12-14 17:16:00</TD><TD>2000-12-14 17:21:00</TD><TD>223.042</TD><TD>STIS  </TD><TD>F25SRF2</TD><TD>MIRFUV</TD><TD>8657</TD><TD>2001-12-14 17:21:00</TD><TD>O6BAA2NTQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O6BAA2020</TD><TD>JUP-SOUTH</TD><TD>62.1285625</TD><TD>20.0784305556</TD><TD>21</TD><TD>2000-12-14 17:27:00</TD><TD>2000-12-14 17:36:14</TD><TD>320.000</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>8657</TD><TD>2001-12-14 17:36:14</TD><TD>O6BAA2020</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O6BA03010</TD><TD>JUP-NORTH</TD><TD>61.9079833333</TD><TD>20.0550111111</TD><TD>21</TD><TD>2000-12-16 11:00:31</TD><TD>2000-12-16 11:19:41</TD><TD>660.000</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>8657</TD><TD>2001-12-16 11:19:41</TD><TD>O6BA03010</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O6BA03UTQ</TD><TD>JUP-NORTH</TD><TD>61.9057875</TD><TD>20.0546777778</TD><TD>21</TD><TD>2000-12-16 11:25:51</TD><TD>2000-12-16 11:30:51</TD><TD>278.651</TD><TD>STIS  </TD><TD>F25SRF2</TD><TD>MIRFUV</TD><TD>8657</TD><TD>2001-12-16 11:30:51</TD><TD>O6BA03UTQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O6BA03020</TD><TD>JUP-NORTH</TD><TD>61.9011708333</TD><TD>20.053975</TD><TD>21</TD><TD>2000-12-16 12:19:14</TD><TD>2000-12-16 12:23:15</TD><TD>219.000</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>8657</TD><TD>2001-12-16 12:23:15</TD><TD>O6BA03020</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O6BA03UYQ</TD><TD>JUP-NORTH</TD><TD>61.9002916667</TD><TD>20.0538416667</TD><TD>21</TD><TD>2000-12-16 12:26:53</TD><TD>2000-12-16 12:28:33</TD><TD>100.000</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>8657</TD><TD>2001-12-16 12:28:33</TD><TD>O6BA03UYQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O6BA03V0Q</TD><TD>JUP-NORTH</TD><TD>61.8998625</TD><TD>20.053775</TD><TD>21</TD><TD>2000-12-16 12:34:55</TD><TD>2000-12-16 12:45:25</TD><TD>630.199</TD><TD>STIS  </TD><TD>52X0.5</TD><TD>G140L</TD><TD>8657</TD><TD>2001-12-16 12:45:25</TD><TD>O6BA03V0Q</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O6BA03V2Q</TD><TD>JUP-NORTH</TD><TD>61.8982125</TD><TD>20.053525</TD><TD>21</TD><TD>2000-12-16 12:50:56</TD><TD>2000-12-16 13:01:26</TD><TD>630.195</TD><TD>STIS  </TD><TD>52X0.5</TD><TD>G140L</TD><TD>8657</TD><TD>2001-12-16 13:01:26</TD><TD>O6BA03V2Q</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O6BA03V4Q</TD><TD>JUP-NORTH</TD><TD>61.8928375</TD><TD>20.0527083333</TD><TD>21</TD><TD>2000-12-16 13:56:14</TD><TD>2000-12-16 13:58:14</TD><TD>120.000</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>8657</TD><TD>2001-12-16 13:58:14</TD><TD>O6BA03V4Q</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O6BA03030</TD><TD>JUP-NORTH</TD><TD>61.8921958333</TD><TD>20.0526111111</TD><TD>21</TD><TD>2000-12-16 14:00:37</TD><TD>2000-12-16 14:22:49</TD><TD>630.000</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>8657</TD><TD>2001-12-16 14:22:49</TD><TD>O6BA03030</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O6BA03VHQ</TD><TD>JUP-NORTH</TD><TD>61.890075</TD><TD>20.0522888889</TD><TD>21</TD><TD>2000-12-16 14:27:44</TD><TD>2000-12-16 14:32:44</TD><TD>270.901</TD><TD>STIS  </TD><TD>F25SRF2</TD><TD>MIRFUV</TD><TD>8657</TD><TD>2001-12-16 14:32:44</TD><TD>O6BA03VHQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O6BA03040</TD><TD>JUP-NORTH</TD><TD>61.889125</TD><TD>20.0521444444</TD><TD>21</TD><TD>2000-12-16 14:38:44</TD><TD>2000-12-16 14:42:06</TD><TD>180.000</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>8657</TD><TD>2001-12-16 14:42:06</TD><TD>O6BA03040</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O6BA03VMQ</TD><TD>JUP-NORTH</TD><TD>61.8845166667</TD><TD>20.0514416667</TD><TD>21</TD><TD>2000-12-16 15:29:38</TD><TD>2000-12-16 15:31:34</TD><TD>115.200</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>8657</TD><TD>2001-12-16 15:31:34</TD><TD>O6BA03VMQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O6BA03VOQ</TD><TD>JUP-NORTH</TD><TD>61.8840625</TD><TD>20.051375</TD><TD>21</TD><TD>2000-12-16 15:38:15</TD><TD>2000-12-16 15:48:15</TD><TD>600.188</TD><TD>STIS  </TD><TD>52X0.5</TD><TD>E140H</TD><TD>8657</TD><TD>2001-12-16 15:48:15</TD><TD>O6BA03VOQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O6BA03VQQ</TD><TD>JUP-NORTH</TD><TD>61.8824333333</TD><TD>20.0511277778</TD><TD>21</TD><TD>2000-12-16 15:53:48</TD><TD>2000-12-16 16:03:48</TD><TD>600.172</TD><TD>STIS  </TD><TD>52X0.5</TD><TD>E140H</TD><TD>8657</TD><TD>2001-12-16 16:03:48</TD><TD>O6BA03VQQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O6BA03VSQ</TD><TD>JUP-NORTH</TD><TD>61.8811625</TD><TD>20.0509333333</TD><TD>21</TD><TD>2000-12-16 16:11:53</TD><TD>2000-12-16 16:13:49</TD><TD>115.200</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>8657</TD><TD>2001-12-16 16:13:49</TD><TD>O6BA03VSQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O6BA03VTQ</TD><TD>DARK</TD><TD>61.8017</TD><TD>20.0948555556</TD><TD>21</TD><TD>2000-12-16 16:14:06</TD><TD>2000-12-16 16:49:06</TD><TD>2100.000</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>8657</TD><TD>2001-12-16 16:49:06</TD><TD>O6BA03VTQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O6BAA3010</TD><TD>JUP-SOUTH</TD><TD>61.8782333333</TD><TD>20.0403638889</TD><TD>21</TD><TD>2000-12-16 17:08:42</TD><TD>2000-12-16 17:25:17</TD><TD>526.100</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>8657</TD><TD>2001-12-16 17:25:17</TD><TD>O6BAA3010</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O6BAA3W3Q</TD><TD>JUP-SOUTH</TD><TD>61.876375</TD><TD>20.0400805556</TD><TD>21</TD><TD>2000-12-16 17:30:12</TD><TD>2000-12-16 17:34:12</TD><TD>204.273</TD><TD>STIS  </TD><TD>F25SRF2</TD><TD>MIRFUV</TD><TD>8657</TD><TD>2001-12-16 17:34:12</TD><TD>O6BAA3W3Q</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O6BAA3020</TD><TD>JUP-SOUTH</TD><TD>61.8755125</TD><TD>20.03995</TD><TD>21</TD><TD>2000-12-16 17:40:12</TD><TD>2000-12-16 17:46:56</TD><TD>360.000</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>8657</TD><TD>2001-12-16 17:46:56</TD><TD>O6BAA3020</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O6BA04010</TD><TD>JUP-SOUTH</TD><TD>61.6728583333</TD><TD>20.0091611111</TD><TD>21</TD><TD>2000-12-18 09:27:49</TD><TD>2000-12-18 09:46:59</TD><TD>660.000</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>8657</TD><TD>2001-12-18 09:46:59</TD><TD>O6BA04010</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O6BA04BOQ</TD><TD>JUP-SOUTH</TD><TD>61.6707291667</TD><TD>20.0088388889</TD><TD>21</TD><TD>2000-12-18 09:53:09</TD><TD>2000-12-18 09:58:09</TD><TD>228.239</TD><TD>STIS  </TD><TD>F25SRF2</TD><TD>MIRFUV</TD><TD>8657</TD><TD>2001-12-18 09:58:09</TD><TD>O6BA04BOQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O6BA04020</TD><TD>JUP-SOUTH</TD><TD>61.6698083333</TD><TD>20.0087</TD><TD>21</TD><TD>2000-12-18 10:04:09</TD><TD>2000-12-18 10:08:10</TD><TD>219.000</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>8657</TD><TD>2001-12-18 10:08:10</TD><TD>O6BA04020</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O6BA04BTQ</TD><TD>JUP-SOUTH</TD><TD>61.6654208333</TD><TD>20.0080333333</TD><TD>21</TD><TD>2000-12-18 10:54:02</TD><TD>2000-12-18 10:55:58</TD><TD>115.200</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>8657</TD><TD>2001-12-18 10:55:58</TD><TD>O6BA04BTQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O6BA04BVQ</TD><TD>JUP-SOUTH</TD><TD>61.6649833333</TD><TD>20.0079666667</TD><TD>21</TD><TD>2000-12-18 11:02:20</TD><TD>2000-12-18 11:11:40</TD><TD>560.013</TD><TD>STIS  </TD><TD>52X0.5</TD><TD>G140L</TD><TD>8657</TD><TD>2001-12-18 11:11:40</TD><TD>O6BA04BVQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O6BA04BXQ</TD><TD>JUP-SOUTH</TD><TD>61.6634875</TD><TD>20.0077388889</TD><TD>21</TD><TD>2000-12-18 11:17:11</TD><TD>2000-12-18 11:26:31</TD><TD>560.015</TD><TD>STIS  </TD><TD>52X0.5</TD><TD>G140L</TD><TD>8657</TD><TD>2001-12-18 11:26:31</TD><TD>O6BA04BXQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O6BA04BZQ</TD><TD>JUP-SOUTH</TD><TD>61.6623083333</TD><TD>20.0075611111</TD><TD>21</TD><TD>2000-12-18 11:34:19</TD><TD>2000-12-18 11:36:15</TD><TD>115.200</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>8657</TD><TD>2001-12-18 11:36:15</TD><TD>O6BA04BZQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O6BA04030</TD><TD>JUP-SOUTH</TD><TD>61.6573583333</TD><TD>20.0068083333</TD><TD>21</TD><TD>2000-12-18 12:30:29</TD><TD>2000-12-18 12:55:53</TD><TD>800.000</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>8657</TD><TD>2001-12-18 12:55:53</TD><TD>O6BA04030</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O6BA04CDQ</TD><TD>JUP-SOUTH</TD><TD>61.6549333333</TD><TD>20.0064416667</TD><TD>21</TD><TD>2000-12-18 13:02:03</TD><TD>2000-12-18 13:07:03</TD><TD>200.262</TD><TD>STIS  </TD><TD>F25SRF2</TD><TD>MIRFUV</TD><TD>8657</TD><TD>2001-12-18 13:07:03</TD><TD>O6BA04CDQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O6BA04CFQ</TD><TD>JUP-SOUTH</TD><TD>61.6540125</TD><TD>20.0063</TD><TD>21</TD><TD>2000-12-18 13:13:03</TD><TD>2000-12-18 13:14:32</TD><TD>89.000</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>8657</TD><TD>2001-12-18 13:14:32</TD><TD>O6BA04CFQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O6BAA4CHQ</TD><TD>JUP-NORTH</TD><TD>61.6472333333</TD><TD>20.0153972222</TD><TD>21</TD><TD>2000-12-18 14:09:59</TD><TD>2000-12-18 14:11:39</TD><TD>100.000</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>8657</TD><TD>2001-12-18 14:11:39</TD><TD>O6BAA4CHQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O6BAA4CJQ</TD><TD>JUP-NORTH</TD><TD>61.6466</TD><TD>20.0153</TD><TD>21</TD><TD>2000-12-18 14:18:20</TD><TD>2000-12-18 14:26:50</TD><TD>510.017</TD><TD>STIS  </TD><TD>52X0.5</TD><TD>E140H</TD><TD>8657</TD><TD>2001-12-18 14:26:50</TD><TD>O6BAA4CJQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O6BAA4CLQ</TD><TD>JUP-NORTH</TD><TD>61.64515</TD><TD>20.0150805556</TD><TD>21</TD><TD>2000-12-18 14:32:23</TD><TD>2000-12-18 14:40:53</TD><TD>510.019</TD><TD>STIS  </TD><TD>52X0.5</TD><TD>E140H</TD><TD>8657</TD><TD>2001-12-18 14:40:53</TD><TD>O6BAA4CLQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O6BAA4CNQ</TD><TD>JUP-NORTH</TD><TD>61.6440458333</TD><TD>20.0149111111</TD><TD>21</TD><TD>2000-12-18 14:48:57</TD><TD>2000-12-18 14:50:45</TD><TD>108.000</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>8657</TD><TD>2001-12-18 14:50:45</TD><TD>O6BAA4CNQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O6BAA4COQ</TD><TD>DARK</TD><TD>61.5664833333</TD><TD>20.0616527778</TD><TD>21</TD><TD>2000-12-18 14:51:02</TD><TD>2000-12-18 15:31:02</TD><TD>2400.000</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>8657</TD><TD>2001-12-18 15:31:02</TD><TD>O6BAA4COQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O6BAA4010</TD><TD>JUP-NORTH</TD><TD>61.639225</TD><TD>20.0141805556</TD><TD>21</TD><TD>2000-12-18 15:43:22</TD><TD>2000-12-18 16:05:34</TD><TD>630.000</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>8657</TD><TD>2001-12-18 16:05:34</TD><TD>O6BAA4010</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O6BAA4D2Q</TD><TD>JUP-NORTH</TD><TD>61.637175</TD><TD>20.0138694444</TD><TD>21</TD><TD>2000-12-18 16:10:29</TD><TD>2000-12-18 16:15:29</TD><TD>293.557</TD><TD>STIS  </TD><TD>F25SRF2</TD><TD>MIRFUV</TD><TD>8657</TD><TD>2001-12-18 16:15:29</TD><TD>O6BAA4D2Q</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O6BAA4020</TD><TD>JUP-NORTH</TD><TD>61.6362583333</TD><TD>20.0137305556</TD><TD>21</TD><TD>2000-12-18 16:21:29</TD><TD>2000-12-18 16:24:51</TD><TD>180.000</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>8657</TD><TD>2001-12-18 16:24:51</TD><TD>O6BAA4020</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O6BA01010</TD><TD>JUP-SOUTH</TD><TD>60.6022625</TD><TD>19.8485944444</TD><TD>21</TD><TD>2000-12-28 05:34:35</TD><TD>2000-12-28 05:53:45</TD><TD>660.000</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>8657</TD><TD>2001-12-28 05:53:45</TD><TD>O6BA01010</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O6BA01NWQ</TD><TD>JUP-SOUTH</TD><TD>60.6005708333</TD><TD>19.8483472222</TD><TD>21</TD><TD>2000-12-28 05:59:55</TD><TD>2000-12-28 06:04:55</TD><TD>229.391</TD><TD>STIS  </TD><TD>F25SRF2</TD><TD>MIRFUV</TD><TD>8657</TD><TD>2001-12-28 06:04:55</TD><TD>O6BA01NWQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O6BA01020</TD><TD>JUP-SOUTH</TD><TD>60.5998416667</TD><TD>19.8482416667</TD><TD>21</TD><TD>2000-12-28 06:10:55</TD><TD>2000-12-28 06:14:56</TD><TD>219.000</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>8657</TD><TD>2001-12-28 06:14:56</TD><TD>O6BA01020</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O6BA01O1Q</TD><TD>JUP-SOUTH</TD><TD>60.595925</TD><TD>19.8476666667</TD><TD>21</TD><TD>2000-12-28 07:07:20</TD><TD>2000-12-28 07:09:00</TD><TD>100.000</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>8657</TD><TD>2001-12-28 07:09:00</TD><TD>O6BA01O1Q</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O6BA01O3Q</TD><TD>JUP-SOUTH</TD><TD>60.5955958333</TD><TD>19.8476194444</TD><TD>21</TD><TD>2000-12-28 07:15:22</TD><TD>2000-12-28 07:25:52</TD><TD>630.199</TD><TD>STIS  </TD><TD>52X0.5</TD><TD>G140L</TD><TD>8657</TD><TD>2001-12-28 07:25:52</TD><TD>O6BA01O3Q</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O6BA01O5Q</TD><TD>JUP-SOUTH</TD><TD>60.5943291667</TD><TD>19.8474333333</TD><TD>21</TD><TD>2000-12-28 07:31:22</TD><TD>2000-12-28 07:41:52</TD><TD>630.199</TD><TD>STIS  </TD><TD>52X0.5</TD><TD>G140L</TD><TD>8657</TD><TD>2001-12-28 07:41:52</TD><TD>O6BA01O5Q</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O6BA01O7Q</TD><TD>JUP-SOUTH</TD><TD>60.5933208333</TD><TD>19.8472861111</TD><TD>21</TD><TD>2000-12-28 07:49:39</TD><TD>2000-12-28 07:51:39</TD><TD>120.000</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>8657</TD><TD>2001-12-28 07:51:39</TD><TD>O6BA01O7Q</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O6BA01030</TD><TD>JUP-SOUTH</TD><TD>60.5895333333</TD><TD>19.8467305556</TD><TD>21</TD><TD>2000-12-28 08:43:44</TD><TD>2000-12-28 09:09:08</TD><TD>800.000</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>8657</TD><TD>2001-12-28 09:09:08</TD><TD>O6BA01030</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O6BA01OLQ</TD><TD>JUP-SOUTH</TD><TD>60.5876083333</TD><TD>19.84645</TD><TD>21</TD><TD>2000-12-28 09:15:18</TD><TD>2000-12-28 09:20:18</TD><TD>220.307</TD><TD>STIS  </TD><TD>F25SRF2</TD><TD>MIRFUV</TD><TD>8657</TD><TD>2001-12-28 09:20:18</TD><TD>O6BA01OLQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O6BA01ONQ</TD><TD>JUP-SOUTH</TD><TD>60.5868833333</TD><TD>19.8463416667</TD><TD>21</TD><TD>2000-12-28 09:26:18</TD><TD>2000-12-28 09:27:47</TD><TD>89.000</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>8657</TD><TD>2001-12-28 09:27:47</TD><TD>O6BA01ONQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O6BAA1OPQ</TD><TD>JUP-SOUTH</TD><TD>60.583125</TD><TD>19.8457916667</TD><TD>21</TD><TD>2000-12-28 10:23:12</TD><TD>2000-12-28 10:24:48</TD><TD>96.000</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>8657</TD><TD>2001-12-28 10:24:48</TD><TD>O6BAA1OPQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O6BAA1ORQ</TD><TD>JUP-SOUTH</TD><TD>60.5826291667</TD><TD>19.8457194444</TD><TD>21</TD><TD>2000-12-28 10:31:29</TD><TD>2000-12-28 10:40:14</TD><TD>525.018</TD><TD>STIS  </TD><TD>52X0.5</TD><TD>E140H</TD><TD>8657</TD><TD>2001-12-28 10:40:14</TD><TD>O6BAA1ORQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O6BAA1OTQ</TD><TD>JUP-SOUTH</TD><TD>60.5814625</TD><TD>19.84555</TD><TD>21</TD><TD>2000-12-28 10:45:46</TD><TD>2000-12-28 10:54:31</TD><TD>525.009</TD><TD>STIS  </TD><TD>52X0.5</TD><TD>E140H</TD><TD>8657</TD><TD>2001-12-28 10:54:31</TD><TD>O6BAA1OTQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O6BAA1OVQ</TD><TD>JUP-SOUTH</TD><TD>60.5805708333</TD><TD>19.8454194444</TD><TD>21</TD><TD>2000-12-28 11:02:35</TD><TD>2000-12-28 11:03:57</TD><TD>82.000</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>8657</TD><TD>2001-12-28 11:03:57</TD><TD>O6BAA1OVQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O6BAA1OWQ</TD><TD>DARK</TD><TD>60.5258291667</TD><TD>19.9147888889</TD><TD>21</TD><TD>2000-12-28 11:04:14</TD><TD>2000-12-28 11:39:14</TD><TD>2100.000</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>8657</TD><TD>2001-12-28 11:39:14</TD><TD>O6BAA1OWQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O6BAB1010</TD><TD>JUP-NORTH</TD><TD>60.5747583333</TD><TD>19.8546805556</TD><TD>21</TD><TD>2000-12-28 11:59:10</TD><TD>2000-12-28 12:15:45</TD><TD>526.100</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>8657</TD><TD>2001-12-28 12:15:45</TD><TD>O6BAB1010</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O6BAB1P6Q</TD><TD>JUP-NORTH</TD><TD>60.5733375</TD><TD>19.8544722222</TD><TD>21</TD><TD>2000-12-28 12:20:40</TD><TD>2000-12-28 12:24:40</TD><TD>240.020</TD><TD>STIS  </TD><TD>F25SRF2</TD><TD>MIRFUV</TD><TD>8657</TD><TD>2001-12-28 12:24:40</TD><TD>O6BAB1P6Q</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O6BAB1020</TD><TD>JUP-NORTH</TD><TD>60.572675</TD><TD>19.854375</TD><TD>21</TD><TD>2000-12-28 12:30:40</TD><TD>2000-12-28 12:37:24</TD><TD>360.000</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>8657</TD><TD>2001-12-28 12:37:24</TD><TD>O6BAB1020</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O6BA06RYQ</TD><TD>JUP-NORTH2</TD><TD>59.4494458333</TD><TD>19.7063916667</TD><TD>21</TD><TD>2001-01-13 16:50:08</TD><TD>2001-01-13 16:51:36</TD><TD>88.000</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>8657</TD><TD>2002-01-13 16:51:36</TD><TD>O6BA06RYQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O6BA06S0Q</TD><TD>JUP-NORTH2</TD><TD>59.4492291667</TD><TD>19.7063722222</TD><TD>21</TD><TD>2001-01-13 16:58:07</TD><TD>2001-01-13 17:06:07</TD><TD>479.971</TD><TD>STIS  </TD><TD>52X0.5</TD><TD>G140M</TD><TD>8657</TD><TD>2002-01-13 17:06:07</TD><TD>O6BA06S0Q</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O6BA06S2Q</TD><TD>JUP-NORTH2</TD><TD>59.4487375</TD><TD>19.7063277778</TD><TD>21</TD><TD>2001-01-13 17:13:50</TD><TD>2001-01-13 17:21:50</TD><TD>479.973</TD><TD>STIS  </TD><TD>52X0.5</TD><TD>G140M</TD><TD>8657</TD><TD>2002-01-13 17:21:50</TD><TD>O6BA06S2Q</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O6BA06S4Q</TD><TD>JUP-NORTH2</TD><TD>59.4482958333</TD><TD>19.7062861111</TD><TD>21</TD><TD>2001-01-13 17:29:44</TD><TD>2001-01-13 17:31:12</TD><TD>88.000</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>8657</TD><TD>2002-01-13 17:31:12</TD><TD>O6BA06S4Q</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O6BA06010</TD><TD>JUP-NORTH2</TD><TD>59.4467416667</TD><TD>19.7061388889</TD><TD>21</TD><TD>2001-01-13 18:19:38</TD><TD>2001-01-13 18:45:02</TD><TD>800.000</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>8657</TD><TD>2002-01-13 18:45:02</TD><TD>O6BA06010</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O6BA06SIQ</TD><TD>JUP-NORTH2</TD><TD>59.4458916667</TD><TD>19.7060611111</TD><TD>21</TD><TD>2001-01-13 18:51:12</TD><TD>2001-01-13 18:56:12</TD><TD>300.020</TD><TD>STIS  </TD><TD>F25SRF2</TD><TD>MIRFUV</TD><TD>8657</TD><TD>2002-01-13 18:56:12</TD><TD>O6BA06SIQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O6BA06SKQ</TD><TD>JUP-NORTH2</TD><TD>59.4455708333</TD><TD>19.7060305556</TD><TD>21</TD><TD>2001-01-13 19:02:12</TD><TD>2001-01-13 19:03:41</TD><TD>89.000</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>8657</TD><TD>2002-01-13 19:03:41</TD><TD>O6BA06SKQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O6BAA6SMQ</TD><TD>JUP-SOUTH2</TD><TD>59.4460125</TD><TD>19.6966416667</TD><TD>21</TD><TD>2001-01-13 19:58:39</TD><TD>2001-01-13 20:00:27</TD><TD>108.000</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>8657</TD><TD>2002-01-13 20:00:27</TD><TD>O6BAA6SMQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O6BAA6SOQ</TD><TD>JUP-SOUTH2</TD><TD>59.4457875</TD><TD>19.6966194444</TD><TD>21</TD><TD>2001-01-13 20:06:49</TD><TD>2001-01-13 20:11:09</TD><TD>260.017</TD><TD>STIS  </TD><TD>52X0.5</TD><TD>G140L</TD><TD>8657</TD><TD>2002-01-13 20:11:09</TD><TD>O6BAA6SOQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O6BAA6SQQ</TD><TD>JUP-SOUTH2</TD><TD>59.4454125</TD><TD>19.6965861111</TD><TD>21</TD><TD>2001-01-13 20:16:39</TD><TD>2001-01-13 20:20:59</TD><TD>260.018</TD><TD>STIS  </TD><TD>52X0.5</TD><TD>G140L</TD><TD>8657</TD><TD>2002-01-13 20:20:59</TD><TD>O6BAA6SQQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O6BAA6SSQ</TD><TD>JUP-SOUTH2</TD><TD>59.4451291667</TD><TD>19.6965583333</TD><TD>21</TD><TD>2001-01-13 20:26:29</TD><TD>2001-01-13 20:30:49</TD><TD>260.019</TD><TD>STIS  </TD><TD>52X0.5</TD><TD>G140L</TD><TD>8657</TD><TD>2002-01-13 20:30:49</TD><TD>O6BAA6SSQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O6BAA6SUQ</TD><TD>JUP-SOUTH2</TD><TD>59.4448625</TD><TD>19.6965333333</TD><TD>21</TD><TD>2001-01-13 20:38:36</TD><TD>2001-01-13 20:40:24</TD><TD>108.000</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>8657</TD><TD>2002-01-13 20:40:24</TD><TD>O6BAA6SUQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O6BAA6010</TD><TD>JUP-SOUTH2</TD><TD>59.4432125</TD><TD>19.6963833333</TD><TD>21</TD><TD>2001-01-13 21:32:26</TD><TD>2001-01-13 21:57:50</TD><TD>800.000</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>8657</TD><TD>2002-01-13 21:57:50</TD><TD>O6BAA6010</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O6BAA6T8Q</TD><TD>JUP-SOUTH2</TD><TD>59.442375</TD><TD>19.6963055556</TD><TD>21</TD><TD>2001-01-13 22:04:00</TD><TD>2001-01-13 22:09:00</TD><TD>232.856</TD><TD>STIS  </TD><TD>F25SRF2</TD><TD>MIRFUV</TD><TD>8657</TD><TD>2002-01-13 22:09:00</TD><TD>O6BAA6T8Q</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O6BAA6TAQ</TD><TD>JUP-SOUTH2</TD><TD>59.4420583333</TD><TD>19.696275</TD><TD>21</TD><TD>2001-01-13 22:15:00</TD><TD>2001-01-13 22:16:29</TD><TD>89.000</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>8657</TD><TD>2002-01-13 22:16:29</TD><TD>O6BAA6TAQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O6BAA6TCQ</TD><TD>JUP-SOUTH2</TD><TD>59.4418708333</TD><TD>19.6962583333</TD><TD>21</TD><TD>2001-01-13 22:18:52</TD><TD>2001-01-13 22:20:40</TD><TD>108.000</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>8657</TD><TD>2002-01-13 22:20:40</TD><TD>O6BAA6TCQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O6BAA6TEQ</TD><TD>JUP-SOUTH2</TD><TD>59.4404291667</TD><TD>19.6961277778</TD><TD>21</TD><TD>2001-01-13 23:12:03</TD><TD>2001-01-13 23:20:33</TD><TD>509.998</TD><TD>STIS  </TD><TD>52X0.5</TD><TD>G140M</TD><TD>8657</TD><TD>2002-01-13 23:20:33</TD><TD>O6BAA6TEQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O6BAA6TGQ</TD><TD>JUP-SOUTH2</TD><TD>59.4399375</TD><TD>19.6960805556</TD><TD>21</TD><TD>2001-01-13 23:28:16</TD><TD>2001-01-13 23:36:46</TD><TD>509.966</TD><TD>STIS  </TD><TD>52X0.5</TD><TD>G140M</TD><TD>8657</TD><TD>2002-01-13 23:36:46</TD><TD>O6BAA6TGQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O6BAA6TIQ</TD><TD>JUP-SOUTH2</TD><TD>59.4394916667</TD><TD>19.6960416667</TD><TD>21</TD><TD>2001-01-13 23:44:40</TD><TD>2001-01-13 23:46:28</TD><TD>108.000</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>8657</TD><TD>2002-01-13 23:46:28</TD><TD>O6BAA6TIQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O6BA07WUQ</TD><TD>JUP-SOUTH2</TD><TD>59.2442416667</TD><TD>19.6859055556</TD><TD>21</TD><TD>2001-01-20 12:41:34</TD><TD>2001-01-20 12:43:02</TD><TD>88.000</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>8657</TD><TD>2002-01-20 12:43:02</TD><TD>O6BA07WUQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O6BA07WWQ</TD><TD>JUP-SOUTH2</TD><TD>59.24415</TD><TD>19.6859083333</TD><TD>21</TD><TD>2001-01-20 12:49:33</TD><TD>2001-01-20 12:57:33</TD><TD>479.951</TD><TD>STIS  </TD><TD>52X0.5</TD><TD>G140M</TD><TD>8657</TD><TD>2002-01-20 12:57:33</TD><TD>O6BA07WWQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O6BA07WYQ</TD><TD>JUP-SOUTH2</TD><TD>59.2439375</TD><TD>19.6859166667</TD><TD>21</TD><TD>2001-01-20 13:05:16</TD><TD>2001-01-20 13:13:16</TD><TD>479.863</TD><TD>STIS  </TD><TD>52X0.5</TD><TD>G140M</TD><TD>8657</TD><TD>2002-01-20 13:13:16</TD><TD>O6BA07WYQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O6BA07X0Q</TD><TD>JUP-SOUTH2</TD><TD>59.24375</TD><TD>19.685925</TD><TD>21</TD><TD>2001-01-20 13:21:10</TD><TD>2001-01-20 13:22:38</TD><TD>88.000</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>8657</TD><TD>2002-01-20 13:22:38</TD><TD>O6BA07X0Q</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O6BA07010</TD><TD>JUP-SOUTH2</TD><TD>59.2430833333</TD><TD>19.6859527778</TD><TD>21</TD><TD>2001-01-20 14:11:08</TD><TD>2001-01-20 14:36:32</TD><TD>800.000</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>8657</TD><TD>2002-01-20 14:36:32</TD><TD>O6BA07010</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O6BA07XEQ</TD><TD>JUP-SOUTH2</TD><TD>59.2427208333</TD><TD>19.6859666667</TD><TD>21</TD><TD>2001-01-20 14:42:42</TD><TD>2001-01-20 14:47:42</TD><TD>266.560</TD><TD>STIS  </TD><TD>F25SRF2</TD><TD>MIRFUV</TD><TD>8657</TD><TD>2002-01-20 14:47:42</TD><TD>O6BA07XEQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O6BA07XGQ</TD><TD>JUP-SOUTH2</TD><TD>59.2425833333</TD><TD>19.685975</TD><TD>21</TD><TD>2001-01-20 14:53:42</TD><TD>2001-01-20 14:55:11</TD><TD>89.000</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>8657</TD><TD>2002-01-20 14:55:11</TD><TD>O6BA07XGQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O6BAA7XIQ</TD><TD>JUP-NORTH2</TD><TD>59.2398041667</TD><TD>19.6952416667</TD><TD>21</TD><TD>2001-01-20 15:50:07</TD><TD>2001-01-20 15:51:55</TD><TD>108.000</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>8657</TD><TD>2002-01-20 15:51:55</TD><TD>O6BAA7XIQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O6BAA7XKQ</TD><TD>JUP-NORTH2</TD><TD>59.2397083333</TD><TD>19.6952472222</TD><TD>21</TD><TD>2001-01-20 15:58:17</TD><TD>2001-01-20 16:02:37</TD><TD>260.019</TD><TD>STIS  </TD><TD>52X0.5</TD><TD>G140L</TD><TD>8657</TD><TD>2002-01-20 16:02:37</TD><TD>O6BAA7XKQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O6BAA7XMQ</TD><TD>JUP-NORTH2</TD><TD>59.23955</TD><TD>19.6952527778</TD><TD>21</TD><TD>2001-01-20 16:08:07</TD><TD>2001-01-20 16:12:27</TD><TD>260.018</TD><TD>STIS  </TD><TD>52X0.5</TD><TD>G140L</TD><TD>8657</TD><TD>2002-01-20 16:12:27</TD><TD>O6BAA7XMQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O6BAA7XOQ</TD><TD>JUP-NORTH2</TD><TD>59.2394291667</TD><TD>19.6952583333</TD><TD>21</TD><TD>2001-01-20 16:17:57</TD><TD>2001-01-20 16:22:17</TD><TD>260.017</TD><TD>STIS  </TD><TD>52X0.5</TD><TD>G140L</TD><TD>8657</TD><TD>2002-01-20 16:22:17</TD><TD>O6BAA7XOQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O6BAA7XQQ</TD><TD>JUP-NORTH2</TD><TD>59.2393166667</TD><TD>19.6952638889</TD><TD>21</TD><TD>2001-01-20 16:30:04</TD><TD>2001-01-20 16:31:52</TD><TD>108.000</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>8657</TD><TD>2002-01-20 16:31:52</TD><TD>O6BAA7XQQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O6BAA7010</TD><TD>JUP-NORTH2</TD><TD>59.2386208333</TD><TD>19.6952972222</TD><TD>21</TD><TD>2001-01-20 17:23:53</TD><TD>2001-01-20 17:49:17</TD><TD>800.000</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>8657</TD><TD>2002-01-20 17:49:17</TD><TD>O6BAA7010</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O6BAA7Y4Q</TD><TD>JUP-NORTH2</TD><TD>59.2382708333</TD><TD>19.6953138889</TD><TD>21</TD><TD>2001-01-20 17:55:27</TD><TD>2001-01-20 18:00:27</TD><TD>252.734</TD><TD>STIS  </TD><TD>F25SRF2</TD><TD>MIRFUV</TD><TD>8657</TD><TD>2002-01-20 18:00:27</TD><TD>O6BAA7Y4Q</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O6BAA7Y6Q</TD><TD>JUP-NORTH2</TD><TD>59.2381375</TD><TD>19.6953222222</TD><TD>21</TD><TD>2001-01-20 18:06:27</TD><TD>2001-01-20 18:07:56</TD><TD>89.000</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>8657</TD><TD>2002-01-20 18:07:56</TD><TD>O6BAA7Y6Q</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O6BAB7Y8Q</TD><TD>JUP-SOUTH2</TD><TD>59.2395458333</TD><TD>19.6861194444</TD><TD>21</TD><TD>2001-01-20 19:02:53</TD><TD>2001-01-20 19:04:23</TD><TD>90.000</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>8657</TD><TD>2002-01-20 19:04:23</TD><TD>O6BAB7Y8Q</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O6BAB7YAQ</TD><TD>JUP-SOUTH2</TD><TD>59.2394541667</TD><TD>19.6861222222</TD><TD>21</TD><TD>2001-01-20 19:10:54</TD><TD>2001-01-20 19:19:24</TD><TD>509.938</TD><TD>STIS  </TD><TD>52X0.5</TD><TD>G140M</TD><TD>8657</TD><TD>2002-01-20 19:19:24</TD><TD>O6BAB7YAQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O6BAB7YCQ</TD><TD>JUP-SOUTH2</TD><TD>59.23925</TD><TD>19.6861333333</TD><TD>21</TD><TD>2001-01-20 19:27:07</TD><TD>2001-01-20 19:35:37</TD><TD>510.009</TD><TD>STIS  </TD><TD>52X0.5</TD><TD>G140M</TD><TD>8657</TD><TD>2002-01-20 19:35:37</TD><TD>O6BAB7YCQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O6BAB7YEQ</TD><TD>JUP-SOUTH2</TD><TD>59.2390666667</TD><TD>19.6861444444</TD><TD>21</TD><TD>2001-01-20 19:43:31</TD><TD>2001-01-20 19:44:43</TD><TD>72.000</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>8657</TD><TD>2002-01-20 19:44:43</TD><TD>O6BAB7YEQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O6BA05AAQ</TD><TD>JUP-SOUTH2</TD><TD>59.2258291667</TD><TD>19.6871666667</TD><TD>21</TD><TD>2001-01-21 16:00:04</TD><TD>2001-01-21 16:01:32</TD><TD>88.000</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>8657</TD><TD>2002-01-21 16:01:32</TD><TD>O6BA05AAQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O6BA05ACQ</TD><TD>JUP-SOUTH2</TD><TD>59.2257541667</TD><TD>19.687175</TD><TD>21</TD><TD>2001-01-21 16:08:03</TD><TD>2001-01-21 16:16:03</TD><TD>479.843</TD><TD>STIS  </TD><TD>52X0.5</TD><TD>G140M</TD><TD>8657</TD><TD>2002-01-21 16:16:03</TD><TD>O6BA05ACQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O6BA05AEQ</TD><TD>JUP-SOUTH2</TD><TD>59.2255916667</TD><TD>19.6871916667</TD><TD>21</TD><TD>2001-01-21 16:23:46</TD><TD>2001-01-21 16:31:46</TD><TD>479.953</TD><TD>STIS  </TD><TD>52X0.5</TD><TD>G140M</TD><TD>8657</TD><TD>2002-01-21 16:31:46</TD><TD>O6BA05AEQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O6BA05AGQ</TD><TD>JUP-SOUTH2</TD><TD>59.2254458333</TD><TD>19.6872083333</TD><TD>21</TD><TD>2001-01-21 16:39:40</TD><TD>2001-01-21 16:41:08</TD><TD>88.000</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>8657</TD><TD>2002-01-21 16:41:08</TD><TD>O6BA05AGQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O6BA05010</TD><TD>JUP-SOUTH2</TD><TD>59.2249333333</TD><TD>19.6872638889</TD><TD>21</TD><TD>2001-01-21 17:29:32</TD><TD>2001-01-21 17:54:56</TD><TD>800.000</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>8657</TD><TD>2002-01-21 17:54:56</TD><TD>O6BA05010</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O6BA05AUQ</TD><TD>JUP-SOUTH2</TD><TD>59.22465</TD><TD>19.6872944444</TD><TD>21</TD><TD>2001-01-21 18:01:06</TD><TD>2001-01-21 18:06:06</TD><TD>254.018</TD><TD>STIS  </TD><TD>F25SRF2</TD><TD>MIRFUV</TD><TD>8657</TD><TD>2002-01-21 18:06:06</TD><TD>O6BA05AUQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O6BA05AWQ</TD><TD>JUP-SOUTH2</TD><TD>59.2245458333</TD><TD>19.6873083333</TD><TD>21</TD><TD>2001-01-21 18:12:06</TD><TD>2001-01-21 18:13:35</TD><TD>89.000</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>8657</TD><TD>2002-01-21 18:13:35</TD><TD>O6BA05AWQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O6BA05AYQ</TD><TD>JUP-SOUTH2</TD><TD>59.2244833333</TD><TD>19.6873138889</TD><TD>21</TD><TD>2001-01-21 18:15:58</TD><TD>2001-01-21 18:17:46</TD><TD>108.000</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>8657</TD><TD>2002-01-21 18:17:46</TD><TD>O6BA05AYQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O6BA05B0Q</TD><TD>JUP-SOUTH2</TD><TD>59.2240083333</TD><TD>19.6873694444</TD><TD>21</TD><TD>2001-01-21 19:09:08</TD><TD>2001-01-21 19:17:38</TD><TD>510.018</TD><TD>STIS  </TD><TD>52X0.5</TD><TD>G140M</TD><TD>8657</TD><TD>2002-01-21 19:17:38</TD><TD>O6BA05B0Q</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O6BA05B2Q</TD><TD>JUP-SOUTH2</TD><TD>59.2238458333</TD><TD>19.6873888889</TD><TD>21</TD><TD>2001-01-21 19:25:21</TD><TD>2001-01-21 19:33:51</TD><TD>509.971</TD><TD>STIS  </TD><TD>52X0.5</TD><TD>G140M</TD><TD>8657</TD><TD>2002-01-21 19:33:51</TD><TD>O6BA05B2Q</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O6BA05B4Q</TD><TD>JUP-SOUTH2</TD><TD>59.2237</TD><TD>19.6874055556</TD><TD>21</TD><TD>2001-01-21 19:41:45</TD><TD>2001-01-21 19:43:33</TD><TD>108.000</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>8657</TD><TD>2002-01-21 19:43:33</TD><TD>O6BA05B4Q</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O6BA05020</TD><TD>JUP-SOUTH2</TD><TD>59.2231041667</TD><TD>19.6874777778</TD><TD>21</TD><TD>2001-01-21 20:42:18</TD><TD>2001-01-21 21:07:42</TD><TD>800.000</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>8657</TD><TD>2002-01-21 21:07:42</TD><TD>O6BA05020</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O6BA05BIQ</TD><TD>JUP-SOUTH2</TD><TD>59.2228333333</TD><TD>19.6875111111</TD><TD>21</TD><TD>2001-01-21 21:13:52</TD><TD>2001-01-21 21:18:52</TD><TD>251.239</TD><TD>STIS  </TD><TD>F25SRF2</TD><TD>MIRFUV</TD><TD>8657</TD><TD>2002-01-21 21:18:52</TD><TD>O6BA05BIQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O6BA05BKQ</TD><TD>JUP-SOUTH2</TD><TD>59.2227291667</TD><TD>19.687525</TD><TD>21</TD><TD>2001-01-21 21:24:52</TD><TD>2001-01-21 21:26:21</TD><TD>89.000</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>8657</TD><TD>2002-01-21 21:26:21</TD><TD>O6BA05BKQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O6BAA5BMQ</TD><TD>JUP-NORTH2</TD><TD>59.220125</TD><TD>19.6968277778</TD><TD>21</TD><TD>2001-01-21 22:21:17</TD><TD>2001-01-21 22:23:05</TD><TD>108.000</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>8657</TD><TD>2002-01-21 22:23:05</TD><TD>O6BAA5BMQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O6BAA5BOQ</TD><TD>JUP-NORTH2</TD><TD>59.2200541667</TD><TD>19.6968361111</TD><TD>21</TD><TD>2001-01-21 22:29:27</TD><TD>2001-01-21 22:33:47</TD><TD>260.018</TD><TD>STIS  </TD><TD>52X0.5</TD><TD>G140L</TD><TD>8657</TD><TD>2002-01-21 22:33:47</TD><TD>O6BAA5BOQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O6BAA5BQQ</TD><TD>JUP-NORTH2</TD><TD>59.2199375</TD><TD>19.69685</TD><TD>21</TD><TD>2001-01-21 22:39:17</TD><TD>2001-01-21 22:43:37</TD><TD>260.017</TD><TD>STIS  </TD><TD>52X0.5</TD><TD>G140L</TD><TD>8657</TD><TD>2002-01-21 22:43:37</TD><TD>O6BAA5BQQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O6BAA5BSQ</TD><TD>JUP-NORTH2</TD><TD>59.21985</TD><TD>19.6968638889</TD><TD>21</TD><TD>2001-01-21 22:49:07</TD><TD>2001-01-21 22:53:27</TD><TD>260.018</TD><TD>STIS  </TD><TD>52X0.5</TD><TD>G140L</TD><TD>8657</TD><TD>2002-01-21 22:53:27</TD><TD>O6BAA5BSQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O6BAA5BUQ</TD><TD>JUP-NORTH2</TD><TD>59.2197666667</TD><TD>19.696875</TD><TD>21</TD><TD>2001-01-21 23:01:14</TD><TD>2001-01-21 23:03:02</TD><TD>108.000</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>8657</TD><TD>2002-01-21 23:03:02</TD><TD>O6BAA5BUQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O5HQ05GQQ</TD><TD>IO-ACQUISITION-BIS</TD><TD>59.236825</TD><TD>19.7029055556</TD><TD>0</TD><TD>2001-01-23 11:18:51</TD><TD>2001-01-23 11:23:57</TD><TD>0.500</TD><TD>STIS  </TD><TD>F28X50LP</TD><TD>MIRVIS</TD><TD>8108</TD><TD>2002-01-23 11:23:57</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O5HQA5GSQ</TD><TD>CP1-JUPITER-BULGE-CML</TD><TD>59.2051208333</TD><TD>19.6953722222</TD><TD>0</TD><TD>2001-01-23 11:33:58</TD><TD>2001-01-23 12:02:58</TD><TD>1740.194</TD><TD>STIS  </TD><TD>52X0.5</TD><TD>E140H</TD><TD>8108</TD><TD>2002-01-23 12:02:58</TD><TD>O5HQA5GSQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O5HQB5GUQ</TD><TD>CP1-JUP-ANTIBLG-LIMB-B</TD><TD>59.210575</TD><TD>19.6970194444</TD><TD>0</TD><TD>2001-01-23 12:54:04</TD><TD>2001-01-23 13:13:04</TD><TD>1140.195</TD><TD>STIS  </TD><TD>52X0.5</TD><TD>E140H</TD><TD>8108</TD><TD>2002-01-23 13:13:04</TD><TD>O5HQB5GUQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O5HQB5GWQ</TD><TD>CP1-JUP-ANTIBLG-LIMB-B</TD><TD>59.2104458333</TD><TD>19.6970694444</TD><TD>0</TD><TD>2001-01-23 13:16:34</TD><TD>2001-01-23 13:34:34</TD><TD>1080.189</TD><TD>STIS  </TD><TD>52X0.5</TD><TD>E140H</TD><TD>8108</TD><TD>2002-01-23 13:34:34</TD><TD>O5HQB5GWQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O5HQC5GYQ</TD><TD>CP1-JUP-SOUTH-LIMB-A</TD><TD>59.1985458333</TD><TD>19.6938583333</TD><TD>0</TD><TD>2001-01-23 14:30:26</TD><TD>2001-01-23 14:49:26</TD><TD>1140.197</TD><TD>STIS  </TD><TD>52X0.5</TD><TD>E140H</TD><TD>8108</TD><TD>2002-01-23 14:49:26</TD><TD>O5HQC5GYQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O5HQC5H0Q</TD><TD>CP1-JUP-SOUTH-LIMB-A</TD><TD>59.1984208333</TD><TD>19.6939083333</TD><TD>0</TD><TD>2001-01-23 14:52:56</TD><TD>2001-01-23 15:10:56</TD><TD>1080.191</TD><TD>STIS  </TD><TD>52X0.5</TD><TD>E140H</TD><TD>8108</TD><TD>2002-01-23 15:10:56</TD><TD>O5HQC5H0Q</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O5HQ07I4Q</TD><TD>IO-ACQUISITION-BIS</TD><TD>59.2320916667</TD><TD>19.7013388889</TD><TD>0</TD><TD>2001-01-23 19:21:22</TD><TD>2001-01-23 19:26:28</TD><TD>0.500</TD><TD>STIS  </TD><TD>F28X50LP</TD><TD>MIRVIS</TD><TD>8108</TD><TD>2002-01-23 19:26:28</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O5HQA7I6Q</TD><TD>CP1-JUP-BULGE-LIMB-B</TD><TD>59.2086416667</TD><TD>19.6978333333</TD><TD>0</TD><TD>2001-01-23 19:36:29</TD><TD>2001-01-23 20:05:29</TD><TD>1740.195</TD><TD>STIS  </TD><TD>52X0.5</TD><TD>E140H</TD><TD>8108</TD><TD>2002-01-23 20:05:29</TD><TD>O5HQA7I6Q</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O5HQB7I8Q</TD><TD>CP1-JUPITER-BULGE-CML</TD><TD>59.202425</TD><TD>19.6965111111</TD><TD>0</TD><TD>2001-01-23 20:55:56</TD><TD>2001-01-23 21:14:56</TD><TD>1140.195</TD><TD>STIS  </TD><TD>52X0.5</TD><TD>E140H</TD><TD>8108</TD><TD>2002-01-23 21:14:56</TD><TD>O5HQB7I8Q</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O5HQB7IAQ</TD><TD>CP1-JUPITER-BULGE-CML</TD><TD>59.2023208333</TD><TD>19.6965638889</TD><TD>0</TD><TD>2001-01-23 21:18:26</TD><TD>2001-01-23 21:36:26</TD><TD>1080.195</TD><TD>STIS  </TD><TD>52X0.5</TD><TD>E140H</TD><TD>8108</TD><TD>2002-01-23 21:36:26</TD><TD>O5HQB7IAQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O5HQ06P5Q</TD><TD>IO-ACQUISITION-BIS</TD><TD>59.1656416667</TD><TD>19.7012055556</TD><TD>0</TD><TD>2001-01-26 10:00:04</TD><TD>2001-01-26 10:05:10</TD><TD>0.500</TD><TD>STIS  </TD><TD>F28X50LP</TD><TD>MIRVIS</TD><TD>8108</TD><TD>2002-01-26 10:05:10</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O5HQA6P7Q</TD><TD>CP1-JUP-BULGE-LIMB-A</TD><TD>59.1923416667</TD><TD>19.7057083333</TD><TD>0</TD><TD>2001-01-26 10:15:11</TD><TD>2001-01-26 10:44:11</TD><TD>1740.188</TD><TD>STIS  </TD><TD>52X0.5</TD><TD>E140H</TD><TD>8108</TD><TD>2002-01-26 10:44:11</TD><TD>O5HQA6P7Q</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O5HQB6P9Q</TD><TD>CP1-JUP-NORTH-LIMB-A</TD><TD>59.1924666667</TD><TD>19.7079194444</TD><TD>0</TD><TD>2001-01-26 11:34:33</TD><TD>2001-01-26 11:53:33</TD><TD>1140.189</TD><TD>STIS  </TD><TD>52X0.5</TD><TD>E140H</TD><TD>8108</TD><TD>2002-01-26 11:53:33</TD><TD>O5HQB6P9Q</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O5HQB6PBQ</TD><TD>CP1-JUP-NORTH-LIMB-A</TD><TD>59.1925208333</TD><TD>19.7080055556</TD><TD>0</TD><TD>2001-01-26 11:57:03</TD><TD>2001-01-26 12:15:03</TD><TD>1080.196</TD><TD>STIS  </TD><TD>52X0.5</TD><TD>E140H</TD><TD>8108</TD><TD>2002-01-26 12:15:03</TD><TD>O5HQB6PBQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O5HQC6PDQ</TD><TD>CP1-JUP-ANTIBLG-LIMB-A</TD><TD>59.1927333333</TD><TD>19.7063027778</TD><TD>0</TD><TD>2001-01-26 13:10:55</TD><TD>2001-01-26 13:10:55</TD><TD>0.000</TD><TD>STIS  </TD><TD>52X0.5</TD><TD>E140H</TD><TD>8108</TD><TD>2006-11-23 19:13:05</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O5HQC6PFQ</TD><TD>CP1-JUP-ANTIBLG-LIMB-A</TD><TD>59.1927958333</TD><TD>19.7063888889</TD><TD>0</TD><TD>2001-01-26 13:33:25</TD><TD>2001-01-26 13:33:25</TD><TD>0.000</TD><TD>STIS  </TD><TD>52X0.5</TD><TD>E140H</TD><TD>8108</TD><TD>2006-12-20 15:48:04</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O43B22LXQ</TD><TD>JUP-AUR-NORTH</TD><TD>59.2774791667</TD><TD>19.7514222222</TD><TD>15</TD><TD>2001-02-01 08:56:31</TD><TD>2001-02-01 09:01:31</TD><TD>300.000</TD><TD>STIS  </TD><TD>F25QTZ</TD><TD>MIRFUV</TD><TD>7308</TD><TD>2002-02-01 09:01:31</TD><TD>O43B22LXQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O43B22010</TD><TD>JUP-AUR-NORTH</TD><TD>59.2776375</TD><TD>19.7514805556</TD><TD>15</TD><TD>2001-02-01 09:06:32</TD><TD>2001-02-01 09:29:16</TD><TD>640.000</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>7308</TD><TD>2002-02-01 09:29:16</TD><TD>O43B22010</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O43B22MBQ</TD><TD>JUP-AUR-NORTH</TD><TD>59.278125</TD><TD>19.7516611111</TD><TD>15</TD><TD>2001-02-01 09:35:32</TD><TD>2001-02-01 09:40:57</TD><TD>325.000</TD><TD>STIS  </TD><TD>F25QTZ</TD><TD>MIRFUV</TD><TD>7308</TD><TD>2002-02-01 09:40:57</TD><TD>O43B22MBQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O8K802010</TD><TD>JUPITER-NORTH-SPOT-SHORTVISIT</TD><TD>132.9596</TD><TD>18.5308722222</TD><TD>5</TD><TD>2003-02-24 18:03:43</TD><TD>2003-02-24 18:28:15</TD><TD>1296.000</TD><TD>STIS  </TD><TD>F25SRF2</TD><TD>MIRFUV</TD><TD>9685</TD><TD>2004-02-24 18:28:15</TD><TD>O8K802010</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O8K802FVQ</TD><TD>JUPITER-NORTH-SPOT-SHORTVISIT</TD><TD>132.956716667</TD><TD>18.5316722222</TD><TD>5</TD><TD>2003-02-24 18:30:38</TD><TD>2003-02-24 18:35:38</TD><TD>300.020</TD><TD>STIS  </TD><TD>F25SRF2</TD><TD>MIRFUV</TD><TD>9685</TD><TD>2004-02-24 18:35:38</TD><TD>O8K802FVQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O8K802G0Q</TD><TD>JUPITER-NORTH-SPOT-SHORTVISIT</TD><TD>132.9503375</TD><TD>18.5334527778</TD><TD>5</TD><TD>2003-02-24 19:32:45</TD><TD>2003-02-24 19:37:45</TD><TD>300.020</TD><TD>STIS  </TD><TD>F25SRF2</TD><TD>MIRFUV</TD><TD>9685</TD><TD>2004-02-24 19:37:45</TD><TD>O8K802G0Q</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O8K802020</TD><TD>JUPITER-NORTH-SPOT-SHORTVISIT</TD><TD>132.949466667</TD><TD>18.5336944444</TD><TD>5</TD><TD>2003-02-24 19:41:13</TD><TD>2003-02-24 20:05:45</TD><TD>1296.000</TD><TD>STIS  </TD><TD>F25SRF2</TD><TD>MIRFUV</TD><TD>9685</TD><TD>2004-02-24 20:05:45</TD><TD>O8K802020</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O8K801010</TD><TD>JUPITER-NORTH-SPOT-LONGVISIT</TD><TD>132.828416667</TD><TD>18.5663277778</TD><TD>5</TD><TD>2003-02-25 22:52:25</TD><TD>2003-02-25 23:03:07</TD><TD>576.000</TD><TD>STIS  </TD><TD>F25SRF2</TD><TD>MIRFUV</TD><TD>9685</TD><TD>2004-02-25 23:03:07</TD><TD>O8K801010</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O8K801020</TD><TD>JUPITER-NORTH-SPOT-LONGVISIT</TD><TD>132.827258333</TD><TD>18.5666416667</TD><TD>5</TD><TD>2003-02-25 23:06:41</TD><TD>2003-02-25 23:22:54</TD><TD>864.000</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>9685</TD><TD>2004-02-25 23:22:54</TD><TD>O8K801020</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O8K801PQQ</TD><TD>JUPITER-NORTH-SPOT-LONGVISIT</TD><TD>132.825416667</TD><TD>18.5671444444</TD><TD>5</TD><TD>2003-02-25 23:27:49</TD><TD>2003-02-25 23:32:49</TD><TD>300.020</TD><TD>STIS  </TD><TD>F25SRF2</TD><TD>MIRFUV</TD><TD>9685</TD><TD>2004-02-25 23:32:49</TD><TD>O8K801PQQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O8K801PVQ</TD><TD>JUPITER-NORTH-SPOT-LONGVISIT</TD><TD>132.820054167</TD><TD>18.568625</TD><TD>5</TD><TD>2003-02-26 00:21:39</TD><TD>2003-02-26 00:26:39</TD><TD>300.020</TD><TD>STIS  </TD><TD>F25SRF2</TD><TD>MIRFUV</TD><TD>9685</TD><TD>2004-02-26 00:26:39</TD><TD>O8K801PVQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O8K801030</TD><TD>JUPITER-NORTH-SPOT-LONGVISIT</TD><TD>132.819208333</TD><TD>18.5688583333</TD><TD>5</TD><TD>2003-02-26 00:32:39</TD><TD>2003-02-26 00:51:39</TD><TD>1008.000</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>9685</TD><TD>2004-02-26 00:51:39</TD><TD>O8K801030</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O8K801QBQ</TD><TD>JUPITER-NORTH-SPOT-LONGVISIT</TD><TD>132.816791667</TD><TD>18.5695305556</TD><TD>5</TD><TD>2003-02-26 00:56:34</TD><TD>2003-02-26 01:01:34</TD><TD>300.020</TD><TD>STIS  </TD><TD>F25SRF2</TD><TD>MIRFUV</TD><TD>9685</TD><TD>2004-02-26 01:01:34</TD><TD>O8K801QBQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O8K801QGQ</TD><TD>JUPITER-NORTH-SPOT-LONGVISIT</TD><TD>132.810416667</TD><TD>18.5713</TD><TD>5</TD><TD>2003-02-26 01:57:42</TD><TD>2003-02-26 02:02:42</TD><TD>300.020</TD><TD>STIS  </TD><TD>F25SRF2</TD><TD>MIRFUV</TD><TD>9685</TD><TD>2004-02-26 02:02:42</TD><TD>O8K801QGQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O8K801040</TD><TD>JUPITER-NORTH-SPOT-LONGVISIT</TD><TD>132.809604167</TD><TD>18.571525</TD><TD>5</TD><TD>2003-02-26 02:08:42</TD><TD>2003-02-26 02:24:57</TD><TD>864.000</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>9685</TD><TD>2004-02-26 02:24:57</TD><TD>O8K801040</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O8K801050</TD><TD>JUPITER-NORTH-SPOT-LONGVISIT</TD><TD>132.807754167</TD><TD>18.5720388889</TD><TD>5</TD><TD>2003-02-26 02:28:29</TD><TD>2003-02-26 02:39:11</TD><TD>576.000</TD><TD>STIS  </TD><TD>F25SRF2</TD><TD>MIRFUV</TD><TD>9685</TD><TD>2004-02-26 02:39:11</TD><TD>O8K801050</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O8M301AWQ</TD><TD>GANYMEDE</TD><TD>168.481070833</TD><TD>6.11013888889</TD><TD>0</TD><TD>2003-11-30 20:36:58</TD><TD>2003-11-30 20:42:24</TD><TD>0.300</TD><TD>STIS  </TD><TD>F28X50LP</TD><TD>MIRVIS</TD><TD>9296</TD><TD>2007-01-23 16:08:51</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O8M301010</TD><TD>GANYMEDE</TD><TD>168.480466667</TD><TD>6.10902222222</TD><TD>0</TD><TD>2003-11-30 20:49:13</TD><TD>2003-11-30 21:02:53</TD><TD>820.195</TD><TD>STIS  </TD><TD>52X2</TD><TD>G140L</TD><TD>9296</TD><TD>2004-11-30 21:02:53</TD><TD>O8M301010</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O8M301020</TD><TD>GANYMEDE</TD><TD>168.482304167</TD><TD>6.10826388889</TD><TD>0</TD><TD>2003-11-30 21:06:21</TD><TD>2003-11-30 21:20:01</TD><TD>820.200</TD><TD>STIS  </TD><TD>52X2</TD><TD>G140L</TD><TD>9296</TD><TD>2004-11-30 21:20:01</TD><TD>O8M301020</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O8M301030</TD><TD>GANYMEDE</TD><TD>168.4888625</TD><TD>6.10555833333</TD><TD>0</TD><TD>2003-11-30 22:09:41</TD><TD>2003-11-30 22:28:01</TD><TD>1100.198</TD><TD>STIS  </TD><TD>52X2</TD><TD>G140L</TD><TD>9296</TD><TD>2004-11-30 22:28:01</TD><TD>O8M301030</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O8M301040</TD><TD>GANYMEDE</TD><TD>168.49145</TD><TD>6.10449166667</TD><TD>0</TD><TD>2003-11-30 22:35:14</TD><TD>2003-11-30 22:53:34</TD><TD>1100.200</TD><TD>STIS  </TD><TD>52X2</TD><TD>G140L</TD><TD>9296</TD><TD>2004-11-30 22:53:34</TD><TD>O8M301040</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J8M3A1BGQ</TD><TD>GANYMEDE</TD><TD>168.500708333</TD><TD>6.10203888889</TD><TD>0</TD><TD>2003-11-30 23:46:50</TD><TD>2003-12-01 00:07:16</TD><TD>1225.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F125LP;N/A;F125LP</TD><TD>9296</TD><TD>2004-12-02 20:26:36</TD><TD>J8M3A1BGQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J8M3A1BHQ</TD><TD>GANYMEDE</TD><TD>168.5029875</TD><TD>6.10109722222</TD><TD>0</TD><TD>2003-12-01 00:08:22</TD><TD>2003-12-01 00:28:48</TD><TD>1225.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F150LP;N/A;F150LP</TD><TD>9296</TD><TD>2004-12-02 20:26:37</TD><TD>J8M3A1BHQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J8M3A1BIQ</TD><TD>GANYMEDE</TD><TD>168.510745833</TD><TD>6.0979</TD><TD>0</TD><TD>2003-12-01 01:22:09</TD><TD>2003-12-01 01:43:00</TD><TD>1250.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F125LP;N/A;F125LP</TD><TD>9296</TD><TD>2004-12-02 20:26:38</TD><TD>J8M3A1BIQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J8M3A1BJQ</TD><TD>GANYMEDE</TD><TD>168.513058333</TD><TD>6.09694722222</TD><TD>0</TD><TD>2003-12-01 01:44:06</TD><TD>2003-12-01 02:04:57</TD><TD>1250.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F150LP;N/A;F150LP</TD><TD>9296</TD><TD>2004-12-02 20:26:40</TD><TD>J8M3A1BJQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J8M3B1011</TD><TD>GANYMEDE-ECL</TD><TD>168.5208875</TD><TD>6.09371944444</TD><TD>0</TD><TD>2003-12-01 02:58:51</TD><TD>2003-12-01 03:23:56</TD><TD>1410.000</TD><TD>ACS   </TD><TD>HRC</TD><TD>CLEAR1S;FR656N</TD><TD>9296</TD><TD>2004-12-02 20:26:46</TD><TD>J8M3B1011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J8M3B1021</TD><TD>GANYMEDE-ECL</TD><TD>168.523770833</TD><TD>6.09253333333</TD><TD>0</TD><TD>2003-12-01 03:24:54</TD><TD>2003-12-01 03:41:22</TD><TD>940.000</TD><TD>ACS   </TD><TD>HRC</TD><TD>CLEAR1S;FR656N</TD><TD>9296</TD><TD>2004-12-02 20:26:48</TD><TD>J8M3B1021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O8WI02C6Q</TD><TD>SATURN-AURORA-SOUTH</TD><TD>99.8578416667</TD><TD>22.4705611111</TD><TD>17</TD><TD>2004-01-08 04:25:59</TD><TD>2004-01-08 04:36:39</TD><TD>640.199</TD><TD>STIS  </TD><TD>F25SRF2</TD><TD>MIRFUV</TD><TD>10083</TD><TD>2004-01-08 06:41:51</TD><TD>O8WI02C6Q</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O8WI02010</TD><TD>SATURN-AURORA-SOUTH</TD><TD>99.8568416667</TD><TD>22.4706444444</TD><TD>17</TD><TD>2004-01-08 04:42:39</TD><TD>2004-01-08 04:52:01</TD><TD>540.000</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>10083</TD><TD>2004-01-08 06:44:53</TD><TD>O8WI02010</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O8WI02CCQ</TD><TD>SATURN-AURORA-SOUTH</TD><TD>99.855975</TD><TD>22.4707194444</TD><TD>17</TD><TD>2004-01-08 04:56:56</TD><TD>2004-01-08 05:07:36</TD><TD>640.200</TD><TD>STIS  </TD><TD>F25SRF2</TD><TD>MIRFUV</TD><TD>10083</TD><TD>2004-01-08 10:35:43</TD><TD>O8WI02CCQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O8WI02CHQ</TD><TD>SATURN-AURORA-SOUTH</TD><TD>99.8520791667</TD><TD>22.4710527778</TD><TD>17</TD><TD>2004-01-08 05:58:25</TD><TD>2004-01-08 06:10:45</TD><TD>740.199</TD><TD>STIS  </TD><TD>F25SRF2</TD><TD>MIRFUV</TD><TD>10083</TD><TD>2004-01-08 10:45:17</TD><TD>O8WI02CHQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O8WI02020</TD><TD>SATURN-AURORA-SOUTH</TD><TD>99.8511166667</TD><TD>22.4711333333</TD><TD>17</TD><TD>2004-01-08 06:16:45</TD><TD>2004-01-08 06:26:07</TD><TD>540.000</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>10083</TD><TD>2004-01-08 10:47:48</TD><TD>O8WI02020</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O8WI02CNQ</TD><TD>SATURN-AURORA-SOUTH</TD><TD>99.85025</TD><TD>22.4712083333</TD><TD>17</TD><TD>2004-01-08 06:31:02</TD><TD>2004-01-08 06:43:22</TD><TD>740.200</TD><TD>STIS  </TD><TD>F25SRF2</TD><TD>MIRFUV</TD><TD>10083</TD><TD>2004-01-08 11:35:59</TD><TD>O8WI02CNQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O8WI02CSQ</TD><TD>SATURN-AURORA-SOUTH</TD><TD>99.8462416667</TD><TD>22.47155</TD><TD>17</TD><TD>2004-01-08 07:34:24</TD><TD>2004-01-08 07:46:44</TD><TD>740.200</TD><TD>STIS  </TD><TD>F25SRF2</TD><TD>MIRFUV</TD><TD>10083</TD><TD>2004-01-08 12:36:12</TD><TD>O8WI02CSQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O8WI02030</TD><TD>SATURN-AURORA-SOUTH</TD><TD>99.8452791667</TD><TD>22.4716333333</TD><TD>17</TD><TD>2004-01-08 07:52:44</TD><TD>2004-01-08 08:02:06</TD><TD>540.000</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>10083</TD><TD>2004-01-08 12:38:43</TD><TD>O8WI02030</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O8WI02CYQ</TD><TD>SATURN-AURORA-SOUTH</TD><TD>99.8444125</TD><TD>22.4717083333</TD><TD>17</TD><TD>2004-01-08 08:07:01</TD><TD>2004-01-08 08:19:21</TD><TD>740.200</TD><TD>STIS  </TD><TD>F25SRF2</TD><TD>MIRFUV</TD><TD>10083</TD><TD>2004-01-08 21:17:38</TD><TD>O8WI02CYQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O8WI02D3Q</TD><TD>SATURN-AURORA-SOUTH</TD><TD>99.8404041667</TD><TD>22.47205</TD><TD>17</TD><TD>2004-01-08 09:10:23</TD><TD>2004-01-08 09:22:43</TD><TD>740.200</TD><TD>STIS  </TD><TD>F25SRF2</TD><TD>MIRFUV</TD><TD>10083</TD><TD>2004-01-08 21:26:11</TD><TD>O8WI02D3Q</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O8WI02040</TD><TD>SATURN-AURORA-SOUTH</TD><TD>99.8394416667</TD><TD>22.4721305556</TD><TD>17</TD><TD>2004-01-08 09:28:43</TD><TD>2004-01-08 09:38:05</TD><TD>540.000</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>10083</TD><TD>2004-01-08 21:28:42</TD><TD>O8WI02040</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O8WI02D9Q</TD><TD>SATURN-AURORA-SOUTH</TD><TD>99.838575</TD><TD>22.4722055556</TD><TD>17</TD><TD>2004-01-08 09:43:00</TD><TD>2004-01-08 09:55:20</TD><TD>740.200</TD><TD>STIS  </TD><TD>F25SRF2</TD><TD>MIRFUV</TD><TD>10083</TD><TD>2004-01-08 21:37:15</TD><TD>O8WI02D9Q</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O8WI02DEQ</TD><TD>SATURN-AURORA-SOUTH</TD><TD>99.8345666667</TD><TD>22.4725472222</TD><TD>17</TD><TD>2004-01-08 10:46:22</TD><TD>2004-01-08 10:58:42</TD><TD>740.200</TD><TD>STIS  </TD><TD>F25SRF2</TD><TD>MIRFUV</TD><TD>10083</TD><TD>2004-01-08 21:47:50</TD><TD>O8WI02DEQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O8WI02050</TD><TD>SATURN-AURORA-SOUTH</TD><TD>99.8336083333</TD><TD>22.4726305556</TD><TD>17</TD><TD>2004-01-08 11:04:42</TD><TD>2004-01-08 11:14:04</TD><TD>540.000</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>10083</TD><TD>2004-01-08 21:50:21</TD><TD>O8WI02050</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O8WI02DKQ</TD><TD>SATURN-AURORA-SOUTH</TD><TD>99.8327375</TD><TD>22.4727027778</TD><TD>17</TD><TD>2004-01-08 11:18:59</TD><TD>2004-01-08 11:31:19</TD><TD>740.200</TD><TD>STIS  </TD><TD>F25SRF2</TD><TD>MIRFUV</TD><TD>10083</TD><TD>2004-01-08 22:00:26</TD><TD>O8WI02DKQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O8WI01S1Q</TD><TD>SATURN-AURORA-SOUTH</TD><TD>99.6834625</TD><TD>22.485425</TD><TD>17</TD><TD>2004-01-10 04:24:35</TD><TD>2004-01-10 04:35:15</TD><TD>640.200</TD><TD>STIS  </TD><TD>F25SRF2</TD><TD>MIRFUV</TD><TD>10083</TD><TD>2004-01-10 08:59:51</TD><TD>O8WI01S1Q</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O8WI01010</TD><TD>SATURN-AURORA-SOUTH</TD><TD>99.682475</TD><TD>22.4855083333</TD><TD>17</TD><TD>2004-01-10 04:41:15</TD><TD>2004-01-10 04:50:37</TD><TD>540.000</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>10083</TD><TD>2004-01-10 09:02:22</TD><TD>O8WI01010</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O8WI01S7Q</TD><TD>SATURN-AURORA-SOUTH</TD><TD>99.6816125</TD><TD>22.4855805556</TD><TD>17</TD><TD>2004-01-10 04:55:32</TD><TD>2004-01-10 05:06:12</TD><TD>640.200</TD><TD>STIS  </TD><TD>F25SRF2</TD><TD>MIRFUV</TD><TD>10083</TD><TD>2004-01-10 09:10:25</TD><TD>O8WI01S7Q</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O8WI03DSQ</TD><TD>SATURN-AURORA-SOUTH</TD><TD>99.4937708333</TD><TD>22.5015305556</TD><TD>17</TD><TD>2004-01-12 09:11:59</TD><TD>2004-01-12 09:22:39</TD><TD>640.200</TD><TD>STIS  </TD><TD>F25SRF2</TD><TD>MIRFUV</TD><TD>10083</TD><TD>2004-01-12 17:07:21</TD><TD>O8WI03DSQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O8WI03010</TD><TD>SATURN-AURORA-SOUTH</TD><TD>99.4927916667</TD><TD>22.5016138889</TD><TD>17</TD><TD>2004-01-12 09:28:39</TD><TD>2004-01-12 09:38:01</TD><TD>540.000</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>10083</TD><TD>2004-01-12 17:07:24</TD><TD>O8WI03010</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O8WI03DYQ</TD><TD>SATURN-AURORA-SOUTH</TD><TD>99.4919458333</TD><TD>22.5016861111</TD><TD>17</TD><TD>2004-01-12 09:42:56</TD><TD>2004-01-12 09:53:36</TD><TD>640.199</TD><TD>STIS  </TD><TD>F25SRF2</TD><TD>MIRFUV</TD><TD>10083</TD><TD>2004-01-12 17:07:23</TD><TD>O8WI03DYQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O8WI04RTQ</TD><TD>SATURN-AURORA-SOUTH</TD><TD>99.3406083333</TD><TD>22.5144972222</TD><TD>17</TD><TD>2004-01-14 04:23:29</TD><TD>2004-01-14 04:35:09</TD><TD>700.199</TD><TD>STIS  </TD><TD>F25SRF2</TD><TD>MIRFUV</TD><TD>10083</TD><TD>2004-01-14 10:43:27</TD><TD>O8WI04RTQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O8WI04010</TD><TD>SATURN-AURORA-SOUTH</TD><TD>99.3395875</TD><TD>22.5145861111</TD><TD>17</TD><TD>2004-01-14 04:41:09</TD><TD>2004-01-14 04:50:31</TD><TD>540.000</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>10083</TD><TD>2004-01-14 10:46:00</TD><TD>O8WI04010</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O8WI04RZQ</TD><TD>SATURN-AURORA-SOUTH</TD><TD>99.33875</TD><TD>22.5146555556</TD><TD>17</TD><TD>2004-01-14 04:55:26</TD><TD>2004-01-14 05:07:06</TD><TD>700.200</TD><TD>STIS  </TD><TD>F25SRF2</TD><TD>MIRFUV</TD><TD>10083</TD><TD>2004-01-14 10:54:03</TD><TD>O8WI04RZQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O8WI05H2Q</TD><TD>SATURN-AURORA-SOUTH</TD><TD>99.1840375</TD><TD>22.5277333333</TD><TD>17</TD><TD>2004-01-16 01:11:02</TD><TD>2004-01-16 01:22:42</TD><TD>700.200</TD><TD>STIS  </TD><TD>F25SRF2</TD><TD>MIRFUV</TD><TD>10083</TD><TD>2004-01-16 06:26:45</TD><TD>O8WI05H2Q</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O8WI05010</TD><TD>SATURN-AURORA-SOUTH</TD><TD>99.1830291667</TD><TD>22.5278166667</TD><TD>17</TD><TD>2004-01-16 01:28:42</TD><TD>2004-01-16 01:38:04</TD><TD>540.000</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>10083</TD><TD>2004-01-16 06:29:46</TD><TD>O8WI05010</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O8WI05HAQ</TD><TD>SATURN-AURORA-SOUTH</TD><TD>99.1822041667</TD><TD>22.5278888889</TD><TD>17</TD><TD>2004-01-16 01:42:59</TD><TD>2004-01-16 01:54:39</TD><TD>700.199</TD><TD>STIS  </TD><TD>F25SRF2</TD><TD>MIRFUV</TD><TD>10083</TD><TD>2004-01-16 07:58:00</TD><TD>O8WI05HAQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O8WI06BAQ</TD><TD>SATURN-AURORA-SOUTH</TD><TD>99.0083083333</TD><TD>22.542575</TD><TD>17</TD><TD>2004-01-18 04:22:34</TD><TD>2004-01-18 04:34:14</TD><TD>700.200</TD><TD>STIS  </TD><TD>F25SRF2</TD><TD>MIRFUV</TD><TD>10083</TD><TD>2004-01-18 12:37:22</TD><TD>O8WI06BAQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O8WI06010</TD><TD>SATURN-AURORA-SOUTH</TD><TD>99.007325</TD><TD>22.5426583333</TD><TD>17</TD><TD>2004-01-18 04:40:14</TD><TD>2004-01-18 04:49:36</TD><TD>540.000</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>10083</TD><TD>2004-01-18 09:21:01</TD><TD>O8WI06010</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O8WI06BGQ</TD><TD>SATURN-AURORA-SOUTH</TD><TD>99.0065166667</TD><TD>22.542725</TD><TD>17</TD><TD>2004-01-18 04:54:31</TD><TD>2004-01-18 05:06:11</TD><TD>700.200</TD><TD>STIS  </TD><TD>F25SRF2</TD><TD>MIRFUV</TD><TD>10083</TD><TD>2004-01-18 09:27:44</TD><TD>O8WI06BGQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O8WI07KOQ</TD><TD>SATURN-AURORA-SOUTH</TD><TD>98.8576833333</TD><TD>22.5553</TD><TD>17</TD><TD>2004-01-20 01:10:45</TD><TD>2004-01-20 01:22:25</TD><TD>700.199</TD><TD>STIS  </TD><TD>F25SRF2</TD><TD>MIRFUV</TD><TD>10083</TD><TD>2004-01-20 15:47:13</TD><TD>O8WI07KOQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O8WI07010</TD><TD>SATURN-AURORA-SOUTH</TD><TD>98.8567166667</TD><TD>22.5553805556</TD><TD>17</TD><TD>2004-01-20 01:28:25</TD><TD>2004-01-20 01:37:47</TD><TD>540.000</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>10083</TD><TD>2004-01-20 12:36:09</TD><TD>O8WI07010</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O8WI07KUQ</TD><TD>SATURN-AURORA-SOUTH</TD><TD>98.855925</TD><TD>22.5554472222</TD><TD>17</TD><TD>2004-01-20 01:42:42</TD><TD>2004-01-20 01:54:22</TD><TD>700.199</TD><TD>STIS  </TD><TD>F25SRF2</TD><TD>MIRFUV</TD><TD>10083</TD><TD>2004-01-20 12:44:12</TD><TD>O8WI07KUQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O8WI08B5Q</TD><TD>SATURN-AURORA-SOUTH</TD><TD>98.7155833333</TD><TD>22.5673222222</TD><TD>17</TD><TD>2004-01-21 20:22:35</TD><TD>2004-01-21 20:34:15</TD><TD>700.200</TD><TD>STIS  </TD><TD>F25SRF2</TD><TD>MIRFUV</TD><TD>10083</TD><TD>2004-01-22 02:56:27</TD><TD>O8WI08B5Q</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O8WI08010</TD><TD>SATURN-AURORA-SOUTH</TD><TD>98.7146375</TD><TD>22.5674027778</TD><TD>17</TD><TD>2004-01-21 20:40:15</TD><TD>2004-01-21 20:49:37</TD><TD>540.000</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>10083</TD><TD>2004-01-22 02:59:29</TD><TD>O8WI08010</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O8WI08BDQ</TD><TD>SATURN-AURORA-SOUTH</TD><TD>98.7138625</TD><TD>22.5674666667</TD><TD>17</TD><TD>2004-01-21 20:54:32</TD><TD>2004-01-21 21:06:12</TD><TD>700.200</TD><TD>STIS  </TD><TD>F25SRF2</TD><TD>MIRFUV</TD><TD>10083</TD><TD>2004-01-22 03:06:21</TD><TD>O8WI08BDQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O8WI09MOQ</TD><TD>SATURN-AURORA-SOUTH</TD><TD>98.6125125</TD><TD>22.5760638889</TD><TD>17</TD><TD>2004-01-23 04:21:41</TD><TD>2004-01-23 04:33:21</TD><TD>700.200</TD><TD>STIS  </TD><TD>F25SRF2</TD><TD>MIRFUV</TD><TD>10083</TD><TD>2004-01-23 08:20:41</TD><TD>O8WI09MOQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O8WI09010</TD><TD>SATURN-AURORA-SOUTH</TD><TD>98.6115875</TD><TD>22.5761416667</TD><TD>17</TD><TD>2004-01-23 04:39:21</TD><TD>2004-01-23 04:48:43</TD><TD>540.000</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>10083</TD><TD>2004-01-23 08:23:12</TD><TD>O8WI09010</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O8WI09MUQ</TD><TD>SATURN-AURORA-SOUTH</TD><TD>98.610825</TD><TD>22.5762083333</TD><TD>17</TD><TD>2004-01-23 04:53:38</TD><TD>2004-01-23 05:05:18</TD><TD>700.200</TD><TD>STIS  </TD><TD>F25SRF2</TD><TD>MIRFUV</TD><TD>10083</TD><TD>2004-01-23 10:59:23</TD><TD>O8WI09MUQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O8WI10BDQ</TD><TD>SATURN-AURORA-SOUTH</TD><TD>98.4764375</TD><TD>22.5876444444</TD><TD>17</TD><TD>2004-01-24 23:33:21</TD><TD>2004-01-24 23:45:01</TD><TD>700.200</TD><TD>STIS  </TD><TD>F25SRF2</TD><TD>MIRFUV</TD><TD>10083</TD><TD>2004-01-25 04:53:29</TD><TD>O8WI10BDQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O8WI10010</TD><TD>SATURN-AURORA-SOUTH</TD><TD>98.4755333333</TD><TD>22.5877222222</TD><TD>17</TD><TD>2004-01-24 23:51:01</TD><TD>2004-01-25 00:00:23</TD><TD>540.000</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>10083</TD><TD>2004-01-25 04:57:01</TD><TD>O8WI10010</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O8WI10BKQ</TD><TD>SATURN-AURORA-SOUTH</TD><TD>98.4747958333</TD><TD>22.5877861111</TD><TD>17</TD><TD>2004-01-25 00:05:18</TD><TD>2004-01-25 00:16:58</TD><TD>700.199</TD><TD>STIS  </TD><TD>F25SRF2</TD><TD>MIRFUV</TD><TD>10083</TD><TD>2004-01-25 05:48:24</TD><TD>O8WI10BKQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O8WI11HUQ</TD><TD>SATURN-AURORA-SOUTH</TD><TD>98.3441791667</TD><TD>22.5989638889</TD><TD>17</TD><TD>2004-01-26 18:44:52</TD><TD>2004-01-26 18:56:32</TD><TD>700.199</TD><TD>STIS  </TD><TD>F25SRF2</TD><TD>MIRFUV</TD><TD>10083</TD><TD>2004-01-27 01:28:59</TD><TD>O8WI11HUQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O8WI11010</TD><TD>SATURN-AURORA-SOUTH</TD><TD>98.3433041667</TD><TD>22.5990388889</TD><TD>17</TD><TD>2004-01-26 19:02:32</TD><TD>2004-01-26 19:11:54</TD><TD>540.000</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>10083</TD><TD>2004-01-27 01:31:31</TD><TD>O8WI11010</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O8WI11I0Q</TD><TD>SATURN-AURORA-SOUTH</TD><TD>98.3425875</TD><TD>22.5991</TD><TD>17</TD><TD>2004-01-26 19:16:49</TD><TD>2004-01-26 19:28:29</TD><TD>700.200</TD><TD>STIS  </TD><TD>F25SRF2</TD><TD>MIRFUV</TD><TD>10083</TD><TD>2004-01-27 01:38:36</TD><TD>O8WI11I0Q</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O8WI12QWQ</TD><TD>SATURN-AURORA-SOUTH</TD><TD>98.2534666667</TD><TD>22.6067722222</TD><TD>17</TD><TD>2004-01-28 01:09:48</TD><TD>2004-01-28 01:21:28</TD><TD>700.200</TD><TD>STIS  </TD><TD>F25SRF2</TD><TD>MIRFUV</TD><TD>10083</TD><TD>2004-01-28 16:41:39</TD><TD>O8WI12QWQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O8WI12010</TD><TD>SATURN-AURORA-SOUTH</TD><TD>98.2526083333</TD><TD>22.6068472222</TD><TD>17</TD><TD>2004-01-28 01:27:28</TD><TD>2004-01-28 01:36:50</TD><TD>540.000</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>10083</TD><TD>2004-01-28 16:44:41</TD><TD>O8WI12010</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O8WI12R3Q</TD><TD>SATURN-AURORA-SOUTH</TD><TD>98.2519083333</TD><TD>22.6069083333</TD><TD>17</TD><TD>2004-01-28 01:41:45</TD><TD>2004-01-28 01:53:25</TD><TD>700.200</TD><TD>STIS  </TD><TD>F25SRF2</TD><TD>MIRFUV</TD><TD>10083</TD><TD>2004-01-28 16:51:35</TD><TD>O8WI12R3Q</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O8WI13LLQ</TD><TD>SATURN-AURORA-SOUTH</TD><TD>98.0651083333</TD><TD>22.62315</TD><TD>17</TD><TD>2004-01-30 18:43:39</TD><TD>2004-01-30 18:55:19</TD><TD>700.200</TD><TD>STIS  </TD><TD>F25SRF2</TD><TD>MIRFUV</TD><TD>10083</TD><TD>2004-02-02 12:48:01</TD><TD>O8WI13LLQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O8WI13010</TD><TD>SATURN-AURORA-SOUTH</TD><TD>98.0642958333</TD><TD>22.6232222222</TD><TD>17</TD><TD>2004-01-30 19:01:19</TD><TD>2004-01-30 19:10:41</TD><TD>540.000</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>10083</TD><TD>2004-02-02 12:51:03</TD><TD>O8WI13010</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O8WI13LRQ</TD><TD>SATURN-AURORA-SOUTH</TD><TD>98.0636333333</TD><TD>22.6232805556</TD><TD>17</TD><TD>2004-01-30 19:15:36</TD><TD>2004-01-30 19:27:16</TD><TD>700.199</TD><TD>STIS  </TD><TD>F25SRF2</TD><TD>MIRFUV</TD><TD>10083</TD><TD>2004-02-02 13:09:52</TD><TD>O8WI13LRQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J93E01011</TD><TD>JUPITERTEST1</TD><TD>197.786408333</TD><TD>-6.02733611111</TD><TD>7</TD><TD>2005-01-25 08:54:40</TD><TD>2005-01-25 09:07:20</TD><TD>720.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F165LP;N/A;F165LP</TD><TD>10140</TD><TD>2005-04-12 14:51:38</TD><TD>J93E01011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J93E01021</TD><TD>JUPITERTEST1</TD><TD>197.786704167</TD><TD>-6.0274</TD><TD>7</TD><TD>2005-01-25 09:08:18</TD><TD>2005-01-25 09:24:08</TD><TD>910.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F122M;N/A;F122M</TD><TD>10140</TD><TD>2005-04-12 14:51:51</TD><TD>J93E01021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J93EA1011</TD><TD>JUPITERTEST2</TD><TD>197.787575</TD><TD>-6.0262</TD><TD>7</TD><TD>2005-01-25 09:26:08</TD><TD>2005-01-25 09:37:28</TD><TD>560.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F140LP;N/A;F140LP</TD><TD>10140</TD><TD>2005-04-12 14:52:33</TD><TD>J93EA1011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J93E02011</TD><TD>JUPITERA</TD><TD>195.9117</TD><TD>-5.07542222222</TD><TD>7</TD><TD>2005-03-12 05:11:19</TD><TD>2005-03-12 05:23:20</TD><TD>600.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F125LP;N/A;F125LP</TD><TD>10140</TD><TD>2005-04-12 14:52:00</TD><TD>J93E02011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J93E02021</TD><TD>JUPITERA</TD><TD>195.910533333</TD><TD>-5.07491111111</TD><TD>7</TD><TD>2005-03-12 05:23:59</TD><TD>2005-03-12 05:39:40</TD><TD>700.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F125LP;N/A;F125LP</TD><TD>10140</TD><TD>2005-04-12 14:52:10</TD><TD>J93E02021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J93E02031</TD><TD>JUPITERA</TD><TD>195.909729167</TD><TD>-5.07456111111</TD><TD>7</TD><TD>2005-03-12 05:40:19</TD><TD>2005-03-12 05:52:20</TD><TD>600.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F125LP;N/A;F125LP</TD><TD>10140</TD><TD>2005-04-12 14:52:22</TD><TD>J93E02031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J93E03011</TD><TD>JUPITERC</TD><TD>191.684179167</TD><TD>-3.29377222222</TD><TD>7</TD><TD>2005-04-18 11:12:40</TD><TD>2005-04-18 11:24:41</TD><TD>600.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F125LP;N/A;F125LP</TD><TD>10140</TD><TD>2006-04-18 13:14:16</TD><TD>J93E03011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J93E03021</TD><TD>JUPITERC</TD><TD>191.6828625</TD><TD>-3.29323888889</TD><TD>7</TD><TD>2005-04-18 11:25:20</TD><TD>2005-04-18 11:41:01</TD><TD>700.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F125LP;N/A;F125LP</TD><TD>10140</TD><TD>2006-04-18 22:01:41</TD><TD>J93E03021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J93E03031</TD><TD>JUPITERC</TD><TD>191.681954167</TD><TD>-3.29286944444</TD><TD>7</TD><TD>2005-04-18 11:41:40</TD><TD>2005-04-18 11:53:41</TD><TD>600.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F125LP;N/A;F125LP</TD><TD>10140</TD><TD>2006-04-18 22:02:00</TD><TD>J93E03031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J93EA3011</TD><TD>JUPITERD</TD><TD>191.6772375</TD><TD>-3.29095277778</TD><TD>7</TD><TD>2005-04-18 12:43:11</TD><TD>2005-04-18 12:55:12</TD><TD>600.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F125LP;N/A;F125LP</TD><TD>10140</TD><TD>2006-04-18 22:02:15</TD><TD>J93EA3011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J93EA3021</TD><TD>JUPITERD</TD><TD>191.675741667</TD><TD>-3.29034444444</TD><TD>7</TD><TD>2005-04-18 12:55:51</TD><TD>2005-04-18 13:13:52</TD><TD>800.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F125LP;N/A;F125LP</TD><TD>10140</TD><TD>2006-04-18 22:12:06</TD><TD>J93EA3021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J93EA3031</TD><TD>JUPITERD</TD><TD>191.674833333</TD><TD>-3.289975</TD><TD>7</TD><TD>2005-04-18 13:14:31</TD><TD>2005-04-18 13:25:52</TD><TD>560.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F125LP;N/A;F125LP</TD><TD>10140</TD><TD>2006-04-18 22:12:34</TD><TD>J93EA3031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J93E04011</TD><TD>JUPITERE</TD><TD>190.943158333</TD><TD>-2.99541111111</TD><TD>7</TD><TD>2005-04-25 11:08:05</TD><TD>2005-04-25 11:20:06</TD><TD>600.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F125LP;N/A;F125LP</TD><TD>10140</TD><TD>2006-04-25 18:10:46</TD><TD>J93E04011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J93E04021</TD><TD>JUPITERE</TD><TD>190.941958333</TD><TD>-2.99493333333</TD><TD>7</TD><TD>2005-04-25 11:20:45</TD><TD>2005-04-25 11:36:26</TD><TD>700.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F125LP;N/A;F125LP</TD><TD>10140</TD><TD>2006-04-25 22:13:02</TD><TD>J93E04021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J93E04031</TD><TD>JUPITERE</TD><TD>190.941129167</TD><TD>-2.99460277778</TD><TD>7</TD><TD>2005-04-25 11:37:05</TD><TD>2005-04-25 11:49:06</TD><TD>600.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F125LP;N/A;F125LP</TD><TD>10140</TD><TD>2006-04-25 22:13:10</TD><TD>J93E04031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J93EA4011</TD><TD>JUPITERF</TD><TD>190.936825</TD><TD>-2.99288611111</TD><TD>7</TD><TD>2005-04-25 12:38:37</TD><TD>2005-04-25 12:50:38</TD><TD>600.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F125LP;N/A;F125LP</TD><TD>10140</TD><TD>2006-04-25 22:13:39</TD><TD>J93EA4011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J93EA4021</TD><TD>JUPITERF</TD><TD>190.9354625</TD><TD>-2.99234444444</TD><TD>7</TD><TD>2005-04-25 12:51:17</TD><TD>2005-04-25 13:09:18</TD><TD>800.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F125LP;N/A;F125LP</TD><TD>10140</TD><TD>2006-04-25 22:14:02</TD><TD>J93EA4021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J93EA4031</TD><TD>JUPITERF</TD><TD>190.9346375</TD><TD>-2.99201388889</TD><TD>7</TD><TD>2005-04-25 13:09:57</TD><TD>2005-04-25 13:21:18</TD><TD>560.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F125LP;N/A;F125LP</TD><TD>10140</TD><TD>2006-04-25 22:22:58</TD><TD>J93EA4031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J93E52011</TD><TD>JUPITERAX</TD><TD>189.9621875</TD><TD>-2.61133888889</TD><TD>7</TD><TD>2005-05-06 06:05:13</TD><TD>2005-05-06 06:17:14</TD><TD>600.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F125LP;N/A;F125LP</TD><TD>10140</TD><TD>2006-05-06 15:05:41</TD><TD>J93E52011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J93E52021</TD><TD>JUPITERAX</TD><TD>189.9612375</TD><TD>-2.610975</TD><TD>7</TD><TD>2005-05-06 06:17:53</TD><TD>2005-05-06 06:33:34</TD><TD>700.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F125LP;N/A;F125LP</TD><TD>10140</TD><TD>2006-05-06 15:06:19</TD><TD>J93E52021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J93E52031</TD><TD>JUPITERAX</TD><TD>189.960579167</TD><TD>-2.61072222222</TD><TD>7</TD><TD>2005-05-06 06:34:13</TD><TD>2005-05-06 06:46:14</TD><TD>600.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F125LP;N/A;F125LP</TD><TD>10140</TD><TD>2006-05-06 15:06:38</TD><TD>J93E52031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9DN01011</TD><TD>SATURN1</TD><TD>133.157883333</TD><TD>18.0278805556</TD><TD>4</TD><TD>2005-10-26 16:04:33</TD><TD>2005-10-26 16:47:04</TD><TD>2310.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F125LP;N/A;F125LP</TD><TD>10506</TD><TD>2006-10-26 22:51:32</TD><TD>J9DN01011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9DN02011</TD><TD>SATURN1</TD><TD>133.200095833</TD><TD>18.018675</TD><TD>4</TD><TD>2005-10-27 12:51:32</TD><TD>2005-10-27 13:34:03</TD><TD>2310.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F125LP;N/A;F125LP</TD><TD>10506</TD><TD>2006-10-27 22:52:29</TD><TD>J9DN02011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9DN03011</TD><TD>SATURN1</TD><TD>133.209658333</TD><TD>18.0166</TD><TD>4</TD><TD>2005-10-27 17:39:19</TD><TD>2005-10-27 18:21:50</TD><TD>2310.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F125LP;N/A;F125LP</TD><TD>10506</TD><TD>2006-10-27 22:53:26</TD><TD>J9DN03011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9DN04011</TD><TD>SATURN1</TD><TD>133.247204167</TD><TD>18.0084833333</TD><TD>4</TD><TD>2005-10-28 12:50:23</TD><TD>2005-10-28 13:32:54</TD><TD>2310.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F125LP;N/A;F125LP</TD><TD>10506</TD><TD>2006-10-28 22:40:30</TD><TD>J9DN04011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9DN05011</TD><TD>SATURN1</TD><TD>133.256416667</TD><TD>18.0065</TD><TD>4</TD><TD>2005-10-28 17:38:08</TD><TD>2005-10-28 18:20:39</TD><TD>2310.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F125LP;N/A;F125LP</TD><TD>10506</TD><TD>2006-10-28 22:41:05</TD><TD>J9DN05011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9DN06011</TD><TD>SATURN1</TD><TD>133.289608333</TD><TD>17.9993888889</TD><TD>4</TD><TD>2005-10-29 11:13:16</TD><TD>2005-10-29 11:55:47</TD><TD>2310.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F125LP;N/A;F125LP</TD><TD>10506</TD><TD>2006-10-29 21:12:15</TD><TD>J9DN06011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9DN07011</TD><TD>SATURN1</TD><TD>133.298495833</TD><TD>17.9974916667</TD><TD>4</TD><TD>2005-10-29 16:01:01</TD><TD>2005-10-29 16:43:32</TD><TD>2310.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F125LP;N/A;F125LP</TD><TD>10506</TD><TD>2006-10-29 21:20:43</TD><TD>J9DN07011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9DN08011</TD><TD>SATURN1</TD><TD>133.446454167</TD><TD>17.9666222222</TD><TD>4</TD><TD>2005-11-02 06:20:48</TD><TD>2005-11-02 07:03:19</TD><TD>2310.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F125LP;N/A;F125LP</TD><TD>10506</TD><TD>2006-11-02 14:42:34</TD><TD>J9DN08011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9DN09011</TD><TD>SATURN1</TD><TD>133.453995833</TD><TD>17.9650916667</TD><TD>4</TD><TD>2005-11-02 11:08:34</TD><TD>2005-11-02 11:51:05</TD><TD>2310.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F125LP;N/A;F125LP</TD><TD>10506</TD><TD>2006-11-02 18:57:56</TD><TD>J9DN09011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9DU01011</TD><TD>JUPITER1</TD><TD>225.674241667</TD><TD>-15.9914194444</TD><TD>4</TD><TD>2006-02-07 09:54:41</TD><TD>2006-02-07 10:35:07</TD><TD>1785.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F125LP;N/A;F125LP</TD><TD>10507</TD><TD>2007-02-07 19:12:45</TD><TD>J9DU01011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9DU02011</TD><TD>JUPITER2</TD><TD>226.653716667</TD><TD>-16.1970944444</TD><TD>4</TD><TD>2006-02-28 22:20:16</TD><TD>2006-02-28 23:03:07</TD><TD>1890.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F125LP;N/A;F125LP</TD><TD>10507</TD><TD>2007-03-01 08:47:21</TD><TD>J9DU02011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9DU03011</TD><TD>JUPITER3</TD><TD>225.903129167</TD><TD>-15.9209916667</TD><TD>4</TD><TD>2006-03-27 09:01:53</TD><TD>2006-03-27 09:44:43</TD><TD>1890.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F125LP;N/A;F125LP</TD><TD>10507</TD><TD>2007-03-27 19:50:19</TD><TD>J9DU03011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9DU04011</TD><TD>JUPITER4</TD><TD>224.311108333</TD><TD>-15.4458777778</TD><TD>4</TD><TD>2006-04-14 03:54:53</TD><TD>2006-04-14 04:37:43</TD><TD>1890.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F125LP;N/A;F125LP</TD><TD>10507</TD><TD>2007-04-14 12:49:15</TD><TD>J9DU04011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLS2011</TD><TD>SATURN</TD><TD>146.4249</TD><TD>14.7985888889</TD><TD>25</TD><TD>2007-01-13 07:47:25</TD><TD>2007-01-13 07:58:26</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-01-14 03:44:59</TD><TD>J9RLS2011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLS2021</TD><TD>SATURN</TD><TD>146.424</TD><TD>14.7989388889</TD><TD>25</TD><TD>2007-01-13 07:59:23</TD><TD>2007-01-13 08:19:44</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-01-14 03:48:01</TD><TD>J9RLS2021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLS2031</TD><TD>SATURN</TD><TD>146.423491667</TD><TD>14.7991361111</TD><TD>25</TD><TD>2007-01-13 08:20:41</TD><TD>2007-01-13 08:31:42</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-01-14 03:50:04</TD><TD>J9RLS2031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLS3011</TD><TD>SATURN</TD><TD>146.346933333</TD><TD>14.8288333333</TD><TD>25</TD><TD>2007-01-14 14:09:58</TD><TD>2007-01-14 14:20:59</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-01-14 22:49:40</TD><TD>J9RLS3011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLS3021</TD><TD>SATURN</TD><TD>146.3460125</TD><TD>14.8291888889</TD><TD>25</TD><TD>2007-01-14 14:21:56</TD><TD>2007-01-14 14:42:17</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-01-14 22:52:40</TD><TD>J9RLS3021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLS3031</TD><TD>SATURN</TD><TD>146.345495833</TD><TD>14.8293888889</TD><TD>25</TD><TD>2007-01-14 14:43:14</TD><TD>2007-01-14 14:54:15</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-01-14 22:54:42</TD><TD>J9RLS3031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLS4011</TD><TD>SATURN</TD><TD>146.296729167</TD><TD>14.8482138889</TD><TD>25</TD><TD>2007-01-15 09:20:48</TD><TD>2007-01-15 09:31:49</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-01-16 02:44:32</TD><TD>J9RLS4011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLS4021</TD><TD>SATURN</TD><TD>146.295795833</TD><TD>14.848575</TD><TD>25</TD><TD>2007-01-15 09:32:46</TD><TD>2007-01-15 09:53:07</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-01-16 02:48:06</TD><TD>J9RLS4021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLS4031</TD><TD>SATURN</TD><TD>146.295266667</TD><TD>14.8487777778</TD><TD>25</TD><TD>2007-01-15 09:54:04</TD><TD>2007-01-15 10:05:05</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-01-16 02:49:42</TD><TD>J9RLS4031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLS5011</TD><TD>SATURN</TD><TD>146.241516667</TD><TD>14.86945</TD><TD>25</TD><TD>2007-01-16 06:07:33</TD><TD>2007-01-16 06:18:34</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-01-16 14:05:16</TD><TD>J9RLS5011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLS5021</TD><TD>SATURN</TD><TD>146.240566667</TD><TD>14.8698166667</TD><TD>25</TD><TD>2007-01-16 06:19:31</TD><TD>2007-01-16 06:39:52</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-01-16 14:05:22</TD><TD>J9RLS5021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLS5031</TD><TD>SATURN</TD><TD>146.240029167</TD><TD>14.8700194444</TD><TD>25</TD><TD>2007-01-16 06:40:49</TD><TD>2007-01-16 06:51:50</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-01-16 14:05:30</TD><TD>J9RLS5031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLS6011</TD><TD>SATURN</TD><TD>146.1811125</TD><TD>14.8925888889</TD><TD>25</TD><TD>2007-01-17 04:30:14</TD><TD>2007-01-17 04:41:15</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-01-17 12:52:34</TD><TD>J9RLS6011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLS6021</TD><TD>SATURN</TD><TD>146.18015</TD><TD>14.8929583333</TD><TD>25</TD><TD>2007-01-17 04:42:12</TD><TD>2007-01-17 05:02:33</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-01-17 12:52:40</TD><TD>J9RLS6021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLS6031</TD><TD>SATURN</TD><TD>146.179604167</TD><TD>14.8931666667</TD><TD>25</TD><TD>2007-01-17 05:03:30</TD><TD>2007-01-17 05:14:31</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-01-17 12:52:47</TD><TD>J9RLS6031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLS7011</TD><TD>SATURN</TD><TD>146.115304167</TD><TD>14.9176944444</TD><TD>25</TD><TD>2007-01-18 04:29:57</TD><TD>2007-01-18 04:40:58</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-01-18 10:46:54</TD><TD>J9RLS7011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLS7021</TD><TD>SATURN</TD><TD>146.114320833</TD><TD>14.9180666667</TD><TD>25</TD><TD>2007-01-18 04:41:55</TD><TD>2007-01-18 05:02:16</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-01-18 10:49:57</TD><TD>J9RLS7021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLS7031</TD><TD>SATURN</TD><TD>146.113770833</TD><TD>14.9182777778</TD><TD>25</TD><TD>2007-01-18 05:03:13</TD><TD>2007-01-18 05:14:14</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-01-18 10:52:01</TD><TD>J9RLS7031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLS8011</TD><TD>SATURN</TD><TD>146.0350625</TD><TD>14.9481638889</TD><TD>25</TD><TD>2007-01-19 09:15:20</TD><TD>2007-01-19 09:26:21</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-01-19 17:18:42</TD><TD>J9RLS8011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLS8021</TD><TD>SATURN</TD><TD>146.0340625</TD><TD>14.9485416667</TD><TD>25</TD><TD>2007-01-19 09:27:18</TD><TD>2007-01-19 09:47:39</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-01-19 17:21:15</TD><TD>J9RLS8021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLS8031</TD><TD>SATURN</TD><TD>146.0335</TD><TD>14.9487555556</TD><TD>25</TD><TD>2007-01-19 09:48:36</TD><TD>2007-01-19 09:59:37</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-01-19 17:23:19</TD><TD>J9RLS8031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLS9011</TD><TD>SATURN</TD><TD>145.985279167</TD><TD>14.9669916667</TD><TD>25</TD><TD>2007-01-20 02:50:22</TD><TD>2007-01-20 03:01:23</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-01-20 11:03:04</TD><TD>J9RLS9011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLS9021</TD><TD>SATURN</TD><TD>145.984270833</TD><TD>14.9673722222</TD><TD>25</TD><TD>2007-01-20 03:02:20</TD><TD>2007-01-20 03:22:41</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-01-20 11:06:09</TD><TD>J9RLS9021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLS9031</TD><TD>SATURN</TD><TD>145.983704167</TD><TD>14.9675888889</TD><TD>25</TD><TD>2007-01-20 03:23:38</TD><TD>2007-01-20 03:34:39</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-01-20 11:08:10</TD><TD>J9RLS9031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLT0011</TD><TD>SATURN</TD><TD>145.916558333</TD><TD>14.9928916667</TD><TD>25</TD><TD>2007-01-21 02:49:07</TD><TD>2007-01-21 03:00:08</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-01-21 18:40:33</TD><TD>J9RLT0011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLT0021</TD><TD>SATURN</TD><TD>145.9155375</TD><TD>14.9932777778</TD><TD>25</TD><TD>2007-01-21 03:01:05</TD><TD>2007-01-21 03:21:26</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-01-21 18:44:07</TD><TD>J9RLT0021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLT0031</TD><TD>SATURN</TD><TD>145.914958333</TD><TD>14.9934944444</TD><TD>25</TD><TD>2007-01-21 03:22:23</TD><TD>2007-01-21 03:33:24</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-01-21 18:45:40</TD><TD>J9RLT0031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLT1011</TD><TD>SATURN</TD><TD>145.856245833</TD><TD>15.0155388889</TD><TD>25</TD><TD>2007-01-21 23:36:03</TD><TD>2007-01-21 23:47:04</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-01-22 04:20:32</TD><TD>J9RLT1011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLT1021</TD><TD>SATURN</TD><TD>145.8552125</TD><TD>15.0159277778</TD><TD>25</TD><TD>2007-01-21 23:48:01</TD><TD>2007-01-22 00:08:22</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-01-22 04:23:32</TD><TD>J9RLT1021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLT1031</TD><TD>SATURN</TD><TD>145.854629167</TD><TD>15.0161472222</TD><TD>25</TD><TD>2007-01-22 00:09:19</TD><TD>2007-01-22 00:20:20</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-01-22 04:26:06</TD><TD>J9RLT1031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLT2011</TD><TD>SATURN</TD><TD>145.771633333</TD><TD>15.0471833333</TD><TD>25</TD><TD>2007-01-23 04:22:36</TD><TD>2007-01-23 04:33:37</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-01-23 07:20:36</TD><TD>J9RLT2011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLT2021</TD><TD>SATURN</TD><TD>145.770579167</TD><TD>15.047575</TD><TD>25</TD><TD>2007-01-23 04:34:34</TD><TD>2007-01-23 04:54:55</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-01-23 07:23:38</TD><TD>J9RLT2021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLT2031</TD><TD>SATURN</TD><TD>145.7699875</TD><TD>15.0477944444</TD><TD>25</TD><TD>2007-01-23 04:55:52</TD><TD>2007-01-23 05:06:53</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-01-23 07:25:39</TD><TD>J9RLT2031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLT3011</TD><TD>SATURN</TD><TD>145.714475</TD><TD>15.068475</TD><TD>25</TD><TD>2007-01-23 23:34:59</TD><TD>2007-01-23 23:46:00</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-01-24 13:41:17</TD><TD>J9RLT3011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLT3021</TD><TD>SATURN</TD><TD>145.7134125</TD><TD>15.0688694444</TD><TD>25</TD><TD>2007-01-23 23:46:57</TD><TD>2007-01-24 00:07:18</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-01-24 14:29:06</TD><TD>J9RLT3021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLT3031</TD><TD>SATURN</TD><TD>145.712816667</TD><TD>15.0690916667</TD><TD>25</TD><TD>2007-01-24 00:08:15</TD><TD>2007-01-24 00:19:16</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-01-24 14:31:08</TD><TD>J9RLT3031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLT3041</TD><TD>SATURN</TD><TD>145.70975</TD><TD>15.0702305556</TD><TD>25</TD><TD>2007-01-24 01:09:45</TD><TD>2007-01-24 01:20:46</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F140LP;N/A;F140LP</TD><TD>10862</TD><TD>2007-01-24 13:43:27</TD><TD>J9RLT3041</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLT3051</TD><TD>SATURN</TD><TD>145.708683333</TD><TD>15.0706277778</TD><TD>25</TD><TD>2007-01-24 01:21:53</TD><TD>2007-01-24 01:42:14</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-01-24 13:45:57</TD><TD>J9RLT3051</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLT3061</TD><TD>SATURN</TD><TD>145.708075</TD><TD>15.0708527778</TD><TD>25</TD><TD>2007-01-24 01:43:20</TD><TD>2007-01-24 01:54:21</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F140LP;N/A;F140LP</TD><TD>10862</TD><TD>2007-01-24 13:47:59</TD><TD>J9RLT3061</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLT3071</TD><TD>SATURN</TD><TD>145.704966667</TD><TD>15.0720083333</TD><TD>25</TD><TD>2007-01-24 02:45:41</TD><TD>2007-01-24 02:56:42</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-01-24 13:50:00</TD><TD>J9RLT3071</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLT3081</TD><TD>SATURN</TD><TD>145.703904167</TD><TD>15.0724055556</TD><TD>25</TD><TD>2007-01-24 02:57:39</TD><TD>2007-01-24 03:18:00</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-01-24 13:53:07</TD><TD>J9RLT3081</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLT3091</TD><TD>SATURN</TD><TD>145.703304167</TD><TD>15.0726277778</TD><TD>25</TD><TD>2007-01-24 03:18:57</TD><TD>2007-01-24 03:29:58</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-01-24 13:54:44</TD><TD>J9RLT3091</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLT30A1</TD><TD>SATURN</TD><TD>145.700179167</TD><TD>15.0737888889</TD><TD>25</TD><TD>2007-01-24 04:21:35</TD><TD>2007-01-24 04:32:36</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F140LP;N/A;F140LP</TD><TD>10862</TD><TD>2007-01-24 13:56:42</TD><TD>J9RLT30A1</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLT30B1</TD><TD>SATURN</TD><TD>145.699108333</TD><TD>15.0741888889</TD><TD>25</TD><TD>2007-01-24 04:33:43</TD><TD>2007-01-24 04:54:04</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-01-24 13:59:47</TD><TD>J9RLT30B1</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLT30C1</TD><TD>SATURN</TD><TD>145.6985</TD><TD>15.0744138889</TD><TD>25</TD><TD>2007-01-24 04:55:10</TD><TD>2007-01-24 05:06:11</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F140LP;N/A;F140LP</TD><TD>10862</TD><TD>2007-01-24 14:01:50</TD><TD>J9RLT30C1</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLT30D1</TD><TD>SATURN</TD><TD>145.6953875</TD><TD>15.0755694444</TD><TD>25</TD><TD>2007-01-24 05:57:32</TD><TD>2007-01-24 06:08:33</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-01-24 14:04:23</TD><TD>J9RLT30D1</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLT30E1</TD><TD>SATURN</TD><TD>145.694320833</TD><TD>15.0759666667</TD><TD>25</TD><TD>2007-01-24 06:09:30</TD><TD>2007-01-24 06:29:51</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-01-24 14:07:26</TD><TD>J9RLT30E1</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLT30F1</TD><TD>SATURN</TD><TD>145.693720833</TD><TD>15.0761888889</TD><TD>25</TD><TD>2007-01-24 06:30:48</TD><TD>2007-01-24 06:41:49</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-01-24 14:33:10</TD><TD>J9RLT30F1</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLT4011</TD><TD>SATURN</TD><TD>145.632758333</TD><TD>15.0988</TD><TD>25</TD><TD>2007-01-25 02:44:43</TD><TD>2007-01-25 02:55:44</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-01-25 12:36:25</TD><TD>J9RLT4011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLT4021</TD><TD>SATURN</TD><TD>145.631683333</TD><TD>15.0992</TD><TD>25</TD><TD>2007-01-25 02:56:41</TD><TD>2007-01-25 03:17:02</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-01-25 12:40:28</TD><TD>J9RLT4021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLT4031</TD><TD>SATURN</TD><TD>145.631079167</TD><TD>15.0994222222</TD><TD>25</TD><TD>2007-01-25 03:17:59</TD><TD>2007-01-25 03:29:00</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-01-25 12:47:31</TD><TD>J9RLT4031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLT5011</TD><TD>SATURN</TD><TD>145.574470833</TD><TD>15.1203527778</TD><TD>25</TD><TD>2007-01-25 21:55:22</TD><TD>2007-01-25 22:06:23</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-01-26 09:38:50</TD><TD>J9RLT5011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLT5021</TD><TD>SATURN</TD><TD>145.5733875</TD><TD>15.1207527778</TD><TD>25</TD><TD>2007-01-25 22:07:20</TD><TD>2007-01-25 22:27:41</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-01-26 09:42:24</TD><TD>J9RLT5021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLT5031</TD><TD>SATURN</TD><TD>145.572779167</TD><TD>15.1209777778</TD><TD>25</TD><TD>2007-01-25 22:28:38</TD><TD>2007-01-25 22:39:39</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-01-26 09:44:25</TD><TD>J9RLT5031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLT6011</TD><TD>SATURN</TD><TD>145.505858333</TD><TD>15.1456416667</TD><TD>25</TD><TD>2007-01-26 20:18:16</TD><TD>2007-01-26 20:29:17</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-01-27 08:43:48</TD><TD>J9RLT6011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLT6021</TD><TD>SATURN</TD><TD>145.504766667</TD><TD>15.1460444444</TD><TD>25</TD><TD>2007-01-26 20:30:14</TD><TD>2007-01-26 20:50:35</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-01-27 08:47:21</TD><TD>J9RLT6021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLT6031</TD><TD>SATURN</TD><TD>145.504154167</TD><TD>15.1462694444</TD><TD>25</TD><TD>2007-01-26 20:51:32</TD><TD>2007-01-26 21:02:33</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-01-27 08:48:52</TD><TD>J9RLT6031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U9RLU901M</TD><TD>SATURN</TD><TD>144.41945</TD><TD>15.5252277778</TD><TD>25</TD><TD>2007-02-09 15:11:16</TD><TD>2007-02-09 15:12:16</TD><TD>60.000</TD><TD>WFPC2 </TD><TD>FQCH4W3</TD><TD>FQCH4N</TD><TD>10862</TD><TD>2007-02-10 04:21:49</TD><TD>U9RLU901M</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U9RLU902M</TD><TD>SATURN</TD><TD>144.4252</TD><TD>15.5265583333</TD><TD>25</TD><TD>2007-02-09 15:18:16</TD><TD>2007-02-09 15:34:56</TD><TD>1000.000</TD><TD>WFPC2 </TD><TD>F160BN15;F160BN15</TD><TD>F160BN15</TD><TD>10862</TD><TD>2007-02-10 04:23:36</TD><TD>U9RLU902M</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U9RLU903M</TD><TD>SATURN</TD><TD>144.424154167</TD><TD>15.5269277778</TD><TD>25</TD><TD>2007-02-09 15:37:16</TD><TD>2007-02-09 15:53:56</TD><TD>1000.000</TD><TD>WFPC2 </TD><TD>F160BN15;F160BN15</TD><TD>F160BN15</TD><TD>10862</TD><TD>2007-02-10 04:25:07</TD><TD>U9RLU903M</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U9RLV001M</TD><TD>SATURN</TD><TD>144.360079167</TD><TD>15.5349611111</TD><TD>25</TD><TD>2007-02-10 13:34:16</TD><TD>2007-02-10 13:35:16</TD><TD>60.000</TD><TD>WFPC2 </TD><TD>FQCH4W3</TD><TD>FQCH4N</TD><TD>10862</TD><TD>2007-02-11 02:15:52</TD><TD>U9RLV001M</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U9RLV002M</TD><TD>SATURN</TD><TD>144.361058333</TD><TD>15.5418722222</TD><TD>25</TD><TD>2007-02-10 13:41:16</TD><TD>2007-02-10 13:57:56</TD><TD>1000.000</TD><TD>WFPC2 </TD><TD>F160BN15;F160BN15</TD><TD>F160BN15</TD><TD>10862</TD><TD>2007-02-11 02:17:27</TD><TD>U9RLV002M</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U9RLV003M</TD><TD>SATURN</TD><TD>144.3600125</TD><TD>15.5422388889</TD><TD>25</TD><TD>2007-02-10 14:00:16</TD><TD>2007-02-10 14:16:56</TD><TD>1000.000</TD><TD>WFPC2 </TD><TD>F160BN15;F160BN15</TD><TD>F160BN15</TD><TD>10862</TD><TD>2007-02-11 02:18:27</TD><TD>U9RLV003M</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U9RLV101M</TD><TD>SATURN</TD><TD>144.276770833</TD><TD>15.5642222222</TD><TD>25</TD><TD>2007-02-11 15:09:16</TD><TD>2007-02-11 15:10:16</TD><TD>60.000</TD><TD>WFPC2 </TD><TD>FQCH4W3</TD><TD>FQCH4N</TD><TD>10862</TD><TD>2007-02-11 17:20:51</TD><TD>U9RLV101M</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U9RLV102M</TD><TD>SATURN</TD><TD>144.277275</TD><TD>15.5712694444</TD><TD>25</TD><TD>2007-02-11 15:16:16</TD><TD>2007-02-11 15:32:56</TD><TD>1000.000</TD><TD>WFPC2 </TD><TD>F160BN15;F160BN15</TD><TD>F160BN15</TD><TD>10862</TD><TD>2007-02-11 17:22:23</TD><TD>U9RLV102M</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U9RLV103M</TD><TD>SATURN</TD><TD>144.276229167</TD><TD>15.5716333333</TD><TD>25</TD><TD>2007-02-11 15:35:16</TD><TD>2007-02-11 15:51:56</TD><TD>1000.000</TD><TD>WFPC2 </TD><TD>F160BN15;F160BN15</TD><TD>F160BN15</TD><TD>10862</TD><TD>2007-02-11 21:08:38</TD><TD>U9RLV103M</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U9PN0401M</TD><TD>IO-234</TD><TD>254.840533333</TD><TD>-21.9989527778</TD><TD>5</TD><TD>2007-02-14 17:09:16</TD><TD>2007-02-14 17:09:39</TD><TD>23.000</TD><TD>WFPC2 </TD><TD>PC1</TD><TD>F336W</TD><TD>10871</TD><TD>2008-02-15 04:50:37</TD><TD>U9PN0401M</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U9PN0402M</TD><TD>IO-234</TD><TD>254.840708333</TD><TD>-21.9989777778</TD><TD>5</TD><TD>2007-02-14 17:12:16</TD><TD>2007-02-14 17:12:26</TD><TD>10.000</TD><TD>WFPC2 </TD><TD>PC1</TD><TD>F410M</TD><TD>10871</TD><TD>2008-02-15 04:50:44</TD><TD>U9PN0402M</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U9PN0403M</TD><TD>IO-234</TD><TD>254.840883333</TD><TD>-21.9990027778</TD><TD>5</TD><TD>2007-02-14 17:15:16</TD><TD>2007-02-14 17:15:16</TD><TD>0.300</TD><TD>WFPC2 </TD><TD>PC1</TD><TD>F569W</TD><TD>10871</TD><TD>2008-02-15 20:48:25</TD><TD>U9PN0403M</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U9PN0404M</TD><TD>IO-234</TD><TD>254.8410625</TD><TD>-21.9990305556</TD><TD>5</TD><TD>2007-02-14 17:18:16</TD><TD>2007-02-14 17:18:16</TD><TD>0.200</TD><TD>WFPC2 </TD><TD>PC1</TD><TD>F791W</TD><TD>10871</TD><TD>2008-02-15 20:57:45</TD><TD>U9PN0404M</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U9PN0405M</TD><TD>IO-234</TD><TD>254.841908333</TD><TD>-21.9991527778</TD><TD>5</TD><TD>2007-02-14 17:21:16</TD><TD>2007-02-14 17:31:16</TD><TD>600.000</TD><TD>WFPC2 </TD><TD>PC1</TD><TD>F255W</TD><TD>10871</TD><TD>2008-02-15 20:58:46</TD><TD>U9PN0405M</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U9PN0406M</TD><TD>IO-234</TD><TD>254.842725</TD><TD>-21.9992694444</TD><TD>5</TD><TD>2007-02-14 17:34:16</TD><TD>2007-02-14 17:44:16</TD><TD>600.000</TD><TD>WFPC2 </TD><TD>PC1</TD><TD>F255W</TD><TD>10871</TD><TD>2008-02-15 20:59:15</TD><TD>U9PN0406M</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U9PN0407M</TD><TD>IO-234</TD><TD>254.842916667</TD><TD>-21.9992972222</TD><TD>5</TD><TD>2007-02-14 17:48:16</TD><TD>2007-02-14 17:48:39</TD><TD>23.000</TD><TD>WFPC2 </TD><TD>PC1</TD><TD>F336W</TD><TD>10871</TD><TD>2008-02-15 20:59:54</TD><TD>U9PN0407M</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U9PN0408M</TD><TD>IO-234</TD><TD>254.843108333</TD><TD>-21.999325</TD><TD>5</TD><TD>2007-02-14 17:51:16</TD><TD>2007-02-14 17:51:26</TD><TD>10.000</TD><TD>WFPC2 </TD><TD>PC1</TD><TD>F410M</TD><TD>10871</TD><TD>2008-02-15 21:00:02</TD><TD>U9PN0408M</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U9PN0201M</TD><TD>IO-090</TD><TD>255.0529625</TD><TD>-22.0194083333</TD><TD>5</TD><TD>2007-02-15 18:43:16</TD><TD>2007-02-15 18:43:39</TD><TD>23.000</TD><TD>WFPC2 </TD><TD>PC1</TD><TD>F336W</TD><TD>10871</TD><TD>2008-02-16 00:32:17</TD><TD>U9PN0201M</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U9PN0202M</TD><TD>IO-090</TD><TD>255.0532625</TD><TD>-22.019425</TD><TD>5</TD><TD>2007-02-15 18:46:16</TD><TD>2007-02-15 18:46:26</TD><TD>10.000</TD><TD>WFPC2 </TD><TD>PC1</TD><TD>F410M</TD><TD>10871</TD><TD>2008-02-16 00:33:13</TD><TD>U9PN0202M</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U9PN0203M</TD><TD>IO-090</TD><TD>255.0535625</TD><TD>-22.0194416667</TD><TD>5</TD><TD>2007-02-15 18:49:16</TD><TD>2007-02-15 18:49:16</TD><TD>0.300</TD><TD>WFPC2 </TD><TD>PC1</TD><TD>F569W</TD><TD>10871</TD><TD>2008-02-16 00:33:33</TD><TD>U9PN0203M</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U9PN0204M</TD><TD>IO-090</TD><TD>255.053858333</TD><TD>-22.0194583333</TD><TD>5</TD><TD>2007-02-15 18:52:16</TD><TD>2007-02-15 18:52:16</TD><TD>0.200</TD><TD>WFPC2 </TD><TD>PC1</TD><TD>F791W</TD><TD>10871</TD><TD>2008-02-16 00:41:46</TD><TD>U9PN0204M</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U9PN0205M</TD><TD>IO-090</TD><TD>255.055216667</TD><TD>-22.0195333333</TD><TD>5</TD><TD>2007-02-15 18:55:16</TD><TD>2007-02-15 19:05:16</TD><TD>600.000</TD><TD>WFPC2 </TD><TD>PC1</TD><TD>F255W</TD><TD>10871</TD><TD>2008-02-16 00:42:01</TD><TD>U9PN0205M</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U9PN0206M</TD><TD>IO-090</TD><TD>255.056445833</TD><TD>-22.0196</TD><TD>5</TD><TD>2007-02-15 19:08:16</TD><TD>2007-02-15 19:18:16</TD><TD>600.000</TD><TD>WFPC2 </TD><TD>PC1</TD><TD>F255W</TD><TD>10871</TD><TD>2008-02-16 00:42:21</TD><TD>U9PN0206M</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U9PN0207M</TD><TD>IO-090</TD><TD>255.056725</TD><TD>-22.0196166667</TD><TD>5</TD><TD>2007-02-15 19:22:16</TD><TD>2007-02-15 19:22:39</TD><TD>23.000</TD><TD>WFPC2 </TD><TD>PC1</TD><TD>F336W</TD><TD>10871</TD><TD>2008-02-16 01:43:54</TD><TD>U9PN0207M</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U9PN0208M</TD><TD>IO-090</TD><TD>255.057004167</TD><TD>-22.0196305556</TD><TD>5</TD><TD>2007-02-15 19:25:16</TD><TD>2007-02-15 19:25:26</TD><TD>10.000</TD><TD>WFPC2 </TD><TD>PC1</TD><TD>F410M</TD><TD>10871</TD><TD>2008-02-16 00:42:39</TD><TD>U9PN0208M</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U9PN0501M</TD><TD>IO-306</TD><TD>255.15115</TD><TD>-22.0294694444</TD><TD>5</TD><TD>2007-02-16 20:17:16</TD><TD>2007-02-16 20:17:39</TD><TD>23.000</TD><TD>WFPC2 </TD><TD>PC1</TD><TD>F336W</TD><TD>10871</TD><TD>2008-02-17 04:07:26</TD><TD>U9PN0501M</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U9PN0502M</TD><TD>IO-306</TD><TD>255.1515875</TD><TD>-22.0295194444</TD><TD>5</TD><TD>2007-02-16 20:20:16</TD><TD>2007-02-16 20:20:26</TD><TD>10.000</TD><TD>WFPC2 </TD><TD>PC1</TD><TD>F410M</TD><TD>10871</TD><TD>2008-02-17 04:07:35</TD><TD>U9PN0502M</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U9PN0503M</TD><TD>IO-306</TD><TD>255.152029167</TD><TD>-22.0295666667</TD><TD>5</TD><TD>2007-02-16 20:23:16</TD><TD>2007-02-16 20:23:19</TD><TD>3.000</TD><TD>WFPC2 </TD><TD>PC1</TD><TD>F569W</TD><TD>10871</TD><TD>2008-02-17 04:07:53</TD><TD>U9PN0503M</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U9PN0504M</TD><TD>IO-306</TD><TD>255.152466667</TD><TD>-22.0296138889</TD><TD>5</TD><TD>2007-02-16 20:26:16</TD><TD>2007-02-16 20:26:16</TD><TD>0.200</TD><TD>WFPC2 </TD><TD>PC1</TD><TD>F791W</TD><TD>10871</TD><TD>2008-02-17 04:08:08</TD><TD>U9PN0504M</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U9PN0505M</TD><TD>IO-306</TD><TD>255.1545375</TD><TD>-22.0298416667</TD><TD>5</TD><TD>2007-02-16 20:29:16</TD><TD>2007-02-16 20:39:16</TD><TD>600.000</TD><TD>WFPC2 </TD><TD>PC1</TD><TD>F255W</TD><TD>10871</TD><TD>2008-02-17 04:08:24</TD><TD>U9PN0505M</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U9PN0506M</TD><TD>IO-306</TD><TD>255.1564875</TD><TD>-22.0300555556</TD><TD>5</TD><TD>2007-02-16 20:42:16</TD><TD>2007-02-16 20:52:16</TD><TD>600.000</TD><TD>WFPC2 </TD><TD>PC1</TD><TD>F255W</TD><TD>10871</TD><TD>2008-02-17 04:08:47</TD><TD>U9PN0506M</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U9PN0507M</TD><TD>IO-306</TD><TD>255.156941667</TD><TD>-22.0301027778</TD><TD>5</TD><TD>2007-02-16 20:56:16</TD><TD>2007-02-16 20:56:39</TD><TD>23.000</TD><TD>WFPC2 </TD><TD>PC1</TD><TD>F336W</TD><TD>10871</TD><TD>2008-02-17 04:09:05</TD><TD>U9PN0507M</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U9PN0508M</TD><TD>IO-306</TD><TD>255.157395833</TD><TD>-22.0301527778</TD><TD>5</TD><TD>2007-02-16 20:59:16</TD><TD>2007-02-16 20:59:26</TD><TD>10.000</TD><TD>WFPC2 </TD><TD>PC1</TD><TD>F410M</TD><TD>10871</TD><TD>2008-02-17 04:09:21</TD><TD>U9PN0508M</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U9PN0301M</TD><TD>IO-162</TD><TD>255.579895833</TD><TD>-22.0656861111</TD><TD>5</TD><TD>2007-02-19 15:25:16</TD><TD>2007-02-19 15:25:39</TD><TD>23.000</TD><TD>WFPC2 </TD><TD>PC1</TD><TD>F336W</TD><TD>10871</TD><TD>2008-02-21 00:42:08</TD><TD>U9PN0301M</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U9PN0302M</TD><TD>IO-162</TD><TD>255.579970833</TD><TD>-22.0656888889</TD><TD>5</TD><TD>2007-02-19 15:28:16</TD><TD>2007-02-19 15:28:26</TD><TD>10.000</TD><TD>WFPC2 </TD><TD>PC1</TD><TD>F410M</TD><TD>10871</TD><TD>2008-02-21 00:42:25</TD><TD>U9PN0302M</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U9PN0303M</TD><TD>IO-162</TD><TD>255.580041667</TD><TD>-22.0656888889</TD><TD>5</TD><TD>2007-02-19 15:31:16</TD><TD>2007-02-19 15:31:16</TD><TD>0.300</TD><TD>WFPC2 </TD><TD>PC1</TD><TD>F569W</TD><TD>10871</TD><TD>2008-02-21 00:42:32</TD><TD>U9PN0303M</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U9PN0304M</TD><TD>IO-162</TD><TD>255.5801125</TD><TD>-22.0656916667</TD><TD>5</TD><TD>2007-02-19 15:34:16</TD><TD>2007-02-19 15:34:16</TD><TD>0.200</TD><TD>WFPC2 </TD><TD>PC1</TD><TD>F791W</TD><TD>10871</TD><TD>2008-02-21 00:42:55</TD><TD>U9PN0304M</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U9PN0305M</TD><TD>IO-162</TD><TD>255.5804375</TD><TD>-22.0657055556</TD><TD>5</TD><TD>2007-02-19 15:37:16</TD><TD>2007-02-19 15:47:16</TD><TD>600.000</TD><TD>WFPC2 </TD><TD>PC1</TD><TD>F255W</TD><TD>10871</TD><TD>2008-02-21 00:43:34</TD><TD>U9PN0305M</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U9PN0306M</TD><TD>IO-162</TD><TD>255.580725</TD><TD>-22.0657166667</TD><TD>5</TD><TD>2007-02-19 15:50:16</TD><TD>2007-02-19 16:00:16</TD><TD>600.000</TD><TD>WFPC2 </TD><TD>PC1</TD><TD>F255W</TD><TD>10871</TD><TD>2008-02-21 00:43:59</TD><TD>U9PN0306M</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U9PN0307M</TD><TD>IO-162</TD><TD>255.580791667</TD><TD>-22.0657194444</TD><TD>5</TD><TD>2007-02-19 16:04:16</TD><TD>2007-02-19 16:04:39</TD><TD>23.000</TD><TD>WFPC2 </TD><TD>PC1</TD><TD>F336W</TD><TD>10871</TD><TD>2008-02-21 00:44:51</TD><TD>U9PN0307M</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U9PN0308M</TD><TD>IO-162</TD><TD>255.580854167</TD><TD>-22.0657222222</TD><TD>5</TD><TD>2007-02-19 16:07:16</TD><TD>2007-02-19 16:07:26</TD><TD>10.000</TD><TD>WFPC2 </TD><TD>PC1</TD><TD>F410M</TD><TD>10871</TD><TD>2008-02-21 00:45:17</TD><TD>U9PN0308M</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLB0011</TD><TD>JUPITER-SOUTH-B0</TD><TD>255.693183333</TD><TD>-22.0837583333</TD><TD>25</TD><TD>2007-02-20 15:22:52</TD><TD>2007-02-20 15:33:53</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-02-20 22:36:29</TD><TD>J9RLB0011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLB0021</TD><TD>JUPITER-SOUTH-B0</TD><TD>255.695166667</TD><TD>-22.0839305556</TD><TD>25</TD><TD>2007-02-20 15:34:50</TD><TD>2007-02-20 15:55:11</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-02-20 22:40:38</TD><TD>J9RLB0021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLB0031</TD><TD>JUPITER-SOUTH-B0</TD><TD>255.696283333</TD><TD>-22.0840277778</TD><TD>25</TD><TD>2007-02-20 15:56:08</TD><TD>2007-02-20 16:07:09</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-02-20 22:44:40</TD><TD>J9RLB0031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U9PN0101M</TD><TD>IO-018</TD><TD>255.7183875</TD><TD>-22.0806638889</TD><TD>5</TD><TD>2007-02-20 16:59:16</TD><TD>2007-02-20 16:59:39</TD><TD>23.000</TD><TD>WFPC2 </TD><TD>PC1</TD><TD>F336W</TD><TD>10871</TD><TD>2008-02-21 04:00:54</TD><TD>U9PN0101M</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U9PN0102M</TD><TD>IO-018</TD><TD>255.718895833</TD><TD>-22.0807055556</TD><TD>5</TD><TD>2007-02-20 17:02:16</TD><TD>2007-02-20 17:02:26</TD><TD>10.000</TD><TD>WFPC2 </TD><TD>PC1</TD><TD>F410M</TD><TD>10871</TD><TD>2008-02-21 04:01:17</TD><TD>U9PN0102M</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U9PN0103M</TD><TD>IO-018</TD><TD>255.7194</TD><TD>-22.0807472222</TD><TD>5</TD><TD>2007-02-20 17:05:16</TD><TD>2007-02-20 17:05:16</TD><TD>0.300</TD><TD>WFPC2 </TD><TD>PC1</TD><TD>F569W</TD><TD>10871</TD><TD>2008-02-21 04:01:41</TD><TD>U9PN0103M</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U9PN0104M</TD><TD>IO-018</TD><TD>255.719904167</TD><TD>-22.0807861111</TD><TD>5</TD><TD>2007-02-20 17:08:16</TD><TD>2007-02-20 17:08:16</TD><TD>0.200</TD><TD>WFPC2 </TD><TD>PC1</TD><TD>F791W</TD><TD>10871</TD><TD>2008-02-21 04:02:06</TD><TD>U9PN0104M</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U9PN0105M</TD><TD>IO-018</TD><TD>255.722258333</TD><TD>-22.0809777778</TD><TD>5</TD><TD>2007-02-20 17:11:16</TD><TD>2007-02-20 17:21:16</TD><TD>600.000</TD><TD>WFPC2 </TD><TD>PC1</TD><TD>F255W</TD><TD>10871</TD><TD>2008-02-21 04:02:52</TD><TD>U9PN0105M</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U9PN0106M</TD><TD>IO-018</TD><TD>255.7241</TD><TD>-22.081125</TD><TD>5</TD><TD>2007-02-20 17:24:16</TD><TD>2007-02-20 17:32:36</TD><TD>500.000</TD><TD>WFPC2 </TD><TD>PC1</TD><TD>F255W</TD><TD>10871</TD><TD>2008-02-21 04:03:36</TD><TD>U9PN0106M</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U9PN0107M</TD><TD>IO-018</TD><TD>255.7246</TD><TD>-22.0811638889</TD><TD>5</TD><TD>2007-02-20 17:36:16</TD><TD>2007-02-20 17:36:39</TD><TD>23.000</TD><TD>WFPC2 </TD><TD>PC1</TD><TD>F336W</TD><TD>10871</TD><TD>2008-02-21 04:03:43</TD><TD>U9PN0107M</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U9PN0108M</TD><TD>IO-018</TD><TD>255.725104167</TD><TD>-22.0812055556</TD><TD>5</TD><TD>2007-02-20 17:39:16</TD><TD>2007-02-20 17:39:26</TD><TD>10.000</TD><TD>WFPC2 </TD><TD>PC1</TD><TD>F410M</TD><TD>10871</TD><TD>2008-02-21 04:04:04</TD><TD>U9PN0108M</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U9PN0801M</TD><TD>IO-TRANSIT</TD><TD>255.820308333</TD><TD>-22.0865972222</TD><TD>5</TD><TD>2007-02-21 12:10:16</TD><TD>2007-02-21 12:18:36</TD><TD>500.000</TD><TD>WFPC2 </TD><TD>PC1</TD><TD>F255W</TD><TD>10871</TD><TD>2008-02-21 22:19:47</TD><TD>U9PN0801M</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U9PN0802M</TD><TD>IO-TRANSIT</TD><TD>255.82035</TD><TD>-22.0866</TD><TD>5</TD><TD>2007-02-21 12:22:16</TD><TD>2007-02-21 12:22:39</TD><TD>23.000</TD><TD>WFPC2 </TD><TD>PC1</TD><TD>F336W</TD><TD>10871</TD><TD>2008-02-21 22:21:25</TD><TD>U9PN0802M</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U9PN0803M</TD><TD>IO-TRANSIT</TD><TD>255.820491667</TD><TD>-22.0866138889</TD><TD>5</TD><TD>2007-02-21 12:25:16</TD><TD>2007-02-21 12:31:56</TD><TD>400.000</TD><TD>WFPC2 </TD><TD>PC1</TD><TD>F343N</TD><TD>10871</TD><TD>2008-02-21 22:22:40</TD><TD>U9PN0803M</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U9PN0804M</TD><TD>IO-TRANSIT</TD><TD>255.8205375</TD><TD>-22.0866166667</TD><TD>5</TD><TD>2007-02-21 12:35:16</TD><TD>2007-02-21 12:35:26</TD><TD>10.000</TD><TD>WFPC2 </TD><TD>PC1</TD><TD>F410M</TD><TD>10871</TD><TD>2008-02-21 22:23:46</TD><TD>U9PN0804M</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U9PN0805M</TD><TD>IO-TRANSIT</TD><TD>255.820679167</TD><TD>-22.0866305556</TD><TD>5</TD><TD>2007-02-21 12:38:16</TD><TD>2007-02-21 12:44:56</TD><TD>400.000</TD><TD>WFPC2 </TD><TD>PC1</TD><TD>F255W</TD><TD>10871</TD><TD>2008-02-21 22:25:20</TD><TD>U9PN0805M</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U9PN0806M</TD><TD>IO-TRANSIT</TD><TD>255.820804167</TD><TD>-22.0866444444</TD><TD>5</TD><TD>2007-02-21 12:47:16</TD><TD>2007-02-21 12:53:56</TD><TD>400.000</TD><TD>WFPC2 </TD><TD>PC1</TD><TD>F255W</TD><TD>10871</TD><TD>2008-02-21 22:26:00</TD><TD>U9PN0806M</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLB1011</TD><TD>JUPITER-NORTH-B1</TD><TD>255.828433333</TD><TD>-22.0833111111</TD><TD>25</TD><TD>2007-02-21 15:21:22</TD><TD>2007-02-21 15:32:23</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-02-21 22:14:39</TD><TD>J9RLB1011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLB1021</TD><TD>JUPITER-NORTH-B1</TD><TD>255.830379167</TD><TD>-22.0834805556</TD><TD>25</TD><TD>2007-02-21 15:33:20</TD><TD>2007-02-21 15:53:41</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-02-21 22:18:42</TD><TD>J9RLB1021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLB1031</TD><TD>JUPITER-NORTH-B1</TD><TD>255.831470833</TD><TD>-22.083575</TD><TD>25</TD><TD>2007-02-21 15:54:38</TD><TD>2007-02-21 16:05:39</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-02-21 22:39:28</TD><TD>J9RLB1031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLB2011</TD><TD>JUPITER-NORTH-B2-B6</TD><TD>255.932379167</TD><TD>-22.0922194444</TD><TD>25</TD><TD>2007-02-22 10:32:10</TD><TD>2007-02-22 10:43:11</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-02-23 13:48:26</TD><TD>J9RLB2011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLB2021</TD><TD>JUPITER-NORTH-B2-B6</TD><TD>255.934295833</TD><TD>-22.0923833333</TD><TD>25</TD><TD>2007-02-22 10:44:08</TD><TD>2007-02-22 11:04:29</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-02-23 13:51:59</TD><TD>J9RLB2021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLB2031</TD><TD>JUPITER-NORTH-B2-B6</TD><TD>255.935375</TD><TD>-22.092475</TD><TD>25</TD><TD>2007-02-22 11:05:26</TD><TD>2007-02-22 11:16:27</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-02-23 13:53:33</TD><TD>J9RLB2031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U9PN0701M</TD><TD>IO-018</TD><TD>255.9582875</TD><TD>-22.1013527778</TD><TD>5</TD><TD>2007-02-22 12:08:16</TD><TD>2007-02-22 12:08:39</TD><TD>23.000</TD><TD>WFPC2 </TD><TD>PC1</TD><TD>F336W</TD><TD>10871</TD><TD>2008-02-23 13:49:10</TD><TD>U9PN0701M</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U9PN0702M</TD><TD>IO-018</TD><TD>255.958779167</TD><TD>-22.1013888889</TD><TD>5</TD><TD>2007-02-22 12:11:16</TD><TD>2007-02-22 12:11:26</TD><TD>10.000</TD><TD>WFPC2 </TD><TD>PC1</TD><TD>F410M</TD><TD>10871</TD><TD>2008-02-23 13:52:21</TD><TD>U9PN0702M</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U9PN0703M</TD><TD>IO-018</TD><TD>255.959270833</TD><TD>-22.1014277778</TD><TD>5</TD><TD>2007-02-22 12:14:16</TD><TD>2007-02-22 12:14:16</TD><TD>0.300</TD><TD>WFPC2 </TD><TD>PC1</TD><TD>F569W</TD><TD>10871</TD><TD>2008-02-23 13:52:30</TD><TD>U9PN0703M</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U9PN0704M</TD><TD>IO-018</TD><TD>255.9597625</TD><TD>-22.1014666667</TD><TD>5</TD><TD>2007-02-22 12:17:16</TD><TD>2007-02-22 12:17:16</TD><TD>0.200</TD><TD>WFPC2 </TD><TD>PC1</TD><TD>F791W</TD><TD>10871</TD><TD>2008-02-23 13:52:50</TD><TD>U9PN0704M</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U9PN0705M</TD><TD>IO-018</TD><TD>255.962045833</TD><TD>-22.1016416667</TD><TD>5</TD><TD>2007-02-22 12:20:16</TD><TD>2007-02-22 12:30:16</TD><TD>600.000</TD><TD>WFPC2 </TD><TD>PC1</TD><TD>F255W</TD><TD>10871</TD><TD>2008-02-23 13:53:12</TD><TD>U9PN0705M</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U9PN0706M</TD><TD>IO-018</TD><TD>255.96415</TD><TD>-22.1018</TD><TD>5</TD><TD>2007-02-22 12:33:16</TD><TD>2007-02-22 12:43:16</TD><TD>600.000</TD><TD>WFPC2 </TD><TD>PC1</TD><TD>F255W</TD><TD>10871</TD><TD>2008-02-23 13:53:20</TD><TD>U9PN0706M</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U9PN0707M</TD><TD>IO-018</TD><TD>255.9646375</TD><TD>-22.1018361111</TD><TD>5</TD><TD>2007-02-22 12:47:16</TD><TD>2007-02-22 12:47:39</TD><TD>23.000</TD><TD>WFPC2 </TD><TD>PC1</TD><TD>F336W</TD><TD>10871</TD><TD>2008-02-23 13:53:52</TD><TD>U9PN0707M</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U9PN0708M</TD><TD>IO-018</TD><TD>255.965120833</TD><TD>-22.1018722222</TD><TD>5</TD><TD>2007-02-22 12:50:16</TD><TD>2007-02-22 12:50:26</TD><TD>10.000</TD><TD>WFPC2 </TD><TD>PC1</TD><TD>F410M</TD><TD>10871</TD><TD>2008-02-23 13:59:45</TD><TD>U9PN0708M</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLB3011</TD><TD>JUPITER-NORTH-B3</TD><TD>256.0528125</TD><TD>-22.1025444444</TD><TD>25</TD><TD>2007-02-23 08:55:53</TD><TD>2007-02-23 09:06:54</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-02-23 22:46:37</TD><TD>J9RLB3011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLB3021</TD><TD>JUPITER-NORTH-B3</TD><TD>256.054691667</TD><TD>-22.1027027778</TD><TD>25</TD><TD>2007-02-23 09:07:51</TD><TD>2007-02-23 09:28:12</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-02-23 22:50:12</TD><TD>J9RLB3021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLB3031</TD><TD>JUPITER-NORTH-B3</TD><TD>256.05575</TD><TD>-22.1027916667</TD><TD>25</TD><TD>2007-02-23 09:29:09</TD><TD>2007-02-23 09:40:10</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-02-23 22:52:16</TD><TD>J9RLB3031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLB4011</TD><TD>JUPITER-SOUTH-B4</TD><TD>256.176404167</TD><TD>-22.1251611111</TD><TD>25</TD><TD>2007-02-24 08:57:14</TD><TD>2007-02-24 09:08:15</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-02-24 15:51:09</TD><TD>J9RLB4011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLB4021</TD><TD>JUPITER-SOUTH-B4</TD><TD>256.178245833</TD><TD>-22.1253138889</TD><TD>25</TD><TD>2007-02-24 09:09:12</TD><TD>2007-02-24 09:29:33</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-02-24 15:58:13</TD><TD>J9RLB4021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLB4031</TD><TD>JUPITER-SOUTH-B4</TD><TD>256.179283333</TD><TD>-22.1254027778</TD><TD>25</TD><TD>2007-02-24 09:30:30</TD><TD>2007-02-24 09:41:31</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-02-24 16:00:12</TD><TD>J9RLB4031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLB4041</TD><TD>JUPITER-SOUTH-B4</TD><TD>256.184479167</TD><TD>-22.1258361111</TD><TD>25</TD><TD>2007-02-24 10:30:33</TD><TD>2007-02-24 10:41:34</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-02-24 16:02:18</TD><TD>J9RLB4041</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLB4051</TD><TD>JUPITER-SOUTH-B4</TD><TD>256.186320833</TD><TD>-22.1259916667</TD><TD>25</TD><TD>2007-02-24 10:42:31</TD><TD>2007-02-24 11:02:52</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-02-24 16:06:19</TD><TD>J9RLB4051</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLB4061</TD><TD>JUPITER-SOUTH-B4</TD><TD>256.187354167</TD><TD>-22.1260777778</TD><TD>25</TD><TD>2007-02-24 11:03:49</TD><TD>2007-02-24 11:14:50</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-02-24 16:07:48</TD><TD>J9RLB4061</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLB4071</TD><TD>JUPITER-SOUTH-B4</TD><TD>256.192770833</TD><TD>-22.1265305556</TD><TD>25</TD><TD>2007-02-24 12:06:30</TD><TD>2007-02-24 12:17:31</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-02-24 16:09:49</TD><TD>J9RLB4071</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLB4081</TD><TD>JUPITER-SOUTH-B4</TD><TD>256.194608333</TD><TD>-22.1266861111</TD><TD>25</TD><TD>2007-02-24 12:18:28</TD><TD>2007-02-24 12:38:49</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-02-24 16:13:52</TD><TD>J9RLB4081</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLG4011</TD><TD>JUPITER-NORTH-B4</TD><TD>256.197595833</TD><TD>-22.1146777778</TD><TD>25</TD><TD>2007-02-24 12:41:08</TD><TD>2007-02-24 12:52:09</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-02-24 16:15:25</TD><TD>J9RLG4011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLG4021</TD><TD>JUPITER-NORTH-B4</TD><TD>256.2028875</TD><TD>-22.1151194444</TD><TD>25</TD><TD>2007-02-24 13:42:27</TD><TD>2007-02-24 13:53:28</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-02-24 16:17:23</TD><TD>J9RLG4021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLG4031</TD><TD>JUPITER-NORTH-B4</TD><TD>256.204725</TD><TD>-22.115275</TD><TD>25</TD><TD>2007-02-24 13:54:25</TD><TD>2007-02-24 14:14:46</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-02-24 16:21:28</TD><TD>J9RLG4031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLG4041</TD><TD>JUPITER-NORTH-B4</TD><TD>256.205758333</TD><TD>-22.1153611111</TD><TD>25</TD><TD>2007-02-24 14:15:43</TD><TD>2007-02-24 14:26:44</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-02-24 21:16:35</TD><TD>J9RLG4041</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLG4051</TD><TD>JUPITER-NORTH-B4</TD><TD>256.211158333</TD><TD>-22.1158111111</TD><TD>25</TD><TD>2007-02-24 15:18:24</TD><TD>2007-02-24 15:29:25</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-02-24 21:18:40</TD><TD>J9RLG4051</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLG4061</TD><TD>JUPITER-NORTH-B4</TD><TD>256.212991667</TD><TD>-22.1159638889</TD><TD>25</TD><TD>2007-02-24 15:30:22</TD><TD>2007-02-24 15:50:43</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-02-24 21:24:39</TD><TD>J9RLG4061</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLG4071</TD><TD>JUPITER-NORTH-B4</TD><TD>256.214020833</TD><TD>-22.11605</TD><TD>25</TD><TD>2007-02-24 15:51:40</TD><TD>2007-02-24 16:02:41</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-02-24 21:26:42</TD><TD>J9RLG4071</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLB5011</TD><TD>JUPITER-NORTH-B5</TD><TD>256.2931</TD><TD>-22.1226333333</TD><TD>25</TD><TD>2007-02-25 07:17:43</TD><TD>2007-02-25 07:28:44</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-02-25 17:55:51</TD><TD>J9RLB5011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLB5021</TD><TD>JUPITER-NORTH-B5</TD><TD>256.294908333</TD><TD>-22.1227833333</TD><TD>25</TD><TD>2007-02-25 07:29:41</TD><TD>2007-02-25 07:50:02</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-02-25 17:58:56</TD><TD>J9RLB5021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLB5031</TD><TD>JUPITER-NORTH-B5</TD><TD>256.295925</TD><TD>-22.1228666667</TD><TD>25</TD><TD>2007-02-25 07:50:59</TD><TD>2007-02-25 08:02:00</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-02-25 18:00:58</TD><TD>J9RLB5031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9PN11CGQ</TD><TD>GANYMEDE</TD><TD>256.291066667</TD><TD>-22.1350583333</TD><TD>5</TD><TD>2007-02-25 10:30:02</TD><TD>2007-02-25 10:40:03</TD><TD>600.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F125LP;N/A;F125LP</TD><TD>10871</TD><TD>2008-02-25 22:44:00</TD><TD>J9PN11CGQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9PNA1011</TD><TD>GANYMEDE-ECLIPSE</TD><TD>256.295983333</TD><TD>-22.1354861111</TD><TD>5</TD><TD>2007-02-25 10:45:03</TD><TD>2007-02-25 11:16:24</TD><TD>1800.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F125LP;N/A;F125LP</TD><TD>10871</TD><TD>2008-02-25 22:44:08</TD><TD>J9PNA1011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLB6011</TD><TD>JUPITER-NORTH-B2-B6</TD><TD>256.454008333</TD><TD>-22.1358972222</TD><TD>25</TD><TD>2007-02-26 15:16:47</TD><TD>2007-02-26 15:27:48</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-02-27 08:00:06</TD><TD>J9RLB6011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLB6021</TD><TD>JUPITER-NORTH-B2-B6</TD><TD>256.455766667</TD><TD>-22.1360416667</TD><TD>25</TD><TD>2007-02-26 15:28:45</TD><TD>2007-02-26 15:49:06</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-02-27 08:04:11</TD><TD>J9RLB6021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLB6031</TD><TD>JUPITER-NORTH-B2-B6</TD><TD>256.456754167</TD><TD>-22.1361222222</TD><TD>25</TD><TD>2007-02-26 15:50:03</TD><TD>2007-02-26 16:01:04</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-02-27 08:06:10</TD><TD>J9RLB6031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLB7011</TD><TD>JUPITER-SOUTH-B7</TD><TD>256.522958333</TD><TD>-22.1537555556</TD><TD>25</TD><TD>2007-02-27 05:43:04</TD><TD>2007-02-27 05:54:05</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-02-27 20:37:50</TD><TD>J9RLB7011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLB7021</TD><TD>JUPITER-SOUTH-B7</TD><TD>256.524691667</TD><TD>-22.1538972222</TD><TD>25</TD><TD>2007-02-27 05:55:02</TD><TD>2007-02-27 06:15:23</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-02-27 20:44:51</TD><TD>J9RLB7021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLB7031</TD><TD>JUPITER-SOUTH-B7</TD><TD>256.525666667</TD><TD>-22.153975</TD><TD>25</TD><TD>2007-02-27 06:16:20</TD><TD>2007-02-27 06:27:21</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-02-27 20:47:56</TD><TD>J9RLB7031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLB7041</TD><TD>JUPITER-SOUTH-B7</TD><TD>256.530525</TD><TD>-22.1543694444</TD><TD>25</TD><TD>2007-02-27 07:16:04</TD><TD>2007-02-27 07:27:05</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-02-27 20:50:54</TD><TD>J9RLB7041</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLB7051</TD><TD>JUPITER-SOUTH-B7</TD><TD>256.532254167</TD><TD>-22.1545111111</TD><TD>25</TD><TD>2007-02-27 07:28:02</TD><TD>2007-02-27 07:48:23</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-02-27 20:56:13</TD><TD>J9RLB7051</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLB7061</TD><TD>JUPITER-SOUTH-B7</TD><TD>256.533229167</TD><TD>-22.1545888889</TD><TD>25</TD><TD>2007-02-27 07:49:20</TD><TD>2007-02-27 08:00:21</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-02-27 20:59:06</TD><TD>J9RLB7061</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLB7071</TD><TD>JUPITER-SOUTH-B7</TD><TD>256.538316667</TD><TD>-22.1550027778</TD><TD>25</TD><TD>2007-02-27 08:52:00</TD><TD>2007-02-27 09:03:01</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-02-27 21:02:15</TD><TD>J9RLB7071</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLB7081</TD><TD>JUPITER-SOUTH-B7</TD><TD>256.540045833</TD><TD>-22.1551416667</TD><TD>25</TD><TD>2007-02-27 09:03:58</TD><TD>2007-02-27 09:24:19</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-02-27 21:06:37</TD><TD>J9RLB7081</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLB7091</TD><TD>JUPITER-SOUTH-B7</TD><TD>256.541016667</TD><TD>-22.1552222222</TD><TD>25</TD><TD>2007-02-27 09:25:16</TD><TD>2007-02-27 09:36:17</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-02-27 21:09:11</TD><TD>J9RLB7091</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLG7011</TD><TD>JUPITER-NORTH-B7</TD><TD>256.5482375</TD><TD>-22.1435666667</TD><TD>25</TD><TD>2007-02-27 10:28:50</TD><TD>2007-02-27 10:39:51</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-02-27 21:11:45</TD><TD>J9RLG7011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLG7021</TD><TD>JUPITER-NORTH-B7</TD><TD>256.5499625</TD><TD>-22.1437055556</TD><TD>25</TD><TD>2007-02-27 10:40:48</TD><TD>2007-02-27 11:01:09</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-02-27 21:15:19</TD><TD>J9RLG7021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLG7031</TD><TD>JUPITER-NORTH-B7</TD><TD>256.550933333</TD><TD>-22.1437833333</TD><TD>25</TD><TD>2007-02-27 11:02:06</TD><TD>2007-02-27 11:13:07</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-02-27 21:17:49</TD><TD>J9RLG7031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9PN10011</TD><TD>EUROPA-ECLIPSE</TD><TD>256.542079167</TD><TD>-22.1545805556</TD><TD>5</TD><TD>2007-02-27 12:03:47</TD><TD>2007-02-27 12:45:48</TD><TD>2400.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F125LP;N/A;F125LP</TD><TD>10871</TD><TD>2008-02-27 21:35:52</TD><TD>J9PN10011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLBX011</TD><TD>JUPITER-NORTH-B7</TD><TD>256.563683333</TD><TD>-22.1448166667</TD><TD>25</TD><TD>2007-02-27 13:39:42</TD><TD>2007-02-27 13:50:43</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-02-27 21:38:08</TD><TD>J9RLBX011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLBX021</TD><TD>JUPITER-NORTH-B7</TD><TD>256.565404167</TD><TD>-22.1449555556</TD><TD>25</TD><TD>2007-02-27 13:51:40</TD><TD>2007-02-27 14:12:01</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-02-27 21:43:08</TD><TD>J9RLBX021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLBX031</TD><TD>JUPITER-NORTH-B7</TD><TD>256.566370833</TD><TD>-22.1450333333</TD><TD>25</TD><TD>2007-02-27 14:12:58</TD><TD>2007-02-27 14:23:59</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-02-27 21:46:42</TD><TD>J9RLBX031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9PN09011</TD><TD>IO-ECLIPSE</TD><TD>256.557904167</TD><TD>-22.1551416667</TD><TD>5</TD><TD>2007-02-27 15:15:37</TD><TD>2007-02-27 15:37:38</TD><TD>1200.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F125LP;N/A;F125LP</TD><TD>10871</TD><TD>2008-02-27 22:07:08</TD><TD>J9PN09011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9PN09021</TD><TD>IO-ECLIPSE</TD><TD>256.560666667</TD><TD>-22.1553805556</TD><TD>5</TD><TD>2007-02-27 15:38:50</TD><TD>2007-02-27 15:55:11</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F125LP;N/A;F125LP</TD><TD>10871</TD><TD>2008-02-27 22:07:21</TD><TD>J9PN09021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9PN09E8Q</TD><TD>IO-ECLIPSE</TD><TD>256.5615625</TD><TD>-22.1554583333</TD><TD>5</TD><TD>2007-02-27 15:55:50</TD><TD>2007-02-27 16:00:36</TD><TD>285.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F125LP;N/A;F125LP</TD><TD>10871</TD><TD>2008-02-27 22:06:13</TD><TD>J9PN09E8Q</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLB8011</TD><TD>JUPITER-NORTH-B8</TD><TD>256.642345833</TD><TD>-22.150925</TD><TD>25</TD><TD>2007-02-28 05:38:48</TD><TD>2007-02-28 06:04:01</TD><TD>510.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-02-28 21:47:07</TD><TD>J9RLB8011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLB8021</TD><TD>JUPITER-NORTH-B8</TD><TD>256.6437375</TD><TD>-22.1510388889</TD><TD>25</TD><TD>2007-02-28 06:04:40</TD><TD>2007-02-28 06:21:31</TD><TD>450.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-02-28 21:55:16</TD><TD>J9RLB8021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U9PN0601M</TD><TD>IO-162</TD><TD>256.690341667</TD><TD>-22.1590861111</TD><TD>5</TD><TD>2007-02-28 12:03:16</TD><TD>2007-02-28 12:03:39</TD><TD>23.000</TD><TD>WFPC2 </TD><TD>PC1</TD><TD>F336W</TD><TD>10871</TD><TD>2008-02-28 21:18:51</TD><TD>U9PN0601M</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U9PN0602M</TD><TD>IO-162</TD><TD>256.690358333</TD><TD>-22.1590833333</TD><TD>5</TD><TD>2007-02-28 12:06:16</TD><TD>2007-02-28 12:06:26</TD><TD>10.000</TD><TD>WFPC2 </TD><TD>PC1</TD><TD>F410M</TD><TD>10871</TD><TD>2008-02-28 21:19:53</TD><TD>U9PN0602M</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U9PN0603M</TD><TD>IO-162</TD><TD>256.690375</TD><TD>-22.1590805556</TD><TD>5</TD><TD>2007-02-28 12:09:16</TD><TD>2007-02-28 12:09:16</TD><TD>0.300</TD><TD>WFPC2 </TD><TD>PC1</TD><TD>F569W</TD><TD>10871</TD><TD>2008-02-28 21:20:31</TD><TD>U9PN0603M</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U9PN0604M</TD><TD>IO-162</TD><TD>256.690391667</TD><TD>-22.1590777778</TD><TD>5</TD><TD>2007-02-28 12:12:16</TD><TD>2007-02-28 12:12:16</TD><TD>0.200</TD><TD>WFPC2 </TD><TD>PC1</TD><TD>F791W</TD><TD>10871</TD><TD>2008-02-28 21:21:03</TD><TD>U9PN0604M</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U9PN0605M</TD><TD>IO-162</TD><TD>256.690454167</TD><TD>-22.1590666667</TD><TD>5</TD><TD>2007-02-28 12:15:16</TD><TD>2007-02-28 12:25:16</TD><TD>600.000</TD><TD>WFPC2 </TD><TD>PC1</TD><TD>F255W</TD><TD>10871</TD><TD>2008-02-28 21:21:48</TD><TD>U9PN0605M</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U9PN0606M</TD><TD>IO-162</TD><TD>256.6905</TD><TD>-22.1590583333</TD><TD>5</TD><TD>2007-02-28 12:28:16</TD><TD>2007-02-28 12:38:16</TD><TD>600.000</TD><TD>WFPC2 </TD><TD>PC1</TD><TD>F255W</TD><TD>10871</TD><TD>2008-02-28 21:22:22</TD><TD>U9PN0606M</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U9PN0607M</TD><TD>IO-162</TD><TD>256.6905125</TD><TD>-22.1590555556</TD><TD>5</TD><TD>2007-02-28 12:42:16</TD><TD>2007-02-28 12:42:39</TD><TD>23.000</TD><TD>WFPC2 </TD><TD>PC1</TD><TD>F336W</TD><TD>10871</TD><TD>2008-02-28 21:27:52</TD><TD>U9PN0607M</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U9PN0608M</TD><TD>IO-162</TD><TD>256.690520833</TD><TD>-22.1590555556</TD><TD>5</TD><TD>2007-02-28 12:45:16</TD><TD>2007-02-28 12:45:26</TD><TD>10.000</TD><TD>WFPC2 </TD><TD>PC1</TD><TD>F410M</TD><TD>10871</TD><TD>2008-02-28 21:28:47</TD><TD>U9PN0608M</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLB9011</TD><TD>JUPITER-NORTH-B9</TD><TD>256.783195833</TD><TD>-22.1620944444</TD><TD>25</TD><TD>2007-03-01 12:01:19</TD><TD>2007-03-01 12:12:20</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-03-01 15:16:27</TD><TD>J9RLB9011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLB9021</TD><TD>JUPITER-NORTH-B9</TD><TD>256.784841667</TD><TD>-22.1622222222</TD><TD>25</TD><TD>2007-03-01 12:13:17</TD><TD>2007-03-01 12:33:38</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-03-01 15:20:01</TD><TD>J9RLB9021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLB9031</TD><TD>JUPITER-NORTH-B9</TD><TD>256.785766667</TD><TD>-22.1622972222</TD><TD>25</TD><TD>2007-03-01 12:34:35</TD><TD>2007-03-01 12:45:36</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-03-01 15:23:42</TD><TD>J9RLB9031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLC0011</TD><TD>JUPITER-NORTH-C0</TD><TD>256.871591667</TD><TD>-22.169075</TD><TD>25</TD><TD>2007-03-02 07:12:29</TD><TD>2007-03-02 07:23:30</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-03-03 03:39:45</TD><TD>J9RLC0011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLC0021</TD><TD>JUPITER-NORTH-C0</TD><TD>256.873204167</TD><TD>-22.1692027778</TD><TD>25</TD><TD>2007-03-02 07:24:27</TD><TD>2007-03-02 07:44:48</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-03-03 03:42:44</TD><TD>J9RLC0021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLC0031</TD><TD>JUPITER-NORTH-C0</TD><TD>256.8741125</TD><TD>-22.1692722222</TD><TD>25</TD><TD>2007-03-02 07:45:45</TD><TD>2007-03-02 07:56:46</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-03-03 03:44:45</TD><TD>J9RLC0031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLI5011</TD><TD>IO-NS-C3A-NORTH-2CO</TD><TD>256.879625</TD><TD>-22.1699694444</TD><TD>25</TD><TD>2007-03-02 08:48:29</TD><TD>2007-03-02 09:13:42</TD><TD>510.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-03-03 03:50:18</TD><TD>J9RLI5011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLJ5011</TD><TD>IO-NS-C3A-SOUTH-2CO</TD><TD>256.879695833</TD><TD>-22.1822388889</TD><TD>25</TD><TD>2007-03-02 09:16:01</TD><TD>2007-03-02 09:32:52</TD><TD>450.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-03-03 03:54:18</TD><TD>J9RLJ5011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLC1011</TD><TD>JUPITER-NORTH-C0</TD><TD>256.965395833</TD><TD>-22.1764</TD><TD>25</TD><TD>2007-03-03 04:05:01</TD><TD>2007-03-03 04:16:02</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-03-03 15:00:06</TD><TD>J9RLC1011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLC1021</TD><TD>JUPITER-NORTH-C0</TD><TD>256.966975</TD><TD>-22.1765222222</TD><TD>25</TD><TD>2007-03-03 04:16:59</TD><TD>2007-03-03 04:37:20</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-03-03 15:08:15</TD><TD>J9RLC1021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLC1031</TD><TD>JUPITER-NORTH-C0</TD><TD>256.967858333</TD><TD>-22.1765888889</TD><TD>25</TD><TD>2007-03-03 04:38:17</TD><TD>2007-03-03 04:49:18</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-03-03 15:10:59</TD><TD>J9RLC1031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLC1041</TD><TD>JUPITER-NORTH-C0</TD><TD>256.972125</TD><TD>-22.1769222222</TD><TD>25</TD><TD>2007-03-03 05:35:56</TD><TD>2007-03-03 05:46:57</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-03-03 15:13:51</TD><TD>J9RLC1041</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLC1051</TD><TD>JUPITER-NORTH-C0</TD><TD>256.9737</TD><TD>-22.1770444444</TD><TD>25</TD><TD>2007-03-03 05:47:54</TD><TD>2007-03-03 06:08:15</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-03-03 15:17:25</TD><TD>J9RLC1051</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLC1061</TD><TD>JUPITER-NORTH-C0</TD><TD>256.974583333</TD><TD>-22.1771111111</TD><TD>25</TD><TD>2007-03-03 06:09:12</TD><TD>2007-03-03 06:20:13</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-03-03 15:19:28</TD><TD>J9RLC1061</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLCX011</TD><TD>JUPITER-SOUTH-C1</TD><TD>256.984391667</TD><TD>-22.1906527778</TD><TD>25</TD><TD>2007-03-03 08:52:59</TD><TD>2007-03-03 09:04:00</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-03-03 15:22:03</TD><TD>J9RLCX011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLCX021</TD><TD>JUPITER-SOUTH-C1</TD><TD>256.985958333</TD><TD>-22.190775</TD><TD>25</TD><TD>2007-03-03 09:04:57</TD><TD>2007-03-03 09:25:18</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-03-03 15:24:32</TD><TD>J9RLCX021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLCX031</TD><TD>JUPITER-SOUTH-C1</TD><TD>256.986841667</TD><TD>-22.1908416667</TD><TD>25</TD><TD>2007-03-03 09:26:15</TD><TD>2007-03-03 09:37:16</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-03-04 17:46:09</TD><TD>J9RLCX031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLCX041</TD><TD>JUPITER-SOUTH-C1</TD><TD>256.991079167</TD><TD>-22.1911722222</TD><TD>25</TD><TD>2007-03-03 10:23:52</TD><TD>2007-03-03 10:34:53</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-03-04 17:48:29</TD><TD>J9RLCX041</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLCX051</TD><TD>JUPITER-SOUTH-C1</TD><TD>256.992645833</TD><TD>-22.1912916667</TD><TD>25</TD><TD>2007-03-03 10:35:50</TD><TD>2007-03-03 10:56:11</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-03-04 17:53:21</TD><TD>J9RLCX051</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLCX061</TD><TD>JUPITER-SOUTH-C1</TD><TD>256.993525</TD><TD>-22.1913611111</TD><TD>25</TD><TD>2007-03-03 10:57:08</TD><TD>2007-03-03 11:08:09</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-03-04 17:55:27</TD><TD>J9RLCX061</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLCX071</TD><TD>JUPITER-SOUTH-C1</TD><TD>256.998133333</TD><TD>-22.1917166667</TD><TD>25</TD><TD>2007-03-03 11:59:51</TD><TD>2007-03-03 12:10:52</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-03-04 17:57:27</TD><TD>J9RLCX071</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLCX081</TD><TD>JUPITER-SOUTH-C1</TD><TD>256.9997</TD><TD>-22.1918388889</TD><TD>25</TD><TD>2007-03-03 12:11:49</TD><TD>2007-03-03 12:32:10</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-03-04 18:00:31</TD><TD>J9RLCX081</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLCX091</TD><TD>JUPITER-SOUTH-C1</TD><TD>257.000575</TD><TD>-22.1919055556</TD><TD>25</TD><TD>2007-03-03 12:33:07</TD><TD>2007-03-03 12:44:08</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-03-04 18:02:34</TD><TD>J9RLCX091</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLC2011</TD><TD>JUPITER-NORTH-C0</TD><TD>257.097883333</TD><TD>-22.1866194444</TD><TD>25</TD><TD>2007-03-04 10:23:41</TD><TD>2007-03-04 10:34:42</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-03-04 20:02:22</TD><TD>J9RLC2011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLC2021</TD><TD>JUPITER-NORTH-C0</TD><TD>257.0994125</TD><TD>-22.1867361111</TD><TD>25</TD><TD>2007-03-04 10:35:39</TD><TD>2007-03-04 10:56:00</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-03-04 20:05:22</TD><TD>J9RLC2021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLC2031</TD><TD>JUPITER-NORTH-C0</TD><TD>257.100266667</TD><TD>-22.1868027778</TD><TD>25</TD><TD>2007-03-04 10:56:57</TD><TD>2007-03-04 11:07:58</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-03-04 20:07:24</TD><TD>J9RLC2031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLC3011</TD><TD>JUPITER-NORTH-C0</TD><TD>257.1794875</TD><TD>-22.1928416667</TD><TD>25</TD><TD>2007-03-05 05:35:23</TD><TD>2007-03-05 05:46:24</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-03-05 17:37:12</TD><TD>J9RLC3011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLC3021</TD><TD>JUPITER-NORTH-C0</TD><TD>257.180979167</TD><TD>-22.1929527778</TD><TD>25</TD><TD>2007-03-05 05:47:21</TD><TD>2007-03-05 06:07:42</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-03-05 17:44:26</TD><TD>J9RLC3021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLC3031</TD><TD>JUPITER-NORTH-C0</TD><TD>257.181820833</TD><TD>-22.1930166667</TD><TD>25</TD><TD>2007-03-05 06:08:39</TD><TD>2007-03-05 06:19:40</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-03-05 17:47:33</TD><TD>J9RLC3031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLC4011</TD><TD>JUPITER-NORTH-C4</TD><TD>257.298566667</TD><TD>-22.2015388889</TD><TD>25</TD><TD>2007-03-06 10:22:50</TD><TD>2007-03-06 10:33:51</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-03-06 18:44:53</TD><TD>J9RLC4011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLC4021</TD><TD>JUPITER-NORTH-C4</TD><TD>257.300008333</TD><TD>-22.2016472222</TD><TD>25</TD><TD>2007-03-06 10:34:48</TD><TD>2007-03-06 10:55:09</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-03-06 18:48:57</TD><TD>J9RLC4021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLC4031</TD><TD>JUPITER-NORTH-C4</TD><TD>257.300816667</TD><TD>-22.2017083333</TD><TD>25</TD><TD>2007-03-06 10:56:06</TD><TD>2007-03-06 11:07:07</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-03-06 18:50:58</TD><TD>J9RLC4031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLC5011</TD><TD>JUPITER-NORTH-C4</TD><TD>257.376654167</TD><TD>-22.2073583333</TD><TD>25</TD><TD>2007-03-07 05:34:23</TD><TD>2007-03-07 05:59:36</TD><TD>510.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-03-07 15:54:49</TD><TD>J9RLC5011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLC5021</TD><TD>JUPITER-NORTH-C4</TD><TD>257.3778125</TD><TD>-22.2074444444</TD><TD>25</TD><TD>2007-03-07 06:00:15</TD><TD>2007-03-07 06:17:06</TD><TD>450.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-03-07 15:59:10</TD><TD>J9RLC5021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLC6011</TD><TD>JUPITER-SOUTH-C6</TD><TD>257.473545833</TD><TD>-22.22785</TD><TD>25</TD><TD>2007-03-08 07:09:40</TD><TD>2007-03-08 07:20:41</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-03-08 16:00:56</TD><TD>J9RLC6011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLC6021</TD><TD>JUPITER-SOUTH-C6</TD><TD>257.474908333</TD><TD>-22.22795</TD><TD>25</TD><TD>2007-03-08 07:21:38</TD><TD>2007-03-08 07:41:59</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-03-08 16:04:27</TD><TD>J9RLC6021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLC6031</TD><TD>JUPITER-SOUTH-C6</TD><TD>257.475675</TD><TD>-22.2280055556</TD><TD>25</TD><TD>2007-03-08 07:42:56</TD><TD>2007-03-08 07:53:57</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-03-08 16:06:29</TD><TD>J9RLC6031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLI6011</TD><TD>IO-NS-C3B-SOUTH-2CO</TD><TD>257.570454167</TD><TD>-22.2346138889</TD><TD>25</TD><TD>2007-03-09 08:44:46</TD><TD>2007-03-09 09:02:47</TD><TD>480.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-03-09 15:50:37</TD><TD>J9RLI6011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLJ6011</TD><TD>IO-NS-C3B-NORTH-2CO</TD><TD>257.574108333</TD><TD>-22.2221</TD><TD>25</TD><TD>2007-03-09 09:10:09</TD><TD>2007-03-09 09:27:00</TD><TD>450.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-03-09 15:55:41</TD><TD>J9RLJ6011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLI7011</TD><TD>IO-NS-C3A-NORTH-2CO-I7</TD><TD>257.578983333</TD><TD>-22.2224527778</TD><TD>25</TD><TD>2007-03-09 10:20:43</TD><TD>2007-03-09 10:45:56</TD><TD>510.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-03-09 16:01:14</TD><TD>J9RLI7011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLJ7011</TD><TD>IO-NS-C3A-SOUTH-2CO-I7</TD><TD>257.578008333</TD><TD>-22.2351611111</TD><TD>25</TD><TD>2007-03-09 10:48:15</TD><TD>2007-03-09 11:05:06</TD><TD>450.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-03-09 16:08:24</TD><TD>J9RLJ7011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLC7011</TD><TD>JUPITER-NORTH-C4</TD><TD>257.6424125</TD><TD>-22.2267388889</TD><TD>25</TD><TD>2007-03-10 03:56:01</TD><TD>2007-03-10 04:07:02</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-03-12 13:56:57</TD><TD>J9RLC7011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLC7021</TD><TD>JUPITER-NORTH-C4</TD><TD>257.643695833</TD><TD>-22.2268333333</TD><TD>25</TD><TD>2007-03-10 04:07:59</TD><TD>2007-03-10 04:28:20</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-03-12 14:01:44</TD><TD>J9RLC7021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLC7031</TD><TD>JUPITER-NORTH-C4</TD><TD>257.644416667</TD><TD>-22.2268833333</TD><TD>25</TD><TD>2007-03-10 04:29:17</TD><TD>2007-03-10 04:40:18</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-03-12 14:03:43</TD><TD>J9RLC7031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLC8011</TD><TD>JUPITER-SOUTH-C8-C9</TD><TD>257.657429167</TD><TD>-22.2411472222</TD><TD>25</TD><TD>2007-03-10 08:43:49</TD><TD>2007-03-10 08:54:50</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-03-12 14:06:07</TD><TD>J9RLC8011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLC8021</TD><TD>JUPITER-SOUTH-C8-C9</TD><TD>257.6587</TD><TD>-22.2412388889</TD><TD>25</TD><TD>2007-03-10 08:55:47</TD><TD>2007-03-10 09:16:08</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-03-12 14:10:52</TD><TD>J9RLC8021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLC8031</TD><TD>JUPITER-SOUTH-C8-C9</TD><TD>257.659416667</TD><TD>-22.2412888889</TD><TD>25</TD><TD>2007-03-10 09:17:05</TD><TD>2007-03-10 09:28:06</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-03-12 14:13:03</TD><TD>J9RLC8031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLC9011</TD><TD>JUPITER-SOUTH-C8-C9</TD><TD>257.725316667</TD><TD>-22.2459777778</TD><TD>25</TD><TD>2007-03-11 03:54:59</TD><TD>2007-03-11 04:06:00</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-03-12 14:51:06</TD><TD>J9RLC9011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLC9021</TD><TD>JUPITER-SOUTH-C8-C9</TD><TD>257.726554167</TD><TD>-22.2460638889</TD><TD>25</TD><TD>2007-03-11 04:06:57</TD><TD>2007-03-11 04:27:18</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-03-12 14:57:04</TD><TD>J9RLC9021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLC9031</TD><TD>JUPITER-SOUTH-C8-C9</TD><TD>257.72725</TD><TD>-22.2461138889</TD><TD>25</TD><TD>2007-03-11 04:28:15</TD><TD>2007-03-11 04:39:16</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-03-12 14:59:21</TD><TD>J9RLC9031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U9XE0301M</TD><TD>EUROPA-ECLIPSE</TD><TD>257.929758333</TD><TD>-22.2549888889</TD><TD>1</TD><TD>2007-03-13 18:16:16</TD><TD>2007-03-13 18:26:16</TD><TD>600.000</TD><TD>WFPC2 </TD><TD>PC1-FIX</TD><TD>F380W</TD><TD>11085</TD><TD>2008-03-15 04:34:26</TD><TD>U9XE0301M</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U9XE0302M</TD><TD>EUROPA-ECLIPSE</TD><TD>257.931279167</TD><TD>-22.2551055556</TD><TD>1</TD><TD>2007-03-13 18:29:16</TD><TD>2007-03-13 18:39:16</TD><TD>600.000</TD><TD>WFPC2 </TD><TD>PC1-FIX</TD><TD>F606W</TD><TD>11085</TD><TD>2008-03-15 04:34:41</TD><TD>U9XE0302M</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U9XE0303M</TD><TD>EUROPA-ECLIPSE</TD><TD>257.9328</TD><TD>-22.2552222222</TD><TD>1</TD><TD>2007-03-13 18:42:16</TD><TD>2007-03-13 18:52:16</TD><TD>600.000</TD><TD>WFPC2 </TD><TD>PC1-FIX</TD><TD>F814W</TD><TD>11085</TD><TD>2008-03-15 04:34:53</TD><TD>U9XE0303M</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLI9011</TD><TD>GAN-FP-NORTH2</TD><TD>258.179283333</TD><TD>-22.2633861111</TD><TD>25</TD><TD>2007-03-17 05:22:55</TD><TD>2007-03-17 05:37:16</TD><TD>540.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-03-18 15:19:58</TD><TD>J9RLI9011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLJ9011</TD><TD>GAN-FP-SOUTH2</TD><TD>258.177875</TD><TD>-22.2771861111</TD><TD>25</TD><TD>2007-03-17 05:39:37</TD><TD>2007-03-17 05:52:18</TD><TD>480.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-03-18 22:47:38</TD><TD>J9RLJ9011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLK9011</TD><TD>GAN-FP-NORTH2</TD><TD>258.180641667</TD><TD>-22.263475</TD><TD>25</TD><TD>2007-03-17 05:54:39</TD><TD>2007-03-17 06:07:20</TD><TD>480.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-03-18 22:50:29</TD><TD>J9RLK9011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U9XE0101M</TD><TD>EUROPA</TD><TD>258.3723875</TD><TD>-22.2842138889</TD><TD>1</TD><TD>2007-03-20 18:06:16</TD><TD>2007-03-20 18:06:26</TD><TD>10.000</TD><TD>WFPC2 </TD><TD>PC1-FIX</TD><TD>F300W</TD><TD>11085</TD><TD>2008-03-20 21:12:44</TD><TD>U9XE0101M</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U9XE0102M</TD><TD>EUROPA</TD><TD>258.3725875</TD><TD>-22.2842277778</TD><TD>1</TD><TD>2007-03-20 18:08:16</TD><TD>2007-03-20 18:08:26</TD><TD>10.000</TD><TD>WFPC2 </TD><TD>PC1-FIX</TD><TD>F300W</TD><TD>11085</TD><TD>2008-03-20 21:12:58</TD><TD>U9XE0102M</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U9XE0103M</TD><TD>EUROPA</TD><TD>258.372883333</TD><TD>-22.2842527778</TD><TD>1</TD><TD>2007-03-20 18:11:16</TD><TD>2007-03-20 18:11:17</TD><TD>1.200</TD><TD>WFPC2 </TD><TD>PC1-FIX</TD><TD>F380W</TD><TD>11085</TD><TD>2008-03-20 21:13:10</TD><TD>U9XE0103M</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U9XE0104M</TD><TD>EUROPA</TD><TD>258.373083333</TD><TD>-22.2842694444</TD><TD>1</TD><TD>2007-03-20 18:13:16</TD><TD>2007-03-20 18:13:17</TD><TD>1.200</TD><TD>WFPC2 </TD><TD>PC1-FIX</TD><TD>F380W</TD><TD>11085</TD><TD>2008-03-20 21:13:22</TD><TD>U9XE0104M</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U9XE0105M</TD><TD>EUROPA</TD><TD>258.373383333</TD><TD>-22.2842944444</TD><TD>1</TD><TD>2007-03-20 18:16:16</TD><TD>2007-03-20 18:16:16</TD><TD>0.110</TD><TD>WFPC2 </TD><TD>PC1-FIX</TD><TD>F555W</TD><TD>11085</TD><TD>2008-03-20 21:13:33</TD><TD>U9XE0105M</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U9XE0106M</TD><TD>EUROPA</TD><TD>258.373583333</TD><TD>-22.2843083333</TD><TD>1</TD><TD>2007-03-20 18:18:16</TD><TD>2007-03-20 18:18:16</TD><TD>0.110</TD><TD>WFPC2 </TD><TD>PC1-FIX</TD><TD>F555W</TD><TD>11085</TD><TD>2008-03-20 21:13:45</TD><TD>U9XE0106M</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U9XE0107M</TD><TD>EUROPA</TD><TD>258.373879167</TD><TD>-22.2843333333</TD><TD>1</TD><TD>2007-03-20 18:21:16</TD><TD>2007-03-20 18:21:16</TD><TD>0.110</TD><TD>WFPC2 </TD><TD>PC1-FIX</TD><TD>F675W</TD><TD>11085</TD><TD>2008-03-20 21:13:58</TD><TD>U9XE0107M</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U9XE0108M</TD><TD>EUROPA</TD><TD>258.374079167</TD><TD>-22.28435</TD><TD>1</TD><TD>2007-03-20 18:23:16</TD><TD>2007-03-20 18:23:16</TD><TD>0.110</TD><TD>WFPC2 </TD><TD>PC1-FIX</TD><TD>F675W</TD><TD>11085</TD><TD>2008-03-20 21:23:17</TD><TD>U9XE0108M</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U9XE0109M</TD><TD>EUROPA</TD><TD>258.374379167</TD><TD>-22.284375</TD><TD>1</TD><TD>2007-03-20 18:26:16</TD><TD>2007-03-20 18:26:16</TD><TD>0.200</TD><TD>WFPC2 </TD><TD>PC1-FIX</TD><TD>F814W</TD><TD>11085</TD><TD>2008-03-21 11:44:09</TD><TD>U9XE0109M</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U9XE010AM</TD><TD>EUROPA</TD><TD>258.374579167</TD><TD>-22.2843888889</TD><TD>1</TD><TD>2007-03-20 18:28:16</TD><TD>2007-03-20 18:28:16</TD><TD>0.200</TD><TD>WFPC2 </TD><TD>PC1-FIX</TD><TD>F814W</TD><TD>11085</TD><TD>2008-03-21 11:45:48</TD><TD>U9XE010AM</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U9XE010BM</TD><TD>EUROPA</TD><TD>258.374879167</TD><TD>-22.2844138889</TD><TD>1</TD><TD>2007-03-20 18:31:16</TD><TD>2007-03-20 18:31:21</TD><TD>5.000</TD><TD>WFPC2 </TD><TD>PC1-FIX</TD><TD>F631N</TD><TD>11085</TD><TD>2008-03-21 11:46:00</TD><TD>U9XE010BM</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U9XE010CM</TD><TD>EUROPA</TD><TD>258.375079167</TD><TD>-22.2844305556</TD><TD>1</TD><TD>2007-03-20 18:33:16</TD><TD>2007-03-20 18:33:21</TD><TD>5.000</TD><TD>WFPC2 </TD><TD>PC1-FIX</TD><TD>F631N</TD><TD>11085</TD><TD>2008-03-21 11:46:11</TD><TD>U9XE010CM</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U9XE010DM</TD><TD>EUROPA</TD><TD>258.375379167</TD><TD>-22.2844527778</TD><TD>1</TD><TD>2007-03-20 18:36:16</TD><TD>2007-03-20 18:36:24</TD><TD>8.000</TD><TD>WFPC2 </TD><TD>PC1-FIX</TD><TD>F656N</TD><TD>11085</TD><TD>2008-03-21 11:54:04</TD><TD>U9XE010DM</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U9XE010EM</TD><TD>EUROPA</TD><TD>258.375579167</TD><TD>-22.2844694444</TD><TD>1</TD><TD>2007-03-20 18:38:16</TD><TD>2007-03-20 18:38:24</TD><TD>8.000</TD><TD>WFPC2 </TD><TD>PC1-FIX</TD><TD>F656N</TD><TD>11085</TD><TD>2008-03-21 11:54:16</TD><TD>U9XE010EM</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U9XE010FM</TD><TD>EUROPA</TD><TD>258.376683333</TD><TD>-22.2845583333</TD><TD>1</TD><TD>2007-03-20 18:41:16</TD><TD>2007-03-20 18:49:36</TD><TD>500.000</TD><TD>WFPC2 </TD><TD>PC1-FIX</TD><TD>F255W</TD><TD>11085</TD><TD>2008-03-21 11:54:21</TD><TD>U9XE010FM</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLI8011</TD><TD>GAN-FP-NORTH1</TD><TD>258.500275</TD><TD>-22.2839694444</TD><TD>25</TD><TD>2007-03-22 22:50:14</TD><TD>2007-03-22 23:04:35</TD><TD>540.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-03-23 22:52:43</TD><TD>J9RLI8011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLJ8011</TD><TD>GAN-FP-SOUTH1</TD><TD>258.4977625</TD><TD>-22.2970416667</TD><TD>25</TD><TD>2007-03-22 23:06:55</TD><TD>2007-03-22 23:19:36</TD><TD>480.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-03-23 22:56:15</TD><TD>J9RLJ8011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLK8011</TD><TD>GAN-FP-NORTH1</TD><TD>258.501245833</TD><TD>-22.2840277778</TD><TD>25</TD><TD>2007-03-22 23:21:56</TD><TD>2007-03-22 23:34:37</TD><TD>480.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-03-23 22:59:18</TD><TD>J9RLK8011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLI0011</TD><TD>IO-NS-C1A-NORTH</TD><TD>258.730033333</TD><TD>-22.2889194444</TD><TD>25</TD><TD>2007-04-13 17:30:37</TD><TD>2007-04-13 17:55:50</TD><TD>510.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-04-15 00:03:05</TD><TD>J9RLI0011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLJ0011</TD><TD>IO-NS-C1A-SOUTH</TD><TD>258.727429167</TD><TD>-22.3037472222</TD><TD>25</TD><TD>2007-04-13 17:58:12</TD><TD>2007-04-13 18:15:03</TD><TD>450.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-04-15 00:07:06</TD><TD>J9RLJ0011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U9XE0201M</TD><TD>EUROPA-ECLIPSE</TD><TD>258.696041667</TD><TD>-22.2957027778</TD><TD>1</TD><TD>2007-04-14 17:28:16</TD><TD>2007-04-14 17:33:16</TD><TD>300.000</TD><TD>WFPC2 </TD><TD>PC1-FIX</TD><TD>F555W</TD><TD>11085</TD><TD>2008-04-15 15:52:22</TD><TD>U9XE0201M</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U9XE0202M</TD><TD>EUROPA-ECLIPSE</TD><TD>258.696395833</TD><TD>-22.2957305556</TD><TD>1</TD><TD>2007-04-14 17:36:16</TD><TD>2007-04-14 17:40:36</TD><TD>260.000</TD><TD>WFPC2 </TD><TD>PC1-FIX</TD><TD>F675W</TD><TD>11085</TD><TD>2008-04-15 15:52:34</TD><TD>U9XE0202M</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U9XE0203M</TD><TD>EUROPA-ECLIPSE</TD><TD>258.69685</TD><TD>-22.2957638889</TD><TD>1</TD><TD>2007-04-14 17:43:16</TD><TD>2007-04-14 17:49:56</TD><TD>400.000</TD><TD>WFPC2 </TD><TD>PC1-FIX</TD><TD>F380W</TD><TD>11085</TD><TD>2008-04-15 15:52:55</TD><TD>U9XE0203M</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U9XE0204M</TD><TD>EUROPA-ECLIPSE</TD><TD>258.697304167</TD><TD>-22.2958</TD><TD>1</TD><TD>2007-04-14 17:52:16</TD><TD>2007-04-14 17:58:56</TD><TD>400.000</TD><TD>WFPC2 </TD><TD>PC1-FIX</TD><TD>F300W</TD><TD>11085</TD><TD>2008-04-15 15:53:02</TD><TD>U9XE0204M</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U9XE0205M</TD><TD>EUROPA-ECLIPSE</TD><TD>258.697608333</TD><TD>-22.295825</TD><TD>1</TD><TD>2007-04-14 18:01:16</TD><TD>2007-04-14 18:04:36</TD><TD>200.000</TD><TD>WFPC2 </TD><TD>PC1-FIX</TD><TD>F814W</TD><TD>11085</TD><TD>2008-04-15 15:53:18</TD><TD>U9XE0205M</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U9XE0206M</TD><TD>EUROPA-ECLIPSE</TD><TD>258.698016667</TD><TD>-22.2958555556</TD><TD>1</TD><TD>2007-04-14 18:09:16</TD><TD>2007-04-14 18:12:36</TD><TD>200.000</TD><TD>WFPC2 </TD><TD>PC1-FIX</TD><TD>F814W</TD><TD>11085</TD><TD>2008-04-15 15:53:21</TD><TD>U9XE0206M</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLI3011</TD><TD>IO-NS-C3C-NORTH</TD><TD>258.614783333</TD><TD>-22.2801166667</TD><TD>25</TD><TD>2007-04-17 07:47:23</TD><TD>2007-04-17 08:12:36</TD><TD>510.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-04-17 13:08:17</TD><TD>J9RLI3011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLJ3011</TD><TD>IO-NS-C3C-SOUTH</TD><TD>258.6121875</TD><TD>-22.2938305556</TD><TD>25</TD><TD>2007-04-17 08:14:57</TD><TD>2007-04-17 08:31:48</TD><TD>450.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-04-17 13:12:18</TD><TD>J9RLJ3011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLI4011</TD><TD>IO-NS-C2-NORTH</TD><TD>258.612245833</TD><TD>-22.2799138889</TD><TD>25</TD><TD>2007-04-17 09:23:17</TD><TD>2007-04-17 09:48:30</TD><TD>510.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-04-17 17:20:49</TD><TD>J9RLI4011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLJ4011</TD><TD>IO-NS-C2-SOUTH</TD><TD>258.609645833</TD><TD>-22.2936305556</TD><TD>25</TD><TD>2007-04-17 09:50:51</TD><TD>2007-04-17 10:07:42</TD><TD>450.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-04-17 17:25:21</TD><TD>J9RLJ4011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLI2011</TD><TD>IO-NS-C1C-NORTH</TD><TD>258.607125</TD><TD>-22.2795111111</TD><TD>25</TD><TD>2007-04-17 12:35:05</TD><TD>2007-04-17 13:00:18</TD><TD>510.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-04-19 06:38:46</TD><TD>J9RLI2011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLJ2011</TD><TD>IO-NS-C1C-SOUTH</TD><TD>258.604516667</TD><TD>-22.293225</TD><TD>25</TD><TD>2007-04-17 13:02:39</TD><TD>2007-04-17 13:19:30</TD><TD>450.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-04-19 06:43:19</TD><TD>J9RLJ2011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9XE05011</TD><TD>EUROPA</TD><TD>258.561929167</TD><TD>-22.2856027778</TD><TD>1</TD><TD>2007-04-18 04:34:02</TD><TD>2007-04-18 05:18:03</TD><TD>2600.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>PR130L;N/A;PR130L</TD><TD>11085</TD><TD>2008-04-19 18:50:36</TD><TD>J9XE05011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9XE06011</TD><TD>EUROPA-ECLIPSE</TD><TD>258.5659875</TD><TD>-22.2859638889</TD><TD>1</TD><TD>2007-04-18 06:11:02</TD><TD>2007-04-18 06:55:03</TD><TD>2600.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>PR130L;N/A;PR130L</TD><TD>11085</TD><TD>2008-04-19 18:50:41</TD><TD>J9XE06011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLI1011</TD><TD>IO-NS-C1B-NORTH</TD><TD>258.2578</TD><TD>-22.2531388889</TD><TD>25</TD><TD>2007-04-24 12:30:21</TD><TD>2007-04-24 12:55:34</TD><TD>510.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-04-24 18:25:41</TD><TD>J9RLI1011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLJ1011</TD><TD>IO-NS-C1B-SOUTH</TD><TD>258.2543625</TD><TD>-22.2661888889</TD><TD>25</TD><TD>2007-04-24 12:57:54</TD><TD>2007-04-24 13:14:45</TD><TD>450.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-04-24 18:31:13</TD><TD>J9RLJ1011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U9XE0701M</TD><TD>EUROPA-ECLIPSE</TD><TD>257.953225</TD><TD>-22.2390222222</TD><TD>1</TD><TD>2007-04-28 22:01:16</TD><TD>2007-04-28 22:11:16</TD><TD>600.000</TD><TD>WFPC2 </TD><TD>PC1-FIX</TD><TD>F300W</TD><TD>11085</TD><TD>2008-04-29 14:42:32</TD><TD>U9XE0701M</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U9XE0702M</TD><TD>EUROPA-ECLIPSE</TD><TD>257.953379167</TD><TD>-22.2390388889</TD><TD>1</TD><TD>2007-04-28 22:14:16</TD><TD>2007-04-28 22:18:36</TD><TD>260.000</TD><TD>WFPC2 </TD><TD>PC1-FIX</TD><TD>F675W</TD><TD>11085</TD><TD>2008-04-29 14:42:35</TD><TD>U9XE0702M</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U9XE0703M</TD><TD>EUROPA-ECLIPSE</TD><TD>257.953554167</TD><TD>-22.2390583333</TD><TD>1</TD><TD>2007-04-28 22:21:16</TD><TD>2007-04-28 22:26:16</TD><TD>300.000</TD><TD>WFPC2 </TD><TD>PC1-FIX</TD><TD>F555W</TD><TD>11085</TD><TD>2008-04-29 14:43:08</TD><TD>U9XE0703M</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U9XE0704M</TD><TD>EUROPA-ECLIPSE</TD><TD>257.953754167</TD><TD>-22.2390805556</TD><TD>1</TD><TD>2007-04-28 22:29:16</TD><TD>2007-04-28 22:35:56</TD><TD>400.000</TD><TD>WFPC2 </TD><TD>PC1-FIX</TD><TD>F380W</TD><TD>11085</TD><TD>2008-04-29 14:43:22</TD><TD>U9XE0704M</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U9XE0705M</TD><TD>EUROPA-ECLIPSE</TD><TD>257.95395</TD><TD>-22.2391</TD><TD>1</TD><TD>2007-04-28 22:38:16</TD><TD>2007-04-28 22:44:56</TD><TD>400.000</TD><TD>WFPC2 </TD><TD>PC1-FIX</TD><TD>F814W</TD><TD>11085</TD><TD>2008-04-29 14:43:38</TD><TD>U9XE0705M</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U9XE0401M</TD><TD>EUROPA-ECLIPSE-2</TD><TD>257.0083</TD><TD>-22.1672777778</TD><TD>1</TD><TD>2007-05-09 13:50:16</TD><TD>2007-05-09 13:56:56</TD><TD>400.000</TD><TD>WFPC2 </TD><TD>PC1-FIX</TD><TD>F656N</TD><TD>11085</TD><TD>2008-05-10 06:11:50</TD><TD>U9XE0401M</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U9XE0402M</TD><TD>EUROPA-ECLIPSE-2</TD><TD>257.008329167</TD><TD>-22.1672888889</TD><TD>1</TD><TD>2007-05-09 13:58:16</TD><TD>2007-05-09 14:04:56</TD><TD>400.000</TD><TD>WFPC2 </TD><TD>PC1-FIX</TD><TD>F656N</TD><TD>11085</TD><TD>2008-05-10 06:12:05</TD><TD>U9XE0402M</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U9XE0403M</TD><TD>EUROPA-ECLIPSE-2</TD><TD>257.008354167</TD><TD>-22.1672944444</TD><TD>1</TD><TD>2007-05-09 14:07:16</TD><TD>2007-05-09 14:09:56</TD><TD>160.000</TD><TD>WFPC2 </TD><TD>PC1-FIX</TD><TD>F675W</TD><TD>11085</TD><TD>2008-05-10 06:12:30</TD><TD>U9XE0403M</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U9XE0404M</TD><TD>EUROPA-ECLIPSE-2</TD><TD>257.008370833</TD><TD>-22.1673</TD><TD>1</TD><TD>2007-05-09 14:11:16</TD><TD>2007-05-09 14:13:56</TD><TD>160.000</TD><TD>WFPC2 </TD><TD>PC1-FIX</TD><TD>F675W</TD><TD>11085</TD><TD>2008-05-10 06:12:40</TD><TD>U9XE0404M</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U9XE0405M</TD><TD>EUROPA-ECLIPSE-2</TD><TD>257.008408333</TD><TD>-22.1673111111</TD><TD>1</TD><TD>2007-05-09 14:16:16</TD><TD>2007-05-09 14:22:56</TD><TD>400.000</TD><TD>WFPC2 </TD><TD>PC1-FIX</TD><TD>F631N</TD><TD>11085</TD><TD>2008-05-10 06:12:43</TD><TD>U9XE0405M</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U9XE0406M</TD><TD>EUROPA-ECLIPSE-2</TD><TD>257.008441667</TD><TD>-22.1673222222</TD><TD>1</TD><TD>2007-05-09 14:24:16</TD><TD>2007-05-09 14:30:56</TD><TD>400.000</TD><TD>WFPC2 </TD><TD>PC1-FIX</TD><TD>F631N</TD><TD>11085</TD><TD>2008-05-10 06:12:55</TD><TD>U9XE0406M</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLD0011</TD><TD>JUPITER-NORTH-D0</TD><TD>256.797525</TD><TD>-22.1421555556</TD><TD>25</TD><TD>2007-05-11 15:22:15</TD><TD>2007-05-11 15:33:16</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-05-12 01:37:35</TD><TD>J9RLD0011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLD0021</TD><TD>JUPITER-NORTH-D0</TD><TD>256.7961125</TD><TD>-22.1420444444</TD><TD>25</TD><TD>2007-05-11 15:34:13</TD><TD>2007-05-11 15:52:14</TD><TD>800.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-05-12 01:40:06</TD><TD>J9RLD0021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLD0031</TD><TD>JUPITER-NORTH-D0</TD><TD>256.795220833</TD><TD>-22.141975</TD><TD>25</TD><TD>2007-05-11 15:53:11</TD><TD>2007-05-11 16:04:12</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-05-12 01:41:38</TD><TD>J9RLD0031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLD1011</TD><TD>JUPITER-NORTH-D1</TD><TD>256.659891667</TD><TD>-22.1313944444</TD><TD>25</TD><TD>2007-05-12 21:44:16</TD><TD>2007-05-12 21:55:17</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-05-13 05:41:12</TD><TD>J9RLD1011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLD1021</TD><TD>JUPITER-NORTH-D1</TD><TD>256.658445833</TD><TD>-22.1312805556</TD><TD>25</TD><TD>2007-05-12 21:56:14</TD><TD>2007-05-12 22:14:15</TD><TD>800.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-05-13 05:43:43</TD><TD>J9RLD1021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLD1031</TD><TD>JUPITER-NORTH-D1</TD><TD>256.657529167</TD><TD>-22.1312083333</TD><TD>25</TD><TD>2007-05-12 22:15:12</TD><TD>2007-05-12 22:26:13</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-05-13 05:45:15</TD><TD>J9RLD1031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLD2011</TD><TD>JUPITER-NORTH-D2</TD><TD>256.572466667</TD><TD>-22.1244861111</TD><TD>25</TD><TD>2007-05-13 16:55:00</TD><TD>2007-05-13 17:06:01</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-05-14 12:58:11</TD><TD>J9RLD2011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLD2021</TD><TD>JUPITER-NORTH-D2</TD><TD>256.570995833</TD><TD>-22.1243694444</TD><TD>25</TD><TD>2007-05-13 17:06:58</TD><TD>2007-05-13 17:24:59</TD><TD>800.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-05-14 13:00:15</TD><TD>J9RLD2021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLD2031</TD><TD>JUPITER-NORTH-D2</TD><TD>256.570066667</TD><TD>-22.1242972222</TD><TD>25</TD><TD>2007-05-13 17:25:56</TD><TD>2007-05-13 17:36:57</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-05-14 13:02:11</TD><TD>J9RLD2031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLD3011</TD><TD>JUPITER-NORTH-D3</TD><TD>256.436766667</TD><TD>-22.1137361111</TD><TD>25</TD><TD>2007-05-14 21:41:05</TD><TD>2007-05-14 21:52:06</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-05-16 06:22:28</TD><TD>J9RLD3011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLD3021</TD><TD>JUPITER-NORTH-D3</TD><TD>256.435266667</TD><TD>-22.1136166667</TD><TD>25</TD><TD>2007-05-14 21:53:03</TD><TD>2007-05-14 22:11:04</TD><TD>800.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-05-16 06:24:56</TD><TD>J9RLD3021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLD3031</TD><TD>JUPITER-NORTH-D3</TD><TD>256.434316667</TD><TD>-22.1135416667</TD><TD>25</TD><TD>2007-05-14 22:12:01</TD><TD>2007-05-14 22:23:02</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-05-16 06:26:29</TD><TD>J9RLD3031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLD4011</TD><TD>JUPITER-NORTH-D4</TD><TD>256.330266667</TD><TD>-22.1052972222</TD><TD>25</TD><TD>2007-05-15 20:03:37</TD><TD>2007-05-15 20:14:38</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-05-16 06:28:30</TD><TD>J9RLD4011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLD4021</TD><TD>JUPITER-NORTH-D4</TD><TD>256.3287375</TD><TD>-22.1051777778</TD><TD>25</TD><TD>2007-05-15 20:15:35</TD><TD>2007-05-15 20:33:36</TD><TD>800.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-05-16 06:31:02</TD><TD>J9RLD4021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLD4031</TD><TD>JUPITER-NORTH-D4</TD><TD>256.327775</TD><TD>-22.1051</TD><TD>25</TD><TD>2007-05-15 20:34:33</TD><TD>2007-05-15 20:45:34</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-05-16 06:32:33</TD><TD>J9RLD4031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLD5011</TD><TD>JUPITER-NORTH-D5</TD><TD>256.2365</TD><TD>-22.0977694444</TD><TD>25</TD><TD>2007-05-16 15:14:26</TD><TD>2007-05-16 15:25:27</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-05-16 23:34:28</TD><TD>J9RLD5011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLD5021</TD><TD>JUPITER-NORTH-D5</TD><TD>256.234954167</TD><TD>-22.0976444444</TD><TD>25</TD><TD>2007-05-16 15:26:24</TD><TD>2007-05-16 15:44:25</TD><TD>800.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-05-16 23:37:07</TD><TD>J9RLD5021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLD5031</TD><TD>JUPITER-NORTH-D5</TD><TD>256.233979167</TD><TD>-22.0975666667</TD><TD>25</TD><TD>2007-05-16 15:45:22</TD><TD>2007-05-16 15:56:23</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-05-16 23:39:05</TD><TD>J9RLD5031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLD6011</TD><TD>JUPITER-NORTH-D6</TD><TD>256.0950125</TD><TD>-22.0864444444</TD><TD>25</TD><TD>2007-05-17 20:00:44</TD><TD>2007-05-17 20:11:45</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-05-18 17:46:02</TD><TD>J9RLD6011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLD6021</TD><TD>JUPITER-NORTH-D6</TD><TD>256.0934375</TD><TD>-22.0863166667</TD><TD>25</TD><TD>2007-05-17 20:12:42</TD><TD>2007-05-17 20:30:43</TD><TD>800.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-05-18 17:48:32</TD><TD>J9RLD6021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLD6031</TD><TD>JUPITER-NORTH-D6</TD><TD>256.092445833</TD><TD>-22.0862361111</TD><TD>25</TD><TD>2007-05-17 20:31:40</TD><TD>2007-05-17 20:42:41</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-05-18 17:50:35</TD><TD>J9RLD6031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLD7011</TD><TD>JUPITER-NORTH-D7</TD><TD>255.9908125</TD><TD>-22.0780222222</TD><TD>25</TD><TD>2007-05-18 16:47:31</TD><TD>2007-05-18 16:58:32</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-05-19 08:50:52</TD><TD>J9RLD7011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLD7021</TD><TD>JUPITER-NORTH-D7</TD><TD>255.989216667</TD><TD>-22.0778916667</TD><TD>25</TD><TD>2007-05-18 16:59:29</TD><TD>2007-05-18 17:17:30</TD><TD>800.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-05-19 08:53:25</TD><TD>J9RLD7021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLD7031</TD><TD>JUPITER-NORTH-D7</TD><TD>255.988208333</TD><TD>-22.0778111111</TD><TD>25</TD><TD>2007-05-18 17:18:27</TD><TD>2007-05-18 17:29:28</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-05-19 08:54:55</TD><TD>J9RLD7031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLD8011</TD><TD>JUPITER-SOUTH-D8</TD><TD>255.858470833</TD><TD>-22.0805972222</TD><TD>25</TD><TD>2007-05-19 18:22:02</TD><TD>2007-05-19 18:33:03</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-05-19 22:04:52</TD><TD>J9RLD8011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLD8021</TD><TD>JUPITER-SOUTH-D8</TD><TD>255.85685</TD><TD>-22.0804666667</TD><TD>25</TD><TD>2007-05-19 18:34:00</TD><TD>2007-05-19 18:52:01</TD><TD>800.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-05-19 22:07:25</TD><TD>J9RLD8021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLD8031</TD><TD>JUPITER-SOUTH-D8</TD><TD>255.855829167</TD><TD>-22.0803833333</TD><TD>25</TD><TD>2007-05-19 18:52:58</TD><TD>2007-05-19 19:03:59</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-05-19 22:09:26</TD><TD>J9RLD8031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLD9011</TD><TD>JUPITER-NORTH-D9</TD><TD>255.736733333</TD><TD>-22.0572666667</TD><TD>25</TD><TD>2007-05-20 18:20:39</TD><TD>2007-05-20 18:31:40</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-05-21 00:17:46</TD><TD>J9RLD9011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLD9021</TD><TD>JUPITER-NORTH-D9</TD><TD>255.735095833</TD><TD>-22.0571333333</TD><TD>25</TD><TD>2007-05-20 18:32:37</TD><TD>2007-05-20 18:50:38</TD><TD>800.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-05-21 00:20:18</TD><TD>J9RLD9021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLD9031</TD><TD>JUPITER-NORTH-D9</TD><TD>255.734058333</TD><TD>-22.0570472222</TD><TD>25</TD><TD>2007-05-20 18:51:35</TD><TD>2007-05-20 19:02:36</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-05-21 00:22:20</TD><TD>J9RLD9031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLE0011</TD><TD>JUPITER-NORTH-E0</TD><TD>255.636645833</TD><TD>-22.0487611111</TD><TD>25</TD><TD>2007-05-21 13:31:33</TD><TD>2007-05-21 13:42:34</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-05-22 08:45:21</TD><TD>J9RLE0011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLE0021</TD><TD>JUPITER-NORTH-E0</TD><TD>255.634991667</TD><TD>-22.048625</TD><TD>25</TD><TD>2007-05-21 13:43:31</TD><TD>2007-05-21 14:01:32</TD><TD>800.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-05-22 08:47:52</TD><TD>J9RLE0021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLE0031</TD><TD>JUPITER-NORTH-E0</TD><TD>255.63395</TD><TD>-22.0485388889</TD><TD>25</TD><TD>2007-05-21 14:02:29</TD><TD>2007-05-21 14:13:30</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-05-22 08:49:24</TD><TD>J9RLE0031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLE4011</TD><TD>JUPITER-SOUTH-E4</TD><TD>255.6017125</TD><TD>-22.0598222222</TD><TD>25</TD><TD>2007-05-21 19:55:12</TD><TD>2007-05-21 20:06:13</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-05-22 08:51:25</TD><TD>J9RLE4011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLE4021</TD><TD>JUPITER-SOUTH-E4</TD><TD>255.60005</TD><TD>-22.0596861111</TD><TD>25</TD><TD>2007-05-21 20:07:10</TD><TD>2007-05-21 20:25:11</TD><TD>800.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-05-22 08:53:57</TD><TD>J9RLE4021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLE4031</TD><TD>JUPITER-SOUTH-E4</TD><TD>255.599004167</TD><TD>-22.0596</TD><TD>25</TD><TD>2007-05-21 20:26:08</TD><TD>2007-05-21 20:37:09</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-05-22 08:55:28</TD><TD>J9RLE4031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLE1011</TD><TD>JUPITER-NORTH-E1</TD><TD>255.475316667</TD><TD>-22.0354222222</TD><TD>25</TD><TD>2007-05-22 19:53:51</TD><TD>2007-05-22 20:19:04</TD><TD>510.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-05-23 15:22:12</TD><TD>J9RLE1011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLE1021</TD><TD>JUPITER-NORTH-E1</TD><TD>255.473770833</TD><TD>-22.0352916667</TD><TD>25</TD><TD>2007-05-22 20:19:43</TD><TD>2007-05-22 20:36:34</TD><TD>450.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-05-23 15:26:42</TD><TD>J9RLE1021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLE2011</TD><TD>JUPITER-NORTH-E2</TD><TD>255.37455</TD><TD>-22.0270388889</TD><TD>25</TD><TD>2007-05-23 15:04:46</TD><TD>2007-05-23 15:15:47</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-05-24 03:48:11</TD><TD>J9RLE2011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLE2021</TD><TD>JUPITER-NORTH-E2</TD><TD>255.372858333</TD><TD>-22.0268972222</TD><TD>25</TD><TD>2007-05-23 15:16:44</TD><TD>2007-05-23 15:34:45</TD><TD>800.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-05-24 03:50:42</TD><TD>J9RLE2021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLE2031</TD><TD>JUPITER-NORTH-E2</TD><TD>255.371791667</TD><TD>-22.0268083333</TD><TD>25</TD><TD>2007-05-23 15:35:42</TD><TD>2007-05-23 15:46:43</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-05-24 03:52:15</TD><TD>J9RLE2031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLE3011</TD><TD>JUPITER-SOUTH-E3</TD><TD>255.23625</TD><TD>-22.0294027778</TD><TD>25</TD><TD>2007-05-24 16:39:20</TD><TD>2007-05-24 16:50:21</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-05-24 22:36:10</TD><TD>J9RLE3011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLE3021</TD><TD>JUPITER-SOUTH-E3</TD><TD>255.234545833</TD><TD>-22.0292611111</TD><TD>25</TD><TD>2007-05-24 16:51:18</TD><TD>2007-05-24 17:09:19</TD><TD>800.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-05-24 22:38:41</TD><TD>J9RLE3021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLE3031</TD><TD>JUPITER-SOUTH-E3</TD><TD>255.233466667</TD><TD>-22.0291694444</TD><TD>25</TD><TD>2007-05-24 17:10:16</TD><TD>2007-05-24 17:21:17</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-05-24 22:40:43</TD><TD>J9RLE3031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLE5011</TD><TD>JUPITER-NORTH-E5</TD><TD>255.003358333</TD><TD>-21.9961694444</TD><TD>25</TD><TD>2007-05-26 11:51:07</TD><TD>2007-05-26 12:02:08</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-05-26 13:57:08</TD><TD>J9RLE5011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLE5021</TD><TD>JUPITER-NORTH-E5</TD><TD>255.001625</TD><TD>-21.9960222222</TD><TD>25</TD><TD>2007-05-26 12:03:05</TD><TD>2007-05-26 12:21:06</TD><TD>800.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-05-26 14:25:11</TD><TD>J9RLE5021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLE5031</TD><TD>JUPITER-NORTH-E5</TD><TD>255.000533333</TD><TD>-21.9959305556</TD><TD>25</TD><TD>2007-05-26 12:22:03</TD><TD>2007-05-26 12:33:04</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-05-26 14:27:14</TD><TD>J9RLE5031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLE5041</TD><TD>JUPITER-NORTH-E5</TD><TD>254.994758333</TD><TD>-21.9954388889</TD><TD>25</TD><TD>2007-05-26 13:25:18</TD><TD>2007-05-26 13:36:19</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F165LP;N/A;F165LP</TD><TD>10862</TD><TD>2007-05-27 00:12:05</TD><TD>J9RLE5041</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLE5051</TD><TD>JUPITER-NORTH-E5</TD><TD>254.992991667</TD><TD>-21.9952888889</TD><TD>25</TD><TD>2007-05-26 13:37:39</TD><TD>2007-05-26 13:55:40</TD><TD>800.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-05-27 00:14:37</TD><TD>J9RLE5051</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLE5061</TD><TD>JUPITER-NORTH-E5</TD><TD>254.991866667</TD><TD>-21.9951944444</TD><TD>25</TD><TD>2007-05-26 13:57:00</TD><TD>2007-05-26 14:08:01</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F165LP;N/A;F165LP</TD><TD>10862</TD><TD>2007-05-27 00:16:42</TD><TD>J9RLE5061</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLEA011</TD><TD>JUPITER-SOUTH-E5</TD><TD>254.965304167</TD><TD>-22.0065027778</TD><TD>25</TD><TD>2007-05-26 18:14:21</TD><TD>2007-05-26 18:25:22</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F165LP;N/A;F165LP</TD><TD>10862</TD><TD>2007-05-27 00:19:08</TD><TD>J9RLEA011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLEA021</TD><TD>JUPITER-SOUTH-E5</TD><TD>254.963533333</TD><TD>-22.0063527778</TD><TD>25</TD><TD>2007-05-26 18:26:42</TD><TD>2007-05-26 18:44:43</TD><TD>800.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-05-27 00:21:45</TD><TD>J9RLEA021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLEA031</TD><TD>JUPITER-SOUTH-E5</TD><TD>254.962404167</TD><TD>-22.0062555556</TD><TD>25</TD><TD>2007-05-26 18:46:03</TD><TD>2007-05-26 18:57:04</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F165LP;N/A;F165LP</TD><TD>10862</TD><TD>2007-05-27 00:23:42</TD><TD>J9RLEA031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLEA041</TD><TD>JUPITER-SOUTH-E5</TD><TD>254.95665</TD><TD>-22.0057666667</TD><TD>25</TD><TD>2007-05-26 19:48:57</TD><TD>2007-05-26 19:59:58</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-05-27 00:25:45</TD><TD>J9RLEA041</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLEA051</TD><TD>JUPITER-SOUTH-E5</TD><TD>254.9549125</TD><TD>-22.0056194444</TD><TD>25</TD><TD>2007-05-26 20:00:55</TD><TD>2007-05-26 20:18:56</TD><TD>800.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-05-27 00:28:17</TD><TD>J9RLEA051</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLEA061</TD><TD>JUPITER-SOUTH-E5</TD><TD>254.953820833</TD><TD>-22.005525</TD><TD>25</TD><TD>2007-05-26 20:19:53</TD><TD>2007-05-26 20:30:54</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-05-27 00:30:18</TD><TD>J9RLEA061</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLE6011</TD><TD>JUPITER-NORTH-E6</TD><TD>254.834104167</TD><TD>-21.981775</TD><TD>25</TD><TD>2007-05-27 18:11:10</TD><TD>2007-05-27 18:22:11</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-05-28 00:46:29</TD><TD>J9RLE6011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLE6021</TD><TD>JUPITER-NORTH-E6</TD><TD>254.832354167</TD><TD>-21.9816277778</TD><TD>25</TD><TD>2007-05-27 18:23:08</TD><TD>2007-05-27 18:41:09</TD><TD>800.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-05-28 00:48:58</TD><TD>J9RLE6021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLE6031</TD><TD>JUPITER-NORTH-E6</TD><TD>254.831254167</TD><TD>-21.9815333333</TD><TD>25</TD><TD>2007-05-27 18:42:06</TD><TD>2007-05-27 18:53:07</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-05-28 00:51:02</TD><TD>J9RLE6031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLE7011</TD><TD>JUPITER-SOUTH-E7</TD><TD>254.701566667</TD><TD>-21.9839527778</TD><TD>25</TD><TD>2007-05-28 18:09:45</TD><TD>2007-05-28 18:20:46</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-05-29 00:04:13</TD><TD>J9RLE7011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLE7021</TD><TD>JUPITER-SOUTH-E7</TD><TD>254.699808333</TD><TD>-21.9838027778</TD><TD>25</TD><TD>2007-05-28 18:21:43</TD><TD>2007-05-28 18:39:44</TD><TD>800.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-05-29 00:06:45</TD><TD>J9RLE7021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLE7031</TD><TD>JUPITER-SOUTH-E7</TD><TD>254.6987</TD><TD>-21.9837055556</TD><TD>25</TD><TD>2007-05-28 18:40:41</TD><TD>2007-05-28 18:51:42</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-05-29 00:08:46</TD><TD>J9RLE7031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLE8011</TD><TD>JUPITER-NORTH-E8</TD><TD>254.6133125</TD><TD>-21.9624055556</TD><TD>25</TD><TD>2007-05-29 10:08:48</TD><TD>2007-05-29 10:19:49</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-05-29 20:58:18</TD><TD>J9RLE8011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLE8021</TD><TD>JUPITER-NORTH-E8</TD><TD>254.61155</TD><TD>-21.9622527778</TD><TD>25</TD><TD>2007-05-29 10:20:46</TD><TD>2007-05-29 10:38:47</TD><TD>800.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-05-29 21:00:49</TD><TD>J9RLE8021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLE8031</TD><TD>JUPITER-NORTH-E8</TD><TD>254.6104375</TD><TD>-21.9621555556</TD><TD>25</TD><TD>2007-05-29 10:39:44</TD><TD>2007-05-29 10:50:45</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-05-29 21:02:50</TD><TD>J9RLE8031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLE9011</TD><TD>JUPITER-SOUTH-E9</TD><TD>254.4691625</TD><TD>-21.96385</TD><TD>25</TD><TD>2007-05-30 11:43:13</TD><TD>2007-05-30 11:54:14</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-05-31 00:24:04</TD><TD>J9RLE9011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLE9021</TD><TD>JUPITER-SOUTH-E9</TD><TD>254.4673875</TD><TD>-21.9636944444</TD><TD>25</TD><TD>2007-05-30 11:55:11</TD><TD>2007-05-30 12:13:12</TD><TD>800.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-05-31 00:27:07</TD><TD>J9RLE9021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLE9031</TD><TD>JUPITER-SOUTH-E9</TD><TD>254.466270833</TD><TD>-21.9635972222</TD><TD>25</TD><TD>2007-05-30 12:14:09</TD><TD>2007-05-30 12:25:10</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-05-31 00:29:11</TD><TD>J9RLE9031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLF0011</TD><TD>JUPITER-NORTH-F0</TD><TD>254.335145833</TD><TD>-21.9382166667</TD><TD>25</TD><TD>2007-05-31 11:41:42</TD><TD>2007-05-31 11:52:43</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-05-31 23:02:16</TD><TD>J9RLF0011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLF0021</TD><TD>JUPITER-NORTH-F0</TD><TD>254.3333625</TD><TD>-21.9380611111</TD><TD>25</TD><TD>2007-05-31 11:53:40</TD><TD>2007-05-31 12:11:41</TD><TD>800.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-05-31 23:04:47</TD><TD>J9RLF0021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLF0031</TD><TD>JUPITER-NORTH-F0</TD><TD>254.332241667</TD><TD>-21.9379638889</TD><TD>25</TD><TD>2007-05-31 12:12:38</TD><TD>2007-05-31 12:23:39</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-05-31 23:06:50</TD><TD>J9RLF0031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLF2011</TD><TD>JUPITER-SOUTH-F2</TD><TD>254.08155</TD><TD>-21.9298194444</TD><TD>25</TD><TD>2007-06-02 08:26:48</TD><TD>2007-06-02 08:37:49</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-06-03 09:52:46</TD><TD>J9RLF2011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLF2021</TD><TD>JUPITER-SOUTH-F2</TD><TD>254.079758333</TD><TD>-21.9296611111</TD><TD>25</TD><TD>2007-06-02 08:38:46</TD><TD>2007-06-02 08:56:47</TD><TD>800.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-06-03 09:55:39</TD><TD>J9RLF2021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLF2031</TD><TD>JUPITER-SOUTH-F2</TD><TD>254.078629167</TD><TD>-21.9295611111</TD><TD>25</TD><TD>2007-06-02 08:57:44</TD><TD>2007-06-02 09:08:45</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-06-03 09:57:19</TD><TD>J9RLF2031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLF3011</TD><TD>JUPITER-NORTH-F3</TD><TD>253.9370625</TD><TD>-21.90305</TD><TD>25</TD><TD>2007-06-03 10:01:05</TD><TD>2007-06-03 10:12:06</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-06-03 18:21:46</TD><TD>J9RLF3011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLF3021</TD><TD>JUPITER-NORTH-F3</TD><TD>253.935266667</TD><TD>-21.9028916667</TD><TD>25</TD><TD>2007-06-03 10:13:03</TD><TD>2007-06-03 10:31:04</TD><TD>800.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-06-03 18:24:18</TD><TD>J9RLF3021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLF3031</TD><TD>JUPITER-NORTH-F3</TD><TD>253.934133333</TD><TD>-21.9027888889</TD><TD>25</TD><TD>2007-06-03 10:32:01</TD><TD>2007-06-03 10:43:02</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-06-03 18:26:20</TD><TD>J9RLF3031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLF4011</TD><TD>JUPITER-SOUTH-F4</TD><TD>253.800716667</TD><TD>-21.9047444444</TD><TD>25</TD><TD>2007-06-04 09:59:26</TD><TD>2007-06-04 10:10:27</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-06-05 07:32:50</TD><TD>J9RLF4011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLF4021</TD><TD>JUPITER-SOUTH-F4</TD><TD>253.798920833</TD><TD>-21.9045833333</TD><TD>25</TD><TD>2007-06-04 10:11:24</TD><TD>2007-06-04 10:29:25</TD><TD>800.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-06-05 07:35:26</TD><TD>J9RLF4021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLF4031</TD><TD>JUPITER-SOUTH-F4</TD><TD>253.797783333</TD><TD>-21.9044805556</TD><TD>25</TD><TD>2007-06-04 10:30:22</TD><TD>2007-06-04 10:41:23</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-06-05 07:37:24</TD><TD>J9RLF4031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLF5011</TD><TD>JUPITER-SOUTH-F5</TD><TD>253.682145833</TD><TD>-21.8938388889</TD><TD>25</TD><TD>2007-06-05 06:46:00</TD><TD>2007-06-05 06:57:01</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-06-05 18:42:38</TD><TD>J9RLF5011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLF5021</TD><TD>JUPITER-SOUTH-F5</TD><TD>253.680345833</TD><TD>-21.893675</TD><TD>25</TD><TD>2007-06-05 06:57:58</TD><TD>2007-06-05 07:15:59</TD><TD>800.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-06-05 18:47:07</TD><TD>J9RLF5021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLF5031</TD><TD>JUPITER-SOUTH-F5</TD><TD>253.679208333</TD><TD>-21.8935722222</TD><TD>25</TD><TD>2007-06-05 07:16:56</TD><TD>2007-06-05 07:27:57</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-06-05 18:49:09</TD><TD>J9RLF5031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLFB011</TD><TD>JUPITER-SOUTH-F6</TD><TD>253.562895833</TD><TD>-21.8830972222</TD><TD>25</TD><TD>2007-06-06 03:32:33</TD><TD>2007-06-06 03:43:34</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-06-07 11:50:09</TD><TD>J9RLFB011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLFB021</TD><TD>JUPITER-SOUTH-F6</TD><TD>253.561091667</TD><TD>-21.8829333333</TD><TD>25</TD><TD>2007-06-06 03:44:31</TD><TD>2007-06-06 04:02:32</TD><TD>800.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-06-07 11:52:42</TD><TD>J9RLFB021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLFB031</TD><TD>JUPITER-SOUTH-F6</TD><TD>253.559954167</TD><TD>-21.8828305556</TD><TD>25</TD><TD>2007-06-06 04:03:29</TD><TD>2007-06-06 04:14:30</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-06-07 11:54:27</TD><TD>J9RLFB031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLF7011</TD><TD>JUPITER-NORTH-F7</TD><TD>253.3735875</TD><TD>-21.8522222222</TD><TD>25</TD><TD>2007-06-07 13:06:12</TD><TD>2007-06-07 13:17:13</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-06-08 05:32:40</TD><TD>J9RLF7011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLF7021</TD><TD>JUPITER-NORTH-F7</TD><TD>253.3717875</TD><TD>-21.8520583333</TD><TD>25</TD><TD>2007-06-07 13:18:10</TD><TD>2007-06-07 13:36:11</TD><TD>800.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-06-08 05:35:41</TD><TD>J9RLF7021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLF7031</TD><TD>JUPITER-NORTH-F7</TD><TD>253.37065</TD><TD>-21.8519527778</TD><TD>25</TD><TD>2007-06-07 13:37:08</TD><TD>2007-06-07 13:48:09</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-06-08 05:37:43</TD><TD>J9RLF7031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLF8011</TD><TD>JUPITER-NORTH-F8</TD><TD>253.264245833</TD><TD>-21.8424972222</TD><TD>25</TD><TD>2007-06-08 08:16:52</TD><TD>2007-06-08 08:27:53</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-06-08 17:01:48</TD><TD>J9RLF8011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLF8021</TD><TD>JUPITER-NORTH-F8</TD><TD>253.262445833</TD><TD>-21.8423333333</TD><TD>25</TD><TD>2007-06-08 08:28:50</TD><TD>2007-06-08 08:46:51</TD><TD>800.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-06-08 17:05:22</TD><TD>J9RLF8021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLF8031</TD><TD>JUPITER-NORTH-F8</TD><TD>253.2613125</TD><TD>-21.8422305556</TD><TD>25</TD><TD>2007-06-08 08:47:48</TD><TD>2007-06-08 08:58:49</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-06-08 17:07:21</TD><TD>J9RLF8031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLF1011</TD><TD>JUPITER-NORTH-F1</TD><TD>252.983583333</TD><TD>-21.8164055556</TD><TD>25</TD><TD>2007-06-10 09:49:28</TD><TD>2007-06-10 10:00:29</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-06-10 15:31:36</TD><TD>J9RLF1011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLF1021</TD><TD>JUPITER-NORTH-F1</TD><TD>252.981791667</TD><TD>-21.8162388889</TD><TD>25</TD><TD>2007-06-10 10:01:26</TD><TD>2007-06-10 10:19:27</TD><TD>800.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-06-10 15:34:09</TD><TD>J9RLF1021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLF1031</TD><TD>JUPITER-NORTH-F1</TD><TD>252.9806625</TD><TD>-21.8161361111</TD><TD>25</TD><TD>2007-06-10 10:20:24</TD><TD>2007-06-10 10:31:25</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-06-10 15:36:10</TD><TD>J9RLF1031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLF1041</TD><TD>JUPITER-NORTH-F1</TD><TD>252.974541667</TD><TD>-21.8155694444</TD><TD>25</TD><TD>2007-06-10 11:25:15</TD><TD>2007-06-10 11:36:16</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-06-10 15:38:12</TD><TD>J9RLF1041</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLF1051</TD><TD>JUPITER-NORTH-F1</TD><TD>252.97275</TD><TD>-21.8154027778</TD><TD>25</TD><TD>2007-06-10 11:37:13</TD><TD>2007-06-10 11:55:14</TD><TD>800.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-06-10 15:40:43</TD><TD>J9RLF1051</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLF1061</TD><TD>JUPITER-NORTH-F1</TD><TD>252.971620833</TD><TD>-21.8152972222</TD><TD>25</TD><TD>2007-06-10 11:56:11</TD><TD>2007-06-10 12:07:12</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-06-10 15:42:16</TD><TD>J9RLF1061</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLF6011</TD><TD>JUPITER-SOUTH-F6-2</TD><TD>252.890333333</TD><TD>-21.821375</TD><TD>25</TD><TD>2007-06-11 01:48:25</TD><TD>2007-06-11 01:59:26</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-06-11 07:14:47</TD><TD>J9RLF6011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLF6021</TD><TD>JUPITER-SOUTH-F6-2</TD><TD>252.888545833</TD><TD>-21.8212083333</TD><TD>25</TD><TD>2007-06-11 02:00:23</TD><TD>2007-06-11 02:18:24</TD><TD>800.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-06-11 07:17:19</TD><TD>J9RLF6021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLF6031</TD><TD>JUPITER-SOUTH-F6-2</TD><TD>252.887416667</TD><TD>-21.8211027778</TD><TD>25</TD><TD>2007-06-11 02:19:21</TD><TD>2007-06-11 02:30:22</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-06-11 07:19:20</TD><TD>J9RLF6031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLFA011</TD><TD>JUPITER-SOUTH-FA</TD><TD>252.881295833</TD><TD>-21.8205361111</TD><TD>25</TD><TD>2007-06-11 03:24:19</TD><TD>2007-06-11 03:35:20</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-06-11 07:21:23</TD><TD>J9RLFA011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLFA021</TD><TD>JUPITER-SOUTH-FA</TD><TD>252.8795125</TD><TD>-21.8203694444</TD><TD>25</TD><TD>2007-06-11 03:36:17</TD><TD>2007-06-11 03:54:18</TD><TD>800.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-06-11 07:23:54</TD><TD>J9RLFA021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLFA031</TD><TD>JUPITER-SOUTH-FA</TD><TD>252.878383333</TD><TD>-21.8202638889</TD><TD>25</TD><TD>2007-06-11 03:55:15</TD><TD>2007-06-11 04:06:16</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-06-11 07:25:56</TD><TD>J9RLFA031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLF9011</TD><TD>JUPITER-NORTH-F9</TD><TD>252.874883333</TD><TD>-21.8065861111</TD><TD>25</TD><TD>2007-06-11 05:00:12</TD><TD>2007-06-11 05:11:13</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-06-11 23:31:53</TD><TD>J9RLF9011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLF9021</TD><TD>JUPITER-NORTH-F9</TD><TD>252.8731</TD><TD>-21.8064194444</TD><TD>25</TD><TD>2007-06-11 05:12:10</TD><TD>2007-06-11 05:30:11</TD><TD>800.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-06-11 23:34:55</TD><TD>J9RLF9021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLF9031</TD><TD>JUPITER-NORTH-F9</TD><TD>252.871970833</TD><TD>-21.8063166667</TD><TD>25</TD><TD>2007-06-11 05:31:08</TD><TD>2007-06-11 05:42:09</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-06-11 23:37:00</TD><TD>J9RLF9031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLFC011</TD><TD>JUPITER-NORTH-FC</TD><TD>252.865854167</TD><TD>-21.8057472222</TD><TD>25</TD><TD>2007-06-11 06:36:06</TD><TD>2007-06-11 06:47:07</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-06-11 23:38:55</TD><TD>J9RLFC011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLFC021</TD><TD>JUPITER-NORTH-FC</TD><TD>252.864070833</TD><TD>-21.8055805556</TD><TD>25</TD><TD>2007-06-11 06:48:04</TD><TD>2007-06-11 07:06:05</TD><TD>800.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-06-11 23:41:58</TD><TD>J9RLFC021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLFC031</TD><TD>JUPITER-NORTH-FC</TD><TD>252.862941667</TD><TD>-21.8054777778</TD><TD>25</TD><TD>2007-06-11 07:07:02</TD><TD>2007-06-11 07:18:03</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-06-11 23:44:01</TD><TD>J9RLFC031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLT7011</TD><TD>SATURN-2</TD><TD>159.2136375</TD><TD>10.6793222222</TD><TD>25</TD><TD>2008-02-01 08:52:20</TD><TD>2008-02-01 09:03:21</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2009-02-02 01:20:47</TD><TD>J9RLT7011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLT7021</TD><TD>SATURN-2</TD><TD>159.212695833</TD><TD>10.6797388889</TD><TD>25</TD><TD>2008-02-01 09:04:18</TD><TD>2008-02-01 09:24:39</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2009-02-02 01:30:58</TD><TD>J9RLT7021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLT7031</TD><TD>SATURN-2</TD><TD>159.2121625</TD><TD>10.679975</TD><TD>25</TD><TD>2008-02-01 09:25:36</TD><TD>2008-02-01 09:36:37</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2009-02-02 01:31:16</TD><TD>J9RLT7031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLT8011</TD><TD>SATURN-2</TD><TD>159.144966667</TD><TD>10.7095888889</TD><TD>25</TD><TD>2008-02-02 10:26:41</TD><TD>2008-02-02 10:37:42</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2009-02-02 18:31:14</TD><TD>J9RLT8011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLT8021</TD><TD>SATURN-2</TD><TD>159.144004167</TD><TD>10.7100111111</TD><TD>25</TD><TD>2008-02-02 10:38:39</TD><TD>2008-02-02 10:59:00</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2009-02-02 18:41:14</TD><TD>J9RLT8021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLT8031</TD><TD>SATURN-2</TD><TD>159.143466667</TD><TD>10.7102472222</TD><TD>25</TD><TD>2008-02-02 10:59:57</TD><TD>2008-02-02 11:10:58</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2009-02-02 18:41:32</TD><TD>J9RLT8031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLT9011</TD><TD>SATURN-2</TD><TD>159.1015</TD><TD>10.728675</TD><TD>25</TD><TD>2008-02-03 02:25:39</TD><TD>2008-02-03 02:36:40</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2009-02-03 12:15:43</TD><TD>J9RLT9011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLT9021</TD><TD>SATURN-2</TD><TD>159.100529167</TD><TD>10.7291</TD><TD>25</TD><TD>2008-02-03 02:37:37</TD><TD>2008-02-03 02:57:58</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2009-02-03 12:16:15</TD><TD>J9RLT9021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLT9031</TD><TD>SATURN-2</TD><TD>159.099983333</TD><TD>10.7293388889</TD><TD>25</TD><TD>2008-02-03 02:58:55</TD><TD>2008-02-03 03:09:56</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2009-02-03 12:16:42</TD><TD>J9RLT9031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLU0011</TD><TD>SATURN-2</TD><TD>159.092754167</TD><TD>10.7325083333</TD><TD>25</TD><TD>2008-02-03 05:37:27</TD><TD>2008-02-03 05:48:28</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2009-02-03 12:26:45</TD><TD>J9RLU0011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLU0021</TD><TD>SATURN-2</TD><TD>159.091783333</TD><TD>10.7329333333</TD><TD>25</TD><TD>2008-02-03 05:49:25</TD><TD>2008-02-03 06:09:46</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2009-02-03 12:27:05</TD><TD>J9RLU0021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLU0031</TD><TD>SATURN-2</TD><TD>159.0912375</TD><TD>10.7331722222</TD><TD>25</TD><TD>2008-02-03 06:10:43</TD><TD>2008-02-03 06:21:44</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2009-02-03 12:27:23</TD><TD>J9RLU0031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLU1011</TD><TD>SATURN-2</TD><TD>159.083995833</TD><TD>10.7363444444</TD><TD>25</TD><TD>2008-02-03 08:49:15</TD><TD>2008-02-03 09:00:16</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2009-02-03 12:27:51</TD><TD>J9RLU1011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLU1021</TD><TD>SATURN-2</TD><TD>159.083025</TD><TD>10.7367722222</TD><TD>25</TD><TD>2008-02-03 09:01:13</TD><TD>2008-02-03 09:21:34</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2009-02-03 12:37:02</TD><TD>J9RLU1021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLU1031</TD><TD>SATURN-2</TD><TD>159.082475</TD><TD>10.7370111111</TD><TD>25</TD><TD>2008-02-03 09:22:31</TD><TD>2008-02-03 09:33:32</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2009-02-03 12:37:11</TD><TD>J9RLU1031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLU2011</TD><TD>SATURN-2</TD><TD>159.075220833</TD><TD>10.7401888889</TD><TD>25</TD><TD>2008-02-03 12:01:03</TD><TD>2008-02-03 12:12:04</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2009-02-04 00:36:15</TD><TD>J9RLU2011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLU2021</TD><TD>SATURN-2</TD><TD>159.074245833</TD><TD>10.7406166667</TD><TD>25</TD><TD>2008-02-03 12:13:01</TD><TD>2008-02-03 12:33:22</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2009-02-04 00:46:25</TD><TD>J9RLU2021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLU2031</TD><TD>SATURN-2</TD><TD>159.073695833</TD><TD>10.7408555556</TD><TD>25</TD><TD>2008-02-03 12:34:19</TD><TD>2008-02-03 12:45:20</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2009-02-04 00:46:43</TD><TD>J9RLU2031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLU3011</TD><TD>SATURN-2</TD><TD>159.035533333</TD><TD>10.7575416667</TD><TD>25</TD><TD>2008-02-04 02:24:09</TD><TD>2008-02-04 02:35:09</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2009-02-04 11:56:04</TD><TD>J9RLU3011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLU3021</TD><TD>SATURN-2</TD><TD>159.034658333</TD><TD>10.757925</TD><TD>25</TD><TD>2008-02-04 02:36:07</TD><TD>2008-02-04 02:54:07</TD><TD>800.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2009-02-04 11:56:33</TD><TD>J9RLU3021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLU3031</TD><TD>SATURN-2</TD><TD>159.034108333</TD><TD>10.7581666667</TD><TD>25</TD><TD>2008-02-04 02:55:05</TD><TD>2008-02-04 03:06:05</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2009-02-04 12:06:24</TD><TD>J9RLU3031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLU4011</TD><TD>SATURN-2</TD><TD>159.01335</TD><TD>10.767225</TD><TD>25</TD><TD>2008-02-04 10:23:37</TD><TD>2008-02-04 10:34:38</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2009-02-04 21:45:27</TD><TD>J9RLU4011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLU4021</TD><TD>SATURN-2</TD><TD>159.012470833</TD><TD>10.7676083333</TD><TD>25</TD><TD>2008-02-04 10:35:35</TD><TD>2008-02-04 10:53:36</TD><TD>800.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2009-02-04 21:55:53</TD><TD>J9RLU4021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLU4031</TD><TD>SATURN-2</TD><TD>159.011916667</TD><TD>10.76785</TD><TD>25</TD><TD>2008-02-04 10:54:33</TD><TD>2008-02-04 11:05:34</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2009-02-04 21:56:03</TD><TD>J9RLU4031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLU5011</TD><TD>SATURN-2</TD><TD>158.968691667</TD><TD>10.7866777778</TD><TD>25</TD><TD>2008-02-05 02:22:36</TD><TD>2008-02-05 02:33:37</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2009-02-05 23:28:53</TD><TD>J9RLU5011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLU5021</TD><TD>SATURN-2</TD><TD>158.967804167</TD><TD>10.7870638889</TD><TD>25</TD><TD>2008-02-05 02:34:34</TD><TD>2008-02-05 02:52:35</TD><TD>800.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2009-02-05 23:29:14</TD><TD>J9RLU5021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLU5031</TD><TD>SATURN-2</TD><TD>158.967245833</TD><TD>10.7873055556</TD><TD>25</TD><TD>2008-02-05 02:53:32</TD><TD>2008-02-05 03:04:33</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2009-02-05 23:29:43</TD><TD>J9RLU5031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLU6011</TD><TD>SATURN-2</TD><TD>158.946220833</TD><TD>10.7964444444</TD><TD>25</TD><TD>2008-02-05 10:22:08</TD><TD>2008-02-05 10:33:09</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2009-02-05 23:49:11</TD><TD>J9RLU6011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLU6021</TD><TD>SATURN-2</TD><TD>158.945329167</TD><TD>10.7968333333</TD><TD>25</TD><TD>2008-02-05 10:34:06</TD><TD>2008-02-05 10:52:07</TD><TD>800.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2009-02-05 23:49:41</TD><TD>J9RLU6021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLU6031</TD><TD>SATURN-2</TD><TD>158.944766667</TD><TD>10.797075</TD><TD>25</TD><TD>2008-02-05 10:53:04</TD><TD>2008-02-05 11:04:05</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2009-02-05 23:50:00</TD><TD>J9RLU6031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLU8011</TD><TD>SATURN-2</TD><TD>158.887366667</TD><TD>10.8219694444</TD><TD>25</TD><TD>2008-02-06 07:08:51</TD><TD>2008-02-06 07:19:52</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2009-02-06 17:05:49</TD><TD>J9RLU8011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLU8021</TD><TD>SATURN-2</TD><TD>158.886358333</TD><TD>10.8224055556</TD><TD>25</TD><TD>2008-02-06 07:20:49</TD><TD>2008-02-06 07:41:10</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2009-02-06 17:06:20</TD><TD>J9RLU8021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLU8031</TD><TD>SATURN-2</TD><TD>158.8857875</TD><TD>10.8226527778</TD><TD>25</TD><TD>2008-02-06 07:42:07</TD><TD>2008-02-06 07:53:08</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2009-02-06 17:16:14</TD><TD>J9RLU8031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLW0011</TD><TD>SATURN-2</TD><TD>158.878258333</TD><TD>10.8259111111</TD><TD>25</TD><TD>2008-02-06 10:20:39</TD><TD>2008-02-06 10:31:40</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2009-02-06 21:51:35</TD><TD>J9RLW0011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLW0021</TD><TD>SATURN-2</TD><TD>158.877245833</TD><TD>10.82635</TD><TD>25</TD><TD>2008-02-06 10:32:37</TD><TD>2008-02-06 10:52:58</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2009-02-06 21:52:06</TD><TD>J9RLW0021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLW0031</TD><TD>SATURN-2</TD><TD>158.876679167</TD><TD>10.8265944444</TD><TD>25</TD><TD>2008-02-06 10:53:55</TD><TD>2008-02-06 11:04:56</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2009-02-06 22:00:47</TD><TD>J9RLW0031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLW1011</TD><TD>SATURN-2</TD><TD>158.8371</TD><TD>10.8437027778</TD><TD>25</TD><TD>2008-02-07 00:43:47</TD><TD>2008-02-07 00:54:48</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2009-02-07 11:48:20</TD><TD>J9RLW1011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLW1021</TD><TD>SATURN-2</TD><TD>158.836079167</TD><TD>10.8441416667</TD><TD>25</TD><TD>2008-02-07 00:55:45</TD><TD>2008-02-07 01:16:06</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2009-02-07 11:48:52</TD><TD>J9RLW1021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLW1031</TD><TD>SATURN-2</TD><TD>158.835508333</TD><TD>10.8443888889</TD><TD>25</TD><TD>2008-02-07 01:17:03</TD><TD>2008-02-07 01:28:04</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2009-02-07 11:49:00</TD><TD>J9RLW1031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLW2011</TD><TD>SATURN-2</TD><TD>158.809508333</TD><TD>10.8556055556</TD><TD>25</TD><TD>2008-02-07 10:19:13</TD><TD>2008-02-07 10:30:14</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2009-02-07 23:50:01</TD><TD>J9RLW2011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLW2021</TD><TD>SATURN-2</TD><TD>158.808483333</TD><TD>10.8560472222</TD><TD>25</TD><TD>2008-02-07 10:31:11</TD><TD>2008-02-07 10:51:32</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2009-02-08 00:00:13</TD><TD>J9RLW2021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLW2031</TD><TD>SATURN-2</TD><TD>158.807908333</TD><TD>10.8562944444</TD><TD>25</TD><TD>2008-02-07 10:52:29</TD><TD>2008-02-07 11:03:30</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2009-02-08 00:00:32</TD><TD>J9RLW2031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLW5011</TD><TD>SATURN-2</TD><TD>158.758604167</TD><TD>10.8775166667</TD><TD>25</TD><TD>2008-02-08 03:54:12</TD><TD>2008-02-08 04:05:13</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2009-02-08 14:29:27</TD><TD>J9RLW5011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLW5021</TD><TD>SATURN-2</TD><TD>158.757575</TD><TD>10.8779611111</TD><TD>25</TD><TD>2008-02-08 04:06:10</TD><TD>2008-02-08 04:26:31</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2009-02-08 14:29:58</TD><TD>J9RLW5021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLW5031</TD><TD>SATURN-2</TD><TD>158.756995833</TD><TD>10.8782083333</TD><TD>25</TD><TD>2008-02-08 04:27:28</TD><TD>2008-02-08 04:38:29</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2009-02-08 14:30:09</TD><TD>J9RLW5031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLW3011</TD><TD>SATURN-2</TD><TD>158.753958333</TD><TD>10.8795138889</TD><TD>25</TD><TD>2008-02-08 05:30:05</TD><TD>2008-02-08 05:41:06</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2009-02-08 14:40:08</TD><TD>J9RLW3011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLW3021</TD><TD>SATURN-2</TD><TD>158.752929167</TD><TD>10.8799583333</TD><TD>25</TD><TD>2008-02-08 05:42:04</TD><TD>2008-02-08 06:02:24</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2009-02-08 14:40:48</TD><TD>J9RLW3021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLW3031</TD><TD>SATURN-2</TD><TD>158.752345833</TD><TD>10.8802055556</TD><TD>25</TD><TD>2008-02-08 06:03:22</TD><TD>2008-02-08 06:14:22</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2009-02-08 14:40:55</TD><TD>J9RLW3031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLW4011</TD><TD>SATURN-2</TD><TD>158.749308333</TD><TD>10.8815111111</TD><TD>25</TD><TD>2008-02-08 07:06:00</TD><TD>2008-02-08 07:17:01</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2009-02-08 14:41:14</TD><TD>J9RLW4011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLW4021</TD><TD>SATURN-2</TD><TD>158.748275</TD><TD>10.8819555556</TD><TD>25</TD><TD>2008-02-08 07:17:58</TD><TD>2008-02-08 07:38:19</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2009-02-08 14:41:43</TD><TD>J9RLW4021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLW4031</TD><TD>SATURN-2</TD><TD>158.747695833</TD><TD>10.8822055556</TD><TD>25</TD><TD>2008-02-08 07:39:16</TD><TD>2008-02-08 07:50:17</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2009-02-08 14:50:14</TD><TD>J9RLW4031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLW6011</TD><TD>SATURN-3</TD><TD>158.674483333</TD><TD>10.9135972222</TD><TD>25</TD><TD>2008-02-09 08:40:33</TD><TD>2008-02-09 08:51:34</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2009-02-09 15:24:14</TD><TD>J9RLW6011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLW6021</TD><TD>SATURN-3</TD><TD>158.673441667</TD><TD>10.9140444444</TD><TD>25</TD><TD>2008-02-09 08:52:31</TD><TD>2008-02-09 09:12:52</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2009-02-09 15:24:44</TD><TD>J9RLW6021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLW6031</TD><TD>SATURN-3</TD><TD>158.672854167</TD><TD>10.9142944444</TD><TD>25</TD><TD>2008-02-09 09:13:49</TD><TD>2008-02-09 09:24:50</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2009-02-09 15:25:02</TD><TD>J9RLW6031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLW7011</TD><TD>SATURN-2</TD><TD>158.608383333</TD><TD>10.9418361111</TD><TD>25</TD><TD>2008-02-10 07:03:18</TD><TD>2008-02-10 07:14:19</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2009-02-10 16:12:11</TD><TD>J9RLW7011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLW7021</TD><TD>SATURN-2</TD><TD>158.607329167</TD><TD>10.9422861111</TD><TD>25</TD><TD>2008-02-10 07:15:16</TD><TD>2008-02-10 07:35:37</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2009-02-10 16:19:04</TD><TD>J9RLW7021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLW7031</TD><TD>SATURN-2</TD><TD>158.6067375</TD><TD>10.9425361111</TD><TD>25</TD><TD>2008-02-10 07:36:34</TD><TD>2008-02-10 07:47:35</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2009-02-10 16:19:23</TD><TD>J9RLW7031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLX1011</TD><TD>SATURN-2</TD><TD>158.556054167</TD><TD>10.9641222222</TD><TD>25</TD><TD>2008-02-11 00:38:20</TD><TD>2008-02-11 00:49:21</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2009-02-11 05:51:36</TD><TD>J9RLX1011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLX1021</TD><TD>SATURN-2</TD><TD>158.554995833</TD><TD>10.9645722222</TD><TD>25</TD><TD>2008-02-11 00:50:18</TD><TD>2008-02-11 01:10:39</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2009-02-11 06:01:57</TD><TD>J9RLX1021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLX1031</TD><TD>SATURN-2</TD><TD>158.5544</TD><TD>10.964825</TD><TD>25</TD><TD>2008-02-11 01:11:36</TD><TD>2008-02-11 01:22:37</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2009-02-11 06:02:05</TD><TD>J9RLX1031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLW8011</TD><TD>SATURN-2</TD><TD>158.536945833</TD><TD>10.9722444444</TD><TD>25</TD><TD>2008-02-11 07:01:59</TD><TD>2008-02-11 07:13:00</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2009-02-12 00:37:40</TD><TD>J9RLW8011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLW8021</TD><TD>SATURN-2</TD><TD>158.535883333</TD><TD>10.9726944444</TD><TD>25</TD><TD>2008-02-11 07:13:57</TD><TD>2008-02-11 07:34:18</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2009-02-12 00:38:10</TD><TD>J9RLW8021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLW8031</TD><TD>SATURN-2</TD><TD>158.5352875</TD><TD>10.97295</TD><TD>25</TD><TD>2008-02-11 07:35:15</TD><TD>2008-02-11 07:46:16</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2009-02-12 00:38:28</TD><TD>J9RLW8031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLW9011</TD><TD>SATURN-2</TD><TD>158.420845833</TD><TD>11.0214305556</TD><TD>25</TD><TD>2008-02-12 21:35:40</TD><TD>2008-02-12 21:46:41</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2009-02-13 07:19:39</TD><TD>J9RLW9011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLW9021</TD><TD>SATURN-2</TD><TD>158.419741667</TD><TD>11.0218972222</TD><TD>25</TD><TD>2008-02-12 21:47:38</TD><TD>2008-02-12 22:08:32</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2009-02-13 07:30:00</TD><TD>J9RLW9021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLW9031</TD><TD>SATURN-2</TD><TD>158.416558333</TD><TD>11.0232416667</TD><TD>25</TD><TD>2008-02-12 22:59:58</TD><TD>2008-02-12 23:11:32</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2009-02-13 07:30:20</TD><TD>J9RLW9031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLX3011</TD><TD>SATURN-2</TD><TD>158.411745833</TD><TD>11.025275</TD><TD>25</TD><TD>2008-02-13 00:35:45</TD><TD>2008-02-13 00:46:46</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2009-02-14 04:31:39</TD><TD>J9RLX3011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLX3021</TD><TD>SATURN-2</TD><TD>158.410670833</TD><TD>11.0257277778</TD><TD>25</TD><TD>2008-02-13 00:47:44</TD><TD>2008-02-13 01:08:04</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2009-02-14 04:32:19</TD><TD>J9RLX3021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLX3031</TD><TD>SATURN-2</TD><TD>158.410066667</TD><TD>11.0259833333</TD><TD>25</TD><TD>2008-02-13 01:09:01</TD><TD>2008-02-13 01:20:02</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2009-02-14 04:32:39</TD><TD>J9RLX3031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLX0011</TD><TD>SATURN-2</TD><TD>158.392341667</TD><TD>11.0334638889</TD><TD>25</TD><TD>2008-02-13 06:59:25</TD><TD>2008-02-13 07:10:26</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2009-02-14 04:43:03</TD><TD>J9RLX0011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLX0021</TD><TD>SATURN-2</TD><TD>158.3912625</TD><TD>11.0339194444</TD><TD>25</TD><TD>2008-02-13 07:11:23</TD><TD>2008-02-13 07:31:44</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2009-02-14 04:44:07</TD><TD>J9RLX0021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLX0031</TD><TD>SATURN-2</TD><TD>158.390658333</TD><TD>11.034175</TD><TD>25</TD><TD>2008-02-13 07:32:41</TD><TD>2008-02-13 07:43:42</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2009-02-14 04:44:17</TD><TD>J9RLX0031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLX4011</TD><TD>SATURN-2</TD><TD>158.3192625</TD><TD>11.0642361111</TD><TD>25</TD><TD>2008-02-14 06:58:07</TD><TD>2008-02-14 07:09:08</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2009-02-14 10:46:16</TD><TD>J9RLX4011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLX4021</TD><TD>SATURN-2</TD><TD>158.318179167</TD><TD>11.0646944444</TD><TD>25</TD><TD>2008-02-14 07:10:05</TD><TD>2008-02-14 07:30:26</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2009-02-14 10:46:46</TD><TD>J9RLX4021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLX4031</TD><TD>SATURN-2</TD><TD>158.317566667</TD><TD>11.06495</TD><TD>25</TD><TD>2008-02-14 07:31:23</TD><TD>2008-02-14 07:42:24</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2009-02-14 10:47:04</TD><TD>J9RLX4031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLX5011</TD><TD>SATURN-2</TD><TD>158.2506375</TD><TD>11.0930361111</TD><TD>25</TD><TD>2008-02-15 05:20:54</TD><TD>2008-02-15 05:31:55</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2009-02-15 19:04:23</TD><TD>J9RLX5011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLX5021</TD><TD>SATURN-2</TD><TD>158.249545833</TD><TD>11.0934944444</TD><TD>25</TD><TD>2008-02-15 05:32:52</TD><TD>2008-02-15 05:53:13</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2009-02-15 19:05:09</TD><TD>J9RLX5021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLX5031</TD><TD>SATURN-2</TD><TD>158.248933333</TD><TD>11.09375</TD><TD>25</TD><TD>2008-02-15 05:54:10</TD><TD>2008-02-15 06:05:11</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2009-02-15 19:05:19</TD><TD>J9RLX5031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLX2011</TD><TD>SATURN-2</TD><TD>158.127208333</TD><TD>11.1446055556</TD><TD>25</TD><TD>2008-02-16 21:18:38</TD><TD>2008-02-16 21:29:39</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2009-02-17 13:49:37</TD><TD>J9RLX2011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLX2021</TD><TD>SATURN-2</TD><TD>158.126104167</TD><TD>11.1450638889</TD><TD>25</TD><TD>2008-02-16 21:30:36</TD><TD>2008-02-16 21:50:57</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2009-02-17 13:50:20</TD><TD>J9RLX2021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLX2031</TD><TD>SATURN-2</TD><TD>158.1254875</TD><TD>11.1453222222</TD><TD>25</TD><TD>2008-02-16 21:51:54</TD><TD>2008-02-16 22:02:55</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2009-02-17 14:00:13</TD><TD>J9RLX2031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>OB3002FZQ</TD><TD>JUPITER-SOUTH-2</TD><TD>322.583591667</TD><TD>-15.9229055556</TD><TD>3</TD><TD>2009-08-31 10:35:53</TD><TD>2009-08-31 11:21:21</TD><TD>2728.200</TD><TD>STIS  </TD><TD>F25SRF2</TD><TD>MIRFUV</TD><TD>11649</TD><TD>2010-08-31 19:50:24</TD><TD>OB3002FZQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>OB3003G5Q</TD><TD>JUPITER-SOUTH-3</TD><TD>322.575875</TD><TD>-15.9254083333</TD><TD>3</TD><TD>2009-08-31 12:11:44</TD><TD>2009-08-31 12:57:12</TD><TD>2728.200</TD><TD>STIS  </TD><TD>F25SRF2</TD><TD>MIRFUV</TD><TD>11649</TD><TD>2010-08-31 20:52:59</TD><TD>OB3003G5Q</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>OB3001XQQ</TD><TD>JUPITER-SOUTH-1</TD><TD>321.442541667</TD><TD>-16.2857277778</TD><TD>3</TD><TD>2009-09-11 03:49:59</TD><TD>2009-09-11 04:34:47</TD><TD>2688.200</TD><TD>STIS  </TD><TD>F25SRF2</TD><TD>MIRFUV</TD><TD>11649</TD><TD>2010-09-11 13:09:22</TD><TD>OB3001XQQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>LB5502O4Q</TD><TD>ENCELADUS-WEST-ELONGATION</TD><TD>179.357125</TD><TD>3.01350277778</TD><TD>1</TD><TD>2010-05-05 08:31:41</TD><TD>2010-05-05 08:31:47</TD><TD>6.000</TD><TD>COS   </TD><TD>PSA</TD><TD>G230L</TD><TD>11645</TD><TD>2011-05-05 16:37:28</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>LB5502O5Q</TD><TD>ENCELADUS-WEST-ELONGATION</TD><TD>179.356729167</TD><TD>3.013625</TD><TD>1</TD><TD>2010-05-05 08:34:26</TD><TD>2010-05-05 08:34:43</TD><TD>17.000</TD><TD>COS   </TD><TD>PSA</TD><TD>G230L</TD><TD>11645</TD><TD>2011-05-05 16:37:37</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>LB5502O6Q</TD><TD>ENCELADUS-WEST-ELONGATION</TD><TD>179.356654167</TD><TD>3.01365</TD><TD>1</TD><TD>2010-05-05 08:38:43</TD><TD>2010-05-05 08:38:49</TD><TD>6.000</TD><TD>COS   </TD><TD>PSA</TD><TD>G230L</TD><TD>11645</TD><TD>2011-05-05 16:45:59</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>LB5502010</TD><TD>ENCELADUS-WEST-ELONGATION</TD><TD>179.356520833</TD><TD>3.01369166667</TD><TD>1</TD><TD>2010-05-05 08:40:30</TD><TD>2010-05-05 09:10:27</TD><TD>1680.416</TD><TD>COS   </TD><TD>PSA</TD><TD>G230L</TD><TD>11645</TD><TD>2011-05-05 16:47:03</TD><TD>LB5502010</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>LB5502020</TD><TD>ENCELADUS-WEST-ELONGATION</TD><TD>179.354416667</TD><TD>3.0145</TD><TD>1</TD><TD>2010-05-05 09:58:37</TD><TD>2010-05-05 10:45:59</TD><TD>2660.288</TD><TD>COS   </TD><TD>PSA</TD><TD>G140L</TD><TD>11645</TD><TD>2011-05-05 16:47:43</TD><TD>LB5502020</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>LB5501RBQ</TD><TD>ENCELADUS-EAST-ELONGATION</TD><TD>179.351395833</TD><TD>3.0243</TD><TD>1</TD><TD>2010-05-06 00:30:13</TD><TD>2010-05-06 00:30:19</TD><TD>6.000</TD><TD>COS   </TD><TD>PSA</TD><TD>G230L</TD><TD>11645</TD><TD>2011-05-06 03:18:16</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>LB5501RCQ</TD><TD>ENCELADUS-EAST-ELONGATION</TD><TD>179.351179167</TD><TD>3.02440833333</TD><TD>1</TD><TD>2010-05-06 00:32:58</TD><TD>2010-05-06 00:33:15</TD><TD>17.000</TD><TD>COS   </TD><TD>PSA</TD><TD>G230L</TD><TD>11645</TD><TD>2011-05-06 03:18:31</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>LB5501RDQ</TD><TD>ENCELADUS-EAST-ELONGATION</TD><TD>179.351133333</TD><TD>3.02443055556</TD><TD>1</TD><TD>2010-05-06 00:37:15</TD><TD>2010-05-06 00:37:21</TD><TD>6.000</TD><TD>COS   </TD><TD>PSA</TD><TD>G230L</TD><TD>11645</TD><TD>2011-05-06 03:27:30</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>LB5501010</TD><TD>ENCELADUS-EAST-ELONGATION</TD><TD>179.351054167</TD><TD>3.02446666667</TD><TD>1</TD><TD>2010-05-06 00:39:02</TD><TD>2010-05-06 01:08:59</TD><TD>1680.384</TD><TD>COS   </TD><TD>PSA</TD><TD>G230L</TD><TD>11645</TD><TD>2011-05-06 03:28:17</TD><TD>LB5501010</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>LB5501020</TD><TD>ENCELADUS-EAST-ELONGATION</TD><TD>179.349295833</TD><TD>3.02511388889</TD><TD>1</TD><TD>2010-05-06 01:57:09</TD><TD>2010-05-06 02:44:31</TD><TD>2660.192</TD><TD>COS   </TD><TD>PSA</TD><TD>G140L</TD><TD>11645</TD><TD>2011-05-06 04:29:35</TD><TD>LB5501020</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>OBJY01VJQ</TD><TD>GANYMEDE1A</TD><TD>359.731829167</TD><TD>-1.84833888889</TD><TD>0</TD><TD>2010-09-16 07:47:13</TD><TD>2010-09-16 07:54:55</TD><TD>0.300</TD><TD>STIS  </TD><TD>F28X50LP</TD><TD>MIRVIS</TD><TD>12244</TD><TD>2011-09-16 15:29:50</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>OBJY01010</TD><TD>GANYMEDE1A</TD><TD>359.730770833</TD><TD>-1.84884166667</TD><TD>0</TD><TD>2010-09-16 08:01:42</TD><TD>2010-09-16 08:01:42</TD><TD>0.000</TD><TD>STIS  </TD><TD>52X2</TD><TD>G140L</TD><TD>12244</TD><TD>2011-09-16 23:03:42</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>OBJY01020</TD><TD>GANYMEDE1A</TD><TD>359.729404167</TD><TD>-1.84949166667</TD><TD>0</TD><TD>2010-09-16 08:18:43</TD><TD>2010-09-16 08:18:43</TD><TD>0.000</TD><TD>STIS  </TD><TD>52X2</TD><TD>G140L</TD><TD>12244</TD><TD>2011-09-16 23:04:02</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>OBJY01030</TD><TD>GANYMEDE1A</TD><TD>359.724491667</TD><TD>-1.85183055556</TD><TD>0</TD><TD>2010-09-16 09:21:15</TD><TD>2010-09-16 09:21:15</TD><TD>0.000</TD><TD>STIS  </TD><TD>52X2</TD><TD>G140L</TD><TD>12244</TD><TD>2011-09-16 23:04:58</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>OBJY01040</TD><TD>GANYMEDE1A</TD><TD>359.722370833</TD><TD>-1.85283888889</TD><TD>0</TD><TD>2010-09-16 09:48:22</TD><TD>2010-09-16 09:48:22</TD><TD>0.000</TD><TD>STIS  </TD><TD>52X2</TD><TD>G140L</TD><TD>12244</TD><TD>2011-09-16 23:05:40</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>OBJYA1W2Q</TD><TD>GANYMEDE1A</TD><TD>359.716541667</TD><TD>-1.85561666667</TD><TD>0</TD><TD>2010-09-16 10:58:55</TD><TD>2010-09-16 11:06:37</TD><TD>0.300</TD><TD>STIS  </TD><TD>F28X50LP</TD><TD>MIRVIS</TD><TD>12244</TD><TD>2011-09-16 23:05:50</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>OBJYA1010</TD><TD>GANYMEDE1A</TD><TD>359.715391667</TD><TD>-1.85616388889</TD><TD>0</TD><TD>2010-09-16 11:13:24</TD><TD>2010-09-16 11:13:24</TD><TD>0.000</TD><TD>STIS  </TD><TD>52X2</TD><TD>G140L</TD><TD>12244</TD><TD>2011-09-16 23:10:24</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>OBJYA1020</TD><TD>GANYMEDE1A</TD><TD>359.713908333</TD><TD>-1.85686944444</TD><TD>0</TD><TD>2010-09-16 11:30:25</TD><TD>2010-09-16 11:30:25</TD><TD>0.000</TD><TD>STIS  </TD><TD>52X2</TD><TD>G140L</TD><TD>12244</TD><TD>2011-09-16 23:11:06</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>OBJYA1030</TD><TD>GANYMEDE1A</TD><TD>359.708575</TD><TD>-1.85940833333</TD><TD>0</TD><TD>2010-09-16 12:32:57</TD><TD>2010-09-16 12:32:57</TD><TD>0.000</TD><TD>STIS  </TD><TD>52X2</TD><TD>G140L</TD><TD>12244</TD><TD>2011-09-16 23:12:01</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>OBJYA1040</TD><TD>GANYMEDE1A</TD><TD>359.706275</TD><TD>-1.86050277778</TD><TD>0</TD><TD>2010-09-16 13:00:04</TD><TD>2010-09-16 13:00:04</TD><TD>0.000</TD><TD>STIS  </TD><TD>52X2</TD><TD>G140L</TD><TD>12244</TD><TD>2011-09-16 23:12:49</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>OBJYA1050</TD><TD>GANYMEDE1A</TD><TD>359.700133333</TD><TD>-1.86342777778</TD><TD>0</TD><TD>2010-09-16 14:09:28</TD><TD>2010-09-16 14:09:28</TD><TD>0.000</TD><TD>STIS  </TD><TD>52X2</TD><TD>G140L</TD><TD>12244</TD><TD>2011-09-16 23:16:55</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>OBJYA1060</TD><TD>GANYMEDE1A</TD><TD>359.697941667</TD><TD>-1.86446944444</TD><TD>0</TD><TD>2010-09-16 14:33:05</TD><TD>2010-09-16 14:33:05</TD><TD>0.000</TD><TD>STIS  </TD><TD>52X2</TD><TD>G140L</TD><TD>12244</TD><TD>2011-09-16 23:17:50</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>OBJY03JAQ</TD><TD>GANYMEDE2A</TD><TD>354.539475</TD><TD>-3.93192222222</TD><TD>0</TD><TD>2010-11-19 19:56:49</TD><TD>2010-11-19 20:04:31</TD><TD>0.300</TD><TD>STIS  </TD><TD>F28X50LP</TD><TD>MIRVIS</TD><TD>12244</TD><TD>2011-11-19 23:43:25</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>OBJY03010</TD><TD>GANYMEDE2A</TD><TD>354.539441667</TD><TD>-3.93191944444</TD><TD>0</TD><TD>2010-11-19 20:11:18</TD><TD>2010-11-19 20:24:36</TD><TD>798.182</TD><TD>STIS  </TD><TD>52X2</TD><TD>G140L</TD><TD>12244</TD><TD>2011-11-19 23:51:12</TD><TD>OBJY03010</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>OBJY03020</TD><TD>GANYMEDE2A</TD><TD>354.539391667</TD><TD>-3.931925</TD><TD>0</TD><TD>2010-11-19 20:28:04</TD><TD>2010-11-19 20:41:22</TD><TD>798.196</TD><TD>STIS  </TD><TD>52X2</TD><TD>G140L</TD><TD>12244</TD><TD>2011-11-19 23:51:05</TD><TD>OBJY03020</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>OBJY03030</TD><TD>GANYMEDE2A</TD><TD>354.5391625</TD><TD>-3.93196388889</TD><TD>0</TD><TD>2010-11-19 21:25:54</TD><TD>2010-11-19 21:45:33</TD><TD>1179.197</TD><TD>STIS  </TD><TD>52X2</TD><TD>G140L</TD><TD>12244</TD><TD>2011-11-19 23:52:26</TD><TD>OBJY03030</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>OBJY03040</TD><TD>GANYMEDE2A</TD><TD>354.539029167</TD><TD>-3.93199722222</TD><TD>0</TD><TD>2010-11-19 21:52:46</TD><TD>2010-11-19 22:12:25</TD><TD>1179.191</TD><TD>STIS  </TD><TD>52X2</TD><TD>G140L</TD><TD>12244</TD><TD>2011-11-20 04:47:32</TD><TD>OBJY03040</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>OBJY03050</TD><TD>GANYMEDE2A</TD><TD>354.538570833</TD><TD>-3.93213333333</TD><TD>0</TD><TD>2010-11-19 23:01:45</TD><TD>2010-11-19 23:21:24</TD><TD>1179.198</TD><TD>STIS  </TD><TD>52X2</TD><TD>G140L</TD><TD>12244</TD><TD>2011-11-20 04:47:40</TD><TD>OBJY03050</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>OBJY03060</TD><TD>GANYMEDE2A</TD><TD>354.5383625</TD><TD>-3.9322</TD><TD>0</TD><TD>2010-11-19 23:28:37</TD><TD>2010-11-19 23:48:16</TD><TD>1179.197</TD><TD>STIS  </TD><TD>52X2</TD><TD>G140L</TD><TD>12244</TD><TD>2011-11-20 04:50:55</TD><TD>OBJY03060</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>OBJY03070</TD><TD>GANYMEDE2A</TD><TD>354.5377125</TD><TD>-3.93242777778</TD><TD>0</TD><TD>2010-11-20 00:37:37</TD><TD>2010-11-20 00:57:16</TD><TD>1179.199</TD><TD>STIS  </TD><TD>52X2</TD><TD>G140L</TD><TD>12244</TD><TD>2011-11-20 04:51:20</TD><TD>OBJY03070</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>OBJY03080</TD><TD>GANYMEDE2A</TD><TD>354.537433333</TD><TD>-3.93252777778</TD><TD>0</TD><TD>2010-11-20 01:04:29</TD><TD>2010-11-20 01:24:08</TD><TD>1179.192</TD><TD>STIS  </TD><TD>52X2</TD><TD>G140L</TD><TD>12244</TD><TD>2011-11-20 04:55:09</TD><TD>OBJY03080</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>OBJY03090</TD><TD>GANYMEDE2A</TD><TD>354.536595833</TD><TD>-3.93284166667</TD><TD>0</TD><TD>2010-11-20 02:13:28</TD><TD>2010-11-20 02:33:07</TD><TD>1179.199</TD><TD>STIS  </TD><TD>52X2</TD><TD>G140L</TD><TD>12244</TD><TD>2011-11-20 04:55:32</TD><TD>OBJY03090</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>OBJY030A0</TD><TD>GANYMEDE2A</TD><TD>354.536245833</TD><TD>-3.93297777778</TD><TD>0</TD><TD>2010-11-20 02:40:20</TD><TD>2010-11-20 02:59:59</TD><TD>1179.198</TD><TD>STIS  </TD><TD>52X2</TD><TD>G140L</TD><TD>12244</TD><TD>2011-11-20 04:56:24</TD><TD>OBJY030A0</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>OBJY11TBQ</TD><TD>GANYMEDE1A-REPEAT</TD><TD>36.7293583333</TD><TD>12.9859805556</TD><TD>0</TD><TD>2011-10-01 09:23:55</TD><TD>2011-10-01 09:31:38</TD><TD>0.300</TD><TD>STIS  </TD><TD>F28X50LP</TD><TD>MIRVIS</TD><TD>12244</TD><TD>2012-10-01 14:19:19</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>OBJY11010</TD><TD>GANYMEDE1A-REPEAT</TD><TD>36.7284875</TD><TD>12.985625</TD><TD>0</TD><TD>2011-10-01 09:38:24</TD><TD>2011-10-01 09:51:57</TD><TD>813.190</TD><TD>STIS  </TD><TD>52X2</TD><TD>G140L</TD><TD>12244</TD><TD>2012-10-01 14:22:24</TD><TD>OBJY11010</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>OBJY11020</TD><TD>GANYMEDE1A-REPEAT</TD><TD>36.7273625</TD><TD>12.9851638889</TD><TD>0</TD><TD>2011-10-01 09:55:25</TD><TD>2011-10-01 10:08:58</TD><TD>813.200</TD><TD>STIS  </TD><TD>52X2</TD><TD>G140L</TD><TD>12244</TD><TD>2012-10-03 12:43:16</TD><TD>OBJY11020</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>OBJY11030</TD><TD>GANYMEDE1A-REPEAT</TD><TD>36.7234291667</TD><TD>12.9835638889</TD><TD>0</TD><TD>2011-10-01 10:55:46</TD><TD>2011-10-01 11:15:40</TD><TD>1194.198</TD><TD>STIS  </TD><TD>52X2</TD><TD>G140L</TD><TD>12244</TD><TD>2012-10-01 14:22:30</TD><TD>OBJY11030</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>OBJY11040</TD><TD>GANYMEDE1A-REPEAT</TD><TD>36.7216666667</TD><TD>12.98285</TD><TD>0</TD><TD>2011-10-01 11:22:53</TD><TD>2011-10-01 11:42:47</TD><TD>1194.199</TD><TD>STIS  </TD><TD>52X2</TD><TD>G140L</TD><TD>12244</TD><TD>2012-10-01 14:22:55</TD><TD>OBJY11040</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>OBJYB1TQQ</TD><TD>GANYMEDE1A-REPEAT</TD><TD>36.7167791667</TD><TD>12.980875</TD><TD>0</TD><TD>2011-10-01 12:33:24</TD><TD>2011-10-01 12:41:07</TD><TD>0.300</TD><TD>STIS  </TD><TD>F28X50LP</TD><TD>MIRVIS</TD><TD>12244</TD><TD>2012-10-01 14:23:51</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>OBJYB1010</TD><TD>GANYMEDE1A-REPEAT</TD><TD>36.7158125</TD><TD>12.9804861111</TD><TD>0</TD><TD>2011-10-01 12:47:53</TD><TD>2011-10-01 13:01:26</TD><TD>813.196</TD><TD>STIS  </TD><TD>52X2</TD><TD>G140L</TD><TD>12244</TD><TD>2012-10-02 00:12:18</TD><TD>OBJYB1010</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>OBJYB1020</TD><TD>GANYMEDE1A-REPEAT</TD><TD>36.7145625</TD><TD>12.9799833333</TD><TD>0</TD><TD>2011-10-01 13:04:54</TD><TD>2011-10-01 13:18:27</TD><TD>813.198</TD><TD>STIS  </TD><TD>52X2</TD><TD>G140L</TD><TD>12244</TD><TD>2012-10-02 00:12:23</TD><TD>OBJYB1020</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>OBJYB1030</TD><TD>GANYMEDE1A-REPEAT</TD><TD>36.7100458333</TD><TD>12.9781722222</TD><TD>0</TD><TD>2011-10-01 14:07:24</TD><TD>2011-10-01 14:27:18</TD><TD>1194.196</TD><TD>STIS  </TD><TD>52X2</TD><TD>G140L</TD><TD>12244</TD><TD>2012-10-02 00:12:28</TD><TD>OBJYB1030</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>OBJYB1040</TD><TD>GANYMEDE1A-REPEAT</TD><TD>36.7080916667</TD><TD>12.9773916667</TD><TD>0</TD><TD>2011-10-01 14:34:31</TD><TD>2011-10-01 14:54:25</TD><TD>1194.198</TD><TD>STIS  </TD><TD>52X2</TD><TD>G140L</TD><TD>12244</TD><TD>2012-10-02 00:14:03</TD><TD>OBJYB1040</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>OBJYB1050</TD><TD>GANYMEDE1A-REPEAT</TD><TD>36.7028416667</TD><TD>12.9753</TD><TD>0</TD><TD>2011-10-01 15:43:53</TD><TD>2011-10-01 16:04:02</TD><TD>1209.195</TD><TD>STIS  </TD><TD>52X2</TD><TD>G140L</TD><TD>12244</TD><TD>2012-10-02 00:16:29</TD><TD>OBJYB1050</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>OBJYB1060</TD><TD>GANYMEDE1A-REPEAT</TD><TD>36.7009625</TD><TD>12.9745555556</TD><TD>0</TD><TD>2011-10-01 16:07:30</TD><TD>2011-10-01 16:27:39</TD><TD>1209.199</TD><TD>STIS  </TD><TD>52X2</TD><TD>G140L</TD><TD>12244</TD><TD>2012-10-02 00:16:35</TD><TD>OBJYB1060</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>LB6A02010</TD><TD>IO-EMERGED</TD><TD>29.2859125</TD><TD>10.5207333333</TD><TD>0</TD><TD>2011-12-05 06:49:41</TD><TD>2011-12-05 08:44:48</TD><TD>12357.888</TD><TD>COS   </TD><TD>PSA</TD><TD>G225M</TD><TD>11539</TD><TD>2012-12-06 06:08:23</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>LB6A01EGQ</TD><TD>EUROPA</TD><TD>28.6431791667</TD><TD>10.3615833333</TD><TD>0</TD><TD>2011-12-19 10:33:41</TD><TD>2011-12-19 10:33:46</TD><TD>5.000</TD><TD>COS   </TD><TD>PSA</TD><TD>G285M</TD><TD>11539</TD><TD>2012-12-19 20:08:31</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>LB6A01EHQ</TD><TD>EUROPA</TD><TD>28.64365</TD><TD>10.3618027778</TD><TD>0</TD><TD>2011-12-19 10:37:09</TD><TD>2011-12-19 10:37:14</TD><TD>5.000</TD><TD>COS   </TD><TD>PSA</TD><TD>G285M</TD><TD>11539</TD><TD>2012-12-19 20:08:36</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>LB6A01EIQ</TD><TD>EUROPA</TD><TD>28.64375</TD><TD>10.36185</TD><TD>0</TD><TD>2011-12-19 10:41:13</TD><TD>2011-12-19 10:41:18</TD><TD>5.000</TD><TD>COS   </TD><TD>PSA</TD><TD>G285M</TD><TD>11539</TD><TD>2012-12-19 20:08:41</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>LB6AA1010</TD><TD>IO-EMERGED</TD><TD>28.6347541667</TD><TD>10.3570805556</TD><TD>0</TD><TD>2011-12-19 10:52:39</TD><TD>2011-12-19 12:50:00</TD><TD>12913.152</TD><TD>COS   </TD><TD>PSA</TD><TD>G225M</TD><TD>11539</TD><TD>2012-12-19 20:20:02</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>LB6A04010</TD><TD>IO-EMERGED-2</TD><TD>28.6872375</TD><TD>10.4644111111</TD><TD>0</TD><TD>2012-01-04 09:37:11</TD><TD>2012-01-04 10:22:51</TD><TD>2740.192</TD><TD>COS   </TD><TD>PSA</TD><TD>G130M</TD><TD>11539</TD><TD>2013-01-04 20:08:15</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>LB6A03010</TD><TD>IO-ECLIPSED-HALF-2</TD><TD>28.9722458333</TD><TD>10.6069722222</TD><TD>0</TD><TD>2012-01-11 10:57:48</TD><TD>2012-01-11 11:41:08</TD><TD>2600.192</TD><TD>COS   </TD><TD>PSA</TD><TD>G130M</TD><TD>11539</TD><TD>2013-01-11 21:00:27</TD><TD/><TD/>
+
+</TR>
+
+</TABLEDATA>
+
+</DATA>
+
+</TABLE>
+
+</RESOURCE>
+
+</VOTABLE>
diff --git a/generic_data/Hst/hstVOtable-saturn.xml b/generic_data/Hst/hstVOtable-saturn.xml
new file mode 100644
index 0000000..617c37f
--- /dev/null
+++ b/generic_data/Hst/hstVOtable-saturn.xml
@@ -0,0 +1,4828 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<VOTABLE version="v1.0">
+
+ <DESCRIPTION>
+
+   Mikulski Archive for Space Telescopes (MAST)    archive.stsci.edu
+
+   send questions to: archive@stsci.edu
+
+ </DESCRIPTION>
+
+<DEFINITIONS>
+
+  <COOSYS ID="myJ2000" system="eq_FK5" equinox="2000." epoch="2000."/>
+
+</DEFINITIONS>
+
+<RESOURCE type="results">
+
+<INFO name="QUERY_STATUS" value="OK"/>
+
+<PARAM ID="sci_pep_id" name="sci_pep_id" value="13051,12660,12235,12176,11984,11645,11566,10862,10506,10156,10083,8158,8117,6854,6648,6215,6024,5757,5414,5341,5219"/>
+
+<PARAM ID="ordercolumn1" name="ordercolumn1" value="sci_start_time"/>
+
+<PARAM ID="ordercolumn2" name="ordercolumn2" value="sci_targname"/>
+
+<PARAM ID="ordercolumn3" name="ordercolumn3" value="sci_data_set_name"/>
+
+<PARAM ID="max_records" name="max_records" value="2000"/>
+
+<PARAM ID="verb" name="verb" value="1"/>
+
+<PARAM ID="coordformat" name="coordformat" value="sex"/>
+
+<PARAM ID="mission" name="mission" value="hst"/>
+
+<PARAM ID="target" name="target" value=""/>
+
+<PARAM ID="found_rows" name="found_rows" value="780"/>
+
+<TABLE name="HST">
+
+<DESCRIPTION>MAST HST Search: 780 row(s) returned!</DESCRIPTION>
+
+<FIELD name="Dataset" datatype="char" ucd="ID_MAIN" arraysize="*"><DESCRIPTION>Data set name First character indicates instrument; L=COS; I=WFC3; J=ACS; N=NICMOS; O=STIS; U=WFPC2; W=WFPC; X=FOC; Y=FOS; Z=GHRS; F=FGS; V=HSP;
+
+   </DESCRIPTION>
+
+</FIELD>
+
+<FIELD name="Target Name" datatype="char" ucd="ID_TARGET" arraysize="*"><DESCRIPTION>Observer assigned target name; uppercase; no blank characters;  spaces sometimes filled with - ; use with wildcards
+
+   </DESCRIPTION>
+
+</FIELD>
+
+<FIELD name="RA (J2000)" datatype="double" ucd="POS_EQ_RA_MAIN" unit="degrees" ref="myJ2000"><DESCRIPTION>Right Ascension (J2000)
+
+   </DESCRIPTION>
+
+</FIELD>
+
+<FIELD name="Dec (J2000)" datatype="double" ucd="POS_EQ_DEC_MAIN" unit="degrees" ref="myJ2000"><DESCRIPTION>Declination (J2000)
+
+   </DESCRIPTION>
+
+</FIELD>
+
+<FIELD name="Ref" datatype="int" ucd="REFER_CODE"><DESCRIPTION>The number of known literature references associated with the listed proposal ID (HST) or data set name.
+
+   </DESCRIPTION>
+
+</FIELD>
+
+<FIELD name="Start Time" datatype="char" ucd="TIME_DATE" arraysize="*"><DESCRIPTION>Observation start time
+
+   </DESCRIPTION>
+
+</FIELD>
+
+<FIELD name="Stop Time" datatype="char" ucd="TIME_DATE" arraysize="*"><DESCRIPTION>Observation stop time
+
+   </DESCRIPTION>
+
+</FIELD>
+
+<FIELD name="Exp Time" datatype="float" ucd="TIME_EXPTIME" unit="seconds"><DESCRIPTION>Exposure time
+
+   </DESCRIPTION>
+
+</FIELD>
+
+<FIELD name="Instrument" datatype="char" ucd="INST_ID" arraysize="*"><DESCRIPTION>Instrument used
+
+   </DESCRIPTION>
+
+</FIELD>
+
+<FIELD name="Apertures" datatype="char" ucd="INST_APERT" arraysize="*"><DESCRIPTION>Aperture configuration See  &amp;#60;a href=&amp;#34;/hst/aperturelist.html&amp;#34;&amp;#62; a complete list&amp;#60;/a&amp;#62;
+
+   </DESCRIPTION>
+
+</FIELD>
+
+<FIELD name="Filters/Gratings" datatype="char" ucd="INST_FILTER" arraysize="*"><DESCRIPTION>Filter used. See &lt;a href="/hst/filterlist.html"&gt;a more complete list&lt;/a&gt; Sometimes combined so wildcard search may be needed
+
+   </DESCRIPTION>
+
+</FIELD>
+
+<FIELD name="Proposal ID" datatype="int" ucd="OBS_ID"><DESCRIPTION>Integer assign to each proposal
+
+   </DESCRIPTION>
+
+</FIELD>
+
+<FIELD name="Release Date" datatype="char" ucd="TIME_DATE" arraysize="*"><DESCRIPTION>Date data become publicly available
+
+   </DESCRIPTION>
+
+</FIELD>
+
+<FIELD name="Preview Name" datatype="char" ucd="ID_DATA" arraysize="*"><DESCRIPTION>Preview name (generally the same as the data set name)
+
+   </DESCRIPTION>
+
+</FIELD>
+
+<FIELD name="High-Level Science Products" datatype="int"><DESCRIPTION>Number of known High Level Science Products
+
+   </DESCRIPTION>
+
+</FIELD>
+
+<DATA>
+
+<TABLEDATA>
+
+<TR>
+
+<TD>Z2W70101T</TD><TD>TITAN</TD><TD/><TD/><TD>0</TD><TD/><TD/><TD/><TD>HRS   </TD><TD>2.0</TD><TD>MIRROR-N2</TD><TD>6024</TD><TD>1996-09-04 21:23:15</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2W70201T</TD><TD>TITAN</TD><TD/><TD/><TD>0</TD><TD/><TD/><TD/><TD>HRS   </TD><TD>2.0</TD><TD>MIRROR-N2</TD><TD>6024</TD><TD>1996-09-21 16:32:42</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2IJ0101T</TD><TD>TITANIA-ACQ</TD><TD/><TD/><TD>1</TD><TD/><TD/><TD/><TD>HRS   </TD><TD>2.0</TD><TD>MIRROR-N2</TD><TD>5414</TD><TD>1995-09-21 14:37:20</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2IJ0103T</TD><TD>TITANIA-ACQ</TD><TD/><TD/><TD>1</TD><TD/><TD/><TD/><TD>HRS   </TD><TD>2.0</TD><TD>MIRROR-N2</TD><TD>5414</TD><TD>1995-09-22 16:34:21</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2IJ0301T</TD><TD>TRITON-ACQ</TD><TD/><TD/><TD>1</TD><TD/><TD/><TD/><TD>HRS   </TD><TD>2.0</TD><TD>MIRROR-N2</TD><TD>5414</TD><TD>1995-09-19 17:56:55</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2IJ0303T</TD><TD>TRITON-ACQ</TD><TD/><TD/><TD>1</TD><TD/><TD/><TD/><TD>HRS   </TD><TD>2.0</TD><TD>MIRROR-N2</TD><TD>5414</TD><TD>1995-09-20 20:15:13</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2IJ0302T</TD><TD>TRITON-ACQ</TD><TD>292.249904167</TD><TD>-21.4061472222</TD><TD>1</TD><TD>1994-09-19 04:53:16</TD><TD>1994-09-19 05:08:33</TD><TD>0.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>MIRROR-N2</TD><TD>5414</TD><TD>1995-09-19 17:58:01</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2IJ0304T</TD><TD>TRITON-ACQ</TD><TD>292.280595833</TD><TD>-21.2612638889</TD><TD>1</TD><TD>1994-09-19 05:21:40</TD><TD>1994-09-19 05:24:48</TD><TD>1.350</TD><TD>HRS   </TD><TD>2.0</TD><TD>MIRROR-N2</TD><TD>5414</TD><TD>1995-09-20 01:26:07</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2IJ0305T</TD><TD>SPYBAL</TD><TD>292.278045833</TD><TD>-21.2581722222</TD><TD>1</TD><TD>1994-09-19 06:39:02</TD><TD>1994-09-19 06:39:39</TD><TD>32.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5414</TD><TD>1995-09-20 01:36:22</TD><TD>Z2IJ0305T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2IJ0306T</TD><TD>NEPTUNE</TD><TD>292.278045833</TD><TD>-21.2581722222</TD><TD>1</TD><TD>1994-09-19 06:40:24</TD><TD>1994-09-19 07:00:31</TD><TD>1088.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5414</TD><TD>1995-09-20 01:40:08</TD><TD>Z2IJ0306T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2IJ0307T</TD><TD>SPYBAL</TD><TD>292.277541667</TD><TD>-21.258275</TD><TD>1</TD><TD>1994-09-19 08:15:28</TD><TD>1994-09-19 08:16:05</TD><TD>32.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5414</TD><TD>1995-09-20 01:41:29</TD><TD>Z2IJ0307T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2IJ0308T</TD><TD>NEPTUNE</TD><TD>292.277541667</TD><TD>-21.258275</TD><TD>1</TD><TD>1994-09-19 08:16:40</TD><TD>1994-09-19 08:36:47</TD><TD>1088.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5414</TD><TD>1995-09-20 01:45:10</TD><TD>Z2IJ0308T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2IJ0309T</TD><TD>SPYBAL</TD><TD>292.277025</TD><TD>-21.2583833333</TD><TD>1</TD><TD>1994-09-19 09:55:01</TD><TD>1994-09-19 09:55:38</TD><TD>32.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5414</TD><TD>1995-09-20 01:46:44</TD><TD>Z2IJ0309T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2IJ030AT</TD><TD>NEPTUNE</TD><TD>292.277025</TD><TD>-21.2583833333</TD><TD>1</TD><TD>1994-09-19 09:56:10</TD><TD>1994-09-19 10:06:44</TD><TD>544.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5414</TD><TD>1995-09-20 01:49:02</TD><TD>Z2IJ030AT</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2IJ030BT</TD><TD>WAVE</TD><TD>0.0001875</TD><TD>-0.00127222222222</TD><TD>1</TD><TD>1994-09-19 10:09:11</TD><TD>1994-09-19 10:09:41</TD><TD>27.200</TD><TD>HRS   </TD><TD>SC2</TD><TD>ECH-A</TD><TD>5414</TD><TD>1995-09-20 01:50:15</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2IJ030CT</TD><TD>SPYBAL</TD><TD>292.276541667</TD><TD>-21.2418194444</TD><TD>1</TD><TD>1994-09-19 11:28:26</TD><TD>1994-09-19 11:29:03</TD><TD>32.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5414</TD><TD>1995-09-20 01:51:37</TD><TD>Z2IJ030CT</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2IJ030DT</TD><TD>NEPTUNE-OFFSET-SKY</TD><TD>292.276541667</TD><TD>-21.2418194444</TD><TD>1</TD><TD>1994-09-19 11:29:34</TD><TD>1994-09-19 11:52:00</TD><TD>1196.799</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5414</TD><TD>1995-09-20 01:55:21</TD><TD>Z2IJ030DT</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2IJ030ET</TD><TD>SPYBAL</TD><TD>292.276033333</TD><TD>-21.241925</TD><TD>1</TD><TD>1994-09-19 13:08:02</TD><TD>1994-09-19 13:08:39</TD><TD>32.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5414</TD><TD>1995-09-20 01:56:15</TD><TD>Z2IJ030ET</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2IJ030FT</TD><TD>NEPTUNE-OFFSET-SKY</TD><TD>292.276033333</TD><TD>-21.241925</TD><TD>1</TD><TD>1994-09-19 13:09:10</TD><TD>1994-09-19 13:20:53</TD><TD>598.400</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5414</TD><TD>1995-09-20 01:58:39</TD><TD>Z2IJ030FT</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2IJ0102T</TD><TD>TITANIA-ACQ</TD><TD>294.371825</TD><TD>-22.2112222222</TD><TD>1</TD><TD>1994-09-20 06:35:52</TD><TD>1994-09-20 06:48:01</TD><TD>0.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>MIRROR-N2</TD><TD>5414</TD><TD>1995-09-21 14:38:15</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2IJ0104T</TD><TD>TITANIA-ACQ</TD><TD>294.399258333</TD><TD>-22.0656027778</TD><TD>1</TD><TD>1994-09-20 07:03:58</TD><TD>1994-09-20 07:07:06</TD><TD>1.350</TD><TD>HRS   </TD><TD>2.0</TD><TD>MIRROR-N2</TD><TD>5414</TD><TD>1995-09-21 14:39:40</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2IJ0201T</TD><TD>SPYBAL</TD><TD>294.403545833</TD><TD>-22.0721944444</TD><TD>1</TD><TD>1994-09-20 08:23:14</TD><TD>1994-09-20 08:23:51</TD><TD>32.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5414</TD><TD>1995-09-21 14:44:25</TD><TD>Z2IJ0201T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2IJ0202T</TD><TD>URANUS-CENTER</TD><TD>294.403545833</TD><TD>-22.0721944444</TD><TD>1</TD><TD>1994-09-20 08:24:22</TD><TD>1994-09-20 08:46:48</TD><TD>1196.799</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5414</TD><TD>1995-09-21 14:53:22</TD><TD>Z2IJ0202T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2IJ0203T</TD><TD>SPYBAL</TD><TD>294.402858333</TD><TD>-22.0722805556</TD><TD>1</TD><TD>1994-09-20 09:59:45</TD><TD>1994-09-20 10:00:22</TD><TD>32.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5414</TD><TD>1995-09-21 14:56:22</TD><TD>Z2IJ0203T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2IJ0204T</TD><TD>URANUS-CENTER</TD><TD>294.402858333</TD><TD>-22.0722805556</TD><TD>1</TD><TD>1994-09-20 10:00:58</TD><TD>1994-09-20 10:12:41</TD><TD>598.400</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5414</TD><TD>1995-09-21 15:01:51</TD><TD>Z2IJ0204T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2IJ0205T</TD><TD>SPYBAL</TD><TD>294.402308333</TD><TD>-22.0722611111</TD><TD>1</TD><TD>1994-09-20 10:18:02</TD><TD>1994-09-20 10:18:39</TD><TD>32.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5414</TD><TD>1995-09-21 15:03:27</TD><TD>Z2IJ0205T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2IJ0206T</TD><TD>URANUS-AUR</TD><TD>294.402308333</TD><TD>-22.0722611111</TD><TD>1</TD><TD>1994-09-20 10:19:10</TD><TD>1994-09-20 10:25:32</TD><TD>299.200</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5414</TD><TD>1995-09-21 15:09:21</TD><TD>Z2IJ0206T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2IJ0207T</TD><TD>SPYBAL</TD><TD>294.401754167</TD><TD>-22.0723305556</TD><TD>1</TD><TD>1994-09-20 11:36:15</TD><TD>1994-09-20 11:36:52</TD><TD>32.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5414</TD><TD>1995-09-21 15:12:25</TD><TD>Z2IJ0207T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2IJ0208T</TD><TD>URANUS-AUR</TD><TD>294.401754167</TD><TD>-22.0723305556</TD><TD>1</TD><TD>1994-09-20 11:37:28</TD><TD>1994-09-20 11:59:55</TD><TD>1196.799</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5414</TD><TD>1995-09-21 15:22:06</TD><TD>Z2IJ0208T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2IJ0209T</TD><TD>SPYBAL</TD><TD>294.40105</TD><TD>-22.0724194444</TD><TD>1</TD><TD>1994-09-20 13:16:09</TD><TD>1994-09-20 13:16:46</TD><TD>32.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5414</TD><TD>1995-09-21 15:24:57</TD><TD>Z2IJ0209T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2IJ020AT</TD><TD>URANUS-AUR</TD><TD>294.40105</TD><TD>-22.0724194444</TD><TD>1</TD><TD>1994-09-20 13:17:22</TD><TD>1994-09-20 13:23:44</TD><TD>299.200</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5414</TD><TD>1995-09-21 15:30:40</TD><TD>Z2IJ020AT</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2IJ020BT</TD><TD>WAVE</TD><TD>0.000216666666667</TD><TD>-0.00126666666667</TD><TD>1</TD><TD>1994-09-20 13:26:05</TD><TD>1994-09-20 13:26:35</TD><TD>27.200</TD><TD>HRS   </TD><TD>SC2</TD><TD>ECH-A</TD><TD>5414</TD><TD>1995-09-21 15:33:05</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>X2IP0101T</TD><TD>LIMBSAT</TD><TD>339.4185375</TD><TD>-10.7949888889</TD><TD>2</TD><TD>1994-10-01 22:53:05</TD><TD>1994-10-01 23:13:01</TD><TD>1195.750</TD><TD>FOC   </TD><TD>512X1024</TD><TD>F2ND;F220W;F210M;CLEAR4</TD><TD>5341</TD><TD>1995-10-02 20:33:17</TD><TD>X2IP0101T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>X2IP0201T</TD><TD>SATNORTH1</TD><TD>339.414883333</TD><TD>-10.7963638889</TD><TD>2</TD><TD>1994-10-02 00:29:38</TD><TD>1994-10-02 00:47:34</TD><TD>1075.750</TD><TD>FOC   </TD><TD>512X1024</TD><TD>CLEAR1;F175W;F152M;CLEAR4</TD><TD>5341</TD><TD>1995-10-02 21:01:41</TD><TD>X2IP0201T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>X2IP0301T</TD><TD>LIMBSAT</TD><TD>339.411154167</TD><TD>-10.7977666667</TD><TD>2</TD><TD>1994-10-02 02:06:12</TD><TD>1994-10-02 02:24:08</TD><TD>1075.750</TD><TD>FOC   </TD><TD>512X1024</TD><TD>CLEAR1;F175W;F152M;CLEAR4</TD><TD>5341</TD><TD>1995-10-02 21:16:39</TD><TD>X2IP0301T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>X2IP0302T</TD><TD>LIMBSAT</TD><TD>339.407545833</TD><TD>-10.7991222222</TD><TD>2</TD><TD>1994-10-02 03:39:45</TD><TD>1994-10-02 03:57:41</TD><TD>1075.750</TD><TD>FOC   </TD><TD>512X1024</TD><TD>CLEAR1;F175W;F152M;CLEAR4</TD><TD>5341</TD><TD>1995-10-02 21:29:27</TD><TD>X2IP0302T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>X2IP0303T</TD><TD>LIMBSAT</TD><TD>339.403825</TD><TD>-10.8005194444</TD><TD>2</TD><TD>1994-10-02 05:16:18</TD><TD>1994-10-02 05:34:14</TD><TD>1075.750</TD><TD>FOC   </TD><TD>512X1024</TD><TD>CLEAR1;F175W;F152M;CLEAR4</TD><TD>5341</TD><TD>1995-10-02 21:41:12</TD><TD>X2IP0303T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>X2IP0304T</TD><TD>LIMBSAT</TD><TD>339.4001125</TD><TD>-10.8019138889</TD><TD>2</TD><TD>1994-10-02 06:52:51</TD><TD>1994-10-02 07:10:47</TD><TD>1075.750</TD><TD>FOC   </TD><TD>512X1024</TD><TD>CLEAR1;F175W;F152M;CLEAR4</TD><TD>5341</TD><TD>1995-10-02 21:52:47</TD><TD>X2IP0304T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>X2IP0305T</TD><TD>LIMBSAT</TD><TD>339.396404167</TD><TD>-10.8033083333</TD><TD>2</TD><TD>1994-10-02 08:29:24</TD><TD>1994-10-02 08:47:20</TD><TD>1075.750</TD><TD>FOC   </TD><TD>512X1024</TD><TD>CLEAR1;F175W;F152M;CLEAR4</TD><TD>5341</TD><TD>1995-10-02 22:04:40</TD><TD>X2IP0305T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>X2IP0306T</TD><TD>LIMBSAT</TD><TD>339.392695833</TD><TD>-10.8047</TD><TD>2</TD><TD>1994-10-02 10:05:57</TD><TD>1994-10-02 10:23:53</TD><TD>1075.750</TD><TD>FOC   </TD><TD>512X1024</TD><TD>CLEAR1;F175W;F152M;CLEAR4</TD><TD>5341</TD><TD>1995-10-02 22:16:15</TD><TD>X2IP0306T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>X2IP0307T</TD><TD>LIMBSAT</TD><TD>339.3891125</TD><TD>-10.8060472222</TD><TD>2</TD><TD>1994-10-02 11:42:30</TD><TD>1994-10-02 11:57:26</TD><TD>895.750</TD><TD>FOC   </TD><TD>512X1024</TD><TD>CLEAR1;F175W;F152M;CLEAR4</TD><TD>5341</TD><TD>1995-10-02 22:46:03</TD><TD>X2IP0307T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U2IQ0101T</TD><TD>SAT-N-AUR1</TD><TD>339.040620833</TD><TD>-10.9293194444</TD><TD>2</TD><TD>1994-10-09 11:06:16</TD><TD>1994-10-09 11:06:18</TD><TD>2.000</TD><TD>WFPC2 </TD><TD>WF3-FIX</TD><TD>F673N</TD><TD>5219</TD><TD>1995-10-09 22:41:57</TD><TD>U2IQ0101T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U2IQ0102T</TD><TD>SAT-N-AUR1</TD><TD>339.039541667</TD><TD>-10.9297111111</TD><TD>2</TD><TD>1994-10-09 11:13:16</TD><TD>1994-10-09 11:38:16</TD><TD>1500.000</TD><TD>WFPC2 </TD><TD>WF3-FIX;F160BN15</TD><TD>F160BN15;F165LP</TD><TD>5219</TD><TD>1995-10-10 00:16:54</TD><TD>U2IQ0102T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U2IQ0103T</TD><TD>SAT-N-AUR1</TD><TD>339.037383333</TD><TD>-10.9304944444</TD><TD>2</TD><TD>1994-10-09 12:29:16</TD><TD>1994-10-09 12:45:56</TD><TD>1000.000</TD><TD>WFPC2 </TD><TD>WF3-FIX;F160BN15</TD><TD>F160BN15</TD><TD>5219</TD><TD>1995-10-10 00:22:09</TD><TD>U2IQ0103T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U2IQ0104T</TD><TD>SAT-N-AUR1</TD><TD>339.0366</TD><TD>-10.9307777778</TD><TD>2</TD><TD>1994-10-09 12:52:16</TD><TD>1994-10-09 13:08:56</TD><TD>1000.000</TD><TD>WFPC2 </TD><TD>WF3-FIX;F160BN15</TD><TD>F160BN15</TD><TD>5219</TD><TD>1995-10-10 00:26:21</TD><TD>U2IQ0104T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U2IQ0105T</TD><TD>SAT-N-AUR1</TD><TD>339.034216667</TD><TD>-10.9316416667</TD><TD>2</TD><TD>1994-10-09 14:05:16</TD><TD>1994-10-09 14:21:56</TD><TD>1000.000</TD><TD>WFPC2 </TD><TD>WF3-FIX;F160BN15</TD><TD>F160BN15</TD><TD>5219</TD><TD>1995-10-10 00:30:31</TD><TD>U2IQ0105T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U2IQ0106T</TD><TD>SAT-N-AUR1</TD><TD>339.033529167</TD><TD>-10.9318916667</TD><TD>2</TD><TD>1994-10-09 14:29:16</TD><TD>1994-10-09 14:42:36</TD><TD>800.000</TD><TD>WFPC2 </TD><TD>WF3-FIX;F160BN15</TD><TD>F160BN15</TD><TD>5219</TD><TD>1995-10-10 00:34:38</TD><TD>U2IQ0106T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U2IQ0107T</TD><TD>SAT-N-AUR1</TD><TD>339.033433333</TD><TD>-10.931925</TD><TD>2</TD><TD>1994-10-09 14:46:16</TD><TD>1994-10-09 14:46:18</TD><TD>2.000</TD><TD>WFPC2 </TD><TD>WF3-FIX</TD><TD>F673N</TD><TD>5219</TD><TD>1995-10-09 23:00:22</TD><TD>U2IQ0107T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2JR0201T</TD><TD>SPYBAL</TD><TD>7.91666666667E-5</TD><TD>-8.33333333333E-6</TD><TD>0</TD><TD>1994-10-24 09:53:35</TD><TD>1994-10-24 09:54:20</TD><TD>32.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5757</TD><TD>1995-10-25 15:32:24</TD><TD>Z2JR0201T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2JR0202T</TD><TD>SATURN-EW</TD><TD>338.4753875</TD><TD>-11.1301222222</TD><TD>0</TD><TD>1994-10-24 09:56:05</TD><TD>1994-10-24 10:14:40</TD><TD>952.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5757</TD><TD>1995-10-25 15:38:01</TD><TD>Z2JR0202T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2JR0203T</TD><TD>SPYBAL</TD><TD>338.4753875</TD><TD>-11.1301194444</TD><TD>0</TD><TD>1994-10-24 11:29:25</TD><TD>1994-10-24 11:30:12</TD><TD>32.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5757</TD><TD>1995-10-25 15:40:08</TD><TD>Z2JR0203T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2JR0204T</TD><TD>SATURN-EW</TD><TD>338.4753875</TD><TD>-11.1301194444</TD><TD>0</TD><TD>1994-10-24 11:30:47</TD><TD>1994-10-24 11:35:38</TD><TD>272.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5757</TD><TD>1995-10-25 15:43:22</TD><TD>Z2JR0204T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2JR0205T</TD><TD>WAVE</TD><TD>0.0004375</TD><TD>-0.00120833333333</TD><TD>0</TD><TD>1994-10-24 11:38:17</TD><TD>1994-10-24 11:40:31</TD><TD>115.600</TD><TD>HRS   </TD><TD>SC2</TD><TD>ECH-A</TD><TD>5757</TD><TD>1995-10-25 15:45:58</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2JR0206T</TD><TD>SPYBAL</TD><TD>7.91666666667E-5</TD><TD>-8.33333333333E-6</TD><TD>0</TD><TD>1994-10-24 13:06:15</TD><TD>1994-10-24 13:07:01</TD><TD>32.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5757</TD><TD>1995-10-25 15:48:24</TD><TD>Z2JR0206T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2JR0207T</TD><TD>SATURN-EW</TD><TD>338.4753875</TD><TD>-11.1301222222</TD><TD>0</TD><TD>1994-10-24 13:08:47</TD><TD>1994-10-24 13:27:22</TD><TD>952.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5757</TD><TD>1995-10-25 15:53:05</TD><TD>Z2JR0207T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2JR0101T</TD><TD>SPYBAL</TD><TD>359.999995833</TD><TD>-5.55555555556E-5</TD><TD>0</TD><TD>1994-10-24 14:42:42</TD><TD>1994-10-24 14:43:28</TD><TD>32.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5757</TD><TD>1995-10-25 15:55:18</TD><TD>Z2JR0101T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2JR0102T</TD><TD>SATURN-NS</TD><TD>338.470125</TD><TD>-11.1317583333</TD><TD>0</TD><TD>1994-10-24 14:45:29</TD><TD>1994-10-24 15:04:05</TD><TD>952.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5757</TD><TD>1995-10-25 15:59:29</TD><TD>Z2JR0102T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2JR0103T</TD><TD>SPYBAL</TD><TD>338.470125</TD><TD>-11.1317583333</TD><TD>0</TD><TD>1994-10-24 16:19:15</TD><TD>1994-10-24 16:20:01</TD><TD>32.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5757</TD><TD>1995-10-25 16:01:12</TD><TD>Z2JR0103T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2JR0104T</TD><TD>SATURN-NS</TD><TD>338.470125</TD><TD>-11.1317583333</TD><TD>0</TD><TD>1994-10-24 16:20:35</TD><TD>1994-10-24 16:25:26</TD><TD>272.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5757</TD><TD>1995-10-25 16:03:14</TD><TD>Z2JR0104T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2JR0105T</TD><TD>WAVE</TD><TD>0.0004625</TD><TD>-0.0012</TD><TD>0</TD><TD>1994-10-24 16:27:59</TD><TD>1994-10-24 16:30:13</TD><TD>115.600</TD><TD>HRS   </TD><TD>SC2</TD><TD>ECH-A</TD><TD>5757</TD><TD>1995-10-25 16:05:03</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2JR0106T</TD><TD>SPYBAL</TD><TD>359.999995833</TD><TD>-5.55555555556E-5</TD><TD>0</TD><TD>1994-10-24 17:56:02</TD><TD>1994-10-24 17:56:48</TD><TD>32.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5757</TD><TD>1995-10-25 16:06:39</TD><TD>Z2JR0106T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2JR0107T</TD><TD>SATURN-NS</TD><TD>338.470125</TD><TD>-11.1317583333</TD><TD>0</TD><TD>1994-10-24 17:58:29</TD><TD>1994-10-24 18:17:04</TD><TD>952.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5757</TD><TD>1995-10-25 16:09:59</TD><TD>Z2JR0107T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2W70102T</TD><TD>TITAN</TD><TD>353.770808333</TD><TD>-5.26214722222</TD><TD>0</TD><TD>1995-09-04 15:04:54</TD><TD>1995-09-04 15:09:24</TD><TD>0.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>MIRROR-N2</TD><TD>6024</TD><TD>1996-09-04 21:24:10</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2W70103T</TD><TD>SPYBAL</TD><TD>353.7701</TD><TD>-5.26242777778</TD><TD>0</TD><TD>1995-09-04 15:17:40</TD><TD>1995-09-04 15:17:55</TD><TD>4.800</TD><TD>HRS   </TD><TD>2.0</TD><TD>G270M</TD><TD>6024</TD><TD>1996-09-04 21:29:24</TD><TD>Z2W70103T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2W70104T</TD><TD>TITAN</TD><TD>353.7701</TD><TD>-5.26242777778</TD><TD>0</TD><TD>1995-09-04 15:18:43</TD><TD>1995-09-04 15:45:08</TD><TD>1416.400</TD><TD>HRS   </TD><TD>2.0</TD><TD>G270M</TD><TD>6024</TD><TD>1996-09-04 21:34:47</TD><TD>Z2W70104T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2W70105T</TD><TD>SPYBAL</TD><TD>353.7657375</TD><TD>-5.26415</TD><TD>0</TD><TD>1995-09-04 16:37:58</TD><TD>1995-09-04 16:38:05</TD><TD>4.800</TD><TD>HRS   </TD><TD>2.0</TD><TD>G140L</TD><TD>6024</TD><TD>1996-09-04 21:38:11</TD><TD>Z2W70105T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2W70106T</TD><TD>TITAN</TD><TD>353.7657375</TD><TD>-5.26415</TD><TD>0</TD><TD>1995-09-04 16:38:49</TD><TD>1995-09-04 17:01:36</TD><TD>1360.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>G140L</TD><TD>6024</TD><TD>1996-09-04 21:41:47</TD><TD>Z2W70106T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2W70107T</TD><TD>SPYBAL</TD><TD>353.764145833</TD><TD>-5.264775</TD><TD>0</TD><TD>1995-09-04 17:06:54</TD><TD>1995-09-04 17:07:01</TD><TD>4.800</TD><TD>HRS   </TD><TD>2.0</TD><TD>G140L</TD><TD>6024</TD><TD>1996-09-04 21:45:15</TD><TD>Z2W70107T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2W70108T</TD><TD>TITAN</TD><TD>353.764145833</TD><TD>-5.264775</TD><TD>0</TD><TD>1995-09-04 17:07:49</TD><TD>1995-09-04 17:19:12</TD><TD>680.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>G140L</TD><TD>6024</TD><TD>1996-09-04 21:49:21</TD><TD>Z2W70108T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2W70109T</TD><TD>SPYBAL</TD><TD>353.760483333</TD><TD>-5.26620833333</TD><TD>0</TD><TD>1995-09-04 18:13:57</TD><TD>1995-09-04 18:14:04</TD><TD>4.800</TD><TD>HRS   </TD><TD>2.0</TD><TD>G140L</TD><TD>6024</TD><TD>1996-09-04 21:52:07</TD><TD>Z2W70109T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2W7010AT</TD><TD>TITAN</TD><TD>353.760483333</TD><TD>-5.26620833333</TD><TD>0</TD><TD>1995-09-04 18:14:49</TD><TD>1995-09-04 18:37:36</TD><TD>1360.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>G140L</TD><TD>6024</TD><TD>1996-09-04 21:55:05</TD><TD>Z2W7010AT</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2W7010BT</TD><TD>SPYBAL</TD><TD>353.7588875</TD><TD>-5.26683055556</TD><TD>0</TD><TD>1995-09-04 18:43:24</TD><TD>1995-09-04 18:43:31</TD><TD>4.800</TD><TD>HRS   </TD><TD>2.0</TD><TD>G140L</TD><TD>6024</TD><TD>1996-09-04 21:57:44</TD><TD>Z2W7010BT</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2W7010CT</TD><TD>TITAN</TD><TD>353.7588875</TD><TD>-5.26683055556</TD><TD>0</TD><TD>1995-09-04 18:44:19</TD><TD>1995-09-04 18:55:42</TD><TD>680.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>G140L</TD><TD>6024</TD><TD>1996-09-04 22:01:49</TD><TD>Z2W7010CT</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2W7010DT</TD><TD>SPYBAL</TD><TD>353.7552</TD><TD>-5.26826111111</TD><TD>0</TD><TD>1995-09-04 19:50:27</TD><TD>1995-09-04 19:50:34</TD><TD>4.800</TD><TD>HRS   </TD><TD>2.0</TD><TD>G140L</TD><TD>6024</TD><TD>1996-09-04 22:04:58</TD><TD>Z2W7010DT</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2W7010ET</TD><TD>TITAN</TD><TD>353.7552</TD><TD>-5.26826111111</TD><TD>0</TD><TD>1995-09-04 19:51:19</TD><TD>1995-09-04 20:14:06</TD><TD>1360.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>G140L</TD><TD>6024</TD><TD>1996-09-04 22:08:55</TD><TD>Z2W7010ET</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2W7010FT</TD><TD>SPYBAL</TD><TD>353.753591667</TD><TD>-5.26888611111</TD><TD>0</TD><TD>1995-09-04 20:20:00</TD><TD>1995-09-04 20:20:07</TD><TD>4.800</TD><TD>HRS   </TD><TD>2.0</TD><TD>G140L</TD><TD>6024</TD><TD>1996-09-05 12:31:32</TD><TD>Z2W7010FT</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2W7010GT</TD><TD>TITAN</TD><TD>353.753591667</TD><TD>-5.26888611111</TD><TD>0</TD><TD>1995-09-04 20:20:55</TD><TD>1995-09-04 20:32:18</TD><TD>680.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>G140L</TD><TD>6024</TD><TD>1996-09-05 12:34:04</TD><TD>Z2W7010GT</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2W7010HT</TD><TD>SPYBAL</TD><TD>353.749883333</TD><TD>-5.27031388889</TD><TD>0</TD><TD>1995-09-04 21:27:12</TD><TD>1995-09-04 21:27:19</TD><TD>4.800</TD><TD>HRS   </TD><TD>2.0</TD><TD>G140L</TD><TD>6024</TD><TD>1996-09-05 12:36:56</TD><TD>Z2W7010HT</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2W7010IT</TD><TD>TITAN</TD><TD>353.749883333</TD><TD>-5.27031388889</TD><TD>0</TD><TD>1995-09-04 21:28:07</TD><TD>1995-09-04 21:50:54</TD><TD>1360.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>G140L</TD><TD>6024</TD><TD>1996-09-05 12:39:47</TD><TD>Z2W7010IT</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2W7010JT</TD><TD>SPYBAL</TD><TD>353.7482625</TD><TD>-5.27093611111</TD><TD>0</TD><TD>1995-09-04 21:56:30</TD><TD>1995-09-04 21:56:37</TD><TD>4.800</TD><TD>HRS   </TD><TD>2.0</TD><TD>G140L</TD><TD>6024</TD><TD>1996-09-05 12:41:40</TD><TD>Z2W7010JT</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2W7010KT</TD><TD>TITAN</TD><TD>353.7482625</TD><TD>-5.27093611111</TD><TD>0</TD><TD>1995-09-04 21:57:25</TD><TD>1995-09-04 22:08:48</TD><TD>680.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>G140L</TD><TD>6024</TD><TD>1996-09-05 12:44:28</TD><TD>Z2W7010KT</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2W7010LT</TD><TD>SPYBAL</TD><TD>353.744533333</TD><TD>-5.27236666667</TD><TD>0</TD><TD>1995-09-04 23:03:33</TD><TD>1995-09-04 23:03:40</TD><TD>4.800</TD><TD>HRS   </TD><TD>2.0</TD><TD>G140L</TD><TD>6024</TD><TD>1996-09-05 12:46:49</TD><TD>Z2W7010LT</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2W7010MT</TD><TD>TITAN</TD><TD>353.744533333</TD><TD>-5.27236666667</TD><TD>0</TD><TD>1995-09-04 23:04:25</TD><TD>1995-09-04 23:27:12</TD><TD>1360.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>G140L</TD><TD>6024</TD><TD>1996-09-05 12:49:37</TD><TD>Z2W7010MT</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2W7010NT</TD><TD>SPYBAL</TD><TD>353.742904167</TD><TD>-5.27298611111</TD><TD>0</TD><TD>1995-09-04 23:33:06</TD><TD>1995-09-04 23:33:13</TD><TD>4.800</TD><TD>HRS   </TD><TD>2.0</TD><TD>G140L</TD><TD>6024</TD><TD>1996-09-05 12:51:19</TD><TD>Z2W7010NT</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2W7010OT</TD><TD>TITAN</TD><TD>353.742904167</TD><TD>-5.27298611111</TD><TD>0</TD><TD>1995-09-04 23:34:01</TD><TD>1995-09-04 23:45:24</TD><TD>680.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>G140L</TD><TD>6024</TD><TD>1996-09-05 12:54:20</TD><TD>Z2W7010OT</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2W7010PT</TD><TD>SPYBAL</TD><TD>353.73915</TD><TD>-5.27441388889</TD><TD>0</TD><TD>1995-09-05 00:40:17</TD><TD>1995-09-05 00:40:24</TD><TD>4.800</TD><TD>HRS   </TD><TD>2.0</TD><TD>G140L</TD><TD>6024</TD><TD>1996-09-05 12:56:29</TD><TD>Z2W7010PT</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2W7010QT</TD><TD>TITAN</TD><TD>353.73915</TD><TD>-5.27441388889</TD><TD>0</TD><TD>1995-09-05 00:41:13</TD><TD>1995-09-05 01:04:00</TD><TD>1360.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>G140L</TD><TD>6024</TD><TD>1996-09-05 12:59:38</TD><TD>Z2W7010QT</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2W7010RT</TD><TD>SPYBAL</TD><TD>353.7375125</TD><TD>-5.27503333333</TD><TD>0</TD><TD>1995-09-05 01:09:36</TD><TD>1995-09-05 01:09:43</TD><TD>4.800</TD><TD>HRS   </TD><TD>2.0</TD><TD>G140L</TD><TD>6024</TD><TD>1996-09-05 13:01:35</TD><TD>Z2W7010RT</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2W7010ST</TD><TD>TITAN</TD><TD>353.7375125</TD><TD>-5.27503333333</TD><TD>0</TD><TD>1995-09-05 01:10:17</TD><TD>1995-09-05 01:21:40</TD><TD>680.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>G140L</TD><TD>6024</TD><TD>1996-09-05 13:04:05</TD><TD>Z2W7010ST</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2W7010TT</TD><TD>SPYBAL</TD><TD>353.7337375</TD><TD>-5.27646111111</TD><TD>0</TD><TD>1995-09-05 02:16:39</TD><TD>1995-09-05 02:16:46</TD><TD>4.800</TD><TD>HRS   </TD><TD>2.0</TD><TD>G140L</TD><TD>6024</TD><TD>1996-09-05 13:06:11</TD><TD>Z2W7010TT</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2W7010UT</TD><TD>TITAN</TD><TD>353.7337375</TD><TD>-5.27646111111</TD><TD>0</TD><TD>1995-09-05 02:17:17</TD><TD>1995-09-05 02:40:04</TD><TD>1360.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>G140L</TD><TD>6024</TD><TD>1996-09-05 13:09:00</TD><TD>Z2W7010UT</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2W7010VT</TD><TD>SPYBAL</TD><TD>353.7320875</TD><TD>-5.27708055556</TD><TD>0</TD><TD>1995-09-05 02:45:52</TD><TD>1995-09-05 02:45:59</TD><TD>4.800</TD><TD>HRS   </TD><TD>2.0</TD><TD>G140L</TD><TD>6024</TD><TD>1996-09-05 13:10:48</TD><TD>Z2W7010VT</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2W7010WT</TD><TD>TITAN</TD><TD>353.7320875</TD><TD>-5.27708055556</TD><TD>0</TD><TD>1995-09-05 02:46:29</TD><TD>1995-09-05 02:57:52</TD><TD>680.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>G140L</TD><TD>6024</TD><TD>1996-09-05 13:12:51</TD><TD>Z2W7010WT</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2W70202T</TD><TD>TITAN</TD><TD>352.581904167</TD><TD>-5.78356111111</TD><TD>0</TD><TD>1995-09-21 09:37:47</TD><TD>1995-09-21 09:42:53</TD><TD>0.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>MIRROR-N2</TD><TD>6024</TD><TD>1996-09-21 16:33:16</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2W70203T</TD><TD>SPYBAL</TD><TD>352.577775</TD><TD>-5.78498888889</TD><TD>0</TD><TD>1995-09-21 10:47:22</TD><TD>1995-09-21 10:47:37</TD><TD>4.800</TD><TD>HRS   </TD><TD>2.0</TD><TD>G270M</TD><TD>6024</TD><TD>1996-09-21 16:35:07</TD><TD>Z2W70203T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2W70204T</TD><TD>TITAN</TD><TD>352.577775</TD><TD>-5.78498888889</TD><TD>0</TD><TD>1995-09-21 10:48:25</TD><TD>1995-09-21 11:14:49</TD><TD>1421.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>G270M</TD><TD>6024</TD><TD>1996-09-21 16:37:17</TD><TD>Z2W70204T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2W70205T</TD><TD>SPYBAL</TD><TD>352.572058333</TD><TD>-5.78695555556</TD><TD>0</TD><TD>1995-09-21 12:23:16</TD><TD>1995-09-21 12:23:23</TD><TD>4.800</TD><TD>HRS   </TD><TD>2.0</TD><TD>G140L</TD><TD>6024</TD><TD>1996-09-21 16:38:12</TD><TD>Z2W70205T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2W70206T</TD><TD>TITAN</TD><TD>352.572058333</TD><TD>-5.78695555556</TD><TD>0</TD><TD>1995-09-21 12:24:07</TD><TD>1995-09-21 12:46:54</TD><TD>1360.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>G140L</TD><TD>6024</TD><TD>1996-09-22 00:45:22</TD><TD>Z2W70206T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2W70207T</TD><TD>SPYBAL</TD><TD>352.570316667</TD><TD>-5.78755555556</TD><TD>0</TD><TD>1995-09-21 12:51:58</TD><TD>1995-09-21 12:52:05</TD><TD>4.800</TD><TD>HRS   </TD><TD>2.0</TD><TD>G140L</TD><TD>6024</TD><TD>1996-09-22 01:22:13</TD><TD>Z2W70207T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2W70208T</TD><TD>TITAN</TD><TD>352.570316667</TD><TD>-5.78755555556</TD><TD>0</TD><TD>1995-09-21 12:52:49</TD><TD>1995-09-21 13:04:12</TD><TD>680.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>G140L</TD><TD>6024</TD><TD>1996-09-22 01:25:11</TD><TD>Z2W70208T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2W70209T</TD><TD>SPYBAL</TD><TD>352.566308333</TD><TD>-5.788925</TD><TD>0</TD><TD>1995-09-21 13:59:09</TD><TD>1995-09-21 13:59:16</TD><TD>4.800</TD><TD>HRS   </TD><TD>2.0</TD><TD>G140L</TD><TD>6024</TD><TD>1996-09-22 01:26:38</TD><TD>Z2W70209T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2W7020AT</TD><TD>TITAN</TD><TD>352.566308333</TD><TD>-5.788925</TD><TD>0</TD><TD>1995-09-21 14:00:01</TD><TD>1995-09-21 14:22:48</TD><TD>1360.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>G140L</TD><TD>6024</TD><TD>1996-09-22 01:28:38</TD><TD>Z2W7020AT</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2W7020BT</TD><TD>SPYBAL</TD><TD>352.564558333</TD><TD>-5.78952222222</TD><TD>0</TD><TD>1995-09-21 14:28:28</TD><TD>1995-09-21 14:28:35</TD><TD>4.800</TD><TD>HRS   </TD><TD>2.0</TD><TD>G140L</TD><TD>6024</TD><TD>1996-09-22 01:29:59</TD><TD>Z2W7020BT</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2W7020CT</TD><TD>TITAN</TD><TD>352.564558333</TD><TD>-5.78952222222</TD><TD>0</TD><TD>1995-09-21 14:29:19</TD><TD>1995-09-21 14:40:42</TD><TD>680.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>G140L</TD><TD>6024</TD><TD>1996-09-22 01:31:48</TD><TD>Z2W7020CT</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2W7020DT</TD><TD>SPYBAL</TD><TD>352.560533333</TD><TD>-5.79089166667</TD><TD>0</TD><TD>1995-09-21 15:35:39</TD><TD>1995-09-21 15:35:46</TD><TD>4.800</TD><TD>HRS   </TD><TD>2.0</TD><TD>G140L</TD><TD>6024</TD><TD>1996-09-22 01:33:17</TD><TD>Z2W7020DT</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2W7020ET</TD><TD>TITAN</TD><TD>352.560533333</TD><TD>-5.79089166667</TD><TD>0</TD><TD>1995-09-21 15:36:31</TD><TD>1995-09-21 15:59:18</TD><TD>1360.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>G140L</TD><TD>6024</TD><TD>1996-09-22 01:35:02</TD><TD>Z2W7020ET</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2W7020FT</TD><TD>SPYBAL</TD><TD>352.558775</TD><TD>-5.79148611111</TD><TD>0</TD><TD>1995-09-21 16:04:58</TD><TD>1995-09-21 16:05:05</TD><TD>4.800</TD><TD>HRS   </TD><TD>2.0</TD><TD>G140L</TD><TD>6024</TD><TD>1996-09-22 01:36:33</TD><TD>Z2W7020FT</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2W7020GT</TD><TD>TITAN</TD><TD>352.558775</TD><TD>-5.79148611111</TD><TD>0</TD><TD>1995-09-21 16:05:49</TD><TD>1995-09-21 16:17:12</TD><TD>680.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>G140L</TD><TD>6024</TD><TD>1996-09-22 01:38:07</TD><TD>Z2W7020GT</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U2WC0101T</TD><TD>SATURN</TD><TD>351.0209</TD><TD>-6.40845</TD><TD>2</TD><TD>1995-10-15 07:32:17</TD><TD>1995-10-15 07:37:17</TD><TD>300.000</TD><TD>WFPC2 </TD><TD>WF3-FIX</TD><TD>F218W</TD><TD>6215</TD><TD>1996-10-15 16:21:29</TD><TD>U2WC0101T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U2WC0102T</TD><TD>SATURN</TD><TD>351.019845833</TD><TD>-6.40841388889</TD><TD>2</TD><TD>1995-10-15 07:44:17</TD><TD>1995-10-15 08:09:17</TD><TD>1500.000</TD><TD>WFPC2 </TD><TD>F160BN15;F160BN15</TD><TD>F160BN15</TD><TD>6215</TD><TD>1996-10-15 16:26:09</TD><TD>U2WC0102T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U2WC0103T</TD><TD>SATURN</TD><TD>351.017441667</TD><TD>-6.40980555556</TD><TD>2</TD><TD>1995-10-15 09:00:17</TD><TD>1995-10-15 09:08:37</TD><TD>500.000</TD><TD>WFPC2 </TD><TD>WF3-FIX</TD><TD>F218W</TD><TD>6215</TD><TD>1996-10-15 16:30:48</TD><TD>U2WC0103T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U2WC0104T</TD><TD>SATURN</TD><TD>351.016316667</TD><TD>-6.4098</TD><TD>2</TD><TD>1995-10-15 09:17:17</TD><TD>1995-10-15 09:42:17</TD><TD>1500.000</TD><TD>WFPC2 </TD><TD>F160BN15;F160BN15</TD><TD>F130LP;F160BN15</TD><TD>6215</TD><TD>1996-10-15 16:34:58</TD><TD>U2WC0104T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U2WC0201T</TD><TD>SATURN</TD><TD>350.282491667</TD><TD>-6.68455833333</TD><TD>2</TD><TD>1995-10-31 17:38:17</TD><TD>1995-10-31 17:43:17</TD><TD>300.000</TD><TD>WFPC2 </TD><TD>WF3-FIX</TD><TD>F218W</TD><TD>6215</TD><TD>1996-10-31 23:08:18</TD><TD>U2WC0201T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U2WC0202T</TD><TD>SATURN</TD><TD>350.2819125</TD><TD>-6.68431111111</TD><TD>2</TD><TD>1995-10-31 17:51:17</TD><TD>1995-10-31 18:16:17</TD><TD>1500.000</TD><TD>WFPC2 </TD><TD>F160BN15;F160BN15</TD><TD>F160BN15</TD><TD>6215</TD><TD>1996-10-31 23:12:34</TD><TD>U2WC0202T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U2WC0203T</TD><TD>SATURN</TD><TD>350.2803875</TD><TD>-6.68528055556</TD><TD>2</TD><TD>1995-10-31 19:05:17</TD><TD>1995-10-31 19:13:37</TD><TD>500.000</TD><TD>WFPC2 </TD><TD>WF3-FIX</TD><TD>F218W</TD><TD>6215</TD><TD>1996-11-01 01:06:05</TD><TD>U2WC0203T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U2WC0204T</TD><TD>SATURN</TD><TD>350.2797625</TD><TD>-6.68504722222</TD><TD>2</TD><TD>1995-10-31 19:22:17</TD><TD>1995-10-31 19:47:17</TD><TD>1500.000</TD><TD>WFPC2 </TD><TD>F160BN15;F160BN15</TD><TD>F130LP;F160BN15</TD><TD>6215</TD><TD>1996-11-01 01:10:56</TD><TD>U2WC0204T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2JR1101T</TD><TD>SPYBAL</TD><TD>1.9032625</TD><TD>-1.77748055556</TD><TD>0</TD><TD>1996-12-24 06:08:27</TD><TD>1996-12-24 06:09:04</TD><TD>32.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5757</TD><TD>1997-12-24 17:20:41</TD><TD>Z2JR1101T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2JR1102T</TD><TD>SATURN-EQ</TD><TD>1.9032625</TD><TD>-1.77748055556</TD><TD>0</TD><TD>1996-12-24 06:09:54</TD><TD>1996-12-24 06:23:51</TD><TD>816.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5757</TD><TD>1997-12-24 17:27:01</TD><TD>Z2JR1102T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2JR1103T</TD><TD>SPYBAL</TD><TD>1.903725</TD><TD>-1.77721944444</TD><TD>0</TD><TD>1996-12-24 06:28:31</TD><TD>1996-12-24 06:29:08</TD><TD>32.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5757</TD><TD>1997-12-24 17:23:56</TD><TD>Z2JR1103T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2JR1104T</TD><TD>SATURN-EQ</TD><TD>1.903725</TD><TD>-1.77721944444</TD><TD>0</TD><TD>1996-12-24 06:29:54</TD><TD>1996-12-24 06:44:13</TD><TD>816.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5757</TD><TD>1997-12-24 17:33:51</TD><TD>Z2JR1104T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2JR1105T</TD><TD>WAVE</TD><TD>0.0006</TD><TD>-0.00113611111111</TD><TD>0</TD><TD>1996-12-24 06:46:40</TD><TD>1996-12-24 06:48:41</TD><TD>115.600</TD><TD>HRS   </TD><TD>SC2</TD><TD>ECH-A</TD><TD>5757</TD><TD>1997-12-24 17:33:52</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2JR1106T</TD><TD>SPYBAL</TD><TD>1.90524583333</TD><TD>-1.77734722222</TD><TD>0</TD><TD>1996-12-24 07:38:44</TD><TD>1996-12-24 07:39:21</TD><TD>32.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5757</TD><TD>1997-12-24 17:35:10</TD><TD>Z2JR1106T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2JR1107T</TD><TD>SATURN-S-POLE</TD><TD>1.90524583333</TD><TD>-1.77734722222</TD><TD>0</TD><TD>1996-12-24 07:40:12</TD><TD>1996-12-24 07:54:13</TD><TD>816.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5757</TD><TD>1997-12-24 17:42:26</TD><TD>Z2JR1107T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2JR1108T</TD><TD>SPYBAL</TD><TD>1.90570833333</TD><TD>-1.77708611111</TD><TD>0</TD><TD>1996-12-24 07:59:17</TD><TD>1996-12-24 07:59:55</TD><TD>32.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5757</TD><TD>1997-12-24 17:41:49</TD><TD>Z2JR1108T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2JR1109T</TD><TD>SATURN-S-POLE</TD><TD>1.90570833333</TD><TD>-1.77708611111</TD><TD>0</TD><TD>1996-12-24 08:00:28</TD><TD>1996-12-24 08:17:11</TD><TD>952.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5757</TD><TD>1997-12-24 17:41:46</TD><TD>Z2JR1109T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2JR110AT</TD><TD>WAVE</TD><TD>0.0006</TD><TD>-0.00113611111111</TD><TD>0</TD><TD>1996-12-24 08:19:46</TD><TD>1996-12-24 08:21:47</TD><TD>115.600</TD><TD>HRS   </TD><TD>SC2</TD><TD>ECH-A</TD><TD>5757</TD><TD>1997-12-24 17:43:51</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2JR110BT</TD><TD>SPYBAL</TD><TD>1.9094875</TD><TD>-1.77531666667</TD><TD>0</TD><TD>1996-12-24 09:15:15</TD><TD>1996-12-24 09:15:52</TD><TD>32.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5757</TD><TD>1997-12-24 17:45:05</TD><TD>Z2JR110BT</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2JR110CT</TD><TD>SATURN-SUNLIT-LIMB</TD><TD>1.9094875</TD><TD>-1.77531666667</TD><TD>0</TD><TD>1996-12-24 09:16:28</TD><TD>1996-12-24 09:30:25</TD><TD>816.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5757</TD><TD>1997-12-24 17:46:24</TD><TD>Z2JR110CT</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2JR110DT</TD><TD>SPYBAL</TD><TD>1.90995</TD><TD>-1.77505277778</TD><TD>0</TD><TD>1996-12-24 09:35:45</TD><TD>1996-12-24 09:36:22</TD><TD>32.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5757</TD><TD>1997-12-24 17:45:59</TD><TD>Z2JR110DT</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2JR110ET</TD><TD>SATURN-SUNLIT-LIMB</TD><TD>1.90995</TD><TD>-1.77505277778</TD><TD>0</TD><TD>1996-12-24 09:36:58</TD><TD>1996-12-24 09:53:41</TD><TD>952.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5757</TD><TD>1997-12-24 17:49:56</TD><TD>Z2JR110ET</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2JR110FT</TD><TD>WAVE</TD><TD>0.0006</TD><TD>-0.00113611111111</TD><TD>0</TD><TD>1996-12-24 09:56:16</TD><TD>1996-12-24 09:58:17</TD><TD>115.600</TD><TD>HRS   </TD><TD>SC2</TD><TD>ECH-A</TD><TD>5757</TD><TD>1997-12-24 17:48:06</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2JR110GT</TD><TD>SPYBAL</TD><TD>1.90968333333</TD><TD>-1.73949444444</TD><TD>0</TD><TD>1996-12-24 10:47:18</TD><TD>1996-12-24 10:47:55</TD><TD>32.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5757</TD><TD>1997-12-24 17:49:58</TD><TD>Z2JR110GT</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2JR110HT</TD><TD>SATURN-OFFSET-SKY</TD><TD>1.90968333333</TD><TD>-1.73949444444</TD><TD>0</TD><TD>1996-12-24 10:48:28</TD><TD>1996-12-24 11:02:25</TD><TD>816.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5757</TD><TD>1997-12-24 17:50:38</TD><TD>Z2JR110HT</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2JR110IT</TD><TD>SPYBAL</TD><TD>1.91015</TD><TD>-1.73923055556</TD><TD>0</TD><TD>1996-12-24 11:07:49</TD><TD>1996-12-24 11:08:26</TD><TD>32.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5757</TD><TD>1997-12-24 17:54:49</TD><TD>Z2JR110IT</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2JR110JT</TD><TD>SATURN-OFFSET-SKY</TD><TD>1.91015</TD><TD>-1.73923055556</TD><TD>0</TD><TD>1996-12-24 11:08:58</TD><TD>1996-12-24 11:25:41</TD><TD>952.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5757</TD><TD>1997-12-24 17:55:10</TD><TD>Z2JR110JT</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2JR110KT</TD><TD>WAVE</TD><TD>0.0006</TD><TD>-0.00113611111111</TD><TD>0</TD><TD>1996-12-24 11:28:22</TD><TD>1996-12-24 11:30:23</TD><TD>115.600</TD><TD>HRS   </TD><TD>SC2</TD><TD>ECH-A</TD><TD>5757</TD><TD>1997-12-24 17:52:05</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U3JJ5101R</TD><TD>SATURN-150</TD><TD>18.6393208333</TD><TD>4.95805277778</TD><TD>5</TD><TD>1997-09-10 13:48:13</TD><TD>1997-09-10 14:01:33</TD><TD>800.000</TD><TD>WFPC2 </TD><TD>F160BN15;F160BN15</TD><TD>F160BN15</TD><TD>6648</TD><TD>1998-09-10 16:58:19</TD><TD>U3JJ5101R</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U3JJ5102R</TD><TD>SATURN-150</TD><TD>18.6385458333</TD><TD>4.95769722222</TD><TD>5</TD><TD>1997-09-10 14:08:13</TD><TD>1997-09-10 14:21:33</TD><TD>800.000</TD><TD>WFPC2 </TD><TD>F160BN15;F160BN15</TD><TD>F160BN15</TD><TD>6648</TD><TD>1998-09-10 16:49:49</TD><TD>U3JJ5102R</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U3JJ5103R</TD><TD>SATURN-150</TD><TD>18.6576708333</TD><TD>4.96527222222</TD><TD>5</TD><TD>1997-09-10 14:28:13</TD><TD>1997-09-10 14:29:33</TD><TD>80.000</TD><TD>WFPC2 </TD><TD>FQCH4P15;FQCH4P15</TD><TD>FQCH4P15</TD><TD>6648</TD><TD>1998-09-10 16:58:53</TD><TD>U3JJ5103R</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U3JJ5A01R</TD><TD>SATURN-UV</TD><TD>18.6355666667</TD><TD>4.95631944444</TD><TD>5</TD><TD>1997-09-10 15:22:13</TD><TD>1997-09-10 15:38:53</TD><TD>1000.000</TD><TD>WFPC2 </TD><TD>F160BN15;F160BN15</TD><TD>F160BN15</TD><TD>6648</TD><TD>1998-09-10 16:53:56</TD><TD>U3JJ5A01R</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U3JJ5A02R</TD><TD>SATURN-UV</TD><TD>18.6344791667</TD><TD>4.95581944444</TD><TD>5</TD><TD>1997-09-10 15:46:13</TD><TD>1997-09-10 16:06:13</TD><TD>1200.000</TD><TD>WFPC2 </TD><TD>F160BN15;F160BN15</TD><TD>F160BN15;F165LP</TD><TD>6648</TD><TD>1998-09-10 18:59:47</TD><TD>U3JJ5A02R</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U3JJ5A03R</TD><TD>SATURN-UV</TD><TD>18.6319208333</TD><TD>4.95463888889</TD><TD>5</TD><TD>1997-09-10 16:59:13</TD><TD>1997-09-10 17:12:33</TD><TD>800.000</TD><TD>WFPC2 </TD><TD>F160BN15;F160BN15</TD><TD>F160BN15</TD><TD>6648</TD><TD>1998-09-10 19:03:55</TD><TD>U3JJ5A03R</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U3JJ5A04R</TD><TD>SATURN-UV</TD><TD>18.6310666667</TD><TD>4.95424444444</TD><TD>5</TD><TD>1997-09-10 17:19:13</TD><TD>1997-09-10 17:34:13</TD><TD>900.000</TD><TD>WFPC2 </TD><TD>F160BN15;F160BN15</TD><TD>F160BN15</TD><TD>6648</TD><TD>1998-09-10 19:02:17</TD><TD>U3JJ5A04R</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U3JJ5A05R</TD><TD>SATURN-UV</TD><TD>18.6501875</TD><TD>4.96182222222</TD><TD>5</TD><TD>1997-09-10 17:41:13</TD><TD>1997-09-10 17:42:53</TD><TD>100.000</TD><TD>WFPC2 </TD><TD>FQCH4P15;FQCH4P15</TD><TD>FQCH4P15</TD><TD>6648</TD><TD>1998-09-10 19:00:21</TD><TD>U3JJ5A05R</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U3JJ5A06R</TD><TD>SATURN-UV</TD><TD>18.6280375</TD><TD>4.95284722222</TD><TD>5</TD><TD>1997-09-10 18:36:13</TD><TD>1997-09-10 18:52:53</TD><TD>1000.000</TD><TD>WFPC2 </TD><TD>F160BN15;F160BN15</TD><TD>F160BN15</TD><TD>6648</TD><TD>1998-09-10 21:17:27</TD><TD>U3JJ5A06R</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U3JJ5A07R</TD><TD>SATURN-UV</TD><TD>18.62695</TD><TD>4.95234722222</TD><TD>5</TD><TD>1997-09-10 19:00:13</TD><TD>1997-09-10 19:20:13</TD><TD>1200.000</TD><TD>WFPC2 </TD><TD>F160BN15;F160BN15</TD><TD>F160BN15;F165LP</TD><TD>6648</TD><TD>1998-09-10 21:20:17</TD><TD>U3JJ5A07R</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U3JJ5A08R</TD><TD>SATURN-UV</TD><TD>18.6243458333</TD><TD>4.95114444444</TD><TD>5</TD><TD>1997-09-10 20:12:13</TD><TD>1997-09-10 20:27:13</TD><TD>900.000</TD><TD>WFPC2 </TD><TD>F160BN15;F160BN15</TD><TD>F160BN15</TD><TD>6648</TD><TD>1998-09-10 21:18:39</TD><TD>U3JJ5A08R</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U3JJ5A09R</TD><TD>SATURN-UV</TD><TD>18.6234875</TD><TD>4.95075</TD><TD>5</TD><TD>1997-09-10 20:34:13</TD><TD>1997-09-10 20:49:13</TD><TD>900.000</TD><TD>WFPC2 </TD><TD>F160BN15;F160BN15</TD><TD>F160BN15</TD><TD>6648</TD><TD>1998-09-10 21:17:49</TD><TD>U3JJ5A09R</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U3JJ5A0AR</TD><TD>SATURN-UV</TD><TD>18.64265</TD><TD>4.95834444444</TD><TD>5</TD><TD>1997-09-10 20:56:13</TD><TD>1997-09-10 20:56:23</TD><TD>10.000</TD><TD>WFPC2 </TD><TD>FQCH4P15</TD><TD>F673N</TD><TD>6648</TD><TD>1998-09-10 21:21:39</TD><TD>U3JJ5A0AR</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U3JJ5A0BR</TD><TD>SATURN-UV</TD><TD>18.6205291667</TD><TD>4.94938611111</TD><TD>5</TD><TD>1997-09-10 21:49:13</TD><TD>1997-09-10 22:05:53</TD><TD>1000.000</TD><TD>WFPC2 </TD><TD>F160BN15;F160BN15</TD><TD>F160BN15</TD><TD>6648</TD><TD>1998-09-11 02:48:05</TD><TD>U3JJ5A0BR</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U3JJ5A0CR</TD><TD>SATURN-UV</TD><TD>18.6194416667</TD><TD>4.94888333333</TD><TD>5</TD><TD>1997-09-10 22:13:13</TD><TD>1997-09-10 22:33:13</TD><TD>1200.000</TD><TD>WFPC2 </TD><TD>F160BN15;F160BN15</TD><TD>F160BN15;F165LP</TD><TD>6648</TD><TD>1998-09-11 02:54:36</TD><TD>U3JJ5A0CR</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U3JJ5A0DR</TD><TD>SATURN-UV</TD><TD>18.61675</TD><TD>4.94764444444</TD><TD>5</TD><TD>1997-09-10 23:26:13</TD><TD>1997-09-10 23:42:53</TD><TD>1000.000</TD><TD>WFPC2 </TD><TD>F160BN15;F160BN15</TD><TD>F160BN15</TD><TD>6648</TD><TD>1998-09-11 02:50:58</TD><TD>U3JJ5A0DR</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U3JJ5A0ER</TD><TD>SATURN-UV</TD><TD>18.6156583333</TD><TD>4.94714166667</TD><TD>5</TD><TD>1997-09-10 23:50:13</TD><TD>1997-09-11 00:10:13</TD><TD>1200.000</TD><TD>WFPC2 </TD><TD>F160BN15;F160BN15</TD><TD>F160BN15;F165LP</TD><TD>6648</TD><TD>1998-09-11 02:58:58</TD><TD>U3JJ5A0ER</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U3JJ5A0FR</TD><TD>SATURN-UV</TD><TD>18.6130833333</TD><TD>4.94595555556</TD><TD>5</TD><TD>1997-09-11 01:03:13</TD><TD>1997-09-11 01:16:33</TD><TD>800.000</TD><TD>WFPC2 </TD><TD>F160BN15;F160BN15</TD><TD>F160BN15</TD><TD>6648</TD><TD>1998-09-11 02:48:13</TD><TD>U3JJ5A0FR</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U3JJ5A0GR</TD><TD>SATURN-UV</TD><TD>18.612225</TD><TD>4.94555833333</TD><TD>5</TD><TD>1997-09-11 01:23:13</TD><TD>1997-09-11 01:38:13</TD><TD>900.000</TD><TD>WFPC2 </TD><TD>F160BN15;F160BN15</TD><TD>F160BN15</TD><TD>6648</TD><TD>1998-09-11 02:58:58</TD><TD>U3JJ5A0GR</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U3JJ5A0HR</TD><TD>SATURN-UV</TD><TD>18.6313416667</TD><TD>4.95313611111</TD><TD>5</TD><TD>1997-09-11 01:45:13</TD><TD>1997-09-11 01:46:53</TD><TD>100.000</TD><TD>WFPC2 </TD><TD>FQCH4P15;FQCH4P15</TD><TD>FQCH4P15</TD><TD>6648</TD><TD>1998-09-11 02:57:38</TD><TD>U3JJ5A0HR</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U3JJ5201R</TD><TD>SATURN-UV</TD><TD>18.6286916667</TD><TD>4.9519</TD><TD>5</TD><TD>1997-09-11 02:40:13</TD><TD>1997-09-11 02:53:33</TD><TD>800.000</TD><TD>WFPC2 </TD><TD>FQCH4P15</TD><TD>F218W</TD><TD>6648</TD><TD>1998-09-11 12:22:01</TD><TD>U3JJ5201R</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U3JJ5202R</TD><TD>SATURN-UV</TD><TD>18.6281458333</TD><TD>4.95165</TD><TD>5</TD><TD>1997-09-11 02:56:13</TD><TD>1997-09-11 03:07:53</TD><TD>700.000</TD><TD>WFPC2 </TD><TD>FQCH4P15</TD><TD>F218W</TD><TD>6648</TD><TD>1998-09-11 12:18:54</TD><TD>U3JJ5202R</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U3JJ5203R</TD><TD>SATURN-UV</TD><TD>18.6277125</TD><TD>4.95145</TD><TD>5</TD><TD>1997-09-11 03:13:13</TD><TD>1997-09-11 03:18:13</TD><TD>300.000</TD><TD>WFPC2 </TD><TD>FQCH4P15</TD><TD>F255W</TD><TD>6648</TD><TD>1998-09-11 12:16:08</TD><TD>U3JJ5203R</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O4BD01YCQ</TD><TD>SAT-AUR</TD><TD>16.5968041667</TD><TD>4.07174444444</TD><TD>6</TD><TD>1997-10-11 03:53:03</TD><TD>1997-10-11 04:09:43</TD><TD>1000.200</TD><TD>STIS  </TD><TD>F25SRF2</TD><TD>MIRFUV</TD><TD>6854</TD><TD>1998-10-11 04:09:43</TD><TD>O4BD01YCQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O4BD01YEQ</TD><TD>SAT-AUR</TD><TD>16.5956666667</TD><TD>4.071275</TD><TD>6</TD><TD>1997-10-11 04:15:43</TD><TD>1997-10-11 04:32:23</TD><TD>773.610</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>6854</TD><TD>1998-10-11 04:32:23</TD><TD>O4BD01YEQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O4BD02ZRQ</TD><TD>SAT-AUR</TD><TD>16.5869791667</TD><TD>4.06769722222</TD><TD>6</TD><TD>1997-10-11 07:06:36</TD><TD>1997-10-11 07:23:16</TD><TD>1000.199</TD><TD>STIS  </TD><TD>F25SRF2</TD><TD>MIRFUV</TD><TD>6854</TD><TD>1998-10-11 07:23:16</TD><TD>O4BD02ZRQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O4BD02ZTQ</TD><TD>SAT-AUR</TD><TD>16.5858416667</TD><TD>4.06722777778</TD><TD>6</TD><TD>1997-10-11 07:29:16</TD><TD>1997-10-11 07:45:56</TD><TD>755.488</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>6854</TD><TD>1998-10-11 07:45:56</TD><TD>O4BD02ZTQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O4BD03AWQ</TD><TD>SAT-AUR</TD><TD>16.5771541667</TD><TD>4.06365</TD><TD>6</TD><TD>1997-10-11 10:20:10</TD><TD>1997-10-11 10:36:50</TD><TD>1000.200</TD><TD>STIS  </TD><TD>F25SRF2</TD><TD>MIRFUV</TD><TD>6854</TD><TD>1998-10-11 10:36:50</TD><TD>O4BD03AWQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O4BD03AYQ</TD><TD>SAT-AUR</TD><TD>16.5760125</TD><TD>4.06318055556</TD><TD>6</TD><TD>1997-10-11 10:42:50</TD><TD>1997-10-11 10:59:30</TD><TD>754.124</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>6854</TD><TD>1998-10-11 10:59:30</TD><TD>O4BD03AYQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O4BD04VMQ</TD><TD>SAT-AUR-CML</TD><TD>14.0716375</TD><TD>3.10694722222</TD><TD>6</TD><TD>1997-11-20 13:25:14</TD><TD>1997-11-20 13:41:54</TD><TD>1000.199</TD><TD>STIS  </TD><TD>F25SRF2</TD><TD>MIRFUV</TD><TD>6854</TD><TD>1998-11-20 13:41:54</TD><TD>O4BD04VMQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O4BD04VOQ</TD><TD>SAT-AUR-CML</TD><TD>14.070975</TD><TD>3.10673055556</TD><TD>6</TD><TD>1997-11-20 13:47:54</TD><TD>1997-11-20 14:04:34</TD><TD>1000.200</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>6854</TD><TD>1998-11-20 14:04:34</TD><TD>O4BD04VOQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O4BD05K8Q</TD><TD>TETHYS</TD><TD>13.6072416667</TD><TD>2.97428611111</TD><TD>6</TD><TD>1997-12-05 04:13:48</TD><TD>1997-12-05 04:16:08</TD><TD>0.300</TD><TD>STIS  </TD><TD>F28X50LP</TD><TD>MIRVIS</TD><TD>6854</TD><TD>1998-12-05 04:16:08</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O4BDA5KAQ</TD><TD>SAT-AUR-CML</TD><TD>13.6059541667</TD><TD>2.97416944444</TD><TD>6</TD><TD>1997-12-05 05:07:19</TD><TD>1997-12-05 05:23:59</TD><TD>1000.190</TD><TD>STIS  </TD><TD>52X0.5</TD><TD>G140L</TD><TD>6854</TD><TD>1998-12-05 05:23:59</TD><TD>O4BDA5KAQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O4BDA5KCQ</TD><TD>SAT-AUR-CML</TD><TD>13.6062</TD><TD>2.97408333333</TD><TD>6</TD><TD>1997-12-05 05:30:31</TD><TD>1997-12-05 05:40:31</TD><TD>600.200</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>6854</TD><TD>1998-12-05 05:40:31</TD><TD>O4BDA5KCQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O5DT02NWQ</TD><TD>ENCELADUS-OFFSET</TD><TD>54.2961791667</TD><TD>17.0536166667</TD><TD>5</TD><TD>2000-12-07 11:17:13</TD><TD>2000-12-07 11:20:06</TD><TD>0.500</TD><TD>STIS  </TD><TD>F28X50LP</TD><TD>MIRVIS</TD><TD>8158</TD><TD>2007-01-12 10:26:36</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O5DTA2NYQ</TD><TD>SATURN-SOUTH</TD><TD>54.2977833333</TD><TD>17.0488861111</TD><TD>5</TD><TD>2000-12-07 11:30:03</TD><TD>2000-12-07 11:38:03</TD><TD>480.020</TD><TD>STIS  </TD><TD>F25SRF2</TD><TD>MIRFUV</TD><TD>8158</TD><TD>2001-12-07 11:38:03</TD><TD>O5DTA2NYQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O5DTA2O0Q</TD><TD>SATURN-SOUTH</TD><TD>54.2970583333</TD><TD>17.0487472222</TD><TD>5</TD><TD>2000-12-07 11:44:05</TD><TD>2000-12-07 12:02:20</TD><TD>1095.194</TD><TD>STIS  </TD><TD>52X0.5</TD><TD>G140L</TD><TD>8158</TD><TD>2000-12-07 22:52:38</TD><TD>O5DTA2O0Q</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O5DTA2040</TD><TD>SATURN-SOUTH</TD><TD>54.2934083333</TD><TD>17.0480416667</TD><TD>5</TD><TD>2000-12-07 12:50:44</TD><TD>2000-12-07 13:08:35</TD><TD>1071.000</TD><TD>STIS  </TD><TD>52X0.2</TD><TD>G230L</TD><TD>8158</TD><TD>2001-12-07 22:57:05</TD><TD>O5DTA2040</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O5DTA2O6Q</TD><TD>SATURN-SOUTH</TD><TD>54.2923416667</TD><TD>17.0478361111</TD><TD>5</TD><TD>2000-12-07 13:14:09</TD><TD>2000-12-07 13:36:39</TD><TD>1350.191</TD><TD>STIS  </TD><TD>52X0.5</TD><TD>G140L</TD><TD>8158</TD><TD>2001-12-07 13:36:39</TD><TD>O5DTA2O6Q</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O5DTA2030</TD><TD>SATURN-SOUTH</TD><TD>54.2883291667</TD><TD>17.0470611111</TD><TD>5</TD><TD>2000-12-07 14:27:10</TD><TD>2000-12-07 14:45:01</TD><TD>1071.000</TD><TD>STIS  </TD><TD>52X0.2</TD><TD>G230L</TD><TD>8158</TD><TD>2001-12-07 22:54:55</TD><TD>O5DTA2030</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O5DTA2OCQ</TD><TD>SATURN-SOUTH</TD><TD>54.2872625</TD><TD>17.0468555556</TD><TD>5</TD><TD>2000-12-07 14:50:35</TD><TD>2000-12-07 15:13:05</TD><TD>1350.197</TD><TD>STIS  </TD><TD>52X0.5</TD><TD>G140L</TD><TD>8158</TD><TD>2001-12-07 15:13:05</TD><TD>O5DTA2OCQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O5DT01TLQ</TD><TD>ENCELADUS-OFFSET</TD><TD>54.2388041667</TD><TD>17.0349888889</TD><TD>5</TD><TD>2000-12-08 09:47:37</TD><TD>2000-12-08 09:50:30</TD><TD>0.500</TD><TD>STIS  </TD><TD>F28X50LP</TD><TD>MIRVIS</TD><TD>8158</TD><TD>2007-01-13 04:48:09</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O5DTA1TNQ</TD><TD>SATURN-SOUTH</TD><TD>54.2269166667</TD><TD>17.0352416667</TD><TD>5</TD><TD>2000-12-08 10:00:27</TD><TD>2000-12-08 10:08:27</TD><TD>480.019</TD><TD>STIS  </TD><TD>F25SRF2</TD><TD>MIRFUV</TD><TD>8158</TD><TD>2001-12-08 10:08:27</TD><TD>O5DTA1TNQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O5DTA1TPQ</TD><TD>SATURN-SOUTH</TD><TD>54.2261958333</TD><TD>17.0351027778</TD><TD>5</TD><TD>2000-12-08 10:14:29</TD><TD>2000-12-08 10:32:44</TD><TD>1095.194</TD><TD>STIS  </TD><TD>52X0.5</TD><TD>G140L</TD><TD>8158</TD><TD>2000-12-08 18:52:58</TD><TD>O5DTA1TPQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O5DTA1040</TD><TD>SATURN-SOUTH</TD><TD>54.2226708333</TD><TD>17.034425</TD><TD>5</TD><TD>2000-12-08 11:19:29</TD><TD>2000-12-08 11:37:20</TD><TD>1071.000</TD><TD>STIS  </TD><TD>52X0.2</TD><TD>G230L</TD><TD>8158</TD><TD>2001-12-08 19:02:39</TD><TD>O5DTA1040</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O5DTA1TVQ</TD><TD>SATURN-SOUTH</TD><TD>54.2216166667</TD><TD>17.0342222222</TD><TD>5</TD><TD>2000-12-08 11:42:54</TD><TD>2000-12-08 12:05:24</TD><TD>1350.197</TD><TD>STIS  </TD><TD>52X0.5</TD><TD>G140L</TD><TD>8158</TD><TD>2000-12-08 19:12:15</TD><TD>O5DTA1TVQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O5DTA1030</TD><TD>SATURN-SOUTH</TD><TD>54.2176416667</TD><TD>17.0334611111</TD><TD>5</TD><TD>2000-12-08 12:55:54</TD><TD>2000-12-08 13:13:45</TD><TD>1071.000</TD><TD>STIS  </TD><TD>52X0.2</TD><TD>G230L</TD><TD>8158</TD><TD>2001-12-08 19:07:52</TD><TD>O5DTA1030</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O5DTA1U1Q</TD><TD>SATURN-SOUTH</TD><TD>54.2165875</TD><TD>17.0332583333</TD><TD>5</TD><TD>2000-12-08 13:19:19</TD><TD>2000-12-08 13:41:49</TD><TD>1350.184</TD><TD>STIS  </TD><TD>52X0.5</TD><TD>G140L</TD><TD>8158</TD><TD>2000-12-08 18:55:31</TD><TD>O5DTA1U1Q</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O5HR11V2Q</TD><TD>TITAN</TD><TD>52.1799083333</TD><TD>16.7621777778</TD><TD>5</TD><TD>2001-01-28 08:33:45</TD><TD>2001-01-28 08:37:55</TD><TD>0.300</TD><TD>STIS  </TD><TD>F28X50LP</TD><TD>MIRVIS</TD><TD>8117</TD><TD>2002-01-28 08:37:55</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O5HRB1V4Q</TD><TD>SAT-AUR</TD><TD>52.2174958333</TD><TD>16.7776861111</TD><TD>5</TD><TD>2001-01-28 08:47:07</TD><TD>2001-01-28 08:52:37</TD><TD>330.020</TD><TD>STIS  </TD><TD>F25SRF2</TD><TD>MIRFUV</TD><TD>8117</TD><TD>2002-01-28 08:52:37</TD><TD>O5HRB1V4Q</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O5HRB1010</TD><TD>SAT-AUR</TD><TD>52.2161541667</TD><TD>16.7782888889</TD><TD>5</TD><TD>2001-01-28 09:01:31</TD><TD>2001-01-28 09:18:11</TD><TD>1000.198</TD><TD>STIS  </TD><TD>52X2</TD><TD>G140L</TD><TD>8117</TD><TD>2006-12-10 16:52:32</TD><TD>O5HRB1010</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O5HRB1020</TD><TD>SAT-AUR</TD><TD>52.2163916667</TD><TD>16.7785666667</TD><TD>5</TD><TD>2001-01-28 10:05:37</TD><TD>2001-01-28 10:19:57</TD><TD>816.000</TD><TD>STIS  </TD><TD>52X0.5</TD><TD>G230LB</TD><TD>8117</TD><TD>2006-12-15 16:10:57</TD><TD>O5HRB1020</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O5HRB1030</TD><TD>SAT-AUR</TD><TD>52.2164708333</TD><TD>16.7786583333</TD><TD>5</TD><TD>2001-01-28 10:27:06</TD><TD>2001-01-28 10:47:06</TD><TD>1200.196</TD><TD>STIS  </TD><TD>52X2</TD><TD>G140L</TD><TD>8117</TD><TD>2006-12-16 18:12:59</TD><TD>O5HRB1030</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O5HRB1VIQ</TD><TD>SAT-AUR</TD><TD>52.2181583333</TD><TD>16.77845</TD><TD>5</TD><TD>2001-01-28 11:43:51</TD><TD>2001-01-28 11:53:51</TD><TD>600.200</TD><TD>STIS  </TD><TD>F25SRF2</TD><TD>MIRFUV</TD><TD>8117</TD><TD>2002-01-28 11:53:51</TD><TD>O5HRB1VIQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O5HRB1040</TD><TD>SAT-AUR</TD><TD>52.2168333333</TD><TD>16.779075</TD><TD>5</TD><TD>2001-01-28 12:02:45</TD><TD>2001-01-28 12:26:05</TD><TD>1400.200</TD><TD>STIS  </TD><TD>52X2</TD><TD>G140L</TD><TD>8117</TD><TD>2006-12-17 16:17:55</TD><TD>O5HRB1040</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O5HRB1050</TD><TD>SAT-AUR</TD><TD>52.2171291667</TD><TD>16.7794027778</TD><TD>5</TD><TD>2001-01-28 13:18:22</TD><TD>2001-01-28 13:32:42</TD><TD>816.000</TD><TD>STIS  </TD><TD>52X0.5</TD><TD>G230LB</TD><TD>8117</TD><TD>2006-12-18 20:21:26</TD><TD>O5HRB1050</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O5HRB1060</TD><TD>SAT-AUR</TD><TD>52.2172125</TD><TD>16.7794972222</TD><TD>5</TD><TD>2001-01-28 13:39:51</TD><TD>2001-01-28 13:59:51</TD><TD>1200.197</TD><TD>STIS  </TD><TD>52X2</TD><TD>G140L</TD><TD>8117</TD><TD>2006-12-20 19:38:01</TD><TD>O5HRB1060</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O5HR02BZQ</TD><TD>TITAN</TD><TD>52.2067083333</TD><TD>16.7648861111</TD><TD>5</TD><TD>2001-01-29 10:16:27</TD><TD>2001-01-29 10:20:37</TD><TD>0.300</TD><TD>STIS  </TD><TD>F28X50LP</TD><TD>MIRVIS</TD><TD>8117</TD><TD>2002-01-29 10:20:37</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O5HRA2C1Q</TD><TD>SAT-AUR</TD><TD>52.2242416667</TD><TD>16.7846055556</TD><TD>5</TD><TD>2001-01-29 10:29:49</TD><TD>2001-01-29 10:34:49</TD><TD>300.020</TD><TD>STIS  </TD><TD>F25SRF2</TD><TD>MIRFUV</TD><TD>8117</TD><TD>2002-01-29 10:34:49</TD><TD>O5HRA2C1Q</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O5HRA2010</TD><TD>SAT-AUR</TD><TD>52.2229208333</TD><TD>16.7852111111</TD><TD>5</TD><TD>2001-01-29 10:43:43</TD><TD>2001-01-29 11:00:23</TD><TD>1000.199</TD><TD>STIS  </TD><TD>52X2</TD><TD>G140L</TD><TD>8117</TD><TD>2002-01-29 11:00:23</TD><TD>O5HRA2010</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O5HRA2020</TD><TD>SAT-AUR</TD><TD>52.2232541667</TD><TD>16.7855138889</TD><TD>5</TD><TD>2001-01-29 11:48:45</TD><TD>2001-01-29 12:03:05</TD><TD>816.000</TD><TD>STIS  </TD><TD>52X0.5</TD><TD>G230LB</TD><TD>8117</TD><TD>2006-11-22 20:08:51</TD><TD>O5HRA2020</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O5HRA2030</TD><TD>SAT-AUR</TD><TD>52.2233666667</TD><TD>16.7856138889</TD><TD>5</TD><TD>2001-01-29 12:10:14</TD><TD>2001-01-29 12:30:14</TD><TD>1200.199</TD><TD>STIS  </TD><TD>52X2</TD><TD>G140L</TD><TD>8117</TD><TD>2006-11-25 11:28:42</TD><TD>O5HRA2030</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O5HRA2CFQ</TD><TD>SAT-AUR</TD><TD>52.2251583333</TD><TD>16.7854333333</TD><TD>5</TD><TD>2001-01-29 13:26:59</TD><TD>2001-01-29 13:36:59</TD><TD>600.200</TD><TD>STIS  </TD><TD>F25SRF2</TD><TD>MIRFUV</TD><TD>8117</TD><TD>2002-01-29 13:36:59</TD><TD>O5HRA2CFQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O5HRA2040</TD><TD>SAT-AUR</TD><TD>52.2238625</TD><TD>16.7860638889</TD><TD>5</TD><TD>2001-01-29 13:45:53</TD><TD>2001-01-29 14:09:13</TD><TD>1400.197</TD><TD>STIS  </TD><TD>52X2</TD><TD>G140L</TD><TD>8117</TD><TD>2006-11-24 16:59:30</TD><TD>O5HRA2040</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O5HRA2050</TD><TD>SAT-AUR</TD><TD>52.2242666667</TD><TD>16.7864194444</TD><TD>5</TD><TD>2001-01-29 15:01:30</TD><TD>2001-01-29 15:15:50</TD><TD>816.000</TD><TD>STIS  </TD><TD>52X0.5</TD><TD>G230LB</TD><TD>8117</TD><TD>2006-11-30 08:13:05</TD><TD>O5HRA2050</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O5HRA2060</TD><TD>SAT-AUR</TD><TD>52.2243791667</TD><TD>16.7865194444</TD><TD>5</TD><TD>2001-01-29 15:22:59</TD><TD>2001-01-29 15:42:59</TD><TD>1200.200</TD><TD>STIS  </TD><TD>52X2</TD><TD>G140L</TD><TD>8117</TD><TD>2006-12-09 15:02:48</TD><TD>O5HRA2060</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O8WI02C6Q</TD><TD>SATURN-AURORA-SOUTH</TD><TD>99.8578416667</TD><TD>22.4705611111</TD><TD>17</TD><TD>2004-01-08 04:25:59</TD><TD>2004-01-08 04:36:39</TD><TD>640.199</TD><TD>STIS  </TD><TD>F25SRF2</TD><TD>MIRFUV</TD><TD>10083</TD><TD>2004-01-08 06:41:51</TD><TD>O8WI02C6Q</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O8WI02010</TD><TD>SATURN-AURORA-SOUTH</TD><TD>99.8568416667</TD><TD>22.4706444444</TD><TD>17</TD><TD>2004-01-08 04:42:39</TD><TD>2004-01-08 04:52:01</TD><TD>540.000</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>10083</TD><TD>2004-01-08 06:44:53</TD><TD>O8WI02010</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O8WI02CCQ</TD><TD>SATURN-AURORA-SOUTH</TD><TD>99.855975</TD><TD>22.4707194444</TD><TD>17</TD><TD>2004-01-08 04:56:56</TD><TD>2004-01-08 05:07:36</TD><TD>640.200</TD><TD>STIS  </TD><TD>F25SRF2</TD><TD>MIRFUV</TD><TD>10083</TD><TD>2004-01-08 10:35:43</TD><TD>O8WI02CCQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O8WI02CHQ</TD><TD>SATURN-AURORA-SOUTH</TD><TD>99.8520791667</TD><TD>22.4710527778</TD><TD>17</TD><TD>2004-01-08 05:58:25</TD><TD>2004-01-08 06:10:45</TD><TD>740.199</TD><TD>STIS  </TD><TD>F25SRF2</TD><TD>MIRFUV</TD><TD>10083</TD><TD>2004-01-08 10:45:17</TD><TD>O8WI02CHQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O8WI02020</TD><TD>SATURN-AURORA-SOUTH</TD><TD>99.8511166667</TD><TD>22.4711333333</TD><TD>17</TD><TD>2004-01-08 06:16:45</TD><TD>2004-01-08 06:26:07</TD><TD>540.000</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>10083</TD><TD>2004-01-08 10:47:48</TD><TD>O8WI02020</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O8WI02CNQ</TD><TD>SATURN-AURORA-SOUTH</TD><TD>99.85025</TD><TD>22.4712083333</TD><TD>17</TD><TD>2004-01-08 06:31:02</TD><TD>2004-01-08 06:43:22</TD><TD>740.200</TD><TD>STIS  </TD><TD>F25SRF2</TD><TD>MIRFUV</TD><TD>10083</TD><TD>2004-01-08 11:35:59</TD><TD>O8WI02CNQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O8WI02CSQ</TD><TD>SATURN-AURORA-SOUTH</TD><TD>99.8462416667</TD><TD>22.47155</TD><TD>17</TD><TD>2004-01-08 07:34:24</TD><TD>2004-01-08 07:46:44</TD><TD>740.200</TD><TD>STIS  </TD><TD>F25SRF2</TD><TD>MIRFUV</TD><TD>10083</TD><TD>2004-01-08 12:36:12</TD><TD>O8WI02CSQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O8WI02030</TD><TD>SATURN-AURORA-SOUTH</TD><TD>99.8452791667</TD><TD>22.4716333333</TD><TD>17</TD><TD>2004-01-08 07:52:44</TD><TD>2004-01-08 08:02:06</TD><TD>540.000</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>10083</TD><TD>2004-01-08 12:38:43</TD><TD>O8WI02030</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O8WI02CYQ</TD><TD>SATURN-AURORA-SOUTH</TD><TD>99.8444125</TD><TD>22.4717083333</TD><TD>17</TD><TD>2004-01-08 08:07:01</TD><TD>2004-01-08 08:19:21</TD><TD>740.200</TD><TD>STIS  </TD><TD>F25SRF2</TD><TD>MIRFUV</TD><TD>10083</TD><TD>2004-01-08 21:17:38</TD><TD>O8WI02CYQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O8WI02D3Q</TD><TD>SATURN-AURORA-SOUTH</TD><TD>99.8404041667</TD><TD>22.47205</TD><TD>17</TD><TD>2004-01-08 09:10:23</TD><TD>2004-01-08 09:22:43</TD><TD>740.200</TD><TD>STIS  </TD><TD>F25SRF2</TD><TD>MIRFUV</TD><TD>10083</TD><TD>2004-01-08 21:26:11</TD><TD>O8WI02D3Q</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O8WI02040</TD><TD>SATURN-AURORA-SOUTH</TD><TD>99.8394416667</TD><TD>22.4721305556</TD><TD>17</TD><TD>2004-01-08 09:28:43</TD><TD>2004-01-08 09:38:05</TD><TD>540.000</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>10083</TD><TD>2004-01-08 21:28:42</TD><TD>O8WI02040</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O8WI02D9Q</TD><TD>SATURN-AURORA-SOUTH</TD><TD>99.838575</TD><TD>22.4722055556</TD><TD>17</TD><TD>2004-01-08 09:43:00</TD><TD>2004-01-08 09:55:20</TD><TD>740.200</TD><TD>STIS  </TD><TD>F25SRF2</TD><TD>MIRFUV</TD><TD>10083</TD><TD>2004-01-08 21:37:15</TD><TD>O8WI02D9Q</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O8WI02DEQ</TD><TD>SATURN-AURORA-SOUTH</TD><TD>99.8345666667</TD><TD>22.4725472222</TD><TD>17</TD><TD>2004-01-08 10:46:22</TD><TD>2004-01-08 10:58:42</TD><TD>740.200</TD><TD>STIS  </TD><TD>F25SRF2</TD><TD>MIRFUV</TD><TD>10083</TD><TD>2004-01-08 21:47:50</TD><TD>O8WI02DEQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O8WI02050</TD><TD>SATURN-AURORA-SOUTH</TD><TD>99.8336083333</TD><TD>22.4726305556</TD><TD>17</TD><TD>2004-01-08 11:04:42</TD><TD>2004-01-08 11:14:04</TD><TD>540.000</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>10083</TD><TD>2004-01-08 21:50:21</TD><TD>O8WI02050</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O8WI02DKQ</TD><TD>SATURN-AURORA-SOUTH</TD><TD>99.8327375</TD><TD>22.4727027778</TD><TD>17</TD><TD>2004-01-08 11:18:59</TD><TD>2004-01-08 11:31:19</TD><TD>740.200</TD><TD>STIS  </TD><TD>F25SRF2</TD><TD>MIRFUV</TD><TD>10083</TD><TD>2004-01-08 22:00:26</TD><TD>O8WI02DKQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O8WI01S1Q</TD><TD>SATURN-AURORA-SOUTH</TD><TD>99.6834625</TD><TD>22.485425</TD><TD>17</TD><TD>2004-01-10 04:24:35</TD><TD>2004-01-10 04:35:15</TD><TD>640.200</TD><TD>STIS  </TD><TD>F25SRF2</TD><TD>MIRFUV</TD><TD>10083</TD><TD>2004-01-10 08:59:51</TD><TD>O8WI01S1Q</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O8WI01010</TD><TD>SATURN-AURORA-SOUTH</TD><TD>99.682475</TD><TD>22.4855083333</TD><TD>17</TD><TD>2004-01-10 04:41:15</TD><TD>2004-01-10 04:50:37</TD><TD>540.000</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>10083</TD><TD>2004-01-10 09:02:22</TD><TD>O8WI01010</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O8WI01S7Q</TD><TD>SATURN-AURORA-SOUTH</TD><TD>99.6816125</TD><TD>22.4855805556</TD><TD>17</TD><TD>2004-01-10 04:55:32</TD><TD>2004-01-10 05:06:12</TD><TD>640.200</TD><TD>STIS  </TD><TD>F25SRF2</TD><TD>MIRFUV</TD><TD>10083</TD><TD>2004-01-10 09:10:25</TD><TD>O8WI01S7Q</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O8WI03DSQ</TD><TD>SATURN-AURORA-SOUTH</TD><TD>99.4937708333</TD><TD>22.5015305556</TD><TD>17</TD><TD>2004-01-12 09:11:59</TD><TD>2004-01-12 09:22:39</TD><TD>640.200</TD><TD>STIS  </TD><TD>F25SRF2</TD><TD>MIRFUV</TD><TD>10083</TD><TD>2004-01-12 17:07:21</TD><TD>O8WI03DSQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O8WI03010</TD><TD>SATURN-AURORA-SOUTH</TD><TD>99.4927916667</TD><TD>22.5016138889</TD><TD>17</TD><TD>2004-01-12 09:28:39</TD><TD>2004-01-12 09:38:01</TD><TD>540.000</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>10083</TD><TD>2004-01-12 17:07:24</TD><TD>O8WI03010</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O8WI03DYQ</TD><TD>SATURN-AURORA-SOUTH</TD><TD>99.4919458333</TD><TD>22.5016861111</TD><TD>17</TD><TD>2004-01-12 09:42:56</TD><TD>2004-01-12 09:53:36</TD><TD>640.199</TD><TD>STIS  </TD><TD>F25SRF2</TD><TD>MIRFUV</TD><TD>10083</TD><TD>2004-01-12 17:07:23</TD><TD>O8WI03DYQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O8WI04RTQ</TD><TD>SATURN-AURORA-SOUTH</TD><TD>99.3406083333</TD><TD>22.5144972222</TD><TD>17</TD><TD>2004-01-14 04:23:29</TD><TD>2004-01-14 04:35:09</TD><TD>700.199</TD><TD>STIS  </TD><TD>F25SRF2</TD><TD>MIRFUV</TD><TD>10083</TD><TD>2004-01-14 10:43:27</TD><TD>O8WI04RTQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O8WI04010</TD><TD>SATURN-AURORA-SOUTH</TD><TD>99.3395875</TD><TD>22.5145861111</TD><TD>17</TD><TD>2004-01-14 04:41:09</TD><TD>2004-01-14 04:50:31</TD><TD>540.000</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>10083</TD><TD>2004-01-14 10:46:00</TD><TD>O8WI04010</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O8WI04RZQ</TD><TD>SATURN-AURORA-SOUTH</TD><TD>99.33875</TD><TD>22.5146555556</TD><TD>17</TD><TD>2004-01-14 04:55:26</TD><TD>2004-01-14 05:07:06</TD><TD>700.200</TD><TD>STIS  </TD><TD>F25SRF2</TD><TD>MIRFUV</TD><TD>10083</TD><TD>2004-01-14 10:54:03</TD><TD>O8WI04RZQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O8WI05H2Q</TD><TD>SATURN-AURORA-SOUTH</TD><TD>99.1840375</TD><TD>22.5277333333</TD><TD>17</TD><TD>2004-01-16 01:11:02</TD><TD>2004-01-16 01:22:42</TD><TD>700.200</TD><TD>STIS  </TD><TD>F25SRF2</TD><TD>MIRFUV</TD><TD>10083</TD><TD>2004-01-16 06:26:45</TD><TD>O8WI05H2Q</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O8WI05010</TD><TD>SATURN-AURORA-SOUTH</TD><TD>99.1830291667</TD><TD>22.5278166667</TD><TD>17</TD><TD>2004-01-16 01:28:42</TD><TD>2004-01-16 01:38:04</TD><TD>540.000</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>10083</TD><TD>2004-01-16 06:29:46</TD><TD>O8WI05010</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O8WI05HAQ</TD><TD>SATURN-AURORA-SOUTH</TD><TD>99.1822041667</TD><TD>22.5278888889</TD><TD>17</TD><TD>2004-01-16 01:42:59</TD><TD>2004-01-16 01:54:39</TD><TD>700.199</TD><TD>STIS  </TD><TD>F25SRF2</TD><TD>MIRFUV</TD><TD>10083</TD><TD>2004-01-16 07:58:00</TD><TD>O8WI05HAQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O8WI06BAQ</TD><TD>SATURN-AURORA-SOUTH</TD><TD>99.0083083333</TD><TD>22.542575</TD><TD>17</TD><TD>2004-01-18 04:22:34</TD><TD>2004-01-18 04:34:14</TD><TD>700.200</TD><TD>STIS  </TD><TD>F25SRF2</TD><TD>MIRFUV</TD><TD>10083</TD><TD>2004-01-18 12:37:22</TD><TD>O8WI06BAQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O8WI06010</TD><TD>SATURN-AURORA-SOUTH</TD><TD>99.007325</TD><TD>22.5426583333</TD><TD>17</TD><TD>2004-01-18 04:40:14</TD><TD>2004-01-18 04:49:36</TD><TD>540.000</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>10083</TD><TD>2004-01-18 09:21:01</TD><TD>O8WI06010</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O8WI06BGQ</TD><TD>SATURN-AURORA-SOUTH</TD><TD>99.0065166667</TD><TD>22.542725</TD><TD>17</TD><TD>2004-01-18 04:54:31</TD><TD>2004-01-18 05:06:11</TD><TD>700.200</TD><TD>STIS  </TD><TD>F25SRF2</TD><TD>MIRFUV</TD><TD>10083</TD><TD>2004-01-18 09:27:44</TD><TD>O8WI06BGQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O8WI07KOQ</TD><TD>SATURN-AURORA-SOUTH</TD><TD>98.8576833333</TD><TD>22.5553</TD><TD>17</TD><TD>2004-01-20 01:10:45</TD><TD>2004-01-20 01:22:25</TD><TD>700.199</TD><TD>STIS  </TD><TD>F25SRF2</TD><TD>MIRFUV</TD><TD>10083</TD><TD>2004-01-20 15:47:13</TD><TD>O8WI07KOQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O8WI07010</TD><TD>SATURN-AURORA-SOUTH</TD><TD>98.8567166667</TD><TD>22.5553805556</TD><TD>17</TD><TD>2004-01-20 01:28:25</TD><TD>2004-01-20 01:37:47</TD><TD>540.000</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>10083</TD><TD>2004-01-20 12:36:09</TD><TD>O8WI07010</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O8WI07KUQ</TD><TD>SATURN-AURORA-SOUTH</TD><TD>98.855925</TD><TD>22.5554472222</TD><TD>17</TD><TD>2004-01-20 01:42:42</TD><TD>2004-01-20 01:54:22</TD><TD>700.199</TD><TD>STIS  </TD><TD>F25SRF2</TD><TD>MIRFUV</TD><TD>10083</TD><TD>2004-01-20 12:44:12</TD><TD>O8WI07KUQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O8WI08B5Q</TD><TD>SATURN-AURORA-SOUTH</TD><TD>98.7155833333</TD><TD>22.5673222222</TD><TD>17</TD><TD>2004-01-21 20:22:35</TD><TD>2004-01-21 20:34:15</TD><TD>700.200</TD><TD>STIS  </TD><TD>F25SRF2</TD><TD>MIRFUV</TD><TD>10083</TD><TD>2004-01-22 02:56:27</TD><TD>O8WI08B5Q</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O8WI08010</TD><TD>SATURN-AURORA-SOUTH</TD><TD>98.7146375</TD><TD>22.5674027778</TD><TD>17</TD><TD>2004-01-21 20:40:15</TD><TD>2004-01-21 20:49:37</TD><TD>540.000</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>10083</TD><TD>2004-01-22 02:59:29</TD><TD>O8WI08010</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O8WI08BDQ</TD><TD>SATURN-AURORA-SOUTH</TD><TD>98.7138625</TD><TD>22.5674666667</TD><TD>17</TD><TD>2004-01-21 20:54:32</TD><TD>2004-01-21 21:06:12</TD><TD>700.200</TD><TD>STIS  </TD><TD>F25SRF2</TD><TD>MIRFUV</TD><TD>10083</TD><TD>2004-01-22 03:06:21</TD><TD>O8WI08BDQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O8WI09MOQ</TD><TD>SATURN-AURORA-SOUTH</TD><TD>98.6125125</TD><TD>22.5760638889</TD><TD>17</TD><TD>2004-01-23 04:21:41</TD><TD>2004-01-23 04:33:21</TD><TD>700.200</TD><TD>STIS  </TD><TD>F25SRF2</TD><TD>MIRFUV</TD><TD>10083</TD><TD>2004-01-23 08:20:41</TD><TD>O8WI09MOQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O8WI09010</TD><TD>SATURN-AURORA-SOUTH</TD><TD>98.6115875</TD><TD>22.5761416667</TD><TD>17</TD><TD>2004-01-23 04:39:21</TD><TD>2004-01-23 04:48:43</TD><TD>540.000</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>10083</TD><TD>2004-01-23 08:23:12</TD><TD>O8WI09010</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O8WI09MUQ</TD><TD>SATURN-AURORA-SOUTH</TD><TD>98.610825</TD><TD>22.5762083333</TD><TD>17</TD><TD>2004-01-23 04:53:38</TD><TD>2004-01-23 05:05:18</TD><TD>700.200</TD><TD>STIS  </TD><TD>F25SRF2</TD><TD>MIRFUV</TD><TD>10083</TD><TD>2004-01-23 10:59:23</TD><TD>O8WI09MUQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O8WI10BDQ</TD><TD>SATURN-AURORA-SOUTH</TD><TD>98.4764375</TD><TD>22.5876444444</TD><TD>17</TD><TD>2004-01-24 23:33:21</TD><TD>2004-01-24 23:45:01</TD><TD>700.200</TD><TD>STIS  </TD><TD>F25SRF2</TD><TD>MIRFUV</TD><TD>10083</TD><TD>2004-01-25 04:53:29</TD><TD>O8WI10BDQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O8WI10010</TD><TD>SATURN-AURORA-SOUTH</TD><TD>98.4755333333</TD><TD>22.5877222222</TD><TD>17</TD><TD>2004-01-24 23:51:01</TD><TD>2004-01-25 00:00:23</TD><TD>540.000</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>10083</TD><TD>2004-01-25 04:57:01</TD><TD>O8WI10010</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O8WI10BKQ</TD><TD>SATURN-AURORA-SOUTH</TD><TD>98.4747958333</TD><TD>22.5877861111</TD><TD>17</TD><TD>2004-01-25 00:05:18</TD><TD>2004-01-25 00:16:58</TD><TD>700.199</TD><TD>STIS  </TD><TD>F25SRF2</TD><TD>MIRFUV</TD><TD>10083</TD><TD>2004-01-25 05:48:24</TD><TD>O8WI10BKQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O8WI11HUQ</TD><TD>SATURN-AURORA-SOUTH</TD><TD>98.3441791667</TD><TD>22.5989638889</TD><TD>17</TD><TD>2004-01-26 18:44:52</TD><TD>2004-01-26 18:56:32</TD><TD>700.199</TD><TD>STIS  </TD><TD>F25SRF2</TD><TD>MIRFUV</TD><TD>10083</TD><TD>2004-01-27 01:28:59</TD><TD>O8WI11HUQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O8WI11010</TD><TD>SATURN-AURORA-SOUTH</TD><TD>98.3433041667</TD><TD>22.5990388889</TD><TD>17</TD><TD>2004-01-26 19:02:32</TD><TD>2004-01-26 19:11:54</TD><TD>540.000</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>10083</TD><TD>2004-01-27 01:31:31</TD><TD>O8WI11010</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O8WI11I0Q</TD><TD>SATURN-AURORA-SOUTH</TD><TD>98.3425875</TD><TD>22.5991</TD><TD>17</TD><TD>2004-01-26 19:16:49</TD><TD>2004-01-26 19:28:29</TD><TD>700.200</TD><TD>STIS  </TD><TD>F25SRF2</TD><TD>MIRFUV</TD><TD>10083</TD><TD>2004-01-27 01:38:36</TD><TD>O8WI11I0Q</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O8WI12QWQ</TD><TD>SATURN-AURORA-SOUTH</TD><TD>98.2534666667</TD><TD>22.6067722222</TD><TD>17</TD><TD>2004-01-28 01:09:48</TD><TD>2004-01-28 01:21:28</TD><TD>700.200</TD><TD>STIS  </TD><TD>F25SRF2</TD><TD>MIRFUV</TD><TD>10083</TD><TD>2004-01-28 16:41:39</TD><TD>O8WI12QWQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O8WI12010</TD><TD>SATURN-AURORA-SOUTH</TD><TD>98.2526083333</TD><TD>22.6068472222</TD><TD>17</TD><TD>2004-01-28 01:27:28</TD><TD>2004-01-28 01:36:50</TD><TD>540.000</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>10083</TD><TD>2004-01-28 16:44:41</TD><TD>O8WI12010</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O8WI12R3Q</TD><TD>SATURN-AURORA-SOUTH</TD><TD>98.2519083333</TD><TD>22.6069083333</TD><TD>17</TD><TD>2004-01-28 01:41:45</TD><TD>2004-01-28 01:53:25</TD><TD>700.200</TD><TD>STIS  </TD><TD>F25SRF2</TD><TD>MIRFUV</TD><TD>10083</TD><TD>2004-01-28 16:51:35</TD><TD>O8WI12R3Q</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O8WI13LLQ</TD><TD>SATURN-AURORA-SOUTH</TD><TD>98.0651083333</TD><TD>22.62315</TD><TD>17</TD><TD>2004-01-30 18:43:39</TD><TD>2004-01-30 18:55:19</TD><TD>700.200</TD><TD>STIS  </TD><TD>F25SRF2</TD><TD>MIRFUV</TD><TD>10083</TD><TD>2004-02-02 12:48:01</TD><TD>O8WI13LLQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O8WI13010</TD><TD>SATURN-AURORA-SOUTH</TD><TD>98.0642958333</TD><TD>22.6232222222</TD><TD>17</TD><TD>2004-01-30 19:01:19</TD><TD>2004-01-30 19:10:41</TD><TD>540.000</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>10083</TD><TD>2004-02-02 12:51:03</TD><TD>O8WI13010</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O8WI13LRQ</TD><TD>SATURN-AURORA-SOUTH</TD><TD>98.0636333333</TD><TD>22.6232805556</TD><TD>17</TD><TD>2004-01-30 19:15:36</TD><TD>2004-01-30 19:27:16</TD><TD>700.199</TD><TD>STIS  </TD><TD>F25SRF2</TD><TD>MIRFUV</TD><TD>10083</TD><TD>2004-02-02 13:09:52</TD><TD>O8WI13LRQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J91Y01011</TD><TD>SATURN</TD><TD>112.993375</TD><TD>21.8281138889</TD><TD>1</TD><TD>2005-02-17 16:20:00</TD><TD>2005-02-17 16:33:21</TD><TD>760.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F140LP;N/A;F140LP</TD><TD>10156</TD><TD>2005-04-05 19:49:21</TD><TD>J91Y01011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J91Y01021</TD><TD>SATURN</TD><TD>112.992604167</TD><TD>21.82825</TD><TD>1</TD><TD>2005-02-17 16:34:27</TD><TD>2005-02-17 16:50:48</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F115LP;N/A;F115LP</TD><TD>10156</TD><TD>2005-04-05 19:49:26</TD><TD>J91Y01021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J91Y01031</TD><TD>SATURN</TD><TD>112.992066667</TD><TD>21.8283444444</TD><TD>1</TD><TD>2005-02-17 16:51:54</TD><TD>2005-02-17 17:05:14</TD><TD>760.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F140LP;N/A;F140LP</TD><TD>10156</TD><TD>2005-04-05 19:49:30</TD><TD>J91Y01031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J91Y01041</TD><TD>SATURN</TD><TD>112.989545833</TD><TD>21.8287833333</TD><TD>1</TD><TD>2005-02-17 17:53:05</TD><TD>2005-02-17 18:07:25</TD><TD>820.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F140LP;N/A;F140LP</TD><TD>10156</TD><TD>2005-04-05 19:49:35</TD><TD>J91Y01041</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J91Y01051</TD><TD>SATURN</TD><TD>112.988758333</TD><TD>21.8289222222</TD><TD>1</TD><TD>2005-02-17 18:08:32</TD><TD>2005-02-17 18:24:53</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F115LP;N/A;F115LP</TD><TD>10156</TD><TD>2005-04-05 19:49:40</TD><TD>J91Y01051</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J91Y01061</TD><TD>SATURN</TD><TD>112.988204167</TD><TD>21.8290194444</TD><TD>1</TD><TD>2005-02-17 18:25:59</TD><TD>2005-02-17 18:40:20</TD><TD>820.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F140LP;N/A;F140LP</TD><TD>10156</TD><TD>2005-04-05 19:49:47</TD><TD>J91Y01061</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J91Y01071</TD><TD>SATURN</TD><TD>112.985629167</TD><TD>21.8294694444</TD><TD>1</TD><TD>2005-02-17 19:29:01</TD><TD>2005-02-17 19:43:21</TD><TD>820.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F140LP;N/A;F140LP</TD><TD>10156</TD><TD>2005-04-05 19:49:53</TD><TD>J91Y01071</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J91Y01081</TD><TD>SATURN</TD><TD>112.984841667</TD><TD>21.8296055556</TD><TD>1</TD><TD>2005-02-17 19:44:28</TD><TD>2005-02-17 20:00:48</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F115LP;N/A;F115LP</TD><TD>10156</TD><TD>2005-04-05 19:49:58</TD><TD>J91Y01081</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J91Y01091</TD><TD>SATURN</TD><TD>112.9842875</TD><TD>21.8297027778</TD><TD>1</TD><TD>2005-02-17 20:01:55</TD><TD>2005-02-17 20:16:15</TD><TD>820.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F140LP;N/A;F140LP</TD><TD>10156</TD><TD>2005-04-05 19:50:02</TD><TD>J91Y01091</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J91Y010A1</TD><TD>SATURN</TD><TD>112.981720833</TD><TD>21.8301527778</TD><TD>1</TD><TD>2005-02-17 21:04:57</TD><TD>2005-02-17 21:19:17</TD><TD>820.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F140LP;N/A;F140LP</TD><TD>10156</TD><TD>2005-04-05 19:50:07</TD><TD>J91Y010A1</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J91Y010B1</TD><TD>SATURN</TD><TD>112.9809375</TD><TD>21.8302916667</TD><TD>1</TD><TD>2005-02-17 21:20:24</TD><TD>2005-02-17 21:36:45</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F115LP;N/A;F115LP</TD><TD>10156</TD><TD>2005-04-05 19:50:11</TD><TD>J91Y010B1</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J91Y010C1</TD><TD>SATURN</TD><TD>112.980383333</TD><TD>21.8303861111</TD><TD>1</TD><TD>2005-02-17 21:37:51</TD><TD>2005-02-17 21:52:11</TD><TD>820.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F140LP;N/A;F140LP</TD><TD>10156</TD><TD>2005-04-05 19:50:16</TD><TD>J91Y010C1</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J91Y010D1</TD><TD>SATURN</TD><TD>112.977816667</TD><TD>21.8308361111</TD><TD>1</TD><TD>2005-02-17 22:40:53</TD><TD>2005-02-17 22:55:13</TD><TD>820.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F140LP;N/A;F140LP</TD><TD>10156</TD><TD>2005-04-05 19:50:21</TD><TD>J91Y010D1</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J91Y010E1</TD><TD>SATURN</TD><TD>112.977033333</TD><TD>21.8309722222</TD><TD>1</TD><TD>2005-02-17 22:56:20</TD><TD>2005-02-17 23:12:40</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F115LP;N/A;F115LP</TD><TD>10156</TD><TD>2005-04-05 19:50:25</TD><TD>J91Y010E1</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J91Y010F1</TD><TD>SATURN</TD><TD>112.976479167</TD><TD>21.8310694444</TD><TD>1</TD><TD>2005-02-17 23:13:47</TD><TD>2005-02-17 23:28:08</TD><TD>820.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F140LP;N/A;F140LP</TD><TD>10156</TD><TD>2005-04-05 19:50:30</TD><TD>J91Y010F1</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9DN01011</TD><TD>SATURN1</TD><TD>133.157883333</TD><TD>18.0278805556</TD><TD>4</TD><TD>2005-10-26 16:04:33</TD><TD>2005-10-26 16:47:04</TD><TD>2310.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F125LP;N/A;F125LP</TD><TD>10506</TD><TD>2006-10-26 22:51:32</TD><TD>J9DN01011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9DN02011</TD><TD>SATURN1</TD><TD>133.200095833</TD><TD>18.018675</TD><TD>4</TD><TD>2005-10-27 12:51:32</TD><TD>2005-10-27 13:34:03</TD><TD>2310.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F125LP;N/A;F125LP</TD><TD>10506</TD><TD>2006-10-27 22:52:29</TD><TD>J9DN02011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9DN03011</TD><TD>SATURN1</TD><TD>133.209658333</TD><TD>18.0166</TD><TD>4</TD><TD>2005-10-27 17:39:19</TD><TD>2005-10-27 18:21:50</TD><TD>2310.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F125LP;N/A;F125LP</TD><TD>10506</TD><TD>2006-10-27 22:53:26</TD><TD>J9DN03011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9DN04011</TD><TD>SATURN1</TD><TD>133.247204167</TD><TD>18.0084833333</TD><TD>4</TD><TD>2005-10-28 12:50:23</TD><TD>2005-10-28 13:32:54</TD><TD>2310.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F125LP;N/A;F125LP</TD><TD>10506</TD><TD>2006-10-28 22:40:30</TD><TD>J9DN04011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9DN05011</TD><TD>SATURN1</TD><TD>133.256416667</TD><TD>18.0065</TD><TD>4</TD><TD>2005-10-28 17:38:08</TD><TD>2005-10-28 18:20:39</TD><TD>2310.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F125LP;N/A;F125LP</TD><TD>10506</TD><TD>2006-10-28 22:41:05</TD><TD>J9DN05011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9DN06011</TD><TD>SATURN1</TD><TD>133.289608333</TD><TD>17.9993888889</TD><TD>4</TD><TD>2005-10-29 11:13:16</TD><TD>2005-10-29 11:55:47</TD><TD>2310.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F125LP;N/A;F125LP</TD><TD>10506</TD><TD>2006-10-29 21:12:15</TD><TD>J9DN06011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9DN07011</TD><TD>SATURN1</TD><TD>133.298495833</TD><TD>17.9974916667</TD><TD>4</TD><TD>2005-10-29 16:01:01</TD><TD>2005-10-29 16:43:32</TD><TD>2310.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F125LP;N/A;F125LP</TD><TD>10506</TD><TD>2006-10-29 21:20:43</TD><TD>J9DN07011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9DN08011</TD><TD>SATURN1</TD><TD>133.446454167</TD><TD>17.9666222222</TD><TD>4</TD><TD>2005-11-02 06:20:48</TD><TD>2005-11-02 07:03:19</TD><TD>2310.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F125LP;N/A;F125LP</TD><TD>10506</TD><TD>2006-11-02 14:42:34</TD><TD>J9DN08011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9DN09011</TD><TD>SATURN1</TD><TD>133.453995833</TD><TD>17.9650916667</TD><TD>4</TD><TD>2005-11-02 11:08:34</TD><TD>2005-11-02 11:51:05</TD><TD>2310.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F125LP;N/A;F125LP</TD><TD>10506</TD><TD>2006-11-02 18:57:56</TD><TD>J9DN09011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLS2011</TD><TD>SATURN</TD><TD>146.4249</TD><TD>14.7985888889</TD><TD>25</TD><TD>2007-01-13 07:47:25</TD><TD>2007-01-13 07:58:26</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-01-14 03:44:59</TD><TD>J9RLS2011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLS2021</TD><TD>SATURN</TD><TD>146.424</TD><TD>14.7989388889</TD><TD>25</TD><TD>2007-01-13 07:59:23</TD><TD>2007-01-13 08:19:44</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-01-14 03:48:01</TD><TD>J9RLS2021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLS2031</TD><TD>SATURN</TD><TD>146.423491667</TD><TD>14.7991361111</TD><TD>25</TD><TD>2007-01-13 08:20:41</TD><TD>2007-01-13 08:31:42</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-01-14 03:50:04</TD><TD>J9RLS2031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLS3011</TD><TD>SATURN</TD><TD>146.346933333</TD><TD>14.8288333333</TD><TD>25</TD><TD>2007-01-14 14:09:58</TD><TD>2007-01-14 14:20:59</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-01-14 22:49:40</TD><TD>J9RLS3011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLS3021</TD><TD>SATURN</TD><TD>146.3460125</TD><TD>14.8291888889</TD><TD>25</TD><TD>2007-01-14 14:21:56</TD><TD>2007-01-14 14:42:17</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-01-14 22:52:40</TD><TD>J9RLS3021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLS3031</TD><TD>SATURN</TD><TD>146.345495833</TD><TD>14.8293888889</TD><TD>25</TD><TD>2007-01-14 14:43:14</TD><TD>2007-01-14 14:54:15</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-01-14 22:54:42</TD><TD>J9RLS3031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLS4011</TD><TD>SATURN</TD><TD>146.296729167</TD><TD>14.8482138889</TD><TD>25</TD><TD>2007-01-15 09:20:48</TD><TD>2007-01-15 09:31:49</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-01-16 02:44:32</TD><TD>J9RLS4011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLS4021</TD><TD>SATURN</TD><TD>146.295795833</TD><TD>14.848575</TD><TD>25</TD><TD>2007-01-15 09:32:46</TD><TD>2007-01-15 09:53:07</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-01-16 02:48:06</TD><TD>J9RLS4021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLS4031</TD><TD>SATURN</TD><TD>146.295266667</TD><TD>14.8487777778</TD><TD>25</TD><TD>2007-01-15 09:54:04</TD><TD>2007-01-15 10:05:05</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-01-16 02:49:42</TD><TD>J9RLS4031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLS5011</TD><TD>SATURN</TD><TD>146.241516667</TD><TD>14.86945</TD><TD>25</TD><TD>2007-01-16 06:07:33</TD><TD>2007-01-16 06:18:34</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-01-16 14:05:16</TD><TD>J9RLS5011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLS5021</TD><TD>SATURN</TD><TD>146.240566667</TD><TD>14.8698166667</TD><TD>25</TD><TD>2007-01-16 06:19:31</TD><TD>2007-01-16 06:39:52</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-01-16 14:05:22</TD><TD>J9RLS5021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLS5031</TD><TD>SATURN</TD><TD>146.240029167</TD><TD>14.8700194444</TD><TD>25</TD><TD>2007-01-16 06:40:49</TD><TD>2007-01-16 06:51:50</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-01-16 14:05:30</TD><TD>J9RLS5031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLS6011</TD><TD>SATURN</TD><TD>146.1811125</TD><TD>14.8925888889</TD><TD>25</TD><TD>2007-01-17 04:30:14</TD><TD>2007-01-17 04:41:15</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-01-17 12:52:34</TD><TD>J9RLS6011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLS6021</TD><TD>SATURN</TD><TD>146.18015</TD><TD>14.8929583333</TD><TD>25</TD><TD>2007-01-17 04:42:12</TD><TD>2007-01-17 05:02:33</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-01-17 12:52:40</TD><TD>J9RLS6021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLS6031</TD><TD>SATURN</TD><TD>146.179604167</TD><TD>14.8931666667</TD><TD>25</TD><TD>2007-01-17 05:03:30</TD><TD>2007-01-17 05:14:31</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-01-17 12:52:47</TD><TD>J9RLS6031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLS7011</TD><TD>SATURN</TD><TD>146.115304167</TD><TD>14.9176944444</TD><TD>25</TD><TD>2007-01-18 04:29:57</TD><TD>2007-01-18 04:40:58</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-01-18 10:46:54</TD><TD>J9RLS7011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLS7021</TD><TD>SATURN</TD><TD>146.114320833</TD><TD>14.9180666667</TD><TD>25</TD><TD>2007-01-18 04:41:55</TD><TD>2007-01-18 05:02:16</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-01-18 10:49:57</TD><TD>J9RLS7021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLS7031</TD><TD>SATURN</TD><TD>146.113770833</TD><TD>14.9182777778</TD><TD>25</TD><TD>2007-01-18 05:03:13</TD><TD>2007-01-18 05:14:14</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-01-18 10:52:01</TD><TD>J9RLS7031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLS8011</TD><TD>SATURN</TD><TD>146.0350625</TD><TD>14.9481638889</TD><TD>25</TD><TD>2007-01-19 09:15:20</TD><TD>2007-01-19 09:26:21</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-01-19 17:18:42</TD><TD>J9RLS8011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLS8021</TD><TD>SATURN</TD><TD>146.0340625</TD><TD>14.9485416667</TD><TD>25</TD><TD>2007-01-19 09:27:18</TD><TD>2007-01-19 09:47:39</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-01-19 17:21:15</TD><TD>J9RLS8021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLS8031</TD><TD>SATURN</TD><TD>146.0335</TD><TD>14.9487555556</TD><TD>25</TD><TD>2007-01-19 09:48:36</TD><TD>2007-01-19 09:59:37</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-01-19 17:23:19</TD><TD>J9RLS8031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLS9011</TD><TD>SATURN</TD><TD>145.985279167</TD><TD>14.9669916667</TD><TD>25</TD><TD>2007-01-20 02:50:22</TD><TD>2007-01-20 03:01:23</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-01-20 11:03:04</TD><TD>J9RLS9011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLS9021</TD><TD>SATURN</TD><TD>145.984270833</TD><TD>14.9673722222</TD><TD>25</TD><TD>2007-01-20 03:02:20</TD><TD>2007-01-20 03:22:41</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-01-20 11:06:09</TD><TD>J9RLS9021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLS9031</TD><TD>SATURN</TD><TD>145.983704167</TD><TD>14.9675888889</TD><TD>25</TD><TD>2007-01-20 03:23:38</TD><TD>2007-01-20 03:34:39</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-01-20 11:08:10</TD><TD>J9RLS9031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLT0011</TD><TD>SATURN</TD><TD>145.916558333</TD><TD>14.9928916667</TD><TD>25</TD><TD>2007-01-21 02:49:07</TD><TD>2007-01-21 03:00:08</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-01-21 18:40:33</TD><TD>J9RLT0011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLT0021</TD><TD>SATURN</TD><TD>145.9155375</TD><TD>14.9932777778</TD><TD>25</TD><TD>2007-01-21 03:01:05</TD><TD>2007-01-21 03:21:26</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-01-21 18:44:07</TD><TD>J9RLT0021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLT0031</TD><TD>SATURN</TD><TD>145.914958333</TD><TD>14.9934944444</TD><TD>25</TD><TD>2007-01-21 03:22:23</TD><TD>2007-01-21 03:33:24</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-01-21 18:45:40</TD><TD>J9RLT0031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLT1011</TD><TD>SATURN</TD><TD>145.856245833</TD><TD>15.0155388889</TD><TD>25</TD><TD>2007-01-21 23:36:03</TD><TD>2007-01-21 23:47:04</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-01-22 04:20:32</TD><TD>J9RLT1011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLT1021</TD><TD>SATURN</TD><TD>145.8552125</TD><TD>15.0159277778</TD><TD>25</TD><TD>2007-01-21 23:48:01</TD><TD>2007-01-22 00:08:22</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-01-22 04:23:32</TD><TD>J9RLT1021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLT1031</TD><TD>SATURN</TD><TD>145.854629167</TD><TD>15.0161472222</TD><TD>25</TD><TD>2007-01-22 00:09:19</TD><TD>2007-01-22 00:20:20</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-01-22 04:26:06</TD><TD>J9RLT1031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLT2011</TD><TD>SATURN</TD><TD>145.771633333</TD><TD>15.0471833333</TD><TD>25</TD><TD>2007-01-23 04:22:36</TD><TD>2007-01-23 04:33:37</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-01-23 07:20:36</TD><TD>J9RLT2011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLT2021</TD><TD>SATURN</TD><TD>145.770579167</TD><TD>15.047575</TD><TD>25</TD><TD>2007-01-23 04:34:34</TD><TD>2007-01-23 04:54:55</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-01-23 07:23:38</TD><TD>J9RLT2021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLT2031</TD><TD>SATURN</TD><TD>145.7699875</TD><TD>15.0477944444</TD><TD>25</TD><TD>2007-01-23 04:55:52</TD><TD>2007-01-23 05:06:53</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-01-23 07:25:39</TD><TD>J9RLT2031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLT3011</TD><TD>SATURN</TD><TD>145.714475</TD><TD>15.068475</TD><TD>25</TD><TD>2007-01-23 23:34:59</TD><TD>2007-01-23 23:46:00</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-01-24 13:41:17</TD><TD>J9RLT3011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLT3021</TD><TD>SATURN</TD><TD>145.7134125</TD><TD>15.0688694444</TD><TD>25</TD><TD>2007-01-23 23:46:57</TD><TD>2007-01-24 00:07:18</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-01-24 14:29:06</TD><TD>J9RLT3021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLT3031</TD><TD>SATURN</TD><TD>145.712816667</TD><TD>15.0690916667</TD><TD>25</TD><TD>2007-01-24 00:08:15</TD><TD>2007-01-24 00:19:16</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-01-24 14:31:08</TD><TD>J9RLT3031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLT3041</TD><TD>SATURN</TD><TD>145.70975</TD><TD>15.0702305556</TD><TD>25</TD><TD>2007-01-24 01:09:45</TD><TD>2007-01-24 01:20:46</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F140LP;N/A;F140LP</TD><TD>10862</TD><TD>2007-01-24 13:43:27</TD><TD>J9RLT3041</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLT3051</TD><TD>SATURN</TD><TD>145.708683333</TD><TD>15.0706277778</TD><TD>25</TD><TD>2007-01-24 01:21:53</TD><TD>2007-01-24 01:42:14</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-01-24 13:45:57</TD><TD>J9RLT3051</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLT3061</TD><TD>SATURN</TD><TD>145.708075</TD><TD>15.0708527778</TD><TD>25</TD><TD>2007-01-24 01:43:20</TD><TD>2007-01-24 01:54:21</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F140LP;N/A;F140LP</TD><TD>10862</TD><TD>2007-01-24 13:47:59</TD><TD>J9RLT3061</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLT3071</TD><TD>SATURN</TD><TD>145.704966667</TD><TD>15.0720083333</TD><TD>25</TD><TD>2007-01-24 02:45:41</TD><TD>2007-01-24 02:56:42</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-01-24 13:50:00</TD><TD>J9RLT3071</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLT3081</TD><TD>SATURN</TD><TD>145.703904167</TD><TD>15.0724055556</TD><TD>25</TD><TD>2007-01-24 02:57:39</TD><TD>2007-01-24 03:18:00</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-01-24 13:53:07</TD><TD>J9RLT3081</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLT3091</TD><TD>SATURN</TD><TD>145.703304167</TD><TD>15.0726277778</TD><TD>25</TD><TD>2007-01-24 03:18:57</TD><TD>2007-01-24 03:29:58</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-01-24 13:54:44</TD><TD>J9RLT3091</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLT30A1</TD><TD>SATURN</TD><TD>145.700179167</TD><TD>15.0737888889</TD><TD>25</TD><TD>2007-01-24 04:21:35</TD><TD>2007-01-24 04:32:36</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F140LP;N/A;F140LP</TD><TD>10862</TD><TD>2007-01-24 13:56:42</TD><TD>J9RLT30A1</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLT30B1</TD><TD>SATURN</TD><TD>145.699108333</TD><TD>15.0741888889</TD><TD>25</TD><TD>2007-01-24 04:33:43</TD><TD>2007-01-24 04:54:04</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-01-24 13:59:47</TD><TD>J9RLT30B1</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLT30C1</TD><TD>SATURN</TD><TD>145.6985</TD><TD>15.0744138889</TD><TD>25</TD><TD>2007-01-24 04:55:10</TD><TD>2007-01-24 05:06:11</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F140LP;N/A;F140LP</TD><TD>10862</TD><TD>2007-01-24 14:01:50</TD><TD>J9RLT30C1</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLT30D1</TD><TD>SATURN</TD><TD>145.6953875</TD><TD>15.0755694444</TD><TD>25</TD><TD>2007-01-24 05:57:32</TD><TD>2007-01-24 06:08:33</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-01-24 14:04:23</TD><TD>J9RLT30D1</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLT30E1</TD><TD>SATURN</TD><TD>145.694320833</TD><TD>15.0759666667</TD><TD>25</TD><TD>2007-01-24 06:09:30</TD><TD>2007-01-24 06:29:51</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-01-24 14:07:26</TD><TD>J9RLT30E1</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLT30F1</TD><TD>SATURN</TD><TD>145.693720833</TD><TD>15.0761888889</TD><TD>25</TD><TD>2007-01-24 06:30:48</TD><TD>2007-01-24 06:41:49</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-01-24 14:33:10</TD><TD>J9RLT30F1</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLT4011</TD><TD>SATURN</TD><TD>145.632758333</TD><TD>15.0988</TD><TD>25</TD><TD>2007-01-25 02:44:43</TD><TD>2007-01-25 02:55:44</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-01-25 12:36:25</TD><TD>J9RLT4011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLT4021</TD><TD>SATURN</TD><TD>145.631683333</TD><TD>15.0992</TD><TD>25</TD><TD>2007-01-25 02:56:41</TD><TD>2007-01-25 03:17:02</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-01-25 12:40:28</TD><TD>J9RLT4021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLT4031</TD><TD>SATURN</TD><TD>145.631079167</TD><TD>15.0994222222</TD><TD>25</TD><TD>2007-01-25 03:17:59</TD><TD>2007-01-25 03:29:00</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-01-25 12:47:31</TD><TD>J9RLT4031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLT5011</TD><TD>SATURN</TD><TD>145.574470833</TD><TD>15.1203527778</TD><TD>25</TD><TD>2007-01-25 21:55:22</TD><TD>2007-01-25 22:06:23</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-01-26 09:38:50</TD><TD>J9RLT5011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLT5021</TD><TD>SATURN</TD><TD>145.5733875</TD><TD>15.1207527778</TD><TD>25</TD><TD>2007-01-25 22:07:20</TD><TD>2007-01-25 22:27:41</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-01-26 09:42:24</TD><TD>J9RLT5021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLT5031</TD><TD>SATURN</TD><TD>145.572779167</TD><TD>15.1209777778</TD><TD>25</TD><TD>2007-01-25 22:28:38</TD><TD>2007-01-25 22:39:39</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-01-26 09:44:25</TD><TD>J9RLT5031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLT6011</TD><TD>SATURN</TD><TD>145.505858333</TD><TD>15.1456416667</TD><TD>25</TD><TD>2007-01-26 20:18:16</TD><TD>2007-01-26 20:29:17</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-01-27 08:43:48</TD><TD>J9RLT6011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLT6021</TD><TD>SATURN</TD><TD>145.504766667</TD><TD>15.1460444444</TD><TD>25</TD><TD>2007-01-26 20:30:14</TD><TD>2007-01-26 20:50:35</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-01-27 08:47:21</TD><TD>J9RLT6021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLT6031</TD><TD>SATURN</TD><TD>145.504154167</TD><TD>15.1462694444</TD><TD>25</TD><TD>2007-01-26 20:51:32</TD><TD>2007-01-26 21:02:33</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-01-27 08:48:52</TD><TD>J9RLT6031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U9RLU901M</TD><TD>SATURN</TD><TD>144.41945</TD><TD>15.5252277778</TD><TD>25</TD><TD>2007-02-09 15:11:16</TD><TD>2007-02-09 15:12:16</TD><TD>60.000</TD><TD>WFPC2 </TD><TD>FQCH4W3</TD><TD>FQCH4N</TD><TD>10862</TD><TD>2007-02-10 04:21:49</TD><TD>U9RLU901M</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U9RLU902M</TD><TD>SATURN</TD><TD>144.4252</TD><TD>15.5265583333</TD><TD>25</TD><TD>2007-02-09 15:18:16</TD><TD>2007-02-09 15:34:56</TD><TD>1000.000</TD><TD>WFPC2 </TD><TD>F160BN15;F160BN15</TD><TD>F160BN15</TD><TD>10862</TD><TD>2007-02-10 04:23:36</TD><TD>U9RLU902M</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U9RLU903M</TD><TD>SATURN</TD><TD>144.424154167</TD><TD>15.5269277778</TD><TD>25</TD><TD>2007-02-09 15:37:16</TD><TD>2007-02-09 15:53:56</TD><TD>1000.000</TD><TD>WFPC2 </TD><TD>F160BN15;F160BN15</TD><TD>F160BN15</TD><TD>10862</TD><TD>2007-02-10 04:25:07</TD><TD>U9RLU903M</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U9RLV001M</TD><TD>SATURN</TD><TD>144.360079167</TD><TD>15.5349611111</TD><TD>25</TD><TD>2007-02-10 13:34:16</TD><TD>2007-02-10 13:35:16</TD><TD>60.000</TD><TD>WFPC2 </TD><TD>FQCH4W3</TD><TD>FQCH4N</TD><TD>10862</TD><TD>2007-02-11 02:15:52</TD><TD>U9RLV001M</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U9RLV002M</TD><TD>SATURN</TD><TD>144.361058333</TD><TD>15.5418722222</TD><TD>25</TD><TD>2007-02-10 13:41:16</TD><TD>2007-02-10 13:57:56</TD><TD>1000.000</TD><TD>WFPC2 </TD><TD>F160BN15;F160BN15</TD><TD>F160BN15</TD><TD>10862</TD><TD>2007-02-11 02:17:27</TD><TD>U9RLV002M</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U9RLV003M</TD><TD>SATURN</TD><TD>144.3600125</TD><TD>15.5422388889</TD><TD>25</TD><TD>2007-02-10 14:00:16</TD><TD>2007-02-10 14:16:56</TD><TD>1000.000</TD><TD>WFPC2 </TD><TD>F160BN15;F160BN15</TD><TD>F160BN15</TD><TD>10862</TD><TD>2007-02-11 02:18:27</TD><TD>U9RLV003M</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U9RLV101M</TD><TD>SATURN</TD><TD>144.276770833</TD><TD>15.5642222222</TD><TD>25</TD><TD>2007-02-11 15:09:16</TD><TD>2007-02-11 15:10:16</TD><TD>60.000</TD><TD>WFPC2 </TD><TD>FQCH4W3</TD><TD>FQCH4N</TD><TD>10862</TD><TD>2007-02-11 17:20:51</TD><TD>U9RLV101M</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U9RLV102M</TD><TD>SATURN</TD><TD>144.277275</TD><TD>15.5712694444</TD><TD>25</TD><TD>2007-02-11 15:16:16</TD><TD>2007-02-11 15:32:56</TD><TD>1000.000</TD><TD>WFPC2 </TD><TD>F160BN15;F160BN15</TD><TD>F160BN15</TD><TD>10862</TD><TD>2007-02-11 17:22:23</TD><TD>U9RLV102M</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U9RLV103M</TD><TD>SATURN</TD><TD>144.276229167</TD><TD>15.5716333333</TD><TD>25</TD><TD>2007-02-11 15:35:16</TD><TD>2007-02-11 15:51:56</TD><TD>1000.000</TD><TD>WFPC2 </TD><TD>F160BN15;F160BN15</TD><TD>F160BN15</TD><TD>10862</TD><TD>2007-02-11 21:08:38</TD><TD>U9RLV103M</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLB0011</TD><TD>JUPITER-SOUTH-B0</TD><TD>255.693183333</TD><TD>-22.0837583333</TD><TD>25</TD><TD>2007-02-20 15:22:52</TD><TD>2007-02-20 15:33:53</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-02-20 22:36:29</TD><TD>J9RLB0011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLB0021</TD><TD>JUPITER-SOUTH-B0</TD><TD>255.695166667</TD><TD>-22.0839305556</TD><TD>25</TD><TD>2007-02-20 15:34:50</TD><TD>2007-02-20 15:55:11</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-02-20 22:40:38</TD><TD>J9RLB0021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLB0031</TD><TD>JUPITER-SOUTH-B0</TD><TD>255.696283333</TD><TD>-22.0840277778</TD><TD>25</TD><TD>2007-02-20 15:56:08</TD><TD>2007-02-20 16:07:09</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-02-20 22:44:40</TD><TD>J9RLB0031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLB1011</TD><TD>JUPITER-NORTH-B1</TD><TD>255.828433333</TD><TD>-22.0833111111</TD><TD>25</TD><TD>2007-02-21 15:21:22</TD><TD>2007-02-21 15:32:23</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-02-21 22:14:39</TD><TD>J9RLB1011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLB1021</TD><TD>JUPITER-NORTH-B1</TD><TD>255.830379167</TD><TD>-22.0834805556</TD><TD>25</TD><TD>2007-02-21 15:33:20</TD><TD>2007-02-21 15:53:41</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-02-21 22:18:42</TD><TD>J9RLB1021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLB1031</TD><TD>JUPITER-NORTH-B1</TD><TD>255.831470833</TD><TD>-22.083575</TD><TD>25</TD><TD>2007-02-21 15:54:38</TD><TD>2007-02-21 16:05:39</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-02-21 22:39:28</TD><TD>J9RLB1031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLB2011</TD><TD>JUPITER-NORTH-B2-B6</TD><TD>255.932379167</TD><TD>-22.0922194444</TD><TD>25</TD><TD>2007-02-22 10:32:10</TD><TD>2007-02-22 10:43:11</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-02-23 13:48:26</TD><TD>J9RLB2011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLB2021</TD><TD>JUPITER-NORTH-B2-B6</TD><TD>255.934295833</TD><TD>-22.0923833333</TD><TD>25</TD><TD>2007-02-22 10:44:08</TD><TD>2007-02-22 11:04:29</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-02-23 13:51:59</TD><TD>J9RLB2021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLB2031</TD><TD>JUPITER-NORTH-B2-B6</TD><TD>255.935375</TD><TD>-22.092475</TD><TD>25</TD><TD>2007-02-22 11:05:26</TD><TD>2007-02-22 11:16:27</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-02-23 13:53:33</TD><TD>J9RLB2031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLB3011</TD><TD>JUPITER-NORTH-B3</TD><TD>256.0528125</TD><TD>-22.1025444444</TD><TD>25</TD><TD>2007-02-23 08:55:53</TD><TD>2007-02-23 09:06:54</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-02-23 22:46:37</TD><TD>J9RLB3011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLB3021</TD><TD>JUPITER-NORTH-B3</TD><TD>256.054691667</TD><TD>-22.1027027778</TD><TD>25</TD><TD>2007-02-23 09:07:51</TD><TD>2007-02-23 09:28:12</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-02-23 22:50:12</TD><TD>J9RLB3021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLB3031</TD><TD>JUPITER-NORTH-B3</TD><TD>256.05575</TD><TD>-22.1027916667</TD><TD>25</TD><TD>2007-02-23 09:29:09</TD><TD>2007-02-23 09:40:10</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-02-23 22:52:16</TD><TD>J9RLB3031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLB4011</TD><TD>JUPITER-SOUTH-B4</TD><TD>256.176404167</TD><TD>-22.1251611111</TD><TD>25</TD><TD>2007-02-24 08:57:14</TD><TD>2007-02-24 09:08:15</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-02-24 15:51:09</TD><TD>J9RLB4011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLB4021</TD><TD>JUPITER-SOUTH-B4</TD><TD>256.178245833</TD><TD>-22.1253138889</TD><TD>25</TD><TD>2007-02-24 09:09:12</TD><TD>2007-02-24 09:29:33</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-02-24 15:58:13</TD><TD>J9RLB4021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLB4031</TD><TD>JUPITER-SOUTH-B4</TD><TD>256.179283333</TD><TD>-22.1254027778</TD><TD>25</TD><TD>2007-02-24 09:30:30</TD><TD>2007-02-24 09:41:31</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-02-24 16:00:12</TD><TD>J9RLB4031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLB4041</TD><TD>JUPITER-SOUTH-B4</TD><TD>256.184479167</TD><TD>-22.1258361111</TD><TD>25</TD><TD>2007-02-24 10:30:33</TD><TD>2007-02-24 10:41:34</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-02-24 16:02:18</TD><TD>J9RLB4041</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLB4051</TD><TD>JUPITER-SOUTH-B4</TD><TD>256.186320833</TD><TD>-22.1259916667</TD><TD>25</TD><TD>2007-02-24 10:42:31</TD><TD>2007-02-24 11:02:52</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-02-24 16:06:19</TD><TD>J9RLB4051</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLB4061</TD><TD>JUPITER-SOUTH-B4</TD><TD>256.187354167</TD><TD>-22.1260777778</TD><TD>25</TD><TD>2007-02-24 11:03:49</TD><TD>2007-02-24 11:14:50</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-02-24 16:07:48</TD><TD>J9RLB4061</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLB4071</TD><TD>JUPITER-SOUTH-B4</TD><TD>256.192770833</TD><TD>-22.1265305556</TD><TD>25</TD><TD>2007-02-24 12:06:30</TD><TD>2007-02-24 12:17:31</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-02-24 16:09:49</TD><TD>J9RLB4071</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLB4081</TD><TD>JUPITER-SOUTH-B4</TD><TD>256.194608333</TD><TD>-22.1266861111</TD><TD>25</TD><TD>2007-02-24 12:18:28</TD><TD>2007-02-24 12:38:49</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-02-24 16:13:52</TD><TD>J9RLB4081</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLG4011</TD><TD>JUPITER-NORTH-B4</TD><TD>256.197595833</TD><TD>-22.1146777778</TD><TD>25</TD><TD>2007-02-24 12:41:08</TD><TD>2007-02-24 12:52:09</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-02-24 16:15:25</TD><TD>J9RLG4011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLG4021</TD><TD>JUPITER-NORTH-B4</TD><TD>256.2028875</TD><TD>-22.1151194444</TD><TD>25</TD><TD>2007-02-24 13:42:27</TD><TD>2007-02-24 13:53:28</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-02-24 16:17:23</TD><TD>J9RLG4021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLG4031</TD><TD>JUPITER-NORTH-B4</TD><TD>256.204725</TD><TD>-22.115275</TD><TD>25</TD><TD>2007-02-24 13:54:25</TD><TD>2007-02-24 14:14:46</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-02-24 16:21:28</TD><TD>J9RLG4031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLG4041</TD><TD>JUPITER-NORTH-B4</TD><TD>256.205758333</TD><TD>-22.1153611111</TD><TD>25</TD><TD>2007-02-24 14:15:43</TD><TD>2007-02-24 14:26:44</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-02-24 21:16:35</TD><TD>J9RLG4041</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLG4051</TD><TD>JUPITER-NORTH-B4</TD><TD>256.211158333</TD><TD>-22.1158111111</TD><TD>25</TD><TD>2007-02-24 15:18:24</TD><TD>2007-02-24 15:29:25</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-02-24 21:18:40</TD><TD>J9RLG4051</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLG4061</TD><TD>JUPITER-NORTH-B4</TD><TD>256.212991667</TD><TD>-22.1159638889</TD><TD>25</TD><TD>2007-02-24 15:30:22</TD><TD>2007-02-24 15:50:43</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-02-24 21:24:39</TD><TD>J9RLG4061</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLG4071</TD><TD>JUPITER-NORTH-B4</TD><TD>256.214020833</TD><TD>-22.11605</TD><TD>25</TD><TD>2007-02-24 15:51:40</TD><TD>2007-02-24 16:02:41</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-02-24 21:26:42</TD><TD>J9RLG4071</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLB5011</TD><TD>JUPITER-NORTH-B5</TD><TD>256.2931</TD><TD>-22.1226333333</TD><TD>25</TD><TD>2007-02-25 07:17:43</TD><TD>2007-02-25 07:28:44</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-02-25 17:55:51</TD><TD>J9RLB5011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLB5021</TD><TD>JUPITER-NORTH-B5</TD><TD>256.294908333</TD><TD>-22.1227833333</TD><TD>25</TD><TD>2007-02-25 07:29:41</TD><TD>2007-02-25 07:50:02</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-02-25 17:58:56</TD><TD>J9RLB5021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLB5031</TD><TD>JUPITER-NORTH-B5</TD><TD>256.295925</TD><TD>-22.1228666667</TD><TD>25</TD><TD>2007-02-25 07:50:59</TD><TD>2007-02-25 08:02:00</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-02-25 18:00:58</TD><TD>J9RLB5031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLB6011</TD><TD>JUPITER-NORTH-B2-B6</TD><TD>256.454008333</TD><TD>-22.1358972222</TD><TD>25</TD><TD>2007-02-26 15:16:47</TD><TD>2007-02-26 15:27:48</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-02-27 08:00:06</TD><TD>J9RLB6011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLB6021</TD><TD>JUPITER-NORTH-B2-B6</TD><TD>256.455766667</TD><TD>-22.1360416667</TD><TD>25</TD><TD>2007-02-26 15:28:45</TD><TD>2007-02-26 15:49:06</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-02-27 08:04:11</TD><TD>J9RLB6021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLB6031</TD><TD>JUPITER-NORTH-B2-B6</TD><TD>256.456754167</TD><TD>-22.1361222222</TD><TD>25</TD><TD>2007-02-26 15:50:03</TD><TD>2007-02-26 16:01:04</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-02-27 08:06:10</TD><TD>J9RLB6031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLB7011</TD><TD>JUPITER-SOUTH-B7</TD><TD>256.522958333</TD><TD>-22.1537555556</TD><TD>25</TD><TD>2007-02-27 05:43:04</TD><TD>2007-02-27 05:54:05</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-02-27 20:37:50</TD><TD>J9RLB7011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLB7021</TD><TD>JUPITER-SOUTH-B7</TD><TD>256.524691667</TD><TD>-22.1538972222</TD><TD>25</TD><TD>2007-02-27 05:55:02</TD><TD>2007-02-27 06:15:23</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-02-27 20:44:51</TD><TD>J9RLB7021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLB7031</TD><TD>JUPITER-SOUTH-B7</TD><TD>256.525666667</TD><TD>-22.153975</TD><TD>25</TD><TD>2007-02-27 06:16:20</TD><TD>2007-02-27 06:27:21</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-02-27 20:47:56</TD><TD>J9RLB7031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLB7041</TD><TD>JUPITER-SOUTH-B7</TD><TD>256.530525</TD><TD>-22.1543694444</TD><TD>25</TD><TD>2007-02-27 07:16:04</TD><TD>2007-02-27 07:27:05</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-02-27 20:50:54</TD><TD>J9RLB7041</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLB7051</TD><TD>JUPITER-SOUTH-B7</TD><TD>256.532254167</TD><TD>-22.1545111111</TD><TD>25</TD><TD>2007-02-27 07:28:02</TD><TD>2007-02-27 07:48:23</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-02-27 20:56:13</TD><TD>J9RLB7051</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLB7061</TD><TD>JUPITER-SOUTH-B7</TD><TD>256.533229167</TD><TD>-22.1545888889</TD><TD>25</TD><TD>2007-02-27 07:49:20</TD><TD>2007-02-27 08:00:21</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-02-27 20:59:06</TD><TD>J9RLB7061</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLB7071</TD><TD>JUPITER-SOUTH-B7</TD><TD>256.538316667</TD><TD>-22.1550027778</TD><TD>25</TD><TD>2007-02-27 08:52:00</TD><TD>2007-02-27 09:03:01</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-02-27 21:02:15</TD><TD>J9RLB7071</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLB7081</TD><TD>JUPITER-SOUTH-B7</TD><TD>256.540045833</TD><TD>-22.1551416667</TD><TD>25</TD><TD>2007-02-27 09:03:58</TD><TD>2007-02-27 09:24:19</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-02-27 21:06:37</TD><TD>J9RLB7081</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLB7091</TD><TD>JUPITER-SOUTH-B7</TD><TD>256.541016667</TD><TD>-22.1552222222</TD><TD>25</TD><TD>2007-02-27 09:25:16</TD><TD>2007-02-27 09:36:17</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-02-27 21:09:11</TD><TD>J9RLB7091</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLG7011</TD><TD>JUPITER-NORTH-B7</TD><TD>256.5482375</TD><TD>-22.1435666667</TD><TD>25</TD><TD>2007-02-27 10:28:50</TD><TD>2007-02-27 10:39:51</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-02-27 21:11:45</TD><TD>J9RLG7011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLG7021</TD><TD>JUPITER-NORTH-B7</TD><TD>256.5499625</TD><TD>-22.1437055556</TD><TD>25</TD><TD>2007-02-27 10:40:48</TD><TD>2007-02-27 11:01:09</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-02-27 21:15:19</TD><TD>J9RLG7021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLG7031</TD><TD>JUPITER-NORTH-B7</TD><TD>256.550933333</TD><TD>-22.1437833333</TD><TD>25</TD><TD>2007-02-27 11:02:06</TD><TD>2007-02-27 11:13:07</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-02-27 21:17:49</TD><TD>J9RLG7031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLBX011</TD><TD>JUPITER-NORTH-B7</TD><TD>256.563683333</TD><TD>-22.1448166667</TD><TD>25</TD><TD>2007-02-27 13:39:42</TD><TD>2007-02-27 13:50:43</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-02-27 21:38:08</TD><TD>J9RLBX011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLBX021</TD><TD>JUPITER-NORTH-B7</TD><TD>256.565404167</TD><TD>-22.1449555556</TD><TD>25</TD><TD>2007-02-27 13:51:40</TD><TD>2007-02-27 14:12:01</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-02-27 21:43:08</TD><TD>J9RLBX021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLBX031</TD><TD>JUPITER-NORTH-B7</TD><TD>256.566370833</TD><TD>-22.1450333333</TD><TD>25</TD><TD>2007-02-27 14:12:58</TD><TD>2007-02-27 14:23:59</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-02-27 21:46:42</TD><TD>J9RLBX031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLB8011</TD><TD>JUPITER-NORTH-B8</TD><TD>256.642345833</TD><TD>-22.150925</TD><TD>25</TD><TD>2007-02-28 05:38:48</TD><TD>2007-02-28 06:04:01</TD><TD>510.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-02-28 21:47:07</TD><TD>J9RLB8011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLB8021</TD><TD>JUPITER-NORTH-B8</TD><TD>256.6437375</TD><TD>-22.1510388889</TD><TD>25</TD><TD>2007-02-28 06:04:40</TD><TD>2007-02-28 06:21:31</TD><TD>450.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-02-28 21:55:16</TD><TD>J9RLB8021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLB9011</TD><TD>JUPITER-NORTH-B9</TD><TD>256.783195833</TD><TD>-22.1620944444</TD><TD>25</TD><TD>2007-03-01 12:01:19</TD><TD>2007-03-01 12:12:20</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-03-01 15:16:27</TD><TD>J9RLB9011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLB9021</TD><TD>JUPITER-NORTH-B9</TD><TD>256.784841667</TD><TD>-22.1622222222</TD><TD>25</TD><TD>2007-03-01 12:13:17</TD><TD>2007-03-01 12:33:38</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-03-01 15:20:01</TD><TD>J9RLB9021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLB9031</TD><TD>JUPITER-NORTH-B9</TD><TD>256.785766667</TD><TD>-22.1622972222</TD><TD>25</TD><TD>2007-03-01 12:34:35</TD><TD>2007-03-01 12:45:36</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-03-01 15:23:42</TD><TD>J9RLB9031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLC0011</TD><TD>JUPITER-NORTH-C0</TD><TD>256.871591667</TD><TD>-22.169075</TD><TD>25</TD><TD>2007-03-02 07:12:29</TD><TD>2007-03-02 07:23:30</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-03-03 03:39:45</TD><TD>J9RLC0011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLC0021</TD><TD>JUPITER-NORTH-C0</TD><TD>256.873204167</TD><TD>-22.1692027778</TD><TD>25</TD><TD>2007-03-02 07:24:27</TD><TD>2007-03-02 07:44:48</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-03-03 03:42:44</TD><TD>J9RLC0021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLC0031</TD><TD>JUPITER-NORTH-C0</TD><TD>256.8741125</TD><TD>-22.1692722222</TD><TD>25</TD><TD>2007-03-02 07:45:45</TD><TD>2007-03-02 07:56:46</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-03-03 03:44:45</TD><TD>J9RLC0031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLI5011</TD><TD>IO-NS-C3A-NORTH-2CO</TD><TD>256.879625</TD><TD>-22.1699694444</TD><TD>25</TD><TD>2007-03-02 08:48:29</TD><TD>2007-03-02 09:13:42</TD><TD>510.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-03-03 03:50:18</TD><TD>J9RLI5011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLJ5011</TD><TD>IO-NS-C3A-SOUTH-2CO</TD><TD>256.879695833</TD><TD>-22.1822388889</TD><TD>25</TD><TD>2007-03-02 09:16:01</TD><TD>2007-03-02 09:32:52</TD><TD>450.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-03-03 03:54:18</TD><TD>J9RLJ5011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLC1011</TD><TD>JUPITER-NORTH-C0</TD><TD>256.965395833</TD><TD>-22.1764</TD><TD>25</TD><TD>2007-03-03 04:05:01</TD><TD>2007-03-03 04:16:02</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-03-03 15:00:06</TD><TD>J9RLC1011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLC1021</TD><TD>JUPITER-NORTH-C0</TD><TD>256.966975</TD><TD>-22.1765222222</TD><TD>25</TD><TD>2007-03-03 04:16:59</TD><TD>2007-03-03 04:37:20</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-03-03 15:08:15</TD><TD>J9RLC1021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLC1031</TD><TD>JUPITER-NORTH-C0</TD><TD>256.967858333</TD><TD>-22.1765888889</TD><TD>25</TD><TD>2007-03-03 04:38:17</TD><TD>2007-03-03 04:49:18</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-03-03 15:10:59</TD><TD>J9RLC1031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLC1041</TD><TD>JUPITER-NORTH-C0</TD><TD>256.972125</TD><TD>-22.1769222222</TD><TD>25</TD><TD>2007-03-03 05:35:56</TD><TD>2007-03-03 05:46:57</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-03-03 15:13:51</TD><TD>J9RLC1041</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLC1051</TD><TD>JUPITER-NORTH-C0</TD><TD>256.9737</TD><TD>-22.1770444444</TD><TD>25</TD><TD>2007-03-03 05:47:54</TD><TD>2007-03-03 06:08:15</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-03-03 15:17:25</TD><TD>J9RLC1051</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLC1061</TD><TD>JUPITER-NORTH-C0</TD><TD>256.974583333</TD><TD>-22.1771111111</TD><TD>25</TD><TD>2007-03-03 06:09:12</TD><TD>2007-03-03 06:20:13</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-03-03 15:19:28</TD><TD>J9RLC1061</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLCX011</TD><TD>JUPITER-SOUTH-C1</TD><TD>256.984391667</TD><TD>-22.1906527778</TD><TD>25</TD><TD>2007-03-03 08:52:59</TD><TD>2007-03-03 09:04:00</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-03-03 15:22:03</TD><TD>J9RLCX011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLCX021</TD><TD>JUPITER-SOUTH-C1</TD><TD>256.985958333</TD><TD>-22.190775</TD><TD>25</TD><TD>2007-03-03 09:04:57</TD><TD>2007-03-03 09:25:18</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-03-03 15:24:32</TD><TD>J9RLCX021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLCX031</TD><TD>JUPITER-SOUTH-C1</TD><TD>256.986841667</TD><TD>-22.1908416667</TD><TD>25</TD><TD>2007-03-03 09:26:15</TD><TD>2007-03-03 09:37:16</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-03-04 17:46:09</TD><TD>J9RLCX031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLCX041</TD><TD>JUPITER-SOUTH-C1</TD><TD>256.991079167</TD><TD>-22.1911722222</TD><TD>25</TD><TD>2007-03-03 10:23:52</TD><TD>2007-03-03 10:34:53</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-03-04 17:48:29</TD><TD>J9RLCX041</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLCX051</TD><TD>JUPITER-SOUTH-C1</TD><TD>256.992645833</TD><TD>-22.1912916667</TD><TD>25</TD><TD>2007-03-03 10:35:50</TD><TD>2007-03-03 10:56:11</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-03-04 17:53:21</TD><TD>J9RLCX051</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLCX061</TD><TD>JUPITER-SOUTH-C1</TD><TD>256.993525</TD><TD>-22.1913611111</TD><TD>25</TD><TD>2007-03-03 10:57:08</TD><TD>2007-03-03 11:08:09</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-03-04 17:55:27</TD><TD>J9RLCX061</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLCX071</TD><TD>JUPITER-SOUTH-C1</TD><TD>256.998133333</TD><TD>-22.1917166667</TD><TD>25</TD><TD>2007-03-03 11:59:51</TD><TD>2007-03-03 12:10:52</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-03-04 17:57:27</TD><TD>J9RLCX071</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLCX081</TD><TD>JUPITER-SOUTH-C1</TD><TD>256.9997</TD><TD>-22.1918388889</TD><TD>25</TD><TD>2007-03-03 12:11:49</TD><TD>2007-03-03 12:32:10</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-03-04 18:00:31</TD><TD>J9RLCX081</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLCX091</TD><TD>JUPITER-SOUTH-C1</TD><TD>257.000575</TD><TD>-22.1919055556</TD><TD>25</TD><TD>2007-03-03 12:33:07</TD><TD>2007-03-03 12:44:08</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-03-04 18:02:34</TD><TD>J9RLCX091</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLC2011</TD><TD>JUPITER-NORTH-C0</TD><TD>257.097883333</TD><TD>-22.1866194444</TD><TD>25</TD><TD>2007-03-04 10:23:41</TD><TD>2007-03-04 10:34:42</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-03-04 20:02:22</TD><TD>J9RLC2011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLC2021</TD><TD>JUPITER-NORTH-C0</TD><TD>257.0994125</TD><TD>-22.1867361111</TD><TD>25</TD><TD>2007-03-04 10:35:39</TD><TD>2007-03-04 10:56:00</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-03-04 20:05:22</TD><TD>J9RLC2021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLC2031</TD><TD>JUPITER-NORTH-C0</TD><TD>257.100266667</TD><TD>-22.1868027778</TD><TD>25</TD><TD>2007-03-04 10:56:57</TD><TD>2007-03-04 11:07:58</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-03-04 20:07:24</TD><TD>J9RLC2031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLC3011</TD><TD>JUPITER-NORTH-C0</TD><TD>257.1794875</TD><TD>-22.1928416667</TD><TD>25</TD><TD>2007-03-05 05:35:23</TD><TD>2007-03-05 05:46:24</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-03-05 17:37:12</TD><TD>J9RLC3011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLC3021</TD><TD>JUPITER-NORTH-C0</TD><TD>257.180979167</TD><TD>-22.1929527778</TD><TD>25</TD><TD>2007-03-05 05:47:21</TD><TD>2007-03-05 06:07:42</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-03-05 17:44:26</TD><TD>J9RLC3021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLC3031</TD><TD>JUPITER-NORTH-C0</TD><TD>257.181820833</TD><TD>-22.1930166667</TD><TD>25</TD><TD>2007-03-05 06:08:39</TD><TD>2007-03-05 06:19:40</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-03-05 17:47:33</TD><TD>J9RLC3031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLC4011</TD><TD>JUPITER-NORTH-C4</TD><TD>257.298566667</TD><TD>-22.2015388889</TD><TD>25</TD><TD>2007-03-06 10:22:50</TD><TD>2007-03-06 10:33:51</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-03-06 18:44:53</TD><TD>J9RLC4011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLC4021</TD><TD>JUPITER-NORTH-C4</TD><TD>257.300008333</TD><TD>-22.2016472222</TD><TD>25</TD><TD>2007-03-06 10:34:48</TD><TD>2007-03-06 10:55:09</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-03-06 18:48:57</TD><TD>J9RLC4021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLC4031</TD><TD>JUPITER-NORTH-C4</TD><TD>257.300816667</TD><TD>-22.2017083333</TD><TD>25</TD><TD>2007-03-06 10:56:06</TD><TD>2007-03-06 11:07:07</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-03-06 18:50:58</TD><TD>J9RLC4031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLC5011</TD><TD>JUPITER-NORTH-C4</TD><TD>257.376654167</TD><TD>-22.2073583333</TD><TD>25</TD><TD>2007-03-07 05:34:23</TD><TD>2007-03-07 05:59:36</TD><TD>510.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-03-07 15:54:49</TD><TD>J9RLC5011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLC5021</TD><TD>JUPITER-NORTH-C4</TD><TD>257.3778125</TD><TD>-22.2074444444</TD><TD>25</TD><TD>2007-03-07 06:00:15</TD><TD>2007-03-07 06:17:06</TD><TD>450.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-03-07 15:59:10</TD><TD>J9RLC5021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLC6011</TD><TD>JUPITER-SOUTH-C6</TD><TD>257.473545833</TD><TD>-22.22785</TD><TD>25</TD><TD>2007-03-08 07:09:40</TD><TD>2007-03-08 07:20:41</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-03-08 16:00:56</TD><TD>J9RLC6011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLC6021</TD><TD>JUPITER-SOUTH-C6</TD><TD>257.474908333</TD><TD>-22.22795</TD><TD>25</TD><TD>2007-03-08 07:21:38</TD><TD>2007-03-08 07:41:59</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-03-08 16:04:27</TD><TD>J9RLC6021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLC6031</TD><TD>JUPITER-SOUTH-C6</TD><TD>257.475675</TD><TD>-22.2280055556</TD><TD>25</TD><TD>2007-03-08 07:42:56</TD><TD>2007-03-08 07:53:57</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-03-08 16:06:29</TD><TD>J9RLC6031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLI6011</TD><TD>IO-NS-C3B-SOUTH-2CO</TD><TD>257.570454167</TD><TD>-22.2346138889</TD><TD>25</TD><TD>2007-03-09 08:44:46</TD><TD>2007-03-09 09:02:47</TD><TD>480.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-03-09 15:50:37</TD><TD>J9RLI6011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLJ6011</TD><TD>IO-NS-C3B-NORTH-2CO</TD><TD>257.574108333</TD><TD>-22.2221</TD><TD>25</TD><TD>2007-03-09 09:10:09</TD><TD>2007-03-09 09:27:00</TD><TD>450.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-03-09 15:55:41</TD><TD>J9RLJ6011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLI7011</TD><TD>IO-NS-C3A-NORTH-2CO-I7</TD><TD>257.578983333</TD><TD>-22.2224527778</TD><TD>25</TD><TD>2007-03-09 10:20:43</TD><TD>2007-03-09 10:45:56</TD><TD>510.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-03-09 16:01:14</TD><TD>J9RLI7011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLJ7011</TD><TD>IO-NS-C3A-SOUTH-2CO-I7</TD><TD>257.578008333</TD><TD>-22.2351611111</TD><TD>25</TD><TD>2007-03-09 10:48:15</TD><TD>2007-03-09 11:05:06</TD><TD>450.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-03-09 16:08:24</TD><TD>J9RLJ7011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLC7011</TD><TD>JUPITER-NORTH-C4</TD><TD>257.6424125</TD><TD>-22.2267388889</TD><TD>25</TD><TD>2007-03-10 03:56:01</TD><TD>2007-03-10 04:07:02</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-03-12 13:56:57</TD><TD>J9RLC7011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLC7021</TD><TD>JUPITER-NORTH-C4</TD><TD>257.643695833</TD><TD>-22.2268333333</TD><TD>25</TD><TD>2007-03-10 04:07:59</TD><TD>2007-03-10 04:28:20</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-03-12 14:01:44</TD><TD>J9RLC7021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLC7031</TD><TD>JUPITER-NORTH-C4</TD><TD>257.644416667</TD><TD>-22.2268833333</TD><TD>25</TD><TD>2007-03-10 04:29:17</TD><TD>2007-03-10 04:40:18</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-03-12 14:03:43</TD><TD>J9RLC7031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLC8011</TD><TD>JUPITER-SOUTH-C8-C9</TD><TD>257.657429167</TD><TD>-22.2411472222</TD><TD>25</TD><TD>2007-03-10 08:43:49</TD><TD>2007-03-10 08:54:50</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-03-12 14:06:07</TD><TD>J9RLC8011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLC8021</TD><TD>JUPITER-SOUTH-C8-C9</TD><TD>257.6587</TD><TD>-22.2412388889</TD><TD>25</TD><TD>2007-03-10 08:55:47</TD><TD>2007-03-10 09:16:08</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-03-12 14:10:52</TD><TD>J9RLC8021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLC8031</TD><TD>JUPITER-SOUTH-C8-C9</TD><TD>257.659416667</TD><TD>-22.2412888889</TD><TD>25</TD><TD>2007-03-10 09:17:05</TD><TD>2007-03-10 09:28:06</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-03-12 14:13:03</TD><TD>J9RLC8031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLC9011</TD><TD>JUPITER-SOUTH-C8-C9</TD><TD>257.725316667</TD><TD>-22.2459777778</TD><TD>25</TD><TD>2007-03-11 03:54:59</TD><TD>2007-03-11 04:06:00</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-03-12 14:51:06</TD><TD>J9RLC9011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLC9021</TD><TD>JUPITER-SOUTH-C8-C9</TD><TD>257.726554167</TD><TD>-22.2460638889</TD><TD>25</TD><TD>2007-03-11 04:06:57</TD><TD>2007-03-11 04:27:18</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-03-12 14:57:04</TD><TD>J9RLC9021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLC9031</TD><TD>JUPITER-SOUTH-C8-C9</TD><TD>257.72725</TD><TD>-22.2461138889</TD><TD>25</TD><TD>2007-03-11 04:28:15</TD><TD>2007-03-11 04:39:16</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-03-12 14:59:21</TD><TD>J9RLC9031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLI9011</TD><TD>GAN-FP-NORTH2</TD><TD>258.179283333</TD><TD>-22.2633861111</TD><TD>25</TD><TD>2007-03-17 05:22:55</TD><TD>2007-03-17 05:37:16</TD><TD>540.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-03-18 15:19:58</TD><TD>J9RLI9011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLJ9011</TD><TD>GAN-FP-SOUTH2</TD><TD>258.177875</TD><TD>-22.2771861111</TD><TD>25</TD><TD>2007-03-17 05:39:37</TD><TD>2007-03-17 05:52:18</TD><TD>480.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-03-18 22:47:38</TD><TD>J9RLJ9011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLK9011</TD><TD>GAN-FP-NORTH2</TD><TD>258.180641667</TD><TD>-22.263475</TD><TD>25</TD><TD>2007-03-17 05:54:39</TD><TD>2007-03-17 06:07:20</TD><TD>480.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-03-18 22:50:29</TD><TD>J9RLK9011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLI8011</TD><TD>GAN-FP-NORTH1</TD><TD>258.500275</TD><TD>-22.2839694444</TD><TD>25</TD><TD>2007-03-22 22:50:14</TD><TD>2007-03-22 23:04:35</TD><TD>540.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-03-23 22:52:43</TD><TD>J9RLI8011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLJ8011</TD><TD>GAN-FP-SOUTH1</TD><TD>258.4977625</TD><TD>-22.2970416667</TD><TD>25</TD><TD>2007-03-22 23:06:55</TD><TD>2007-03-22 23:19:36</TD><TD>480.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-03-23 22:56:15</TD><TD>J9RLJ8011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLK8011</TD><TD>GAN-FP-NORTH1</TD><TD>258.501245833</TD><TD>-22.2840277778</TD><TD>25</TD><TD>2007-03-22 23:21:56</TD><TD>2007-03-22 23:34:37</TD><TD>480.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-03-23 22:59:18</TD><TD>J9RLK8011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLI0011</TD><TD>IO-NS-C1A-NORTH</TD><TD>258.730033333</TD><TD>-22.2889194444</TD><TD>25</TD><TD>2007-04-13 17:30:37</TD><TD>2007-04-13 17:55:50</TD><TD>510.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-04-15 00:03:05</TD><TD>J9RLI0011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLJ0011</TD><TD>IO-NS-C1A-SOUTH</TD><TD>258.727429167</TD><TD>-22.3037472222</TD><TD>25</TD><TD>2007-04-13 17:58:12</TD><TD>2007-04-13 18:15:03</TD><TD>450.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-04-15 00:07:06</TD><TD>J9RLJ0011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLI3011</TD><TD>IO-NS-C3C-NORTH</TD><TD>258.614783333</TD><TD>-22.2801166667</TD><TD>25</TD><TD>2007-04-17 07:47:23</TD><TD>2007-04-17 08:12:36</TD><TD>510.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-04-17 13:08:17</TD><TD>J9RLI3011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLJ3011</TD><TD>IO-NS-C3C-SOUTH</TD><TD>258.6121875</TD><TD>-22.2938305556</TD><TD>25</TD><TD>2007-04-17 08:14:57</TD><TD>2007-04-17 08:31:48</TD><TD>450.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-04-17 13:12:18</TD><TD>J9RLJ3011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLI4011</TD><TD>IO-NS-C2-NORTH</TD><TD>258.612245833</TD><TD>-22.2799138889</TD><TD>25</TD><TD>2007-04-17 09:23:17</TD><TD>2007-04-17 09:48:30</TD><TD>510.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-04-17 17:20:49</TD><TD>J9RLI4011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLJ4011</TD><TD>IO-NS-C2-SOUTH</TD><TD>258.609645833</TD><TD>-22.2936305556</TD><TD>25</TD><TD>2007-04-17 09:50:51</TD><TD>2007-04-17 10:07:42</TD><TD>450.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-04-17 17:25:21</TD><TD>J9RLJ4011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLI2011</TD><TD>IO-NS-C1C-NORTH</TD><TD>258.607125</TD><TD>-22.2795111111</TD><TD>25</TD><TD>2007-04-17 12:35:05</TD><TD>2007-04-17 13:00:18</TD><TD>510.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-04-19 06:38:46</TD><TD>J9RLI2011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLJ2011</TD><TD>IO-NS-C1C-SOUTH</TD><TD>258.604516667</TD><TD>-22.293225</TD><TD>25</TD><TD>2007-04-17 13:02:39</TD><TD>2007-04-17 13:19:30</TD><TD>450.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-04-19 06:43:19</TD><TD>J9RLJ2011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLI1011</TD><TD>IO-NS-C1B-NORTH</TD><TD>258.2578</TD><TD>-22.2531388889</TD><TD>25</TD><TD>2007-04-24 12:30:21</TD><TD>2007-04-24 12:55:34</TD><TD>510.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-04-24 18:25:41</TD><TD>J9RLI1011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLJ1011</TD><TD>IO-NS-C1B-SOUTH</TD><TD>258.2543625</TD><TD>-22.2661888889</TD><TD>25</TD><TD>2007-04-24 12:57:54</TD><TD>2007-04-24 13:14:45</TD><TD>450.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-04-24 18:31:13</TD><TD>J9RLJ1011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLD0011</TD><TD>JUPITER-NORTH-D0</TD><TD>256.797525</TD><TD>-22.1421555556</TD><TD>25</TD><TD>2007-05-11 15:22:15</TD><TD>2007-05-11 15:33:16</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-05-12 01:37:35</TD><TD>J9RLD0011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLD0021</TD><TD>JUPITER-NORTH-D0</TD><TD>256.7961125</TD><TD>-22.1420444444</TD><TD>25</TD><TD>2007-05-11 15:34:13</TD><TD>2007-05-11 15:52:14</TD><TD>800.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-05-12 01:40:06</TD><TD>J9RLD0021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLD0031</TD><TD>JUPITER-NORTH-D0</TD><TD>256.795220833</TD><TD>-22.141975</TD><TD>25</TD><TD>2007-05-11 15:53:11</TD><TD>2007-05-11 16:04:12</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-05-12 01:41:38</TD><TD>J9RLD0031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLD1011</TD><TD>JUPITER-NORTH-D1</TD><TD>256.659891667</TD><TD>-22.1313944444</TD><TD>25</TD><TD>2007-05-12 21:44:16</TD><TD>2007-05-12 21:55:17</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-05-13 05:41:12</TD><TD>J9RLD1011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLD1021</TD><TD>JUPITER-NORTH-D1</TD><TD>256.658445833</TD><TD>-22.1312805556</TD><TD>25</TD><TD>2007-05-12 21:56:14</TD><TD>2007-05-12 22:14:15</TD><TD>800.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-05-13 05:43:43</TD><TD>J9RLD1021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLD1031</TD><TD>JUPITER-NORTH-D1</TD><TD>256.657529167</TD><TD>-22.1312083333</TD><TD>25</TD><TD>2007-05-12 22:15:12</TD><TD>2007-05-12 22:26:13</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-05-13 05:45:15</TD><TD>J9RLD1031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLD2011</TD><TD>JUPITER-NORTH-D2</TD><TD>256.572466667</TD><TD>-22.1244861111</TD><TD>25</TD><TD>2007-05-13 16:55:00</TD><TD>2007-05-13 17:06:01</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-05-14 12:58:11</TD><TD>J9RLD2011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLD2021</TD><TD>JUPITER-NORTH-D2</TD><TD>256.570995833</TD><TD>-22.1243694444</TD><TD>25</TD><TD>2007-05-13 17:06:58</TD><TD>2007-05-13 17:24:59</TD><TD>800.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-05-14 13:00:15</TD><TD>J9RLD2021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLD2031</TD><TD>JUPITER-NORTH-D2</TD><TD>256.570066667</TD><TD>-22.1242972222</TD><TD>25</TD><TD>2007-05-13 17:25:56</TD><TD>2007-05-13 17:36:57</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-05-14 13:02:11</TD><TD>J9RLD2031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLD3011</TD><TD>JUPITER-NORTH-D3</TD><TD>256.436766667</TD><TD>-22.1137361111</TD><TD>25</TD><TD>2007-05-14 21:41:05</TD><TD>2007-05-14 21:52:06</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-05-16 06:22:28</TD><TD>J9RLD3011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLD3021</TD><TD>JUPITER-NORTH-D3</TD><TD>256.435266667</TD><TD>-22.1136166667</TD><TD>25</TD><TD>2007-05-14 21:53:03</TD><TD>2007-05-14 22:11:04</TD><TD>800.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-05-16 06:24:56</TD><TD>J9RLD3021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLD3031</TD><TD>JUPITER-NORTH-D3</TD><TD>256.434316667</TD><TD>-22.1135416667</TD><TD>25</TD><TD>2007-05-14 22:12:01</TD><TD>2007-05-14 22:23:02</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-05-16 06:26:29</TD><TD>J9RLD3031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLD4011</TD><TD>JUPITER-NORTH-D4</TD><TD>256.330266667</TD><TD>-22.1052972222</TD><TD>25</TD><TD>2007-05-15 20:03:37</TD><TD>2007-05-15 20:14:38</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-05-16 06:28:30</TD><TD>J9RLD4011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLD4021</TD><TD>JUPITER-NORTH-D4</TD><TD>256.3287375</TD><TD>-22.1051777778</TD><TD>25</TD><TD>2007-05-15 20:15:35</TD><TD>2007-05-15 20:33:36</TD><TD>800.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-05-16 06:31:02</TD><TD>J9RLD4021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLD4031</TD><TD>JUPITER-NORTH-D4</TD><TD>256.327775</TD><TD>-22.1051</TD><TD>25</TD><TD>2007-05-15 20:34:33</TD><TD>2007-05-15 20:45:34</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-05-16 06:32:33</TD><TD>J9RLD4031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLD5011</TD><TD>JUPITER-NORTH-D5</TD><TD>256.2365</TD><TD>-22.0977694444</TD><TD>25</TD><TD>2007-05-16 15:14:26</TD><TD>2007-05-16 15:25:27</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-05-16 23:34:28</TD><TD>J9RLD5011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLD5021</TD><TD>JUPITER-NORTH-D5</TD><TD>256.234954167</TD><TD>-22.0976444444</TD><TD>25</TD><TD>2007-05-16 15:26:24</TD><TD>2007-05-16 15:44:25</TD><TD>800.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-05-16 23:37:07</TD><TD>J9RLD5021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLD5031</TD><TD>JUPITER-NORTH-D5</TD><TD>256.233979167</TD><TD>-22.0975666667</TD><TD>25</TD><TD>2007-05-16 15:45:22</TD><TD>2007-05-16 15:56:23</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-05-16 23:39:05</TD><TD>J9RLD5031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLD6011</TD><TD>JUPITER-NORTH-D6</TD><TD>256.0950125</TD><TD>-22.0864444444</TD><TD>25</TD><TD>2007-05-17 20:00:44</TD><TD>2007-05-17 20:11:45</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-05-18 17:46:02</TD><TD>J9RLD6011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLD6021</TD><TD>JUPITER-NORTH-D6</TD><TD>256.0934375</TD><TD>-22.0863166667</TD><TD>25</TD><TD>2007-05-17 20:12:42</TD><TD>2007-05-17 20:30:43</TD><TD>800.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-05-18 17:48:32</TD><TD>J9RLD6021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLD6031</TD><TD>JUPITER-NORTH-D6</TD><TD>256.092445833</TD><TD>-22.0862361111</TD><TD>25</TD><TD>2007-05-17 20:31:40</TD><TD>2007-05-17 20:42:41</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-05-18 17:50:35</TD><TD>J9RLD6031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLD7011</TD><TD>JUPITER-NORTH-D7</TD><TD>255.9908125</TD><TD>-22.0780222222</TD><TD>25</TD><TD>2007-05-18 16:47:31</TD><TD>2007-05-18 16:58:32</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-05-19 08:50:52</TD><TD>J9RLD7011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLD7021</TD><TD>JUPITER-NORTH-D7</TD><TD>255.989216667</TD><TD>-22.0778916667</TD><TD>25</TD><TD>2007-05-18 16:59:29</TD><TD>2007-05-18 17:17:30</TD><TD>800.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-05-19 08:53:25</TD><TD>J9RLD7021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLD7031</TD><TD>JUPITER-NORTH-D7</TD><TD>255.988208333</TD><TD>-22.0778111111</TD><TD>25</TD><TD>2007-05-18 17:18:27</TD><TD>2007-05-18 17:29:28</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-05-19 08:54:55</TD><TD>J9RLD7031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLD8011</TD><TD>JUPITER-SOUTH-D8</TD><TD>255.858470833</TD><TD>-22.0805972222</TD><TD>25</TD><TD>2007-05-19 18:22:02</TD><TD>2007-05-19 18:33:03</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-05-19 22:04:52</TD><TD>J9RLD8011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLD8021</TD><TD>JUPITER-SOUTH-D8</TD><TD>255.85685</TD><TD>-22.0804666667</TD><TD>25</TD><TD>2007-05-19 18:34:00</TD><TD>2007-05-19 18:52:01</TD><TD>800.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-05-19 22:07:25</TD><TD>J9RLD8021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLD8031</TD><TD>JUPITER-SOUTH-D8</TD><TD>255.855829167</TD><TD>-22.0803833333</TD><TD>25</TD><TD>2007-05-19 18:52:58</TD><TD>2007-05-19 19:03:59</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-05-19 22:09:26</TD><TD>J9RLD8031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLD9011</TD><TD>JUPITER-NORTH-D9</TD><TD>255.736733333</TD><TD>-22.0572666667</TD><TD>25</TD><TD>2007-05-20 18:20:39</TD><TD>2007-05-20 18:31:40</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-05-21 00:17:46</TD><TD>J9RLD9011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLD9021</TD><TD>JUPITER-NORTH-D9</TD><TD>255.735095833</TD><TD>-22.0571333333</TD><TD>25</TD><TD>2007-05-20 18:32:37</TD><TD>2007-05-20 18:50:38</TD><TD>800.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-05-21 00:20:18</TD><TD>J9RLD9021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLD9031</TD><TD>JUPITER-NORTH-D9</TD><TD>255.734058333</TD><TD>-22.0570472222</TD><TD>25</TD><TD>2007-05-20 18:51:35</TD><TD>2007-05-20 19:02:36</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-05-21 00:22:20</TD><TD>J9RLD9031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLE0011</TD><TD>JUPITER-NORTH-E0</TD><TD>255.636645833</TD><TD>-22.0487611111</TD><TD>25</TD><TD>2007-05-21 13:31:33</TD><TD>2007-05-21 13:42:34</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-05-22 08:45:21</TD><TD>J9RLE0011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLE0021</TD><TD>JUPITER-NORTH-E0</TD><TD>255.634991667</TD><TD>-22.048625</TD><TD>25</TD><TD>2007-05-21 13:43:31</TD><TD>2007-05-21 14:01:32</TD><TD>800.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-05-22 08:47:52</TD><TD>J9RLE0021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLE0031</TD><TD>JUPITER-NORTH-E0</TD><TD>255.63395</TD><TD>-22.0485388889</TD><TD>25</TD><TD>2007-05-21 14:02:29</TD><TD>2007-05-21 14:13:30</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-05-22 08:49:24</TD><TD>J9RLE0031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLE4011</TD><TD>JUPITER-SOUTH-E4</TD><TD>255.6017125</TD><TD>-22.0598222222</TD><TD>25</TD><TD>2007-05-21 19:55:12</TD><TD>2007-05-21 20:06:13</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-05-22 08:51:25</TD><TD>J9RLE4011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLE4021</TD><TD>JUPITER-SOUTH-E4</TD><TD>255.60005</TD><TD>-22.0596861111</TD><TD>25</TD><TD>2007-05-21 20:07:10</TD><TD>2007-05-21 20:25:11</TD><TD>800.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-05-22 08:53:57</TD><TD>J9RLE4021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLE4031</TD><TD>JUPITER-SOUTH-E4</TD><TD>255.599004167</TD><TD>-22.0596</TD><TD>25</TD><TD>2007-05-21 20:26:08</TD><TD>2007-05-21 20:37:09</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-05-22 08:55:28</TD><TD>J9RLE4031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLE1011</TD><TD>JUPITER-NORTH-E1</TD><TD>255.475316667</TD><TD>-22.0354222222</TD><TD>25</TD><TD>2007-05-22 19:53:51</TD><TD>2007-05-22 20:19:04</TD><TD>510.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-05-23 15:22:12</TD><TD>J9RLE1011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLE1021</TD><TD>JUPITER-NORTH-E1</TD><TD>255.473770833</TD><TD>-22.0352916667</TD><TD>25</TD><TD>2007-05-22 20:19:43</TD><TD>2007-05-22 20:36:34</TD><TD>450.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-05-23 15:26:42</TD><TD>J9RLE1021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLE2011</TD><TD>JUPITER-NORTH-E2</TD><TD>255.37455</TD><TD>-22.0270388889</TD><TD>25</TD><TD>2007-05-23 15:04:46</TD><TD>2007-05-23 15:15:47</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-05-24 03:48:11</TD><TD>J9RLE2011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLE2021</TD><TD>JUPITER-NORTH-E2</TD><TD>255.372858333</TD><TD>-22.0268972222</TD><TD>25</TD><TD>2007-05-23 15:16:44</TD><TD>2007-05-23 15:34:45</TD><TD>800.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-05-24 03:50:42</TD><TD>J9RLE2021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLE2031</TD><TD>JUPITER-NORTH-E2</TD><TD>255.371791667</TD><TD>-22.0268083333</TD><TD>25</TD><TD>2007-05-23 15:35:42</TD><TD>2007-05-23 15:46:43</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-05-24 03:52:15</TD><TD>J9RLE2031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLE3011</TD><TD>JUPITER-SOUTH-E3</TD><TD>255.23625</TD><TD>-22.0294027778</TD><TD>25</TD><TD>2007-05-24 16:39:20</TD><TD>2007-05-24 16:50:21</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-05-24 22:36:10</TD><TD>J9RLE3011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLE3021</TD><TD>JUPITER-SOUTH-E3</TD><TD>255.234545833</TD><TD>-22.0292611111</TD><TD>25</TD><TD>2007-05-24 16:51:18</TD><TD>2007-05-24 17:09:19</TD><TD>800.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-05-24 22:38:41</TD><TD>J9RLE3021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLE3031</TD><TD>JUPITER-SOUTH-E3</TD><TD>255.233466667</TD><TD>-22.0291694444</TD><TD>25</TD><TD>2007-05-24 17:10:16</TD><TD>2007-05-24 17:21:17</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-05-24 22:40:43</TD><TD>J9RLE3031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLE5011</TD><TD>JUPITER-NORTH-E5</TD><TD>255.003358333</TD><TD>-21.9961694444</TD><TD>25</TD><TD>2007-05-26 11:51:07</TD><TD>2007-05-26 12:02:08</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-05-26 13:57:08</TD><TD>J9RLE5011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLE5021</TD><TD>JUPITER-NORTH-E5</TD><TD>255.001625</TD><TD>-21.9960222222</TD><TD>25</TD><TD>2007-05-26 12:03:05</TD><TD>2007-05-26 12:21:06</TD><TD>800.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-05-26 14:25:11</TD><TD>J9RLE5021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLE5031</TD><TD>JUPITER-NORTH-E5</TD><TD>255.000533333</TD><TD>-21.9959305556</TD><TD>25</TD><TD>2007-05-26 12:22:03</TD><TD>2007-05-26 12:33:04</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-05-26 14:27:14</TD><TD>J9RLE5031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLE5041</TD><TD>JUPITER-NORTH-E5</TD><TD>254.994758333</TD><TD>-21.9954388889</TD><TD>25</TD><TD>2007-05-26 13:25:18</TD><TD>2007-05-26 13:36:19</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F165LP;N/A;F165LP</TD><TD>10862</TD><TD>2007-05-27 00:12:05</TD><TD>J9RLE5041</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLE5051</TD><TD>JUPITER-NORTH-E5</TD><TD>254.992991667</TD><TD>-21.9952888889</TD><TD>25</TD><TD>2007-05-26 13:37:39</TD><TD>2007-05-26 13:55:40</TD><TD>800.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-05-27 00:14:37</TD><TD>J9RLE5051</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLE5061</TD><TD>JUPITER-NORTH-E5</TD><TD>254.991866667</TD><TD>-21.9951944444</TD><TD>25</TD><TD>2007-05-26 13:57:00</TD><TD>2007-05-26 14:08:01</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F165LP;N/A;F165LP</TD><TD>10862</TD><TD>2007-05-27 00:16:42</TD><TD>J9RLE5061</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLEA011</TD><TD>JUPITER-SOUTH-E5</TD><TD>254.965304167</TD><TD>-22.0065027778</TD><TD>25</TD><TD>2007-05-26 18:14:21</TD><TD>2007-05-26 18:25:22</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F165LP;N/A;F165LP</TD><TD>10862</TD><TD>2007-05-27 00:19:08</TD><TD>J9RLEA011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLEA021</TD><TD>JUPITER-SOUTH-E5</TD><TD>254.963533333</TD><TD>-22.0063527778</TD><TD>25</TD><TD>2007-05-26 18:26:42</TD><TD>2007-05-26 18:44:43</TD><TD>800.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-05-27 00:21:45</TD><TD>J9RLEA021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLEA031</TD><TD>JUPITER-SOUTH-E5</TD><TD>254.962404167</TD><TD>-22.0062555556</TD><TD>25</TD><TD>2007-05-26 18:46:03</TD><TD>2007-05-26 18:57:04</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F165LP;N/A;F165LP</TD><TD>10862</TD><TD>2007-05-27 00:23:42</TD><TD>J9RLEA031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLEA041</TD><TD>JUPITER-SOUTH-E5</TD><TD>254.95665</TD><TD>-22.0057666667</TD><TD>25</TD><TD>2007-05-26 19:48:57</TD><TD>2007-05-26 19:59:58</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-05-27 00:25:45</TD><TD>J9RLEA041</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLEA051</TD><TD>JUPITER-SOUTH-E5</TD><TD>254.9549125</TD><TD>-22.0056194444</TD><TD>25</TD><TD>2007-05-26 20:00:55</TD><TD>2007-05-26 20:18:56</TD><TD>800.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-05-27 00:28:17</TD><TD>J9RLEA051</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLEA061</TD><TD>JUPITER-SOUTH-E5</TD><TD>254.953820833</TD><TD>-22.005525</TD><TD>25</TD><TD>2007-05-26 20:19:53</TD><TD>2007-05-26 20:30:54</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-05-27 00:30:18</TD><TD>J9RLEA061</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLE6011</TD><TD>JUPITER-NORTH-E6</TD><TD>254.834104167</TD><TD>-21.981775</TD><TD>25</TD><TD>2007-05-27 18:11:10</TD><TD>2007-05-27 18:22:11</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-05-28 00:46:29</TD><TD>J9RLE6011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLE6021</TD><TD>JUPITER-NORTH-E6</TD><TD>254.832354167</TD><TD>-21.9816277778</TD><TD>25</TD><TD>2007-05-27 18:23:08</TD><TD>2007-05-27 18:41:09</TD><TD>800.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-05-28 00:48:58</TD><TD>J9RLE6021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLE6031</TD><TD>JUPITER-NORTH-E6</TD><TD>254.831254167</TD><TD>-21.9815333333</TD><TD>25</TD><TD>2007-05-27 18:42:06</TD><TD>2007-05-27 18:53:07</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-05-28 00:51:02</TD><TD>J9RLE6031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLE7011</TD><TD>JUPITER-SOUTH-E7</TD><TD>254.701566667</TD><TD>-21.9839527778</TD><TD>25</TD><TD>2007-05-28 18:09:45</TD><TD>2007-05-28 18:20:46</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-05-29 00:04:13</TD><TD>J9RLE7011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLE7021</TD><TD>JUPITER-SOUTH-E7</TD><TD>254.699808333</TD><TD>-21.9838027778</TD><TD>25</TD><TD>2007-05-28 18:21:43</TD><TD>2007-05-28 18:39:44</TD><TD>800.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-05-29 00:06:45</TD><TD>J9RLE7021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLE7031</TD><TD>JUPITER-SOUTH-E7</TD><TD>254.6987</TD><TD>-21.9837055556</TD><TD>25</TD><TD>2007-05-28 18:40:41</TD><TD>2007-05-28 18:51:42</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-05-29 00:08:46</TD><TD>J9RLE7031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLE8011</TD><TD>JUPITER-NORTH-E8</TD><TD>254.6133125</TD><TD>-21.9624055556</TD><TD>25</TD><TD>2007-05-29 10:08:48</TD><TD>2007-05-29 10:19:49</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-05-29 20:58:18</TD><TD>J9RLE8011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLE8021</TD><TD>JUPITER-NORTH-E8</TD><TD>254.61155</TD><TD>-21.9622527778</TD><TD>25</TD><TD>2007-05-29 10:20:46</TD><TD>2007-05-29 10:38:47</TD><TD>800.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-05-29 21:00:49</TD><TD>J9RLE8021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLE8031</TD><TD>JUPITER-NORTH-E8</TD><TD>254.6104375</TD><TD>-21.9621555556</TD><TD>25</TD><TD>2007-05-29 10:39:44</TD><TD>2007-05-29 10:50:45</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-05-29 21:02:50</TD><TD>J9RLE8031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLE9011</TD><TD>JUPITER-SOUTH-E9</TD><TD>254.4691625</TD><TD>-21.96385</TD><TD>25</TD><TD>2007-05-30 11:43:13</TD><TD>2007-05-30 11:54:14</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-05-31 00:24:04</TD><TD>J9RLE9011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLE9021</TD><TD>JUPITER-SOUTH-E9</TD><TD>254.4673875</TD><TD>-21.9636944444</TD><TD>25</TD><TD>2007-05-30 11:55:11</TD><TD>2007-05-30 12:13:12</TD><TD>800.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-05-31 00:27:07</TD><TD>J9RLE9021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLE9031</TD><TD>JUPITER-SOUTH-E9</TD><TD>254.466270833</TD><TD>-21.9635972222</TD><TD>25</TD><TD>2007-05-30 12:14:09</TD><TD>2007-05-30 12:25:10</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-05-31 00:29:11</TD><TD>J9RLE9031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLF0011</TD><TD>JUPITER-NORTH-F0</TD><TD>254.335145833</TD><TD>-21.9382166667</TD><TD>25</TD><TD>2007-05-31 11:41:42</TD><TD>2007-05-31 11:52:43</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-05-31 23:02:16</TD><TD>J9RLF0011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLF0021</TD><TD>JUPITER-NORTH-F0</TD><TD>254.3333625</TD><TD>-21.9380611111</TD><TD>25</TD><TD>2007-05-31 11:53:40</TD><TD>2007-05-31 12:11:41</TD><TD>800.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-05-31 23:04:47</TD><TD>J9RLF0021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLF0031</TD><TD>JUPITER-NORTH-F0</TD><TD>254.332241667</TD><TD>-21.9379638889</TD><TD>25</TD><TD>2007-05-31 12:12:38</TD><TD>2007-05-31 12:23:39</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-05-31 23:06:50</TD><TD>J9RLF0031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLF2011</TD><TD>JUPITER-SOUTH-F2</TD><TD>254.08155</TD><TD>-21.9298194444</TD><TD>25</TD><TD>2007-06-02 08:26:48</TD><TD>2007-06-02 08:37:49</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-06-03 09:52:46</TD><TD>J9RLF2011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLF2021</TD><TD>JUPITER-SOUTH-F2</TD><TD>254.079758333</TD><TD>-21.9296611111</TD><TD>25</TD><TD>2007-06-02 08:38:46</TD><TD>2007-06-02 08:56:47</TD><TD>800.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-06-03 09:55:39</TD><TD>J9RLF2021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLF2031</TD><TD>JUPITER-SOUTH-F2</TD><TD>254.078629167</TD><TD>-21.9295611111</TD><TD>25</TD><TD>2007-06-02 08:57:44</TD><TD>2007-06-02 09:08:45</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-06-03 09:57:19</TD><TD>J9RLF2031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLF3011</TD><TD>JUPITER-NORTH-F3</TD><TD>253.9370625</TD><TD>-21.90305</TD><TD>25</TD><TD>2007-06-03 10:01:05</TD><TD>2007-06-03 10:12:06</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-06-03 18:21:46</TD><TD>J9RLF3011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLF3021</TD><TD>JUPITER-NORTH-F3</TD><TD>253.935266667</TD><TD>-21.9028916667</TD><TD>25</TD><TD>2007-06-03 10:13:03</TD><TD>2007-06-03 10:31:04</TD><TD>800.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-06-03 18:24:18</TD><TD>J9RLF3021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLF3031</TD><TD>JUPITER-NORTH-F3</TD><TD>253.934133333</TD><TD>-21.9027888889</TD><TD>25</TD><TD>2007-06-03 10:32:01</TD><TD>2007-06-03 10:43:02</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-06-03 18:26:20</TD><TD>J9RLF3031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLF4011</TD><TD>JUPITER-SOUTH-F4</TD><TD>253.800716667</TD><TD>-21.9047444444</TD><TD>25</TD><TD>2007-06-04 09:59:26</TD><TD>2007-06-04 10:10:27</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-06-05 07:32:50</TD><TD>J9RLF4011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLF4021</TD><TD>JUPITER-SOUTH-F4</TD><TD>253.798920833</TD><TD>-21.9045833333</TD><TD>25</TD><TD>2007-06-04 10:11:24</TD><TD>2007-06-04 10:29:25</TD><TD>800.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-06-05 07:35:26</TD><TD>J9RLF4021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLF4031</TD><TD>JUPITER-SOUTH-F4</TD><TD>253.797783333</TD><TD>-21.9044805556</TD><TD>25</TD><TD>2007-06-04 10:30:22</TD><TD>2007-06-04 10:41:23</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-06-05 07:37:24</TD><TD>J9RLF4031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLF5011</TD><TD>JUPITER-SOUTH-F5</TD><TD>253.682145833</TD><TD>-21.8938388889</TD><TD>25</TD><TD>2007-06-05 06:46:00</TD><TD>2007-06-05 06:57:01</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-06-05 18:42:38</TD><TD>J9RLF5011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLF5021</TD><TD>JUPITER-SOUTH-F5</TD><TD>253.680345833</TD><TD>-21.893675</TD><TD>25</TD><TD>2007-06-05 06:57:58</TD><TD>2007-06-05 07:15:59</TD><TD>800.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-06-05 18:47:07</TD><TD>J9RLF5021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLF5031</TD><TD>JUPITER-SOUTH-F5</TD><TD>253.679208333</TD><TD>-21.8935722222</TD><TD>25</TD><TD>2007-06-05 07:16:56</TD><TD>2007-06-05 07:27:57</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-06-05 18:49:09</TD><TD>J9RLF5031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLFB011</TD><TD>JUPITER-SOUTH-F6</TD><TD>253.562895833</TD><TD>-21.8830972222</TD><TD>25</TD><TD>2007-06-06 03:32:33</TD><TD>2007-06-06 03:43:34</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-06-07 11:50:09</TD><TD>J9RLFB011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLFB021</TD><TD>JUPITER-SOUTH-F6</TD><TD>253.561091667</TD><TD>-21.8829333333</TD><TD>25</TD><TD>2007-06-06 03:44:31</TD><TD>2007-06-06 04:02:32</TD><TD>800.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-06-07 11:52:42</TD><TD>J9RLFB021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLFB031</TD><TD>JUPITER-SOUTH-F6</TD><TD>253.559954167</TD><TD>-21.8828305556</TD><TD>25</TD><TD>2007-06-06 04:03:29</TD><TD>2007-06-06 04:14:30</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-06-07 11:54:27</TD><TD>J9RLFB031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLF7011</TD><TD>JUPITER-NORTH-F7</TD><TD>253.3735875</TD><TD>-21.8522222222</TD><TD>25</TD><TD>2007-06-07 13:06:12</TD><TD>2007-06-07 13:17:13</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-06-08 05:32:40</TD><TD>J9RLF7011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLF7021</TD><TD>JUPITER-NORTH-F7</TD><TD>253.3717875</TD><TD>-21.8520583333</TD><TD>25</TD><TD>2007-06-07 13:18:10</TD><TD>2007-06-07 13:36:11</TD><TD>800.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-06-08 05:35:41</TD><TD>J9RLF7021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLF7031</TD><TD>JUPITER-NORTH-F7</TD><TD>253.37065</TD><TD>-21.8519527778</TD><TD>25</TD><TD>2007-06-07 13:37:08</TD><TD>2007-06-07 13:48:09</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-06-08 05:37:43</TD><TD>J9RLF7031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLF8011</TD><TD>JUPITER-NORTH-F8</TD><TD>253.264245833</TD><TD>-21.8424972222</TD><TD>25</TD><TD>2007-06-08 08:16:52</TD><TD>2007-06-08 08:27:53</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-06-08 17:01:48</TD><TD>J9RLF8011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLF8021</TD><TD>JUPITER-NORTH-F8</TD><TD>253.262445833</TD><TD>-21.8423333333</TD><TD>25</TD><TD>2007-06-08 08:28:50</TD><TD>2007-06-08 08:46:51</TD><TD>800.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-06-08 17:05:22</TD><TD>J9RLF8021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLF8031</TD><TD>JUPITER-NORTH-F8</TD><TD>253.2613125</TD><TD>-21.8422305556</TD><TD>25</TD><TD>2007-06-08 08:47:48</TD><TD>2007-06-08 08:58:49</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-06-08 17:07:21</TD><TD>J9RLF8031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLF1011</TD><TD>JUPITER-NORTH-F1</TD><TD>252.983583333</TD><TD>-21.8164055556</TD><TD>25</TD><TD>2007-06-10 09:49:28</TD><TD>2007-06-10 10:00:29</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-06-10 15:31:36</TD><TD>J9RLF1011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLF1021</TD><TD>JUPITER-NORTH-F1</TD><TD>252.981791667</TD><TD>-21.8162388889</TD><TD>25</TD><TD>2007-06-10 10:01:26</TD><TD>2007-06-10 10:19:27</TD><TD>800.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-06-10 15:34:09</TD><TD>J9RLF1021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLF1031</TD><TD>JUPITER-NORTH-F1</TD><TD>252.9806625</TD><TD>-21.8161361111</TD><TD>25</TD><TD>2007-06-10 10:20:24</TD><TD>2007-06-10 10:31:25</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-06-10 15:36:10</TD><TD>J9RLF1031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLF1041</TD><TD>JUPITER-NORTH-F1</TD><TD>252.974541667</TD><TD>-21.8155694444</TD><TD>25</TD><TD>2007-06-10 11:25:15</TD><TD>2007-06-10 11:36:16</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-06-10 15:38:12</TD><TD>J9RLF1041</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLF1051</TD><TD>JUPITER-NORTH-F1</TD><TD>252.97275</TD><TD>-21.8154027778</TD><TD>25</TD><TD>2007-06-10 11:37:13</TD><TD>2007-06-10 11:55:14</TD><TD>800.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-06-10 15:40:43</TD><TD>J9RLF1051</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLF1061</TD><TD>JUPITER-NORTH-F1</TD><TD>252.971620833</TD><TD>-21.8152972222</TD><TD>25</TD><TD>2007-06-10 11:56:11</TD><TD>2007-06-10 12:07:12</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-06-10 15:42:16</TD><TD>J9RLF1061</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLF6011</TD><TD>JUPITER-SOUTH-F6-2</TD><TD>252.890333333</TD><TD>-21.821375</TD><TD>25</TD><TD>2007-06-11 01:48:25</TD><TD>2007-06-11 01:59:26</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-06-11 07:14:47</TD><TD>J9RLF6011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLF6021</TD><TD>JUPITER-SOUTH-F6-2</TD><TD>252.888545833</TD><TD>-21.8212083333</TD><TD>25</TD><TD>2007-06-11 02:00:23</TD><TD>2007-06-11 02:18:24</TD><TD>800.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-06-11 07:17:19</TD><TD>J9RLF6021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLF6031</TD><TD>JUPITER-SOUTH-F6-2</TD><TD>252.887416667</TD><TD>-21.8211027778</TD><TD>25</TD><TD>2007-06-11 02:19:21</TD><TD>2007-06-11 02:30:22</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-06-11 07:19:20</TD><TD>J9RLF6031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLFA011</TD><TD>JUPITER-SOUTH-FA</TD><TD>252.881295833</TD><TD>-21.8205361111</TD><TD>25</TD><TD>2007-06-11 03:24:19</TD><TD>2007-06-11 03:35:20</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-06-11 07:21:23</TD><TD>J9RLFA011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLFA021</TD><TD>JUPITER-SOUTH-FA</TD><TD>252.8795125</TD><TD>-21.8203694444</TD><TD>25</TD><TD>2007-06-11 03:36:17</TD><TD>2007-06-11 03:54:18</TD><TD>800.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-06-11 07:23:54</TD><TD>J9RLFA021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLFA031</TD><TD>JUPITER-SOUTH-FA</TD><TD>252.878383333</TD><TD>-21.8202638889</TD><TD>25</TD><TD>2007-06-11 03:55:15</TD><TD>2007-06-11 04:06:16</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-06-11 07:25:56</TD><TD>J9RLFA031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLF9011</TD><TD>JUPITER-NORTH-F9</TD><TD>252.874883333</TD><TD>-21.8065861111</TD><TD>25</TD><TD>2007-06-11 05:00:12</TD><TD>2007-06-11 05:11:13</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-06-11 23:31:53</TD><TD>J9RLF9011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLF9021</TD><TD>JUPITER-NORTH-F9</TD><TD>252.8731</TD><TD>-21.8064194444</TD><TD>25</TD><TD>2007-06-11 05:12:10</TD><TD>2007-06-11 05:30:11</TD><TD>800.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-06-11 23:34:55</TD><TD>J9RLF9021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLF9031</TD><TD>JUPITER-NORTH-F9</TD><TD>252.871970833</TD><TD>-21.8063166667</TD><TD>25</TD><TD>2007-06-11 05:31:08</TD><TD>2007-06-11 05:42:09</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-06-11 23:37:00</TD><TD>J9RLF9031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLFC011</TD><TD>JUPITER-NORTH-FC</TD><TD>252.865854167</TD><TD>-21.8057472222</TD><TD>25</TD><TD>2007-06-11 06:36:06</TD><TD>2007-06-11 06:47:07</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-06-11 23:38:55</TD><TD>J9RLFC011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLFC021</TD><TD>JUPITER-NORTH-FC</TD><TD>252.864070833</TD><TD>-21.8055805556</TD><TD>25</TD><TD>2007-06-11 06:48:04</TD><TD>2007-06-11 07:06:05</TD><TD>800.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2007-06-11 23:41:58</TD><TD>J9RLFC021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLFC031</TD><TD>JUPITER-NORTH-FC</TD><TD>252.862941667</TD><TD>-21.8054777778</TD><TD>25</TD><TD>2007-06-11 07:07:02</TD><TD>2007-06-11 07:18:03</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2007-06-11 23:44:01</TD><TD>J9RLFC031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLT7011</TD><TD>SATURN-2</TD><TD>159.2136375</TD><TD>10.6793222222</TD><TD>25</TD><TD>2008-02-01 08:52:20</TD><TD>2008-02-01 09:03:21</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2009-02-02 01:20:47</TD><TD>J9RLT7011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLT7021</TD><TD>SATURN-2</TD><TD>159.212695833</TD><TD>10.6797388889</TD><TD>25</TD><TD>2008-02-01 09:04:18</TD><TD>2008-02-01 09:24:39</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2009-02-02 01:30:58</TD><TD>J9RLT7021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLT7031</TD><TD>SATURN-2</TD><TD>159.2121625</TD><TD>10.679975</TD><TD>25</TD><TD>2008-02-01 09:25:36</TD><TD>2008-02-01 09:36:37</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2009-02-02 01:31:16</TD><TD>J9RLT7031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLT8011</TD><TD>SATURN-2</TD><TD>159.144966667</TD><TD>10.7095888889</TD><TD>25</TD><TD>2008-02-02 10:26:41</TD><TD>2008-02-02 10:37:42</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2009-02-02 18:31:14</TD><TD>J9RLT8011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLT8021</TD><TD>SATURN-2</TD><TD>159.144004167</TD><TD>10.7100111111</TD><TD>25</TD><TD>2008-02-02 10:38:39</TD><TD>2008-02-02 10:59:00</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2009-02-02 18:41:14</TD><TD>J9RLT8021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLT8031</TD><TD>SATURN-2</TD><TD>159.143466667</TD><TD>10.7102472222</TD><TD>25</TD><TD>2008-02-02 10:59:57</TD><TD>2008-02-02 11:10:58</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2009-02-02 18:41:32</TD><TD>J9RLT8031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLT9011</TD><TD>SATURN-2</TD><TD>159.1015</TD><TD>10.728675</TD><TD>25</TD><TD>2008-02-03 02:25:39</TD><TD>2008-02-03 02:36:40</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2009-02-03 12:15:43</TD><TD>J9RLT9011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLT9021</TD><TD>SATURN-2</TD><TD>159.100529167</TD><TD>10.7291</TD><TD>25</TD><TD>2008-02-03 02:37:37</TD><TD>2008-02-03 02:57:58</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2009-02-03 12:16:15</TD><TD>J9RLT9021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLT9031</TD><TD>SATURN-2</TD><TD>159.099983333</TD><TD>10.7293388889</TD><TD>25</TD><TD>2008-02-03 02:58:55</TD><TD>2008-02-03 03:09:56</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2009-02-03 12:16:42</TD><TD>J9RLT9031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLU0011</TD><TD>SATURN-2</TD><TD>159.092754167</TD><TD>10.7325083333</TD><TD>25</TD><TD>2008-02-03 05:37:27</TD><TD>2008-02-03 05:48:28</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2009-02-03 12:26:45</TD><TD>J9RLU0011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLU0021</TD><TD>SATURN-2</TD><TD>159.091783333</TD><TD>10.7329333333</TD><TD>25</TD><TD>2008-02-03 05:49:25</TD><TD>2008-02-03 06:09:46</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2009-02-03 12:27:05</TD><TD>J9RLU0021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLU0031</TD><TD>SATURN-2</TD><TD>159.0912375</TD><TD>10.7331722222</TD><TD>25</TD><TD>2008-02-03 06:10:43</TD><TD>2008-02-03 06:21:44</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2009-02-03 12:27:23</TD><TD>J9RLU0031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLU1011</TD><TD>SATURN-2</TD><TD>159.083995833</TD><TD>10.7363444444</TD><TD>25</TD><TD>2008-02-03 08:49:15</TD><TD>2008-02-03 09:00:16</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2009-02-03 12:27:51</TD><TD>J9RLU1011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLU1021</TD><TD>SATURN-2</TD><TD>159.083025</TD><TD>10.7367722222</TD><TD>25</TD><TD>2008-02-03 09:01:13</TD><TD>2008-02-03 09:21:34</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2009-02-03 12:37:02</TD><TD>J9RLU1021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLU1031</TD><TD>SATURN-2</TD><TD>159.082475</TD><TD>10.7370111111</TD><TD>25</TD><TD>2008-02-03 09:22:31</TD><TD>2008-02-03 09:33:32</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2009-02-03 12:37:11</TD><TD>J9RLU1031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLU2011</TD><TD>SATURN-2</TD><TD>159.075220833</TD><TD>10.7401888889</TD><TD>25</TD><TD>2008-02-03 12:01:03</TD><TD>2008-02-03 12:12:04</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2009-02-04 00:36:15</TD><TD>J9RLU2011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLU2021</TD><TD>SATURN-2</TD><TD>159.074245833</TD><TD>10.7406166667</TD><TD>25</TD><TD>2008-02-03 12:13:01</TD><TD>2008-02-03 12:33:22</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2009-02-04 00:46:25</TD><TD>J9RLU2021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLU2031</TD><TD>SATURN-2</TD><TD>159.073695833</TD><TD>10.7408555556</TD><TD>25</TD><TD>2008-02-03 12:34:19</TD><TD>2008-02-03 12:45:20</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2009-02-04 00:46:43</TD><TD>J9RLU2031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLU3011</TD><TD>SATURN-2</TD><TD>159.035533333</TD><TD>10.7575416667</TD><TD>25</TD><TD>2008-02-04 02:24:09</TD><TD>2008-02-04 02:35:09</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2009-02-04 11:56:04</TD><TD>J9RLU3011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLU3021</TD><TD>SATURN-2</TD><TD>159.034658333</TD><TD>10.757925</TD><TD>25</TD><TD>2008-02-04 02:36:07</TD><TD>2008-02-04 02:54:07</TD><TD>800.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2009-02-04 11:56:33</TD><TD>J9RLU3021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLU3031</TD><TD>SATURN-2</TD><TD>159.034108333</TD><TD>10.7581666667</TD><TD>25</TD><TD>2008-02-04 02:55:05</TD><TD>2008-02-04 03:06:05</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2009-02-04 12:06:24</TD><TD>J9RLU3031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLU4011</TD><TD>SATURN-2</TD><TD>159.01335</TD><TD>10.767225</TD><TD>25</TD><TD>2008-02-04 10:23:37</TD><TD>2008-02-04 10:34:38</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2009-02-04 21:45:27</TD><TD>J9RLU4011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLU4021</TD><TD>SATURN-2</TD><TD>159.012470833</TD><TD>10.7676083333</TD><TD>25</TD><TD>2008-02-04 10:35:35</TD><TD>2008-02-04 10:53:36</TD><TD>800.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2009-02-04 21:55:53</TD><TD>J9RLU4021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLU4031</TD><TD>SATURN-2</TD><TD>159.011916667</TD><TD>10.76785</TD><TD>25</TD><TD>2008-02-04 10:54:33</TD><TD>2008-02-04 11:05:34</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2009-02-04 21:56:03</TD><TD>J9RLU4031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLU5011</TD><TD>SATURN-2</TD><TD>158.968691667</TD><TD>10.7866777778</TD><TD>25</TD><TD>2008-02-05 02:22:36</TD><TD>2008-02-05 02:33:37</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2009-02-05 23:28:53</TD><TD>J9RLU5011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLU5021</TD><TD>SATURN-2</TD><TD>158.967804167</TD><TD>10.7870638889</TD><TD>25</TD><TD>2008-02-05 02:34:34</TD><TD>2008-02-05 02:52:35</TD><TD>800.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2009-02-05 23:29:14</TD><TD>J9RLU5021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLU5031</TD><TD>SATURN-2</TD><TD>158.967245833</TD><TD>10.7873055556</TD><TD>25</TD><TD>2008-02-05 02:53:32</TD><TD>2008-02-05 03:04:33</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2009-02-05 23:29:43</TD><TD>J9RLU5031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLU6011</TD><TD>SATURN-2</TD><TD>158.946220833</TD><TD>10.7964444444</TD><TD>25</TD><TD>2008-02-05 10:22:08</TD><TD>2008-02-05 10:33:09</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2009-02-05 23:49:11</TD><TD>J9RLU6011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLU6021</TD><TD>SATURN-2</TD><TD>158.945329167</TD><TD>10.7968333333</TD><TD>25</TD><TD>2008-02-05 10:34:06</TD><TD>2008-02-05 10:52:07</TD><TD>800.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2009-02-05 23:49:41</TD><TD>J9RLU6021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLU6031</TD><TD>SATURN-2</TD><TD>158.944766667</TD><TD>10.797075</TD><TD>25</TD><TD>2008-02-05 10:53:04</TD><TD>2008-02-05 11:04:05</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2009-02-05 23:50:00</TD><TD>J9RLU6031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLU8011</TD><TD>SATURN-2</TD><TD>158.887366667</TD><TD>10.8219694444</TD><TD>25</TD><TD>2008-02-06 07:08:51</TD><TD>2008-02-06 07:19:52</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2009-02-06 17:05:49</TD><TD>J9RLU8011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLU8021</TD><TD>SATURN-2</TD><TD>158.886358333</TD><TD>10.8224055556</TD><TD>25</TD><TD>2008-02-06 07:20:49</TD><TD>2008-02-06 07:41:10</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2009-02-06 17:06:20</TD><TD>J9RLU8021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLU8031</TD><TD>SATURN-2</TD><TD>158.8857875</TD><TD>10.8226527778</TD><TD>25</TD><TD>2008-02-06 07:42:07</TD><TD>2008-02-06 07:53:08</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2009-02-06 17:16:14</TD><TD>J9RLU8031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLW0011</TD><TD>SATURN-2</TD><TD>158.878258333</TD><TD>10.8259111111</TD><TD>25</TD><TD>2008-02-06 10:20:39</TD><TD>2008-02-06 10:31:40</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2009-02-06 21:51:35</TD><TD>J9RLW0011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLW0021</TD><TD>SATURN-2</TD><TD>158.877245833</TD><TD>10.82635</TD><TD>25</TD><TD>2008-02-06 10:32:37</TD><TD>2008-02-06 10:52:58</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2009-02-06 21:52:06</TD><TD>J9RLW0021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLW0031</TD><TD>SATURN-2</TD><TD>158.876679167</TD><TD>10.8265944444</TD><TD>25</TD><TD>2008-02-06 10:53:55</TD><TD>2008-02-06 11:04:56</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2009-02-06 22:00:47</TD><TD>J9RLW0031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLW1011</TD><TD>SATURN-2</TD><TD>158.8371</TD><TD>10.8437027778</TD><TD>25</TD><TD>2008-02-07 00:43:47</TD><TD>2008-02-07 00:54:48</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2009-02-07 11:48:20</TD><TD>J9RLW1011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLW1021</TD><TD>SATURN-2</TD><TD>158.836079167</TD><TD>10.8441416667</TD><TD>25</TD><TD>2008-02-07 00:55:45</TD><TD>2008-02-07 01:16:06</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2009-02-07 11:48:52</TD><TD>J9RLW1021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLW1031</TD><TD>SATURN-2</TD><TD>158.835508333</TD><TD>10.8443888889</TD><TD>25</TD><TD>2008-02-07 01:17:03</TD><TD>2008-02-07 01:28:04</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2009-02-07 11:49:00</TD><TD>J9RLW1031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLW2011</TD><TD>SATURN-2</TD><TD>158.809508333</TD><TD>10.8556055556</TD><TD>25</TD><TD>2008-02-07 10:19:13</TD><TD>2008-02-07 10:30:14</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2009-02-07 23:50:01</TD><TD>J9RLW2011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLW2021</TD><TD>SATURN-2</TD><TD>158.808483333</TD><TD>10.8560472222</TD><TD>25</TD><TD>2008-02-07 10:31:11</TD><TD>2008-02-07 10:51:32</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2009-02-08 00:00:13</TD><TD>J9RLW2021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLW2031</TD><TD>SATURN-2</TD><TD>158.807908333</TD><TD>10.8562944444</TD><TD>25</TD><TD>2008-02-07 10:52:29</TD><TD>2008-02-07 11:03:30</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2009-02-08 00:00:32</TD><TD>J9RLW2031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLW5011</TD><TD>SATURN-2</TD><TD>158.758604167</TD><TD>10.8775166667</TD><TD>25</TD><TD>2008-02-08 03:54:12</TD><TD>2008-02-08 04:05:13</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2009-02-08 14:29:27</TD><TD>J9RLW5011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLW5021</TD><TD>SATURN-2</TD><TD>158.757575</TD><TD>10.8779611111</TD><TD>25</TD><TD>2008-02-08 04:06:10</TD><TD>2008-02-08 04:26:31</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2009-02-08 14:29:58</TD><TD>J9RLW5021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLW5031</TD><TD>SATURN-2</TD><TD>158.756995833</TD><TD>10.8782083333</TD><TD>25</TD><TD>2008-02-08 04:27:28</TD><TD>2008-02-08 04:38:29</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2009-02-08 14:30:09</TD><TD>J9RLW5031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLW3011</TD><TD>SATURN-2</TD><TD>158.753958333</TD><TD>10.8795138889</TD><TD>25</TD><TD>2008-02-08 05:30:05</TD><TD>2008-02-08 05:41:06</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2009-02-08 14:40:08</TD><TD>J9RLW3011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLW3021</TD><TD>SATURN-2</TD><TD>158.752929167</TD><TD>10.8799583333</TD><TD>25</TD><TD>2008-02-08 05:42:04</TD><TD>2008-02-08 06:02:24</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2009-02-08 14:40:48</TD><TD>J9RLW3021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLW3031</TD><TD>SATURN-2</TD><TD>158.752345833</TD><TD>10.8802055556</TD><TD>25</TD><TD>2008-02-08 06:03:22</TD><TD>2008-02-08 06:14:22</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2009-02-08 14:40:55</TD><TD>J9RLW3031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLW4011</TD><TD>SATURN-2</TD><TD>158.749308333</TD><TD>10.8815111111</TD><TD>25</TD><TD>2008-02-08 07:06:00</TD><TD>2008-02-08 07:17:01</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2009-02-08 14:41:14</TD><TD>J9RLW4011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLW4021</TD><TD>SATURN-2</TD><TD>158.748275</TD><TD>10.8819555556</TD><TD>25</TD><TD>2008-02-08 07:17:58</TD><TD>2008-02-08 07:38:19</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2009-02-08 14:41:43</TD><TD>J9RLW4021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLW4031</TD><TD>SATURN-2</TD><TD>158.747695833</TD><TD>10.8822055556</TD><TD>25</TD><TD>2008-02-08 07:39:16</TD><TD>2008-02-08 07:50:17</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2009-02-08 14:50:14</TD><TD>J9RLW4031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLW6011</TD><TD>SATURN-3</TD><TD>158.674483333</TD><TD>10.9135972222</TD><TD>25</TD><TD>2008-02-09 08:40:33</TD><TD>2008-02-09 08:51:34</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2009-02-09 15:24:14</TD><TD>J9RLW6011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLW6021</TD><TD>SATURN-3</TD><TD>158.673441667</TD><TD>10.9140444444</TD><TD>25</TD><TD>2008-02-09 08:52:31</TD><TD>2008-02-09 09:12:52</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2009-02-09 15:24:44</TD><TD>J9RLW6021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLW6031</TD><TD>SATURN-3</TD><TD>158.672854167</TD><TD>10.9142944444</TD><TD>25</TD><TD>2008-02-09 09:13:49</TD><TD>2008-02-09 09:24:50</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2009-02-09 15:25:02</TD><TD>J9RLW6031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLW7011</TD><TD>SATURN-2</TD><TD>158.608383333</TD><TD>10.9418361111</TD><TD>25</TD><TD>2008-02-10 07:03:18</TD><TD>2008-02-10 07:14:19</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2009-02-10 16:12:11</TD><TD>J9RLW7011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLW7021</TD><TD>SATURN-2</TD><TD>158.607329167</TD><TD>10.9422861111</TD><TD>25</TD><TD>2008-02-10 07:15:16</TD><TD>2008-02-10 07:35:37</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2009-02-10 16:19:04</TD><TD>J9RLW7021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLW7031</TD><TD>SATURN-2</TD><TD>158.6067375</TD><TD>10.9425361111</TD><TD>25</TD><TD>2008-02-10 07:36:34</TD><TD>2008-02-10 07:47:35</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2009-02-10 16:19:23</TD><TD>J9RLW7031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLX1011</TD><TD>SATURN-2</TD><TD>158.556054167</TD><TD>10.9641222222</TD><TD>25</TD><TD>2008-02-11 00:38:20</TD><TD>2008-02-11 00:49:21</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2009-02-11 05:51:36</TD><TD>J9RLX1011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLX1021</TD><TD>SATURN-2</TD><TD>158.554995833</TD><TD>10.9645722222</TD><TD>25</TD><TD>2008-02-11 00:50:18</TD><TD>2008-02-11 01:10:39</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2009-02-11 06:01:57</TD><TD>J9RLX1021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLX1031</TD><TD>SATURN-2</TD><TD>158.5544</TD><TD>10.964825</TD><TD>25</TD><TD>2008-02-11 01:11:36</TD><TD>2008-02-11 01:22:37</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2009-02-11 06:02:05</TD><TD>J9RLX1031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLW8011</TD><TD>SATURN-2</TD><TD>158.536945833</TD><TD>10.9722444444</TD><TD>25</TD><TD>2008-02-11 07:01:59</TD><TD>2008-02-11 07:13:00</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2009-02-12 00:37:40</TD><TD>J9RLW8011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLW8021</TD><TD>SATURN-2</TD><TD>158.535883333</TD><TD>10.9726944444</TD><TD>25</TD><TD>2008-02-11 07:13:57</TD><TD>2008-02-11 07:34:18</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2009-02-12 00:38:10</TD><TD>J9RLW8021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLW8031</TD><TD>SATURN-2</TD><TD>158.5352875</TD><TD>10.97295</TD><TD>25</TD><TD>2008-02-11 07:35:15</TD><TD>2008-02-11 07:46:16</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2009-02-12 00:38:28</TD><TD>J9RLW8031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLW9011</TD><TD>SATURN-2</TD><TD>158.420845833</TD><TD>11.0214305556</TD><TD>25</TD><TD>2008-02-12 21:35:40</TD><TD>2008-02-12 21:46:41</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2009-02-13 07:19:39</TD><TD>J9RLW9011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLW9021</TD><TD>SATURN-2</TD><TD>158.419741667</TD><TD>11.0218972222</TD><TD>25</TD><TD>2008-02-12 21:47:38</TD><TD>2008-02-12 22:08:32</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2009-02-13 07:30:00</TD><TD>J9RLW9021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLW9031</TD><TD>SATURN-2</TD><TD>158.416558333</TD><TD>11.0232416667</TD><TD>25</TD><TD>2008-02-12 22:59:58</TD><TD>2008-02-12 23:11:32</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2009-02-13 07:30:20</TD><TD>J9RLW9031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLX3011</TD><TD>SATURN-2</TD><TD>158.411745833</TD><TD>11.025275</TD><TD>25</TD><TD>2008-02-13 00:35:45</TD><TD>2008-02-13 00:46:46</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2009-02-14 04:31:39</TD><TD>J9RLX3011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLX3021</TD><TD>SATURN-2</TD><TD>158.410670833</TD><TD>11.0257277778</TD><TD>25</TD><TD>2008-02-13 00:47:44</TD><TD>2008-02-13 01:08:04</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2009-02-14 04:32:19</TD><TD>J9RLX3021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLX3031</TD><TD>SATURN-2</TD><TD>158.410066667</TD><TD>11.0259833333</TD><TD>25</TD><TD>2008-02-13 01:09:01</TD><TD>2008-02-13 01:20:02</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2009-02-14 04:32:39</TD><TD>J9RLX3031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLX0011</TD><TD>SATURN-2</TD><TD>158.392341667</TD><TD>11.0334638889</TD><TD>25</TD><TD>2008-02-13 06:59:25</TD><TD>2008-02-13 07:10:26</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2009-02-14 04:43:03</TD><TD>J9RLX0011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLX0021</TD><TD>SATURN-2</TD><TD>158.3912625</TD><TD>11.0339194444</TD><TD>25</TD><TD>2008-02-13 07:11:23</TD><TD>2008-02-13 07:31:44</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2009-02-14 04:44:07</TD><TD>J9RLX0021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLX0031</TD><TD>SATURN-2</TD><TD>158.390658333</TD><TD>11.034175</TD><TD>25</TD><TD>2008-02-13 07:32:41</TD><TD>2008-02-13 07:43:42</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2009-02-14 04:44:17</TD><TD>J9RLX0031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLX4011</TD><TD>SATURN-2</TD><TD>158.3192625</TD><TD>11.0642361111</TD><TD>25</TD><TD>2008-02-14 06:58:07</TD><TD>2008-02-14 07:09:08</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2009-02-14 10:46:16</TD><TD>J9RLX4011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLX4021</TD><TD>SATURN-2</TD><TD>158.318179167</TD><TD>11.0646944444</TD><TD>25</TD><TD>2008-02-14 07:10:05</TD><TD>2008-02-14 07:30:26</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2009-02-14 10:46:46</TD><TD>J9RLX4021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLX4031</TD><TD>SATURN-2</TD><TD>158.317566667</TD><TD>11.06495</TD><TD>25</TD><TD>2008-02-14 07:31:23</TD><TD>2008-02-14 07:42:24</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2009-02-14 10:47:04</TD><TD>J9RLX4031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLX5011</TD><TD>SATURN-2</TD><TD>158.2506375</TD><TD>11.0930361111</TD><TD>25</TD><TD>2008-02-15 05:20:54</TD><TD>2008-02-15 05:31:55</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2009-02-15 19:04:23</TD><TD>J9RLX5011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLX5021</TD><TD>SATURN-2</TD><TD>158.249545833</TD><TD>11.0934944444</TD><TD>25</TD><TD>2008-02-15 05:32:52</TD><TD>2008-02-15 05:53:13</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2009-02-15 19:05:09</TD><TD>J9RLX5021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLX5031</TD><TD>SATURN-2</TD><TD>158.248933333</TD><TD>11.09375</TD><TD>25</TD><TD>2008-02-15 05:54:10</TD><TD>2008-02-15 06:05:11</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2009-02-15 19:05:19</TD><TD>J9RLX5031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLX2011</TD><TD>SATURN-2</TD><TD>158.127208333</TD><TD>11.1446055556</TD><TD>25</TD><TD>2008-02-16 21:18:38</TD><TD>2008-02-16 21:29:39</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2009-02-17 13:49:37</TD><TD>J9RLX2011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLX2021</TD><TD>SATURN-2</TD><TD>158.126104167</TD><TD>11.1450638889</TD><TD>25</TD><TD>2008-02-16 21:30:36</TD><TD>2008-02-16 21:50:57</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>10862</TD><TD>2009-02-17 13:50:20</TD><TD>J9RLX2021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9RLX2031</TD><TD>SATURN-2</TD><TD>158.1254875</TD><TD>11.1453222222</TD><TD>25</TD><TD>2008-02-16 21:51:54</TD><TD>2008-02-16 22:02:55</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>10862</TD><TD>2009-02-17 14:00:13</TD><TD>J9RLX2031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>JB29A1011</TD><TD>SATURN</TD><TD>172.720629167</TD><TD>5.48370555556</TD><TD>3</TD><TD>2009-01-23 22:30:45</TD><TD>2009-01-23 22:46:25</TD><TD>700.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>11566</TD><TD>2010-01-24 22:58:29</TD><TD>JB29A1011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>JB29A1021</TD><TD>SATURN</TD><TD>172.7202</TD><TD>5.48394166667</TD><TD>3</TD><TD>2009-01-23 22:47:23</TD><TD>2009-01-23 23:14:43</TD><TD>1200.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>11566</TD><TD>2010-01-24 22:58:55</TD><TD>JB29A1021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>JB29A3011</TD><TD>SATURN</TD><TD>172.69135</TD><TD>5.49974722222</TD><TD>3</TD><TD>2009-01-24 17:41:25</TD><TD>2009-01-24 17:57:05</TD><TD>700.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>11566</TD><TD>2010-01-25 10:04:33</TD><TD>JB29A3011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>JB29A3021</TD><TD>SATURN</TD><TD>172.690908333</TD><TD>5.49998611111</TD><TD>3</TD><TD>2009-01-24 17:58:03</TD><TD>2009-01-24 18:25:23</TD><TD>1200.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>11566</TD><TD>2010-01-25 10:14:06</TD><TD>JB29A3021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>JB29A4011</TD><TD>SATURN</TD><TD>172.686379167</TD><TD>5.50245555556</TD><TD>3</TD><TD>2009-01-24 20:53:11</TD><TD>2009-01-24 21:08:51</TD><TD>700.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>11566</TD><TD>2010-01-25 10:14:35</TD><TD>JB29A4011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>JB29A4021</TD><TD>SATURN</TD><TD>172.6859375</TD><TD>5.50269722222</TD><TD>3</TD><TD>2009-01-24 21:09:49</TD><TD>2009-01-24 21:37:09</TD><TD>1200.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>11566</TD><TD>2010-01-25 10:14:58</TD><TD>JB29A4021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>JB29A5011</TD><TD>SATURN</TD><TD>172.5732125</TD><TD>5.56318611111</TD><TD>3</TD><TD>2009-01-27 17:36:34</TD><TD>2009-01-27 17:52:14</TD><TD>700.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>11566</TD><TD>2010-01-28 00:35:15</TD><TD>JB29A5011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>JB29A5021</TD><TD>SATURN</TD><TD>172.572720833</TD><TD>5.56344722222</TD><TD>3</TD><TD>2009-01-27 17:53:12</TD><TD>2009-01-27 18:20:32</TD><TD>1200.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>11566</TD><TD>2010-01-28 00:45:03</TD><TD>JB29A5021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>JB29A2011</TD><TD>SATURN</TD><TD>172.570441667</TD><TD>5.56465277778</TD><TD>3</TD><TD>2009-01-27 19:12:28</TD><TD>2009-01-27 19:28:08</TD><TD>700.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>11566</TD><TD>2010-01-28 00:45:34</TD><TD>JB29A2011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>JB29A2021</TD><TD>SATURN</TD><TD>172.569945833</TD><TD>5.56491388889</TD><TD>3</TD><TD>2009-01-27 19:29:06</TD><TD>2009-01-27 19:56:26</TD><TD>1200.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>11566</TD><TD>2010-01-28 00:46:17</TD><TD>JB29A2021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>JB29A6011</TD><TD>SATURN</TD><TD>172.564875</TD><TD>5.56759444444</TD><TD>3</TD><TD>2009-01-27 22:24:16</TD><TD>2009-01-27 22:39:56</TD><TD>700.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>11566</TD><TD>2010-01-29 23:07:41</TD><TD>JB29A6011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>JB29A6021</TD><TD>SATURN</TD><TD>172.564383333</TD><TD>5.56785555556</TD><TD>3</TD><TD>2009-01-27 22:40:54</TD><TD>2009-01-27 23:08:14</TD><TD>1200.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>11566</TD><TD>2010-01-29 23:09:03</TD><TD>JB29A6021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>JB29B1011</TD><TD>SATURN</TD><TD>172.054725</TD><TD>5.82648333333</TD><TD>3</TD><TD>2009-02-07 09:22:58</TD><TD>2009-02-07 09:38:38</TD><TD>700.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>11566</TD><TD>2010-02-08 06:01:20</TD><TD>JB29B1011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>JB29B1021</TD><TD>SATURN</TD><TD>172.054070833</TD><TD>5.82680277778</TD><TD>3</TD><TD>2009-02-07 09:39:36</TD><TD>2009-02-07 10:06:56</TD><TD>1200.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>11566</TD><TD>2010-02-08 06:11:35</TD><TD>JB29B1021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>JB29B2011</TD><TD>SATURN</TD><TD>172.043675</TD><TD>5.83191388889</TD><TD>3</TD><TD>2009-02-07 14:10:43</TD><TD>2009-02-07 14:26:23</TD><TD>700.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>11566</TD><TD>2010-02-08 06:21:45</TD><TD>JB29B2011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>JB29B2021</TD><TD>SATURN</TD><TD>172.043016667</TD><TD>5.83223611111</TD><TD>3</TD><TD>2009-02-07 14:27:21</TD><TD>2009-02-07 14:54:41</TD><TD>1200.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>11566</TD><TD>2010-02-08 06:31:58</TD><TD>JB29B2021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>JB29B3011</TD><TD>SATURN</TD><TD>171.999025</TD><TD>5.85380277778</TD><TD>3</TD><TD>2009-02-08 09:21:39</TD><TD>2009-02-08 09:37:19</TD><TD>700.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>11566</TD><TD>2010-02-08 20:09:20</TD><TD>JB29B3011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>JB29B3021</TD><TD>SATURN</TD><TD>171.998358333</TD><TD>5.85412777778</TD><TD>3</TD><TD>2009-02-08 09:38:17</TD><TD>2009-02-08 10:05:37</TD><TD>1200.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>11566</TD><TD>2010-02-08 20:20:13</TD><TD>JB29B3021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>JB29B4011</TD><TD>SATURN</TD><TD>171.9915125</TD><TD>5.857475</TD><TD>3</TD><TD>2009-02-08 12:33:28</TD><TD>2009-02-08 12:49:08</TD><TD>700.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>11566</TD><TD>2010-02-08 20:20:50</TD><TD>JB29B4011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>JB29B4021</TD><TD>SATURN</TD><TD>171.990845833</TD><TD>5.8578</TD><TD>3</TD><TD>2009-02-08 12:50:06</TD><TD>2009-02-08 13:17:27</TD><TD>1200.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>11566</TD><TD>2010-02-08 20:21:20</TD><TD>JB29B4021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>JB29B5011</TD><TD>SATURN</TD><TD>171.946045833</TD><TD>5.87965555556</TD><TD>3</TD><TD>2009-02-09 07:44:23</TD><TD>2009-02-09 08:00:03</TD><TD>700.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>11566</TD><TD>2010-02-10 04:22:26</TD><TD>JB29B5011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>JB29B5021</TD><TD>SATURN</TD><TD>171.945370833</TD><TD>5.87998333333</TD><TD>3</TD><TD>2009-02-09 08:01:01</TD><TD>2009-02-09 08:28:21</TD><TD>1200.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>11566</TD><TD>2010-02-10 04:42:55</TD><TD>JB29B5021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>JB29B6011</TD><TD>SATURN</TD><TD>171.942225</TD><TD>5.88151388889</TD><TD>3</TD><TD>2009-02-09 09:20:17</TD><TD>2009-02-09 09:35:57</TD><TD>700.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>11566</TD><TD>2010-02-10 04:43:26</TD><TD>JB29B6011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>JB29B6021</TD><TD>SATURN</TD><TD>171.94155</TD><TD>5.88184444444</TD><TD>3</TD><TD>2009-02-09 09:36:55</TD><TD>2009-02-09 10:04:15</TD><TD>1200.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>11566</TD><TD>2010-02-10 05:04:20</TD><TD>JB29B6021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>JBAEC1011</TD><TD>SATURN</TD><TD>171.464833333</TD><TD>6.10960555556</TD><TD>3</TD><TD>2009-02-17 04:20:43</TD><TD>2009-02-17 05:04:23</TD><TD>1900.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>11984</TD><TD>2010-02-17 21:59:53</TD><TD>JBAEC1011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>JBAEC2011</TD><TD>SATURN</TD><TD>171.460516667</TD><TD>6.11163611111</TD><TD>3</TD><TD>2009-02-17 05:56:36</TD><TD>2009-02-17 06:40:16</TD><TD>1900.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>11984</TD><TD>2010-02-17 22:09:23</TD><TD>JBAEC2011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>JBAEC3011</TD><TD>SATURN</TD><TD>171.456191667</TD><TD>6.11366666667</TD><TD>3</TD><TD>2009-02-17 07:32:29</TD><TD>2009-02-17 08:16:09</TD><TD>1900.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>11984</TD><TD>2010-02-17 22:10:13</TD><TD>JBAEC3011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>JBAEC4011</TD><TD>SATURN</TD><TD>171.451866667</TD><TD>6.11569722222</TD><TD>3</TD><TD>2009-02-17 09:08:23</TD><TD>2009-02-17 09:52:03</TD><TD>1900.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>11984</TD><TD>2010-02-17 22:20:04</TD><TD>JBAEC4011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>JBAED1011</TD><TD>SATURN</TD><TD>171.399679167</TD><TD>6.14016388889</TD><TD>3</TD><TD>2009-02-18 04:19:02</TD><TD>2009-02-18 05:02:42</TD><TD>1900.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>11984</TD><TD>2010-02-18 09:27:43</TD><TD>JBAED1011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>JBAED2011</TD><TD>SATURN</TD><TD>171.395308333</TD><TD>6.14220833333</TD><TD>3</TD><TD>2009-02-18 05:54:55</TD><TD>2009-02-18 06:38:35</TD><TD>1900.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>11984</TD><TD>2010-02-18 09:38:20</TD><TD>JBAED2011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>JBAED3011</TD><TD>SATURN</TD><TD>171.390933333</TD><TD>6.14425555556</TD><TD>3</TD><TD>2009-02-18 07:30:50</TD><TD>2009-02-18 08:14:30</TD><TD>1900.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>11984</TD><TD>2010-02-19 00:27:26</TD><TD>JBAED3011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>JBAED4011</TD><TD>SATURN</TD><TD>171.386554167</TD><TD>6.14630555556</TD><TD>3</TD><TD>2009-02-18 09:06:43</TD><TD>2009-02-18 09:50:23</TD><TD>1900.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>11984</TD><TD>2010-02-19 00:47:53</TD><TD>JBAED4011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>JBAEE1011</TD><TD>SATURN</TD><TD>170.715925</TD><TD>6.45427222222</TD><TD>3</TD><TD>2009-02-28 02:27:22</TD><TD>2009-02-28 03:11:02</TD><TD>1900.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>11984</TD><TD>2010-02-28 14:17:27</TD><TD>JBAEE1011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>JBAEE2011</TD><TD>SATURN</TD><TD>170.711158333</TD><TD>6.45642222222</TD><TD>3</TD><TD>2009-02-28 04:03:17</TD><TD>2009-02-28 04:46:57</TD><TD>1900.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>11984</TD><TD>2010-02-28 14:39:08</TD><TD>JBAEE2011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>JBAEE3011</TD><TD>SATURN</TD><TD>170.706379167</TD><TD>6.45857777778</TD><TD>3</TD><TD>2009-02-28 05:39:25</TD><TD>2009-02-28 06:23:05</TD><TD>1900.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>11984</TD><TD>2010-02-28 14:49:28</TD><TD>JBAEE3011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>JBAEE4011</TD><TD>SATURN</TD><TD>170.701608333</TD><TD>6.46073055556</TD><TD>3</TD><TD>2009-02-28 07:15:19</TD><TD>2009-02-28 07:58:59</TD><TD>1900.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>11984</TD><TD>2010-02-28 16:02:11</TD><TD>JBAEE4011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>JBAEF1011</TD><TD>SATURN</TD><TD>170.64905</TD><TD>6.48440833333</TD><TD>3</TD><TD>2009-03-01 00:50:04</TD><TD>2009-03-01 01:33:44</TD><TD>1900.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>11984</TD><TD>2010-03-01 04:53:38</TD><TD>JBAEF1011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>JBAEF2011</TD><TD>SATURN</TD><TD>170.644258333</TD><TD>6.48656111111</TD><TD>3</TD><TD>2009-03-01 02:25:59</TD><TD>2009-03-01 03:09:39</TD><TD>1900.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>11984</TD><TD>2010-03-01 11:00:09</TD><TD>JBAEF2011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>JBAEF3011</TD><TD>SATURN</TD><TD>170.639466667</TD><TD>6.48871666667</TD><TD>3</TD><TD>2009-03-01 04:01:53</TD><TD>2009-03-01 04:45:33</TD><TD>1900.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>11984</TD><TD>2010-03-01 11:10:48</TD><TD>JBAEF3011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>JBAEF4011</TD><TD>SATURN</TD><TD>170.634675</TD><TD>6.49087222222</TD><TD>3</TD><TD>2009-03-01 05:37:48</TD><TD>2009-03-01 06:21:28</TD><TD>1900.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>11984</TD><TD>2010-03-01 11:21:19</TD><TD>JBAEF4011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>JBAEG1011</TD><TD>SATURN</TD><TD>170.218125</TD><TD>6.67635555556</TD><TD>3</TD><TD>2009-03-06 23:05:47</TD><TD>2009-03-06 23:49:27</TD><TD>1900.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>11984</TD><TD>2010-03-10 14:58:20</TD><TD>JBAEG1011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>JBAEG2011</TD><TD>SATURN</TD><TD>170.213245833</TD><TD>6.67850833333</TD><TD>3</TD><TD>2009-03-07 00:41:41</TD><TD>2009-03-07 01:25:21</TD><TD>1900.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>11984</TD><TD>2010-03-10 15:08:43</TD><TD>JBAEG2011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>JBAEG3011</TD><TD>SATURN</TD><TD>170.208366667</TD><TD>6.68065833333</TD><TD>3</TD><TD>2009-03-07 02:17:35</TD><TD>2009-03-07 03:01:15</TD><TD>1900.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>11984</TD><TD>2010-03-10 15:09:56</TD><TD>JBAEG3011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>JBAEG4011</TD><TD>SATURN</TD><TD>170.2034875</TD><TD>6.68281111111</TD><TD>3</TD><TD>2009-03-07 03:53:29</TD><TD>2009-03-07 04:37:09</TD><TD>1900.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>11984</TD><TD>2010-03-10 15:19:17</TD><TD>JBAEG4011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>LB5502O4Q</TD><TD>ENCELADUS-WEST-ELONGATION</TD><TD>179.357125</TD><TD>3.01350277778</TD><TD>1</TD><TD>2010-05-05 08:31:41</TD><TD>2010-05-05 08:31:47</TD><TD>6.000</TD><TD>COS   </TD><TD>PSA</TD><TD>G230L</TD><TD>11645</TD><TD>2011-05-05 16:37:28</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>LB5502O5Q</TD><TD>ENCELADUS-WEST-ELONGATION</TD><TD>179.356729167</TD><TD>3.013625</TD><TD>1</TD><TD>2010-05-05 08:34:26</TD><TD>2010-05-05 08:34:43</TD><TD>17.000</TD><TD>COS   </TD><TD>PSA</TD><TD>G230L</TD><TD>11645</TD><TD>2011-05-05 16:37:37</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>LB5502O6Q</TD><TD>ENCELADUS-WEST-ELONGATION</TD><TD>179.356654167</TD><TD>3.01365</TD><TD>1</TD><TD>2010-05-05 08:38:43</TD><TD>2010-05-05 08:38:49</TD><TD>6.000</TD><TD>COS   </TD><TD>PSA</TD><TD>G230L</TD><TD>11645</TD><TD>2011-05-05 16:45:59</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>LB5502010</TD><TD>ENCELADUS-WEST-ELONGATION</TD><TD>179.356520833</TD><TD>3.01369166667</TD><TD>1</TD><TD>2010-05-05 08:40:30</TD><TD>2010-05-05 09:10:27</TD><TD>1680.416</TD><TD>COS   </TD><TD>PSA</TD><TD>G230L</TD><TD>11645</TD><TD>2011-05-05 16:47:03</TD><TD>LB5502010</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>LB5502020</TD><TD>ENCELADUS-WEST-ELONGATION</TD><TD>179.354416667</TD><TD>3.0145</TD><TD>1</TD><TD>2010-05-05 09:58:37</TD><TD>2010-05-05 10:45:59</TD><TD>2660.288</TD><TD>COS   </TD><TD>PSA</TD><TD>G140L</TD><TD>11645</TD><TD>2011-05-05 16:47:43</TD><TD>LB5502020</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>LB5501RBQ</TD><TD>ENCELADUS-EAST-ELONGATION</TD><TD>179.351395833</TD><TD>3.0243</TD><TD>1</TD><TD>2010-05-06 00:30:13</TD><TD>2010-05-06 00:30:19</TD><TD>6.000</TD><TD>COS   </TD><TD>PSA</TD><TD>G230L</TD><TD>11645</TD><TD>2011-05-06 03:18:16</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>LB5501RCQ</TD><TD>ENCELADUS-EAST-ELONGATION</TD><TD>179.351179167</TD><TD>3.02440833333</TD><TD>1</TD><TD>2010-05-06 00:32:58</TD><TD>2010-05-06 00:33:15</TD><TD>17.000</TD><TD>COS   </TD><TD>PSA</TD><TD>G230L</TD><TD>11645</TD><TD>2011-05-06 03:18:31</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>LB5501RDQ</TD><TD>ENCELADUS-EAST-ELONGATION</TD><TD>179.351133333</TD><TD>3.02443055556</TD><TD>1</TD><TD>2010-05-06 00:37:15</TD><TD>2010-05-06 00:37:21</TD><TD>6.000</TD><TD>COS   </TD><TD>PSA</TD><TD>G230L</TD><TD>11645</TD><TD>2011-05-06 03:27:30</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>LB5501010</TD><TD>ENCELADUS-EAST-ELONGATION</TD><TD>179.351054167</TD><TD>3.02446666667</TD><TD>1</TD><TD>2010-05-06 00:39:02</TD><TD>2010-05-06 01:08:59</TD><TD>1680.384</TD><TD>COS   </TD><TD>PSA</TD><TD>G230L</TD><TD>11645</TD><TD>2011-05-06 03:28:17</TD><TD>LB5501010</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>LB5501020</TD><TD>ENCELADUS-EAST-ELONGATION</TD><TD>179.349295833</TD><TD>3.02511388889</TD><TD>1</TD><TD>2010-05-06 01:57:09</TD><TD>2010-05-06 02:44:31</TD><TD>2660.192</TD><TD>COS   </TD><TD>PSA</TD><TD>G140L</TD><TD>11645</TD><TD>2011-05-06 04:29:35</TD><TD>LB5501020</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>OBHU31BUQ</TD><TD>SATURN-C-FIX</TD><TD>196.699020833</TD><TD>-4.35584722222</TD><TD>0</TD><TD>2011-01-28 13:28:15</TD><TD>2011-01-28 13:34:50</TD><TD>395.020</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>12235</TD><TD>2012-01-31 15:20:23</TD><TD>OBHU31BUQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>OBHUC1010</TD><TD>SATURN-C-SLEW-S-N</TD><TD>196.6989875</TD><TD>-4.35310555556</TD><TD>0</TD><TD>2011-01-28 13:48:13</TD><TD>2011-01-28 14:12:13</TD><TD>1440.189</TD><TD>STIS  </TD><TD>52X0.5</TD><TD>G140L</TD><TD>12235</TD><TD>2012-01-31 15:24:40</TD><TD>OBHUC1010</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>OBHUH1C0Q</TD><TD>SATURN-C-FIX</TD><TD>196.698875</TD><TD>-4.35544722222</TD><TD>0</TD><TD>2011-01-28 15:04:06</TD><TD>2011-01-28 15:10:12</TD><TD>366.020</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>12235</TD><TD>2012-01-31 15:27:51</TD><TD>OBHUH1C0Q</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>OBHUI1010</TD><TD>SATURN-C-SLEW-S-N</TD><TD>196.6988375</TD><TD>-4.34898333333</TD><TD>0</TD><TD>2011-01-28 15:24:04</TD><TD>2011-01-28 15:48:04</TD><TD>1440.049</TD><TD>STIS  </TD><TD>52X0.5</TD><TD>G140M</TD><TD>12235</TD><TD>2012-01-31 15:31:01</TD><TD>OBHUI1010</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>OBHU32TWQ</TD><TD>SATURN-C-FIX</TD><TD>194.8792875</TD><TD>-3.41196666667</TD><TD>0</TD><TD>2011-03-17 18:06:05</TD><TD>2011-03-17 18:12:40</TD><TD>395.020</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>12235</TD><TD>2012-03-17 20:17:25</TD><TD>OBHU32TWQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>OBHUC2010</TD><TD>SATURN-VISIT32-SLEW-ORBIT1</TD><TD>194.878295833</TD><TD>-3.40999166667</TD><TD>0</TD><TD>2011-03-17 18:26:03</TD><TD>2011-03-17 18:50:03</TD><TD>1440.196</TD><TD>STIS  </TD><TD>52X0.5</TD><TD>G140L</TD><TD>12235</TD><TD>2012-03-17 20:20:42</TD><TD>OBHUC2010</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>OBHUD2UAQ</TD><TD>SATURN-C-FIX</TD><TD>194.874933333</TD><TD>-3.41001111111</TD><TD>0</TD><TD>2011-03-17 19:41:57</TD><TD>2011-03-17 19:48:03</TD><TD>366.020</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>12235</TD><TD>2012-03-18 00:58:26</TD><TD>OBHUD2UAQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>OBHUE2010</TD><TD>SATURN-VISIT32-SLEW-ORBIT2</TD><TD>194.873945833</TD><TD>-3.40803055556</TD><TD>0</TD><TD>2011-03-17 20:01:55</TD><TD>2011-03-17 20:25:55</TD><TD>1440.082</TD><TD>STIS  </TD><TD>52X0.5</TD><TD>G140M</TD><TD>12235</TD><TD>2012-03-18 01:00:54</TD><TD>OBHUE2010</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>JBH8H1011</TD><TD>SATURN</TD><TD>193.8822375</TD><TD>-2.97490277778</TD><TD>0</TD><TD>2011-04-01 04:42:33</TD><TD>2011-04-01 04:53:34</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>12176</TD><TD>2012-04-01 08:22:22</TD><TD>JBH8H1011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>JBH8H1021</TD><TD>SATURN</TD><TD>193.881625</TD><TD>-2.97464166667</TD><TD>0</TD><TD>2011-04-01 04:54:31</TD><TD>2011-04-01 05:05:32</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>12176</TD><TD>2012-04-01 08:24:35</TD><TD>JBH8H1021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>JBH8H1031</TD><TD>SATURN</TD><TD>193.881029167</TD><TD>-2.97438611111</TD><TD>0</TD><TD>2011-04-01 05:06:11</TD><TD>2011-04-01 05:14:52</TD><TD>400.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>12176</TD><TD>2012-04-01 08:26:27</TD><TD>JBH8H1031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>JBH8H1041</TD><TD>SATURN</TD><TD>193.880566667</TD><TD>-2.97418888889</TD><TD>0</TD><TD>2011-04-01 05:15:49</TD><TD>2011-04-01 05:26:50</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>12176</TD><TD>2012-04-01 08:28:17</TD><TD>JBH8H1041</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>JBH8H2011</TD><TD>SATURN</TD><TD>193.7441375</TD><TD>-2.91594722222</TD><TD>0</TD><TD>2011-04-03 03:02:01</TD><TD>2011-04-03 03:13:02</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>12176</TD><TD>2012-04-03 07:05:42</TD><TD>JBH8H2011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>JBH8H2021</TD><TD>SATURN</TD><TD>193.743520833</TD><TD>-2.91568611111</TD><TD>0</TD><TD>2011-04-03 03:13:59</TD><TD>2011-04-03 03:25:00</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>12176</TD><TD>2012-04-03 07:07:45</TD><TD>JBH8H2021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>JBH8H2031</TD><TD>SATURN</TD><TD>193.742925</TD><TD>-2.91543333333</TD><TD>0</TD><TD>2011-04-03 03:25:39</TD><TD>2011-04-03 03:34:20</TD><TD>400.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>12176</TD><TD>2012-04-03 07:09:21</TD><TD>JBH8H2031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>JBH8H2041</TD><TD>SATURN</TD><TD>193.7424625</TD><TD>-2.91523611111</TD><TD>0</TD><TD>2011-04-03 03:35:17</TD><TD>2011-04-03 03:46:18</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>12176</TD><TD>2012-04-03 07:11:17</TD><TD>JBH8H2041</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>JBH8H3011</TD><TD>SATURN</TD><TD>193.591454167</TD><TD>-2.85119166667</TD><TD>0</TD><TD>2011-04-05 06:09:11</TD><TD>2011-04-05 06:20:12</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>12176</TD><TD>2012-04-05 11:27:56</TD><TD>JBH8H3011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>JBH8H3021</TD><TD>SATURN</TD><TD>193.5908375</TD><TD>-2.85093055556</TD><TD>0</TD><TD>2011-04-05 06:21:09</TD><TD>2011-04-05 06:32:10</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>12176</TD><TD>2012-04-05 11:30:03</TD><TD>JBH8H3021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>JBH8H3031</TD><TD>SATURN</TD><TD>193.590241667</TD><TD>-2.85068055556</TD><TD>0</TD><TD>2011-04-05 06:32:49</TD><TD>2011-04-05 06:41:30</TD><TD>400.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>12176</TD><TD>2012-04-05 11:31:39</TD><TD>JBH8H3031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>JBH8H3041</TD><TD>SATURN</TD><TD>193.589775</TD><TD>-2.85048333333</TD><TD>0</TD><TD>2011-04-05 06:42:27</TD><TD>2011-04-05 06:53:28</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>12176</TD><TD>2012-04-05 11:33:35</TD><TD>JBH8H3041</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>JBH8H4011</TD><TD>SATURN</TD><TD>193.448366667</TD><TD>-2.79090833333</TD><TD>0</TD><TD>2011-04-07 06:04:53</TD><TD>2011-04-07 06:15:54</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>12176</TD><TD>2012-04-07 09:08:33</TD><TD>JBH8H4011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>JBH8H4021</TD><TD>SATURN</TD><TD>193.447754167</TD><TD>-2.79065</TD><TD>0</TD><TD>2011-04-07 06:16:51</TD><TD>2011-04-07 06:27:52</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>12176</TD><TD>2012-04-07 09:11:05</TD><TD>JBH8H4021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>JBH8H4031</TD><TD>SATURN</TD><TD>193.447158333</TD><TD>-2.79040277778</TD><TD>0</TD><TD>2011-04-07 06:28:31</TD><TD>2011-04-07 06:37:12</TD><TD>400.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>12176</TD><TD>2012-04-07 09:13:18</TD><TD>JBH8H4031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>JBH8H4041</TD><TD>SATURN</TD><TD>193.446695833</TD><TD>-2.79020555556</TD><TD>0</TD><TD>2011-04-07 06:38:09</TD><TD>2011-04-07 06:49:10</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>12176</TD><TD>2012-04-07 09:15:46</TD><TD>JBH8H4041</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>JBH8H5011</TD><TD>SATURN</TD><TD>193.258241667</TD><TD>-2.71140833333</TD><TD>0</TD><TD>2011-04-09 21:59:24</TD><TD>2011-04-09 22:10:25</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>12176</TD><TD>2012-04-10 10:09:31</TD><TD>JBH8H5011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>JBH8H5021</TD><TD>SATURN</TD><TD>193.257633333</TD><TD>-2.71115277778</TD><TD>0</TD><TD>2011-04-09 22:11:22</TD><TD>2011-04-09 22:22:23</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>12176</TD><TD>2012-04-10 10:11:32</TD><TD>JBH8H5021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>JBH8H5031</TD><TD>SATURN</TD><TD>193.257041667</TD><TD>-2.71090555556</TD><TD>0</TD><TD>2011-04-09 22:23:29</TD><TD>2011-04-09 22:32:10</TD><TD>400.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F140LP;N/A;F140LP</TD><TD>12176</TD><TD>2012-04-10 10:13:09</TD><TD>JBH8H5031</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>JBH8H5041</TD><TD>SATURN</TD><TD>193.256558333</TD><TD>-2.71070555556</TD><TD>0</TD><TD>2011-04-09 22:33:12</TD><TD>2011-04-09 22:44:13</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>12176</TD><TD>2012-04-10 10:15:00</TD><TD>JBH8H5041</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>OBHU21BTQ</TD><TD>SATURN-B-FIX</TD><TD>192.6994625</TD><TD>-2.48174444444</TD><TD>0</TD><TD>2011-04-17 21:44:38</TD><TD>2011-04-17 21:50:23</TD><TD>345.020</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>12235</TD><TD>2012-04-18 03:24:09</TD><TD>OBHU21BTQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>OBHUB1010</TD><TD>SATURN-VISIT21-SLEW-ORBIT1</TD><TD>192.6984625</TD><TD>-2.47968333333</TD><TD>0</TD><TD>2011-04-17 22:03:46</TD><TD>2011-04-17 22:28:46</TD><TD>1500.175</TD><TD>STIS  </TD><TD>52X0.5</TD><TD>G140L</TD><TD>12235</TD><TD>2012-04-18 03:27:26</TD><TD>OBHUB1010</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>OBHUF1BZQ</TD><TD>SATURN-B-FIX</TD><TD>192.694941667</TD><TD>-2.47991111111</TD><TD>0</TD><TD>2011-04-17 23:19:50</TD><TD>2011-04-17 23:25:06</TD><TD>316.020</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>12235</TD><TD>2012-04-18 20:55:29</TD><TD>OBHUF1BZQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>OBHUG1010</TD><TD>SATURN-VISIT21-SLEW-ORBIT2</TD><TD>192.69395</TD><TD>-2.47757222222</TD><TD>0</TD><TD>2011-04-17 23:38:58</TD><TD>2011-04-18 00:03:58</TD><TD>1500.151</TD><TD>STIS  </TD><TD>52X0.5</TD><TD>G140M</TD><TD>12235</TD><TD>2012-04-18 03:31:34</TD><TD>OBHUG1010</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>OBHU11JLQ</TD><TD>SATURN-A-FIX</TD><TD>191.3405875</TD><TD>-1.95571111111</TD><TD>0</TD><TD>2011-05-10 12:51:21</TD><TD>2011-05-10 12:57:56</TD><TD>341.518</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>12235</TD><TD>2012-05-10 15:07:47</TD><TD>OBHU11JLQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>OBHUA1010</TD><TD>SATURN-VISIT11-SLEW-ORBIT1</TD><TD>191.339841667</TD><TD>-1.9535</TD><TD>0</TD><TD>2011-05-10 13:11:19</TD><TD>2011-05-10 13:36:19</TD><TD>1500.195</TD><TD>STIS  </TD><TD>52X0.5</TD><TD>G140L</TD><TD>12235</TD><TD>2012-05-11 02:53:38</TD><TD>OBHUA1010</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>OBHUD1JSQ</TD><TD>SATURN-A-FIX</TD><TD>191.3373875</TD><TD>-1.95455555556</TD><TD>0</TD><TD>2011-05-10 14:25:21</TD><TD>2011-05-10 14:31:27</TD><TD>289.788</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>12235</TD><TD>2012-05-11 02:56:34</TD><TD>OBHUD1JSQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>OBHUE1010</TD><TD>SATURN-VISIT11-SLEW-ORBIT2</TD><TD>191.336658333</TD><TD>-1.95235833333</TD><TD>0</TD><TD>2011-05-10 14:44:50</TD><TD>2011-05-10 15:09:50</TD><TD>1500.191</TD><TD>STIS  </TD><TD>52X0.5</TD><TD>G140L</TD><TD>12235</TD><TD>2012-05-11 03:00:21</TD><TD>OBHUE1010</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>JBSWI1011</TD><TD>SATURN</TD><TD>206.396125</TD><TD>-7.96112777778</TD><TD>0</TD><TD>2012-03-28 12:18:45</TD><TD>2012-03-28 12:29:46</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>12660</TD><TD>2013-03-28 19:33:24</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>JBSWI1021</TD><TD>SATURN</TD><TD>206.395566667</TD><TD>-7.9609</TD><TD>0</TD><TD>2012-03-28 12:30:43</TD><TD>2012-03-28 12:41:44</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>12660</TD><TD>2013-03-28 19:34:12</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>JBSWI1031</TD><TD>SATURN</TD><TD>206.395020833</TD><TD>-7.96067777778</TD><TD>0</TD><TD>2012-03-28 12:42:23</TD><TD>2012-03-28 12:51:04</TD><TD>400.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>12660</TD><TD>2013-03-28 19:34:16</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>JBSWI1041</TD><TD>SATURN</TD><TD>206.394595833</TD><TD>-7.96050555556</TD><TD>0</TD><TD>2012-03-28 12:52:01</TD><TD>2012-03-28 13:03:02</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>12660</TD><TD>2013-03-28 19:34:31</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>JBSWI2011</TD><TD>SATURN</TD><TD>206.317220833</TD><TD>-7.92910277778</TD><TD>0</TD><TD>2012-03-29 17:03:03</TD><TD>2012-03-29 17:14:04</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>12660</TD><TD>2013-03-30 01:18:04</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>JBSWI2021</TD><TD>SATURN</TD><TD>206.316654167</TD><TD>-7.92887222222</TD><TD>0</TD><TD>2012-03-29 17:15:01</TD><TD>2012-03-29 17:26:02</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>12660</TD><TD>2013-03-30 01:18:18</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>JBSWI2031</TD><TD>SATURN</TD><TD>206.316104167</TD><TD>-7.92865</TD><TD>0</TD><TD>2012-03-29 17:26:41</TD><TD>2012-03-29 17:35:22</TD><TD>400.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>12660</TD><TD>2013-03-30 01:18:34</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>JBSWI2041</TD><TD>SATURN</TD><TD>206.315675</TD><TD>-7.928475</TD><TD>0</TD><TD>2012-03-29 17:36:19</TD><TD>2012-03-29 17:47:20</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>12660</TD><TD>2013-03-30 01:18:39</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>JBSWI3011</TD><TD>SATURN</TD><TD>206.264091667</TD><TD>-7.90761666667</TD><TD>0</TD><TD>2012-03-30 12:12:34</TD><TD>2012-03-30 12:23:35</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>12660</TD><TD>2013-03-30 15:38:33</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>JBSWI3021</TD><TD>SATURN</TD><TD>206.263520833</TD><TD>-7.90738611111</TD><TD>0</TD><TD>2012-03-30 12:24:32</TD><TD>2012-03-30 12:35:33</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>12660</TD><TD>2013-03-30 15:38:49</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>JBSWI3031</TD><TD>SATURN</TD><TD>206.2629625</TD><TD>-7.90716111111</TD><TD>0</TD><TD>2012-03-30 12:36:12</TD><TD>2012-03-30 12:44:53</TD><TD>400.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>12660</TD><TD>2013-03-30 15:39:14</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>JBSWI3041</TD><TD>SATURN</TD><TD>206.262529167</TD><TD>-7.90698611111</TD><TD>0</TD><TD>2012-03-30 12:45:50</TD><TD>2012-03-30 12:56:51</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>12660</TD><TD>2013-03-30 15:39:34</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>JBSWI4011</TD><TD>SATURN</TD><TD>206.197120833</TD><TD>-7.88061666667</TD><TD>0</TD><TD>2012-03-31 12:09:30</TD><TD>2012-03-31 12:20:31</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>12660</TD><TD>2013-03-31 17:15:43</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>JBSWI4021</TD><TD>SATURN</TD><TD>206.196541667</TD><TD>-7.88038333333</TD><TD>0</TD><TD>2012-03-31 12:21:28</TD><TD>2012-03-31 12:32:29</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>12660</TD><TD>2013-03-31 17:15:48</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>JBSWI4031</TD><TD>SATURN</TD><TD>206.195979167</TD><TD>-7.88015833333</TD><TD>0</TD><TD>2012-03-31 12:33:08</TD><TD>2012-03-31 12:41:49</TD><TD>400.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>12660</TD><TD>2013-03-31 17:16:02</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>JBSWI4041</TD><TD>SATURN</TD><TD>206.195545833</TD><TD>-7.87998333333</TD><TD>0</TD><TD>2012-03-31 12:42:46</TD><TD>2012-03-31 12:53:47</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>12660</TD><TD>2013-03-31 17:16:23</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>JBSWI5011</TD><TD>SATURN</TD><TD>206.134079167</TD><TD>-7.85528611111</TD><TD>0</TD><TD>2012-04-01 10:30:37</TD><TD>2012-04-01 10:41:38</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>12660</TD><TD>2013-04-01 13:10:26</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>JBSWI5021</TD><TD>SATURN</TD><TD>206.133495833</TD><TD>-7.85505277778</TD><TD>0</TD><TD>2012-04-01 10:42:35</TD><TD>2012-04-01 10:53:36</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>12660</TD><TD>2013-04-01 13:11:01</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>JBSWI5031</TD><TD>SATURN</TD><TD>206.132933333</TD><TD>-7.854825</TD><TD>0</TD><TD>2012-04-01 10:54:42</TD><TD>2012-04-01 11:03:23</TD><TD>400.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F140LP;N/A;F140LP</TD><TD>12660</TD><TD>2013-04-01 13:11:06</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>JBSWI5041</TD><TD>SATURN</TD><TD>206.132470833</TD><TD>-7.85463888889</TD><TD>0</TD><TD>2012-04-01 11:04:25</TD><TD>2012-04-01 11:15:26</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>12660</TD><TD>2013-04-01 13:11:32</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>JBSWI6011</TD><TD>SATURN</TD><TD>206.066</TD><TD>-7.82801666667</TD><TD>0</TD><TD>2012-04-02 10:27:38</TD><TD>2012-04-02 10:38:39</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>12660</TD><TD>2013-04-02 15:27:38</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>JBSWI6021</TD><TD>SATURN</TD><TD>206.0654125</TD><TD>-7.82778333333</TD><TD>0</TD><TD>2012-04-02 10:39:36</TD><TD>2012-04-02 10:50:37</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>12660</TD><TD>2013-04-02 15:28:13</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>JBSWI6031</TD><TD>SATURN</TD><TD>206.064841667</TD><TD>-7.82755555556</TD><TD>0</TD><TD>2012-04-02 10:51:16</TD><TD>2012-04-02 10:59:57</TD><TD>400.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>12660</TD><TD>2013-04-02 15:28:18</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>JBSWI6041</TD><TD>SATURN</TD><TD>206.0644</TD><TD>-7.82737777778</TD><TD>0</TD><TD>2012-04-02 11:00:54</TD><TD>2012-04-02 11:11:55</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>12660</TD><TD>2013-04-02 15:28:43</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>JBSWI7011</TD><TD>SATURN</TD><TD>205.997404167</TD><TD>-7.80063611111</TD><TD>0</TD><TD>2012-04-03 10:24:31</TD><TD>2012-04-03 10:35:32</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>12660</TD><TD>2013-04-03 14:22:07</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>JBSWI7021</TD><TD>SATURN</TD><TD>205.9968125</TD><TD>-7.8004</TD><TD>0</TD><TD>2012-04-03 10:36:29</TD><TD>2012-04-03 10:47:30</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>12660</TD><TD>2013-04-03 14:22:12</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>JBSWI7031</TD><TD>SATURN</TD><TD>205.996241667</TD><TD>-7.80017222222</TD><TD>0</TD><TD>2012-04-03 10:48:09</TD><TD>2012-04-03 10:56:50</TD><TD>400.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>12660</TD><TD>2013-04-03 14:22:38</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>JBSWI7041</TD><TD>SATURN</TD><TD>205.995795833</TD><TD>-7.79999166667</TD><TD>0</TD><TD>2012-04-03 10:57:47</TD><TD>2012-04-03 11:08:48</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>12660</TD><TD>2013-04-03 14:22:53</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>JBSWI8011</TD><TD>SATURN</TD><TD>205.9190875</TD><TD>-7.76948055556</TD><TD>0</TD><TD>2012-04-04 13:32:55</TD><TD>2012-04-04 13:43:56</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>12660</TD><TD>2013-04-05 01:39:14</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>JBSWI8021</TD><TD>SATURN</TD><TD>205.918491667</TD><TD>-7.76924444444</TD><TD>0</TD><TD>2012-04-04 13:44:53</TD><TD>2012-04-04 13:55:54</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>12660</TD><TD>2013-04-05 01:39:30</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>JBSWI8031</TD><TD>SATURN</TD><TD>205.9179125</TD><TD>-7.76901388889</TD><TD>0</TD><TD>2012-04-04 13:56:33</TD><TD>2012-04-04 14:05:14</TD><TD>400.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>12660</TD><TD>2013-04-05 01:39:44</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>JBSWI8041</TD><TD>SATURN</TD><TD>205.9174625</TD><TD>-7.76883611111</TD><TD>0</TD><TD>2012-04-04 14:06:11</TD><TD>2012-04-04 14:17:12</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>12660</TD><TD>2013-04-05 01:40:05</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>JBSWI9011</TD><TD>SATURN</TD><TD>205.8588125</TD><TD>-7.74558055556</TD><TD>0</TD><TD>2012-04-05 10:18:07</TD><TD>2012-04-05 10:29:08</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>12660</TD><TD>2013-04-05 22:17:42</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>JBSWI9021</TD><TD>SATURN</TD><TD>205.8582125</TD><TD>-7.74534166667</TD><TD>0</TD><TD>2012-04-05 10:30:05</TD><TD>2012-04-05 10:41:06</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>12660</TD><TD>2013-04-05 22:18:51</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>JBSWI9031</TD><TD>SATURN</TD><TD>205.857633333</TD><TD>-7.74511111111</TD><TD>0</TD><TD>2012-04-05 10:41:45</TD><TD>2012-04-05 10:50:26</TD><TD>400.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>12660</TD><TD>2013-04-05 22:18:51</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>JBSWI9041</TD><TD>SATURN</TD><TD>205.857179167</TD><TD>-7.74493333333</TD><TD>0</TD><TD>2012-04-05 10:51:23</TD><TD>2012-04-05 11:02:24</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>12660</TD><TD>2013-04-05 22:18:51</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>JBSWIA011</TD><TD>SATURN</TD><TD>205.784208333</TD><TD>-7.71608611111</TD><TD>0</TD><TD>2012-04-06 11:50:38</TD><TD>2012-04-06 12:01:39</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>12660</TD><TD>2013-04-07 03:23:25</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>JBSWIA021</TD><TD>SATURN</TD><TD>205.783604167</TD><TD>-7.71585</TD><TD>0</TD><TD>2012-04-06 12:02:36</TD><TD>2012-04-06 12:13:37</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>12660</TD><TD>2013-04-07 03:23:41</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>JBSWIA031</TD><TD>SATURN</TD><TD>205.783020833</TD><TD>-7.71561944444</TD><TD>0</TD><TD>2012-04-06 12:14:16</TD><TD>2012-04-06 12:22:57</TD><TD>400.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F115LP;N/A;F115LP</TD><TD>12660</TD><TD>2013-04-07 03:24:01</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>JBSWIA041</TD><TD>SATURN</TD><TD>205.7825625</TD><TD>-7.71543888889</TD><TD>0</TD><TD>2012-04-06 12:23:54</TD><TD>2012-04-06 12:34:55</TD><TD>500.000</TD><TD>ACS   </TD><TD>SBC-FIX</TD><TD>F125LP;N/A;F125LP</TD><TD>12660</TD><TD>2013-04-07 03:24:06</TD><TD/><TD/>
+
+</TR>
+
+</TABLEDATA>
+
+</DATA>
+
+</TABLE>
+
+</RESOURCE>
+
+</VOTABLE>
diff --git a/generic_data/Hst/hstVOtable-uranus.xml b/generic_data/Hst/hstVOtable-uranus.xml
new file mode 100644
index 0000000..b431e8e
--- /dev/null
+++ b/generic_data/Hst/hstVOtable-uranus.xml
@@ -0,0 +1,1372 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<VOTABLE version="v1.0">
+
+ <DESCRIPTION>
+
+   Mikulski Archive for Space Telescopes (MAST)    archive.stsci.edu
+
+   send questions to: archive@stsci.edu
+
+ </DESCRIPTION>
+
+<DEFINITIONS>
+
+  <COOSYS ID="myJ2000" system="eq_FK5" equinox="2000." epoch="2000."/>
+
+</DEFINITIONS>
+
+<RESOURCE type="results">
+
+<INFO name="QUERY_STATUS" value="OK"/>
+
+<PARAM ID="sci_pep_id" name="sci_pep_id" value="13012,12601,10502,7439,6291,5757,5414,5220"/>
+
+<PARAM ID="ordercolumn1" name="ordercolumn1" value="sci_start_time"/>
+
+<PARAM ID="ordercolumn2" name="ordercolumn2" value="sci_targname"/>
+
+<PARAM ID="ordercolumn3" name="ordercolumn3" value="sci_data_set_name"/>
+
+<PARAM ID="max_records" name="max_records" value="2000"/>
+
+<PARAM ID="verb" name="verb" value="1"/>
+
+<PARAM ID="coordformat" name="coordformat" value="sex"/>
+
+<PARAM ID="mission" name="mission" value="hst"/>
+
+<PARAM ID="target" name="target" value=""/>
+
+<PARAM ID="found_rows" name="found_rows" value="204"/>
+
+<TABLE name="HST">
+
+<DESCRIPTION>MAST HST Search: 204 row(s) returned!</DESCRIPTION>
+
+<FIELD name="Dataset" datatype="char" ucd="ID_MAIN" arraysize="*"><DESCRIPTION>Data set name First character indicates instrument; L=COS; I=WFC3; J=ACS; N=NICMOS; O=STIS; U=WFPC2; W=WFPC; X=FOC; Y=FOS; Z=GHRS; F=FGS; V=HSP;
+
+   </DESCRIPTION>
+
+</FIELD>
+
+<FIELD name="Target Name" datatype="char" ucd="ID_TARGET" arraysize="*"><DESCRIPTION>Observer assigned target name; uppercase; no blank characters;  spaces sometimes filled with - ; use with wildcards
+
+   </DESCRIPTION>
+
+</FIELD>
+
+<FIELD name="RA (J2000)" datatype="double" ucd="POS_EQ_RA_MAIN" unit="degrees" ref="myJ2000"><DESCRIPTION>Right Ascension (J2000)
+
+   </DESCRIPTION>
+
+</FIELD>
+
+<FIELD name="Dec (J2000)" datatype="double" ucd="POS_EQ_DEC_MAIN" unit="degrees" ref="myJ2000"><DESCRIPTION>Declination (J2000)
+
+   </DESCRIPTION>
+
+</FIELD>
+
+<FIELD name="Ref" datatype="int" ucd="REFER_CODE"><DESCRIPTION>The number of known literature references associated with the listed proposal ID (HST) or data set name.
+
+   </DESCRIPTION>
+
+</FIELD>
+
+<FIELD name="Start Time" datatype="char" ucd="TIME_DATE" arraysize="*"><DESCRIPTION>Observation start time
+
+   </DESCRIPTION>
+
+</FIELD>
+
+<FIELD name="Stop Time" datatype="char" ucd="TIME_DATE" arraysize="*"><DESCRIPTION>Observation stop time
+
+   </DESCRIPTION>
+
+</FIELD>
+
+<FIELD name="Exp Time" datatype="float" ucd="TIME_EXPTIME" unit="seconds"><DESCRIPTION>Exposure time
+
+   </DESCRIPTION>
+
+</FIELD>
+
+<FIELD name="Instrument" datatype="char" ucd="INST_ID" arraysize="*"><DESCRIPTION>Instrument used
+
+   </DESCRIPTION>
+
+</FIELD>
+
+<FIELD name="Apertures" datatype="char" ucd="INST_APERT" arraysize="*"><DESCRIPTION>Aperture configuration See  &amp;#60;a href=&amp;#34;/hst/aperturelist.html&amp;#34;&amp;#62; a complete list&amp;#60;/a&amp;#62;
+
+   </DESCRIPTION>
+
+</FIELD>
+
+<FIELD name="Filters/Gratings" datatype="char" ucd="INST_FILTER" arraysize="*"><DESCRIPTION>Filter used. See &lt;a href="/hst/filterlist.html"&gt;a more complete list&lt;/a&gt; Sometimes combined so wildcard search may be needed
+
+   </DESCRIPTION>
+
+</FIELD>
+
+<FIELD name="Proposal ID" datatype="int" ucd="OBS_ID"><DESCRIPTION>Integer assign to each proposal
+
+   </DESCRIPTION>
+
+</FIELD>
+
+<FIELD name="Release Date" datatype="char" ucd="TIME_DATE" arraysize="*"><DESCRIPTION>Date data become publicly available
+
+   </DESCRIPTION>
+
+</FIELD>
+
+<FIELD name="Preview Name" datatype="char" ucd="ID_DATA" arraysize="*"><DESCRIPTION>Preview name (generally the same as the data set name)
+
+   </DESCRIPTION>
+
+</FIELD>
+
+<FIELD name="High-Level Science Products" datatype="int"><DESCRIPTION>Number of known High Level Science Products
+
+   </DESCRIPTION>
+
+</FIELD>
+
+<DATA>
+
+<TABLEDATA>
+
+<TR>
+
+<TD>Z2IJ0101T</TD><TD>TITANIA-ACQ</TD><TD/><TD/><TD>1</TD><TD/><TD/><TD/><TD>HRS   </TD><TD>2.0</TD><TD>MIRROR-N2</TD><TD>5414</TD><TD>1995-09-21 14:37:20</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2IJ0103T</TD><TD>TITANIA-ACQ</TD><TD/><TD/><TD>1</TD><TD/><TD/><TD/><TD>HRS   </TD><TD>2.0</TD><TD>MIRROR-N2</TD><TD>5414</TD><TD>1995-09-22 16:34:21</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z32Y0101T</TD><TD>TITANIA-OFFSET</TD><TD/><TD/><TD>0</TD><TD/><TD/><TD/><TD>HRS   </TD><TD>2.0</TD><TD>MIRROR-N2</TD><TD>6291</TD><TD>1997-04-25 12:05:25</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z32Y0103T</TD><TD>TITANIA-OFFSET</TD><TD/><TD/><TD>0</TD><TD/><TD/><TD/><TD>HRS   </TD><TD>2.0</TD><TD>MIRROR-N2</TD><TD>6291</TD><TD>1997-04-25 18:04:12</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2IJ0301T</TD><TD>TRITON-ACQ</TD><TD/><TD/><TD>1</TD><TD/><TD/><TD/><TD>HRS   </TD><TD>2.0</TD><TD>MIRROR-N2</TD><TD>5414</TD><TD>1995-09-19 17:56:55</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2IJ0303T</TD><TD>TRITON-ACQ</TD><TD/><TD/><TD>1</TD><TD/><TD/><TD/><TD>HRS   </TD><TD>2.0</TD><TD>MIRROR-N2</TD><TD>5414</TD><TD>1995-09-20 20:15:13</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U2HL0101T</TD><TD>URANUS-AUR1</TD><TD>295.032275</TD><TD>-21.9954222222</TD><TD>0</TD><TD>1994-08-22 09:27:16</TD><TD>1994-08-22 09:27:28</TD><TD>12.000</TD><TD>WFPC2 </TD><TD>WF4-FIX</TD><TD>F673N</TD><TD>5220</TD><TD>1995-08-22 21:44:23</TD><TD>U2HL0101T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U2HL0102T</TD><TD>URANUS-AUR1</TD><TD>295.0318125</TD><TD>-21.9954944444</TD><TD>0</TD><TD>1994-08-22 09:31:16</TD><TD>1994-08-22 09:47:56</TD><TD>1000.000</TD><TD>WFPC2 </TD><TD>WF4-FIX</TD><TD>F160BW;F165LP</TD><TD>5220</TD><TD>1995-08-23 22:47:54</TD><TD>U2HL0102T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U2HL0103T</TD><TD>URANUS-AUR1</TD><TD>295.030141667</TD><TD>-21.99575</TD><TD>0</TD><TD>1994-08-22 10:47:16</TD><TD>1994-08-22 11:03:56</TD><TD>1000.000</TD><TD>WFPC2 </TD><TD>WF4-FIX</TD><TD>F160BW</TD><TD>5220</TD><TD>1995-08-22 21:49:54</TD><TD>U2HL0103T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U2HL0104T</TD><TD>URANUS-AUR1</TD><TD>295.029658333</TD><TD>-21.9958222222</TD><TD>0</TD><TD>1994-08-22 11:10:16</TD><TD>1994-08-22 11:26:56</TD><TD>1000.000</TD><TD>WFPC2 </TD><TD>WF4-FIX</TD><TD>F160BW</TD><TD>5220</TD><TD>1995-08-22 21:55:19</TD><TD>U2HL0104T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U2HL0105T</TD><TD>URANUS-AUR1</TD><TD>295.0280375</TD><TD>-21.9960722222</TD><TD>0</TD><TD>1994-08-22 12:24:16</TD><TD>1994-08-22 12:40:56</TD><TD>1000.000</TD><TD>WFPC2 </TD><TD>WF4-FIX</TD><TD>F160BW</TD><TD>5220</TD><TD>1995-08-22 22:00:19</TD><TD>U2HL0105T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U2HL0106T</TD><TD>URANUS-AUR1</TD><TD>295.027533333</TD><TD>-21.99615</TD><TD>0</TD><TD>1994-08-22 12:47:16</TD><TD>1994-08-22 13:03:56</TD><TD>1000.000</TD><TD>WFPC2 </TD><TD>WF4-FIX</TD><TD>F160BW</TD><TD>5220</TD><TD>1995-08-22 22:05:18</TD><TD>U2HL0106T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U2HL0107T</TD><TD>URANUS-AUR1</TD><TD>295.0258875</TD><TD>-21.9964</TD><TD>0</TD><TD>1994-08-22 14:02:16</TD><TD>1994-08-22 14:18:56</TD><TD>1000.000</TD><TD>WFPC2 </TD><TD>WF4-FIX</TD><TD>F160BW;F165LP</TD><TD>5220</TD><TD>1995-08-23 23:00:57</TD><TD>U2HL0107T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>U2HL0108T</TD><TD>URANUS-AUR1</TD><TD>295.025820833</TD><TD>-21.9964111111</TD><TD>0</TD><TD>1994-08-22 14:22:16</TD><TD>1994-08-22 14:22:28</TD><TD>12.000</TD><TD>WFPC2 </TD><TD>WF4-FIX</TD><TD>F673N</TD><TD>5220</TD><TD>1995-08-22 22:33:38</TD><TD>U2HL0108T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2IJ0302T</TD><TD>TRITON-ACQ</TD><TD>292.249904167</TD><TD>-21.4061472222</TD><TD>1</TD><TD>1994-09-19 04:53:16</TD><TD>1994-09-19 05:08:33</TD><TD>0.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>MIRROR-N2</TD><TD>5414</TD><TD>1995-09-19 17:58:01</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2IJ0304T</TD><TD>TRITON-ACQ</TD><TD>292.280595833</TD><TD>-21.2612638889</TD><TD>1</TD><TD>1994-09-19 05:21:40</TD><TD>1994-09-19 05:24:48</TD><TD>1.350</TD><TD>HRS   </TD><TD>2.0</TD><TD>MIRROR-N2</TD><TD>5414</TD><TD>1995-09-20 01:26:07</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2IJ0305T</TD><TD>SPYBAL</TD><TD>292.278045833</TD><TD>-21.2581722222</TD><TD>1</TD><TD>1994-09-19 06:39:02</TD><TD>1994-09-19 06:39:39</TD><TD>32.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5414</TD><TD>1995-09-20 01:36:22</TD><TD>Z2IJ0305T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2IJ0306T</TD><TD>NEPTUNE</TD><TD>292.278045833</TD><TD>-21.2581722222</TD><TD>1</TD><TD>1994-09-19 06:40:24</TD><TD>1994-09-19 07:00:31</TD><TD>1088.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5414</TD><TD>1995-09-20 01:40:08</TD><TD>Z2IJ0306T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2IJ0307T</TD><TD>SPYBAL</TD><TD>292.277541667</TD><TD>-21.258275</TD><TD>1</TD><TD>1994-09-19 08:15:28</TD><TD>1994-09-19 08:16:05</TD><TD>32.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5414</TD><TD>1995-09-20 01:41:29</TD><TD>Z2IJ0307T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2IJ0308T</TD><TD>NEPTUNE</TD><TD>292.277541667</TD><TD>-21.258275</TD><TD>1</TD><TD>1994-09-19 08:16:40</TD><TD>1994-09-19 08:36:47</TD><TD>1088.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5414</TD><TD>1995-09-20 01:45:10</TD><TD>Z2IJ0308T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2IJ0309T</TD><TD>SPYBAL</TD><TD>292.277025</TD><TD>-21.2583833333</TD><TD>1</TD><TD>1994-09-19 09:55:01</TD><TD>1994-09-19 09:55:38</TD><TD>32.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5414</TD><TD>1995-09-20 01:46:44</TD><TD>Z2IJ0309T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2IJ030AT</TD><TD>NEPTUNE</TD><TD>292.277025</TD><TD>-21.2583833333</TD><TD>1</TD><TD>1994-09-19 09:56:10</TD><TD>1994-09-19 10:06:44</TD><TD>544.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5414</TD><TD>1995-09-20 01:49:02</TD><TD>Z2IJ030AT</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2IJ030BT</TD><TD>WAVE</TD><TD>0.0001875</TD><TD>-0.00127222222222</TD><TD>1</TD><TD>1994-09-19 10:09:11</TD><TD>1994-09-19 10:09:41</TD><TD>27.200</TD><TD>HRS   </TD><TD>SC2</TD><TD>ECH-A</TD><TD>5414</TD><TD>1995-09-20 01:50:15</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2IJ030CT</TD><TD>SPYBAL</TD><TD>292.276541667</TD><TD>-21.2418194444</TD><TD>1</TD><TD>1994-09-19 11:28:26</TD><TD>1994-09-19 11:29:03</TD><TD>32.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5414</TD><TD>1995-09-20 01:51:37</TD><TD>Z2IJ030CT</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2IJ030DT</TD><TD>NEPTUNE-OFFSET-SKY</TD><TD>292.276541667</TD><TD>-21.2418194444</TD><TD>1</TD><TD>1994-09-19 11:29:34</TD><TD>1994-09-19 11:52:00</TD><TD>1196.799</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5414</TD><TD>1995-09-20 01:55:21</TD><TD>Z2IJ030DT</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2IJ030ET</TD><TD>SPYBAL</TD><TD>292.276033333</TD><TD>-21.241925</TD><TD>1</TD><TD>1994-09-19 13:08:02</TD><TD>1994-09-19 13:08:39</TD><TD>32.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5414</TD><TD>1995-09-20 01:56:15</TD><TD>Z2IJ030ET</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2IJ030FT</TD><TD>NEPTUNE-OFFSET-SKY</TD><TD>292.276033333</TD><TD>-21.241925</TD><TD>1</TD><TD>1994-09-19 13:09:10</TD><TD>1994-09-19 13:20:53</TD><TD>598.400</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5414</TD><TD>1995-09-20 01:58:39</TD><TD>Z2IJ030FT</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2IJ0102T</TD><TD>TITANIA-ACQ</TD><TD>294.371825</TD><TD>-22.2112222222</TD><TD>1</TD><TD>1994-09-20 06:35:52</TD><TD>1994-09-20 06:48:01</TD><TD>0.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>MIRROR-N2</TD><TD>5414</TD><TD>1995-09-21 14:38:15</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2IJ0104T</TD><TD>TITANIA-ACQ</TD><TD>294.399258333</TD><TD>-22.0656027778</TD><TD>1</TD><TD>1994-09-20 07:03:58</TD><TD>1994-09-20 07:07:06</TD><TD>1.350</TD><TD>HRS   </TD><TD>2.0</TD><TD>MIRROR-N2</TD><TD>5414</TD><TD>1995-09-21 14:39:40</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2IJ0201T</TD><TD>SPYBAL</TD><TD>294.403545833</TD><TD>-22.0721944444</TD><TD>1</TD><TD>1994-09-20 08:23:14</TD><TD>1994-09-20 08:23:51</TD><TD>32.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5414</TD><TD>1995-09-21 14:44:25</TD><TD>Z2IJ0201T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2IJ0202T</TD><TD>URANUS-CENTER</TD><TD>294.403545833</TD><TD>-22.0721944444</TD><TD>1</TD><TD>1994-09-20 08:24:22</TD><TD>1994-09-20 08:46:48</TD><TD>1196.799</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5414</TD><TD>1995-09-21 14:53:22</TD><TD>Z2IJ0202T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2IJ0203T</TD><TD>SPYBAL</TD><TD>294.402858333</TD><TD>-22.0722805556</TD><TD>1</TD><TD>1994-09-20 09:59:45</TD><TD>1994-09-20 10:00:22</TD><TD>32.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5414</TD><TD>1995-09-21 14:56:22</TD><TD>Z2IJ0203T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2IJ0204T</TD><TD>URANUS-CENTER</TD><TD>294.402858333</TD><TD>-22.0722805556</TD><TD>1</TD><TD>1994-09-20 10:00:58</TD><TD>1994-09-20 10:12:41</TD><TD>598.400</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5414</TD><TD>1995-09-21 15:01:51</TD><TD>Z2IJ0204T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2IJ0205T</TD><TD>SPYBAL</TD><TD>294.402308333</TD><TD>-22.0722611111</TD><TD>1</TD><TD>1994-09-20 10:18:02</TD><TD>1994-09-20 10:18:39</TD><TD>32.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5414</TD><TD>1995-09-21 15:03:27</TD><TD>Z2IJ0205T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2IJ0206T</TD><TD>URANUS-AUR</TD><TD>294.402308333</TD><TD>-22.0722611111</TD><TD>1</TD><TD>1994-09-20 10:19:10</TD><TD>1994-09-20 10:25:32</TD><TD>299.200</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5414</TD><TD>1995-09-21 15:09:21</TD><TD>Z2IJ0206T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2IJ0207T</TD><TD>SPYBAL</TD><TD>294.401754167</TD><TD>-22.0723305556</TD><TD>1</TD><TD>1994-09-20 11:36:15</TD><TD>1994-09-20 11:36:52</TD><TD>32.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5414</TD><TD>1995-09-21 15:12:25</TD><TD>Z2IJ0207T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2IJ0208T</TD><TD>URANUS-AUR</TD><TD>294.401754167</TD><TD>-22.0723305556</TD><TD>1</TD><TD>1994-09-20 11:37:28</TD><TD>1994-09-20 11:59:55</TD><TD>1196.799</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5414</TD><TD>1995-09-21 15:22:06</TD><TD>Z2IJ0208T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2IJ0209T</TD><TD>SPYBAL</TD><TD>294.40105</TD><TD>-22.0724194444</TD><TD>1</TD><TD>1994-09-20 13:16:09</TD><TD>1994-09-20 13:16:46</TD><TD>32.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5414</TD><TD>1995-09-21 15:24:57</TD><TD>Z2IJ0209T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2IJ020AT</TD><TD>URANUS-AUR</TD><TD>294.40105</TD><TD>-22.0724194444</TD><TD>1</TD><TD>1994-09-20 13:17:22</TD><TD>1994-09-20 13:23:44</TD><TD>299.200</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5414</TD><TD>1995-09-21 15:30:40</TD><TD>Z2IJ020AT</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2IJ020BT</TD><TD>WAVE</TD><TD>0.000216666666667</TD><TD>-0.00126666666667</TD><TD>1</TD><TD>1994-09-20 13:26:05</TD><TD>1994-09-20 13:26:35</TD><TD>27.200</TD><TD>HRS   </TD><TD>SC2</TD><TD>ECH-A</TD><TD>5414</TD><TD>1995-09-21 15:33:05</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2JR0201T</TD><TD>SPYBAL</TD><TD>7.91666666667E-5</TD><TD>-8.33333333333E-6</TD><TD>0</TD><TD>1994-10-24 09:53:35</TD><TD>1994-10-24 09:54:20</TD><TD>32.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5757</TD><TD>1995-10-25 15:32:24</TD><TD>Z2JR0201T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2JR0202T</TD><TD>SATURN-EW</TD><TD>338.4753875</TD><TD>-11.1301222222</TD><TD>0</TD><TD>1994-10-24 09:56:05</TD><TD>1994-10-24 10:14:40</TD><TD>952.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5757</TD><TD>1995-10-25 15:38:01</TD><TD>Z2JR0202T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2JR0203T</TD><TD>SPYBAL</TD><TD>338.4753875</TD><TD>-11.1301194444</TD><TD>0</TD><TD>1994-10-24 11:29:25</TD><TD>1994-10-24 11:30:12</TD><TD>32.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5757</TD><TD>1995-10-25 15:40:08</TD><TD>Z2JR0203T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2JR0204T</TD><TD>SATURN-EW</TD><TD>338.4753875</TD><TD>-11.1301194444</TD><TD>0</TD><TD>1994-10-24 11:30:47</TD><TD>1994-10-24 11:35:38</TD><TD>272.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5757</TD><TD>1995-10-25 15:43:22</TD><TD>Z2JR0204T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2JR0205T</TD><TD>WAVE</TD><TD>0.0004375</TD><TD>-0.00120833333333</TD><TD>0</TD><TD>1994-10-24 11:38:17</TD><TD>1994-10-24 11:40:31</TD><TD>115.600</TD><TD>HRS   </TD><TD>SC2</TD><TD>ECH-A</TD><TD>5757</TD><TD>1995-10-25 15:45:58</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2JR0206T</TD><TD>SPYBAL</TD><TD>7.91666666667E-5</TD><TD>-8.33333333333E-6</TD><TD>0</TD><TD>1994-10-24 13:06:15</TD><TD>1994-10-24 13:07:01</TD><TD>32.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5757</TD><TD>1995-10-25 15:48:24</TD><TD>Z2JR0206T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2JR0207T</TD><TD>SATURN-EW</TD><TD>338.4753875</TD><TD>-11.1301222222</TD><TD>0</TD><TD>1994-10-24 13:08:47</TD><TD>1994-10-24 13:27:22</TD><TD>952.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5757</TD><TD>1995-10-25 15:53:05</TD><TD>Z2JR0207T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2JR0101T</TD><TD>SPYBAL</TD><TD>359.999995833</TD><TD>-5.55555555556E-5</TD><TD>0</TD><TD>1994-10-24 14:42:42</TD><TD>1994-10-24 14:43:28</TD><TD>32.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5757</TD><TD>1995-10-25 15:55:18</TD><TD>Z2JR0101T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2JR0102T</TD><TD>SATURN-NS</TD><TD>338.470125</TD><TD>-11.1317583333</TD><TD>0</TD><TD>1994-10-24 14:45:29</TD><TD>1994-10-24 15:04:05</TD><TD>952.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5757</TD><TD>1995-10-25 15:59:29</TD><TD>Z2JR0102T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2JR0103T</TD><TD>SPYBAL</TD><TD>338.470125</TD><TD>-11.1317583333</TD><TD>0</TD><TD>1994-10-24 16:19:15</TD><TD>1994-10-24 16:20:01</TD><TD>32.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5757</TD><TD>1995-10-25 16:01:12</TD><TD>Z2JR0103T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2JR0104T</TD><TD>SATURN-NS</TD><TD>338.470125</TD><TD>-11.1317583333</TD><TD>0</TD><TD>1994-10-24 16:20:35</TD><TD>1994-10-24 16:25:26</TD><TD>272.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5757</TD><TD>1995-10-25 16:03:14</TD><TD>Z2JR0104T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2JR0105T</TD><TD>WAVE</TD><TD>0.0004625</TD><TD>-0.0012</TD><TD>0</TD><TD>1994-10-24 16:27:59</TD><TD>1994-10-24 16:30:13</TD><TD>115.600</TD><TD>HRS   </TD><TD>SC2</TD><TD>ECH-A</TD><TD>5757</TD><TD>1995-10-25 16:05:03</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2JR0106T</TD><TD>SPYBAL</TD><TD>359.999995833</TD><TD>-5.55555555556E-5</TD><TD>0</TD><TD>1994-10-24 17:56:02</TD><TD>1994-10-24 17:56:48</TD><TD>32.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5757</TD><TD>1995-10-25 16:06:39</TD><TD>Z2JR0106T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2JR0107T</TD><TD>SATURN-NS</TD><TD>338.470125</TD><TD>-11.1317583333</TD><TD>0</TD><TD>1994-10-24 17:58:29</TD><TD>1994-10-24 18:17:04</TD><TD>952.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5757</TD><TD>1995-10-25 16:09:59</TD><TD>Z2JR0107T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z32Y0102T</TD><TD>TITANIA-OFFSET</TD><TD>307.0337375</TD><TD>-19.6745888889</TD><TD>0</TD><TD>1996-04-25 01:18:10</TD><TD>1996-04-25 01:25:44</TD><TD>0.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>MIRROR-N2</TD><TD>6291</TD><TD>1997-04-25 12:16:10</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z32Y0104T</TD><TD>TITANIA-OFFSET</TD><TD>307.033933333</TD><TD>-19.6744777778</TD><TD>0</TD><TD>1996-04-25 01:38:16</TD><TD>1996-04-25 01:48:43</TD><TD>4.650</TD><TD>HRS   </TD><TD>2.0</TD><TD>MIRROR-N2</TD><TD>6291</TD><TD>1997-04-25 12:20:43</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z32Y0105T</TD><TD>WAVE</TD><TD>359.999416667</TD><TD>0.00150277777778</TD><TD>0</TD><TD>1996-04-25 02:39:51</TD><TD>1996-04-25 02:39:58</TD><TD>4.800</TD><TD>HRS   </TD><TD>SC2</TD><TD>G140L</TD><TD>6291</TD><TD>1997-04-25 12:25:22</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z32Y0106T</TD><TD>WAVE</TD><TD>359.999416667</TD><TD>0.00150277777778</TD><TD>0</TD><TD>1996-04-25 02:40:28</TD><TD>1996-04-25 02:40:58</TD><TD>27.200</TD><TD>HRS   </TD><TD>SC2</TD><TD>G140L</TD><TD>6291</TD><TD>1997-04-25 12:25:32</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z32Y0107T</TD><TD>URANUS</TD><TD>307.0400875</TD><TD>-19.6779861111</TD><TD>0</TD><TD>1996-04-25 02:43:10</TD><TD>1996-04-25 02:50:01</TD><TD>408.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>G140L</TD><TD>6291</TD><TD>1997-04-25 12:27:57</TD><TD>Z32Y0107T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z32Y0108T</TD><TD>SPYBAL</TD><TD>307.040183333</TD><TD>-19.6779694444</TD><TD>0</TD><TD>1996-04-25 02:54:40</TD><TD>1996-04-25 02:54:47</TD><TD>4.800</TD><TD>HRS   </TD><TD>2.0</TD><TD>G140L</TD><TD>6291</TD><TD>1997-04-25 12:29:44</TD><TD>Z32Y0108T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z32Y0109T</TD><TD>URANUS</TD><TD>307.040183333</TD><TD>-19.6779694444</TD><TD>0</TD><TD>1996-04-25 02:55:22</TD><TD>1996-04-25 03:22:50</TD><TD>1632.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>G140L</TD><TD>6291</TD><TD>1997-04-25 12:30:44</TD><TD>Z32Y0109T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z32Y010AT</TD><TD>SPYBAL</TD><TD>307.040841667</TD><TD>-19.67785</TD><TD>0</TD><TD>1996-04-25 04:15:56</TD><TD>1996-04-25 04:16:03</TD><TD>4.800</TD><TD>HRS   </TD><TD>2.0</TD><TD>G140L</TD><TD>6291</TD><TD>1997-04-25 12:32:34</TD><TD>Z32Y010AT</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z32Y010BT</TD><TD>URANUS</TD><TD>307.040841667</TD><TD>-19.67785</TD><TD>0</TD><TD>1996-04-25 04:16:34</TD><TD>1996-04-25 04:37:10</TD><TD>1224.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>G140L</TD><TD>6291</TD><TD>1997-04-25 12:36:00</TD><TD>Z32Y010BT</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z32Y010CT</TD><TD>SPYBAL</TD><TD>307.0410625</TD><TD>-19.6778111111</TD><TD>0</TD><TD>1996-04-25 04:43:04</TD><TD>1996-04-25 04:43:11</TD><TD>4.800</TD><TD>HRS   </TD><TD>2.0</TD><TD>G140L</TD><TD>6291</TD><TD>1997-04-25 12:34:46</TD><TD>Z32Y010CT</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z32Y010DT</TD><TD>URANUS</TD><TD>307.0410625</TD><TD>-19.6778111111</TD><TD>0</TD><TD>1996-04-25 04:43:47</TD><TD>1996-04-25 04:57:29</TD><TD>816.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>G140L</TD><TD>6291</TD><TD>1997-04-25 12:36:54</TD><TD>Z32Y010DT</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z32Y010ET</TD><TD>SPYBAL</TD><TD>307.041625</TD><TD>-19.6777111111</TD><TD>0</TD><TD>1996-04-25 05:52:28</TD><TD>1996-04-25 05:52:35</TD><TD>4.800</TD><TD>HRS   </TD><TD>2.0</TD><TD>G140L</TD><TD>6291</TD><TD>1997-04-25 12:39:03</TD><TD>Z32Y010ET</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z32Y010FT</TD><TD>URANUS</TD><TD>307.041625</TD><TD>-19.6777111111</TD><TD>0</TD><TD>1996-04-25 05:53:10</TD><TD>1996-04-25 06:13:45</TD><TD>1224.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>G140L</TD><TD>6291</TD><TD>1997-04-25 12:41:43</TD><TD>Z32Y010FT</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z32Y010GT</TD><TD>SPYBAL</TD><TD>307.041841667</TD><TD>-19.6776694444</TD><TD>0</TD><TD>1996-04-25 06:20:13</TD><TD>1996-04-25 06:20:50</TD><TD>32.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>6291</TD><TD>1997-04-25 12:41:25</TD><TD>Z32Y010GT</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z32Y010HT</TD><TD>URANUS</TD><TD>307.041841667</TD><TD>-19.6776694444</TD><TD>0</TD><TD>1996-04-25 06:21:22</TD><TD>1996-04-25 06:30:32</TD><TD>544.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>6291</TD><TD>1997-04-25 12:44:09</TD><TD>Z32Y010HT</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z32Y010IT</TD><TD>SPYBAL</TD><TD>307.0424</TD><TD>-19.6775694444</TD><TD>0</TD><TD>1996-04-25 07:29:14</TD><TD>1996-04-25 07:29:51</TD><TD>32.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>6291</TD><TD>1997-04-25 12:43:02</TD><TD>Z32Y010IT</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z32Y010JT</TD><TD>URANUS</TD><TD>307.0424</TD><TD>-19.6775694444</TD><TD>0</TD><TD>1996-04-25 07:30:22</TD><TD>1996-04-25 07:57:55</TD><TD>1632.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>6291</TD><TD>1997-04-25 21:42:32</TD><TD>Z32Y010JT</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z32Y010KT</TD><TD>SPYBAL</TD><TD>307.042675</TD><TD>-19.6775222222</TD><TD>0</TD><TD>1996-04-25 08:03:21</TD><TD>1996-04-25 08:03:58</TD><TD>32.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>6291</TD><TD>1997-04-25 20:07:38</TD><TD>Z32Y010KT</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z32Y010LT</TD><TD>URANUS</TD><TD>307.042675</TD><TD>-19.6775222222</TD><TD>0</TD><TD>1996-04-25 08:04:34</TD><TD>1996-04-25 08:13:44</TD><TD>544.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>6291</TD><TD>1997-04-25 20:09:15</TD><TD>Z32Y010LT</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z32Y010MT</TD><TD>SPYBAL</TD><TD>307.043175</TD><TD>-19.6774305556</TD><TD>0</TD><TD>1996-04-25 09:05:48</TD><TD>1996-04-25 09:06:25</TD><TD>32.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>6291</TD><TD>1997-04-25 20:10:26</TD><TD>Z32Y010MT</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z32Y010NT</TD><TD>URANUS</TD><TD>307.043175</TD><TD>-19.6774305556</TD><TD>0</TD><TD>1996-04-25 09:06:58</TD><TD>1996-04-25 09:34:31</TD><TD>1632.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>6291</TD><TD>1997-04-25 20:16:28</TD><TD>Z32Y010NT</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z32Y010OT</TD><TD>SPYBAL</TD><TD>307.043445833</TD><TD>-19.6773833333</TD><TD>0</TD><TD>1996-04-25 09:39:49</TD><TD>1996-04-25 09:40:26</TD><TD>32.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>6291</TD><TD>1997-04-25 20:16:49</TD><TD>Z32Y010OT</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z32Y010PT</TD><TD>URANUS</TD><TD>307.043445833</TD><TD>-19.6773833333</TD><TD>0</TD><TD>1996-04-25 09:40:58</TD><TD>1996-04-25 09:50:09</TD><TD>544.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>6291</TD><TD>1997-04-25 20:18:06</TD><TD>Z32Y010PT</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z32Y010QT</TD><TD>SPYBAL</TD><TD>307.043941667</TD><TD>-19.6772944444</TD><TD>0</TD><TD>1996-04-25 10:42:18</TD><TD>1996-04-25 10:42:55</TD><TD>32.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>6291</TD><TD>1997-04-25 20:20:23</TD><TD>Z32Y010QT</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z32Y010RT</TD><TD>URANUS</TD><TD>307.043941667</TD><TD>-19.6772944444</TD><TD>0</TD><TD>1996-04-25 10:43:28</TD><TD>1996-04-25 11:11:02</TD><TD>1632.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>6291</TD><TD>1997-04-25 20:21:45</TD><TD>Z32Y010RT</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z32Y010ST</TD><TD>SPYBAL</TD><TD>307.0442125</TD><TD>-19.6772444444</TD><TD>0</TD><TD>1996-04-25 11:16:27</TD><TD>1996-04-25 11:17:04</TD><TD>32.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>6291</TD><TD>1997-04-25 20:19:45</TD><TD>Z32Y010ST</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z32Y010TT</TD><TD>URANUS</TD><TD>307.0442125</TD><TD>-19.6772444444</TD><TD>0</TD><TD>1996-04-25 11:17:40</TD><TD>1996-04-25 11:26:50</TD><TD>544.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>6291</TD><TD>1997-04-25 20:24:06</TD><TD>Z32Y010TT</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2JR1101T</TD><TD>SPYBAL</TD><TD>1.9032625</TD><TD>-1.77748055556</TD><TD>0</TD><TD>1996-12-24 06:08:27</TD><TD>1996-12-24 06:09:04</TD><TD>32.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5757</TD><TD>1997-12-24 17:20:41</TD><TD>Z2JR1101T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2JR1102T</TD><TD>SATURN-EQ</TD><TD>1.9032625</TD><TD>-1.77748055556</TD><TD>0</TD><TD>1996-12-24 06:09:54</TD><TD>1996-12-24 06:23:51</TD><TD>816.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5757</TD><TD>1997-12-24 17:27:01</TD><TD>Z2JR1102T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2JR1103T</TD><TD>SPYBAL</TD><TD>1.903725</TD><TD>-1.77721944444</TD><TD>0</TD><TD>1996-12-24 06:28:31</TD><TD>1996-12-24 06:29:08</TD><TD>32.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5757</TD><TD>1997-12-24 17:23:56</TD><TD>Z2JR1103T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2JR1104T</TD><TD>SATURN-EQ</TD><TD>1.903725</TD><TD>-1.77721944444</TD><TD>0</TD><TD>1996-12-24 06:29:54</TD><TD>1996-12-24 06:44:13</TD><TD>816.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5757</TD><TD>1997-12-24 17:33:51</TD><TD>Z2JR1104T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2JR1105T</TD><TD>WAVE</TD><TD>0.0006</TD><TD>-0.00113611111111</TD><TD>0</TD><TD>1996-12-24 06:46:40</TD><TD>1996-12-24 06:48:41</TD><TD>115.600</TD><TD>HRS   </TD><TD>SC2</TD><TD>ECH-A</TD><TD>5757</TD><TD>1997-12-24 17:33:52</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2JR1106T</TD><TD>SPYBAL</TD><TD>1.90524583333</TD><TD>-1.77734722222</TD><TD>0</TD><TD>1996-12-24 07:38:44</TD><TD>1996-12-24 07:39:21</TD><TD>32.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5757</TD><TD>1997-12-24 17:35:10</TD><TD>Z2JR1106T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2JR1107T</TD><TD>SATURN-S-POLE</TD><TD>1.90524583333</TD><TD>-1.77734722222</TD><TD>0</TD><TD>1996-12-24 07:40:12</TD><TD>1996-12-24 07:54:13</TD><TD>816.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5757</TD><TD>1997-12-24 17:42:26</TD><TD>Z2JR1107T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2JR1108T</TD><TD>SPYBAL</TD><TD>1.90570833333</TD><TD>-1.77708611111</TD><TD>0</TD><TD>1996-12-24 07:59:17</TD><TD>1996-12-24 07:59:55</TD><TD>32.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5757</TD><TD>1997-12-24 17:41:49</TD><TD>Z2JR1108T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2JR1109T</TD><TD>SATURN-S-POLE</TD><TD>1.90570833333</TD><TD>-1.77708611111</TD><TD>0</TD><TD>1996-12-24 08:00:28</TD><TD>1996-12-24 08:17:11</TD><TD>952.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5757</TD><TD>1997-12-24 17:41:46</TD><TD>Z2JR1109T</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2JR110AT</TD><TD>WAVE</TD><TD>0.0006</TD><TD>-0.00113611111111</TD><TD>0</TD><TD>1996-12-24 08:19:46</TD><TD>1996-12-24 08:21:47</TD><TD>115.600</TD><TD>HRS   </TD><TD>SC2</TD><TD>ECH-A</TD><TD>5757</TD><TD>1997-12-24 17:43:51</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2JR110BT</TD><TD>SPYBAL</TD><TD>1.9094875</TD><TD>-1.77531666667</TD><TD>0</TD><TD>1996-12-24 09:15:15</TD><TD>1996-12-24 09:15:52</TD><TD>32.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5757</TD><TD>1997-12-24 17:45:05</TD><TD>Z2JR110BT</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2JR110CT</TD><TD>SATURN-SUNLIT-LIMB</TD><TD>1.9094875</TD><TD>-1.77531666667</TD><TD>0</TD><TD>1996-12-24 09:16:28</TD><TD>1996-12-24 09:30:25</TD><TD>816.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5757</TD><TD>1997-12-24 17:46:24</TD><TD>Z2JR110CT</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2JR110DT</TD><TD>SPYBAL</TD><TD>1.90995</TD><TD>-1.77505277778</TD><TD>0</TD><TD>1996-12-24 09:35:45</TD><TD>1996-12-24 09:36:22</TD><TD>32.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5757</TD><TD>1997-12-24 17:45:59</TD><TD>Z2JR110DT</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2JR110ET</TD><TD>SATURN-SUNLIT-LIMB</TD><TD>1.90995</TD><TD>-1.77505277778</TD><TD>0</TD><TD>1996-12-24 09:36:58</TD><TD>1996-12-24 09:53:41</TD><TD>952.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5757</TD><TD>1997-12-24 17:49:56</TD><TD>Z2JR110ET</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2JR110FT</TD><TD>WAVE</TD><TD>0.0006</TD><TD>-0.00113611111111</TD><TD>0</TD><TD>1996-12-24 09:56:16</TD><TD>1996-12-24 09:58:17</TD><TD>115.600</TD><TD>HRS   </TD><TD>SC2</TD><TD>ECH-A</TD><TD>5757</TD><TD>1997-12-24 17:48:06</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2JR110GT</TD><TD>SPYBAL</TD><TD>1.90968333333</TD><TD>-1.73949444444</TD><TD>0</TD><TD>1996-12-24 10:47:18</TD><TD>1996-12-24 10:47:55</TD><TD>32.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5757</TD><TD>1997-12-24 17:49:58</TD><TD>Z2JR110GT</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2JR110HT</TD><TD>SATURN-OFFSET-SKY</TD><TD>1.90968333333</TD><TD>-1.73949444444</TD><TD>0</TD><TD>1996-12-24 10:48:28</TD><TD>1996-12-24 11:02:25</TD><TD>816.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5757</TD><TD>1997-12-24 17:50:38</TD><TD>Z2JR110HT</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2JR110IT</TD><TD>SPYBAL</TD><TD>1.91015</TD><TD>-1.73923055556</TD><TD>0</TD><TD>1996-12-24 11:07:49</TD><TD>1996-12-24 11:08:26</TD><TD>32.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5757</TD><TD>1997-12-24 17:54:49</TD><TD>Z2JR110IT</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2JR110JT</TD><TD>SATURN-OFFSET-SKY</TD><TD>1.91015</TD><TD>-1.73923055556</TD><TD>0</TD><TD>1996-12-24 11:08:58</TD><TD>1996-12-24 11:25:41</TD><TD>952.000</TD><TD>HRS   </TD><TD>2.0</TD><TD>ECH-A</TD><TD>5757</TD><TD>1997-12-24 17:55:10</TD><TD>Z2JR110JT</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>Z2JR110KT</TD><TD>WAVE</TD><TD>0.0006</TD><TD>-0.00113611111111</TD><TD>0</TD><TD>1996-12-24 11:28:22</TD><TD>1996-12-24 11:30:23</TD><TD>115.600</TD><TD>HRS   </TD><TD>SC2</TD><TD>ECH-A</TD><TD>5757</TD><TD>1997-12-24 17:52:05</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O4WT01T0Q</TD><TD>URANUS</TD><TD>313.634416667</TD><TD>-18.12895</TD><TD>1</TD><TD>1998-07-29 06:07:43</TD><TD>1998-07-29 06:24:23</TD><TD>1000.199</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>7439</TD><TD>1999-07-29 06:24:23</TD><TD>O4WT01T0Q</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O4WT01T2Q</TD><TD>URANUS</TD><TD>313.633779167</TD><TD>-18.129125</TD><TD>1</TD><TD>1998-07-29 06:30:23</TD><TD>1998-07-29 06:47:03</TD><TD>1000.178</TD><TD>STIS  </TD><TD>F25SRF2</TD><TD>MIRFUV</TD><TD>7439</TD><TD>1999-07-29 06:47:03</TD><TD>O4WT01T2Q</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O4WT02BNQ</TD><TD>URANUS</TD><TD>313.588433333</TD><TD>-18.1415694444</TD><TD>1</TD><TD>1998-07-30 09:32:43</TD><TD>1998-07-30 09:49:23</TD><TD>1000.200</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>7439</TD><TD>1999-07-30 09:49:23</TD><TD>O4WT02BNQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O4WT02BPQ</TD><TD>URANUS</TD><TD>313.5878</TD><TD>-18.1417444444</TD><TD>1</TD><TD>1998-07-30 09:55:23</TD><TD>1998-07-30 10:12:03</TD><TD>1000.187</TD><TD>STIS  </TD><TD>F25SRF2</TD><TD>MIRFUV</TD><TD>7439</TD><TD>1999-07-30 10:12:03</TD><TD>O4WT02BPQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O4WT03010</TD><TD>URANUS</TD><TD>311.929170833</TD><TD>-18.5789388889</TD><TD>1</TD><TD>1998-09-14 05:37:38</TD><TD>1998-09-14 05:54:48</TD><TD>1030.200</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>G140L</TD><TD>7439</TD><TD>1999-09-14 05:54:48</TD><TD>O4WT03010</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O4WT03020</TD><TD>URANUS</TD><TD>311.928779167</TD><TD>-18.5790361111</TD><TD>1</TD><TD>1998-09-14 05:58:16</TD><TD>1998-09-14 06:15:26</TD><TD>1030.199</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>G140L</TD><TD>7439</TD><TD>1999-09-14 06:15:26</TD><TD>O4WT03020</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O4WT04010</TD><TD>URANUS</TD><TD>311.922</TD><TD>-18.5807222222</TD><TD>1</TD><TD>1998-09-14 12:04:43</TD><TD>1998-09-14 12:21:53</TD><TD>1030.200</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>G140L</TD><TD>7439</TD><TD>1999-09-14 12:21:53</TD><TD>O4WT04010</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O4WT04020</TD><TD>URANUS</TD><TD>311.921608333</TD><TD>-18.5808194444</TD><TD>1</TD><TD>1998-09-14 12:25:21</TD><TD>1998-09-14 12:42:31</TD><TD>1030.198</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>G140L</TD><TD>7439</TD><TD>1999-09-14 12:42:31</TD><TD>O4WT04020</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O4WT05010</TD><TD>URANUS</TD><TD>311.9025125</TD><TD>-18.5855611111</TD><TD>1</TD><TD>1998-09-15 05:49:03</TD><TD>1998-09-15 06:06:13</TD><TD>1030.200</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>G140L</TD><TD>7439</TD><TD>1999-09-15 06:06:13</TD><TD>O4WT05010</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O4WT05020</TD><TD>URANUS</TD><TD>311.902133333</TD><TD>-18.5856555556</TD><TD>1</TD><TD>1998-09-15 06:09:41</TD><TD>1998-09-15 06:26:51</TD><TD>1030.199</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>G140L</TD><TD>7439</TD><TD>1999-09-15 06:26:51</TD><TD>O4WT05020</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O4WT06010</TD><TD>URANUS</TD><TD>311.8955125</TD><TD>-18.5872972222</TD><TD>1</TD><TD>1998-09-15 12:16:08</TD><TD>1998-09-15 12:33:18</TD><TD>1030.200</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>G140L</TD><TD>7439</TD><TD>1999-09-15 12:33:18</TD><TD>O4WT06010</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>O4WT06020</TD><TD>URANUS</TD><TD>311.895133333</TD><TD>-18.5873916667</TD><TD>1</TD><TD>1998-09-15 12:36:46</TD><TD>1998-09-15 12:53:56</TD><TD>1030.199</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>G140L</TD><TD>7439</TD><TD>1999-09-15 12:53:56</TD><TD>O4WT06020</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9EQ01011</TD><TD>URANUS</TD><TD>341.423458333</TD><TD>-8.73436944444</TD><TD>1</TD><TD>2005-08-10 00:32:04</TD><TD>2005-08-10 00:53:25</TD><TD>1200.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F115LP;N/A;F115LP</TD><TD>10502</TD><TD>2006-08-10 14:36:07</TD><TD>J9EQ01011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9EQ01021</TD><TD>URANUS</TD><TD>341.423083333</TD><TD>-8.73452222222</TD><TD>1</TD><TD>2005-08-10 00:54:31</TD><TD>2005-08-10 01:10:12</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F140LP;N/A;F140LP</TD><TD>10502</TD><TD>2006-08-10 14:45:56</TD><TD>J9EQ01021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9EQ01JGQ</TD><TD>URANUS</TD><TD>341.422895833</TD><TD>-8.7346</TD><TD>1</TD><TD>2005-08-10 01:11:18</TD><TD>2005-08-10 01:17:19</TD><TD>360.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F165LP;N/A;F165LP</TD><TD>10502</TD><TD>2006-08-10 14:36:19</TD><TD>J9EQ01JGQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9EQ02011</TD><TD>URANUS</TD><TD>341.416716667</TD><TD>-8.73714166667</TD><TD>1</TD><TD>2005-08-10 05:19:55</TD><TD>2005-08-10 05:41:16</TD><TD>1200.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F115LP;N/A;F115LP</TD><TD>10502</TD><TD>2006-08-10 15:38:15</TD><TD>J9EQ02011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9EQ02021</TD><TD>URANUS</TD><TD>341.416341667</TD><TD>-8.73729444444</TD><TD>1</TD><TD>2005-08-10 05:42:22</TD><TD>2005-08-10 05:58:03</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F140LP;N/A;F140LP</TD><TD>10502</TD><TD>2006-08-10 15:38:46</TD><TD>J9EQ02021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9EQ02KXQ</TD><TD>URANUS</TD><TD>341.41615</TD><TD>-8.73737222222</TD><TD>1</TD><TD>2005-08-10 05:59:09</TD><TD>2005-08-10 06:05:10</TD><TD>360.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F165LP;N/A;F165LP</TD><TD>10502</TD><TD>2006-08-10 15:38:22</TD><TD>J9EQ02KXQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9EQ03011</TD><TD>URANUS</TD><TD>341.387345833</TD><TD>-8.74920833333</TD><TD>1</TD><TD>2005-08-11 02:07:26</TD><TD>2005-08-11 02:28:47</TD><TD>1200.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F115LP;N/A;F115LP</TD><TD>10502</TD><TD>2006-08-11 12:31:42</TD><TD>J9EQ03011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9EQ03021</TD><TD>URANUS</TD><TD>341.386970833</TD><TD>-8.74936388889</TD><TD>1</TD><TD>2005-08-11 02:29:53</TD><TD>2005-08-11 02:45:34</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F140LP;N/A;F140LP</TD><TD>10502</TD><TD>2006-08-11 12:40:59</TD><TD>J9EQ03021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9EQ03POQ</TD><TD>URANUS</TD><TD>341.386775</TD><TD>-8.74944166667</TD><TD>1</TD><TD>2005-08-11 02:46:40</TD><TD>2005-08-11 02:51:41</TD><TD>300.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F165LP;N/A;F165LP</TD><TD>10502</TD><TD>2006-08-11 12:31:47</TD><TD>J9EQ03POQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9EQ04011</TD><TD>URANUS</TD><TD>341.380533333</TD><TD>-8.75200555556</TD><TD>1</TD><TD>2005-08-11 06:55:20</TD><TD>2005-08-11 07:16:41</TD><TD>1200.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F115LP;N/A;F115LP</TD><TD>10502</TD><TD>2006-08-11 18:46:09</TD><TD>J9EQ04011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9EQ04021</TD><TD>URANUS</TD><TD>341.380158333</TD><TD>-8.75216111111</TD><TD>1</TD><TD>2005-08-11 07:17:47</TD><TD>2005-08-11 07:33:28</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F140LP;N/A;F140LP</TD><TD>10502</TD><TD>2006-08-11 18:46:26</TD><TD>J9EQ04021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9EQ04SJQ</TD><TD>URANUS</TD><TD>341.3799625</TD><TD>-8.75223888889</TD><TD>1</TD><TD>2005-08-11 07:34:34</TD><TD>2005-08-11 07:39:35</TD><TD>300.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F165LP;N/A;F165LP</TD><TD>10502</TD><TD>2006-08-11 18:46:01</TD><TD>J9EQ04SJQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9EQ05011</TD><TD>URANUS</TD><TD>340.9702</TD><TD>-8.919175</TD><TD>1</TD><TD>2005-08-22 19:38:18</TD><TD>2005-08-22 19:59:39</TD><TD>1200.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F115LP;N/A;F115LP</TD><TD>10502</TD><TD>2006-08-23 01:40:59</TD><TD>J9EQ05011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9EQ05021</TD><TD>URANUS</TD><TD>340.969795833</TD><TD>-8.91933888889</TD><TD>1</TD><TD>2005-08-22 20:00:45</TD><TD>2005-08-22 20:16:26</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F140LP;N/A;F140LP</TD><TD>10502</TD><TD>2006-08-23 01:41:06</TD><TD>J9EQ05021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9EQ05IAQ</TD><TD>URANUS</TD><TD>340.9695875</TD><TD>-8.919425</TD><TD>1</TD><TD>2005-08-22 20:17:32</TD><TD>2005-08-22 20:22:33</TD><TD>300.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F165LP;N/A;F165LP</TD><TD>10502</TD><TD>2006-08-23 01:30:52</TD><TD>J9EQ05IAQ</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9EQ06011</TD><TD>URANUS</TD><TD>340.96285</TD><TD>-8.92214722222</TD><TD>1</TD><TD>2005-08-23 00:26:08</TD><TD>2005-08-23 00:47:29</TD><TD>1200.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F115LP;N/A;F115LP</TD><TD>10502</TD><TD>2006-08-23 15:06:09</TD><TD>J9EQ06011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9EQ06021</TD><TD>URANUS</TD><TD>340.962441667</TD><TD>-8.92231388889</TD><TD>1</TD><TD>2005-08-23 00:48:35</TD><TD>2005-08-23 01:04:16</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F140LP;N/A;F140LP</TD><TD>10502</TD><TD>2006-08-23 15:06:42</TD><TD>J9EQ06021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9EQ06M5Q</TD><TD>URANUS</TD><TD>340.962233333</TD><TD>-8.92239722222</TD><TD>1</TD><TD>2005-08-23 01:05:22</TD><TD>2005-08-23 01:10:23</TD><TD>300.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F165LP;N/A;F165LP</TD><TD>10502</TD><TD>2006-08-23 15:06:27</TD><TD>J9EQ06M5Q</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9EQ07011</TD><TD>URANUS</TD><TD>340.930920833</TD><TD>-8.93505</TD><TD>1</TD><TD>2005-08-23 21:13:22</TD><TD>2005-08-23 21:34:43</TD><TD>1200.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F115LP;N/A;F115LP</TD><TD>10502</TD><TD>2006-08-25 02:01:51</TD><TD>J9EQ07011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9EQ07021</TD><TD>URANUS</TD><TD>340.9305125</TD><TD>-8.93521666667</TD><TD>1</TD><TD>2005-08-23 21:35:49</TD><TD>2005-08-23 21:51:30</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F140LP;N/A;F140LP</TD><TD>10502</TD><TD>2006-08-25 02:02:08</TD><TD>J9EQ07021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9EQ07U3Q</TD><TD>URANUS</TD><TD>340.930304167</TD><TD>-8.9353</TD><TD>1</TD><TD>2005-08-23 21:52:36</TD><TD>2005-08-23 21:57:37</TD><TD>300.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F165LP;N/A;F165LP</TD><TD>10502</TD><TD>2006-08-25 02:01:44</TD><TD>J9EQ07U3Q</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9EQ08011</TD><TD>URANUS</TD><TD>340.9235375</TD><TD>-8.93803333333</TD><TD>1</TD><TD>2005-08-24 02:01:11</TD><TD>2005-08-24 02:22:32</TD><TD>1200.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F115LP;N/A;F115LP</TD><TD>10502</TD><TD>2006-08-25 08:19:42</TD><TD>J9EQ08011</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9EQ08021</TD><TD>URANUS</TD><TD>340.923129167</TD><TD>-8.93819722222</TD><TD>1</TD><TD>2005-08-24 02:23:38</TD><TD>2005-08-24 02:39:19</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F140LP;N/A;F140LP</TD><TD>10502</TD><TD>2006-08-25 08:20:37</TD><TD>J9EQ08021</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>J9EQ08Z5Q</TD><TD>URANUS</TD><TD>340.922920833</TD><TD>-8.93828333333</TD><TD>1</TD><TD>2005-08-24 02:40:25</TD><TD>2005-08-24 02:45:26</TD><TD>300.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F165LP;N/A;F165LP</TD><TD>10502</TD><TD>2006-08-25 08:19:58</TD><TD>J9EQ08Z5Q</TD><TD/>
+
+</TR>
+
+<TR>
+
+<TD>OBRX02010</TD><TD>URANUS</TD><TD>1.12590833333</TD><TD>-0.337919444444</TD><TD>1</TD><TD>2011-11-07 20:20:02</TD><TD>2011-11-07 20:20:02</TD><TD>0.000</TD><TD>STIS  </TD><TD>52X2</TD><TD>G140L</TD><TD>12601</TD><TD>2012-11-08 01:35:47</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>OBRX02EVQ</TD><TD>URANUS</TD><TD>1.12605833333</TD><TD>-0.337413888889</TD><TD>1</TD><TD>2011-11-07 20:44:51</TD><TD>2011-11-07 20:44:51</TD><TD>0.000</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>12601</TD><TD>2012-11-08 01:38:32</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>JBRX01011</TD><TD>URANUS</TD><TD>1.08497083333</TD><TD>-0.355525</TD><TD>1</TD><TD>2011-11-09 15:26:50</TD><TD>2011-11-09 15:42:31</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F140LP;N/A;F140LP</TD><TD>12601</TD><TD>2012-11-09 23:54:27</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>JBRX01021</TD><TD>URANUS</TD><TD>1.08470833333</TD><TD>-0.355633333333</TD><TD>1</TD><TD>2011-11-09 15:43:38</TD><TD>2011-11-09 16:04:59</TD><TD>1200.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F115LP;N/A;F115LP</TD><TD>12601</TD><TD>2012-11-09 23:54:47</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>JBRX01OMQ</TD><TD>URANUS</TD><TD>1.08435833333</TD><TD>-0.355775</TD><TD>1</TD><TD>2011-11-09 16:06:19</TD><TD>2011-11-09 16:12:20</TD><TD>360.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F165LP;N/A;F165LP</TD><TD>12601</TD><TD>2012-11-09 23:54:21</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>JBRX03011</TD><TD>URANUS</TD><TD>1.04726666667</TD><TD>-0.370855555556</TD><TD>1</TD><TD>2011-11-11 08:57:51</TD><TD>2011-11-11 09:13:32</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F140LP;N/A;F140LP</TD><TD>12601</TD><TD>2012-11-11 11:55:56</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>JBRX03021</TD><TD>URANUS</TD><TD>1.04701666667</TD><TD>-0.370958333333</TD><TD>1</TD><TD>2011-11-11 09:14:39</TD><TD>2011-11-11 09:36:00</TD><TD>1200.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F115LP;N/A;F115LP</TD><TD>12601</TD><TD>2012-11-11 11:56:02</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>JBRX03WHQ</TD><TD>URANUS</TD><TD>1.04668333333</TD><TD>-0.371091666667</TD><TD>1</TD><TD>2011-11-11 09:37:20</TD><TD>2011-11-11 09:43:21</TD><TD>360.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F165LP;N/A;F165LP</TD><TD>12601</TD><TD>2012-11-11 11:55:31</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>OBRX04010</TD><TD>URANUS</TD><TD>1.0260625</TD><TD>-0.378544444444</TD><TD>1</TD><TD>2011-11-12 08:54:58</TD><TD>2011-11-12 09:13:18</TD><TD>1100.199</TD><TD>STIS  </TD><TD>52X2</TD><TD>G140L</TD><TD>12601</TD><TD>2012-11-12 11:43:58</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>OBRX04C6Q</TD><TD>URANUS</TD><TD>1.0260375</TD><TD>-0.377894444444</TD><TD>1</TD><TD>2011-11-12 09:19:47</TD><TD>2011-11-12 09:36:27</TD><TD>1000.200</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>12601</TD><TD>2012-11-12 11:46:04</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>OBRX06010</TD><TD>URANUS</TD><TD>1.00709166667</TD><TD>-0.3862</TD><TD>1</TD><TD>2011-11-13 07:16:24</TD><TD>2011-11-13 07:34:44</TD><TD>1100.199</TD><TD>STIS  </TD><TD>52X2</TD><TD>G140L</TD><TD>12601</TD><TD>2012-11-13 11:55:03</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>OBRX06J5Q</TD><TD>URANUS</TD><TD>1.00714583333</TD><TD>-0.385580555556</TD><TD>1</TD><TD>2011-11-13 07:41:13</TD><TD>2011-11-13 07:57:53</TD><TD>1000.200</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>12601</TD><TD>2012-11-13 11:57:07</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>JBRX05011</TD><TD>URANUS</TD><TD>1.00336666667</TD><TD>-0.388597222222</TD><TD>1</TD><TD>2011-11-13 12:03:55</TD><TD>2011-11-13 12:19:36</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F140LP;N/A;F140LP</TD><TD>12601</TD><TD>2012-11-13 17:40:56</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>JBRX05021</TD><TD>URANUS</TD><TD>1.00313333333</TD><TD>-0.388694444444</TD><TD>1</TD><TD>2011-11-13 12:20:43</TD><TD>2011-11-13 12:42:04</TD><TD>1200.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F115LP;N/A;F115LP</TD><TD>12601</TD><TD>2012-11-13 17:41:15</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>JBRX05JTQ</TD><TD>URANUS</TD><TD>1.00282083333</TD><TD>-0.388819444444</TD><TD>1</TD><TD>2011-11-13 12:43:24</TD><TD>2011-11-13 12:49:24</TD><TD>360.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F165LP;N/A;F165LP</TD><TD>12601</TD><TD>2012-11-13 17:40:51</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>JBRX07011</TD><TD>URANUS</TD><TD>0.9994</TD><TD>-0.390194444444</TD><TD>1</TD><TD>2011-11-13 16:51:22</TD><TD>2011-11-13 17:07:03</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F140LP;N/A;F140LP</TD><TD>12601</TD><TD>2012-11-13 23:50:09</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>JBRX07021</TD><TD>URANUS</TD><TD>0.999166666667</TD><TD>-0.390288888889</TD><TD>1</TD><TD>2011-11-13 17:08:10</TD><TD>2011-11-13 17:29:31</TD><TD>1200.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F115LP;N/A;F115LP</TD><TD>12601</TD><TD>2012-11-13 23:50:15</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>JBRX07K7Q</TD><TD>URANUS</TD><TD>0.998858333333</TD><TD>-0.390413888889</TD><TD>1</TD><TD>2011-11-13 17:30:51</TD><TD>2011-11-13 17:36:52</TD><TD>360.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F165LP;N/A;F165LP</TD><TD>12601</TD><TD>2012-11-13 23:49:44</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>OBRX08010</TD><TD>URANUS</TD><TD>0.983516666667</TD><TD>-0.395680555556</TD><TD>1</TD><TD>2011-11-14 12:01:03</TD><TD>2011-11-14 12:19:23</TD><TD>1100.199</TD><TD>STIS  </TD><TD>52X2</TD><TD>G140L</TD><TD>12601</TD><TD>2012-11-14 18:39:47</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>OBRX08DQQ</TD><TD>URANUS</TD><TD>0.983416666667</TD><TD>-0.394994444444</TD><TD>1</TD><TD>2011-11-14 12:25:52</TD><TD>2011-11-14 12:42:32</TD><TD>1000.200</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>12601</TD><TD>2012-11-14 18:41:53</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>JBRX09011</TD><TD>URANUS</TD><TD>0.961320833333</TD><TD>-0.405452777778</TD><TD>1</TD><TD>2011-11-15 16:45:54</TD><TD>2011-11-15 17:01:35</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F140LP;N/A;F140LP</TD><TD>12601</TD><TD>2012-11-16 00:15:00</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>JBRX09021</TD><TD>URANUS</TD><TD>0.961104166667</TD><TD>-0.405538888889</TD><TD>1</TD><TD>2011-11-15 17:02:42</TD><TD>2011-11-15 17:24:03</TD><TD>1200.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F115LP;N/A;F115LP</TD><TD>12601</TD><TD>2012-11-16 00:15:14</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>JBRX09JQQ</TD><TD>URANUS</TD><TD>0.960816666667</TD><TD>-0.405655555556</TD><TD>1</TD><TD>2011-11-15 17:25:23</TD><TD>2011-11-15 17:31:24</TD><TD>360.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F165LP;N/A;F165LP</TD><TD>12601</TD><TD>2012-11-16 00:09:18</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>OBRX10010</TD><TD>URANUS</TD><TD>0.943933333333</TD><TD>-0.411502777778</TD><TD>1</TD><TD>2011-11-16 15:07:21</TD><TD>2011-11-16 15:25:41</TD><TD>1100.199</TD><TD>STIS  </TD><TD>52X2</TD><TD>G140L</TD><TD>12601</TD><TD>2012-11-16 18:17:43</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>OBRX10P0Q</TD><TD>URANUS</TD><TD>0.943954166667</TD><TD>-0.410836111111</TD><TD>1</TD><TD>2011-11-16 15:32:10</TD><TD>2011-11-16 15:48:50</TD><TD>1000.200</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>12601</TD><TD>2012-11-16 22:34:16</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>JBRX11011</TD><TD>URANUS</TD><TD>0.9155375</TD><TD>-0.423644444444</TD><TD>1</TD><TD>2011-11-18 07:03:04</TD><TD>2011-11-18 07:18:45</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F140LP;N/A;F140LP</TD><TD>12601</TD><TD>2012-11-18 15:27:11</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>JBRX11021</TD><TD>URANUS</TD><TD>0.915341666667</TD><TD>-0.423722222222</TD><TD>1</TD><TD>2011-11-18 07:19:52</TD><TD>2011-11-18 07:41:13</TD><TD>1200.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F115LP;N/A;F115LP</TD><TD>12601</TD><TD>2012-11-18 15:27:16</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>JBRX11Y8Q</TD><TD>URANUS</TD><TD>0.915079166667</TD><TD>-0.423825</TD><TD>1</TD><TD>2011-11-18 07:42:33</TD><TD>2011-11-18 07:48:34</TD><TD>360.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F165LP;N/A;F165LP</TD><TD>12601</TD><TD>2012-11-18 15:26:56</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>OBRX12010</TD><TD>URANUS</TD><TD>0.8998125</TD><TD>-0.428952777778</TD><TD>1</TD><TD>2011-11-19 05:24:35</TD><TD>2011-11-19 05:42:55</TD><TD>1100.199</TD><TD>STIS  </TD><TD>52X2</TD><TD>G140L</TD><TD>12601</TD><TD>2012-11-19 09:23:02</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>OBRX12CEQ</TD><TD>URANUS</TD><TD>0.8998625</TD><TD>-0.428275</TD><TD>1</TD><TD>2011-11-19 05:49:24</TD><TD>2011-11-19 06:06:04</TD><TD>1000.200</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>12601</TD><TD>2012-11-19 09:25:28</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>JBRX13011</TD><TD>URANUS</TD><TD>0.8825875</TD><TD>-0.436536111111</TD><TD>1</TD><TD>2011-11-20 08:33:42</TD><TD>2011-11-20 08:49:23</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F140LP;N/A;F140LP</TD><TD>12601</TD><TD>2012-11-20 14:50:47</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>JBRX13021</TD><TD>URANUS</TD><TD>0.882408333333</TD><TD>-0.436605555556</TD><TD>1</TD><TD>2011-11-20 08:50:30</TD><TD>2011-11-20 09:11:51</TD><TD>1200.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F115LP;N/A;F115LP</TD><TD>12601</TD><TD>2012-11-20 14:51:03</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>JBRX13IMQ</TD><TD>URANUS</TD><TD>0.882166666667</TD><TD>-0.4367</TD><TD>1</TD><TD>2011-11-20 09:13:11</TD><TD>2011-11-20 09:19:12</TD><TD>360.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F165LP;N/A;F165LP</TD><TD>12601</TD><TD>2012-11-20 14:50:42</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>OBRX14010</TD><TD>URANUS</TD><TD>0.855645833333</TD><TD>-0.446152777778</TD><TD>1</TD><TD>2011-11-22 03:40:45</TD><TD>2011-11-22 03:40:45</TD><TD>0.000</TD><TD>STIS  </TD><TD>52X2</TD><TD>G140L</TD><TD>12601</TD><TD>2012-11-22 14:47:16</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>OBRX14GVQ</TD><TD>URANUS</TD><TD>0.855729166667</TD><TD>-0.445461111111</TD><TD>1</TD><TD>2011-11-22 04:05:34</TD><TD>2011-11-22 04:05:34</TD><TD>0.000</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>12601</TD><TD>2012-11-22 14:48:00</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>JBRX15011</TD><TD>URANUS</TD><TD>0.837929166667</TD><TD>-0.453838888889</TD><TD>1</TD><TD>2011-11-23 11:37:10</TD><TD>2011-11-23 11:52:51</TD><TD>900.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F140LP;N/A;F140LP</TD><TD>12601</TD><TD>2012-11-23 16:25:28</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>JBRX15021</TD><TD>URANUS</TD><TD>0.837775</TD><TD>-0.453897222222</TD><TD>1</TD><TD>2011-11-23 11:53:58</TD><TD>2011-11-23 12:15:19</TD><TD>1200.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F115LP;N/A;F115LP</TD><TD>12601</TD><TD>2012-11-23 16:25:45</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>JBRX15PMQ</TD><TD>URANUS</TD><TD>0.837570833333</TD><TD>-0.453975</TD><TD>1</TD><TD>2011-11-23 12:16:39</TD><TD>2011-11-23 12:22:40</TD><TD>360.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F165LP;N/A;F165LP</TD><TD>12601</TD><TD>2012-11-23 16:25:22</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>OBRX16010</TD><TD>URANUS</TD><TD>0.824891666667</TD><TD>-0.4579</TD><TD>1</TD><TD>2011-11-24 11:34:16</TD><TD>2011-11-24 11:52:36</TD><TD>1100.200</TD><TD>STIS  </TD><TD>52X2</TD><TD>G140L</TD><TD>12601</TD><TD>2012-11-24 14:50:38</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>OBRX16TVQ</TD><TD>URANUS</TD><TD>0.825004166667</TD><TD>-0.457194444444</TD><TD>1</TD><TD>2011-11-24 11:59:05</TD><TD>2011-11-24 12:15:45</TD><TD>1000.200</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>12601</TD><TD>2012-11-24 14:51:51</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>OBRX17010</TD><TD>URANUS</TD><TD>0.8061</TD><TD>-0.464941666667</TD><TD>1</TD><TD>2011-11-26 01:53:41</TD><TD>2011-11-26 02:12:01</TD><TD>1100.199</TD><TD>STIS  </TD><TD>52X2</TD><TD>G140L</TD><TD>12601</TD><TD>2012-11-26 06:27:37</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>OBRX17B5Q</TD><TD>URANUS</TD><TD>0.806229166667</TD><TD>-0.464227777778</TD><TD>1</TD><TD>2011-11-26 02:18:28</TD><TD>2011-11-26 02:35:08</TD><TD>1000.200</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>12601</TD><TD>2012-11-26 06:30:12</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>OBRX19010</TD><TD>URANUS</TD><TD>0.785283333333</TD><TD>-0.472569444444</TD><TD>1</TD><TD>2011-11-28 01:47:39</TD><TD>2011-11-28 02:05:59</TD><TD>1100.199</TD><TD>STIS  </TD><TD>52X2</TD><TD>G140L</TD><TD>12601</TD><TD>2012-11-28 06:49:07</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>OBRX19ABQ</TD><TD>URANUS</TD><TD>0.7854375</TD><TD>-0.471847222222</TD><TD>1</TD><TD>2011-11-28 02:12:26</TD><TD>2011-11-28 02:29:06</TD><TD>1000.200</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>12601</TD><TD>2012-11-28 06:51:02</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>OBRX18010</TD><TD>URANUS</TD><TD>0.776</TD><TD>-0.475888888889</TD><TD>1</TD><TD>2011-11-29 01:44:37</TD><TD>2011-11-29 02:02:57</TD><TD>1100.197</TD><TD>STIS  </TD><TD>52X2</TD><TD>G140L</TD><TD>12601</TD><TD>2012-11-29 18:56:21</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>OBRX18HBQ</TD><TD>URANUS</TD><TD>0.7761625</TD><TD>-0.475161111111</TD><TD>1</TD><TD>2011-11-29 02:09:24</TD><TD>2011-11-29 02:26:04</TD><TD>1000.200</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>12601</TD><TD>2012-11-29 18:57:47</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>OBZ511YAQ</TD><TD>URANUS</TD><TD>6.20189583333</TD><TD>1.84808055556</TD><TD>0</TD><TD>2012-09-26 19:51:30</TD><TD>2012-09-26 20:32:00</TD><TD>2370.869</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>13012</TD><TD>2013-09-27 13:21:47</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>OBZ501DGQ</TD><TD>URANUS</TD><TD>6.202275</TD><TD>1.86321944444</TD><TD>0</TD><TD>2012-09-27 15:00:19</TD><TD>2012-09-27 15:21:09</TD><TD>1250.199</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>13012</TD><TD>2013-09-27 17:58:54</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>OBZ501DIQ</TD><TD>URANUS</TD><TD>6.20158333333</TD><TD>1.86292222222</TD><TD>0</TD><TD>2012-09-27 15:27:07</TD><TD>2012-09-27 15:40:47</TD><TD>820.184</TD><TD>STIS  </TD><TD>F25SRF2</TD><TD>MIRFUV</TD><TD>13012</TD><TD>2013-09-27 18:02:30</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>JBZ504011</TD><TD>URANUS</TD><TD>6.1961625</TD><TD>1.86111666667</TD><TD>0</TD><TD>2012-09-27 19:45:39</TD><TD>2012-09-27 19:59:39</TD><TD>800.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F140LP;N/A;F140LP</TD><TD>13012</TD><TD>2013-09-28 01:40:48</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>JBZ504021</TD><TD>URANUS</TD><TD>6.19576666667</TD><TD>1.86094722222</TD><TD>0</TD><TD>2012-09-27 20:00:47</TD><TD>2012-09-27 20:22:07</TD><TD>1200.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F115LP;N/A;F115LP</TD><TD>13012</TD><TD>2013-09-28 01:40:51</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>JBZ504EOQ</TD><TD>URANUS</TD><TD>6.19519166667</TD><TD>1.8607</TD><TD>0</TD><TD>2012-09-27 20:23:28</TD><TD>2012-09-27 20:27:58</TD><TD>270.000</TD><TD>ACS   </TD><TD>SBC</TD><TD>F165LP;N/A;F165LP</TD><TD>13012</TD><TD>2013-09-28 01:40:30</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>OBZ503HBQ</TD><TD>URANUS</TD><TD>6.18480416667</TD><TD>1.85634444444</TD><TD>0</TD><TD>2012-09-28 02:10:28</TD><TD>2012-09-28 02:31:18</TD><TD>1250.200</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>13012</TD><TD>2013-09-28 08:17:36</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>OBZ503HDQ</TD><TD>URANUS</TD><TD>6.1841125</TD><TD>1.85604722222</TD><TD>0</TD><TD>2012-09-28 02:37:16</TD><TD>2012-09-28 02:50:56</TD><TD>820.193</TD><TD>STIS  </TD><TD>F25SRF2</TD><TD>MIRFUV</TD><TD>13012</TD><TD>2013-09-28 08:19:52</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>OBZ505IZQ</TD><TD>URANUS</TD><TD>6.16509583333</TD><TD>1.84791944444</TD><TD>0</TD><TD>2012-09-28 14:56:20</TD><TD>2012-09-28 15:17:10</TD><TD>1250.199</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>13012</TD><TD>2013-09-28 23:58:54</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>OBZ505J1Q</TD><TD>URANUS</TD><TD>6.16440416667</TD><TD>1.84762222222</TD><TD>0</TD><TD>2012-09-28 15:23:08</TD><TD>2012-09-28 15:36:48</TD><TD>820.191</TD><TD>STIS  </TD><TD>F25SRF2</TD><TD>MIRFUV</TD><TD>13012</TD><TD>2013-09-28 17:59:04</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>OBZ509010</TD><TD>URANUS</TD><TD>6.1634625</TD><TD>1.84690277778</TD><TD>0</TD><TD>2012-09-28 16:30:09</TD><TD>2012-09-28 17:07:49</TD><TD>2260.197</TD><TD>STIS  </TD><TD>52X0.5</TD><TD>G140L</TD><TD>13012</TD><TD>2013-09-28 23:43:07</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>OBZ507J7Q</TD><TD>URANUS</TD><TD>6.16016666667</TD><TD>1.84578611111</TD><TD>0</TD><TD>2012-09-28 18:07:47</TD><TD>2012-09-28 18:28:37</TD><TD>1250.199</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>13012</TD><TD>2013-09-28 23:47:03</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>OBZ507J9Q</TD><TD>URANUS</TD><TD>6.159475</TD><TD>1.84548888889</TD><TD>0</TD><TD>2012-09-28 18:34:35</TD><TD>2012-09-28 18:48:15</TD><TD>820.197</TD><TD>STIS  </TD><TD>F25SRF2</TD><TD>MIRFUV</TD><TD>13012</TD><TD>2013-09-28 23:49:28</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>OBZ502JBQ</TD><TD>URANUS</TD><TD>6.15770416667</TD><TD>1.84473055556</TD><TD>0</TD><TD>2012-09-28 19:43:30</TD><TD>2012-09-28 20:04:20</TD><TD>1250.200</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>13012</TD><TD>2013-09-28 23:54:14</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>OBZ502JDQ</TD><TD>URANUS</TD><TD>6.1570125</TD><TD>1.84443333333</TD><TD>0</TD><TD>2012-09-28 20:10:18</TD><TD>2012-09-28 20:23:58</TD><TD>820.198</TD><TD>STIS  </TD><TD>F25SRF2</TD><TD>MIRFUV</TD><TD>13012</TD><TD>2013-09-28 23:55:40</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>OBZ508JFQ</TD><TD>URANUS</TD><TD>6.15524166667</TD><TD>1.843675</TD><TD>0</TD><TD>2012-09-28 21:19:14</TD><TD>2012-09-28 21:40:04</TD><TD>1250.200</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>13012</TD><TD>2013-09-29 01:23:46</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>OBZ508JHQ</TD><TD>URANUS</TD><TD>6.15455</TD><TD>1.84337777778</TD><TD>0</TD><TD>2012-09-28 21:46:02</TD><TD>2012-09-28 21:59:42</TD><TD>820.199</TD><TD>STIS  </TD><TD>F25SRF2</TD><TD>MIRFUV</TD><TD>13012</TD><TD>2013-09-29 01:25:13</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>OBZ510010</TD><TD>URANUS</TD><TD>6.15360833333</TD><TD>1.84268055556</TD><TD>0</TD><TD>2012-09-28 22:53:03</TD><TD>2012-09-28 23:30:43</TD><TD>2260.191</TD><TD>STIS  </TD><TD>52X0.5</TD><TD>G140L</TD><TD>13012</TD><TD>2013-09-29 01:34:58</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>OBZ506JTQ</TD><TD>URANUS</TD><TD>6.1503125</TD><TD>1.84155833333</TD><TD>0</TD><TD>2012-09-29 00:30:42</TD><TD>2012-09-29 00:51:32</TD><TD>1250.200</TD><TD>STIS  </TD><TD>25MAMA</TD><TD>MIRCUV</TD><TD>13012</TD><TD>2013-10-01 15:25:22</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>OBZ506JWQ</TD><TD>URANUS</TD><TD>6.14962083333</TD><TD>1.84126111111</TD><TD>0</TD><TD>2012-09-29 00:57:30</TD><TD>2012-09-29 01:11:10</TD><TD>820.193</TD><TD>STIS  </TD><TD>F25SRF2</TD><TD>MIRFUV</TD><TD>13012</TD><TD>2013-09-29 05:57:41</TD><TD/><TD/>
+
+</TR>
+
+<TR>
+
+<TD>OBZ512010</TD><TD>URANUS</TD><TD>5.13487083333</TD><TD>1.4117</TD><TD>0</TD><TD>2012-10-28 01:48:14</TD><TD>2012-10-28 02:25:54</TD><TD>2260.186</TD><TD>STIS  </TD><TD>52X0.5</TD><TD>G140L</TD><TD>13012</TD><TD>2013-10-28 04:49:54</TD><TD/><TD/>
+
+</TR>
+
+</TABLEDATA>
+
+</DATA>
+
+</TABLE>
+
+</RESOURCE>
+
+</VOTABLE>
diff --git a/generic_data/Param/Args/ba2000.xml b/generic_data/Param/Args/ba2000.xml
new file mode 100644
index 0000000..344f294
--- /dev/null
+++ b/generic_data/Param/Args/ba2000.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0"?>
+<param>
+  <args>
+    <group name='Spacecraft'><value>Cluster1</value><value>Cluster2</value>
+                            <value>Cluster3</value><value>Cluster4</value>
+                            <value>ThemisA</value><value>ThemisB</value>
+                            <value>ThemisC</value><value>ThemisD</value>
+                            <value>ThemisE</value><value>Geotail</value>
+    </group>
+    <group name='SW_Monitor'><value>OMNI</value><value>AMDA</value>
+    </group>
+  </args>
+</param>
\ No newline at end of file
diff --git a/generic_data/Param/Args/bcain_mso.xml b/generic_data/Param/Args/bcain_mso.xml
new file mode 100644
index 0000000..8cab7d8
--- /dev/null
+++ b/generic_data/Param/Args/bcain_mso.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0"?>
+<param>
+  <args>
+    <group name='Spacecraft'><value>MEX</value><value>MAVEN</value>
+                            <value>MGS</value>
+    </group>  
+     <group name='Sampling'><value>60</value><value>10</value>
+     <value>5</value><value>2</value><value>1</value>
+    </group>
+  </args>
+</param>
\ No newline at end of file
diff --git a/generic_data/Param/Args/bcain_tot.xml b/generic_data/Param/Args/bcain_tot.xml
new file mode 100644
index 0000000..6eaede4
--- /dev/null
+++ b/generic_data/Param/Args/bcain_tot.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0"?>
+<param>
+  <args>
+    <group name='Spacecraft'><value>MEX</value><value>MAVEN</value>
+                            <value>MGS</value>
+    </group>
+    <group name='Sampling'><value>60</value><value>10</value>
+     <value>5</value><value>2</value><value>1</value>
+    </group>
+  </args>
+</param>
\ No newline at end of file
diff --git a/generic_data/Param/Args/bmorsch_mso.xml b/generic_data/Param/Args/bmorsch_mso.xml
new file mode 100644
index 0000000..8cab7d8
--- /dev/null
+++ b/generic_data/Param/Args/bmorsch_mso.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0"?>
+<param>
+  <args>
+    <group name='Spacecraft'><value>MEX</value><value>MAVEN</value>
+                            <value>MGS</value>
+    </group>  
+     <group name='Sampling'><value>60</value><value>10</value>
+     <value>5</value><value>2</value><value>1</value>
+    </group>
+  </args>
+</param>
\ No newline at end of file
diff --git a/generic_data/Param/Args/bmorsch_tot.xml b/generic_data/Param/Args/bmorsch_tot.xml
new file mode 100644
index 0000000..6eaede4
--- /dev/null
+++ b/generic_data/Param/Args/bmorsch_tot.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0"?>
+<param>
+  <args>
+    <group name='Spacecraft'><value>MEX</value><value>MAVEN</value>
+                            <value>MGS</value>
+    </group>
+    <group name='Sampling'><value>60</value><value>10</value>
+     <value>5</value><value>2</value><value>1</value>
+    </group>
+  </args>
+</param>
\ No newline at end of file
diff --git a/generic_data/Param/Args/bt96.xml b/generic_data/Param/Args/bt96.xml
new file mode 100644
index 0000000..d2feb91
--- /dev/null
+++ b/generic_data/Param/Args/bt96.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0"?>
+<param>
+  <args>
+    <group name='Spacecraft'><value>Cluster1</value><value>Cluster2</value>
+                            <value>Cluster3</value><value>Cluster4</value>
+			    <value>ThemisA</value><value>ThemisB</value>
+			    <value>ThemisC</value><value>ThemisD</value>
+			    <value>ThemisE</value><value>Geotail</value>
+    </group>
+    <group name='SW_Monitor'><value>OMNI</value><value>AMDA</value>
+    </group>
+  </args>
+</param>
\ No newline at end of file
diff --git a/generic_data/Param/Args/c1_hia_pad.xml b/generic_data/Param/Args/c1_hia_pad.xml
new file mode 100644
index 0000000..766a9b4
--- /dev/null
+++ b/generic_data/Param/Args/c1_hia_pad.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0"?>
+<param>
+  <args> 
+    <group units='degrees' args='direct' name='PA'>       
+      <value>0-11.25</value><value>11.25-22.5</value><value>22.5-33.75</value><value>33.75-45</value>
+      <value>45-56.25</value><value>56.25-67.5</value><value>67.5-78.75</value>
+      <value>78.75-90</value><value>90-101.25</value><value>101.25-112.5</value><value>112.5-123.75</value>
+      <value>123.75-135</value><value>135-146.25</value><value>146.25-157.5</value><value>157.5-168.75</value>
+      <value>168.75-180</value>
+    </group>
+     <group units='eV' args='reverse' name='Energy'>       
+      <value>all</value><value>4.58-6.39</value><value>6.39-8.5</value><value>8.5-11.31</value><value>11.31-15.04</value>
+      <value>15.04-20.01</value><value>20.01-26.61</value><value>26.61-35.39</value>
+      <value>35.39-47.07</value><value>47.07-62.6</value><value>62.6-83.26</value><value>83.26-110.74</value>
+      <value>110.74-147.28</value><value>147.28-195.88</value><value>195.88-260.51</value><value>260.51-346.48</value>
+      <value>346.48-460.81</value><value>460.81-612.89</value><value>612.89-815.14</value><value>815.14-1084.11</value>
+      <value>1084.11-1441.86</value><value>1441.86-1917.67</value><value>1917.67-2550.48</value><value>2550.48-3392.12</value>
+      <value>3392.12-4511.48</value><value>4511.48-6000.23</value><value>6000.23-7980.25</value><value>7980.25-10613.7</value>
+      <value>10613.7-14116.1</value><value>14116.1-18774.2</value><value>18774.2-24969.6</value><value>24969.6-34861.4</value>
+    </group>
+  </args>
+</param>
diff --git a/generic_data/Param/Args/c3_hia_pad.xml b/generic_data/Param/Args/c3_hia_pad.xml
new file mode 100644
index 0000000..766a9b4
--- /dev/null
+++ b/generic_data/Param/Args/c3_hia_pad.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0"?>
+<param>
+  <args> 
+    <group units='degrees' args='direct' name='PA'>       
+      <value>0-11.25</value><value>11.25-22.5</value><value>22.5-33.75</value><value>33.75-45</value>
+      <value>45-56.25</value><value>56.25-67.5</value><value>67.5-78.75</value>
+      <value>78.75-90</value><value>90-101.25</value><value>101.25-112.5</value><value>112.5-123.75</value>
+      <value>123.75-135</value><value>135-146.25</value><value>146.25-157.5</value><value>157.5-168.75</value>
+      <value>168.75-180</value>
+    </group>
+     <group units='eV' args='reverse' name='Energy'>       
+      <value>all</value><value>4.58-6.39</value><value>6.39-8.5</value><value>8.5-11.31</value><value>11.31-15.04</value>
+      <value>15.04-20.01</value><value>20.01-26.61</value><value>26.61-35.39</value>
+      <value>35.39-47.07</value><value>47.07-62.6</value><value>62.6-83.26</value><value>83.26-110.74</value>
+      <value>110.74-147.28</value><value>147.28-195.88</value><value>195.88-260.51</value><value>260.51-346.48</value>
+      <value>346.48-460.81</value><value>460.81-612.89</value><value>612.89-815.14</value><value>815.14-1084.11</value>
+      <value>1084.11-1441.86</value><value>1441.86-1917.67</value><value>1917.67-2550.48</value><value>2550.48-3392.12</value>
+      <value>3392.12-4511.48</value><value>4511.48-6000.23</value><value>6000.23-7980.25</value><value>7980.25-10613.7</value>
+      <value>10613.7-14116.1</value><value>14116.1-18774.2</value><value>18774.2-24969.6</value><value>24969.6-34861.4</value>
+    </group>
+  </args>
+</param>
diff --git a/generic_data/Param/Args/e_mgs_omni.xml b/generic_data/Param/Args/e_mgs_omni.xml
new file mode 100644
index 0000000..cbda1b0
--- /dev/null
+++ b/generic_data/Param/Args/e_mgs_omni.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0"?>
+<param>
+  <specialArgs>       
+    <group name='energy' number='20' emin='10' emax='20000' units='eV'>
+      <value>11</value><value>15</value><value>21</value><value>27</value><value>36</value><value>47</value>
+      <value>61</value><value>79</value><value>116</value><value>191</value>
+      <value>314</value><value>515</value><value>844</value><value>1380</value>
+      <value>2255</value><value>3689</value><value>6035</value><value>9868</value><value>16127</value>
+    </group>
+  </specialArgs>
+</param>
\ No newline at end of file
diff --git a/generic_data/Param/Args/impex___LESIA_MAG_Jupiter_Btot.xml b/generic_data/Param/Args/impex___LESIA_MAG_Jupiter_Btot.xml
new file mode 100755
index 0000000..a9b6e21
--- /dev/null
+++ b/generic_data/Param/Args/impex___LESIA_MAG_Jupiter_Btot.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="utf-8"?>
+<param>
+  <args>
+    <group name="CoordinateSystem">
+      <value>PlanetaryCartesian</value>
+      <value>PlanetarySpherical</value>
+      <value>Planetarographic</value>
+      <value>JSO</value>
+      <value>JSM</value>
+      <value>JSS</value>
+    </group>
+    <group name="InternalModel">
+      <value>O6</value>
+      <value>VIP4</value>
+      <value>VIT4</value>
+      <value>VIPAL</value>
+    </group>
+    <group name="CurrentSheet">
+      <value>None</value>
+      <value>Connerney</value>
+      <value>Khurana</value>
+    </group>
+    <group name="Satellite">
+      <value>Galileo</value>
+    </group>
+    <group name="Sampling">
+      <value>600</value>
+    </group>
+  </args>
+</param>
diff --git a/generic_data/Param/Args/impex___LESIA_MAG_Jupiter_Bx_By_Bz.xml b/generic_data/Param/Args/impex___LESIA_MAG_Jupiter_Bx_By_Bz.xml
new file mode 100755
index 0000000..a9b6e21
--- /dev/null
+++ b/generic_data/Param/Args/impex___LESIA_MAG_Jupiter_Bx_By_Bz.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="utf-8"?>
+<param>
+  <args>
+    <group name="CoordinateSystem">
+      <value>PlanetaryCartesian</value>
+      <value>PlanetarySpherical</value>
+      <value>Planetarographic</value>
+      <value>JSO</value>
+      <value>JSM</value>
+      <value>JSS</value>
+    </group>
+    <group name="InternalModel">
+      <value>O6</value>
+      <value>VIP4</value>
+      <value>VIT4</value>
+      <value>VIPAL</value>
+    </group>
+    <group name="CurrentSheet">
+      <value>None</value>
+      <value>Connerney</value>
+      <value>Khurana</value>
+    </group>
+    <group name="Satellite">
+      <value>Galileo</value>
+    </group>
+    <group name="Sampling">
+      <value>600</value>
+    </group>
+  </args>
+</param>
diff --git a/generic_data/Param/Args/impex___LESIA_MAG_Jupiter_Bx_By_Bz_Bx.xml b/generic_data/Param/Args/impex___LESIA_MAG_Jupiter_Bx_By_Bz_Bx.xml
new file mode 100755
index 0000000..a9b6e21
--- /dev/null
+++ b/generic_data/Param/Args/impex___LESIA_MAG_Jupiter_Bx_By_Bz_Bx.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="utf-8"?>
+<param>
+  <args>
+    <group name="CoordinateSystem">
+      <value>PlanetaryCartesian</value>
+      <value>PlanetarySpherical</value>
+      <value>Planetarographic</value>
+      <value>JSO</value>
+      <value>JSM</value>
+      <value>JSS</value>
+    </group>
+    <group name="InternalModel">
+      <value>O6</value>
+      <value>VIP4</value>
+      <value>VIT4</value>
+      <value>VIPAL</value>
+    </group>
+    <group name="CurrentSheet">
+      <value>None</value>
+      <value>Connerney</value>
+      <value>Khurana</value>
+    </group>
+    <group name="Satellite">
+      <value>Galileo</value>
+    </group>
+    <group name="Sampling">
+      <value>600</value>
+    </group>
+  </args>
+</param>
diff --git a/generic_data/Param/Args/impex___LESIA_MAG_Jupiter_Bx_By_Bz_By.xml b/generic_data/Param/Args/impex___LESIA_MAG_Jupiter_Bx_By_Bz_By.xml
new file mode 100755
index 0000000..a9b6e21
--- /dev/null
+++ b/generic_data/Param/Args/impex___LESIA_MAG_Jupiter_Bx_By_Bz_By.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="utf-8"?>
+<param>
+  <args>
+    <group name="CoordinateSystem">
+      <value>PlanetaryCartesian</value>
+      <value>PlanetarySpherical</value>
+      <value>Planetarographic</value>
+      <value>JSO</value>
+      <value>JSM</value>
+      <value>JSS</value>
+    </group>
+    <group name="InternalModel">
+      <value>O6</value>
+      <value>VIP4</value>
+      <value>VIT4</value>
+      <value>VIPAL</value>
+    </group>
+    <group name="CurrentSheet">
+      <value>None</value>
+      <value>Connerney</value>
+      <value>Khurana</value>
+    </group>
+    <group name="Satellite">
+      <value>Galileo</value>
+    </group>
+    <group name="Sampling">
+      <value>600</value>
+    </group>
+  </args>
+</param>
diff --git a/generic_data/Param/Args/impex___LESIA_MAG_Jupiter_Bx_By_Bz_Bz.xml b/generic_data/Param/Args/impex___LESIA_MAG_Jupiter_Bx_By_Bz_Bz.xml
new file mode 100755
index 0000000..a9b6e21
--- /dev/null
+++ b/generic_data/Param/Args/impex___LESIA_MAG_Jupiter_Bx_By_Bz_Bz.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="utf-8"?>
+<param>
+  <args>
+    <group name="CoordinateSystem">
+      <value>PlanetaryCartesian</value>
+      <value>PlanetarySpherical</value>
+      <value>Planetarographic</value>
+      <value>JSO</value>
+      <value>JSM</value>
+      <value>JSS</value>
+    </group>
+    <group name="InternalModel">
+      <value>O6</value>
+      <value>VIP4</value>
+      <value>VIT4</value>
+      <value>VIPAL</value>
+    </group>
+    <group name="CurrentSheet">
+      <value>None</value>
+      <value>Connerney</value>
+      <value>Khurana</value>
+    </group>
+    <group name="Satellite">
+      <value>Galileo</value>
+    </group>
+    <group name="Sampling">
+      <value>600</value>
+    </group>
+  </args>
+</param>
diff --git a/generic_data/Param/Args/lep_g.xml b/generic_data/Param/Args/lep_g.xml
new file mode 100644
index 0000000..aa70589
--- /dev/null
+++ b/generic_data/Param/Args/lep_g.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0"?>
+<param>
+  <args>
+      <arg comp='1'>RefFrame</arg>
+      <arg comp='2'>RefFrame</arg>
+      <arg comp='3'>RefFrame</arg> 
+  </args>
+  <settings>
+    <arg>Color</arg>
+    <arg comp='0'>Scale</arg>
+    <arg>Symbol</arg>
+  </settings>
+</param>
\ No newline at end of file
diff --git a/generic_data/Param/Args/mex_els_spec.xml b/generic_data/Param/Args/mex_els_spec.xml
new file mode 100644
index 0000000..609a251
--- /dev/null
+++ b/generic_data/Param/Args/mex_els_spec.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0"?>
+<param>
+  <specialArgs>
+    <group name='anode' number='16'/>        
+    <group name='energy' type='multi' number='128' emin='1' emax='20800' units='eV'/>   
+  </specialArgs>
+</param>
\ No newline at end of file
diff --git a/generic_data/Param/Args/mex_h_spec.xml b/generic_data/Param/Args/mex_h_spec.xml
new file mode 100644
index 0000000..488ac84
--- /dev/null
+++ b/generic_data/Param/Args/mex_h_spec.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0"?>
+<param>
+  <specialArgs>
+    <group name='anode' number='16'/>   
+    <group name='energy' type='multi' number='96' emin='1' emax='25000' units='eV'/>
+   </specialArgs>
+   <args>
+    <group name='elevationAsTime'><value>no</value><value>yes</value></group>
+  </args>
+</param>
\ No newline at end of file
diff --git a/generic_data/Param/Args/mex_n_sw.xml b/generic_data/Param/Args/mex_n_sw.xml
new file mode 100644
index 0000000..6d10fb8
--- /dev/null
+++ b/generic_data/Param/Args/mex_n_sw.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0"?>
+<param>
+  <args>
+   <group name="PossibleValueJump">
+      <value>5</value>
+    </group> 
+    <group name='Scale'>
+     <value>lin</value>
+     <value>log</value>
+  </group>         
+  </args> 
+</param>
\ No newline at end of file
diff --git a/generic_data/Param/Args/mex_o_spec.xml b/generic_data/Param/Args/mex_o_spec.xml
new file mode 100644
index 0000000..488ac84
--- /dev/null
+++ b/generic_data/Param/Args/mex_o_spec.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0"?>
+<param>
+  <specialArgs>
+    <group name='anode' number='16'/>   
+    <group name='energy' type='multi' number='96' emin='1' emax='25000' units='eV'/>
+   </specialArgs>
+   <args>
+    <group name='elevationAsTime'><value>no</value><value>yes</value></group>
+  </args>
+</param>
\ No newline at end of file
diff --git a/generic_data/Param/Args/mex_v_sw.xml b/generic_data/Param/Args/mex_v_sw.xml
new file mode 100644
index 0000000..777351e
--- /dev/null
+++ b/generic_data/Param/Args/mex_v_sw.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0"?>
+<param>
+  <args>
+   <group name="PossibleValueJump">
+      <value>200</value>
+    </group> 
+    <group name='Scale'>
+     <value>lin</value>
+     <value>log</value>
+  </group>         
+  </args> 
+</param>
\ No newline at end of file
diff --git a/generic_data/Param/Args/mgs_e_flux.xml b/generic_data/Param/Args/mgs_e_flux.xml
new file mode 100644
index 0000000..146ada8
--- /dev/null
+++ b/generic_data/Param/Args/mgs_e_flux.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0"?>
+<param>
+  <specialArgs>       
+    <group name='energy' number='19' emin='10' emax='20000' units='eV'>
+      <value>11</value><value>15</value><value>21</value><value>27</value><value>36</value><value>47</value>
+      <value>61</value><value>79</value><value>116</value><value>191</value>
+      <value>314</value><value>515</value><value>844</value><value>1380</value>
+      <value>2255</value><value>3689</value><value>6035</value><value>9868</value><value>16127</value>
+    </group>
+  </specialArgs>
+  <settings>    
+    <arg>Scale</arg>
+  </settings>
+</param>
\ No newline at end of file
diff --git a/generic_data/Param/Args/paramArguments.xml b/generic_data/Param/Args/paramArguments.xml
new file mode 100644
index 0000000..88cf482
--- /dev/null
+++ b/generic_data/Param/Args/paramArguments.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0"?>
+<param>
+  <group name='RefFrame'>    
+    <value>GSE</value>
+    <value>GSM</value>
+    <value>SM</value>
+  </group>
+  <group name='OrbitPresentation'>    
+    <value>Ticks</value>
+    <value>Line</value>
+    <value>CYL</value>
+  </group>
+</param>
diff --git a/generic_data/Param/Args/paramPlotSettings.xml b/generic_data/Param/Args/paramPlotSettings.xml
new file mode 100644
index 0000000..fe28e79
--- /dev/null
+++ b/generic_data/Param/Args/paramPlotSettings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0"?>
+<param>
+  <group name='Color'> 
+    <value>black</value>    
+    <value>blue</value>
+    <value>light-blue</value>
+    <value>green</value>
+    <value>light-green</value>
+    <value>yellow</value>
+    <value>orange</value>
+    <value>red</value>
+  </group>
+   <group name='Scale'>
+     <value>lin</value>
+     <value>log</value>
+  </group>
+  <group name='Symbol'>
+    <value>no</value><value>plus (+)</value><value>asterisk (*)</value><value>period (.)</value><value>diamond</value>
+    <value>triangle</value><value>square</value><value>X</value>
+  </group>
+</param>
\ No newline at end of file
diff --git a/generic_data/Param/Args/ros_ica_en.xml b/generic_data/Param/Args/ros_ica_en.xml
new file mode 100644
index 0000000..d9e4b38
--- /dev/null
+++ b/generic_data/Param/Args/ros_ica_en.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0"?>
+<param>
+  <specialArgs>
+    <group name='anode' number='16'/>   
+    <group name='energy' type='multi' number='96' emin='1' emax='40000' units='eV'/>                               
+   </specialArgs>
+   <args>     
+     <group name='minCount'><value>0</value></group>
+     <group name='maxCount'><value>0</value></group>
+     <group name='elevationAsTime'><value>no</value><value>yes</value></group>      
+  </args>
+</param>
\ No newline at end of file
diff --git a/generic_data/Param/Args/sta_hee.xml b/generic_data/Param/Args/sta_hee.xml
new file mode 100644
index 0000000..197a9fb
--- /dev/null
+++ b/generic_data/Param/Args/sta_hee.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0"?>
+<param>
+  <args>
+    <group name='OrbitPresentation'><value>LINE</value><value>TICKS</value><value>GLOBAL</value></group>    
+  </args>
+</param>
\ No newline at end of file
diff --git a/generic_data/Param/Args/sta_swea_pad.xml b/generic_data/Param/Args/sta_swea_pad.xml
new file mode 100644
index 0000000..2515118
--- /dev/null
+++ b/generic_data/Param/Args/sta_swea_pad.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0"?>
+<param>
+   <args>    
+     <group units='degrees' args='direct' name='PA'>       
+      <value>spectrogram</value><value>7.5</value><value>22.5</value><value>37.5</value><value>52.5</value>
+      <value>67.5</value><value>82.5</value><value>97.5</value>
+      <value>112.5</value><value>127.5</value><value>142.5</value><value>157.5</value>
+      <value>172.5</value> 
+    </group> 
+    <group name='Energy'>       
+      <value>50</value><value>75</value>
+      <value>105</value><value>150</value><value>215</value><value>300</value>
+      <value>440</value><value>620</value><value>880</value><value>1250</value>
+      <value>1800</value>
+    </group>     
+  </args>    
+</param>
\ No newline at end of file
diff --git a/generic_data/Param/Args/stb_hee.xml b/generic_data/Param/Args/stb_hee.xml
new file mode 100644
index 0000000..197a9fb
--- /dev/null
+++ b/generic_data/Param/Args/stb_hee.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0"?>
+<param>
+  <args>
+    <group name='OrbitPresentation'><value>LINE</value><value>TICKS</value><value>GLOBAL</value></group>    
+  </args>
+</param>
\ No newline at end of file
diff --git a/generic_data/Param/Args/stb_swea_pad.xml b/generic_data/Param/Args/stb_swea_pad.xml
new file mode 100644
index 0000000..8c066d9
--- /dev/null
+++ b/generic_data/Param/Args/stb_swea_pad.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0"?>
+<param>
+   <args> 
+    <group name='Energy'>       
+      <value>50</value><value>75</value>
+      <value>105</value><value>150</value><value>215</value><value>300</value>
+      <value>440</value><value>620</value><value>880</value><value>1250</value>
+      <value>1800</value>
+    </group>     
+  </args>    
+</param>
\ No newline at end of file
diff --git a/generic_data/Param/Args/tha_psef_sp.xml b/generic_data/Param/Args/tha_psef_sp.xml
new file mode 100644
index 0000000..8d124a5
--- /dev/null
+++ b/generic_data/Param/Args/tha_psef_sp.xml
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+<param><args><group name="channel" number="16"/></args></param>
diff --git a/generic_data/Param/Args/tha_psif_sp.xml b/generic_data/Param/Args/tha_psif_sp.xml
new file mode 100644
index 0000000..8d124a5
--- /dev/null
+++ b/generic_data/Param/Args/tha_psif_sp.xml
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+<param><args><group name="channel" number="16"/></args></param>
diff --git a/generic_data/Param/Args/thb_psef_sp.xml b/generic_data/Param/Args/thb_psef_sp.xml
new file mode 100644
index 0000000..8d124a5
--- /dev/null
+++ b/generic_data/Param/Args/thb_psef_sp.xml
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+<param><args><group name="channel" number="16"/></args></param>
diff --git a/generic_data/Param/Args/thb_psif_sp.xml b/generic_data/Param/Args/thb_psif_sp.xml
new file mode 100644
index 0000000..8d124a5
--- /dev/null
+++ b/generic_data/Param/Args/thb_psif_sp.xml
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+<param><args><group name="channel" number="16"/></args></param>
diff --git a/generic_data/Param/Args/thc_psef_sp.xml b/generic_data/Param/Args/thc_psef_sp.xml
new file mode 100644
index 0000000..8d124a5
--- /dev/null
+++ b/generic_data/Param/Args/thc_psef_sp.xml
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+<param><args><group name="channel" number="16"/></args></param>
diff --git a/generic_data/Param/Args/thc_psif_sp.xml b/generic_data/Param/Args/thc_psif_sp.xml
new file mode 100644
index 0000000..8d124a5
--- /dev/null
+++ b/generic_data/Param/Args/thc_psif_sp.xml
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+<param><args><group name="channel" number="16"/></args></param>
diff --git a/generic_data/Param/Args/thd_psef_sp.xml b/generic_data/Param/Args/thd_psef_sp.xml
new file mode 100644
index 0000000..8d124a5
--- /dev/null
+++ b/generic_data/Param/Args/thd_psef_sp.xml
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+<param><args><group name="channel" number="16"/></args></param>
diff --git a/generic_data/Param/Args/thd_psif_sp.xml b/generic_data/Param/Args/thd_psif_sp.xml
new file mode 100644
index 0000000..8d124a5
--- /dev/null
+++ b/generic_data/Param/Args/thd_psif_sp.xml
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+<param><args><group name="channel" number="16"/></args></param>
diff --git a/generic_data/Param/Args/the_psef_sp.xml b/generic_data/Param/Args/the_psef_sp.xml
new file mode 100644
index 0000000..8d124a5
--- /dev/null
+++ b/generic_data/Param/Args/the_psef_sp.xml
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+<param><args><group name="channel" number="16"/></args></param>
diff --git a/generic_data/Param/Args/the_psif_sp.xml b/generic_data/Param/Args/the_psif_sp.xml
new file mode 100644
index 0000000..8d124a5
--- /dev/null
+++ b/generic_data/Param/Args/the_psif_sp.xml
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+<param><args><group name="channel" number="16"/></args></param>
diff --git a/generic_data/Param/Args/vex_els_spec.xml b/generic_data/Param/Args/vex_els_spec.xml
new file mode 100644
index 0000000..32e4938
--- /dev/null
+++ b/generic_data/Param/Args/vex_els_spec.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0"?>
+<param>
+  <specialArgs>
+    <group name='anode' number='16'/>   
+    <group name='energy' type='multi' number='128' emin='1' emax='20800' units='eV'/>      
+  </specialArgs>
+</param>
\ No newline at end of file
diff --git a/generic_data/Param/Args/vex_h_spec.xml b/generic_data/Param/Args/vex_h_spec.xml
new file mode 100644
index 0000000..e45a83e
--- /dev/null
+++ b/generic_data/Param/Args/vex_h_spec.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0"?>
+<param>
+  <specialArgs>
+    <group name='anode' number='16'/>
+    <group name='energy' type='multi' number='96' emin='1' emax='25000' units='eV'/>  
+   </specialArgs>
+   <args>
+    <group name='elevationAsTime'><value>no</value><value>yes</value></group>
+  </args>
+</param>
\ No newline at end of file
diff --git a/generic_data/Param/Args/vex_o_spec.xml b/generic_data/Param/Args/vex_o_spec.xml
new file mode 100644
index 0000000..e45a83e
--- /dev/null
+++ b/generic_data/Param/Args/vex_o_spec.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0"?>
+<param>
+  <specialArgs>
+    <group name='anode' number='16'/>
+    <group name='energy' type='multi' number='96' emin='1' emax='25000' units='eV'/>  
+   </specialArgs>
+   <args>
+    <group name='elevationAsTime'><value>no</value><value>yes</value></group>
+  </args>
+</param>
\ No newline at end of file
diff --git a/generic_data/Param/Args/xyz_p67_hee.xml b/generic_data/Param/Args/xyz_p67_hee.xml
new file mode 100644
index 0000000..197a9fb
--- /dev/null
+++ b/generic_data/Param/Args/xyz_p67_hee.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0"?>
+<param>
+  <args>
+    <group name='OrbitPresentation'><value>LINE</value><value>TICKS</value><value>GLOBAL</value></group>    
+  </args>
+</param>
\ No newline at end of file
diff --git a/generic_data/Plot/DD_Request.res b/generic_data/Plot/DD_Request.res
new file mode 100644
index 0000000..fc505d9
--- /dev/null
+++ b/generic_data/Plot/DD_Request.res
@@ -0,0 +1,4 @@
+portrait
+38         ;Color Table
+triplex    ;Font
+1000       ; ppp
diff --git a/generic_data/SimuTemplate/templateGUMICS.xml b/generic_data/SimuTemplate/templateGUMICS.xml
new file mode 100644
index 0000000..7b91940
--- /dev/null
+++ b/generic_data/SimuTemplate/templateGUMICS.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="utf-8"?>
+<dataRoot xml:id="myRemoteData-treeRootNode">
+    <dataCenter xml:id="FMI_GUMICS" name="FMI_GUMICS"
+        desc="FMI MHD simulation database&lt;br/&gt; ReleaseDate: 2012-01-01T00:00:00"
+        isSimulation="true">
+        <simulationModel xml:id="impex://FMI/HWA/GUMICS/" name="impex://FMI/HWA/GUMICS/"
+            desc="&#10;&#9;&#9;&#9;GUMICS (Grand Unified Magnetosphere Ionosphere Coupling simulation) is a 3-dimensional computer simulation developed at the FMI which used to model the plasma environment of the near-Earth space. The simulation covers most of the regime dominated by the Earth's magnetic field (the magnetosphere), and some parts of the solar wind. The magnetospheric domain is coupled to another computer code describing the ionosphere, which is the ionized upper atmosphere. See http://dx.doi.org/10.1016/j.jastp.2012.03.006 for the details of the used version (GUMICS-4).&#10;&#9;&#9;&lt;br/&gt; ReleaseDate: 2012-01-01T00:00:00.000">
+            <runID isDeletable="true" SimulationType="MHD" ReleaseDate="2013-09-05T12:39:36" GridCellSize_X="1592800"
+                GridCellSize_Y="1592800" GridCellSize_Z="1592800" TemporalDependence="No"
+                LikelihoodRating="Probable"
+                start_desc="&lt;b&gt;Reference Frame: &lt;/b&gt;&lt;br/&gt;GSE, Cartesian&lt;b&gt;&lt;br/&gt;Domain: &lt;/b&gt;Units: radius of Earth&lt;br/&gt;X=[-224, 32]&lt;br/&gt;Y=[-64, 64]&lt;br/&gt;Z=[-64, 64]&lt;br/&gt;&lt;b&gt;&lt;br/&gt;">
+                <dataset name="Mag" SimulatedRegion="Earth.Magnetosphere" domainUnits="m" coordinateSystem="GSE">
+                    <parameter name="Bx,By,Bz" desc="Units: T" size="3">
+                        <component name="Bx"/>
+                        <component name="By"/>
+                        <component name="Bz"/>
+                    </parameter>
+                    <parameter name="Btot" desc="Units: T" size="1"/>
+                </dataset>
+                <dataset name="H+_mstate" SimulatedRegion="Earth.Magnetosphere" domainUnits="m" coordinateSystem="GSE">
+                    <parameter name="H+ number density" desc="Units: m^-3" size="1"/>
+                    <parameter name="H+ velocity" desc="Units: m/s" size="3">
+                        <component name="Ux"/>
+                        <component name="Uy"/>
+                        <component name="Uz"/>
+                    </parameter>
+                    <parameter name="H+ total velocity" desc="Units: m/s" size="1"/>
+                    <parameter name="H+ thermal pressure" desc="Units: Pa" size="1"/>
+                    <parameter name="H+ temperature" desc="Units: K" size="1"/>
+                </dataset>
+            </runID>
+        </simulationModel>
+    </dataCenter>
+</dataRoot>
\ No newline at end of file
diff --git a/generic_data/SpecialSettings/Groups.xml b/generic_data/SpecialSettings/Groups.xml
new file mode 100644
index 0000000..453dedc
--- /dev/null
+++ b/generic_data/SpecialSettings/Groups.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0"?>
+<groups>
+    <group xml:id="Rosetta"><folder name="WS"/><folder name="REQ"/></group>
+</groups>
diff --git a/generic_data/SpecialSettings/Rosetta/REQ/req_0 b/generic_data/SpecialSettings/Rosetta/REQ/req_0
new file mode 100644
index 0000000..6a44fa0
--- /dev/null
+++ b/generic_data/SpecialSettings/Rosetta/REQ/req_0
@@ -0,0 +1 @@
+{"name":"MIP","tabId":"1","outputName":"","orientation":"LANDSCAPE","format":"PNG","title":"","description":"","charSize":1.3,"thickness":1,"ppp":3000,"forcedLayout":false,"forcedMulti":false,"children":[{"name":"Panel 1","leaf":false,"text":"","width":1,"height":0.4,"xTitle":"","xRangeMin":0,"xRangeMax":0,"y1Title":"","y1RangeMin":0,"y1RangeMax":0,"y2Title":"","y2RangeMin":0,"y2RangeMax":0,"plotType":"TIME","children":[{"name":"ros_mip_ldl","leaf":true,"text":"ros_mip_ldl","paramArgs":"select...","isScatter":false,"needsArgs":false,"yaxe":false}]},{"name":"Panel 2","leaf":false,"text":"","width":1,"height":0.4,"xTitle":"","xRangeMin":0,"xRangeMax":0,"y1Title":"","y1RangeMin":0,"y1RangeMax":0,"y2Title":"","y2RangeMin":0,"y2RangeMax":0,"plotType":"TIME","children":[{"name":"ros_mip_pass","leaf":true,"text":"ros_mip_pass","paramArgs":"select...","isScatter":false,"needsArgs":false,"yaxe":false}]},{"name":"Panel 3","leaf":false,"text":"","width":1,"height":0.4,"xTitle":"","xRangeMin":0,"xRangeMax":0,"y1Title":"","y1RangeMin":0,"y1RangeMax":0,"y2Title":"","y2RangeMin":0,"y2RangeMax":0,"plotType":"TIME","children":[{"name":"ros_mip_pasw","leaf":true,"text":"ros_mip_pasw","paramArgs":"select...","isScatter":false,"needsArgs":false,"yaxe":false}]},{"name":"Panel 4","leaf":false,"text":"","width":1,"height":0.4,"xTitle":"","xRangeMin":0,"xRangeMax":0,"y1Title":"","y1RangeMin":0,"y1RangeMax":0,"y2Title":"","y2RangeMin":0,"y2RangeMax":0,"plotType":"TIME","children":[{"name":"ros_mip_surv","leaf":true,"text":"ros_mip_surv","paramArgs":"select...","isScatter":false,"needsArgs":false,"yaxe":false}]}],"timesrc":"Interval","startDate":"2014-08-12T00:00:00","stopDate":"2014-08-13T00:00:00","durationDay":"0001","durationHour":"00","durationMin":"00","durationSec":"00","leaf":true,"nodeType":"request"}
diff --git a/generic_data/SpecialSettings/Rosetta/REQ/req_1 b/generic_data/SpecialSettings/Rosetta/REQ/req_1
new file mode 100644
index 0000000..5d8500e
--- /dev/null
+++ b/generic_data/SpecialSettings/Rosetta/REQ/req_1
@@ -0,0 +1,2 @@
+{"name":"RSN","tabId":"1","outputName":"","orientation":"LANDSCAPE","format":"PNG","title":"","description":"","charSize":1.3,"thickness":1,"ppp":3000,"forcedLayout":false,"forcedMulti":false,"children":[{"name":"Panel 1","leaf":false,"text":"","width":1,"height":0.4,"xTitle":"","xRangeMin":0,"xRangeMax":0,"y1Title":"","y1RangeMin":0,"y1RangeMax":0,"y2Title":"","y2RangeMin":0,"y2RangeMax":0,"plotType":"TIME","children":[{"name":"ros_rsn_n_ng","leaf":true,"text":"ros_rsn_n_ng","paramArgs":"select...","isScatter":true,"needsArgs":false,"yaxe":false}]},{"name":"Panel 2","leaf":false,"text":"","width":1,"height":0.4,"xTitle":"","xRangeMin":0,"xRangeMax":0,"y1Title":"","y1RangeMin":0,"y1RangeMax":0,"y2Title":"","y2RangeMin":0,"y2RangeMax":0,"plotType":"TIME","children":[{"name":"ros_rsn_p_ng","leaf":true,"text":"ros_rsn_p_ng","paramArgs":"select...","isScatter":true,"needsArgs":false,"yaxe":false}]},{"name":"Panel 3","leaf":false,"text":"","width":1,"height":0.4,"xTitle":"","xRangeMin":0,"xRangeMax":0,"y1Title":"","y1RangeMin":0,"y1RangeMax":0,"y2Title":"","y2RangeMin":0,"y2RangeMax":0,"plotType":"TIME","children":[{"name":"ros_rsn_p_rg","leaf":true,"text":"ros_rsn_p_rg","paramArgs":"select...","isScatter":true,"needsArgs":false,"yaxe":false}]}],"timesrc":"Interval","startDate":"2014-07-07T00:00:00","stopDate":"2014-07-08T00:00:00","durationDay":"0001","durationHour":"00","durationMin":"00","durationSec":"00","leaf":true,"nodeType":"request"}
+      
\ No newline at end of file
diff --git a/generic_data/SpecialSettings/Rosetta/REQ/req_2 b/generic_data/SpecialSettings/Rosetta/REQ/req_2
new file mode 100644
index 0000000..1ecbe56
--- /dev/null
+++ b/generic_data/SpecialSettings/Rosetta/REQ/req_2
@@ -0,0 +1 @@
+{"name":"MAG","tabId":"1","outputName":"","orientation":"LANDSCAPE","format":"PNG","title":"","description":"","charSize":1.3,"thickness":1,"ppp":3000,"forcedLayout":false,"forcedMulti":false,"children":[{"name":"Panel 1","leaf":false,"text":"","width":1,"height":0.4,"xTitle":"","xRangeMin":0,"xRangeMax":0,"y1Title":"","y1RangeMin":0,"y1RangeMax":0,"y2Title":"","y2RangeMin":0,"y2RangeMax":0,"plotType":"TIME","children":[{"name":"ros_b_ib","leaf":true,"text":"ros_b_ib","paramArgs":"select...","isScatter":false,"needsArgs":false,"yaxe":false}]},{"name":"Panel 2","leaf":false,"text":"","width":1,"height":0.4,"xTitle":"","xRangeMin":0,"xRangeMax":0,"y1Title":"","y1RangeMin":0,"y1RangeMax":0,"y2Title":"","y2RangeMin":0,"y2RangeMax":0,"plotType":"TIME","children":[{"name":"ros_b_ob","leaf":true,"text":"ros_b_ob","paramArgs":"select...","isScatter":false,"needsArgs":false,"yaxe":false}]}],"timesrc":"Interval","startDate":"2014-06-23T00:00:00","stopDate":"2014-06-24T00:00:00","durationDay":"0001","durationHour":"00","durationMin":"00","durationSec":"00","leaf":true,"nodeType":"request","id":"req_2"}
diff --git a/generic_data/SpecialSettings/Rosetta/WS/Filters.xml b/generic_data/SpecialSettings/Rosetta/WS/Filters.xml
new file mode 100644
index 0000000..5fa27bc
--- /dev/null
+++ b/generic_data/SpecialSettings/Rosetta/WS/Filters.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0"?>
+<filters select="1">
+<filter id="0" name="Default Filter"><cond id="" type="param" index="-1" logical="" condId="" opId="" value=""/></filter>
+<filter id="1" name="rosetta"><cond id="" type="param" index="-1" logical="" condId="" opId="" value=""/><cond id="" type="param" index="0" logical="and" condId="tar" opId="eq" value="Comet"/></filter> 
+</filters>
diff --git a/generic_data/SpecialSettings/Rosetta/WS/Request.xml b/generic_data/SpecialSettings/Rosetta/WS/Request.xml
new file mode 100644
index 0000000..27c709a
--- /dev/null
+++ b/generic_data/SpecialSettings/Rosetta/WS/Request.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0"?>
+<ws>
+  <requestList xml:id="request-treeRootNode">
+    <folder xml:id="Rosetta_request" name="Rosetta">
+      <request xml:id="req_0" name="MIP"/>
+      <request xml:id="req_1" name="RSN"/>
+      <request xml:id="req_2" name="MAG"/>
+    </folder>
+  </requestList>
+  <conditionList xml:id="condition-treeRootNode"/>
+</ws>
diff --git a/generic_data/SpecialSettings/Rosetta/WS/State.xml b/generic_data/SpecialSettings/Rosetta/WS/State.xml
new file mode 100644
index 0000000..ee1d2de
--- /dev/null
+++ b/generic_data/SpecialSettings/Rosetta/WS/State.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0"?>
+<state>
+    <ui name="explorerUI">o%3AactiveTab%3Dn%253A1</ui>
+    <ui name="desk-wallpaper">o%3Awallpaper%3Ds%253Ajs/resources/images/desktop/wallpapers/rosetta.jpg</ui>
+    <ui name="AmdaDesktop_wallpaper">s%3Ajs/resources/images/desktop/wallpapers/rosetta.jpg</ui>
+</state>
\ No newline at end of file
diff --git a/generic_data/jobs.json b/generic_data/jobs.json
new file mode 100644
index 0000000..ee48f3b
--- /dev/null
+++ b/generic_data/jobs.json
@@ -0,0 +1,13 @@
+{"nodes": [
+ {"nodeType" : "bkgWorks", "text" : "Finished Jobs / Results", "id" : "result-treeRootNode", "children" :  
+     [{"nodeType" : "bkgWorks","text" : "Plot","id" : "resPlot-treeRootNode" }, 
+      {"nodeType" : "bkgWorks","text" : "Download","id" : "resDown-treeRootNode"},
+      {"nodeType" : "bkgWorks","text" : "Data Mining","id" : "resSearch-treeRootNode"}
+]
+  }, 
+  {"nodeType" : "bkgWorks", "text" : "Jobs in Progress", "id" : "bkgjobs-treeRootNode", "children" :  
+     [{"nodeType" : "bkgWorks","text" : "Plot","id" : "bkgPlot-treeRootNode" }, 
+      {"nodeType" : "bkgWorks","text" : "Download","id" : "bkgDown-treeRootNode"},
+      {"nodeType" : "bkgWorks","text" : "Data Mining","id" : "bkgSearch-treeRootNode"}]
+  }    
+]}
diff --git a/generic_data/operations.json b/generic_data/operations.json
new file mode 100644
index 0000000..6ba285e
--- /dev/null
+++ b/generic_data/operations.json
@@ -0,0 +1,4 @@
+{"nodes": [
+  {"nodeType" : "request", "text" : "Plot / Download", "id" :  "request-treeRootNode"} ,    
+  {"nodeType" : "condition","text" : "Data Mining","id" : "condition-treeRootNode" }
+]}
diff --git a/generic_data/rank.json b/generic_data/rank.json
new file mode 100644
index 0000000..8fbd26a
--- /dev/null
+++ b/generic_data/rank.json
@@ -0,0 +1,4 @@
+{"Mercury": 1, "Venus": 2, "Heliosphere.NearEarth": 3, "Heliosphere.Remote1AU": 4,
+"Earth.Magnetosheath": 5, "Earth.Magnetosphere": 5, "Earth": 5, "Earth.Surface": 6,
+"Mars": 7, "Jupiter": 8, "Saturn": 9, "Uranus" : 91, "Neptune" : 92, "Comet" : 93, 
+"Heliosphere" : 99 }     
\ No newline at end of file
diff --git a/generic_data/resources.json b/generic_data/resources.json
new file mode 100644
index 0000000..959e071
--- /dev/null
+++ b/generic_data/resources.json
@@ -0,0 +1,18 @@
+{"nodes": [
+  {"nodeType" : "", "text" : "Parameters", "id" :  "parameters-treeBase",
+  "children" : [ {"nodeType" : "localParam", "text" : "AMDA DataBase","id" : "myLocalData-treeRootNode"},
+                 {"nodeType" : "remoteParam", "info" : "Access to other Data Bases : CDAWEB, ...", "text" : "Remote DataBases : Observations", "id" : "myRemoteData-treeRootNode"},
+                 {"nodeType" : "remoteSimuParam", "info" : "Access to Simulation Data Bases", "text" : "Remote DataBases : Simulations", "id" : "myRemoteSimuData-treeRootNode"},
+		 {"nodeType" : "myDataParam", "text" : "My DataBase", "id" : "myDataParam-treeRootNode"}
+		]
+  },
+  {"nodeType" : "derivedParam","text" : "Derived Parameters","id" : "derivedParam-treeRootNode"},
+  {"nodeType" : "alias","text" : "Aliases","id" : "alias-treeRootNode"},   
+  {"nodeType" : "", "text" : "Time Tables", "id" :  "TT-treeBase" , 
+  "children" : [
+		 { "nodeType" : "timeTable", "text" : "My Time Tables", "id" : "timeTable-treeRootNode"},
+		 { "nodeType" : "sharedtimeTable", "text" : "Shared Time Tables", "id" : "sharedtimeTable-treeRootNode"}		 
+		 ]
+  },
+  {"nodeType" : "myData","text" : "My Files", "id" : "myData-treeRootNode"}
+]}
diff --git a/generic_data/wsdl.location b/generic_data/wsdl.location
new file mode 100644
index 0000000..d51ddff
--- /dev/null
+++ b/generic_data/wsdl.location
@@ -0,0 +1,2 @@
+manunja.cesr.fr http://manunja.cesr.fr/BASE/DDService/dd.wsdl
+cdpp1.cesr.fr   http://195.83.102.56/BASE/DDService/dd.wsdl
\ No newline at end of file
diff --git a/help.html b/help.html
new file mode 100644
index 0000000..943d333
--- /dev/null
+++ b/help.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+  <title>AMDA Statistics</title>
+  <link rel="stylesheet" type="text/css" href="js/lib/ext/resources/css/ext-all.css"/>
+  <link rel="stylesheet" type="text/css" href="js/resources/css/amda.css"/>
+  <script type="text/javascript"  src="js/lib/ext/ext-all.js"></script>  
+  <script type="text/javascript" src="js/app/help.js"></script>
+</head>
+
+<body background="js/resources/images/desktop/wallpapers/Cdpp2.jpg"/>
+</body>
+</html>
diff --git a/help/ABC b/help/ABC
new file mode 100644
index 0000000..4871ad7
--- /dev/null
+++ b/help/ABC
@@ -0,0 +1,28 @@
+<h2><img src="js/resources/images/32x32/fav_amda.png"/> The ABCs of AMDA</h2> 
+<p><h2>A. How to Work with Parameters</h2>
+... just <b><i>drag</i></b> the Parameter from the WorkSpace Explorer Tree
+and <b><i>drop</i></b> onto the opened module window.  
+Parameters are displayed as circles of different colors 
+with gray for <b>scalars</b> <img src="js/resources/images/12x12/circle_grey.png">, 
+green for <b>vectors</b> <img src="js/resources/images/12x12/circle_green.png"> and 
+orange for <b>spectra</b> <img src="js/resources/images/12x12/circle_orange.png">. 
+</p><br/>
+<img class="centered" src="help/images/abc_1.png"/>
+<br/><br/>
+<p>
+<h2>B. How to Work with Time Tables</h2>
+<ul> 
+ <li> To edit the Time Table <b><i>double click</i></b> its name in the WorkSpace Explorer Tree.
+ <li> To use  the Time Table as <b><i>input times</i></b>  for AMDA modules <b><i>drag-and-drop</i></b>
+      it from the WorkSpace Explorer Tree onto the opened module window.
+      Don't forget to activate <b><i>TimeTable</i></b> mode (radio button).
+</ul><br/>
+<img class="centered" src="help/images/abc_2.png"/>  
+</p><br/>
+<p>
+<h2>C. Context Menu </h2>
+<b><i>Right click</i></b> on any of the WorkSpace Explorer Tree <b><i>nodes</i></b> opens the <b><i>Context Menu</i></b>.
+<br/>An example for <b><i>TimeTable</i></b> nodes:
+<br/><br/><img class="centered" src="help/images/tt_1.png"/>
+<br/>
+</p>
\ No newline at end of file
diff --git a/help/Gumics b/help/Gumics
new file mode 100755
index 0000000..42e757f
--- /dev/null
+++ b/help/Gumics
@@ -0,0 +1,30 @@
+
+<h2> IMPEx getMostRelevantRun based on a <a href="http://impex-fp7.fmi.fi/ws_tests/test_getMostRelevantRun.php" TARGET=_BLANK>FMI algorithm</b></a>.</h2>
+
+ 
+<UL>
+  <li> <b>General</b>
+<br/>    
+<p>
+This page demonstrates the use of the 'getMostRelevantRun' method. This method is intended to help users to find those simulation runs in SMDB's tree.xml file whose input parameters best match the given solar wind conditions. For each simulation run in the tree.xml file the method computes a 'difference index'. This 'difference index' is a sum of individual difference indices (one for each solar wind parameter defined in the input parameter set). If valuesw, scalesw and weightsw denote the value, scale and weight, respectively, of given input value for solar wind parameter 'sw' and valuesw(i) is the value of this solar wind parameter for i'th run then the difference index for this run (i) is computed as
+</p>
+<p>    
+<b>S_diff(i) = ∑ weight_sw * [(value_sw - value_sw(i))/scale_sw]^2</b>
+</p>
+<p>
+where the sum runs over all given solar wind parameters 'sw'. The smaller the 'difference index' the better the match. A perfect match will give 'difference index' zero.
+</p>
+<p>    
+As an output the method returns the list of matching runs ordered according to the total difference index in ascending order. So the 'most relevat run' is the first element. The list is in json format. The structure of the json string is displayed when clicking in the 'Show json' button at the bottom of the page.
+</p> 
+<p>
+To use this demo fill all necessary fields in the 'Input parameters' table below. For those solar wind parameters that you want to be taken into account in the fitting procedure set the 'value' to the desired value, for other fields leave the 'value' field empty. The 'weight' and 'scale' fields are set to default values but may be freely edited. Note that the input solar wind parameters in the getMostRelevantRun method must be expressed in base SI units (m, m/s, T, 1/m^3, ...) ! 
+</p>
+    <li> <b>SW_Function </b>
+<p>        
+  The SW_function input parameter allows user to define his/her own input parameter which is a combination of other solar wind input parameters. The SW_Function's 'function' parameter is a string which defines the expression how this input parameter is constructed. The variable names for the solar wind parameters used in this string are same as the names of the input parameters (i.e. 'SW_Density', 'SW_Temperature', 'SW_Bot', ...). Standard math functions (sqrt, sin, abs, ...) which are available in PHP may be used.
+</p>
+<p>      
+  An example: The user wants to find runs where the ratio |Bx/Btot| is near to one. Then he/she may set the function string as 'abs(SW_Bx/SW_Btot)' and value -> 1, weight -> 1 and scale -> 1. 
+</p>
+</UL>
diff --git a/help/MexInv b/help/MexInv
new file mode 100644
index 0000000..7bac8e4
--- /dev/null
+++ b/help/MexInv
@@ -0,0 +1,20 @@
+ 
+<h2>Mex ASPERA/IMA Data at AMDA</h2>
+<br/>
+<h2>Principal Investigator: S. Barabash (IRF, Kiruna)</h2>
+
+<i>Please acknowledge the Principal Investigator when making a publication using this data</i>.<br/> 
+
+<br/>
+ Consult <a href="http://goezogt.cesr.fr/DD_MARS/Inventory.html" target="_blank">MEX IMA/ELS Inventory Graph</a>
+  for detailed ASPERA data coverage.<br/><br/>
+ 
+  <ul><i>Inventory Legend</i>
+  <li>IMA - IMA 4D spectra 
+  <li>ELS - ELS spectra  
+  <li>IMAEXTRA - IMA spectra for ion species
+  <li>IMAANG - IMA field-of-view, used for moments calculations
+  <li>IMAPARAM - moments of 3D IMA distribution function
+  <li>digits on the graph - PACC (post acceleration) values <br/>
+      IMAEXTRA and IMAPARAM are calculated for pacc = 4 only      
+  </ul>
diff --git a/help/RemoteDataHelp b/help/RemoteDataHelp
new file mode 100644
index 0000000..4d59fbf
--- /dev/null
+++ b/help/RemoteDataHelp
@@ -0,0 +1,7 @@
+<h2><img src="js/resources/images/16x16/interop.png" style="margin: 0px 10px 0px 0px;"/>Remote Centers : Adding Data</h2>
+<IMG SRC="help/images/RemoteData.png" /></br>
+1 : Choose the <b>Remote Data Base</b></br>
+2 : Choose your datasets ( possible if you see the cursor <IMG SRC="help/images/cursor_plus.png" /> ) and <b>drag and drop</b> them from the left to the right part of the window.</br>
+3 : When you finish, click on the <b>Save Modifs</b> button</br>
+4 : You can <b>delete data</b> by right click on the dataset you want to delete</br></br>
+You can see these datasets in the Remote Data tree in the Workspace Explorer
\ No newline at end of file
diff --git a/help/RosettaHelp b/help/RosettaHelp
new file mode 100644
index 0000000..5c37299
--- /dev/null
+++ b/help/RosettaHelp
@@ -0,0 +1,12 @@
+<h2><img src="js/resources/images/32x32/fav_amda.png"/>Welcome To Rosetta Edition of AMDA</h2> 
+<ul>
+ <li>If it is your first visit to AMDA start witn AMDA's <b>ABCs</b>
+ <li>Rosetta Plasma Consortium (RPC) data come from Imperial College database.
+ <li>Use predefined layouts (plot requests) available in the <b><i>operations</i></b> tab of your workspace
+  <br/><br/> 
+  <img class="centered" src="help/images/rosettaReq.png"><br/>  
+ <li>To access the full AMDA database (<b><i>resources</i></b> tab) reset the <b><i>rosetta</i></b> filter in the Workspace Explorer
+  <br/><br/> 
+  <img class="centered" src="help/images/rosettaFilter.png"><br/>
+</ul>
+ 
\ No newline at end of file
diff --git a/help/SKR.html b/help/SKR.html
new file mode 100755
index 0000000..29ef9dc
--- /dev/null
+++ b/help/SKR.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=windows-1252"><title> </title>
+<link href="../js/resources/css/styles.css" rel="stylesheet" type="text/css" media="screen" />
+<link rel="icon" href="../favicon.ico" type="image/x-icon">
+<link rel="shortcut icon" href="../favicon.ico" type="image/x-icon">
+</head>	
+ <body>
+<div id="content"> 
+<div id="main">
+<h3>
+        Daily ASCII files of SKR flux densities and integrated powers
+             in Left-Hand and Right-Hand Circular polarizations
+</h3>
+</br>
+  
+SKR data are available from <a href="http://www.lesia.obspm.fr/kronos/"> LESIA/OBSPM</a>
+
+<p>
+Data have been produced by L. Lamy, B. Cecconi & P. Zarka, from the Observatoire
+de Paris/LESIA Cassini-RPWS team. <br/>
+Use of these data should comply with 
+Cassini-MAPS <a href="http://mapskp.cesr.fr/use_policy/CASSINI_RoR.php">'rules of the road'</a>. Using these data for publications should imply 
+co-authorship of L. Lamy and/or B. Cecconi and/or P. Zarka in that order of 
+priority. Preferred collaboration is participation to analysis well ahead of 
+publication.
+
+<p>
+Any other question or request (e.g. integrated powers over frequency bands
+other than 100-400 and 10-1000 kHz) should be addressed to
+<a href="mailto:laurent.lamy@obspm.fr"> Laurent Lamy</a>, 
+<a href="mailto:baptiste.cecconi@obspm.fr"> Baptiste Cecconi</a>,
+or <a href="mailto:philippe.zarka@obspm.fr"> Philippe Zarka</a>
+</div></div>
+</body></html>
\ No newline at end of file
diff --git a/help/STEREO.html b/help/STEREO.html
new file mode 100755
index 0000000..8c960e5
--- /dev/null
+++ b/help/STEREO.html
@@ -0,0 +1,43 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
+<title>STEREO ROR</title>
+<link href="../js/resources/css/styles.css" rel="stylesheet" type="text/css" media="screen" />
+<link rel="icon" href="../favicon.ico" type="image/x-icon">
+<link rel="shortcut icon" href="../favicon.ico" type="image/x-icon">
+</head>	
+<body>
+<div id="content">
+<div id="back">
+<div style="clear: both;">&nbsp;</div>
+<div id="main">
+<h3>IMPACT/MAG, IMPACT/SWEA and PLASTIC data from STEREO</h3>
+</br>
+Magnetometer data from the STEREO/IMPACT/MAG instruments are made 
+available by UCLA (Lead: C. T. Russell).<br/>
+Electron data from the STEREO/IMPACT/SWEA instruments are made available 
+by CESR (Lead: J.-A. Sauvaud).<br/>
+All STEREO IMPACT (PI: J. G. Luhmann) data and information may be found at <br/> 
+<a href="http://sprg.ssl.berkeley.edu/impact/">http://sprg.ssl.berkeley.edu/impact/</a>
+<p>
+Solar wind proton data from the STEREO/PLASTIC instruments are made 
+available by UNH (PI: A. B. Galvin).<br/>
+All STEREO PLASTIC data and information may be found at <br/> 
+<a href="http://fiji.sr.unh.edu/">http://fiji.sr.unh.edu/</a>
+<p>
+We strongly recommend contacting/working directly with the instrument 
+leads regarding data interpretation and publication in order to be 
+informed of the latest nuances and accuracy updates of the dataset.
+<p>
+For SWEA electron measurements, calibrations have been done and permit 
+data usage for most scientific purposes. The usual long-term degradation 
+of the detectors has, however, not yet been accounted for. Thus the SWEA 
+data should not be used/interpreted in terms of absolute value.
+<p>
+It is also noted that, since commissioning, the SWEA instruments on both 
+STEREO spacecraft have registered difficulty to characterize the solar 
+wind at core electron energies. The nature of the degradations is such 
+that electron measurements below 45 eV cannot be used. Data products 
+used in AMDA have these lower energies removed. However, halo and higher 
+energy electrons are unaffected.
+</div></div></div></div>
+</body></html>
diff --git a/help/SampHelp b/help/SampHelp
new file mode 100644
index 0000000..cf5b635
--- /dev/null
+++ b/help/SampHelp
@@ -0,0 +1,30 @@
+<h2> <img src="js/resources/images/16x16/ivoa.png"/> Connection to a SAMP hub</h2> 
+<p>
+Start with clicking  the <img src="js/resources/images/16x16/interop.png"  align="middle"/> <b><i>Interoperability Module</i></b> 
+</p>
+<p>
+AMDA is a web application so it can't have an embedded SAMP hub. It's necessary to first run a tool that includes a SAMP hub.
+</p>
+<p>
+<span style="font-weight:bold; color:red">1</span> : Click on the button SAMP connection. If no hub is running, you'll see the following error message
+</p><br/>
+<img class="centered" src="help/images/SampNo.png"/ >
+<br/>
+<p>
+<span style="font-weight:bold; color:red">2</span> : You can start a hub with <b>Starthub</b> 
+or you can launch <a href="http://www.star.bris.ac.uk/~mbt/topcat/" target="_blank">Topcat</a> or 
+<a href="http://aladin.u-strasbg.fr/" target="_blank">Aladin</a> applications.
+</p>
+<p>
+<span style="font-weight:bold; color:red">3</span> : 
+If the hub is correctly launched, you'll see the secure message, click <b><i>Yes</i></b>
+<br/><br/><img class="centered" src="help/images/SampSecure.png"/><br/>
+</p>
+<p>
+ <img  src="help/images/SampAMDA.png" align="left" style="margin: 0px 25px 0px 0px;"/><span style="font-weight:bold; color:red">4</span> : You can see that the SAMP 
+connection is OK (green button) and the list of clients connected to the SAMP hub. 
+You can see the same information at the taskbar <img src="help/images/SampTaskBar.png" align=bottom/ >
+<br/><br/><br/> 
+<img class="centered" src="help/images/SampDisconnect.png"/ ><br/><br/>
+<span style="font-weight:bold; color:red">5</span> : To disconnect from the SAMP hub, click on the button <b><i>SAMP connection</i?</b> 
+</p>
diff --git a/help/SampMain b/help/SampMain
new file mode 100644
index 0000000..ceb4853
--- /dev/null
+++ b/help/SampMain
@@ -0,0 +1,10 @@
+<h2><img src="js/resources/images/16x16/ivoa.png" style="margin: 0px 10px 0px 0px;"/>What is SAMP</h2>
+<p>
+<a href="http://www.ivoa.net/documents/SAMP/" target="_blank">SAMP</a>
+is standing for Simple Application Messaging Protocol.</p>
+<p>
+Visit <a href=http://wiki.ivoa.net/twiki/bin/view/IVOA/SampSoftware" target="_blank">IVOA wiki</a>
+to see the list of applications which can talk SAMP.
+</p>
+<br/>
+<br/>        
\ No newline at end of file
diff --git a/help/VEXGRAZ.html b/help/VEXGRAZ.html
new file mode 100755
index 0000000..0916dd7
--- /dev/null
+++ b/help/VEXGRAZ.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
+<title></title>
+</head>	
+<link href="../js/resources/css/styles.css" rel="stylesheet" type="text/css" media="screen" />
+<link rel="icon" href="../favicon.ico" type="image/x-icon">
+<link rel="shortcut icon" href="../favicon.ico" type="image/x-icon">
+<body>
+<div id="content"> 
+<div id="main">
+<h2>Magnetometer data from Venus Express</h2>
+</br>
+Magnetometer data from Venus Express (VEXGRAZ) are available from 
+<a href="http://www.iwf.oeaw.ac.at/"> IWF/Graz. </a>
+
+<p>
+Data have been produced by <a href="mailto:Tielong.Zhang@oeaw.ac.at"> T. Zhang</a>, 
+Principal Investigator (PI) of the MAG instrument onboard Venus Express.  
+<p>
+We strongly recommend working directly or checking with the PI regarding 
+data interpretation, and well in advance to submitting a 
+talk/publication, in order to be informed of the nuances (and accuracy) 
+of the VEXGRAZ dataset.
+<p>
+Using these data for publications should imply co-authorship of T. Zhang.
+<p>
+The connection of AMDA with VEXMAG data is established in close 
+cooperation between CDPP and IWF/GRaz within the IDIS (Integrated and 
+Distributed Information Service) framework. The Development of IDIS into 
+an international research support environment is supported by the 
+European Commission's 7th Framework Program, *Europlanet Research 
+Infrastructure, grant agreement 228319, as part of the Capacities 
+Specific Programme / Research Infrastructures.
+</div></div>
+</body></html>
\ No newline at end of file
diff --git a/help/VexInv b/help/VexInv
new file mode 100644
index 0000000..cbfc4c5
--- /dev/null
+++ b/help/VexInv
@@ -0,0 +1,19 @@
+ 
+<h2> Vex ASPERA/IMA Data at AMDA</h2>
+
+<h2>Principal Investigator: S. Barabash (IRF, Kiruna)</h2>
+
+<i>Please acknowledge the Principal Investigator when making a publication using this data</i>.<br/> 
+
+<br/><br/>
+ Consult <a href="http://goezogt.cesr.fr/DD_VEX/Inventory.html">VEX IMA/ELS Inventory Graph</a>
+ for detailed ASPERA data coverage.<br/><br/>
+
+ <ul><i>Inventory Legend</i>
+  <li>IMA - IMA 4D spectra 
+  <li>ELS - ELS spectra  
+  <li>IMAEXTRA - IMA spectra for ion species
+  <li>IMAANG - IMA field-of-view, used for moments calculations
+  <li>IMAPARAM - moments of 3D IMA distribution function
+  <li>digits on the graph - PACC (post acceleration) values (always 6)      
+  </ul>
\ No newline at end of file
diff --git a/help/about b/help/about
new file mode 100644
index 0000000..aec8ad3
--- /dev/null
+++ b/help/about
@@ -0,0 +1,21 @@
+<IMG align="right" SRC="help/images/picto_amda.png"/>
+<br/><h2>Welcome on AMDA !</h2> 
+<i>Release date :  2013-10-08</i>
+<br/><br/><br/>
+<h3>Warnings</h3>
+1. This AMDA version is a combination of a new web interface with the old AMDA core which we are currently redesigning.<br/>
+2. Names of some parameters have changed - Old requests could fail, let us know of any problem.<br/><br/>  
+<h3>Major changes</h3>
+    * A multi-plot manager enables browsing multiple plots at once<br/>
+    * Long requests are treated in batch mode and managed in a job list<br/>
+    * AMDA can connect to IVOA/SAMP hub to enable VOTable/CDF file transfer<br/>
+    * Automatic download request filled from the plot interface<br/>
+    * Icons for parameters: small grey cirle - scalar; green circle - vector/tensor; orange circle - spectra<br/>
+    * "Kill Process" button is added<br/>
+    * Enhanced plotting options : scatter, resolution, ...<br/>
+    * User Groups : a dataset is disabled in the tree if you don't have access right<br/><br/> 
+
+<h3>Known issues / Implementations to come</h3>
+    * Editing a new parameter from edited and/or uploaded parameters<br/>
+    * Plotting spectra from uploaded or remote data<br/>
+    * Catalogues and shared time tables will come back in a later version 
\ No newline at end of file
diff --git a/help/about.html b/help/about.html
new file mode 100755
index 0000000..dc020c8
--- /dev/null
+++ b/help/about.html
@@ -0,0 +1,121 @@
+<html xmlns="http://www.w3.org/TR/REC-html40"><head><title>About AMDA</title>
+ <meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<title>AMDA About</title>
+<meta name="keywords" content="" />
+<meta name="description" content="" />
+<link href="../js/resources/css/styles.css" rel="stylesheet" type="text/css" media="screen" />
+<link rel="icon" href="../favicon.ico" type="image/x-icon">
+<link rel="shortcut icon" href="../favicon.ico" type="image/x-icon"> 
+</head>
+
+<body>
+<div id="content">
+<div id="back">
+<div style="clear: both;">&nbsp;</div>
+<div id="main">  
+        <div id="right">        
+        <h3>AMDA DOCS</h3>
+                        <div class="title">
+                       <ul>
+                           <li>Presentations  
+                            <ul>
+                                <li>
+                                    <a href="http://cdpp.cesr.fr/index.php?option=com_content&task=view&id=26&Itemid=66">
+                                         CDPP/AMDA and the Virtual Observatories</a></li>  
+                                 <li>   
+                                     <a href="http://cdpp.cesr.fr/index.php?option=com_content&task=view&id=42&Itemid=66">Science with CDPP/AMDA</a></li>
+                             </ul></li>
+                          <li>Publications
+                              <ul>
+                                <li> <a href="http://cdpp.cesr.fr/index.php?option=com_content&task=view&id=25&Itemid=66"> 
+                                  CDPP/AMDA and the Virtual Observatories</a></li> 
+                                  <li><a href="http://cdpp.cesr.fr/index.php?option=com_content&task=view&id=43&Itemid=66"> 
+                                   Science with CDPP/AMDA</a></li>                                    
+                         </ul></li>
+                       </ul>
+                  </div>
+                 <h3>AMDA THANKS</h3>
+                        <div class="title">                      
+                            <ul>
+                               <li> Data Centers
+                                <ul>
+                                    <li><a title="Institut de Recherche en Astrophysique et Planétologie" href="http://www.irap.omp.eu/">IRAP</a>
+                                    <li><a title="Coordinated Data Analysis Web, Goddard" href="http://cdaweb.gsfc.nasa.gov/">CDAWeb</a> 
+                                    <li><a title="Planetary Data System" href="http://pds.jpl.nasa.gov/">PDS</a>
+                                    <li><a href="http://omniweb.gsfc.nasa.gov/">OMNIWeb</a>
+                                    <li><a title="World Data Center for Magnetism, Kyoto" href="http://swdcwww.kugi.kyoto-u.ac.jp/">WDC, Kyoto</a> 
+                                    <li><a title="MAPS Key Parameter Database, IRAP/OMP, Toulouse" href="http://mapskp.cesr.fr/">MAPSKP</a>
+                                    <li><a href="http://themis.ssl.berkeley.edu/index.shtml">THEMIS</a>
+                                    <li><a href="http://csds-fr.cnes.fr:8082/cdms/">French Cluster Data Center</a>
+                                    <li><a title="Cluster Active Archive" href="http://caa.estec.esa.int/caa/ ">CAA</a>
+                                    <li><a title="International Service of Geomagnetic Indices"
+                                                     href="http://isgi.cetp.ipsl.fr">IGSI/CETP</a>
+                                     <li><a title="Danish Meteorological Institute"
+                                                     href="http://www.dmi.dk">DMI</a>
+                                    <li><a href="http://www.lesia.obspm.fr/kronos/">LESIA/OBSPM</a>
+                                    <li><a title="UK Solar System Data Centre" href="http://www.ukssdc.ac.uk/">UKSSDC</a>
+                                    <li><a title="STEREO science center" href="http://stereo-ssc.nascom.nasa.gov/">SSC</a>
+				 </ul> 
+                             </li>
+                       </ul>
+                  </div>
+                      
+                      
+        </div>
+<div id="left"> 
+    <h2>AMDA Intro</h2>   
+<p>  
+The plasma objects studied in space physics consist of gigantic systems characterised by
+multiscale dynamics and fast long range couplings between key regions. For
+studying such systems, it is necessary to perform integrated multi-point/multi-instrument
+analysis in case studies and statistical studies as well. The ISTP program, the
+CLUSTER, THEMIS and MMS missions have been defined for facing this requirement.
+</p>
+<p>Integrated
+analysis of multi-point and multi-instrument data means that the researcher has
+to: 
+</p><ul>
+  <li> find interesting cases</li>
+  <li> when some cases have been found, find and extract the data of interest</li>
+  <li> when the data are collected, treat them (formatting, bad point filtering, 
+    resampling, data merging)</li>
+  <li> visualise combined (i.e. coming from various sets) data</li>
+  <li>perform calculation and apply various
+specific tools on the data 
+</li></ul>
+
+<p> Depending on the heterogeneity of the data and the dispersion of their sources, 
+  the scientists can spend a lot of energy and time just for searching, finding, 
+  treating and preparing the data before starting scientific analysis. In order 
+  to help the users to faster reach the data analysis and interpretation step, 
+  the CDPP is developing a service with the following goals: </p>
+<p> The service provides functionalities for </p>
+<ul>
+  <li>performing automated search of events, producing time-tables. This tool scans 
+    the content of the data and automatically test mathematical criteria edited 
+    by the user</li>
+  <li>performing semi-automated search of events, producing time-tables. This 
+    tool allows the user to browse the data she/he selected by sequentially producing 
+    a figure he has predefined</li>
+  <li>performing automated and semi-automated characterisation of events, producing 
+    catalogues (time-tables + extracted parameters)</li>
+  <li>extracting sub-database from an input time-table</li>
+  <li>performing basic data treatment (formatting, bad point filtering, re-sampling, 
+    data merging, ) in order to provide to the user data ready to use with her/his 
+    favourite software</li>
+</ul>
+<p> These tools can be applied on large amount of data (including 
+  multi-mission/multi-instrument datasets) in a transparent way by the users. 
+</p>
+<p> The data are either physically resident in the AMDA database 
+  or remotely accessed from remote sites via web-services (CDAWEB, MAPSKP). </p>
+<p>  The service can be reached and used from other sites according 
+  to the Virtual Observatory paradigm. </p>
+<hr>
+<p>AMDA is developed on the basis of an existing DD SYSTEM (Andrey Fedorov, IRAP).</p> 
+<br/><br/>
+<p> <a href="..">AMDA Home =&gt;</a></p>
+</div>
+</div>
+</div>
+</body></html>
diff --git a/help/advancedFeatures b/help/advancedFeatures
new file mode 100644
index 0000000..06250ad
--- /dev/null
+++ b/help/advancedFeatures
@@ -0,0 +1,25 @@
+<h2><img src="js/resources/images/16x16/plot.png" style="margin: 0px 10px 0px 0px;"/>Additional Features</h2>
+<p>
+<b><i>Several Parameters on one Panel</i></b>
+</p>
+<p>
+To plot several parameter on one panel just drop them on the same panel in the Plot Form.
+</p><br/>
+<img class="centered" src="help/images/plot_18.png"/>
+<br/>
+<p>
+<b><i>AutoScale</i> TBD</b> 
+</p>
+<p>
+<b><i>AutoLayout</i> TBD</b>
+</p>
+<br/>
+</p>
+<p>
+<b><i>Get Data</i> TBD</b>
+</p>
+<p>
+<b><i>Save Request</i> TBD</b>
+</p>
+<br/>
+<br/>        
\ No newline at end of file
diff --git a/help/aliases b/help/aliases
new file mode 100644
index 0000000..cd95bba
--- /dev/null
+++ b/help/aliases
@@ -0,0 +1,22 @@
+<h2>Aliases</h2>
+<p>
+Sometimes the parameter name (or <b><i>ID</i></b>) AMDA works with (and what you see in the module window after dropping the parameter)
+is too long. 
+It concerns especially the  parameters from the Remote Centers  when the ID is constructed 
+automatically. <b><i>Aliases</i></b> permit you to replace long ID with your own short alias. 
+</p>
+<p>
+<b><i>DoubleClick</i></b> on the parameter node (or use context menu)
+and in the opened <b><i>Create Alias</i></b> window you'll see the parameter ID  which
+will be put into the forms for plot, data mining, etc. Put any name you prefer and <b><i>Save</i></b> it. <br/><br/>
+<img src="help/images/alias1.png" class="centered" /> 
+<br/><br/>
+</p>
+<p>
+<img src="help/images/alias2.png"  align="left"  style="margin: 0px 10px 0px 0px;"/>  
+  You  see new alias added to  the
+ Aliases Tree of the WorkSpace Explorer. From now instead of the long parameter ID AMDA will put    
+ your alias with "#" prefix into all forms. The aliases are <b><i>dragged-and-dropped</i></b> as the usual parameters.
+</p>
+<br/>
+<br/>        
\ No newline at end of file
diff --git a/help/autoLayout b/help/autoLayout
new file mode 100644
index 0000000..1e0a5e3
--- /dev/null
+++ b/help/autoLayout
@@ -0,0 +1,3 @@
+<h2>AutoLayout</h2><br/> 
+
+When this option is activated, AMDA groups the  scatter-type panels on the page automatically.
diff --git a/help/autoScale b/help/autoScale
new file mode 100644
index 0000000..0eac3e6
--- /dev/null
+++ b/help/autoScale
@@ -0,0 +1,4 @@
+<h2>AutoScale</h2><br/> 
+
+When this option is activated, AMDA autoscales parameters (5 maximum) from the same panel.
+Colors are added automatically.
\ No newline at end of file
diff --git a/help/content.json b/help/content.json
new file mode 100644
index 0000000..48d624d
--- /dev/null
+++ b/help/content.json
@@ -0,0 +1,159 @@
+{ 
+text: '.',
+children: [
+    { 
+      text: 'The ABCs of AMDA',
+      id: 'ABC',
+      leaf:true
+    },{
+    text:'WorkSpace Explorer',
+    children:[{
+        text:'Resources',
+        id: 'resourceTree',        
+        leaf:true
+    },{
+        text:'Resources: Parameters',
+        id: 'parametersTree',        
+        leaf:true
+    },{
+        text:'Resources: Filtering',
+        id: 'filters',        
+        leaf:true
+    },{
+        text:'Resources: Time Tables',
+        id: 'timetables',        
+        leaf:true
+    },{
+        text:'Operations', 
+        id: 'operationsHelp',
+        leaf:true    
+    },{
+        text:'Jobs', 
+        id: 'jobsHelp',
+        leaf:true
+    }]
+   },{
+    text:'Creating Parameters and Aliases',
+    children:[{
+        text:'Derived Parameters',
+        id: 'parameterHelp',
+        leaf:true
+    },{
+        text:'MyData Parameters',
+        id: 'mydataparameter',
+        leaf:true
+    },{
+        text:'Aliases',
+        id: 'aliases',
+        leaf:true
+    }]
+},{
+    text:'Plotting',
+    children:[{
+        text:'Getting Started',
+        id: 'plotStart',        
+        leaf:true
+    },{
+        text:'Global Settings',
+        id: 'plotSettings',        
+        leaf:true
+    },{
+        text:'Panel Settings',
+        id: 'panelSettings',        
+        leaf:true
+    },{
+        text:'Parameter Arguments',
+        id: 'paramSettings',        
+        leaf:true
+    },{
+        text:'Interactive Plot Session',
+        id: 'interSession',        
+        leaf:true
+    },{
+        text:'Additional Features',
+        id: 'advancedFeatures',        
+        leaf:true
+    },{
+        text:'MultiPlot Mode',
+        id: 'multiPlot',         
+        leaf:true
+    },{
+        text:'Access to Hubble Images',
+        id: 'hubbleImages',         
+        leaf:true
+    }]
+},{
+    text:'Data Mining',
+    children:[{
+        text:'Searching In Data',
+        id: 'dataminingHelp',
+        leaf:true
+    },{
+        text:'Using Functions',
+        id: 'functionsHelp',
+        leaf:true
+    }]
+},{
+    text:'Data Downloading',
+    children:[{
+        text:'Data', 
+        id: 'downloadDataHelp',
+        leaf:true
+    },{
+        text:'TimeTables', 
+        id: 'downloadTTHelp',
+        leaf:true
+    }]
+},{
+    text:'Data Uploading',
+    children:[{
+        text:'Data', 
+        id: 'uploadDataHelp',
+        leaf:true
+    },{
+        text:'TimeTables', 
+        id: 'uploadTTHelp',
+        leaf:true
+    }]
+},{
+    text:'Time Tables',
+    children:[{
+        text:'Managing Time Tables', 
+        id: 'timetableHelp',
+        leaf:true
+    },{
+        text:'Operations on Time Tables', 
+        id: 'ttOperationsHelp',
+        leaf:true
+    },{
+        text:'Shared Time Tables', 
+        id: 'ttShared',
+        leaf:true
+    }]
+},{
+    text:'Working with SAMP',
+    children:[
+    {
+        text:'What is SAMP', 
+        id: 'SampMain',
+        leaf:true
+    },
+    {
+        text:'Connecting to SAMP Hub', 
+        id: 'SampHelp',
+        leaf:true
+    }]
+},{ 
+      text:'Remote Data',
+      children:[{   
+      text:'Remote Data Centers', 
+        id: 'remoteIntro',
+        leaf:true
+    },{   
+      text:'Remote Centers: Adding Data', 
+        id: 'RemoteDataHelp',
+        leaf:true
+    }
+    ]
+}]
+}
\ No newline at end of file
diff --git a/help/dataMiningHOWTO b/help/dataMiningHOWTO
new file mode 100644
index 0000000..a31add2
--- /dev/null
+++ b/help/dataMiningHOWTO
@@ -0,0 +1,5 @@
+ 
+  To construct a condition for data mining <b><i>drag</i></b> one of the AMDA parameters
+  from the parameter tree and <b><i>drop</i></b> onto the panel.<br/>
+  Use <b>&</b> symbol as logical <b><i>AND</i></b> and  <b>|</b> symbol as logical <b><i>OR</i></b>.<br/>
+  <b><i>Attention !</i></b> Use <b><i>FLOAT</i></b> numbers in math expressions.<br/>
\ No newline at end of file
diff --git a/help/dataminingHelp b/help/dataminingHelp
new file mode 100644
index 0000000..2abad5c
--- /dev/null
+++ b/help/dataminingHelp
@@ -0,0 +1,60 @@
+<h2><img src="js/resources/images/16x16/search.png" style="margin: 0px 10px 0px 0px;"/>Data Mining</h2> 
+<p>
+DataMining module is searching in data for time intervals when a condition on parameters (defined by user)
+is valid.<br/><br/>
+<b>1 : </b>To construct a condition <b><i>drag</i></b> the parameter[s] from the Parameter Tree and <b><i>drop</i></b>  
+it onto the <b><i>Data Mining Condition</i></b> area.<br/>
+<img class="centered" src="help/images/mining1.png"/><br/>
+</p>
+<p>
+<b>2 : </b>While constructing you may use different components from the <b><i>Tools For Condition Construction</i></b> -
+for example  - <b><i>Constants</i></b>:<br/><br/> 
+<img class="centered" src="help/images/derived2.png"><br/> 
+</p>
+<p> 
+<b>3 : </b>To combine and compare different AMDA parameters which possibly have different 
+sampling times you have to specify the  condition <b><i>Sampling Time Step</i></b>.<br/>
+</p><p> 
+<img align="left" src="help/images/mining2.png" style="margin: 0px 10px 0px 0px;"/>
+Depending on their original sampling, AMDA parameters will be averaged or interpolated to obtain 
+a condition evaluated at a <b><i>Sampling Time Step</i></b> resolution. Before evaluate the expression
+all the parameters are resampled and after that the expression is calculated. 
+ </p>
+<p>
+You may also put  <b><i>Data Gap</i></b> value. It is expressed in the parameter 'sampling 
+times' and defines  gaps threshold. If data is absent for time interval greater than this threshold
+the interval is treated as 'gap', otherwise the interval is filled with the interpolated data.
+</p>
+<p>
+Parameter' <i>Sampling Time</i> as well as <i>Global Start - Stop Time Interval</i>
+are displayed in popup window shown when the mouse is over the parameter name in Parameters tree.
+</p><br/>
+<p>
+<img align="left"  src="help/images/mining3.png" style="margin: 0px 10px 0px 0px;"/>
+<b>4 : </b>Data Mining could be done either for a single time interval 
+(<b><i>Start Time</i></b> and <b><i>Time Interval</i></b> should be defined) 
+or for a set of time intervals from one or several <b><i>Time Tables</i></b>.
+</p><br/>
+<p>
+<b>5 : </b>Condition  may be saved in your Workspace for next use. 
+Just give the name to a condition (<b><i>Request Name</i></b>) and 
+click the <b><i>Save Request</i></b> button. Your condition is added to the <b><i>DataMining</i></b>
+tree of the Workspace Explorer, <b><i>Operations</i></b> tab.
+<img class="centered" src="help/images/mining4.png"/><br/>
+</p>
+<p>
+<img align="left" src="help/images/mining6.png" style="margin: 0px 10px 0px 0px;"/><br/>
+<b>6 : </b>Double clicking on condition name in the <b><i>DataMining</i></b> tree 
+(Workspace Explorer, <b><i>Operations</i></b> tab) or selecting <b><i>DataMining By Request</i></b>
+from the context menu opens the DataMining module filled with the condition content.
+</p>
+<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
+<p>
+<b>7 : </b> Data Mining produces two XML tables (Time Table  and  Gaps Time Table) accessible from the <b><i>Results</i></b> window : 
+<img class="centered" src="help/images/mining8.png"><br/><br/>
+</p>
+<p>
+<img align="right" src="help/images/mining9.png" style="margin: 0px 0px 0px 10px;"/> 
+<b>8 : </b> <b><i>Results</i></b> window may be always opened by selecting <b><i>Show Result</i></b> from context menu opened on the right click at the corresponding node of the
+ FinishedJobs / Results, DataMining tree of the Workspace Explorer, <b><i>Jobs</i></b> tab.
+</p>
\ No newline at end of file
diff --git a/help/downloadDataHelp b/help/downloadDataHelp
new file mode 100755
index 0000000..5c4a8aa
--- /dev/null
+++ b/help/downloadDataHelp
@@ -0,0 +1,34 @@
+<h2><img src="js/resources/images/16x16/download_manager.png" style="margin: 0px 10px 0px 0px;"/> Get Data </h2>
+<p>To download a parameter, <b><i>drag</i></b> it from the Parameter tree and <b><i>drop</i></b> onto the 
+<b><i>Download</i></b> panel.</br></br>
+<img align="left" SRC="help/images/download.png"  style="margin: 0px 15px 0px 0px;"/>
+</p>
+<p>
+There are three main downloading options:</br>
+1. <b><i>One File Per Param/Interval</i></b></br>
+Each parameter and each time interval from time table (if you download data for intervals from a Time Table) 
+is output into separate file. <br/>
+Sampling time = original parameter sampling time. <br/>
+Note that <b><i>Sampling Time step</i></b> and <b><i>File Name</i></b> are not available for this type of data download.</br>
+2. <b><i>All in One File</i></b></br>
+All parameters you select are downloaded into one file.</br>
+3. <b><i>One File Per Time interval</i></b></br>
+All parameters you select are downloaded into one file for each time interval.</br>
+In case 2 and 3 you have to define common <b><i>Sampling Time step</i></b>, you may give your own <b><i>Output File Name</i></b>.</br></br></br>
+
+You may write <b><i>header</i></b> into Data File or into a separate File.</br> 
+You may choose the File Format (<b><i>ASCII</i></b> or <b><i>VOTable</i></b>).</br>
+You may <b><i>zip</i></b> or <b><i>tar+gzip</i></b> those files.<br/></br>
+<b>Time</b> can be selected by <b>Interval</b> or by <b>Time Table</b></br>
+To select a time table, <b><i>drag</i></b> it from the Time Tables tree and <b><i>drop</i></b> onto the Time Table panel</br></br>
+<IMG SRC="help/images/timeTT.png"/></br></br>
+
+<h3> Results of Download </h3>
+After clicking on the <IMG SRC="help/images/download_button.png" align="top" /> button, if your job takes a long time the job is launched in batch</br></br>
+<IMG SRC="help/images/job.png"  width="502" height="98"/></br></br>
+0therwise you can download immediately the result (in ASCII or VOTable)</br></br>
+<IMG SRC="help/images/result.png"/></br></br>
+
+<h3> Send via SAMP </h3>
+You can send the result of your download to clients who are connected to the SAMP hub</br></br>
+<IMG SRC="help/images/SampSend.png" />
\ No newline at end of file
diff --git a/help/downloadHOWTO b/help/downloadHOWTO
new file mode 100644
index 0000000..30c1a74
--- /dev/null
+++ b/help/downloadHOWTO
@@ -0,0 +1,7 @@
+1. To download a parameter/time table, <b><i>drag</i></b> it from the Parameters/Time Tables tree and <b><i>drop</i></b> 
+onto the corresponding panel.</br>
+2. To download data for the intervals from the time table activate the <b><i>TimeTable mode</i></b> in the Time Selection area and <b><i>drag-and-drop</i></b> 
+ there the time table from the Time Tables tree.
+</br>
+
+
diff --git a/help/downloadHelp b/help/downloadHelp
new file mode 100644
index 0000000..815af72
--- /dev/null
+++ b/help/downloadHelp
@@ -0,0 +1,37 @@
+<h3> Get Data </h3>
+To download a parameter, <span style="font-weight:bold; color:red">drag</span> it from the parameter tree and <span style="font-weight:bold; color:red">drop</span> onto the panel.</br></br>
+<IMG  align="left" SRC="help/images/download.png"/>
+There are Tree Main options:</br>
+1. <b>One File Per Param/Interval</b></br>
+Each parameter and each time interval from time table (if you download data for intervals from a Time Table) is output into separate file. <br/>
+Sampling time = original parameter sampling time. <br/>
+Note that <b>Sampling Time step</b> and <b>File Name</b> are not available for this type of data download.</br>
+2. <b>All in One File</b></br>
+All parameters you select are downloaded into one file.</br>
+3. <b>One File Per Time interval</b></br>
+All parameters you select are downloaded into one file for each time interval.</br>
+In case 2 and 3 you have to define common <b> Sampling Time step</b> and you may give your own <b> Output File Name</b>.</br></br>
+
+You can write <b>header</b> into Data File or in a separate File. You can choose the File Format (<b>ASCII</b> or <b>VOTable</b>).</br>
+You may <b>zip</b> or <b> tar+gzip</b> those files.<br/></br>
+<IMG  align="left" SRC="help/images/timeTT.png"/>
+<b>Time</b> can be selected by <b>Interval</b> or by <b>Time Table</b></br></br>
+To select a time table, <span style="font-weight:bold; color:red">drag</span> it from the Time Tables tree and <span style="font-weight:bold; color:red">drop</span> onto the Time Table panel</br></br></br></br></br></br></br></br>
+
+<h3> Results of Download </h3>
+After clicking on the <IMG SRC="help/images/download_button.png" align="top" /> button, if your job takes a long time the job is launched in batch</br></br>
+<IMG SRC="help/images/job.png"  width="502" height="98"/></br></br>
+0therwise you can download immediately the result (in ASCII or VOTable)</br></br>
+<IMG SRC="help/images/result.png"/></br></br>
+
+<h3> Send via SAMP </h3>
+You can send the result of your download to clients who are connected to the SAMP hub</br></br>
+<IMG SRC="help/images/SampSend.png" /></br></br>
+
+<h3> Get Time Table</h3>
+To download a time table, <span style="font-weight:bold; color:red">drag</span> it from the Time Tables tree and <span style="font-weight:bold; color:red">drop</span> onto the Time Table panel.</br></br>
+<IMG SRC="help/images/downloadTT.png"/><br/><br/>
+<IMG  align="left" SRC="help/images/optionDownloadTT.png"/>
+You can choose the Time Format.</br>
+You can choose the File Format (<b>plain text</b> or <b>VOTable</b>).</br>
+You may <b>zip</b> or <b> tar+gzip</b> those files.<br/></br>
diff --git a/help/downloadTTHelp b/help/downloadTTHelp
new file mode 100755
index 0000000..2e68e2f
--- /dev/null
+++ b/help/downloadTTHelp
@@ -0,0 +1,8 @@
+<h2><img src="js/resources/images/16x16/download_manager.png" style="margin: 0px 10px 0px 0px;"/> Get Time Table</h2>
+To download a time table <b><i>drag</i></b> it from the Time Tables tree and <b><i>drop</i></b> onto the Download 
+Time Table panel.</br></br>
+<img class="centered" src="help/images/ttdown.png"/><br/><br/>
+<p><img  align="left" src="help/images/optionDownloadTT.png" style="margin: 0px 15px 0px 0px;"/>
+You can choose the Time Format and the File Format (<b>plain text</b> or <b>VOTable</b>).</br>
+You may <b>zip</b> or <b> tar+gzip</b> those files.
+</p><br/>
\ No newline at end of file
diff --git a/help/fileMask b/help/fileMask
new file mode 100755
index 0000000..4a877f1
--- /dev/null
+++ b/help/fileMask
@@ -0,0 +1,25 @@
+<h2>WORKING WITH FILE MASKS</h2><br/>
+To simplify the life you may organize uploaded files in the groups (folders) using File Masks.<br/><br/>
+For example files <br/>
+ <i>ac_h0_mfi_20090828_v05.cdf; ac_h0_mfi_20090829_v05.cdf; ac_h0_mfi_20090830_v05.cdf</i>  
+<br/>
+could be associated with file masks <br/>
+ <b><i>ac_h0_mfi_200908*cdf</i></b> OR  <b><i>ac_h0_mfi_2009</i></b> OR  <b><i>ac_h0_mfi_</i></b>....etc...<br/><br/>
+Organization of your files into "mask" folders  is
+made automatically if you introduce a file mask while defining a parameter. 
+Each file could belong to <b>ONE</b> file mask only. If you create a mask more common than existing before
+all files that fit new mask will be associated with the new mask and old association will be destroyed.<br/><br/>
+In the above example mask <b><i>ac_h0_mfi_</i></b> is more common than <b><i>ac_h0_mfi_2009</i></b> and 
+<b><i>ac_h0_mfi_200908</i></b> and they will be (where  possible) replaced by <b><i>ac_h0_mfi_</i></b>.
+<br/><br/>  
+<ul><b>Several simple rules:</b>
+<br/> 
+<li>Mask could include  ONE and ONLY ONE "<b>*</b>" symbol  
+<li>Mask should not be shorter than 5 letters
+<li>Mask should not start with "<b>*</b>"
+<li>It is prohibited to replace  more common mask by less common one. In the above example you cannot
+     replace <b><i>ac_h0_mfi_</i></b> with <b><i>ac_h0_mfi_2009</i></b> or <b><i>ac_h0_mfi_200908</i></b>.
+<li>Association of different types of files with one mask (ac_h1_mfi..., ac_h2_mfi...,
+     ac_h2_mfi => ac_h) could produce an error.
+</ul> 
+ 
diff --git a/help/filterHOWTO b/help/filterHOWTO
new file mode 100644
index 0000000..c813572
--- /dev/null
+++ b/help/filterHOWTO
@@ -0,0 +1,5 @@
+To define or apply a filter to the Workspace Explorer. </br>
+Select a filter, create a new one, or remove an existing one.  </br>
+Use <b>right click to add or remove a condition</b> in a filter group. </br>
+Use <b>Save</b> button to save your modifications. </br>
+Use <b>Apply</b> button to apply current selected filter to the Workspace Explorer.  </br>
\ No newline at end of file
diff --git a/help/filters b/help/filters
new file mode 100644
index 0000000..771f41a
--- /dev/null
+++ b/help/filters
@@ -0,0 +1,21 @@
+<h2><img src="js/resources/images/16x16/filter.png" style="margin: 0px 10px 0px 0px;"/> Resources Tree : Filtering</h2> 
+<p>To reduce the size of the Parameter Tree use the <b><i>filter feature</i></b>.
+Select/Add the filter by clicking <img src="help/images/edit.png"/> to open the <b>Filter Control Panel</b>.
+To unset filtering click <img src="help/images/cancel.png"/>
+</p>
+<p>
+Example below shows an application of the <b>TARGET = VENUS</b> filter.
+</p>
+<p>
+<img  class="centered" src="help/images/resourcestop.png" /> 
+</p><br><br/>
+<p>
+<h2>Filter Control Panel</h2>
+1 : Select a filter, create a new one, or remove an existing one.  </br>
+2 : Use <b>right click to add or remove a condition</b> in a filter group. </br>
+3 : Select the condition in the list. </br>
+4 : Use <b>Save</b> button to save your modifications. </br>
+5 : Use <b>Apply</b> button to apply current selected filter to the Workspace Explorer.
+<br/> <br/> 
+<img  class="centered" src="help/images/filtre.png"/> 
+</p>
\ No newline at end of file
diff --git a/help/functionsHelp b/help/functionsHelp
new file mode 100644
index 0000000..638fea4
--- /dev/null
+++ b/help/functionsHelp
@@ -0,0 +1,4 @@
+<h2>Using Functions</h2>
+<b>TBD</b> 
+<br/>
+<br/>        
\ No newline at end of file
diff --git a/help/hubbleImages b/help/hubbleImages
new file mode 100644
index 0000000..ea4c7ad
--- /dev/null
+++ b/help/hubbleImages
@@ -0,0 +1,4 @@
+<h2><img src="js/resources/images/16x16/plot.png" style="margin: 0px 10px 0px 0px;"/>Access to Hubble Telescope Images</h2>
+<b>TBD</b> 
+<br/>
+<br/>        
\ No newline at end of file
diff --git a/help/images/RemoteData.png b/help/images/RemoteData.png
new file mode 100644
index 0000000..f663059
Binary files /dev/null and b/help/images/RemoteData.png differ
diff --git a/help/images/SampAMDA.png b/help/images/SampAMDA.png
new file mode 100644
index 0000000..6629c86
Binary files /dev/null and b/help/images/SampAMDA.png differ
diff --git a/help/images/SampDisconnect.png b/help/images/SampDisconnect.png
new file mode 100644
index 0000000..db84f78
Binary files /dev/null and b/help/images/SampDisconnect.png differ
diff --git a/help/images/SampNo.png b/help/images/SampNo.png
new file mode 100644
index 0000000..bb26fef
Binary files /dev/null and b/help/images/SampNo.png differ
diff --git a/help/images/SampSecure.png b/help/images/SampSecure.png
new file mode 100644
index 0000000..256af72
Binary files /dev/null and b/help/images/SampSecure.png differ
diff --git a/help/images/SampSend.png b/help/images/SampSend.png
new file mode 100644
index 0000000..d27beb4
Binary files /dev/null and b/help/images/SampSend.png differ
diff --git a/help/images/SampTaskBar.png b/help/images/SampTaskBar.png
new file mode 100644
index 0000000..e7793f8
Binary files /dev/null and b/help/images/SampTaskBar.png differ
diff --git a/help/images/abc_1.png b/help/images/abc_1.png
new file mode 100644
index 0000000..ee57255
Binary files /dev/null and b/help/images/abc_1.png differ
diff --git a/help/images/abc_2.png b/help/images/abc_2.png
new file mode 100644
index 0000000..c840a02
Binary files /dev/null and b/help/images/abc_2.png differ
diff --git a/help/images/alias1.png b/help/images/alias1.png
new file mode 100644
index 0000000..c542ff1
Binary files /dev/null and b/help/images/alias1.png differ
diff --git a/help/images/alias2.png b/help/images/alias2.png
new file mode 100644
index 0000000..a6b6a38
Binary files /dev/null and b/help/images/alias2.png differ
diff --git a/help/images/cancel.png b/help/images/cancel.png
new file mode 100755
index 0000000..e9920bf
Binary files /dev/null and b/help/images/cancel.png differ
diff --git a/help/images/cursor_plus.png b/help/images/cursor_plus.png
new file mode 100644
index 0000000..b6081b0
Binary files /dev/null and b/help/images/cursor_plus.png differ
diff --git a/help/images/datamining.png b/help/images/datamining.png
new file mode 100644
index 0000000..99c8afa
Binary files /dev/null and b/help/images/datamining.png differ
diff --git a/help/images/derived.png b/help/images/derived.png
new file mode 100644
index 0000000..a3e3104
Binary files /dev/null and b/help/images/derived.png differ
diff --git a/help/images/derived1.png b/help/images/derived1.png
new file mode 100644
index 0000000..4bb6279
Binary files /dev/null and b/help/images/derived1.png differ
diff --git a/help/images/derived2.png b/help/images/derived2.png
new file mode 100644
index 0000000..c8f8bc7
Binary files /dev/null and b/help/images/derived2.png differ
diff --git a/help/images/derived3.png b/help/images/derived3.png
new file mode 100644
index 0000000..ce28e5a
Binary files /dev/null and b/help/images/derived3.png differ
diff --git a/help/images/download.png b/help/images/download.png
new file mode 100644
index 0000000..1ee027c
Binary files /dev/null and b/help/images/download.png differ
diff --git a/help/images/downloadTT.png b/help/images/downloadTT.png
new file mode 100644
index 0000000..f29d74e
Binary files /dev/null and b/help/images/downloadTT.png differ
diff --git a/help/images/download_button.png b/help/images/download_button.png
new file mode 100644
index 0000000..025190a
Binary files /dev/null and b/help/images/download_button.png differ
diff --git a/help/images/edit.png b/help/images/edit.png
new file mode 100755
index 0000000..cd77c30
Binary files /dev/null and b/help/images/edit.png differ
diff --git a/help/images/filtre.png b/help/images/filtre.png
new file mode 100644
index 0000000..ab6096e
Binary files /dev/null and b/help/images/filtre.png differ
diff --git a/help/images/interop.png b/help/images/interop.png
new file mode 100755
index 0000000..e04251a
Binary files /dev/null and b/help/images/interop.png differ
diff --git a/help/images/job.png b/help/images/job.png
new file mode 100644
index 0000000..bf92e8c
Binary files /dev/null and b/help/images/job.png differ
diff --git a/help/images/jobs.png b/help/images/jobs.png
new file mode 100644
index 0000000..5002995
Binary files /dev/null and b/help/images/jobs.png differ
diff --git a/help/images/jobs_1.png b/help/images/jobs_1.png
new file mode 100644
index 0000000..4de2208
Binary files /dev/null and b/help/images/jobs_1.png differ
diff --git a/help/images/jobs_2.png b/help/images/jobs_2.png
new file mode 100644
index 0000000..53136b3
Binary files /dev/null and b/help/images/jobs_2.png differ
diff --git a/help/images/mining1.png b/help/images/mining1.png
new file mode 100644
index 0000000..f40ac51
Binary files /dev/null and b/help/images/mining1.png differ
diff --git a/help/images/mining2.png b/help/images/mining2.png
new file mode 100644
index 0000000..7134fc5
Binary files /dev/null and b/help/images/mining2.png differ
diff --git a/help/images/mining3.png b/help/images/mining3.png
new file mode 100644
index 0000000..5aa4ff8
Binary files /dev/null and b/help/images/mining3.png differ
diff --git a/help/images/mining4.png b/help/images/mining4.png
new file mode 100644
index 0000000..413c96a
Binary files /dev/null and b/help/images/mining4.png differ
diff --git a/help/images/mining6.png b/help/images/mining6.png
new file mode 100644
index 0000000..aef3880
Binary files /dev/null and b/help/images/mining6.png differ
diff --git a/help/images/mining8.png b/help/images/mining8.png
new file mode 100644
index 0000000..a96bd65
Binary files /dev/null and b/help/images/mining8.png differ
diff --git a/help/images/mining9.png b/help/images/mining9.png
new file mode 100644
index 0000000..363f3f0
Binary files /dev/null and b/help/images/mining9.png differ
diff --git a/help/images/mydata.png b/help/images/mydata.png
new file mode 100644
index 0000000..786112f
Binary files /dev/null and b/help/images/mydata.png differ
diff --git a/help/images/operationTab.png b/help/images/operationTab.png
new file mode 100644
index 0000000..ceaf52a
Binary files /dev/null and b/help/images/operationTab.png differ
diff --git a/help/images/operations.png b/help/images/operations.png
new file mode 100644
index 0000000..4c85e3e
Binary files /dev/null and b/help/images/operations.png differ
diff --git a/help/images/optionDownloadTT.png b/help/images/optionDownloadTT.png
new file mode 100644
index 0000000..8c68b33
Binary files /dev/null and b/help/images/optionDownloadTT.png differ
diff --git a/help/images/parameter.png b/help/images/parameter.png
new file mode 100644
index 0000000..7156c02
Binary files /dev/null and b/help/images/parameter.png differ
diff --git a/help/images/params.png b/help/images/params.png
new file mode 100644
index 0000000..7139faf
Binary files /dev/null and b/help/images/params.png differ
diff --git a/help/images/paramtree.png b/help/images/paramtree.png
new file mode 100644
index 0000000..5103edd
Binary files /dev/null and b/help/images/paramtree.png differ
diff --git a/help/images/picto_amda.png b/help/images/picto_amda.png
new file mode 100755
index 0000000..e5cc150
Binary files /dev/null and b/help/images/picto_amda.png differ
diff --git a/help/images/plot_1.png b/help/images/plot_1.png
new file mode 100644
index 0000000..8908243
Binary files /dev/null and b/help/images/plot_1.png differ
diff --git a/help/images/plot_10.png b/help/images/plot_10.png
new file mode 100644
index 0000000..ad1a410
Binary files /dev/null and b/help/images/plot_10.png differ
diff --git a/help/images/plot_11.png b/help/images/plot_11.png
new file mode 100644
index 0000000..c60574c
Binary files /dev/null and b/help/images/plot_11.png differ
diff --git a/help/images/plot_12.png b/help/images/plot_12.png
new file mode 100644
index 0000000..7e76b4c
Binary files /dev/null and b/help/images/plot_12.png differ
diff --git a/help/images/plot_13.png b/help/images/plot_13.png
new file mode 100644
index 0000000..4d50186
Binary files /dev/null and b/help/images/plot_13.png differ
diff --git a/help/images/plot_14.png b/help/images/plot_14.png
new file mode 100644
index 0000000..3bf83ab
Binary files /dev/null and b/help/images/plot_14.png differ
diff --git a/help/images/plot_15.png b/help/images/plot_15.png
new file mode 100644
index 0000000..f8bd117
Binary files /dev/null and b/help/images/plot_15.png differ
diff --git a/help/images/plot_16.png b/help/images/plot_16.png
new file mode 100644
index 0000000..1da0d10
Binary files /dev/null and b/help/images/plot_16.png differ
diff --git a/help/images/plot_17.png b/help/images/plot_17.png
new file mode 100644
index 0000000..163ddea
Binary files /dev/null and b/help/images/plot_17.png differ
diff --git a/help/images/plot_18.png b/help/images/plot_18.png
new file mode 100644
index 0000000..ec4d4cd
Binary files /dev/null and b/help/images/plot_18.png differ
diff --git a/help/images/plot_2.png b/help/images/plot_2.png
new file mode 100644
index 0000000..65bac30
Binary files /dev/null and b/help/images/plot_2.png differ
diff --git a/help/images/plot_3.png b/help/images/plot_3.png
new file mode 100644
index 0000000..ed4a8b9
Binary files /dev/null and b/help/images/plot_3.png differ
diff --git a/help/images/plot_4.png b/help/images/plot_4.png
new file mode 100644
index 0000000..67890ec
Binary files /dev/null and b/help/images/plot_4.png differ
diff --git a/help/images/plot_5.png b/help/images/plot_5.png
new file mode 100644
index 0000000..7493261
Binary files /dev/null and b/help/images/plot_5.png differ
diff --git a/help/images/plot_6.png b/help/images/plot_6.png
new file mode 100644
index 0000000..ac3aa9f
Binary files /dev/null and b/help/images/plot_6.png differ
diff --git a/help/images/plot_7.png b/help/images/plot_7.png
new file mode 100644
index 0000000..cda8309
Binary files /dev/null and b/help/images/plot_7.png differ
diff --git a/help/images/plot_8.png b/help/images/plot_8.png
new file mode 100644
index 0000000..3a01f79
Binary files /dev/null and b/help/images/plot_8.png differ
diff --git a/help/images/plot_9.png b/help/images/plot_9.png
new file mode 100644
index 0000000..80aab14
Binary files /dev/null and b/help/images/plot_9.png differ
diff --git a/help/images/plot_type_1.png b/help/images/plot_type_1.png
new file mode 100644
index 0000000..2032104
Binary files /dev/null and b/help/images/plot_type_1.png differ
diff --git a/help/images/plot_type_3.png b/help/images/plot_type_3.png
new file mode 100644
index 0000000..2dc52cb
Binary files /dev/null and b/help/images/plot_type_3.png differ
diff --git a/help/images/remote1.png b/help/images/remote1.png
new file mode 100644
index 0000000..d166653
Binary files /dev/null and b/help/images/remote1.png differ
diff --git a/help/images/remote2.png b/help/images/remote2.png
new file mode 100644
index 0000000..dafe2fb
Binary files /dev/null and b/help/images/remote2.png differ
diff --git a/help/images/request.png b/help/images/request.png
new file mode 100644
index 0000000..523e52f
Binary files /dev/null and b/help/images/request.png differ
diff --git a/help/images/resources.png b/help/images/resources.png
new file mode 100644
index 0000000..70e0b0f
Binary files /dev/null and b/help/images/resources.png differ
diff --git a/help/images/resourcesTree.png b/help/images/resourcesTree.png
new file mode 100644
index 0000000..ee682a8
Binary files /dev/null and b/help/images/resourcesTree.png differ
diff --git a/help/images/resourcestop.png b/help/images/resourcestop.png
new file mode 100644
index 0000000..35680b9
Binary files /dev/null and b/help/images/resourcestop.png differ
diff --git a/help/images/result.png b/help/images/result.png
new file mode 100644
index 0000000..d717be3
Binary files /dev/null and b/help/images/result.png differ
diff --git a/help/images/rosettaFilter.png b/help/images/rosettaFilter.png
new file mode 100644
index 0000000..7cffc58
Binary files /dev/null and b/help/images/rosettaFilter.png differ
diff --git a/help/images/rosettaReq.png b/help/images/rosettaReq.png
new file mode 100644
index 0000000..0052f1d
Binary files /dev/null and b/help/images/rosettaReq.png differ
diff --git a/help/images/save.png b/help/images/save.png
new file mode 100644
index 0000000..bf8942b
Binary files /dev/null and b/help/images/save.png differ
diff --git a/help/images/timeTT.png b/help/images/timeTT.png
new file mode 100644
index 0000000..e5ba24a
Binary files /dev/null and b/help/images/timeTT.png differ
diff --git a/help/images/tools.png b/help/images/tools.png
new file mode 100644
index 0000000..ab098c6
Binary files /dev/null and b/help/images/tools.png differ
diff --git a/help/images/ttOperations.png b/help/images/ttOperations.png
new file mode 100644
index 0000000..c22e47d
Binary files /dev/null and b/help/images/ttOperations.png differ
diff --git a/help/images/ttOpers.png b/help/images/ttOpers.png
new file mode 100644
index 0000000..044d7db
Binary files /dev/null and b/help/images/ttOpers.png differ
diff --git a/help/images/tt_1.png b/help/images/tt_1.png
new file mode 100644
index 0000000..d464ff8
Binary files /dev/null and b/help/images/tt_1.png differ
diff --git a/help/images/tt_filter.png b/help/images/tt_filter.png
new file mode 100644
index 0000000..fe0aef7
Binary files /dev/null and b/help/images/tt_filter.png differ
diff --git a/help/images/tt_operations.png b/help/images/tt_operations.png
new file mode 100644
index 0000000..77fe68f
Binary files /dev/null and b/help/images/tt_operations.png differ
diff --git a/help/images/tt_tree.png b/help/images/tt_tree.png
new file mode 100644
index 0000000..9890a6e
Binary files /dev/null and b/help/images/tt_tree.png differ
diff --git a/help/images/ttcols.png b/help/images/ttcols.png
new file mode 100644
index 0000000..efc3e73
Binary files /dev/null and b/help/images/ttcols.png differ
diff --git a/help/images/ttdown.png b/help/images/ttdown.png
new file mode 100644
index 0000000..3162935
Binary files /dev/null and b/help/images/ttdown.png differ
diff --git a/help/images/ttfilt.png b/help/images/ttfilt.png
new file mode 100644
index 0000000..b789449
Binary files /dev/null and b/help/images/ttfilt.png differ
diff --git a/help/images/upload.png b/help/images/upload.png
new file mode 100644
index 0000000..238eec4
Binary files /dev/null and b/help/images/upload.png differ
diff --git a/help/images/uploadTT.png b/help/images/uploadTT.png
new file mode 100644
index 0000000..9026989
Binary files /dev/null and b/help/images/uploadTT.png differ
diff --git a/help/images/uploadTT_2.png b/help/images/uploadTT_2.png
new file mode 100644
index 0000000..42d1b20
Binary files /dev/null and b/help/images/uploadTT_2.png differ
diff --git a/help/images/uploadfile_1.png b/help/images/uploadfile_1.png
new file mode 100644
index 0000000..4883750
Binary files /dev/null and b/help/images/uploadfile_1.png differ
diff --git a/help/images/uploadfile_2.png b/help/images/uploadfile_2.png
new file mode 100644
index 0000000..21a3441
Binary files /dev/null and b/help/images/uploadfile_2.png differ
diff --git a/help/images/uploadfile_3.png b/help/images/uploadfile_3.png
new file mode 100644
index 0000000..79a799a
Binary files /dev/null and b/help/images/uploadfile_3.png differ
diff --git a/help/images/uploadtt_1.png b/help/images/uploadtt_1.png
new file mode 100644
index 0000000..caaf08c
Binary files /dev/null and b/help/images/uploadtt_1.png differ
diff --git a/help/images/uploadurl.png b/help/images/uploadurl.png
new file mode 100644
index 0000000..380b71d
Binary files /dev/null and b/help/images/uploadurl.png differ
diff --git a/help/interSession b/help/interSession
new file mode 100644
index 0000000..c84841b
--- /dev/null
+++ b/help/interSession
@@ -0,0 +1,35 @@
+<h2><img src="js/resources/images/16x16/plot.png" style="margin: 0px 10px 0px 0px;"/>Interactive Plot Session</h2>
+<p>
+ PNG plot generates screen output and opens an interactive session. Using buttons/slider
+you can  1) navigate back and forth in time, 2) resize image, 3) select time interval for its zooming or 
+storing in time table, 4) extend/shift time interval, 5) access to Hubble Space Telescope images.
+</p>
+<br/>
+<img class="centered" src="help/images/plot_12.png"/> 
+<br/>
+<p>
+In case of Time Table input you navigate over Time Table intervals. 
+</p> 
+<br/>    
+<img class="centered" src="help/images/plot_13.png"/> 
+<br/> 
+<p>
+<b><i>Zoom In Time Interval</i></b> 
+</p>
+<p>
+After clicking <i>Zoom In Time Interval</i> button 
+select interval of interest by clicking image.
+You can  either 1) zoom image or 2) insert selected interval into new or existing time table.
+Time Table name is to be typed (or dragged/dropped) in the <i>Add In Time Table</i> field. 
+</p>
+<br/>
+<img class="centered" src="help/images/plot_14.png"/>
+<br/>
+<p>
+<b><i>Extend/Shift</i></b>. Time extention/shift value can be positive (interval extention, positive time shift)
+or negative (interval shrinking, negative time shift). 
+</p>
+<p>
+You find the description of 5) access to Hubble Space Telescope images in the <i>Access to Hubble Images</i> section.
+</p>
+<br/> 
diff --git a/help/jobsHelp b/help/jobsHelp
new file mode 100644
index 0000000..6a2ca3e
--- /dev/null
+++ b/help/jobsHelp
@@ -0,0 +1,39 @@
+<h2><img src="js/resources/images/16x16/view_tree.png" style="margin: 0px 10px 0px 0px;"/>WorkSpace Explorer : Jobs Tree</h2>
+<h2>1. Starting Job</h2>
+<p>
+<img src="help/images/jobs_1.png" align="left" style="margin: 0px 15px 0px 0px;" />
+The situation often arises when your request is too long to be processed interactively. 
+In such a case it is forked into <b><i>a batch mode</i></b>. 
+</p>
+<p>
+"Too long" means 5 sec for Data Mining, Data Downloading
+and Plotting in PDF/PS formats. In the case of Interactive Plot Session (PNG Plot output) this time increses
+to 500 sec.
+</p>
+<p> You receive warning message, new
+<b><i>job node</i></b> is added to the corresponding folder in the <b><i>Jobs In Progress</i></b> tree of
+<b><i>Jobs Tab</i></b> and job information is added into <b><i>Log</i></b> as well.
+</p>
+<p>
+Job name is constructed by adding of the <i>Process ID</i> to the "job" prefix.
+In case of an error you may always kill your job by opening contex menu (right click on job name) and selecting <b>Stop/Delete Job</b>
+item.
+</p>
+<p>
+You may continue with the other tasks in AMDA, or logout. 
+</p>
+<br/><br/><br/><br/><br/><br/><br/><br/>
+<h2>2. Finished Job</h2>
+<p>
+<img src="help/images/jobs_2.png" align="right" style="margin: 15px 0px 15px 0px;" />
+ 
+When your job is finished 
+you receive a corresponding info message, <b><i>job node</i></b> is moved to <b><i>Finished Jobs / Results</i></b> folder
+and <b><i>Log</i></b> information is updated.
+</p>
+<p>
+To access the result right click the job name and select <b>Show Result</b> item from the context menu.
+</p>
+<p>
+Think of regular deleting of the old results (<b>Delete Result</b>) - not to explose your WS...
+</p>
\ No newline at end of file
diff --git a/help/licenceAction.do.html b/help/licenceAction.do.html
new file mode 100755
index 0000000..f12bfa0
--- /dev/null
+++ b/help/licenceAction.do.html
@@ -0,0 +1,128 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<link href="../js/resources/css/styles2.css" rel="stylesheet" type="text/css" media="screen" />
+<link rel="icon" href="../favicon.ico" type="image/x-icon">
+<link rel="shortcut icon" href="../favicon.ico" type="image/x-icon">
+<head>
+
+
+
+
+
+	
+ 
+
+ 
+ 
+ 
+ 
+
+	<meta http-equiv="Content-Type" content="text/html; charset=windows-1252"><title>SIPAD LICENCE</title>
+	
+<meta name="generator" content="HTML Tidy for Windows (vers 1er Avril 2002), see www.w3.org"><meta http-equiv="Content-Type" content="text/html; charset=windows-1252"><meta name="GENERATOR" content="Microsoft FrontPage 3.0">
+</head>
+<body>
+<div id="content"> 
+<div id="main">
+	<table border="0" cellpadding="0" cellspacing="0" width="100%">
+		<tbody><tr>
+			<td align="center">
+				<table border="2" cellpadding="2" cellspacing="0" width="90%">
+					<tbody><tr>
+						<td align="center">
+							<table border="1" cellpadding="15" cellspacing="0" width="100%">
+								<tbody><tr>
+									<td align="center">
+										<table border="0" cellpadding="10" cellspacing="0" width="100%">
+											<tbody><tr>
+												<td>
+													
+														<table border="1" cellpadding="4" cellspacing="1"><tbody><tr><td valign="top"><b>Any
+physical or corporate entity wishing to order archived products
+(scientific data, software ordocumentation) from the Data Centre must
+previously agree to respect the following licence agreement and
+conditions</b> :<br></td></tr></tbody></table><p align="center">&nbsp;</p> <p align="center"><b>LICENCE FOR DATA CENTRE USERS (V1.1 ,2000/01/04)</b></p><p>&nbsp;</p><p>The
+present agreement is required for harmonious operation of the Data
+Centre, whose purpose is to provide the scientific community with data
+and products from research conducted in space plasma physics. The User
+is expected to respect the philosophy which permitted the foundation of
+the Data Centre and shall, while exercising the rights granted to him,
+agree not to break the deontological rules accepted by the scientific
+community, and not to infringe in any way whatsoever the rights and
+prerogatives of the licensors, CNES or CNRS.</p><h4><b><u>DEFINITIONS</u></b></h4><p>" Archived Products " are understood to be :</p><p>- scientific data related to space plasma physics, whatever the storage medium on which it is held,</p><p>- data handling or processing software, including source code and its associated documentation,</p><p>-
+information products concerning the data such as, but not restricted to:
+description of the instrument used to obtain the measurements, the
+handling and processing of the data to generate the archived product(s),
+the conditions under which the measurements were obtained, the
+scientific objectives of the observations, and the auxiliary
+measurements, whether essential or not.</p><p>" Licensor " is understood to be :</p><p>- any physical or corporate entity having intellectual property rights on the above-mentioned archived Products.</p><p>&nbsp;</p><h4><b><u>ARTICLE 1 RIGHTS GRANTED</u></b></h4><p>The
+Licensor grants any User of the Plasma Physics Data Centrethe
+non-exclusive right to use, modify, transform or reproduce forhis own
+needs the products ordered from the Data Centre, the right to reproduce
+being granted only for processing purposes. Any new product resulting
+from the processing of archived products by the User may be communicated
+freely by the User to third parties solely for direct use for their own
+needs. In this case, the User undertakes to ensure that the third party
+concerned does not communicate in any way, with or without payment,
+these new products without the Licensor s written prior consent.</p><p>Finally,
+any communication to third parties of archived products coming directly
+from the Data Centre, and thus subject to the terms of the present
+licence, is subject to the written prior agreement of the Licensor.</p><p>The
+Licensor grants the User a non-exclusive right to use and copy, for his
+own needs, software products and their associated documentation ordered
+from the Data Centre, the right of copy being granted only for the
+purposes of back-up and archiving . Any communication of these software
+products and associated documentation to third parties, for whatever
+purpose with or without payment, is subject to the Licensor's written
+prior consent.</p><p>The User shall take all relevant steps to maintain
+the Licensors rights and, in particular, shall clearly mark on
+all communications and distributed documents, the name and identification
+of the Licensor, and refer to the Plasma Physics Data Centre as the
+service provider. It is expressly agreed that,except as for the above
+mentioned rights, shall refrain from any commercial use whatsoever,
+direct or indirect, of products obtained from the Data Centre.</p><p>&nbsp;</p><h4><u><b>ARTICLE 2 SCOPE OF THE LICENCE</b></u></h4><p>The rights thus granted apply world-wide and for all the duration of the copyright period.</p><p>&nbsp;</p><h4><u><b>ARTICLE 3 USER RESPONSIBILITIES</b></u></h4><p>The
+User is deemed to have noted all the proprietary and copyright notices
+on the medium in his possession, whether relating to archived products
+and their copies made in compliance with Article 1, or to software
+products and their associated documentation.</p><p>Concerning new
+products which result from processing of archived products by the User,
+these must reproduce the similar copyright information of the original
+archived product, together with that of the User if applicable. They
+shall mention "processing applied to products archived at the French
+Plasma Physics Data Centre" in such a way as to be seen whenever the new
+product is used.</p><p>Furthermore, and insofar as possible, the User
+shall inform the Licensor of the nature and the purpose of the work
+foreseen prior to use of the archived products. New archived products
+and results obtained shall be covered by the terms of Article 1.</p><p>&nbsp;</p><h4><u><b>ARTICLE 4 - LIABILITY</b></u></h4><p>The
+Copyright Holder, together with CNES and CNRS, acting as founders of the
+Data Centre, will under no circumstances be held responsible for any
+direct or indirect damage caused to the User by the use of archived
+products from, or by services provided by, the Data Centre.</p><p>In
+particular, the User understands that the archived products are made
+available to him in their present form. Therefore the User refrains from
+any claim of whatever kind as regards their quality,operation, use or
+suitability with respect to his declared needs.Furthermore, it is
+agreed that neither CNES nor CNRS can guarantee,in any way whatsoever,
+the archived products with respect to the use intended by the User.</p><p>Concerning
+new products which result from processing of archived products by the
+User, and which are likely to be communicated to third parties, the User
+shall guarantee the Licensor, along with CNES and CNRS as founders of
+the Data Centre, against any liability with respect to such third
+parties.</p><p>&nbsp;</p><h4><u><b>ARTICLE 5 - LITIGATION - APPLICABLE LAW</b></u></h4><p>The
+parties shall do everything in their power to settle any conflicts or
+disagreements arising through implementation of this contract. If no
+friendly settlement is possible, the conflict shall be brought before
+the Paris court which has jurisdiction according to French law.</p><p>&nbsp;</p></td>
+											</tr>
+										</tbody></table>
+									</td>
+								</tr>
+							</tbody></table>
+						</td>
+					</tr>
+				</tbody></table>
+			</td>
+		</tr>
+	</tbody></table>
+	</div></div>
+</body></html>
diff --git a/help/multiPlot b/help/multiPlot
new file mode 100644
index 0000000..105ad83
--- /dev/null
+++ b/help/multiPlot
@@ -0,0 +1,29 @@
+<h2><img src="js/resources/images/16x16/plot.png" style="margin: 0px 10px 0px 0px;"/>MultiPlot Mode</h2>
+<p>After you've opened Plot form panel <i>Multi Plot Manager</i> window appeared.
+If you are going to work in the one plot window only 
+minimize MultiPlot window and forget about it.
+</p>
+<br/>
+<img class="centered" src="help/images/plot_15.png"/>  
+<br/>
+<p>
+Sometimes it is necessary to browse and control several plot windows at once. In such a case
+fill the request form (PNG format only!) in several Plot Tabs with different parameters (and possibly 
+different time intervals) 
+and click every Tab <i>Plot</i> button. Several Plot Windows are opened and <i>Multi Plot Manager</i> is being activated.
+Check checkboxes of the desired Plots in the  <i>Multi Plot Manager</i> and use navigaition buttons to move back
+and forth in time for all the  selected plots simultaneously. Note that the own <i>Time Selection</i> area of the checked tabs 
+is desactivated until unchecking.
+</p>
+<br/>
+<img class="centered" src="help/images/plot_16.png"/>  
+<br/>
+<p>
+In case you wish to plot several plots for the same time intervals (or time tables) you can use 
+<i>Multi Plot Manager</i> as Time Selector.
+Check <i>New Interactive Session for Selected Plot Requests</i>, 
+enter desired time selection,  check desired Plots and press <i>Plot</i> button.
+</p>
+<br/>
+<img class="centered" src="help/images/plot_17.png"/>  
+<br/>        
\ No newline at end of file
diff --git a/help/myDataHOWTO b/help/myDataHOWTO
new file mode 100644
index 0000000..ef36e2e
--- /dev/null
+++ b/help/myDataHOWTO
@@ -0,0 +1,6 @@
+ 
+ Define parameter from the file: check variable in case of cdf, vot, netcdf formats
+ or select column[s] in case of ASCII. After <b>Saving</b> the parameter -
+ it appears in the <b>My Data</b> parameters tree of WS Explorer. Don't forget about possibility 
+ to use the <b>Mask</b> while defining a paarmeter. 
+   
\ No newline at end of file
diff --git a/help/myParameterHOWTO b/help/myParameterHOWTO
new file mode 100644
index 0000000..29cc403
--- /dev/null
+++ b/help/myParameterHOWTO
@@ -0,0 +1,5 @@
+ 
+  To construct a new parameter <b><i>drag</i></b> one of the AMDA parameters from the Parameters Tree
+  and <b><i>drop</i></b>it onto the Construct Parameter text area.<br/>
+  <b><i>Attention!</i></b> Use only <b><i>LOW CASE</i></b> characters for parameter name<br/> 
+  Use <b><i>FLOAT</i></b> numbers in math expressions.<br/>
\ No newline at end of file
diff --git a/help/mydataparameter b/help/mydataparameter
new file mode 100644
index 0000000..e4e29a3
--- /dev/null
+++ b/help/mydataparameter
@@ -0,0 +1,3 @@
+<h2>My Data Parameters</h2> 
+<b>TBD</b>
+ 
\ No newline at end of file
diff --git a/help/ncTimeFormat b/help/ncTimeFormat
new file mode 100644
index 0000000..23ccecc
--- /dev/null
+++ b/help/ncTimeFormat
@@ -0,0 +1,13 @@
+
+<h2>netCDF Time Format</h2><br/>
+   
+ AMDA accepts the following time formats in netCDF files: <br/>
+  
+  <ul>  
+    <li> double     (seconds from 01/01/1970)
+    <li> string ISO (YYYY-MM-DDTHH:MM:SS.MSK)
+    <li> string DD Time (YYYYDOYHHMMSSMSK, where DOY = Day-Of-Year -1)
+  </ul> 
+ 
+
+
diff --git a/help/operationsHelp b/help/operationsHelp
new file mode 100644
index 0000000..ce3ec9a
--- /dev/null
+++ b/help/operationsHelp
@@ -0,0 +1,11 @@
+<h2><img src="js/resources/images/16x16/view_tree.png" style="margin: 0px 10px 0px 0px;"/>WorkSpace Explorer : Operations Tree</h2>
+<p>
+<img src="help/images/operationTab.png" align="left" style="margin: 0px 10px 0px 0px;"/> 
+Operations Tree contains your <b>saved requests</b>. 
+Note that you can organize your requests in the folders.
+</p>
+<p> 
+<b><i>RightClick</i></b> the request name to open the context menu.
+With this menu you may rename or delete the request or load it into the corresponding module.  
+<b><i>DoubleClick</i></b> on the request name also loads the request into the module.
+</p>
\ No newline at end of file
diff --git a/help/panelSettings b/help/panelSettings
new file mode 100644
index 0000000..e8f24cf
--- /dev/null
+++ b/help/panelSettings
@@ -0,0 +1,49 @@
+<h2><img src="js/resources/images/16x16/plot.png" style="margin: 0px 10px 0px 0px;"/>Panel Settings</h2>
+<img class="centered" src="help/images/plot_5.png"/>
+<br/>
+<p>
+<b><i>Panel location</i></b> on the page is specified by its order in the form 
+(Panel 1 on the top of the page), its width and height.
+Panel height and width are defined in relative PlotRegion units raging from 0 to 1.
+All panels with the 'TIME' plot type have the same unmodifiable width = 1.
+</p>
+<br/>
+<img class="centered" src="help/images/plot_6.png"/>  
+<br/>
+<p>
+<i>Xmin,Xmax,Ymin,Ymax</i> define  data X-Y range. 
+If these fields have zero values AMDA scales axis itself basing on real data.
+In order to set your own range fill these fields in the form.
+In case of 'TIME' plot type Xmin and Xmax are always automatically set 
+to Start Time and Stop Time of the requested time 
+interval and cannot be modified.    
+</p>
+<p>
+<b><i>Plot Type</i></b>.
+</p>
+<p>There are two plot types  
+<b>Time</b>: <i>Y=function(Time)</i> and <b>Scatter</b>  <i>Y=function(X)</i>.
+To change Plot Type from 'Time' to 'Scatter' left click the 'TIME' field:
+<br/> 
+<br/>
+<img class="centered" src="help/images/plot_7.png"/>  
+<br/> After selection of 'Scatter' plot type 
+ drag and drop a parameter you wish to use as argument onto 
+<span style="font-weight:bold;color:red">Select parameter...</span>.
+Note that Scatter plot type could be applied to the scalars only.  
+</p>
+<br/>
+<img class="centered" src="help/images/plot_8.png"/>  
+<br/>
+<p>
+<b><i>Panel Additional Arguments</i></b>.
+</p>
+<p>
+ In the current release only <i>Y title</i> for both plot types and <i>X title</i>
+ for Scatter can be modified. Don't forget to press <b>Apply</b> button to register 
+ your modifs.
+</p>
+<br/>
+<img class="centered" src="help/images/plot_9.png"/>  
+<br/> 
+<br/>        
\ No newline at end of file
diff --git a/help/paramSettings b/help/paramSettings
new file mode 100644
index 0000000..bcd8304
--- /dev/null
+++ b/help/paramSettings
@@ -0,0 +1,35 @@
+<h2><img src="js/resources/images/16x16/plot.png" style="margin: 0px 10px 0px 0px;"/>Parameter Arguments</h2>
+<p>
+Additional plot tuning is possible via <i>Parameter Arguments</i>. 
+</p><br/>
+<img class="centered" src="help/images/plot_10.png"/> 
+<br/>
+<br/>
+<p>
+Parameter arguments depend on the type of the parameter. There are generic plot setting arguments
+such as color, symbol, axis type as well as parameter dependent
+ones - reference frame, energy channel etc.
+</p>
+<p>
+<b><i>Plotting Orbit</i></b>
+</p>
+<p>
+ Orbital data (<b>r&#8407</b>) can be represented differently by choosing different values 
+ of the <i>OrbitPresentation</i> argument.
+  <ul>
+  <li><i>LINE</i> - Standard time-profile of the three components at the same panel
+  <li><i>TICKS</i> - Tickmarks under time axe
+  <li><i>CYL</i> - Cylindrical presentation <b>R(X)</b> where R = sqrt(Y<sup>2</sup>+Z<sup>2</sup>) 
+  <li><i>GLOB</i> - 'Global' position on the ecliptic plane (for the moment for STEREO only)
+  </ul>
+</p>
+<p>
+Note that in the <i>CYL</i> case one has to play with Height/Width 
+and Xmin/Xmax, Ymin/Ymax settings to get correct aspect ratio. Figure 
+shows cylindrical representation of  Mars-Express orbit with the settings used.
+Blue lines indicate bow-shock and pile-up boundaries.
+</p>
+<br/>
+<img class="centered" src="help/images/plot_11.png"/> 
+<br/>
+<br/>        
\ No newline at end of file
diff --git a/help/parameterHelp b/help/parameterHelp
new file mode 100644
index 0000000..ebba808
--- /dev/null
+++ b/help/parameterHelp
@@ -0,0 +1,36 @@
+<h2><img src="js/resources/images/16x16/edit.png" style="margin: 0px 10px 0px 0px;"/> Constructing a New Parameter</h2>
+<p>
+To construct a new parameter from the existing ones use <b><i>Create/Modify Parameters</i></b> module.  
+<b><i>Drag</i></b> the parameter[s] from the Parameter Tree and <b><i>drop</i></b>  
+it onto the <b><i>Construct Parameter</i></b> area.
+</p><br/>
+<img class="centered" src="help/images/derived1.png">
+<br/>
+<p>
+In the example above the parameters  <b><i>bx_gse</i></b> and <b><i>by_gse</i></b> are displayed in the  
+text area as the unique AMDA parameter identifiers <b><i>imf(0)</i></b> and <b><i>imf(1)</i></b>.
+</p>
+<p>While constructing you may use different components from the <b><i>Tools For Parameter Construction</i></b> -
+for example  - <b><i>Constants</i></b>:<br/><br/> 
+<img class="centered" src="help/images/derived2.png"><br/> 
+<p>
+To combine  different AMDA parameters which possibly have different sampling times
+you have to specify new parameter sampling  (or <b><i>Time Step</i></b>).
+Depending on original samplings, AMDA parameters used in the expression will be averaged or interpolated to create 
+new parameter with the requested time resolution.
+AMDA parameter's sampling times as well as valid globalStart/globalStop intervals
+are displayed in the tooltip window shown when the mouse is over the parameter name 
+in Parameters tree.
+</p>
+<p>After clicking the <b>Save</b> button new parameter is added to the <b><i>Derived 
+Parameters</i></b> tree.
+From now you can treat it (plot, download, data mining) as if it were real one. 
+</p>
+<p>
+<img align="left" src ="help/images/derived3.png" style="margin: 0px 15px 0px 0px;"/>
+You may group your parameters in the folders:</br>
+use context menu which is opened on right mouse click 
+on any folder node of the Derived Parameters  tree.<br/><br/>
+To edit, rename, delete derived parameter use context menu opened on right mouse click
+on the parameter node.
+</p>
diff --git a/help/parameters/A2000_help b/help/parameters/A2000_help
new file mode 100644
index 0000000..c614608
--- /dev/null
+++ b/help/parameters/A2000_help
@@ -0,0 +1,22 @@
+<br/>
+<h2> Earth paraboloid model (A2000) </h2>
+<UL>
+  <li> The model from SINP MSU computes analytically the Earth magnetospheric magnetic field components from the following inputs :
+    <UL>
+      <li> <b>solar wind density and velocity</b>
+      <li> <b>IMF vector</b>
+      <li> <b>Dst and AL indices</b>
+      <li> <b>time</b>
+    </UL>
+    <li> When a parameter 'A2000 model field along a spacecraft orbit' is calculated, 
+    the input data above are fetched in the AMDA database 
+    and averaged on 60 min (fixed interval) before computation. 
+    The original ephemeris time resolution is finally used for the resolution of the computed magnetic field.
+    <li> Model magnetic field can be calculated along a number of spacecraft orbits :
+        select the desired one from the arguments list. Note that you may also select different source for input conditions:
+        OMNI or AMDA data base. In the latter case AMDA calculates the SW propagation to the target.    
+    <li> A detailed description along with complete references is available <a href="http://213.131.1.8/smdc/public/article/Earth_PM_description.pdf" target="_blank">here</a>.    
+    <li> The code version in AMDA is A2012-v3 which is similar to A2000 with the correction of some bugs by V. Kalegaev.
+    <li> An alternative implementation of the model can be found on <a href="http://smdc.sinp.msu.ru/index.py?nav=paraboloid/index" target="_blank">the SINP site</a>.
+    <li> The inclusion of the SINP model into AMDA has been made possible by <a href="http://impex-fp7.oeaw.ac.at/" target=_BLANK>the FP7 project IMPEx </a>.
+  </UL>
diff --git a/help/parameters/AE b/help/parameters/AE
new file mode 100644
index 0000000..b78c7a1
--- /dev/null
+++ b/help/parameters/AE
@@ -0,0 +1,21 @@
+
+<h2>Ground based indices at AMDA : Auroral Electrojet (AE/AU/AL) </h2>
+<UL>
+
+  <li> AE/AL/AU indices are taken from the                    
+  <a href="http://wdc.kugi.kyoto-u.ac.jp" TARGET=_BLANK> WDC (World Data Center) at Kyoto</a>.                  
+
+   
+    <UL> 
+      <li> <b>FINAL</b>
+       <UL>
+            <li> 1975 (AE & AL only) 
+            <li> 1978 - Jun., 1988
+            <li> Feb., March, 1989
+            <li> 1990 - 1995
+       </UL>
+       <li> <b>PROVISIONAL</b>: 1996 - Aug., 2013 
+       <li> <b>Quick-Look</b> :  Sept., 2013 - Jan., 2014
+    </UL>
+ 
+     
diff --git a/help/parameters/BaiTemp b/help/parameters/BaiTemp
new file mode 100644
index 0000000..d1602bc
--- /dev/null
+++ b/help/parameters/BaiTemp
@@ -0,0 +1,25 @@
+
+<h2> ULYSSES SWOOPS Proton Temperature </h2>
+<br/>
+<br/> 
+    The proton temperature has been estimated in two different ways, one of which
+will sometimes lead to an overestimate of the temperature and one of which will
+sometimes lead to an underestimate. T-large is the integral of the distribution
+in three-dimensional velocity space over all energy channels and angle bins
+that are statistically above noise. The criterion for noise determination is
+based upon the estimation of the total contribution from a shell that is
+spherically symmetric in velocity space. T-large has the drawback that at
+times when the solar wind is cold the angular responses of the instrument
+channels are as wide or wider than the beam, and the temperature is
+overestimated. T-small is estimated by summing over angle the observations at a
+fixed energy. The moments of the resulting one dimensional plasma spectrum are
+then summed and the resulting RR (radial) component of the temperature tensor
+is used as the estimate of proton temperature. Additionally, to avoid
+contamination from alpha particles, no channels further in velocity space from
+the proton peak than the minimum in flux between the proton and alpha particles
+peaks are used in the T-small estimate. T-large and T-small will generally
+bracket the true temperature. However, for very cold plasma, T-small may not be
+a true minimum.
+
+<br/><br/> 
+
diff --git a/help/parameters/Cain_help b/help/parameters/Cain_help
new file mode 100644
index 0000000..afc299c
--- /dev/null
+++ b/help/parameters/Cain_help
@@ -0,0 +1,23 @@
+<br/>
+<h2> Cain Mars crustal model magnetic field</h2>
+<UL> 
+<li> <b>Brief description of Cain model</b>:
+A potential function using spherical harmonics up to degree and order 90 
+was derived from a selection of Mars Global Surveyor (MGS) vector data. 
+These included all three components of those taken below 200 km 
+altitude during the two aerobraking phases (AB1 and AB2), the Science 
+Phase Orbits (SPO), and the higher altitude (367435 km) data
+taken on the nightside during the Mapping Phase Orbits (MPO). 
+The merger of these sets of data provided total global coverage. 
+The technique used was a least squares minimization developed for 
+Earth field analysis whereby the relative weighting of each data 
+source was determined by the width of a Gaussian fit to the residual 
+distribution about the potential function. Also, data selection by area 
+and area weight functions were used to improve normalization. 
+<b>Comparisons with 
+other published maps and models for Mars show general agreement with 
+the field representations at MPO altitudes, but disagreements up to several 
+hundred nT in components calculated for areodetic altitudes below 200 km</b>  
+<li> A detailed description along with complete references is available 
+<a href="http://geomag.gfdi.fsu.edu/mars/papers/n_90/index.htm" target=_BLANK>here</a>.    
+</UL>
diff --git a/help/parameters/CassiniCAPS b/help/parameters/CassiniCAPS
new file mode 100644
index 0000000..406a183
--- /dev/null
+++ b/help/parameters/CassiniCAPS
@@ -0,0 +1,117 @@
+
+ <h2> Cassini Plasma Spectrometer data at AMDA </h2>
+
+ 
+<UL>
+
+  <li> Cassini CAPS data are taken from the PDS (Planetary Data System),
+    <a href="http://ppi.pds.nasa.gov/index.jsp" TARGET=_BLANK>site</a>.
+
+  <li> This contains uncalibrated data from the ELS sensor (els_per_sec), the IMS sensor (sng_per_sec) and the actuator.
+
+  <li> Parameter plotting arguments:
+    <UL>
+      <li><b>backgrdChan</b> : substraction of background noise defined by a channel index
+      <li><b>backgrdVal</b> : substraction of background noise defined by a constant value
+      <li><b>minCount</b> : count data must be greater or egal than minCount to be plot
+      <li><b>minCount</b> : count data must be lower or egal than maxCount to be plot
+      <li><b>channel</b> : plot a specific channel index
+    </UL>
+
+  <li>
+    <TABLE BORDER CELLPADDING=5>
+      <TR>
+        <TH align="center"> Sources </TH>
+        <TH align="center"> Datasets </TH>
+        <TH align="center"> Status </TH>
+        <TH align="center"> Last Update </TH>
+      </TR>
+      <TR>
+        <TD> <a href="http://ppi.pds.nasa.gov/search/view/?f=yes&id=pds://PPI/COCAPS_1SAT" TARGET=_BLANK>COCAPS_1SAT</a> </TD>
+        <TD> els_per_sec, sng_per_sec, actuator </TD>
+        <TD> Uncalibrated  </TD>
+        <TD> 2012-07-18 </TD>
+      </TR>
+    </TABLE>
+
+  <li>
+
+  <TABLE BORDER CELLPADDING=5>
+    <CAPTION ALIGN="bottom"><b>Energy bands</b></CAPTION>
+    <TR><TD></TD><TD COLSPAN=2 align="center">Ions energy bands</TD><TD COLSPAN=2 align="center">Electrons energy bands</TD></TR>
+    <TR>
+      <TH align="center"> Channel </TH>
+      <TH align="center"> Min (eV) </TH>
+      <TH align="center"> Max (eV) </TH>
+      <TH align="center"> Min (eV) </TH>
+      <TH align="center"> Max (eV) </TH>
+    </TR>
+    <TR><TD>1</TD><TD>42654.38</TD><TD>46343.75</TD>  <TD>24133.5</TD><TD>26040</TD></TR>
+    <TR><TD>2</TD><TD>35868.12</TD><TD>42654.38</TD>  <TD>20609</TD><TD>24133.5</TD></TR>
+    <TR><TD>3</TD><TD>30164.25</TD><TD>35868.12</TD>  <TD>17623.5</TD><TD>20609</TD></TR>
+    <TR><TD>4</TD><TD>25361.75</TD><TD>30164.25</TD>  <TD>15066</TD><TD>17623.5</TD></TR>
+    <TR><TD>5</TD><TD>21327.19</TD><TD>25361.75</TD>  <TD>12871.5</TD><TD>15066</TD></TR>
+    <TR><TD>6</TD><TD>17937.69</TD><TD>21327.19</TD>  <TD>11005</TD><TD>12871.5</TD></TR>
+    <TR><TD>7</TD><TD>15080.12</TD><TD>17937.69</TD>  <TD>9408.5</TD><TD>11005</TD></TR>
+    <TR><TD>8</TD><TD>12680.88</TD><TD>15080.12</TD>  <TD>8044.5</TD><TD>9408.5</TD></TR>
+    <TR><TD>9</TD><TD>10666.41</TD><TD>12680.88</TD>  <TD>6875.5</TD><TD>8044.5</TD></TR>
+    <TR><TD>10</TD><TD>8968.844</TD><TD>10666.41</TD> <TD>5876</TD><TD>6875.5</TD></TR>
+    <TR><TD>11</TD><TD>7542.875</TD><TD>8968.844</TD> <TD>5023</TD><TD>5876</TD></TR>
+    <TR><TD>12</TD><TD>6343.25</TD><TD>7542.875</TD>  <TD>4293</TD><TD>5023</TD></TR>
+    <TR><TD>13</TD><TD>5330.375</TD><TD>6343.25</TD>  <TD>3669.5</TD><TD>4293</TD></TR>
+    <TR><TD>14</TD><TD>4481.594</TD><TD>5330.375</TD> <TD>3136.5</TD><TD>3669.5</TD></TR>
+    <TR><TD>15</TD><TD>3768.625</TD><TD>4481.594</TD> <TD>2680.5</TD><TD>3136.5</TD></TR>
+    <TR><TD>16</TD><TD>3168.812</TD><TD>3768.625</TD> <TD>2291.5</TD><TD>2680.5</TD></TR>
+    <TR><TD>17</TD><TD>2665.188</TD><TD>3168.812</TD> <TD>1958.5</TD><TD>2291.5</TD></TR>
+    <TR><TD>18</TD><TD>2240.781</TD><TD>2665.188</TD> <TD>1674.5</TD><TD>1958.5</TD></TR>
+    <TR><TD>19</TD><TD>1884.281</TD><TD>2240.781</TD> <TD>1431.5</TD><TD>1674.5</TD></TR>
+    <TR><TD>20</TD><TD>1584.406</TD><TD>1884.281</TD> <TD>1223.5</TD><TD>1431.5</TD></TR>
+    <TR><TD>21</TD><TD>1333.219</TD><TD>1584.406</TD> <TD>1046.05</TD><TD>1223.5</TD></TR>
+    <TR><TD>22</TD><TD>1120.844</TD><TD>1333.219</TD> <TD>894.05</TD><TD>1046.05</TD></TR>
+    <TR><TD>23</TD><TD>942.5625</TD><TD>1120.844</TD> <TD>764.15</TD><TD>894.05</TD></TR>
+    <TR><TD>24</TD><TD>792.6875</TD><TD>942.5625</TD> <TD>653.05</TD><TD>764.15</TD></TR>
+    <TR><TD>25</TD><TD>666.4375</TD><TD>792.6875</TD> <TD>558.3</TD><TD>653.05</TD></TR>
+    <TR><TD>26</TD><TD>560.4375</TD><TD>666.4375</TD> <TD>477.1</TD><TD>558.3</TD></TR>
+    <TR><TD>27</TD><TD>471.375</TD><TD>560.4375</TD>  <TD>407.65</TD><TD>477.1</TD></TR>
+    <TR><TD>28</TD><TD>396.2812</TD><TD>471.375</TD>  <TD>348.7</TD><TD>407.65</TD></TR>
+    <TR><TD>29</TD><TD>333.2188</TD><TD>396.2812</TD> <TD>298.15</TD><TD>348.7</TD></TR>
+    <TR><TD>30</TD><TD>280.2812</TD><TD>333.2188</TD> <TD>254.9</TD><TD>298.15</TD></TR>
+    <TR><TD>31</TD><TD>235.6875</TD><TD>280.2812</TD> <TD>217.95</TD><TD>254.9</TD></TR>
+    <TR><TD>32</TD><TD>198.2188</TD><TD>235.6875</TD> <TD>186.3</TD><TD>217.95</TD></TR>
+    <TR><TD>33</TD><TD>166.6875</TD><TD>198.2188</TD> <TD>159.3</TD><TD>186.3</TD></TR>
+    <TR><TD>34</TD><TD>140.0625</TD><TD>166.6875</TD> <TD>136</TD><TD>159.3</TD></TR>
+    <TR><TD>35</TD><TD>117.75</TD><TD>140.0625</TD>   <TD>116.25</TD><TD>136</TD></TR>
+    <TR><TD>36</TD><TD>99</TD><TD>117.75</TD>         <TD>99.58</TD><TD>116.25</TD></TR>
+    <TR><TD>37</TD><TD>83.25</TD><TD>99</TD>          <TD>84.97</TD><TD>99.58</TD></TR>
+    <TR><TD>38</TD><TD>70.03125</TD><TD>83.25</TD>     <TD>72.665</TD><TD>84.97</TD></TR>
+    <TR><TD>39</TD><TD>58.875</TD><TD>70.03125</TD>   <TD>62.3</TD><TD>72.665</TD></TR>
+    <TR><TD>40</TD><TD>49.5</TD><TD>58.875</TD>       <TD>53.225</TD><TD>62.3</TD></TR>
+    <TR><TD>41</TD><TD>41.625</TD><TD>49.5</TD>       <TD>45.405</TD><TD>53.225</TD></TR>
+    <TR><TD>42</TD><TD>35.03125</TD><TD>41.625</TD>   <TD>38.825</TD><TD>45.405</TD></TR>
+    <TR><TD>43</TD><TD>29.4375</TD><TD>35.03125</TD>  <TD>33.165</TD><TD>38.825</TD></TR>
+    <TR><TD>44</TD><TD>24.75</TD><TD>29.4375</TD>     <TD>28.415</TD><TD>33.165</TD></TR>
+    <TR><TD>45</TD><TD>20.8125</TD><TD>24.75</TD>     <TD>24.275</TD><TD>28.415</TD></TR>
+    <TR><TD>46</TD><TD>17.5</TD><TD>20.8125</TD>      <TD>20.735</TD><TD>24.275</TD></TR>
+    <TR><TD>47</TD><TD>14.71875</TD><TD>17.5</TD>     <TD>17.795</TD><TD>20.735</TD></TR>
+    <TR><TD>48</TD><TD>12.375</TD><TD>14.71875</TD>   <TD>15.155</TD><TD>17.795</TD></TR>
+    <TR><TD>49</TD><TD>10.40625</TD><TD>12.375</TD>   <TD>12.81</TD><TD>15.155</TD></TR>
+    <TR><TD>50</TD><TD>8.75</TD><TD>10.40625</TD>     <TD>10.765</TD><TD>12.81</TD></TR>
+    <TR><TD>51</TD><TD>7.375</TD><TD>8.75</TD>        <TD>9.305</TD><TD>10.765</TD></TR>
+    <TR><TD>52</TD><TD>6.21875</TD><TD>7.375</TD>     <TD>8.14</TD><TD>9.305</TD></TR>
+    <TR><TD>53</TD><TD>5.21875</TD><TD>6.21875</TD>   <TD>6.975</TD><TD>8.14</TD></TR>
+    <TR><TD>54</TD><TD>4.375</TD><TD>5.21875</TD>     <TD>5.81</TD><TD>6.975</TD></TR>
+    <TR><TD>55</TD><TD>3.6875</TD><TD>4.375</TD>      <TD>4.935</TD><TD>5.81</TD></TR>
+    <TR><TD>56</TD><TD>3.09375</TD><TD>3.6875</TD>    <TD>4.35</TD><TD>4.935</TD></TR>
+    <TR><TD>57</TD><TD>2.59375</TD><TD>3.09375</TD>   <TD>3.77</TD><TD>4.35</TD></TR>
+    <TR><TD>58</TD><TD>2.1875</TD><TD>2.59375</TD>    <TD>3.19</TD><TD>3.77</TD></TR>
+    <TR><TD>59</TD><TD>1.84375</TD><TD>2.1875</TD>    <TD>2.61</TD><TD>3.19</TD></TR>
+    <TR><TD>60</TD><TD>1.5625</TD><TD>1.84375</TD>    <TD>2.03</TD><TD>2.61</TD></TR>
+    <TR><TD>61</TD><TD>1.3125</TD><TD>1.5625</TD>     <TD>1.45</TD><TD>2.03</TD></TR>
+    <TR><TD>62</TD><TD>1.09375</TD><TD>1.3125</TD>    <TD>0.87</TD><TD>1.45</TD></TR>
+    <TR><TD>63</TD><TD>1</TD><TD>1.09375</TD>         <TD>0.58</TD><TD>0.87</TD></TR>
+  </TABLE>
+
+  <li> <a href="policy.html" TARGET=_BLANK>Acknowledgments</a>
+
+</UL>
+
diff --git a/help/parameters/CassiniEphem b/help/parameters/CassiniEphem
new file mode 100755
index 0000000..80304a6
--- /dev/null
+++ b/help/parameters/CassiniEphem
@@ -0,0 +1,30 @@
+<h2> Cassini and Saturn's moons ephemeris at AMDA </h2>
+<br/>
+<br/> <UL>
+  <li> Cassini/Titan/Enceladus Ephemeris are calculated by <b>Joseph Groene</b>
+  of University of Iowa based on CASSINI SPICE kernels. 
+  All data are taken from <a href="http://www-pw.physics.uiowa.edu/~jbg/cas.html" TARGET=_BLANK>Joseph Groene site</a>
+ 
+   <li> Ephemeris are presented in geographic Saturn barycentric coordinates
+        and include 
+        <UL>
+           <li> <b>Western Longitude_IAU,</b><br/>
+                based on the Voyager determination of the period of Saturn kilometric radiation
+               (SKR).<br/>
+              Seidelmann et al.:2002, "Report on the IAU/IAG Working Group
+              on Cartographic Coordinates and Rotational Elements of the
+              Planets and Satellites: 2000", CELESTIAL MECHANICS AND
+              DYNAMICAL ASTRONOMY 82: 83-110, 2002. 
+           <li> <b>Western Longitude_SLS3,</b><br/>
+                based on Cassini SKR measurements.<br/> 
+                The SLS3 longitude system is only valid for time period:
+                <b>01.01.2004 - 10.08.2007.</b><br/>
+                <a href="http://www.agu.org/pubs/crossref/2008/2007JA012861.shtml" TARGET=_BLANK>Kurth et al. (2008)</a>, An update to a Saturnian longitude system based on 
+               kilometric radio emissions, Journal of Geophysical Research, Volume 113, 
+               Issue A5, CiteID A05222  
+           <li> <b>Latitude</b>
+           <li><b>Local Time</b>
+           <li> <b>L-shell</b> (dipole) value
+           <li> <b>Radius</b> 
+        </UL>    
+ </UL>
diff --git a/help/parameters/CassiniLEMMS b/help/parameters/CassiniLEMMS
new file mode 100644
index 0000000..29534b9
--- /dev/null
+++ b/help/parameters/CassiniLEMMS
@@ -0,0 +1,603 @@
+
+ <h2> Cassini Magnetosperic IMaging Investigation (MIMI) - Low Energy Magnetospheric Measurements System (LEMMS) data at AMDA </h2>
+
+ 
+<UL>
+
+  <li> Cassini MIMI-LEMMS data are taken from the PDS (Planetary Data System),
+    <a href="http://ppi.pds.nasa.gov/index.jsp">site</a>.
+
+  <li> This measures ions and electrons in the energy range 0.03 to 18 MeV for ions and 0.015 to 0.884 MeV for electrons. The available datasets are :
+    <UL>
+      <li> <b>acc_1hour</b> : One hour average particle intensity data for accumulator rate ion and electron channels
+      <li> <b>acc_1min</b> : One minute average particle intensity data for accumulator rate ion and electron channels
+      <li> <b>pha_1hour</b> : One hour average particle intensity data for PHA (Pulse Height Analysis) ion and electron channels
+      <li> <b>pha_1min</b> : One minute average particle intensity data for PHA (Pulse Height Analysis) ion and electron channels
+    </UL>
+
+  <li> <b>These data are background subtracted, and thus occasionally there will be negative values when the count rate falls below the background level.</b>
+
+  <li> Parameter plotting arguments for PHA datasets :
+    <UL>
+      <li><b>backgrdChan</b> : substraction of background noise defined by a channel index
+      <li><b>backgrdVal</b> : substraction of background noise defined by a constant value
+      <li><b>minCount</b> : count data must be greater or egal than minCount to be plot
+      <li><b>minCount</b> : count data must be lower or egal than maxCount to be plot
+      <li><b>channel</b> : plot a specific channel index
+    </UL>
+
+  <li>
+    <TABLE BORDER CELLPADDING=5>
+      <TR>
+        <TH align="center"> Sources </TH>
+        <TH align="center"> Datasets </TH>
+        <TH align="center"> Status </TH>
+        <TH align="center"> Last Update </TH>
+      </TR>
+      <TR>
+        <TD> <a href="http://ppi.pds.nasa.gov/search/view/?f=yes&id=pds://PPI/COMIMI_L001">COMIMI_L001</a> </TD>
+        <TD> acc_1hour, acc_1min, pha_1hour, pha_1min </TD>
+        <TD> Calibrated  </TD>
+        <TD> 2013-03-21 </TD>
+      </TR>
+    </TABLE>
+
+  <li>
+  <TABLE BORDER CELLPADDING=4>
+    <CAPTION ALIGN="bottom"><b>Energy bands for accumulator rate datasets</b></CAPTION>
+    <TR><TD></TD><TD></TD><TD COLSPAN=2 align="center">Energy bands</TD></TR>
+    <TR>
+      <TH align="center"> Channel </TH>
+      <TH align="center"> Species </TH>
+      <TH align="center"> Min (keV) </TH>
+      <TH align="center"> Max (keV) </TH>
+    </TR>
+    <TR><TD>A0</TD><TD>p</TD><TD>27</TD><TD>35</TD></TR>
+    <TR><TD>A1</TD><TD>p</TD><TD>35</TD><TD>56</TD></TR>
+    <TR><TD>A2</TD><TD>p</TD><TD>56</TD><TD>106</TD></TR>
+    <TR><TD>A3</TD><TD>p</TD><TD>106</TD><TD>255</TD></TR>
+    <TR><TD>A4</TD><TD>p</TD><TD>255</TD><TD>506</TD></TR>
+    <TR><TD>A5</TD><TD>p</TD><TD>506</TD><TD>805</TD></TR>
+    <TR><TD>A6</TD><TD>p</TD><TD>805</TD><TD>1600</TD></TR>
+    <TR><TD>A7</TD><TD>p</TD><TD>1615</TD><TD>4000</TD></TR>
+    <TR><TD>A8</TD><TD>He</TD><TD>1270</TD><TD>3930</TD></TR>
+    <TR></TR>
+    <TR><TD>C0</TD><TD>e</TD><TD>18</TD><TD>40</TD></TR>
+    <TR><TD>C1</TD><TD>e</TD><TD>27</TD><TD>48</TD></TR>
+    <TR><TD>C2</TD><TD>e</TD><TD>41</TD><TD>60</TD></TR>
+    <TR><TD>C3</TD><TD>e</TD><TD>56</TD><TD>100</TD></TR>
+    <TR><TD>C4</TD><TD>e</TD><TD>92</TD><TD>183</TD></TR>
+    <TR><TD>C5</TD><TD>e</TD><TD>175</TD><TD>300</TD></TR>
+    <TR><TD>C6</TD><TD>e</TD><TD>265</TD><TD>550</TD></TR>
+    <TR><TD>C7</TD><TD>e</TD><TD>510</TD><TD>832</TD></TR>
+    <TR></TR>
+    <TR><TD>E0</TD><TD>e</TD><TD>110</TD><TD>365</TD></TR>
+    <TR><TD>E1</TD><TD>e</TD><TD>220</TD><TD>485</TD></TR>
+    <TR><TD>E2</TD><TD>e</TD><TD>340</TD><TD>1350</TD></TR>
+    <TR><TD>E3</TD><TD>e</TD><TD>600</TD><TD>4950</TD></TR>
+    <TR><TD>E4</TD><TD>p</TD><TD>790</TD><TD>4750</TD></TR>
+    <TR></TR>
+    <TR><TD>P1</TD><TD>p</TD><TD>1424</TD><TD>2278</TD></TR>
+    <TR><TD>P2</TD><TD>p</TD><TD>2280</TD><TD>4492</TD></TR>
+    <TR><TD>P3</TD><TD>p</TD><TD>4491</TD><TD>5744</TD></TR>
+    <TR><TD>P4</TD><TD>p</TD><TD>13200</TD><TD>25400</TD></TR>
+    <TR><TD>P5</TD><TD>p</TD><TD>8311</TD><TD>11449</TD></TR>
+    <TR><TD>P6</TD><TD>p</TD><TD>11474</TD><TD>13433</TD></TR>
+    <TR><TD>P7</TD><TD>p</TD><TD>12101</TD><TD>58902</TD></TR>
+    <TR><TD>P8</TD><TD>p</TD><TD>25185</TD><TD>59000</TD></TR>
+    <TR><TD>P9</TD><TD>p</TD><TD>58650</TD><TD>158700</TD></TR>
+  </TABLE>
+
+  <li>
+
+  <TABLE BORDER CELLPADDING=7>
+    <CAPTION ALIGN="bottom"><b>Energy bands for PHA datasets</b></CAPTION>
+    <TR><TD></TD><TD COLSPAN=2 align="center">A channels</TD><TD COLSPAN=2 align="center">E channels</TD><TD COLSPAN=2 align="center">F1 channels</TD></TR>
+    <TR>
+      <TH align="center"> Channel Index </TH>
+      <TH align="center"> Min (keV) </TH>
+      <TH align="center"> Max (keV) </TH>
+      <TH align="center"> Min (keV) </TH>
+      <TH align="center"> Max (keV) </TH>
+      <TH align="center"> Min (keV) </TH>
+      <TH align="center"> Max (keV) </TH>
+    </TR>
+<TR>
+<TD>0</TD>
+<TD>2.49E+01</TD>
+<TD>2.65E+01</TD>
+<TD>1.98E+01</TD>
+<TD>2.07E+01</TD>
+<TD>2.00E+02</TD>
+<TD>2.13E+02</TD>
+</TR>
+<TR>
+<TD>1</TD>
+<TD>2.65E+01</TD>
+<TD>2.82E+01</TD>
+<TD>2.07E+01</TD>
+<TD>2.16E+01</TD>
+<TD>2.13E+02</TD>
+<TD>2.26E+02</TD>
+</TR>
+<TR>
+<TD>2</TD>
+<TD>2.82E+01</TD>
+<TD>2.98E+01</TD>
+<TD>2.16E+01</TD>
+<TD>2.25E+01</TD>
+<TD>2.26E+02</TD>
+<TD>2.40E+02</TD>
+</TR>
+<TR>
+<TD>3</TD>
+<TD>2.98E+01</TD>
+<TD>3.14E+01</TD>
+<TD>2.25E+01</TD>
+<TD>2.42E+01</TD>
+<TD>2.40E+02</TD>
+<TD>2.53E+02</TD>
+</TR>
+<TR>
+<TD>4</TD>
+<TD>3.14E+01</TD>
+<TD>3.30E+01</TD>
+<TD>2.42E+01</TD>
+<TD>2.60E+01</TD>
+<TD>2.53E+02</TD>
+<TD>2.71E+02</TD>
+</TR>
+<TR>
+<TD>5</TD>
+<TD>3.30E+01</TD>
+<TD>3.46E+01</TD>
+<TD>2.60E+01</TD>
+<TD>2.77E+01</TD>
+<TD>2.71E+02</TD>
+<TD>2.88E+02</TD>
+</TR>
+<TR>
+<TD>6</TD>
+<TD>3.46E+01</TD>
+<TD>3.62E+01</TD>
+<TD>2.77E+01</TD>
+<TD>2.95E+01</TD>
+<TD>2.88E+02</TD>
+<TD>3.06E+02</TD>
+</TR>
+<TR>
+<TD>7</TD>
+<TD>3.62E+01</TD>
+<TD>3.79E+01</TD>
+<TD>2.95E+01</TD>
+<TD>3.12E+01</TD>
+<TD>3.06E+02</TD>
+<TD>3.28E+02</TD>
+</TR>
+<TR>
+<TD>8</TD>
+<TD>3.79E+01</TD>
+<TD>3.95E+01</TD>
+<TD>3.12E+01</TD>
+<TD>3.30E+01</TD>
+<TD>3.28E+02</TD>
+<TD>3.51E+02</TD>
+</TR>
+<TR>
+<TD>9</TD>
+<TD>3.95E+01</TD>
+<TD>4.11E+01</TD>
+<TD>3.30E+01</TD>
+<TD>3.56E+01</TD>
+<TD>3.51E+02</TD>
+<TD>3.73E+02</TD>
+</TR>
+<TR>
+<TD>10</TD>
+<TD>4.11E+01</TD>
+<TD>4.43E+01</TD>
+<TD>3.56E+01</TD>
+<TD>3.82E+01</TD>
+<TD>3.73E+02</TD>
+<TD>3.95E+02</TD>
+</TR>
+<TR>
+<TD>11</TD>
+<TD>4.43E+01</TD>
+<TD>4.76E+01</TD>
+<TD>3.82E+01</TD>
+<TD>4.08E+01</TD>
+<TD>3.95E+02</TD>
+<TD>4.22E+02</TD>
+</TR>
+<TR>
+<TD>12</TD>
+<TD>4.76E+01</TD>
+<TD>5.08E+01</TD>
+<TD>4.08E+01</TD>
+<TD>4.34E+01</TD>
+<TD>4.22E+02</TD>
+<TD>4.53E+02</TD>
+</TR>
+<TR>
+<TD>13</TD>
+<TD>5.08E+01</TD>
+<TD>5.40E+01</TD>
+<TD>4.34E+01</TD>
+<TD>4.61E+01</TD>
+<TD>4.53E+02</TD>
+<TD>4.84E+02</TD>
+</TR>
+<TR>
+<TD>14</TD>
+<TD>5.40E+01</TD>
+<TD>5.72E+01</TD>
+<TD>4.61E+01</TD>
+<TD>4.87E+01</TD>
+<TD>4.84E+02</TD>
+<TD>5.15E+02</TD>
+</TR>
+<TR>
+<TD>15</TD>
+<TD>5.72E+01</TD>
+<TD>6.05E+01</TD>
+<TD>4.87E+01</TD>
+<TD>5.22E+01</TD>
+<TD>5.15E+02</TD>
+<TD>5.50E+02</TD>
+</TR>
+<TR>
+<TD>16</TD>
+<TD>6.05E+01</TD>
+<TD>6.53E+01</TD>
+<TD>5.22E+01</TD>
+<TD>5.57E+01</TD>
+<TD>5.50E+02</TD>
+<TD>5.86E+02</TD>
+</TR>
+<TR>
+<TD>17</TD>
+<TD>6.53E+01</TD>
+<TD>7.02E+01</TD>
+<TD>5.57E+01</TD>
+<TD>5.92E+01</TD>
+<TD>5.86E+02</TD>
+<TD>6.26E+02</TD>
+</TR>
+<TR>
+<TD>18</TD>
+<TD>7.02E+01</TD>
+<TD>7.50E+01</TD>
+<TD>5.92E+01</TD>
+<TD>6.35E+01</TD>
+<TD>6.26E+02</TD>
+<TD>6.79E+02</TD>
+</TR>
+<TR>
+<TD>19</TD>
+<TD>7.50E+01</TD>
+<TD>7.99E+01</TD>
+<TD>6.35E+01</TD>
+<TD>6.79E+01</TD>
+<TD>6.79E+02</TD>
+<TD>7.15E+02</TD>
+</TR>
+<TR>
+<TD>20</TD>
+<TD>7.99E+01</TD>
+<TD>8.47E+01</TD>
+<TD>6.79E+01</TD>
+<TD>7.23E+01</TD>
+<TD>7.15E+02</TD>
+<TD>7.68E+02</TD>
+</TR>
+<TR>
+<TD>21</TD>
+<TD>8.47E+01</TD>
+<TD>8.96E+01</TD>
+<TD>7.23E+01</TD>
+<TD>7.67E+01</TD>
+<TD>7.68E+02</TD>
+<TD>8.21E+02</TD>
+</TR>
+<TR>
+<TD>22</TD>
+<TD>8.96E+01</TD>
+<TD>9.60E+01</TD>
+<TD>7.67E+01</TD>
+<TD>8.19E+01</TD>
+<TD>8.21E+02</TD>
+<TD>8.75E+02</TD>
+</TR>
+<TR>
+<TD>23</TD>
+<TD>9.60E+01</TD>
+<TD>1.02E+02</TD>
+<TD>8.19E+01</TD>
+<TD>8.80E+01</TD>
+<TD>8.75E+02</TD>
+<TD>9.28E+02</TD>
+</TR>
+<TR>
+<TD>24</TD>
+<TD>1.02E+02</TD>
+<TD>1.09E+02</TD>
+<TD>8.80E+01</TD>
+<TD>9.41E+01</TD>
+<TD>9.28E+02</TD>
+<TD>9.99E+02</TD>
+</TR>
+<TR>
+<TD>25</TD>
+<TD>1.09E+02</TD>
+<TD>1.17E+02</TD>
+<TD>9.41E+01</TD>
+<TD>1.00E+02</TD>
+<TD>9.99E+02</TD>
+<TD>1.05E+03</TD>
+</TR>
+<TR>
+<TD>26</TD>
+<TD>1.17E+02</TD>
+<TD>1.25E+02</TD>
+<TD>1.00E+02</TD>
+<TD>1.07E+02</TD>
+<TD>1.05E+03</TD>
+<TD>1.12E+03</TD>
+</TR>
+<TR>
+<TD>27</TD>
+<TD>1.25E+02</TD>
+<TD>1.33E+02</TD>
+<TD>1.07E+02</TD>
+<TD>1.14E+02</TD>
+<TD>1.12E+03</TD>
+<TD>1.19E+03</TD>
+</TR>
+<TR>
+<TD>28</TD>
+<TD>1.33E+02</TD>
+<TD>1.41E+02</TD>
+<TD>1.14E+02</TD>
+<TD>1.22E+02</TD>
+<TD>1.19E+03</TD>
+<TD>1.28E+03</TD>
+</TR>
+<TR>
+<TD>29</TD>
+<TD>1.41E+02</TD>
+<TD>1.51E+02</TD>
+<TD>1.22E+02</TD>
+<TD>1.33E+02</TD>
+<TD>1.28E+03</TD>
+<TD>1.37E+03</TD>
+</TR>
+<TR>
+<TD>30</TD>
+<TD>1.51E+02</TD>
+<TD>1.62E+02</TD>
+<TD>1.33E+02</TD>
+<TD>1.40E+02</TD>
+<TD>1.37E+03</TD>
+<TD>1.46E+03</TD>
+</TR>
+<TR>
+<TD>31</TD>
+<TD>1.62E+02</TD>
+<TD>1.74E+02</TD>
+<TD>1.40E+02</TD>
+<TD>1.50E+02</TD>
+<TD>1.46E+03</TD>
+<TD>1.57E+03</TD>
+</TR>
+<TR>
+<TD>32</TD>
+<TD>1.74E+02</TD>
+<TD>1.85E+02</TD>
+<TD>1.50E+02</TD>
+<TD>1.61E+02</TD>
+<TD>1.57E+03</TD>
+<TD>1.66E+03</TD>
+</TR>
+<TR>
+<TD>33</TD>
+<TD>1.85E+02</TD>
+<TD>1.98E+02</TD>
+<TD>1.61E+02</TD>
+<TD>1.71E+02</TD>
+<TD>1.66E+03</TD>
+<TD>1.78E+03</TD>
+</TR>
+<TR>
+<TD>34</TD>
+<TD>1.98E+02</TD>
+<TD>2.11E+02</TD>
+<TD>1.71E+02</TD>
+<TD>1.82E+02</TD>
+<TD><BR></TD>
+<TD><BR></TD>
+</TR>
+<TR>
+<TD>35</TD>
+<TD>2.11E+02</TD>
+<TD>2.25E+02</TD>
+<TD>1.82E+02</TD>
+<TD>1.96E+02</TD>
+<TD><BR></TD>
+<TD><BR></TD>
+</TR>
+<TR>
+<TD>36</TD>
+<TD>2.25E+02</TD>
+<TD>2.45E+02</TD>
+<TD>1.96E+02</TD>
+<TD>2.06E+02</TD>
+<TD><BR></TD>
+<TD><BR></TD>
+</TR>
+<TR>
+<TD>37</TD>
+<TD>2.45E+02</TD>
+<TD>2.58E+02</TD>
+<TD>2.06E+02</TD>
+<TD>2.20E+02</TD>
+<TD><BR></TD>
+<TD><BR></TD>
+</TR>
+<TR>
+<TD>38</TD>
+<TD>2.58E+02</TD>
+<TD>2.77E+02</TD>
+<TD>2.20E+02</TD>
+<TD>2.34E+02</TD>
+<TD><BR></TD>
+<TD><BR></TD>
+</TR>
+<TR>
+<TD>39</TD>
+<TD>2.77E+02</TD>
+<TD>2.96E+02</TD>
+<TD>2.34E+02</TD>
+<TD>2.51E+02</TD>
+<TD><BR></TD>
+<TD><BR></TD>
+</TR>
+<TR>
+<TD>40</TD>
+<TD>2.96E+02</TD>
+<TD>3.16E+02</TD>
+<TD>2.51E+02</TD>
+<TD>2.69E+02</TD>
+<TD><BR></TD>
+<TD><BR></TD>
+</TR>
+<TR>
+<TD>41</TD>
+<TD>3.16E+02</TD>
+<TD>3.35E+02</TD>
+<TD>2.69E+02</TD>
+<TD>2.86E+02</TD>
+<TD><BR></TD>
+<TD><BR></TD>
+</TR>
+<TR>
+<TD>42</TD>
+<TD>3.35E+02</TD>
+<TD>3.61E+02</TD>
+<TD>2.86E+02</TD>
+<TD>3.07E+02</TD>
+<TD><BR></TD>
+<TD><BR></TD>
+</TR>
+<TR>
+<TD>43</TD>
+<TD>3.61E+02</TD>
+<TD>3.80E+02</TD>
+<TD>3.07E+02</TD>
+<TD>3.25E+02</TD>
+<TD><BR></TD>
+<TD><BR></TD>
+</TR>
+<TR>
+<TD>44</TD>
+<TD>3.80E+02</TD>
+<TD>4.06E+02</TD>
+<TD>3.25E+02</TD>
+<TD>3.49E+02</TD>
+<TD><BR></TD>
+<TD><BR></TD>
+</TR>
+<TR>
+<TD>45</TD>
+<TD>4.06E+02</TD>
+<TD>4.32E+02</TD>
+<TD>3.49E+02</TD>
+<TD>3.70E+02</TD>
+<TD><BR></TD>
+<TD><BR></TD>
+</TR>
+<TR>
+<TD>46</TD>
+<TD>4.32E+02</TD>
+<TD>4.64E+02</TD>
+<TD>3.70E+02</TD>
+<TD>3.98E+02</TD>
+<TD><BR></TD>
+<TD><BR></TD>
+</TR>
+<TR>
+<TD>47</TD>
+<TD>4.64E+02</TD>
+<TD>4.97E+02</TD>
+<TD>3.98E+02</TD>
+<TD>4.23E+02</TD>
+<TD><BR></TD>
+<TD><BR></TD>
+</TR>
+<TR>
+<TD>48</TD>
+<TD>4.97E+02</TD>
+<TD>5.29E+02</TD>
+<TD><BR></TD>
+<TD><BR></TD>
+<TD><BR></TD>
+<TD><BR></TD>
+</TR>
+<TR>
+<TD>49</TD>
+<TD>5.29E+02</TD>
+<TD>5.68E+02</TD>
+<TD><BR></TD>
+<TD><BR></TD>
+<TD><BR></TD>
+<TD><BR></TD>
+</TR>
+<TR>
+<TD>50</TD>
+<TD>5.68E+02</TD>
+<TD>6.00E+02</TD>
+<TD><BR></TD>
+<TD><BR></TD>
+<TD><BR></TD>
+<TD><BR></TD>
+</TR>
+<TR>
+<TD>51</TD>
+<TD>6.00E+02</TD>
+<TD>6.45E+02</TD>
+<TD><BR></TD>
+<TD><BR></TD>
+<TD><BR></TD>
+<TD><BR></TD>
+</TR>
+<TR>
+<TD>52</TD>
+<TD>6.45E+02</TD>
+<TD>6.84E+02</TD>
+<TD><BR></TD>
+<TD><BR></TD>
+<TD><BR></TD>
+<TD><BR></TD>
+</TR>
+<TR>
+<TD>53</TD>
+<TD>6.84E+02</TD>
+<TD>7.36E+02</TD>
+<TD><BR></TD>
+<TD><BR></TD>
+<TD><BR></TD>
+<TD><BR></TD>
+</TR>
+<TR>
+<TD>54</TD>
+<TD>7.36E+02</TD>
+<TD>7.81E+02</TD>
+<TD><BR></TD>
+<TD><BR></TD>
+<TD><BR></TD>
+<TD><BR></TD>
+</TR>
+
+  </TABLE>
+
+</UL>
diff --git a/help/parameters/CassiniLp b/help/parameters/CassiniLp
new file mode 100644
index 0000000..0772eff
--- /dev/null
+++ b/help/parameters/CassiniLp
@@ -0,0 +1,30 @@
+ <h2> Cassini Langmuir Probe data at AMDA </h2>
+
+ 
+<UL>
+
+  <li> Cassini RPWS Langmuir Probe data are taken from Swedish Institute of Space Physics, Uppsala, 
+       <a href="http://www.space.irfu.se/cassini/data/" TARGET=_BLANK>site</a>. 
+ 
+  <br/> Data should only be used by RPWS members or other persons that have the permission by the Swedish Institute of Space Physics, Uppsala 
+        (contact: <a href="mailto:jwe@irfu.se">Jan-Erik Wahlund</a>).
+
+  <br/> Any use of the data must follow the 
+        <a href="http://www.space.irfu.se/cassini/data/filer/Open/MAPS_Rules_of_the_Road.pdf" TARGET=_BLANK>MAPS "rules-of-the-road"</a>. 
+        When using the data and informing the RPWS PI, one shall also inform the contact person for the RPWS LP at the Swedish Institute of Space Physics in Uppsala 
+        (<a href="mailto:jwe@irfu.se">Jan-Erik Wahlund</a>).
+
+  <br/> <br/> <b>Contact information :</b>
+  <br/> Jan-Erik Wahlund
+  <br/> Swedish Institute of Space Physics
+  <br/> Box 537
+  <br/> SE-751 21 Uppsala
+  <br/> Sweden
+
+  <br/> Email: <a href="mailto:jwe@irfu.se">jwe@irfu.se</a>
+  <br/> Tel.: +46-(0)18-471 5946
+  <br/> Fax.: +46-(0)18-471 5905
+
+  <li> Time resolution : usually 640s (20s, 24s or 32s during targeted flybys).
+
+</UL>
diff --git a/help/parameters/CassiniMag b/help/parameters/CassiniMag
new file mode 100644
index 0000000..5a1413f
--- /dev/null
+++ b/help/parameters/CassiniMag
@@ -0,0 +1,46 @@
+
+ <h2> Cassini Magnetometer data at AMDA </h2>
+
+
+<UL>
+
+  <li> Cassini Magnetometer data are taken from the PDS (Planetary Data System),                   
+         <a href="http://ppi.pds.nasa.gov/index.jsp" TARGET=_BLANK>site</a>.                  
+
+  <li> Available coordinates :
+    <UL>
+      <li> <b>RTN</b> : R (radial component, Sun to the spacecraft), T (tangential component, parallel to the Solar Equatorial plane and perpendicular to R), and N (normal component, completes right handed set)
+      <li> <b>KSM</b> : X (Saturn to Sun), Z (X-Z plane contains Saturn's centered magnetic dipole axis, M), and Y (completes right handed set)
+      <li> <b>KSO</b> : X (Saturn to Sun), Z (parallel to Saturn's orbital plane upward normal), and Y (completes the right handed set) 
+      <li> <b>KRTP</b> : R (Saturn to spacecraft), Phi (parallel to Saturn's equator), and Theta (completes right handed set)
+    </UL>
+
+  <li> 
+    <TABLE BORDER CELLPADDING=5>
+      <TR>
+         <TH align="center"> Source </TH>
+         <TH align="center"> Datasets </TH>
+         <TH align="center"> Status </TH>
+         <TH align="center"> Last Update </TH>
+       </TR>
+       <TR>
+         <TD> <a href="http://ppi.pds.nasa.gov/search/view/?f=yes&id=pds://PPI/COMAG_4001" TARGET=_BLANK>COMAG_4001</a> </TD>
+         <TD> RTN_1sec - KSM_1sec - KSO_1sec - KRTP_1sec </TD>
+         <TD> Uncertified  </TD>
+         <TD> 2012-01-11</TD>
+       </TR>
+       <TR>
+         <TD> <a href="http://ppi.pds.nasa.gov/search/view/?f=yes&id=pds://PPI/COMAG_4002" TARGET=_BLANK>COMAG_4002</a> </TD>
+         <TD> RTN_1min - KSM_1min - KSO_1min - KRTP_1min </TD>
+         <TD> Uncertified </TD>
+         <TD> 2012-01-11 </TD>
+       </TR>
+       <TR>
+         <TD> <a href="http://ppi.pds.nasa.gov/search/view/?f=yes&id=pds://PPI/COMAG_3001" TARGET=_BLANK>COMAG_3001</a> </TD>
+         <TD> Jupiter_RTN </TD>
+         <TD> Uncertified </TD>
+         <TD> 2012-01-11 </TD>
+       </TR>
+     </TABLE>
+</UL>
+
diff --git a/help/parameters/CassiniQTN b/help/parameters/CassiniQTN
new file mode 100644
index 0000000..283be91
--- /dev/null
+++ b/help/parameters/CassiniQTN
@@ -0,0 +1,23 @@
+<h2>Cassini RPWS Quasi Thermal Noise method</h2>
+
+<ul>
+	<li>Cassini RPWS QTN data are taken from the LESIA-Observatoire Paris Meudon.</li>
+
+	<li>The Cassini Radio and Plasma Wave Science (RPWS) Quasi Thermal
+      Noise (QTN) data set contains thermal plasma parameters derived
+      by QTN spectroscopy analysis applied on data acquired with the 
+      High Frequency Receiver (HFR) during the perikrones of the 
+      entire mission.</li>
+
+  	<li>Cassini RPWS QTN data are for the moment preliminary data.</li>
+
+	<li> Parameter plotting arguments:
+	    <ul>
+	      <li><b>Ne</b> : total electron number density (in cm-3)</li>
+	      <li><b>Te</b> : core electron temperature (in eV)</li>
+	      <li><b>delta_Ne</b> : measurement uncertainty for total electron number density</li>
+	      <li><b>delta_Te</b> : measurement uncertainty core electron temperature</li>
+	      <li><b>qfte</b> : quality flag that were acquired by QTN analysis on RPWS/HFR Spectra</li>
+	    </ul>
+	</li>
+</ul>
\ No newline at end of file
diff --git a/help/parameters/CassiniRPWS b/help/parameters/CassiniRPWS
new file mode 100644
index 0000000..4dab195
--- /dev/null
+++ b/help/parameters/CassiniRPWS
@@ -0,0 +1,17 @@
+<h2>Cassini Radio and Plasma Wave</h2>
+
+<ul>
+	<li>Cassini RPWS data are taken from Planetary Data System (NASA).</li>
+
+	<li>Cassini RPWS data contains all available Cassini Radio
+    	and Plasma Wave Science (RPWS) Langmuir Probe (LP) derived data for
+    	all Titan encounters.</li>
+
+   	<li>Datasets are :
+   		<ul>
+   			<li>NEPROXY : complete proxy density and spacecraft potential</li>
+   			<li>TITAN : plasma parameters derived near Titan</li>
+   			<li>UI : complete set of calibrated voltage-current data</li>
+   		</ul>
+   	</li>
+</ul>
diff --git a/help/parameters/CassiniRPWSNeproxy b/help/parameters/CassiniRPWSNeproxy
new file mode 100644
index 0000000..944ab1e
--- /dev/null
+++ b/help/parameters/CassiniRPWSNeproxy
@@ -0,0 +1,18 @@
+<h2>Cassini RPWS Neproxy</h2>
+
+<ul>
+	<li>Cassini RPWS Neproxy data are taken Planetary Data System (NASA).</li>
+
+	<li>Cassini RPWS Neproxy data contains all available RPWS Langmuir probe (LP) floating
+		potentials and secondary products, electron number densities and spacecraft
+		potentials.</li>
+                          
+	<li> Parameter plotting arguments:
+	    <ul>
+	      <li><b>FLOATING_POTENTIAL</b> : measured electric potential at the probe in volts</li>
+	      <li><b>SPACECRAFT_POTENTIAL</b> : electric potential at the spacecraft surface derived 
+	      from the probe floating potential</li>
+	      <li><b>ELECTRON_NUMBER_DENSITY</b> : derived proxy electron number density</li>
+	    </ul>
+	</li>
+</ul>
\ No newline at end of file
diff --git a/help/parameters/CassiniRPWSTitan b/help/parameters/CassiniRPWSTitan
new file mode 100644
index 0000000..07c34d7
--- /dev/null
+++ b/help/parameters/CassiniRPWSTitan
@@ -0,0 +1,17 @@
+<h2>Cassini RPWS Titan</h2>
+
+<ul>
+	<li>Cassini RPWS Titan data are taken from Planetary Data System (NASA).</li>
+
+	<li>Cassini RPWS Titan data contains plamsma parameters derived from 
+		Cassini RPWS Langmuir Probe (LP) measurements for Titan.</li>
+                          
+	<li> Parameter plotting arguments:
+	    <ul>
+	      <li><b>N</b> : electron number density per cubic centimeter</li>
+	      <li><b>R</b> : radial distance from the center of Titan in Titan radii, 2575km</li>
+	      <li><b>SCPOT</b> : spacecraft potential in volts</li>
+	      <li><b>T</b> : electron temperature in electron volts</li>
+	    </ul>
+	</li>
+</ul>
diff --git a/help/parameters/CassiniRPWSUI b/help/parameters/CassiniRPWSUI
new file mode 100644
index 0000000..f9ee775
--- /dev/null
+++ b/help/parameters/CassiniRPWSUI
@@ -0,0 +1,15 @@
+<h2>Cassini RPWS UI</h2>
+
+<ul>
+	<li>Cassini RPWS UI data are taken from Planetary Data System (NASA).</li>
+
+	<li>Cassini RPWS UI data contains all available calibrated measured current versus set bias
+		potential data for the Cassini RPWS Langmuir Probe (LP) instrument.</li>
+                          
+	<li> Parameter plotting arguments:
+	    <ul>
+	      <li><b>POTENTIAL</b> : Langmuir probe bias potential in volts</li>
+	      <li><b>CURRENT</b> : Langmuir probe measured current in amps</li>
+	    </ul>
+	</li>
+</ul>
diff --git a/help/parameters/CassiniSKRPhase b/help/parameters/CassiniSKRPhase
new file mode 100755
index 0000000..db0fc96
--- /dev/null
+++ b/help/parameters/CassiniSKRPhase
@@ -0,0 +1,21 @@
+
+ <h2> Southern And Northern SKR phase systems at AMDA </h2>
+<br/>
+<br/> <UL>
+  <li> Southern and northern SKR phase systems are taken from <a href="http://lesia.obspm.fr/kronos/skr_periodicity.php?page=1" TARGET=_BLANK>Observatory of Paris/LESIA website</a> <br/>
+  
+  <li> For each kronian hemisphere (North and South), we have:
+    <UL>
+	<li>
+	  <b>period</b> : SKR dominant period in hours
+	<li>
+	  <b>phi</b> : SKR phase system (in which SKR maxima peak about 0deg)
+	<li>
+	  <b>drift</b>: SKR peak phase with respect to an arbitrary period (10.7928h in S and 10.6h in N)
+    </UL>
+  <li> The North data starts at day 2005-03-25. 
+
+  <li> <a href="http://lesia.obspm.fr/kronos/skr_periodicity.php?page=1" TARGET=_BLANK>Data use policy</a>
+
+ </UL>
+
diff --git a/help/parameters/CassiniSLS4Long b/help/parameters/CassiniSLS4Long
new file mode 100755
index 0000000..cb32905
--- /dev/null
+++ b/help/parameters/CassiniSLS4Long
@@ -0,0 +1,10 @@
+ <h2> SLS4 Longitude at AMDA </h2>
+<br/>
+<br/> <UL>
+  <li> SLS4 Longitude are calculated by <b>Joseph Groene</b>
+  of University of Iowa. 
+  All data are taken from <a href="http://www-pw.physics.uiowa.edu/sls4/" TARGET=_BLANK>Joseph Groene site</a><br/><br/>
+ 
+  <a href="http://www-pw.physics.uiowa.edu/~dag/publications/2011_sls4_previi_draft.pdf" TARGET=_BLANK>A SLS4 Longitude System Based on a Tracking Filter Analysis of the Rotational Modulation of Saturn Kilometric Radiation</a>
+
+ </UL>
diff --git a/help/parameters/CassiniSkr b/help/parameters/CassiniSkr
new file mode 100644
index 0000000..f6aad5f
--- /dev/null
+++ b/help/parameters/CassiniSkr
@@ -0,0 +1,38 @@
+ <h2> Cassini SKR data at AMDA </h2>
+ 
+<UL>
+  <li> Cassini Saturn kilometric radiation data are taken from
+      Observatoire de Paris/LESIA <a href="http://www.lesia.obspm.fr/kronos/" TARGET=_BLANK>site</a>. <br/>
+       Data have been produced by <a href="mailto:laurent.lamy@obspm.fr">Laurent Lamy</a>, 
+       <a href="mailto:baptiste.cecconi@obspm.fr">Baptiste Cecconi</a> &amp;  
+       <a href="mailto:philippe.zarka@obspm.fr">Philippe Zarka</a> 
+       from Cassini-RPWS team. <br/> Use of these data should comply with 
+Cassini-MAPS 'rules of the road'.  Using these data for publications should imply 
+co-authorship of L. Lamy and/or B. Cecconi and/or P. Zarka in that order of 
+priority. Preferred collaboration is participation to analysis well ahead of 
+publication.
+
+  <li> Data include  SKR flux densities and integrated powers
+             in Left-Hand and Right-Hand Circular polarizations
+  <li> Time resolution = <b>3 minutes</b>
+  <li> <b>48 Frequency bands</b> 
+      <ul>
+       <li> 24 log-spaced bands from 3.5 to 320 kHz, with bandwidth = 20% of central
+                   frequency: <br/>
+	      3.95480  4.77290  5.76010  6.95160  8.38950  10.1248  12.2191  14.7465<br/>
+	      17.7968  21.4779  25.9205  31.2821  37.7526  45.5616  54.9858  66.3593<br/>
+	      80.0854  96.6507  116.642  140.769  169.887  205.027  247.436  298.617
+      <li>24 linearly-spaced from 350 to 1500 kHz, with bandwidth = 50 kHz<br/>
+	      350.000  400.000  450.000  500.000  550.000  600.000  650.000  700.000<br/>
+	      750.000  800.000  850.000  900.000  950.000  1000.00  1050.00  1100.00<br/>
+	      1150.00  1200.00  1250.00  1300.00  1350.00  1400.00  1450.00  1500.00
+      </ul>
+      <li><b>AMDA parameters</b>:
+      <ul>
+          <li><b>skr_flux_RH</b> : SKR flux densities for 48 frequencies in Right-Hand Circular polarization (W/m^2/Hz) 
+          <li><b>skr_flux_LH</b> : SKR flux densities for 48 frequencies  in  Left-Hand Circular polarization (W/m^2/Hz)
+          <li><b>skr_polarisation</b> : SKR Circular polarization degree which varies from -1 (RH) to 1 (LH).
+          <li><b>skr_total_power_emitted</b> : four "components" RH 100-400kHz,  RH 10 - 1000kHz, 
+                  LH 100-400kHz, LH 10 - 1000kHz (W/sr)
+      </ul>
+ </UL>
diff --git a/help/parameters/DST b/help/parameters/DST
new file mode 100644
index 0000000..ddc86cd
--- /dev/null
+++ b/help/parameters/DST
@@ -0,0 +1,15 @@
+
+<h2>Ground based indices at AMDA : Disturbance storm time index (Dst) </h2>
+<UL>
+
+  <li> Dst index is taken from the                    
+  <a href="http://wdc.kugi.kyoto-u.ac.jp" TARGET=_BLANK> WDC (World Data Center) at Kyoto</a>.                  
+
+  <li> Processing Level :
+    <UL>
+      <li> <b>FINAL</b> :  1970 - 2009
+      <li> <b>PROVISIONAL</b> : 2010 - 2012 
+      <li> <b>Quick-Look</b> :  2013      
+    </UL>     
+</UL>
+
diff --git a/help/parameters/EFWgse b/help/parameters/EFWgse
new file mode 100644
index 0000000..122e882
--- /dev/null
+++ b/help/parameters/EFWgse
@@ -0,0 +1,12 @@
+
+<h2>CLUSTER EFW Electric Field in GSE</h2>
+<br/>
+<br/> 
+   <b>Electric Field in GSE</b> is obtained from
+    <a href="http://caa.estec.esa.int/caa/" TARGET=_BLANK>CAA</a> C[1-4]_CP_EFW_L3_E3D_GSE <br/>
+   <b>Note that Pi has not validated this product</b>.<br/>
+    This dataset contains the  electric field in the inertial frame (i.e., vxB removed) in the GSE coordinate system, 
+    using EFW electric field data from file C[1-4]_CP_EFW_L3_E and interpolated FGM magnetic field data from  
+    C[1-4]_CP_FGM_5VPS products. The spin-axis component of the electric field is calculated with assumption of E.B equals 0 and with use of 2 electric field  
+    components in the spin plane and three magnetic field components.
+
diff --git a/help/parameters/EFWisr2 b/help/parameters/EFWisr2
new file mode 100644
index 0000000..6d4a616
--- /dev/null
+++ b/help/parameters/EFWisr2
@@ -0,0 +1,21 @@
+
+<h2>CLUSTER EFW Electric Field in ISR2</h2>
+<br/>
+<br/> 
+   <b>Electric Field in ISR2</b> is obtained from
+    <a href="http://caa.estec.esa.int/caa/" TARGET=_BLANK>CAA</a> C[1-4]_CP_EFW_L3_E <br/> <br/>
+      The EFW instrument measures the electric field only in the spacecraft 
+    spin plane, therefore a spin-plane oriented coordinate system is best 
+    suited for scientific studies involving the electric field. The ISR2 
+    (Inverted Spin Reference) system, also known as DSI (Despun System 
+    Inverted), is such a system. The X and Y axes are in the spin plane, 
+    with X pointing as near sunward as possible and Y perpendicular to the 
+    sunward direction, positive towards dusk. The Z-axis is along the 
+    (negative) spacecraft spin axis, towards the north ecliptic. The 
+    coordinate system is called “Inverted” because the actual spin axis of 
+    Cluster is pointing towards the south ecliptic. The difference between 
+    ISR2 (DSI) and the GSE (Geocentric Solar Ecliptic) is a tilt of 2° to 7° 
+    of the Z-axis performed in order to avoid shading of the EFW probes by 
+    the spacecraft.
+
+
diff --git a/help/parameters/GTLMgfEdA b/help/parameters/GTLMgfEdA
new file mode 100644
index 0000000..4d49a76
--- /dev/null
+++ b/help/parameters/GTLMgfEdA
@@ -0,0 +1,19 @@
+<h2>GTL MGF EditorA</h2>
+<br/>
+<br/> 
+   <b>Caveats</b>  
+    The Bz offset is still contained in the magnetic field data. The
+    magnitude of the Bz offset is about 0.5 nT (+-0.3 nT). The corrected
+    version of the magnetic field data will be published soon.
+    Kokubun et al., Geotail Prelaunch Report, ISAS, 58-70, 1992
+
+     
+
+ 
+    
+ 
+ 
+  
+ 
+ 
+ 
\ No newline at end of file
diff --git a/help/parameters/GTLMgfEdB b/help/parameters/GTLMgfEdB
new file mode 100644
index 0000000..b8fe2b6
--- /dev/null
+++ b/help/parameters/GTLMgfEdB
@@ -0,0 +1,19 @@
+<h2>GTL MGF EditorB</h2>
+<br/>
+<br/> 
+   <b>Caveats</b>  
+    The Bz offset is still contained in the magnetic field data. The
+    magnitude of the Bz offset is about 0.5 nT (+-0.3 nT). The corrected
+    version of the magnetic field data will be published soon.
+    Kokubun et al., Geotail Prelaunch Report, ISAS, 58-70, 1992
+
+     
+
+ 
+    
+ 
+ 
+  
+ 
+ 
+ 
\ No newline at end of file
diff --git a/help/parameters/GiottoEphemeris b/help/parameters/GiottoEphemeris
new file mode 100644
index 0000000..b8e4e38
--- /dev/null
+++ b/help/parameters/GiottoEphemeris
@@ -0,0 +1,58 @@
+<h2>GIOTTO Ephemeris: P1/Halley FlyBy</h2>
+ 
+<UL>
+    GIOTTO Ephemeris data are calculated using SPICE kernels taken from the
+           <a href="http://naif.jpl.nasa.gov/pub/naif/GIOTTO/kernels/" TARGET=_BLANK>
+            NAIF</a><br/><br/>   
+   <UL> <b>Coordinates :</b> <br/><br/>  
+   <li><b>HCI</b>: Heliocentric Inertial Frame -
+         All vectors are geometric: no aberration corrections are used.
+         The solar rotation axis is the primary vector: the Z axis points
+         in the solar north direction.
+         The solar ascending node on the ecliptic of J2000 forms the X axis.
+         The Y axis is Z cross X, completing the right-handed reference frame.
+    <li><b>HEE</b> : Heliocentric Earth Ecliptic Frame -
+
+         All vectors are geometric: no aberration corrections are used.
+
+         The position of the Earth relative to the Sun is the primary vector:
+         the X axis points from the Sun to the Earth.
+
+         The northern surface normal to the mean ecliptic of date is the
+         secondary vector: the Z axis is the component of this vector
+         orthogonal to the X axis.
+
+         The Y axis is Z cross X, completing the right-handed reference frame.
+    <li><b>HEEQ</b> : Heliocentric Earth Equatorial Frame -
+
+         All vectors are geometric: no aberration corrections are used.
+
+         The solar rotation axis is the primary vector: the Z axis points
+         in the solar north direction.
+
+         The position of the Sun relative to the Earth is the secondary
+         vector: the X axis is the component of this position vector
+         orthogonal to the Z axis.
+
+         The Y axis is Z cross X, completing the right-handed reference frame.
+         
+   
+  <li><b>CSO</b> The body-Centered Solar Orbital frames for the GIOTTO
+   target comet P1/Halley, is named 'P1/H_CSO' 
+   This frame is   defined as
+   a two-vector style dynamic frames as follows:
+ 
+      -  The position of the sun relative to the body is the primary
+         vector: the X axis points from the body to the sun.
+
+      -  The inertially referenced velocity of the sun relative to the
+         body is the secondary vector: the Y axis is the component of
+         this velocity vector orthogonal to the X axis.
+
+      -  The Z axis is X cross Y, completing the right-handed reference
+         frame.
+
+      -  All vectors are geometric: no aberration corrections are used.
+ 
+  </UL>
+<br/>
\ No newline at end of file
diff --git a/help/parameters/GiottoIms b/help/parameters/GiottoIms
new file mode 100644
index 0000000..414ab33
--- /dev/null
+++ b/help/parameters/GiottoIms
@@ -0,0 +1,28 @@
+
+ <h2> Giotto Ion Mass Spectrometer (IMS) data at AMDA </h2>
+
+Source: <a href="ftp://psa.esac.esa.int/pub/mirror/GIOTTO/IMS/" TARGET=_BLANK >ESA PSA</a><br/><br/>
+<b> Principal Investigator(s): H.Balsiger (University of Bern, Switzerland)</b><br/><br/>
+
+<i>Please acknowledge the above Principal Investigator(s) 
+as well as the European Space Agency when making a publication using the data.</i><br/><br/>
+ 
+ <ul>
+ <li>
+ The ion mass spectrometer consists of two major                     
+          subsystems.  One section, the High Energy Range                     
+          Spectrometer (HERS) was designed to measure the ion                 
+          abundances and the 3-dimensional velocity                           
+          distribution outside the contact surface, where the                 
+          ions are hot and there is considerable turbulence.                  
+          The other section, the High Intensity Spectrometer                  
+          (HIS) was designed to measure the abundances of the                 
+          low-energy ions inside the contact surface, where                   
+          the ions were expected to have higher abundances                    
+          and lower temperatures.  This section contained                     
+          separate Mass and Angle Analyzers.  Both sections                   
+          of the instrument were powered and controlled from                  
+          a common power supply and control unit.         
+</ul>
+<br/>
+Experiment <a href="ftp://psa.esac.esa.int/pub/mirror/GIOTTO/IMS/GIO-C-IMS-3-RDR-HERS-HALLEY-V1.0/CATALOG/INST.CAT" TARGET=_BLANK</a>full description</a>
\ No newline at end of file
diff --git a/help/parameters/GiottoJpa b/help/parameters/GiottoJpa
new file mode 100644
index 0000000..042980f
--- /dev/null
+++ b/help/parameters/GiottoJpa
@@ -0,0 +1,30 @@
+
+<h2> Giotto Johnstone Plasma Analyser data at AMDA</h2>
+
+Source: <a href="ftp://psa.esac.esa.int/pub/mirror/GIOTTO/JPA/" TARGET=_BLANK>ESA PSA</a><br/><br/>
+<b> Principal Investigator(s): A. Johnstone (Mullard Space Science Laboratory, Holmbury St Mary, UK)</b><br/><br/>
+
+<i>Please acknowledge the above Principal Investigator(s) 
+as well as the European Space Agency when making a publication using the data.</i><br/><br/>
+ 
+ <ul>
+ <li>                                                                       
+          This instrument is designed to measure the                          
+          three-dimensional energy distribution of positive                   
+          ions in order to study the interaction between the                  
+          solar wind and ionised cometary particles.  The two                 
+          sensors measure the distribution from 10 eV to 20                   
+          keV once per spacecraft spin and the distribution                   
+          from 90 eV to 90 keV, with coarse mass                              
+          discrimination, once every 32 spins. 
+<li>          The data contains results from the Implanted Ion Sensor     
+          (IIS) 4DH mode and the Fast Ion Sensor SW and HAR modes       
+          of the Three-Dimensional Particle Analyser (JPA) experiment   
+          on the GIOTTO space craft for the mission to comet            
+          P/Halley.  The results of the Fast Ion Sensor (FIS - inbound) and IIS         
+          (outbound) have been merged in this data.  
+   
+<li>      The source ESA PSA file: JPAMERG1.TAB       
+</ul>
+<br/>
+Experiment <a href="ftp://psa.esac.esa.int/pub/mirror/GIOTTO//JPA/GIO-C-JPA-4-DDR-HALLEY-MERGE-V1.0/CATALOG/INST.CAT" TARGET=_BLANK</a>full description</a>
\ No newline at end of file
diff --git a/help/parameters/GiottoMag b/help/parameters/GiottoMag
new file mode 100644
index 0000000..d991e8c
--- /dev/null
+++ b/help/parameters/GiottoMag
@@ -0,0 +1,25 @@
+
+ <h2> Giotto Magnetometer (MAG) data at AMDA </h2>
+
+Source: <a href="ftp://psa.esac.esa.int/pub/mirror/GIOTTO/MAG/" TARGET=_BLANK>ESA PSA</a><br/><br/>
+<b> Principal Investigator(s): F.M. Neubauer (University of Cologne, Germany)</b><br/><br/>
+
+<i>Please acknowledge the above Principal Investigator(s) 
+as well as the European Space Agency when making a publication using the data.</i><br/><br/>
+ 
+ <ul>
+ <li>
+ The Halley centered coordinate (CSE) system used   
+ in these measurements is a right handed coordinate system.   
+ It is defined   
+ so that the coordinate system has its origin at the comet's nucleus, with    
+ the XSE-axis from the nucleus to the sun, the YSE-axis parallel to the       
+ ecliptic plane in the direction of retrograde planetary motion.   
+ The ZSE- axis completes the coordinate system such that at the time of Halley's       
+ passage through the ecliptic plane it points to the ecliptic north.
+<li>Azimuthal B angle is counted positive from the X-axis toward the Y-axis.
+<li>Elevation B angle is counted from ecliptic plane toward positive Z.
+<li>B RMS is a pythagorean meean of the component RMS values
+</ul>
+<br/>
+Experiment <a href="ftp://psa.esac.esa.int/pub/mirror/GIOTTO/MAG/GIO-C-MAG-4-RDR-8SEC-HALLEY-V1.0/CATALOG/INST.CAT" TARGET=_BLANK</a>full description</a>
diff --git a/help/parameters/GiottoMission b/help/parameters/GiottoMission
new file mode 100644
index 0000000..e76d2fe
--- /dev/null
+++ b/help/parameters/GiottoMission
@@ -0,0 +1,13 @@
+
+<h2> Giotto data  for P1/Halley Flyby at AMDA </h2>
+Source: <a href="http://www.rssd.esa.int/index.php?project=PSA&page=giotto" TARGET=_BLANK>ESA PSA</a><br/><br/> 
+ESA's first deep space mission, Giotto was designed to help solve the mysteries surrounding Comet Halley 
+by passing as close as possible to the comet's nucleus, which it achieved on 14 March 1986 at a distance of 
+just under 600 km. No-one expected the spacecraft to survive its battering from comet dust during this encounter, 
+but although Giotto was damaged during the flyby, most of its instruments remained operational. 
+The mission was extended to allow a additional encounter with comet Grigg-Skjellerup on 10 July 1992, 
+at a distance of around 200 km.  
+<br/><br/>
+
+Time in GIOTTO datasets is always a <b>satellite time (SCET)</b>
+ 
\ No newline at end of file
diff --git a/help/parameters/GllEphem b/help/parameters/GllEphem
new file mode 100755
index 0000000..f7ca2fa
--- /dev/null
+++ b/help/parameters/GllEphem
@@ -0,0 +1,8 @@
+ <h2> Galileo/Callisto/Europa/Ganimede/Io Ephemeris at AMDA </h2>
+<br/>
+<br/> <UL>
+  <li> Galileo/Callisto/Europa/Ganimede/Io Ephemeris data are calculated by <b>Joseph Groene</b>
+  of University of Iowa based on CASSINI SPICE kernels. 
+  All data are taken from <a href="http://www-pw.physics.uiowa.edu/~jbg/cas.html" TARGET=_BLANK>Joseph Groene site</a>
+     
+ </UL>
diff --git a/help/parameters/GllKhurana b/help/parameters/GllKhurana
new file mode 100755
index 0000000..e9db0ee
--- /dev/null
+++ b/help/parameters/GllKhurana
@@ -0,0 +1,6 @@
+ <h2> Galileo Magnetic Field Model at AMDA </h2>
+<br/>
+<br/> <UL>
+  <li> Simulation data are taken from the <a href="http://lasp.colorado.edu/mop/resources/code/#khuranamodel" TARGET=_BLANK>Krishan Khurana's Magnetic Field Model written in IDL</a>
+    </li> 
+ </UL>
diff --git a/help/parameters/GllMag b/help/parameters/GllMag
new file mode 100644
index 0000000..564f2ae
--- /dev/null
+++ b/help/parameters/GllMag
@@ -0,0 +1,68 @@
+
+ <h2> Galileo Magnetometer data at AMDA </h2>
+
+
+<UL>
+
+  <li> Galileo Magnetometer data are taken from the PDS (Planetary Data System),
+         <a href="http://ppi.pds.nasa.gov/index.jsp" TARGET=_BLANK>site</a>.
+
+  <li> Available coordinates :
+    <UL>
+      <li> <b>System III</b> : R is along the Jupiter to spacecraft line, positive away from Jupiter. Phi is parallel to the Jovigraphic equator (Omega x R). Theta completes the right-handed set (positive southward).
+      <li> <b>IRC - Inertial Rotor coordinates</b> : Z is along the spacecraft spin axis (positive opposite the high-gain antenna). X is roughly parallel to the south ecliptic normal. Y completes the right handed set (pointing roughly dawnward).
+      <li> <b>CPHIO - Callisto Phi-Omega coordinates</b> : X is in the direction of corotational flow (System III Phi). Z is parallel to the Jovian spin axis (Omega). Y completes the right handed set.
+      <li> <b>CSPRH - spherical Callisto-centered 'planetocentric' right-handed coordinates</b> : R is along the satellite to spacecraft line, positive away from the satellite. Phi is parellel to the satellite's planetographic equator and positive in a right-handed sense.  Theta completes the right-handed set (positive southward).
+    </UL>
+
+  <li> Sattelites flybys :
+    <TABLE BORDER CELLPADDING=5>
+      <TR>
+         <TH align="center"> Source </TH>
+         <TH align="center"> Orbits </TH>
+         <TH align="center"> Status </TH>
+         <TH align="center"> Last Update </TH>
+       </TR>
+       <TR>
+         <TD> <a href="http://ppi.pds.nasa.gov/search/view/?f=yes&id=pds://PPI/GOMW_5001" TARGET=_BLANK>GOMW_5001</a> </TD>
+         <TD> Callisto_09 - Europa_04 - Ganimede_01 - Ganimede_02 - Ganimede_07 - Io_00 </TD>
+         <TD> Certified  </TD>
+         <TD> 2011-09-19 </TD>
+       </TR>
+       <TR>
+         <TD> <a href="http://ppi.pds.nasa.gov/search/view/?f=yes&id=pds://PPI/GOMW_5002" TARGET=_BLANK>GOMW_5002</a> </TD>
+           <TD> Callisto_03 - Ganimede_08 </TD>
+           <TD> Certified  </TD>
+           <TD> 2011-09-19 </TD>
+         </TR>
+       <TR>
+         <TD> <a href="http://ppi.pds.nasa.gov/search/view/?f=yes&id=pds://PPI/GOMW_5003" TARGET=_BLANK>GOMW_5003</a> </TD>
+         <TD> Callisto_10 - Europa_11 - Europa_12 - Europa_14 - Europa_15 - Europa_19 </TD>
+         <TD> Certified  </TD>
+         <TD> 2011-09-19 </TD>
+       </TR>
+       <TR>
+         <TD> <a href="http://ppi.pds.nasa.gov/search/view/?f=yes&id=pds://PPI/GOMW_5004" TARGET=_BLANK>GOMW_5004</a> </TD>
+         <TD>  Europa_26 - Ganimede_28 - Io_24 - Io_27</TD>
+         <TD> Certified  </TD>
+         <TD> 2011-09-19 </TD>
+       </TR>
+       <TR>
+         <TD> <a href="http://ppi.pds.nasa.gov/search/view/?f=yes&id=pds://PPI/GOMW_5005" TARGET=_BLANK>GOMW_5005</a> </TD>
+         <TD> Callisto_30 - Ganimede_29 - Io_31 - Io_32 </TD>
+         <TD> Certified  </TD>
+         <TD> 2011-09-19 </TD>
+       </TR>
+    </TABLE>
+
+  <li>
+    Due to missing files on PDS datasets, these orbits are not yet added in AMDA: Ganimede_09 - Europa_17 - Ganimede_12 - Callisto_21 - Callisto_22 - Callisto_23 - Europa_25
+
+  <li>
+    <b>Magnetosphere dataset</b> corresponds to data acquired by the Galileo Orbiter magnetometer during the magnetospheric survey portion of the mission. More information <a href="http://ppi.pds.nasa.gov/ditdos/download?id=pds://PPI/GOMW_5001/CATALOG//GO_MAG_SURVEY_DS.CAT" TARGET=_BLANK>here</a>
+
+  <li>
+    <b>Burst dataset</b> corresponds to high time resolution data acquired by the Galileo magnetometer, it includes both satellite flyby and non-flyby data. More information <a href="http://ppi.pds.nasa.gov/ditdos/download?id=pds://PPI/GOMW_5001/CATALOG//GO_MAG_HIGHRES_DS.CAT" TARGET=_BLANK>here</a>
+
+  </UL>
+
diff --git a/help/parameters/GllPLS b/help/parameters/GllPLS
new file mode 100644
index 0000000..d68aeb4
--- /dev/null
+++ b/help/parameters/GllPLS
@@ -0,0 +1,172 @@
+
+ <h2> Galileo Plasma Science data at AMDA </h2>
+
+
+<UL>
+
+  <li> Galileo Plasma Science data are taken from the PDS (Planetary Data System),
+         <a href="http://ppi.pds.nasa.gov/index.jsp" TARGET=_BLANK>site</a>.
+
+  <li>
+      <b>Magnetosphere dataset</b> corresponds to data acquired by the Galileo Orbiter during the magnetospheric survey portion of the mission. More information <a href="http://ppi.pds.nasa.gov/ditdos/download?id=pds://PPI/GOMW_5001/CATALOG//GO_MAG_SURVEY_DS.CAT" TARGET=_BLANK>here</a>
+
+  <li>
+      <b>Burst dataset</b> corresponds to high time resolution data acquired by the Galileo Orbiter. It includes only non-flyby data. More information <a href="http://ppi.pds.nasa.gov/ditdos/download?id=pds://PPI/GOMW_5001/CATALOG//GO_MAG_HIGHRES_DS.CAT" TARGET=_BLANK>here</a>
+  
+  <li>
+      <b>Callisto, Ganymede, Io, Europa datasets</b>  corresponds to high time resolution data acquired by the Galileo Orbiter. It includes only corresponding satellite flybys. More information <a href="http://ppi.pds.nasa.gov/ditdos/download?id=pds://PPI/GOMW_5001/CATALOG//GO_MAG_HIGHRES_DS.CAT" TARGET=_BLANK>here</a>
+
+  <li>
+      <b>Moments dataset</b> corresponds to Galileo plasma moments (ion density, temperature, velocity) derived from the real-time science (RTS) data acquired by the instrument (inside of 30Rj).
+
+  <li> Parameter plotting arguments:
+    <UL>
+      <li><b>backgrdChan</b> : substraction of background noise defined by a channel index
+      <li><b>backgrdVal</b> : substraction of background noise defined by a constant value
+      <li><b>minCount</b> : count data must be greater or egal than minCount to be plot  
+      <li><b>minCount</b> : count data must be lower or egal than maxCount to be plot
+      <li><b>channel</b> : plot a specific channel index
+    </UL>
+
+ <li>
+   <TABLE BORDER CELLPADDING=5>
+     <TR>
+       <TH align="center"> Sources </TH>
+       <TH align="center"> Datasets </TH>
+       <TH align="center"> Status </TH>
+       <TH align="center"> Last Update </TH>
+     </TR>
+     <TR>
+       <TD><a href="http://ppi.pds.nasa.gov/search/view/?f=yes&id=pds://PPI/GOPLS_5101" TARGET=_BLANK>GOPLS_5101</a>
+           <a href="http://ppi.pds.nasa.gov/search/view/?f=yes&id=pds://PPI/GOPLS_5102" TARGET=_BLANK>GOPLS_5102</a>
+           <a href="http://ppi.pds.nasa.gov/search/view/?f=yes&id=pds://PPI/GOPLS_5103" TARGET=_BLANK>GOPLS_5103</a>
+           <a href="http://ppi.pds.nasa.gov/search/view/?f=yes&id=pds://PPI/GOPLS_5104" TARGET=_BLANK>GOPLS_5104</a>
+           <a href="http://ppi.pds.nasa.gov/search/view/?f=yes&id=pds://PPI/GOPLS_5105" TARGET=_BLANK>GOPLS_5105</a>
+       </TD>
+       <TD> Burst, Satellites </TD>
+       <TD> Certified  </TD>
+       <TD> 2011-11-28 </TD>
+     </TR>
+     <TR>
+       <TD> <a href="http://ppi.pds.nasa.gov/search/view/?f=yes&id=pds://PPI/GOMW_5001" TARGET=_BLANK>GOMW_5001</a> 
+            <a href="http://ppi.pds.nasa.gov/search/view/?f=yes&id=pds://PPI/GOMW_5002" TARGET=_BLANK>GOMW_5002</a>
+            <a href="http://ppi.pds.nasa.gov/search/view/?f=yes&id=pds://PPI/GOMW_5003" TARGET=_BLANK>GOMW_5003</a>
+            <a href="http://ppi.pds.nasa.gov/search/view/?f=yes&id=pds://PPI/GOMW_5004" TARGET=_BLANK>GOMW_5004</a>
+            <a href="http://ppi.pds.nasa.gov/search/view/?f=yes&id=pds://PPI/GOMW_5005" TARGET=_BLANK>GOMW_5005</a>
+        </TD>
+        <TD> Magnetosphere </TD>
+        <TD> Certified  </TD>
+        <TD> 2011-11-28 </TD>
+      </TR>
+      <TR>
+        <TD> <a href="http://ppi.pds.nasa.gov/search/view/?f=yes&id=pds://PPI/GOPLS_9003" TARGET=_BLANK>GOPLS_9003</a> </TD>
+        <TD> Moments </TD>
+        <TD> Certified  </TD>
+        <TD> 2011-11-28 </TD>
+      </TR>
+    </TABLE>
+  
+  <li> 
+    <TABLE BORDER CELLPADDING=5>
+    <CAPTION ALIGN="bottom"><b>Energy bands for Magnetosphere dataset</b></CAPTION>
+      <TR><TD></TD><TD COLSPAN=2 align="center">Ions energy bands</TD><TD COLSPAN=2 align="center">Electrons energy bands</TD></TR>
+      <TR>
+        <TH align="center"> Band </TH>
+        <TH align="center"> Min E/Q (Volts) </TH>
+        <TH align="center"> Max E/Q (Volts) </TH>
+        <TH align="center"> Min E/Q (Volts) </TH>
+        <TH align="center"> Max E/Q (Volts) </TH>
+      </TR>
+      <TR><TD>1</TD><TD>4.2</TD><TD>7.2</TD><TD>3.9</TD><TD>6.7</TD></TR>
+      <TR><TD>2</TD><TD>8.6</TD><TD>14.5</TD><TD>8.0</TD><TD>13.5</TD></TR>
+      <TR><TD>3</TD><TD>17.3</TD><TD>29.0</TD><TD>16.1</TD><TD>26.9</TD></TR>
+      <TR><TD>4</TD><TD>34.3</TD><TD>57.1</TD><TD>31.9</TD><TD>53.1</TD></TR>
+      <TR><TD>5</TD><TD>67.4</TD><TD>112.0</TD><TD>62.6</TD><TD>104.0</TD></TR>
+      <TR><TD>6</TD><TD>132.5</TD><TD>219.9</TD><TD>123.1</TD><TD>204.3</TD></TR>
+      <TR><TD>7</TD><TD>244.3</TD><TD>454.4</TD><TD>227.0</TD><TD>422.1</TD></TR>
+      <TR><TD>8</TD><TD>549.0</TD><TD>960.7</TD><TD>510.0</TD><TD>892.5</TD></TR>
+      <TR><TD>9</TD><TD>1153.0</TD><TD>1958.0</TD><TD>1071.0</TD><TD>1819.0</TD></TR>
+      <TR><TD>10</TD><TD>2324.0</TD><TD>3788.0</TD><TD>2159.0</TD><TD>3519.0</TD></TR>
+      <TR><TD>11</TD><TD>4575.0</TD><TD>7777.0</TD><TD>4250.0</TD><TD>7225.0</TD></TR>
+      <TR><TD>12</TD><TD>8121.0</TD><TD>15189.0</TD><TD>8194.0</TD><TD>14110.0</TD></TR>
+      <TR><TD>13</TD><TD>17971.0</TD><TD>29829.0</TD><TD>16694.0</TD><TD>27710.0</TD></TR>
+      <TR><TD>14</TD><TD>34770.0</TD><TD>52521.0</TD><TD>32300.0</TD><TD>48790.0</TD></TR>
+    </TABLE>
+  </br>
+  
+  <li>  
+    <TABLE BORDER CELLPADDING=5>
+      <CAPTION ALIGN="bottom"><b>Energy bands for Burst and Satellites datasets</b></CAPTION>
+      <TR><TD></TD><TD COLSPAN=2 align="center">Ions energy bands</TD></TR>
+      <TR>
+        <TH align="center"> Band </TH>
+        <TH align="center"> Min E (eV) </TH>
+        <TH align="center"> Max E (eV) </TH>
+      </TR>
+      <TR><TD>E0</TD><TD>0</TD><TD>0.9</TD></TR>
+      <TR><TD>E1</TD><TD>0.9</TD><TD>1.2</TD></TR>
+      <TR><TD>E2</TD><TD>1.2</TD><TD>1.4</TD></TR>
+      <TR><TD>E3</TD><TD>1.4</TD><TD>1.7</TD></TR>
+      <TR><TD>E4</TD><TD>1.7</TD><TD>2.1</TD></TR>
+      <TR><TD>E5</TD><TD>2.1</TD><TD>2.5</TD></TR>
+      <TR><TD>E6</TD><TD>2.5</TD><TD>3.0</TD></TR>
+      <TR><TD>E7</TD><TD>3.0</TD><TD>3.6</TD></TR>
+      <TR><TD>E8</TD><TD>3.6</TD><TD>4.3</TD></TR>
+      <TR><TD>E9</TD><TD>4.3</TD><TD>5.1</TD></TR>
+      <TR><TD>E10</TD><TD>5.1</TD><TD>6.1</TD></TR>
+      <TR><TD>E11</TD><TD>6.1</TD><TD>7.3</TD></TR>
+      <TR><TD>E12</TD><TD>7.3</TD><TD>8.6</TD></TR>
+      <TR><TD>E13</TD><TD>8.6</TD><TD>10.3</TD></TR>
+      <TR><TD>E14</TD><TD>10.3</TD><TD>12.2</TD></TR>
+      <TR><TD>E15</TD><TD>12.2</TD><TD>14.5</TD></TR>
+      <TR><TD>E16</TD><TD>14.5</TD><TD>17.4</TD></TR>
+      <TR><TD>E17</TD><TD>17.4</TD><TD>20.6</TD></TR>
+      <TR><TD>E18</TD><TD>20.6</TD><TD>24.5</TD></TR>
+      <TR><TD>E19</TD><TD>24.5</TD><TD>29.0</TD></TR>
+      <TR><TD>E20</TD><TD>29.0</TD><TD>34.3</TD></TR>
+      <TR><TD>E21</TD><TD>34.3</TD><TD>40.7</TD></TR>
+      <TR><TD>E22</TD><TD>40.7</TD><TD>48.3</TD></TR>
+      <TR><TD>E23</TD><TD>48.3</TD><TD>57.2</TD></TR>
+      <TR><TD>E24</TD><TD>57.2</TD><TD>67.3</TD></TR>
+      <TR><TD>E25</TD><TD>67.3</TD><TD>79.8</TD></TR>
+      <TR><TD>E26</TD><TD>79.8</TD><TD>94.6</TD></TR>
+      <TR><TD>E27</TD><TD>94.6</TD><TD>112.0</TD></TR>
+      <TR><TD>E28</TD><TD>112.0</TD><TD>132.4</TD></TR>
+      <TR><TD>E29</TD><TD>132.4</TD><TD>156.8</TD></TR>
+      <TR><TD>E30</TD><TD>156.8</TD><TD>185.8</TD></TR>
+      <TR><TD>E31</TD><TD>185.8</TD><TD>220.0</TD></TR>
+      <TR><TD>E32</TD><TD>220.0</TD><TD>251.3</TD></TR>
+      <TR><TD>E33</TD><TD>251.3</TD><TD>309.8</TD></TR>
+      <TR><TD>E34</TD><TD>309.8</TD><TD>379.4</TD></TR>
+      <TR><TD>E35</TD><TD>379.4</TD><TD>461.3</TD></TR>
+      <TR><TD>E36</TD><TD>461.3</TD><TD>549.0</TD></TR>
+      <TR><TD>E37</TD><TD>549.0</TD><TD>695.4</TD></TR>
+      <TR><TD>E38</TD><TD>695.4</TD><TD>841.8</TD></TR>
+      <TR><TD>E39</TD><TD>841.8</TD><TD>969.9</TD></TR>
+      <TR><TD>E40</TD><TD>969.9</TD><TD>1153.0</TD></TR>
+      <TR><TD>E41</TD><TD>1153.0</TD><TD>1363.0</TD></TR>
+      <TR><TD>E42</TD><TD>1363.0</TD><TD>1647.0</TD></TR>
+      <TR><TD>E43</TD><TD>1647.0</TD><TD>1962.0</TD></TR>
+      <TR><TD>E44</TD><TD>1962.0</TD><TD>2333.0</TD></TR>
+      <TR><TD>E45</TD><TD>2333.0</TD><TD>2743.0</TD></TR>
+      <TR><TD>E46</TD><TD>2743.0</TD><TD>3221.0</TD></TR>
+      <TR><TD>E47</TD><TD>3221.0</TD><TD>3843.0</TD></TR>
+      <TR><TD>E48</TD><TD>3843.0</TD><TD>4575.0</TD></TR>
+      <TR><TD>E49</TD><TD>4575.0</TD><TD>5472.</TD></TR>
+      <TR><TD>E50</TD><TD>5472.0</TD><TD>6533.0</TD></TR>
+      <TR><TD>E51</TD><TD>6533.0</TD><TD>7777.0</TD></TR>
+      <TR><TD>E52</TD><TD>7777.0</TD><TD>8821.0</TD></TR>
+      <TR><TD>E53</TD><TD>8821.0</TD><TD>10610.0</TD></TR>
+      <TR><TD>E54</TD><TD>10610.0</TD><TD>12810.0</TD></TR>
+      <TR><TD>E55</TD><TD>12810.0</TD><TD>15190.0</TD></TR>
+      <TR><TD>E56</TD><TD>15190.0</TD><TD>17930.0</TD></TR>
+      <TR><TD>E57</TD><TD>17930.0</TD><TD>21370.0</TD></TR>
+      <TR><TD>E58</TD><TD>21370.0</TD><TD>25250.0</TD></TR>
+      <TR><TD>E59</TD><TD>25250.0</TD><TD>29830.0</TD></TR>
+      <TR><TD>E60</TD><TD>29830.0</TD><TD>34770.0</TD></TR>
+      <TR><TD>E61</TD><TD>34770.0</TD><TD>40630.0</TD></TR>
+      <TR><TD>E62</TD><TD>40630.0</TD><TD>46670.0</TD></TR>
+      <TR><TD>E63</TD><TD>46670.0</TD><TD>52700.0</TD></TR>
+    </TABLE>
+
+  </UL>
diff --git a/help/parameters/GllPWS b/help/parameters/GllPWS
new file mode 100644
index 0000000..be3e67c
--- /dev/null
+++ b/help/parameters/GllPWS
@@ -0,0 +1,1479 @@
+ <h2> Galileo Plasma Wave Subsystem data at AMDA </h2>
+
+
+<UL>
+
+  <li> Galileo Plasma Wave Subsystem data are taken from the PDS (Planetary Data System),
+         <a href="http://ppi.pds.nasa.gov/index.jsp" TARGET=_BLANK>site</a>.
+
+  <li> Parameter plotting arguments:
+    <UL>
+      <li><b>backgrdChan</b> : substraction of background noise defined by a channel index
+      <li><b>backgrdVal</b> : substraction of background noise defined by a constant value
+      <li><b>minCount</b> : count data must be greater or egal than minCount to be plot  
+      <li><b>minCount</b> : count data must be lower or egal than maxCount to be plot
+      <li><b>channel</b> : plot a specific channel index
+    </UL>
+
+ <li>
+   <TABLE BORDER CELLPADDING=5>
+     <TR>
+       <TH align="center"> Sources </TH>
+       <TH align="center"> Datasets </TH>
+       <TH align="center"> Status </TH>
+       <TH align="center"> Last Update </TH>
+     </TR>
+     <TR>
+       <TD><a href="http://ppi.pds.nasa.gov/search/view/?f=yes&id=pds://PPI/GOMW_5001" TARGET=_BLANK>GOMW_5001</a>
+           <a href="http://ppi.pds.nasa.gov/search/view/?f=yes&id=pds://PPI/GOMW_5002" TARGET=_BLANK>GOMW_5002</a>
+           <a href="http://ppi.pds.nasa.gov/search/view/?f=yes&id=pds://PPI/GOMW_5003" TARGET=_BLANK>GOMW_5003</a>
+           <a href="http://ppi.pds.nasa.gov/search/view/?f=yes&id=pds://PPI/GOMW_5004" TARGET=_BLANK>GOMW_5004</a>
+           <a href="http://ppi.pds.nasa.gov/search/view/?f=yes&id=pds://PPI/GOMW_5005" TARGET=_BLANK>GOMW_5005</a>
+       </TD>
+       <TD> Summary_MAG, Summary_ELEC </TD>
+       <TD> Certified  </TD>
+       <TD> 2012-11-22 </TD>
+     </TR>
+     <TR>
+       <TD> <a href="http://ppi.pds.nasa.gov/search/view/?f=yes&id=pds://PPI/GOMW_5001" TARGET=_BLANK>GOMW_5001</a> 
+            <a href="http://ppi.pds.nasa.gov/search/view/?f=yes&id=pds://PPI/GOMW_5002" TARGET=_BLANK>GOMW_5002</a>
+            <a href="http://ppi.pds.nasa.gov/search/view/?f=yes&id=pds://PPI/GOMW_5003" TARGET=_BLANK>GOMW_5003</a>
+            <a href="http://ppi.pds.nasa.gov/search/view/?f=yes&id=pds://PPI/GOMW_5004" TARGET=_BLANK>GOMW_5004</a>
+            <a href="http://ppi.pds.nasa.gov/search/view/?f=yes&id=pds://PPI/GOMW_5005" TARGET=_BLANK>GOMW_5005</a>
+        </TD>
+        <TD> HighRes_MAG, HighRes_ELEC </TD>
+        <TD> Certified  </TD>
+        <TD> 2012-11-22 </TD>
+      </TR>
+    </TABLE>
+  
+  <li> 
+    <TABLE BORDER CELLPADDING=5>
+    <CAPTION ALIGN="bottom"><b>Frequency bands for Summary datasets</b></CAPTION>
+      <TR><TD></TD><TD COLSPAN=2 align="center">Mag frequency bands</TD><TD COLSPAN=2 align="center">Elec frequency bands</TD></TR>
+      <TR>
+        <TH align="center"> Band </TH>
+        <TH align="center"> Min Freq (Hz) </TH>
+        <TH align="center"> Max Freq (Hz) </TH>
+        <TH align="center"> Min Freq (Hz) </TH>
+        <TH align="center"> Max Freq (Hz) </TH>
+      </TR>
+      <TR>
+      <TD>1</TD>
+      <TD>4.869675</TD>
+      <TD>6.493816</TD>
+      <TD>4.869675</TD>
+      <TD>6.493816</TD>
+      </TR>
+      <TR>
+      <TD>2</TD>
+      <TD>6.493816</TD>
+      <TD>8.659643</TD>
+      <TD>6.493816</TD>
+      <TD>8.659643</TD>
+      </TR>
+      <TR>
+      <TD>3</TD>
+      <TD>8.659643</TD>
+      <TD>11.547820</TD>
+      <TD>8.659643</TD>
+      <TD>11.547820</TD>
+      </TR>
+      <TR>
+      <TD>4</TD>
+      <TD>11.547820</TD>
+      <TD>15.399265</TD>
+      <TD>11.547820</TD>
+      <TD>15.399265</TD>
+      </TR>
+      <TR>
+      <TD>5</TD>
+      <TD>15.399265</TD>
+      <TD>20.535250</TD>
+      <TD>15.399265</TD>
+      <TD>20.535250</TD>
+      </TR>
+      <TR>
+      <TD>6</TD>
+      <TD>20.535250</TD>
+      <TD>27.384196</TD>
+      <TD>20.535250</TD>
+      <TD>27.384196</TD>
+      </TR>
+      <TR>
+      <TD>7</TD>
+      <TD>27.384196</TD>
+      <TD>36.517413</TD>
+      <TD>27.384196</TD>
+      <TD>36.517413</TD>
+      </TR>
+      <TR>
+      <TD>8</TD>
+      <TD>36.517413</TD>
+      <TD>48.696753</TD>
+      <TD>36.517413</TD>
+      <TD>48.696753</TD>
+      </TR>
+      <TR>
+      <TD>9</TD>
+      <TD>48.696753</TD>
+      <TD>64.938163</TD>
+      <TD>48.696753</TD>
+      <TD>64.938163</TD>
+      </TR>
+      <TR>
+      <TD>10</TD>
+      <TD>64.938163</TD>
+      <TD>86.596432</TD>
+      <TD>64.938163</TD>
+      <TD>86.596432</TD>
+      </TR>
+      <TR>
+      <TD>11</TD>
+      <TD>86.596432</TD>
+      <TD>115.478198</TD>
+      <TD>86.596432</TD>
+      <TD>115.478198</TD>
+      </TR>
+      <TR>
+      <TD>12</TD>
+      <TD>115.478198</TD>
+      <TD>153.992653</TD>
+      <TD>115.478198</TD>
+      <TD>153.992653</TD>
+      </TR>
+      <TR>
+      <TD>13</TD>
+      <TD>153.992653</TD>
+      <TD>205.352503</TD>
+      <TD>153.992653</TD>
+      <TD>205.352503</TD>
+      </TR>
+      <TR>
+      <TD>14</TD>
+      <TD>205.352503</TD>
+      <TD>273.841963</TD>
+      <TD>205.352503</TD>
+      <TD>273.841963</TD>
+      </TR>
+      <TR>
+      <TD>15</TD>
+      <TD>273.841963</TD>
+      <TD>365.174127</TD>
+      <TD>273.841963</TD>
+      <TD>365.174127</TD>
+      </TR>
+      <TR>
+      <TD>16</TD>
+      <TD>365.174127</TD>
+      <TD>486.967525</TD>
+      <TD>365.174127</TD>
+      <TD>486.967525</TD>
+      </TR>
+      <TR>
+      <TD>17</TD>
+      <TD>486.967525</TD>
+      <TD>649.381632</TD>
+      <TD>486.967525</TD>
+      <TD>649.381632</TD>
+      </TR>
+      <TR>
+      <TD>18</TD>
+      <TD>649.381632</TD>
+      <TD>865.964323</TD>
+      <TD>649.381632</TD>
+      <TD>865.964323</TD>
+      </TR>
+      <TR>
+      <TD>19</TD>
+      <TD>865.964323</TD>
+      <TD>1154.781985</TD>
+      <TD>865.964323</TD>
+      <TD>1154.781985</TD>
+      </TR>
+      <TR>
+      <TD>20</TD>
+      <TD>1154.781985</TD>
+      <TD>1539.926526</TD>
+      <TD>1154.781985</TD>
+      <TD>1539.926526</TD>
+      </TR>
+      <TR>
+      <TD>21</TD>
+      <TD>1539.926526</TD>
+      <TD>2053.525026</TD>
+      <TD>1539.926526</TD>
+      <TD>2053.525026</TD>
+      </TR>
+      <TR>
+      <TD>22</TD>
+      <TD>2053.525026</TD>
+      <TD>2738.419634</TD>
+      <TD>2053.525026</TD>
+      <TD>2738.419634</TD>
+      </TR>
+      <TR>
+      <TD>23</TD>
+      <TD>2738.419634</TD>
+      <TD>3651.741273</TD>
+      <TD>2738.419634</TD>
+      <TD>3651.741273</TD>
+      </TR>
+      <TR>
+      <TD>24</TD>
+      <TD>3651.741273</TD>
+      <TD>4869.675252</TD>
+      <TD>3651.741273</TD>
+      <TD>4869.675252</TD>
+      </TR>
+      <TR>
+      <TD>25</TD>
+      <TD>4869.675252</TD>
+      <TD>6493.816316</TD>
+      <TD>4869.675252</TD>
+      <TD>6493.816316</TD>
+      </TR>
+      <TR>
+      <TD>26</TD>
+      <TD>6493.816316</TD>
+      <TD>8659.643234</TD>
+      <TD>6493.816316</TD>
+      <TD>8659.643234</TD>
+      </TR>
+      <TR>
+      <TD>27</TD>
+      <TD>8659.643234</TD>
+      <TD>11547.819847</TD>
+      <TD>8659.643234</TD>
+      <TD>11547.819847</TD>
+      </TR>
+      <TR>
+      <TD>28</TD>
+      <TD>11547.819847</TD>
+      <TD>15399.265261</TD>
+      <TD>11547.819847</TD>
+      <TD>15399.265261</TD>
+      </TR>
+      <TR>
+      <TD>29</TD>
+      <TD>15399.265261</TD>
+      <TD>20535.250265</TD>
+      <TD>15399.265261</TD>
+      <TD>20535.250265</TD>
+      </TR>
+      <TR>
+      <TD>30</TD>
+      <TD>20535.250265</TD>
+      <TD>27384.196343</TD>
+      <TD>20535.250265</TD>
+      <TD>27384.196343</TD>
+      </TR>
+      <TR>
+      <TD>31</TD>
+      <TD>27384.196343</TD>
+      <TD>36517.412725</TD>
+      <TD>27384.196343</TD>
+      <TD>36517.412725</TD>
+      </TR>
+      <TR>
+      <TD>32</TD>
+      <TD>36517.412725</TD>
+      <TD>48696.752517</TD>
+      <TD>36517.412725</TD>
+      <TD>48696.752517</TD>
+      </TR>
+      <TR>
+      <TD>33</TD>
+      <TD>48696.752517</TD>
+      <TD>64938.163158</TD>
+      <TD>48696.752517</TD>
+      <TD>64938.163158</TD>
+      </TR>
+      <TR>
+      <TD>34</TD>
+      <TD>64938.163158</TD>
+      <TD>86596.432336</TD>
+      <TD>64938.163158</TD>
+      <TD>86596.432336</TD>
+      </TR>
+      <TR>
+      <TD>35</TD>
+      <TD><BR></TD>
+      <TD><BR></TD>
+      <TD>86596.432336</TD>
+      <TD>115478.198469</TD>
+      </TR>
+      <TR>
+      <TD>36</TD>
+      <TD><BR></TD>
+      <TD><BR></TD>
+      <TD>115478.198469</TD>
+      <TD>153992.652606</TD>
+      </TR>
+      <TR>
+      <TD>37</TD>
+      <TD><BR></TD>
+      <TD><BR></TD>
+      <TD>153992.652606</TD>
+      <TD>205352.502646</TD>
+      </TR>
+      <TR>
+      <TD>38</TD>
+      <TD><BR></TD>
+      <TD><BR></TD>
+      <TD>205352.502646</TD>
+      <TD>273841.963426</TD>
+      </TR>
+      <TR>
+      <TD>39</TD>
+      <TD><BR></TD>
+      <TD><BR></TD>
+      <TD>273841.963426</TD>
+      <TD>365174.127255</TD>
+      </TR>
+      <TR>
+      <TD>40</TD>
+      <TD><BR></TD>
+      <TD><BR></TD>
+      <TD>365174.127255</TD>
+      <TD>486967.525166</TD>
+      </TR>
+      <TR>
+      <TD>41</TD>
+      <TD><BR></TD>
+      <TD><BR></TD>
+      <TD>486967.525166</TD>
+      <TD>649381.631576</TD>
+      </TR>
+      <TR>
+      <TD>42</TD>
+      <TD><BR></TD>
+      <TD><BR></TD>
+      <TD>649381.631576</TD>
+      <TD>865964.323360</TD>
+      </TR>
+      <TR>
+      <TD>43</TD>
+      <TD><BR></TD>
+      <TD><BR></TD>
+      <TD>865964.323360</TD>
+      <TD>1154781.984689</TD>
+      </TR>
+      <TR>
+      <TD>44</TD>
+      <TD><BR></TD>
+      <TD><BR></TD>
+      <TD>1154781.984689</TD>
+      <TD>1539926.526059</TD>
+      </TR>
+      <TR>
+      <TD>45</TD>
+      <TD><BR></TD>
+      <TD><BR></TD>
+      <TD>1539926.526059</TD>
+      <TD>2053525.026457</TD>
+      </TR>
+      <TR>
+      <TD>46</TD>
+      <TD><BR></TD>
+      <TD><BR></TD>
+      <TD>2053525.026457</TD>
+      <TD>2738419.634264</TD>
+      </TR>
+      <TR>
+      <TD>47</TD>
+      <TD><BR></TD>
+      <TD><BR></TD>
+      <TD>2738419.634264</TD>
+      <TD>3651741.272548</TD>
+      </TR>
+      <TR>
+      <TD>48</TD>
+      <TD><BR></TD>
+      <TD><BR></TD>
+      <TD>3651741.272548</TD>
+      <TD>4869675.251659</TD>
+      </TR>
+      <TR>
+      <TD>49</TD>
+      <TD><BR></TD>
+      <TD><BR></TD>
+      <TD>4869675.251659</TD>
+      <TD>6493816.315762</TD>
+      </TR>
+    </TABLE>
+  </br>
+ 
+  <li>
+    <TABLE BORDER CELLPADDING=5>
+    <CAPTION ALIGN="bottom"><b>Frequency bands for High Resolution datasets</b></CAPTION>
+      <TR><TD></TD><TD COLSPAN=2 align="center">Mag frequency bands</TD><TD COLSPAN=2 align="center">Elec frequency bands</TD></TR>
+      <TR>
+        <TH align="center"> Band </TH>
+        <TH align="center"> Min Freq (Hz) </TH>
+        <TH align="center"> Max Freq (Hz) </TH>
+        <TH align="center"> Min Freq (Hz) </TH>
+        <TH align="center"> Max Freq (Hz) </TH>
+      </TR>
+      <TR>
+      <TD>1</TD>
+      <TD>5.204000</TD>
+      <TD>7.552999</TD>
+      <TD>5.204000</TD>
+      <TD>7.552999</TD>
+      </TR>
+      <TR>
+      <TD>2</TD>
+      <TD>7.552999</TD>
+      <TD>13.677500</TD>
+      <TD>7.552999</TD>
+      <TD>13.677500</TD>
+      </TR>
+      <TR>
+      <TD>3</TD>
+      <TD>13.677500</TD>
+      <TD>23.939999</TD>
+      <TD>13.677500</TD>
+      <TD>23.939999</TD>
+      </TR>
+      <TR>
+      <TD>4</TD>
+      <TD>23.939999</TD>
+      <TD>36.732498</TD>
+      <TD>23.939999</TD>
+      <TD>36.732498</TD>
+      </TR>
+      <TR>
+      <TD>5</TD>
+      <TD>36.732498</TD>
+      <TD>43.849998</TD>
+      <TD>36.732498</TD>
+      <TD>43.849998</TD>
+      </TR>
+      <TR>
+      <TD>6</TD>
+      <TD>43.849998</TD>
+      <TD>47.299999</TD>
+      <TD>43.849998</TD>
+      <TD>47.299999</TD>
+      </TR>
+      <TR>
+      <TD>7</TD>
+      <TD>47.299999</TD>
+      <TD>50.750000</TD>
+      <TD>47.299999</TD>
+      <TD>50.750000</TD>
+      </TR>
+      <TR>
+      <TD>8</TD>
+      <TD>50.750000</TD>
+      <TD>54.250000</TD>
+      <TD>50.750000</TD>
+      <TD>54.250000</TD>
+      </TR>
+      <TR>
+      <TD>9</TD>
+      <TD>54.250000</TD>
+      <TD>57.799999</TD>
+      <TD>54.250000</TD>
+      <TD>57.799999</TD>
+      </TR>
+      <TR>
+      <TD>10</TD>
+      <TD>57.799999</TD>
+      <TD>63.150002</TD>
+      <TD>57.799999</TD>
+      <TD>63.150002</TD>
+      </TR>
+      <TR>
+      <TD>11</TD>
+      <TD>63.150002</TD>
+      <TD>68.550003</TD>
+      <TD>63.150002</TD>
+      <TD>68.550003</TD>
+      </TR>
+      <TR>
+      <TD>12</TD>
+      <TD>68.550003</TD>
+      <TD>74.050003</TD>
+      <TD>68.550003</TD>
+      <TD>74.050003</TD>
+      </TR>
+      <TR>
+      <TD>13</TD>
+      <TD>74.050003</TD>
+      <TD>79.599998</TD>
+      <TD>74.050003</TD>
+      <TD>79.599998</TD>
+      </TR>
+      <TR>
+      <TD>14</TD>
+      <TD>79.599998</TD>
+      <TD>85.250000</TD>
+      <TD>79.599998</TD>
+      <TD>85.250000</TD>
+      </TR>
+      <TR>
+      <TD>15</TD>
+      <TD>85.250000</TD>
+      <TD>92.849998</TD>
+      <TD>85.250000</TD>
+      <TD>92.849998</TD>
+      </TR>
+      <TR>
+      <TD>16</TD>
+      <TD>92.849998</TD>
+      <TD>100.599998</TD>
+      <TD>92.849998</TD>
+      <TD>100.599998</TD>
+      </TR>
+      <TR>
+      <TD>17</TD>
+      <TD>100.599998</TD>
+      <TD>108.500000</TD>
+      <TD>100.599998</TD>
+      <TD>108.500000</TD>
+      </TR>
+      <TR>
+      <TD>18</TD>
+      <TD>108.500000</TD>
+      <TD>116.550003</TD>
+      <TD>108.500000</TD>
+      <TD>116.550003</TD>
+      </TR>
+      <TR>
+      <TD>19</TD>
+      <TD>116.550003</TD>
+      <TD>124.750000</TD>
+      <TD>116.550003</TD>
+      <TD>124.750000</TD>
+      </TR>
+      <TR>
+      <TD>20</TD>
+      <TD>124.750000</TD>
+      <TD>133.100006</TD>
+      <TD>124.750000</TD>
+      <TD>133.100006</TD>
+      </TR>
+      <TR>
+      <TD>21</TD>
+      <TD>133.100006</TD>
+      <TD>143.750000</TD>
+      <TD>133.100006</TD>
+      <TD>143.750000</TD>
+      </TR>
+      <TR>
+      <TD>22</TD>
+      <TD>143.750000</TD>
+      <TD>154.549988</TD>
+      <TD>143.750000</TD>
+      <TD>154.549988</TD>
+      </TR>
+      <TR>
+      <TD>23</TD>
+      <TD>154.549988</TD>
+      <TD>165.699997</TD>
+      <TD>154.549988</TD>
+      <TD>165.699997</TD>
+      </TR>
+      <TR>
+      <TD>24</TD>
+      <TD>165.699997</TD>
+      <TD>179.449997</TD>
+      <TD>165.699997</TD>
+      <TD>179.449997</TD>
+      </TR>
+      <TR>
+      <TD>25</TD>
+      <TD>179.449997</TD>
+      <TD>193.549988</TD>
+      <TD>179.449997</TD>
+      <TD>193.549988</TD>
+      </TR>
+      <TR>
+      <TD>26</TD>
+      <TD>193.549988</TD>
+      <TD>208.100006</TD>
+      <TD>193.549988</TD>
+      <TD>208.100006</TD>
+      </TR>
+      <TR>
+      <TD>27</TD>
+      <TD>208.100006</TD>
+      <TD>225.699997</TD>
+      <TD>208.100006</TD>
+      <TD>225.699997</TD>
+      </TR>
+      <TR>
+      <TD>28</TD>
+      <TD>225.699997</TD>
+      <TD>243.799988</TD>
+      <TD>225.699997</TD>
+      <TD>243.799988</TD>
+      </TR>
+      <TR>
+      <TD>29</TD>
+      <TD>243.799988</TD>
+      <TD>259.850006</TD>
+      <TD>243.799988</TD>
+      <TD>259.850006</TD>
+      </TR>
+      <TR>
+      <TD>30</TD>
+      <TD>259.850006</TD>
+      <TD>279.299988</TD>
+      <TD>259.850006</TD>
+      <TD>279.299988</TD>
+      </TR>
+      <TR>
+      <TD>31</TD>
+      <TD>279.299988</TD>
+      <TD>302.350006</TD>
+      <TD>279.299988</TD>
+      <TD>302.350006</TD>
+      </TR>
+      <TR>
+      <TD>32</TD>
+      <TD>302.350006</TD>
+      <TD>324.924988</TD>
+      <TD>302.350006</TD>
+      <TD>324.924988</TD>
+      </TR>
+      <TR>
+      <TD>33</TD>
+      <TD>324.924988</TD>
+      <TD>350.500000</TD>
+      <TD>324.924988</TD>
+      <TD>350.500000</TD>
+      </TR>
+      <TR>
+      <TD>34</TD>
+      <TD>350.500000</TD>
+      <TD>378.000000</TD>
+      <TD>350.500000</TD>
+      <TD>378.000000</TD>
+      </TR>
+      <TR>
+      <TD>35</TD>
+      <TD>378.000000</TD>
+      <TD>406.000000</TD>
+      <TD>378.000000</TD>
+      <TD>406.000000</TD>
+      </TR>
+      <TR>
+      <TD>36</TD>
+      <TD>406.000000</TD>
+      <TD>434.000000</TD>
+      <TD>406.000000</TD>
+      <TD>434.000000</TD>
+      </TR>
+      <TR>
+      <TD>37</TD>
+      <TD>434.000000</TD>
+      <TD>462.000000</TD>
+      <TD>434.000000</TD>
+      <TD>462.000000</TD>
+      </TR>
+      <TR>
+      <TD>38</TD>
+      <TD>462.000000</TD>
+      <TD>505.000000</TD>
+      <TD>462.000000</TD>
+      <TD>505.000000</TD>
+      </TR>
+      <TR>
+      <TD>39</TD>
+      <TD>505.000000</TD>
+      <TD>548.500000</TD>
+      <TD>505.000000</TD>
+      <TD>548.500000</TD>
+      </TR>
+      <TR>
+      <TD>40</TD>
+      <TD>548.500000</TD>
+      <TD>592.500000</TD>
+      <TD>548.500000</TD>
+      <TD>592.500000</TD>
+      </TR>
+      <TR>
+      <TD>41</TD>
+      <TD>592.500000</TD>
+      <TD>637.000000</TD>
+      <TD>592.500000</TD>
+      <TD>637.000000</TD>
+      </TR>
+      <TR>
+      <TD>42</TD>
+      <TD>637.000000</TD>
+      <TD>682.000000</TD>
+      <TD>637.000000</TD>
+      <TD>682.000000</TD>
+      </TR>
+      <TR>
+      <TD>43</TD>
+      <TD>682.000000</TD>
+      <TD>743.000000</TD>
+      <TD>682.000000</TD>
+      <TD>743.000000</TD>
+      </TR>
+      <TR>
+      <TD>44</TD>
+      <TD>743.000000</TD>
+      <TD>805.000000</TD>
+      <TD>743.000000</TD>
+      <TD>805.000000</TD>
+      </TR>
+      <TR>
+      <TD>45</TD>
+      <TD>805.000000</TD>
+      <TD>868.000000</TD>
+      <TD>805.000000</TD>
+      <TD>868.000000</TD>
+      </TR>
+      <TR>
+      <TD>46</TD>
+      <TD>868.000000</TD>
+      <TD>932.500000</TD>
+      <TD>868.000000</TD>
+      <TD>932.500000</TD>
+      </TR>
+      <TR>
+      <TD>47</TD>
+      <TD>932.500000</TD>
+      <TD>998.000000</TD>
+      <TD>932.500000</TD>
+      <TD>998.000000</TD>
+      </TR>
+      <TR>
+      <TD>48</TD>
+      <TD>998.000000</TD>
+      <TD>1064.500000</TD>
+      <TD>998.000000</TD>
+      <TD>1064.500000</TD>
+      </TR>
+      <TR>
+      <TD>49</TD>
+      <TD>1064.500000</TD>
+      <TD>1149.500000</TD>
+      <TD>1064.500000</TD>
+      <TD>1149.500000</TD>
+      </TR>
+      <TR>
+      <TD>50</TD>
+      <TD>1149.500000</TD>
+      <TD>1236.500000</TD>
+      <TD>1149.500000</TD>
+      <TD>1236.500000</TD>
+      </TR>
+      <TR>
+      <TD>51</TD>
+      <TD>1236.500000</TD>
+      <TD>1326.000000</TD>
+      <TD>1236.500000</TD>
+      <TD>1326.000000</TD>
+      </TR>
+      <TR>
+      <TD>52</TD>
+      <TD>1326.000000</TD>
+      <TD>1435.500000</TD>
+      <TD>1326.000000</TD>
+      <TD>1435.500000</TD>
+      </TR>
+      <TR>
+      <TD>53</TD>
+      <TD>1435.500000</TD>
+      <TD>1548.500000</TD>
+      <TD>1435.500000</TD>
+      <TD>1548.500000</TD>
+      </TR>
+      <TR>
+      <TD>54</TD>
+      <TD>1548.500000</TD>
+      <TD>1665.000000</TD>
+      <TD>1548.500000</TD>
+      <TD>1665.000000</TD>
+      </TR>
+      <TR>
+      <TD>55</TD>
+      <TD>1665.000000</TD>
+      <TD>1805.500000</TD>
+      <TD>1665.000000</TD>
+      <TD>1805.500000</TD>
+      </TR>
+      <TR>
+      <TD>56</TD>
+      <TD>1805.500000</TD>
+      <TD>1950.000000</TD>
+      <TD>1805.500000</TD>
+      <TD>1950.000000</TD>
+      </TR>
+      <TR>
+      <TD>57</TD>
+      <TD>1950.000000</TD>
+      <TD>2078.500000</TD>
+      <TD>1950.000000</TD>
+      <TD>2078.500000</TD>
+      </TR>
+      <TR>
+      <TD>58</TD>
+      <TD>2078.500000</TD>
+      <TD>2234.500000</TD>
+      <TD>2078.500000</TD>
+      <TD>2234.500000</TD>
+      </TR>
+      <TR>
+      <TD>59</TD>
+      <TD>2234.500000</TD>
+      <TD>2419.000000</TD>
+      <TD>2234.500000</TD>
+      <TD>2419.000000</TD>
+      </TR>
+      <TR>
+      <TD>60</TD>
+      <TD>2419.000000</TD>
+      <TD>2578.189941</TD>
+      <TD>2419.000000</TD>
+      <TD>2578.189941</TD>
+      </TR>
+      <TR>
+      <TD>61</TD>
+      <TD>2578.189941</TD>
+      <TD>2805.000000</TD>
+      <TD>2578.189941</TD>
+      <TD>2805.000000</TD>
+      </TR>
+      <TR>
+      <TD>62</TD>
+      <TD>2805.000000</TD>
+      <TD>3025.000000</TD>
+      <TD>2805.000000</TD>
+      <TD>3025.000000</TD>
+      </TR>
+      <TR>
+      <TD>63</TD>
+      <TD>3025.000000</TD>
+      <TD>3250.000000</TD>
+      <TD>3025.000000</TD>
+      <TD>3250.000000</TD>
+      </TR>
+      <TR>
+      <TD>64</TD>
+      <TD>3250.000000</TD>
+      <TD>3470.000000</TD>
+      <TD>3250.000000</TD>
+      <TD>3470.000000</TD>
+      </TR>
+      <TR>
+      <TD>65</TD>
+      <TD>3470.000000</TD>
+      <TD>3695.000000</TD>
+      <TD>3470.000000</TD>
+      <TD>3695.000000</TD>
+      </TR>
+      <TR>
+      <TD>66</TD>
+      <TD>3695.000000</TD>
+      <TD>4040.000000</TD>
+      <TD>3695.000000</TD>
+      <TD>4040.000000</TD>
+      </TR>
+      <TR>
+      <TD>67</TD>
+      <TD>4040.000000</TD>
+      <TD>4385.000000</TD>
+      <TD>4040.000000</TD>
+      <TD>4385.000000</TD>
+      </TR>
+      <TR>
+      <TD>68</TD>
+      <TD>4385.000000</TD>
+      <TD>4740.000000</TD>
+      <TD>4385.000000</TD>
+      <TD>4740.000000</TD>
+      </TR>
+      <TR>
+      <TD>69</TD>
+      <TD>4740.000000</TD>
+      <TD>5095.000000</TD>
+      <TD>4740.000000</TD>
+      <TD>5095.000000</TD>
+      </TR>
+      <TR>
+      <TD>70</TD>
+      <TD>5095.000000</TD>
+      <TD>5455.000000</TD>
+      <TD>5095.000000</TD>
+      <TD>5455.000000</TD>
+      </TR>
+      <TR>
+      <TD>71</TD>
+      <TD>5455.000000</TD>
+      <TD>5945.000000</TD>
+      <TD>5455.000000</TD>
+      <TD>5945.000000</TD>
+      </TR>
+      <TR>
+      <TD>72</TD>
+      <TD>5945.000000</TD>
+      <TD>6440.000000</TD>
+      <TD>5945.000000</TD>
+      <TD>6440.000000</TD>
+      </TR>
+      <TR>
+      <TD>73</TD>
+      <TD>6440.000000</TD>
+      <TD>6945.000000</TD>
+      <TD>6440.000000</TD>
+      <TD>6945.000000</TD>
+      </TR>
+      <TR>
+      <TD>74</TD>
+      <TD>6945.000000</TD>
+      <TD>7460.000000</TD>
+      <TD>6945.000000</TD>
+      <TD>7460.000000</TD>
+      </TR>
+      <TR>
+      <TD>75</TD>
+      <TD>7460.000000</TD>
+      <TD>7985.000000</TD>
+      <TD>7460.000000</TD>
+      <TD>7985.000000</TD>
+      </TR>
+      <TR>
+      <TD>76</TD>
+      <TD>7985.000000</TD>
+      <TD>8515.000000</TD>
+      <TD>7985.000000</TD>
+      <TD>8515.000000</TD>
+      </TR>
+      <TR>
+      <TD>77</TD>
+      <TD>8515.000000</TD>
+      <TD>9195.000000</TD>
+      <TD>8515.000000</TD>
+      <TD>9195.000000</TD>
+      </TR>
+      <TR>
+      <TD>78</TD>
+      <TD>9195.000000</TD>
+      <TD>9890.000000</TD>
+      <TD>9195.000000</TD>
+      <TD>9890.000000</TD>
+      </TR>
+      <TR>
+      <TD>79</TD>
+      <TD>9890.000000</TD>
+      <TD>10605.000000</TD>
+      <TD>9890.000000</TD>
+      <TD>10605.000000</TD>
+      </TR>
+      <TR>
+      <TD>80</TD>
+      <TD>10605.000000</TD>
+      <TD>11485.000000</TD>
+      <TD>10605.000000</TD>
+      <TD>11485.000000</TD>
+      </TR>
+      <TR>
+      <TD>81</TD>
+      <TD>11485.000000</TD>
+      <TD>12390.000000</TD>
+      <TD>11485.000000</TD>
+      <TD>12390.000000</TD>
+      </TR>
+      <TR>
+      <TD>82</TD>
+      <TD>12390.000000</TD>
+      <TD>13320.000000</TD>
+      <TD>12390.000000</TD>
+      <TD>13320.000000</TD>
+      </TR>
+      <TR>
+      <TD>83</TD>
+      <TD>13320.000000</TD>
+      <TD>14440.000000</TD>
+      <TD>13320.000000</TD>
+      <TD>14440.000000</TD>
+      </TR>
+      <TR>
+      <TD>84</TD>
+      <TD>14440.000000</TD>
+      <TD>15600.000000</TD>
+      <TD>14440.000000</TD>
+      <TD>15600.000000</TD>
+      </TR>
+      <TR>
+      <TD>85</TD>
+      <TD>15600.000000</TD>
+      <TD>16630.000000</TD>
+      <TD>15600.000000</TD>
+      <TD>16630.000000</TD>
+      </TR>
+      <TR>
+      <TD>86</TD>
+      <TD>16630.000000</TD>
+      <TD>17870.000000</TD>
+      <TD>16630.000000</TD>
+      <TD>17870.000000</TD>
+      </TR>
+      <TR>
+      <TD>87</TD>
+      <TD>17870.000000</TD>
+      <TD>19345.000000</TD>
+      <TD>17870.000000</TD>
+      <TD>19345.000000</TD>
+      </TR>
+      <TR>
+      <TD>88</TD>
+      <TD>19345.000000</TD>
+      <TD>20500.000000</TD>
+      <TD>19345.000000</TD>
+      <TD>20500.000000</TD>
+      </TR>
+      <TR>
+      <TD>89</TD>
+      <TD>20500.000000</TD>
+      <TD>22450.000000</TD>
+      <TD>20500.000000</TD>
+      <TD>22450.000000</TD>
+      </TR>
+      <TR>
+      <TD>90</TD>
+      <TD>22450.000000</TD>
+      <TD>24200.000000</TD>
+      <TD>22450.000000</TD>
+      <TD>24200.000000</TD>
+      </TR>
+      <TR>
+      <TD>91</TD>
+      <TD>24200.000000</TD>
+      <TD>26000.000000</TD>
+      <TD>24200.000000</TD>
+      <TD>26000.000000</TD>
+      </TR>
+      <TR>
+      <TD>92</TD>
+      <TD>26000.000000</TD>
+      <TD>27800.000000</TD>
+      <TD>26000.000000</TD>
+      <TD>27800.000000</TD>
+      </TR>
+      <TR>
+      <TD>93</TD>
+      <TD>27800.000000</TD>
+      <TD>29600.000000</TD>
+      <TD>27800.000000</TD>
+      <TD>29600.000000</TD>
+      </TR>
+      <TR>
+      <TD>94</TD>
+      <TD>29600.000000</TD>
+      <TD>32350.000000</TD>
+      <TD>29600.000000</TD>
+      <TD>32350.000000</TD>
+      </TR>
+      <TR>
+      <TD>95</TD>
+      <TD>32350.000000</TD>
+      <TD>35100.000000</TD>
+      <TD>32350.000000</TD>
+      <TD>35100.000000</TD>
+      </TR>
+      <TR>
+      <TD>96</TD>
+      <TD>35100.000000</TD>
+      <TD>37900.000000</TD>
+      <TD>35100.000000</TD>
+      <TD>37900.000000</TD>
+      </TR>
+      <TR>
+      <TD>97</TD>
+      <TD>37900.000000</TD>
+      <TD>40750.000000</TD>
+      <TD>37900.000000</TD>
+      <TD>40750.000000</TD>
+      </TR>
+      <TR>
+      <TD>98</TD>
+      <TD>40750.000000</TD>
+      <TD>43650.000000</TD>
+      <TD>40750.000000</TD>
+      <TD>43650.000000</TD>
+      </TR>
+      <TR>
+      <TD>99</TD>
+      <TD>43650.000000</TD>
+      <TD>47550.000000</TD>
+      <TD>43650.000000</TD>
+      <TD>47550.000000</TD>
+      </TR>
+      <TR>
+      <TD>100</TD>
+      <TD>47550.000000</TD>
+      <TD>51500.000000</TD>
+      <TD>47550.000000</TD>
+      <TD>51500.000000</TD>
+      </TR>
+      <TR>
+      <TD>101</TD>
+      <TD>51500.000000</TD>
+      <TD>55550.000000</TD>
+      <TD>51500.000000</TD>
+      <TD>55550.000000</TD>
+      </TR>
+      <TR>
+      <TD>102</TD>
+      <TD>55550.000000</TD>
+      <TD>59650.000000</TD>
+      <TD>55550.000000</TD>
+      <TD>59650.000000</TD>
+      </TR>
+      <TR>
+      <TD>103</TD>
+      <TD>59650.000000</TD>
+      <TD>63850.000000</TD>
+      <TD>59650.000000</TD>
+      <TD>63850.000000</TD>
+      </TR>
+      <TR>
+      <TD>104</TD>
+      <TD>63850.000000</TD>
+      <TD>68150.000000</TD>
+      <TD>63850.000000</TD>
+      <TD>68150.000000</TD>
+      </TR>
+      <TR>
+      <TD>105</TD>
+      <TD>68150.000000</TD>
+      <TD>73600.000000</TD>
+      <TD>68150.000000</TD>
+      <TD>73600.000000</TD>
+      </TR>
+      <TR>
+      <TD>106</TD>
+      <TD>73600.000000</TD>
+      <TD>79150.000000</TD>
+      <TD>73600.000000</TD>
+      <TD>79150.000000</TD>
+      </TR>
+      <TR>
+      <TD>107</TD>
+      <TD>79150.000000</TD>
+      <TD>84850.000000</TD>
+      <TD>79150.000000</TD>
+      <TD>84850.000000</TD>
+      </TR>
+      <TR>
+      <TD>108</TD>
+      <TD>84850.000000</TD>
+      <TD>91850.000000</TD>
+      <TD>84850.000000</TD>
+      <TD>91850.000000</TD>
+      </TR>
+      <TR>
+      <TD>109</TD>
+      <TD>91850.000000</TD>
+      <TD>98145.000000</TD>
+      <TD>91850.000000</TD>
+      <TD>98145.000000</TD>
+      </TR>
+      <TR>
+      <TD>110</TD>
+      <TD><BR></TD>
+      <TD><BR></TD>
+      <TD>98145.000000</TD>
+      <TD>107100.000000</TD>
+      </TR>
+      <TR>
+      <TD>111</TD>
+      <TD><BR></TD>
+      <TD><BR></TD>
+      <TD>107100.000000</TD>
+      <TD>119700.000000</TD>
+      </TR>
+      <TR>
+      <TD>112</TD>
+      <TD><BR></TD>
+      <TD><BR></TD>
+      <TD>119700.000000</TD>
+      <TD>132300.000000</TD>
+      </TR>
+      <TR>
+      <TD>113</TD>
+      <TD><BR></TD>
+      <TD><BR></TD>
+      <TD>132300.000000</TD>
+      <TD>144900.000000</TD>
+      </TR>
+      <TR>
+      <TD>114</TD>
+      <TD><BR></TD>
+      <TD><BR></TD>
+      <TD>144900.000000</TD>
+      <TD>157500.000000</TD>
+      </TR>
+      <TR>
+      <TD>115</TD>
+      <TD><BR></TD>
+      <TD><BR></TD>
+      <TD>157500.000000</TD>
+      <TD>170100.000000</TD>
+      </TR>
+      <TR>
+      <TD>116</TD>
+      <TD><BR></TD>
+      <TD><BR></TD>
+      <TD>170100.000000</TD>
+      <TD>189000.000000</TD>
+      </TR>
+      <TR>
+      <TD>117</TD>
+      <TD><BR></TD>
+      <TD><BR></TD>
+      <TD>189000.000000</TD>
+      <TD>214200.000000</TD>
+      </TR>
+      <TR>
+      <TD>118</TD>
+      <TD><BR></TD>
+      <TD><BR></TD>
+      <TD>214200.000000</TD>
+      <TD>239400.000000</TD>
+      </TR>
+      <TR>
+      <TD>119</TD>
+      <TD><BR></TD>
+      <TD><BR></TD>
+      <TD>239400.000000</TD>
+      <TD>264600.000000</TD>
+      </TR>
+      <TR>
+      <TD>120</TD>
+      <TD><BR></TD>
+      <TD><BR></TD>
+      <TD>264600.000000</TD>
+      <TD>289800.000000</TD>
+      </TR>
+      <TR>
+      <TD>121</TD>
+      <TD><BR></TD>
+      <TD><BR></TD>
+      <TD>289800.000000</TD>
+      <TD>315000.000000</TD>
+      </TR>
+      <TR>
+      <TD>122</TD>
+      <TD><BR></TD>
+      <TD><BR></TD>
+      <TD>315000.000000</TD>
+      <TD>340200.000000</TD>
+      </TR>
+      <TR>
+      <TD>123</TD>
+      <TD><BR></TD>
+      <TD><BR></TD>
+      <TD>340200.000000</TD>
+      <TD>378000.000000</TD>
+      </TR>
+      <TR>
+      <TD>124</TD>
+      <TD><BR></TD>
+      <TD><BR></TD>
+      <TD>378000.000000</TD>
+      <TD>428400.000000</TD>
+      </TR>
+      <TR>
+      <TD>125</TD>
+      <TD><BR></TD>
+      <TD><BR></TD>
+      <TD>428400.000000</TD>
+      <TD>478800.000000</TD>
+      </TR>
+      <TR>
+      <TD>126</TD>
+      <TD><BR></TD>
+      <TD><BR></TD>
+      <TD>478800.000000</TD>
+      <TD>529200.000000</TD>
+      </TR>
+      <TR>
+      <TD>127</TD>
+      <TD><BR></TD>
+      <TD><BR></TD>
+      <TD>529200.000000</TD>
+      <TD>579600.000000</TD>
+      </TR>
+      <TR>
+      <TD>128</TD>
+      <TD><BR></TD>
+      <TD><BR></TD>
+      <TD>579600.000000</TD>
+      <TD>630000.000000</TD>
+      </TR>
+      <TR>
+      <TD>129</TD>
+      <TD><BR></TD>
+      <TD><BR></TD>
+      <TD>630000.000000</TD>
+      <TD>680400.000000</TD>
+      </TR>
+      <TR>
+      <TD>130</TD>
+      <TD><BR></TD>
+      <TD><BR></TD>
+      <TD>680400.000000</TD>
+      <TD>755800.000000</TD>
+      </TR>
+      <TR>
+      <TD>131</TD>
+      <TD><BR></TD>
+      <TD><BR></TD>
+      <TD>755800.000000</TD>
+      <TD>856500.000000</TD>
+      </TR>
+      <TR>
+      <TD>132</TD>
+      <TD><BR></TD>
+      <TD><BR></TD>
+      <TD>856500.000000</TD>
+      <TD>957500.000000</TD>
+      </TR>
+      <TR>
+      <TD>133</TD>
+      <TD><BR></TD>
+      <TD><BR></TD>
+      <TD>957500.000000</TD>
+      <TD>1058500.000000</TD>
+      </TR>
+      <TR>
+      <TD>134</TD>
+      <TD><BR></TD>
+      <TD><BR></TD>
+      <TD>1058500.000000</TD>
+      <TD>1159500.000000</TD>
+      </TR>
+      <TR>
+      <TD>135</TD>
+      <TD><BR></TD>
+      <TD><BR></TD>
+      <TD>1159500.000000</TD>
+      <TD>1260000.000000</TD>
+      </TR>
+      <TR>
+      <TD>136</TD>
+      <TD><BR></TD>
+      <TD><BR></TD>
+      <TD>1260000.000000</TD>
+      <TD>1360500.000000</TD>
+      </TR>
+      <TR>
+      <TD>137</TD>
+      <TD><BR></TD>
+      <TD><BR></TD>
+      <TD>1360500.000000</TD>
+      <TD>1512000.000000</TD>
+      </TR>
+      <TR>
+      <TD>138</TD>
+      <TD><BR></TD>
+      <TD><BR></TD>
+      <TD>1512000.000000</TD>
+      <TD>1713500.000000</TD>
+      </TR>
+      <TR>
+      <TD>139</TD>
+      <TD><BR></TD>
+      <TD><BR></TD>
+      <TD>1713500.000000</TD>
+      <TD>1915000.000000</TD>
+      </TR>
+      <TR>
+      <TD>140</TD>
+      <TD><BR></TD>
+      <TD><BR></TD>
+      <TD>1915000.000000</TD>
+      <TD>2117000.000000</TD>
+      </TR>
+      <TR>
+      <TD>141</TD>
+      <TD><BR></TD>
+      <TD><BR></TD>
+      <TD>2117000.000000</TD>
+      <TD>2318500.000000</TD>
+      </TR>
+      <TR>
+      <TD>142</TD>
+      <TD><BR></TD>
+      <TD><BR></TD>
+      <TD>2318500.000000</TD>
+      <TD>2520000.000000</TD>
+      </TR>
+      <TR>
+      <TD>143</TD>
+      <TD><BR></TD>
+      <TD><BR></TD>
+      <TD>2520000.000000</TD>
+      <TD>2721500.000000</TD>
+      </TR>
+      <TR>
+      <TD>144</TD>
+      <TD><BR></TD>
+      <TD><BR></TD>
+      <TD>2721500.000000</TD>
+      <TD>3024000.000000</TD>
+      </TR>
+      <TR>
+      <TD>145</TD>
+      <TD><BR></TD>
+      <TD><BR></TD>
+      <TD>3024000.000000</TD>
+      <TD>3427500.000000</TD>
+      </TR>
+      <TR>
+      <TD>146</TD>
+      <TD><BR></TD>
+      <TD><BR></TD>
+      <TD>3427500.000000</TD>
+      <TD>3830500.000000</TD>
+      </TR>
+      <TR>
+      <TD>147</TD>
+      <TD><BR></TD>
+      <TD><BR></TD>
+      <TD>3830500.000000</TD>
+      <TD>4233500.000000</TD>
+      </TR>
+      <TR>
+      <TD>148</TD>
+      <TD><BR></TD>
+      <TD><BR></TD>
+      <TD>4233500.000000</TD>
+      <TD>4636500.000000</TD>
+      </TR>
+      <TR>
+      <TD>149</TD>
+      <TD><BR></TD>
+      <TD><BR></TD>
+      <TD>4636500.000000</TD>
+      <TD>5040000.000000</TD>
+      </TR>
+      <TR>
+      <TD>150</TD>
+      <TD><BR></TD>
+      <TD><BR></TD>
+      <TD>5040000.000000</TD>
+      <TD>5443500.000000</TD>
+      </TR>
+      <TR>
+      <TD>151</TD>
+      <TD><BR></TD>
+      <TD><BR></TD>
+      <TD>5443500.000000</TD>
+      <TD>5645670.000000</TD>
+      </TR>
+      </TABLE>
+    </br>
+
+ 
+  </UL>
diff --git a/help/parameters/IceMag b/help/parameters/IceMag
new file mode 100644
index 0000000..56002fe
--- /dev/null
+++ b/help/parameters/IceMag
@@ -0,0 +1,34 @@
+
+<h2>ICE Magnetometer (MAG) data at AMDA </h2>
+
+Source: <a href="http://pdssbn.astro.umd.edu/data_sb/missions/ice/index.shtml" TARGET=_BLANK>PDS: Small Bodies</a><br/><br/>
+<b> Principal Investigator(s): E.J.Smith; data provided by J. Wolf</b><br/> 
+The vector helium magnetometer is mounted on the                        
+      end of a 3 m boom and makes in-situ measurements of                     
+      the ambient magnetic field vector in the frequency                      
+      range 0-3 Hz.  The instrument automatically chooses                     
+      one of eight ranges in which to operate, the four                       
+      lowest full-scale ranges being +/-4, +/- 14, +/-42,                     
+      and +/- 146 nT.  The precision of measurement is                        
+      1/256 of the full-scale field values (0.016, 0.055                      
+      nT, etc.).  The absolute accuracy is limited by                         
+      knowledge of the spacecraft magnetic field, which                       
+      is presently known to better than 0.1 nT.  The time                     
+      resolution corresponds to three triaxial samples                        
+      per second at 1024 bit/s .  The magnetometer                            
+      contains a three- channel spectrum analyzer which                       
+      is connected to the search-coil sensor of the                           
+      plasma- wave investigation."         
+ <ul> 
+ <li>
+ The comet centered coordinate (CSE) system used   
+ in these measurements is a right handed coordinate system.   
+ It is defined   
+ so that the coordinate system has its origin at the comet's nucleus, with    
+ the XSE-axis from the nucleus to the sun, the YSE-axis parallel to the       
+ ecliptic plane in the direction of retrograde planetary motion.   
+ The ZSE- axis completes the coordinate system such that at the time of  's       
+ passage through the ecliptic plane it points to the ecliptic north.
+ 
+</ul>
+ 
\ No newline at end of file
diff --git a/help/parameters/IceMission b/help/parameters/IceMission
new file mode 100644
index 0000000..569b7a4
--- /dev/null
+++ b/help/parameters/IceMission
@@ -0,0 +1,20 @@
+<h2>ICE Mission</h2> 
+The <b><i>International Cometary Explorer (ICE)</i></b> spacecraft 
+(designed and launched as the <b><i>International Sun/Earth Explorer 3 (ISEE-3)</i></b> satellite),
+was launched August 12, 1978, into a heliocentric orbit. It was one of three spacecraft, 
+along with the mother/daughter pair of ISEE-1 and ISEE-2, built for the International Sun-Earth Explorer 
+(ISEE) program, a joint effort by NASA and ESRO/ESA to study the interaction between the Earth's magnetic field and the solar wind.
+<br/><br/>
+ISEE-3 was the first spacecraft to be placed in a halo 
+orbit at the L1 Earth-Sun Lagrangian point. Renamed ICE, it 
+became the first spacecraft to visit a comet, passing through the tail 
+of Comet Giacobini-Zinner within about 7,800 km  of the nucleus.
+NASA suspended routine contact with ISEE-3 in 1997, and made brief status checks in 1999 and 2008.
+<br/><br/> 
+On May 29, 2014, two-way communication with the spacecraft was reestablished by the ISEE-3 
+Reboot Project, an unofficial group[4] with support from the Skycorp company.
+On July 2, 2014, they fired the thrusters for the first time since 1987. 
+However, later firings of the thrusters failed, apparently due to a lack of nitrogen 
+pressurant in the fuel tanks.[8][9] The project team will pursue an alternative plan to use the spacecraft to "collect scientific data and send it back to Earth."
+  
+ 
diff --git a/help/parameters/MGSProxy b/help/parameters/MGSProxy
new file mode 100644
index 0000000..7daab13
--- /dev/null
+++ b/help/parameters/MGSProxy
@@ -0,0 +1,16 @@
+
+ <h2> MGS proxies data at AMDA </h2>
+
+<UL>
+
+  <li> MGS proxies data are taken from the SSL/Space Physics Research Group 
+         <a href="http://sprg.ssl.berkeley.edu/~brain/proxies.html" TARGET=_BLANK>site</a>.
+
+  <li> <b>IMF Draping Direction:</b> draping direction of the IMF, detected at 400 km altitudes on the Martian dayside by MGS MAG/ER. <a href="http://sprg.ssl.berkeley.edu/~brain/proxies/drapingdirxn.html" TARGET=_BLANK>More information</a>
+
+  <li> <b>Subsolar Magnetic Field Strength at 400 km altitudes at Mars: </b> subsolar magnetic field magnitude at 400 km altitudes above Mars, inferred from measurements on the Martian dayside by MGS MAG/ER. <a href="http://sprg.ssl.berkeley.edu/~brain/proxies/subsolfield.html" TARGET=_BLANK>More information</a>
+
+  <li> <b>Mars EUV proxy</b> proxy for the EUV flux at Mars, determined by extrapolating measurements of the F10.7 flux from Earth to Mars. <a href="http://sprg.ssl.berkeley.edu/~brain/proxies/euvproxy.html" TARGET=_BLANK>More information</a>
+
+</UL>
+
diff --git a/help/parameters/MIT b/help/parameters/MIT
new file mode 100644
index 0000000..2097877
--- /dev/null
+++ b/help/parameters/MIT
@@ -0,0 +1,111 @@
+
+<h2> IMP-8 MIT data </h2>
+<br/>
+<br/> 
+   MIT data are taken from nssdcftp.gsfc.nasa.gov//spacecraft_data/imp/imp8/plasma_mit/sw_msheath_min
+<br/><br/>
+<b> MIT Team notes: </b>
+<br/> 
+<ul>
+   <li> The parameter values: MIT 'better' parameters are under 'mit_BestFit'.
+   'mit_Raw' are parameters usually derived from taking moments of the distributions.  As can 
+   be seen easily by eye, there is some discrepancy between moments and MIT 
+   best parameters; moments are definitely less accurate.  
+ <br/>  
+   Use moment values with caution, and PLEASE request assistance or clarification. 
+   For the moment parameters, changes in value are more trustworthy than 
+   absolute values, but nothing is guaranteed to be accurate.  
+
+   A value of 9999.0 means that we couldn't calculate that parameter.  All
+   parameters are based on a convected, isotropic Maxwellian model.
+
+   We recommend that, in the absence of data other than moment values, you try 
+   to obtain the IMP 8 LANL experiment plasma values as well at
+        
+        http://nssdc.gsfc.nasa.gov/ftphelper/imp8_lanl_2m.html
+ 
+  <li>  Speeds and thermal speeds are given in km/s. Effects due to the
+   orbital motion of Earth are removed from the better parameters, but not from 
+   the moment parameters  
+
+
+ <li> Thermal speed is the most probable thermal speed (i.e., the square
+   root of [2kT/m(proton)]). To convert thermal speed to temperature in
+   eV, multiply 0.0052 by the square of the thermal speed; to convert to temperature
+   [K], multiply the square of the thermal speed by 60.5 .
+   This is probably the most inaccurate moment parameter, since moments tend to
+   underestimate the temperature in cold distributions.
+
+
+<li> The angles are in degrees.  Azimuth is E/W, meaning bulk flow from
+   the East or the West side of the Sun respectively, while flow elevation is 
+   from North or South of the s/c spin plane (almost identical to the plane of 
+   the ecliptic). For signs, positive azimuth angle means flow from the W; 
+   positive elevation angle means flow from the S.  If we don't get good angles, 
+   there won't be get any velocity components; speeds are available in some 
+   such cases.  The aberration in velocity due to Earth's motion around the Sun 
+   has been removed from the best values, but not from the moment 
+   values  
+
+   "Threshsp" values are determined from currents greater than a threshold 
+   value, below which we are not confident about the contribution of noise.
+
+   Dr. Joseph King (GSFC) has looked at 27-day averages of OMNIWeb data from 1984-1994.  
+   He finds (and we agree) that there is an offset of about +2 degrees (from the South)
+   in the N/S angle and an annual variation of that angle with an amplitude of about 1 
+   degree.  We believe that the annual variation is due to a tilt of the s/c spin axis. 
+   He found the mean flow longitude in that study to be -0.3 degrees with no obvious 
+   annual variation.
+
+
+<li> The moment values, for angles and for the speed, do NOT
+   have aberration corrections included.  This means that the total
+   speeds are slightly too low, and that the angles are not really
+   correct.  In particular, the azimuthal (E/W) angle is about 4 degrees
+   too positive; this can clearly be seen where both nonlinear and moment
+   angles are available.
+
+<li> For papers and presentations using these data, please acknowledge 
+   that you received them from the MIT Space Plasma Physics Group. Please
+   feel free to contact us if you have questions about any parameters.
+
+
+<li> Please send us a copy of papers, presentations, et cetera using
+   these data.
+
+
+<li> If you have any questions, please contact
+
+   Ms. Pamela A. Milligan  pam@space.mit.edu
+   Dr. Alan J. Lazarus     ajl@space.mit.edu
+   Dr. John Richardson     jdr@space.mit.edu            
+</ul>
+<br/>
+<br/>
+
+<b>ADDITIONAL COMMENTS</b>
+<ul>
+<li> IMP 8 spins with a period of approximately 2.7s.  The Faraday Cup (FC) 
+   instrument scans the solar wind distribution stepping through a contiguous set of 
+   energy windows, one step per spacecraft spin. The FC instrument divides the spin 
+   into thirty-two, 11.25 degree angular sectors and integrates the measured 
+   currents over different angular sectors depending upon the Mode in which the 
+   instrument is operating.  The border between two of the 11.25 degree angular 
+   sectors lies on the Sun-spacecraft line.  
+
+
+<li> The FC sensor collector plate is divided into two, semi-circular halves; the 
+   division line is parallel to the spacecraft spin plane which is approximately 
+   parallel to the ecliptic plane.  The split collector allow determination of 
+   the bulk plasma flow relative to the spin plane; North/South angles refer to 
+   flows coming from above or below the spin plane respectively (flows from the 
+   South are designated as having a positive N/S angle).  
+
+   The bulk flow angle in the spin plane is determined from the measurements of 
+   current vs. rotation angle.  The currents telemetered to the ground are the
+   sums of currents for the two half-collectors ("A" and "B"} and, for the TMS and 
+   AQM modes, also the current for the half-collector "B". 
+
+   Electrons are measured except for the eight angles near the Sun.
+</ul>
+ 
\ No newline at end of file
diff --git a/help/parameters/Messenger b/help/parameters/Messenger
new file mode 100644
index 0000000..38718a5
--- /dev/null
+++ b/help/parameters/Messenger
@@ -0,0 +1,44 @@
+
+ <h2> MESSENGER data at AMDA </h2>
+
+ 
+<UL>
+
+  <li> MESSENGER Magnetometer and Ephemeris data are taken from the PDS (Planetary Data System), 
+           <a href="http://ppi.pds.nasa.gov/index.jsp" TARGET=_BLANK>site</a>.
+
+  <li> Datasets available :
+  <UL>
+    <li> <b>Venus_Flyby</b> : 2007-06-04T00:01:37.122 to 2007-06-07T00:01:29.269
+    <li> <b>Flyby_1</b> : Mercury flyby : 2008-01-12T00:00:23.906 to 2008-01-17T00:01:42.891
+    <li> <b>Flyby_2</b> : Mercury flyby : 2008-10-04T00:00:04.409 to 2008-10-09T00:00:33.468
+    <li> <b>Flyby_3</b> : Mercury flyby : 2009-09-27T00:00:58.328 to 2009-10-02T00:01:19.789. </br>
+                          Missing data from 2009-09-29T21:48:36.728 to 2009-10-01T17:14:29.616.
+    <li> <b>Orbit</b> : Mercury orbit : 2011-03-31T00:00:08.889 to 2011-05-18T00:00:09.777
+  </UL>
+
+  <li> Coordinates : 
+  <UL>
+    <li> <b>VSO</b> : Venus solar orbital coordinates - X directed from the center of the planet toward the Sun, Z is normal to the Venus orbital plane and positive toward the north celestial pole, Y is positive in the direction opposite to orbital motion.
+    <li> <b>MSO</b> : Mercury solar orbital coordinates - In this coordinate system, the +X-axis points toward the Sun, +Z points northward perpendicular to Mercury's orbit plane, and Y completes the right hand system nominally directed opposite Mercury's orbital velocity around the Sun.
+    <li> <b>MBF</b> : Mercury body fixed coordinates - The MBF coordinate system is defined by the planetocentric position, Cartesian X, Y, Z coordinates related to the planetocentric distance, latitude measured positive northward from the equator, and longitude measured positive eastward from the prime meridian.
+    <li> <b>RTN</b> : Radial-Tangential-Normal coordinates - R point from Sun center to the spacecraft, T is formed by the cross product of the solar rotatio axis and R and lies in the solar equatorial plane, N is formed by the cross product of R and T and is the projection of the solar rotational axis on the plane of the sky.
+  </UL>
+
+  <li>
+    <TABLE BORDER CELLPADDING=5>
+      <TR>
+        <TH align="center"> Source </TH>
+        <TH align="center"> Datasets </TH>
+        <TH align="center"> Status </TH>
+        <TH align="center"> Last Update </TH>
+      </TR>
+      <TR>
+        <TD> <a href="http://ppi.pds.nasa.gov/search/view/?f=yes&id=pds://PPI/MESSMAGDATA_2001" TARGET=_BLANK>MESSMAGDATA_2001</a> </TD>
+        <TD> Venus_Flyby - Flyby_1 - Flyby_2 - Flyby_3 - Orbit</TD>
+        <TD> Certified  </TD>
+        <TD> 2011-10-27</TD>
+      </TR>
+    </TABLE>
+
+</UL>
diff --git a/help/parameters/MessengerEphemeris b/help/parameters/MessengerEphemeris
new file mode 100644
index 0000000..4c5ebcb
--- /dev/null
+++ b/help/parameters/MessengerEphemeris
@@ -0,0 +1,136 @@
+
+ <h2>Messenger Ephemeris</h2>
+ 
+<UL>
+
+  <li> MESSENGER Ephemeris data are calculated using SPICE kernels taken from the
+           <a href="http://naif.jpl.nasa.gov/pub/naif/pds/data/mess-e_v_h-spice-6-v1.0/messsp_1000/data/" TARGET=_BLANK>
+            PDS</a> (Planetary Data System).
+    <br/><br/>   
+    <li> <b>Earth Flyby</b><br/>
+     -------------<br/>
+       Earth Flyby is defined as the four week (28 day) period centered on closest approach to Earth.<br/><br/>
+       Phase Start Time : 2005-07-19 (2005-200)<br/>
+       Phase Stop Time  : 2005-08-16 (2005-228)<br/><br/> 
+     
+     <li>  <b>Venus 1 Flyby</b><br/>
+     -------------<br/>
+       Venus 1 Flyby is defined as the four week (28 day) 
+       period centered on the first of the mission's two 
+       closest approaches to Venus.<br/><br/>
+
+       Phase Start Time : 2006-10-10 (2006-283)<br/>
+       Phase Stop Time  : 2006-11-07 (2006-311)<br/><br/>
+
+   
+    <li>  <b>Venus 2 Flyby</b><br/>
+     -------------<br/>
+       Venus 2 Flyby is defined as the four week (28 day 
+       period centered on the second of the mission's two 
+       closest approaches to Venus.<br/><br/>
+
+       Phase Start Time : 2007-05-23 (2007-143)<br/>
+       Phase Stop Time  : 2007-06-20 (2007-171)<br/><br/>  
+
+ 
+   <li>  <b>Mercury 1 Flyby</b><br/>
+     -------------<br/>
+       Mercury 1 Flyby is defined as the four week (28 day) 
+       period centered on the first of the mission's three 
+       closest approaches to Mercury.<br/><br/>
+
+       Phase Start Time : 2007-12-31 (2007-365)<br/>
+       Phase Stop Time  : 2008-01-28 (2008-028)<br/><br/>
+ 
+   
+    <li>  <b>Mercury 2 Flyby</b><br/>
+     -------------<br/>
+       Mercury 2 Flyby is defined as the four week (28 day) 
+       period centered on the second of the mission's three 
+       closest approaches to Mercury.<br/><br/>
+
+       Phase Start Time : 2008-09-22 (2008-266)<br/>
+       Phase Stop Time  : 2008-10-20 (2008-294)<br/><br/>  
+
+    <li>  <b>Mercury 3 Flyby</b><br/>
+     -------------<br/>
+       Mercury 3 Flyby is defined as the four week (28 day) 
+       period centered on the third of the mission's three 
+       closest approaches to Mercury.<br/><br/>
+
+       Phase Start Time : 2009-09-16 (2009-259)<br/>
+       Phase Stop Time  : 2009-10-14 (2009-287)<br/><br/> 
+
+   <li> <b>Mercury Orbit</b><br/>
+     -------------<br/>
+       The Orbit phase begins at Mercury orbit insertion
+       and continues until the end of mission. This phase
+       begins the most intensive science portion of the mission
+       with full instrument utilization throughout the
+       period.<br/><br/>
+
+       Phase Start Time : 2011-03-04 (2011-063)<br/><br/> 
+      
+
+   <UL> <b>Coordinates :</b> <br/><br/>  
+   <li><b>GSE</b> : Geocentric Solar Ecliptic -
+         This system has its X axis towards the Sun and its Z axis
+         perpendicular to the plane of the Earth's orbit around the
+         Sun (positive North). Y completes the right-handed system.
+   <li> <b>GSM</b> : Geocentric Solar Magnetospheric -
+         This system has its X axis towards the Sun and its Z axis
+         is the projection of the Earth's magnetic dipole axis
+         (positive North) on to the plane perpendicular to the X
+         axis. Y completes the right-handed system.
+   <li> <b>VSO</b> : Venus Solar Orbital  - 
+      X directed from the center of the planet toward the Sun, 
+      Z is normal to the Venus orbital plane and positive toward the north celestial pole, 
+      Y is positive in the direction opposite to orbital motion.
+    <li> <b>MSO</b> : Mercury-centric Solar Orbital   -  
+        the +X-axis points toward the Sun, 
+        +Z points northward perpendicular to Mercury's orbit plane, and 
+        Y completes the right hand system nominally directed opposite Mercury's orbital velocity around the Sun.
+    <li> <b>MSM</b> : Mercury-centric Solar Magnetospheric - 
+
+         This system has its X axis towards the Sun and its Z axis
+         is the projection of the Mercury's magnetic dipole axis
+         (positive North) on to the plane perpendicular to the X
+         axis. Y completes the right-handed system.<br/>
+
+         For now, assume that the position of the magnetic pole is
+         coincident with the rotation axis of Mercury, i.e. 90
+         degrees latitude and 0 degrees longitude.    
+    <li><b>RTN</b> : Radial-Tangential-Normal coordinates - R point from Sun center to the spacecraft, T is formed by the cross product of the solar rotatio axis and R and lies in the solar equatorial plane, N is formed by the cross product of R and T and is the projection of the solar rotational axis on the plane of the sky.
+    <li><b>HCI</b>: Heliocentric Inertial Frame -
+         All vectors are geometric: no aberration corrections are used.
+         The solar rotation axis is the primary vector: the Z axis points
+         in the solar north direction.
+         The solar ascending node on the ecliptic of J2000 forms the X axis.
+         The Y axis is Z cross X, completing the right-handed reference frame.
+    <li><b>HEE</b> : Heliocentric Earth Ecliptic Frame -
+
+         All vectors are geometric: no aberration corrections are used.
+
+         The position of the Earth relative to the Sun is the primary vector:
+         the X axis points from the Sun to the Earth.
+
+         The northern surface normal to the mean ecliptic of date is the
+         secondary vector: the Z axis is the component of this vector
+         orthogonal to the X axis.
+
+         The Y axis is Z cross X, completing the right-handed reference frame.
+    <li><b>HEEQ</b> : Heliocentric Earth Equatorial Frame -
+
+         All vectors are geometric: no aberration corrections are used.
+
+         The solar rotation axis is the primary vector: the Z axis points
+         in the solar north direction.
+
+         The position of the Sun relative to the Earth is the secondary
+         vector: the X axis is the component of this position vector
+         orthogonal to the Z axis.
+
+         The Y axis is Z cross X, completing the right-handed reference frame.
+    </UL>
+    </UL>
+<br/><br/>
\ No newline at end of file
diff --git a/help/parameters/MessengerFips b/help/parameters/MessengerFips
new file mode 100644
index 0000000..6cda377
--- /dev/null
+++ b/help/parameters/MessengerFips
@@ -0,0 +1,6 @@
+
+ <h2>Messenger FIPS</h2>
+ 
+<UL>
+  <li> FIPS Scan CDR contains FIPS differential intensity spectra at each Deflection System High Voltage  (DSHV) step in a scan.</li>
+</UL>
diff --git a/help/parameters/MexMarsis b/help/parameters/MexMarsis
new file mode 100644
index 0000000..83e84ec
--- /dev/null
+++ b/help/parameters/MexMarsis
@@ -0,0 +1,12 @@
+
+ <h2> Mars Express MARSIS at AMDA </h2>
+<br/>
+<br/> <UL>
+
+<li> Mars Express MARSIS Level 5 Total Electron Content (TEC) derived data are taken from ESA <a href="ftp://psa.esac.esa.int/pub/mirror/MARS-EXPRESS/MARSIS/" TARGET=_BLANK>ftp site</a>.
+
+<li> More information on <a href="ftp://psa.esac.esa.int/pub/mirror/MARS-EXPRESS/MARSIS/MEX-M-MARSIS-5-DDR-SS-TEC-V1.0/DOCUMENT/IONOPROCESS_REPORT3.PDF" TARGET=_BLANK> this document</a>
+
+ </UL>
+
+
diff --git a/help/parameters/MexVexSW b/help/parameters/MexVexSW
new file mode 100644
index 0000000..57a056d
--- /dev/null
+++ b/help/parameters/MexVexSW
@@ -0,0 +1,10 @@
+ 
+<h2> Mex/Vex ASPERA IMA data: Solar Wind </h2>
+<br/>
+<br/>
+   Mex/Vex IMA protons density and velocity in SW is a subset of IMA Full Moments dataset 
+   by applying
+   an orbit restrictions.</br>
+   For the moment IMA SW parameters are accesible in Plot Module only.
+  
+   
\ No newline at end of file
diff --git a/help/parameters/MgsEr b/help/parameters/MgsEr
new file mode 100644
index 0000000..2ff0247
--- /dev/null
+++ b/help/parameters/MgsEr
@@ -0,0 +1,22 @@
+
+<h2>MGS MAG/ER</h2>
+<br/>
+<br/> 
+   <b>MGS Electron Reflectometer</b> data is obtained from
+    <a href="http://ppi.pds.nasa.gov/" TARGET=_BLANK>Planetary Plasma Interaction Node of PDS </a> FULLWORD-RES-MAG-V1.0 dataset<br/>
+      It contains electron reflectometer omni-directional flux    
+      data from 19 energy channels [11, 15, 21, 27, 36, 47, 61, 79, 116, 191, 314, 515, 844, 1380, 2255, 3689,
+      6035, 9868, 16127 eV]. The data are provided at  
+      the full instrument downlink sampling frequency which varies by
+      orbit (spacecraft telemetry mode). <br/><br/> 
+ 
+
+ 
+ 
+    
+ 
+ 
+  
+ 
+ 
+ 
\ No newline at end of file
diff --git a/help/parameters/MgsMag b/help/parameters/MgsMag
new file mode 100644
index 0000000..483c98f
--- /dev/null
+++ b/help/parameters/MgsMag
@@ -0,0 +1,28 @@
+
+<h2>MGS MAG magnetic field</h2>
+<br/>
+   MGS magnetic field is available in two coordinate systems:
+    <ol>
+     <li><b>MSO</b> (sun-state, ss)<br/>
+    The ss coordinate system is defined using the instantaneous               
+    Mars-Sun vector as the primary reference vector (x direction).            
+    The X-axis lies along this vector and is taken to be positive             
+    toward the Sun. The Mars velocity vector is the second vector             
+    used to define the coordinate system. The negative of the velocity        
+    vector is used as a secondary reference vector so that the                
+    vector cross product of x and y yields a vector z parallel to             
+    the northward (upward) normal of the orbit plane of Mars. This            
+    system is sometimes called a Sun-State (SS) coordinate system             
+    since its principal vectors are the Sun vector and the Mars               
+    state vector.         
+     <li><b>Areographic</b> (planetocentric, pc)<br/>
+     The planetocentric coordinate system is body-fixed and rotates            
+    with the body as it spins on its axis. The body rotation axis             
+    is the primary vector used to define this coordinate system. Z            
+    is taken to lie along the rotation axis and be positive in the            
+    direction of angular momentum. The X-axis is defined to lie in            
+    the equatorial plane of the body, perpendicular to Z, and in              
+    the direction of the prime meridian as defined by the IAU. The            
+    Y axis completes the right-handed set.
+    </ol>
+
diff --git a/help/parameters/Morsch_help b/help/parameters/Morsch_help
new file mode 100644
index 0000000..f15b571
--- /dev/null
+++ b/help/parameters/Morsch_help
@@ -0,0 +1,8 @@
+<br/>
+<h2> Morschhauser Mars crustal model magnetic field</h2>
+<UL>  
+<li> A detailed description of the  Morschhauser model is available
+<a href="http://onlinelibrary.wiley.com/doi/10.1002/2013JE004555/abstract" target=_BLANK>here</a>. 
+<li> Code was developed by Arnaud Beth (abeth@irap.omp.eu). 
+<li> Field is calculated for the altitudes less than 450 km  
+</UL>
diff --git a/help/parameters/ONERAPlasma b/help/parameters/ONERAPlasma
new file mode 100755
index 0000000..72276ab
--- /dev/null
+++ b/help/parameters/ONERAPlasma
@@ -0,0 +1,7 @@
+ <h2> Jupiter plasma data base at AMDA </h2>
+<br/>
+<br/> <UL>
+  <li> Data provided to CDPP by ONERA. All information included in <a href="help/parameters/doc/ONERA_Jupiter_plasma_db_for_AMDA.pdf" TARGET=_BLANK>this report</a>
+     
+ </UL>
+
diff --git a/help/parameters/P10Ephem b/help/parameters/P10Ephem
new file mode 100644
index 0000000..49bb8e6
--- /dev/null
+++ b/help/parameters/P10Ephem
@@ -0,0 +1,33 @@
+
+ <h2> Pioneer 10  Ephemeris data at AMDA </h2>
+
+
+<UL>
+
+  <li> Pioneer 10 Ephemeris data are taken from the PDS (Planetary Data System) 
+    <a href="http://ppi.pds.nasa.gov/index.jsp" TARGET=_BLANK>site</a>
+
+  <li> Available parameters :
+    <UL>
+      <li> <b>r</b> : Range of the spacecraft from the Jupiter center of mass in units of Jupiter radii where 1 Rj = 71492 km
+      <li> <b>lat</b> : Planetographic latitude of the spacecraft in degrees
+      <li> <b>lon_east</b> : Planetographic east longitude of the spacecraft in degrees
+      <li> <b>LT</b> : Angle between the observer's (spacecraft) sub-Jupiter meridian and the anti-sunward meridian, measured in the Jovian equatorial plane in the direction of planetary rotation. The local hour angle is converted to a decimal hour (one hour equal to fifteen degrees longitude). The sun meridian is defined to be noon (12.000), with midnight (0.000) opposite it. Dawn (6.000) and dusk (18.000) are where the sun rises and sets according to the planet's rotation
+    </UL>
+
+  <li> 
+    <TABLE BORDER CELLPADDING=5>
+      <TR>
+         <TH align="center"> Source </TH>
+         <TH align="center"> Datasets </TH>
+         <TH align="center"> Status </TH>
+         <TH align="center"> Last Update </TH>
+       </TR>
+       <TR>
+         <TD> <a href="http://ppi.pds.nasa.gov/search/view/?f=yes&id=pds://PPI/PN_5001" TARGET=_BLANK>PN_5001</a> </TD>
+         <TD> orbit_jupiter </TD>
+         <TD> Uncertified </TD>
+         <TD> 2012-01-03 </TD>
+       </TR>
+     </TABLE>
+</UL>
diff --git a/help/parameters/P10Mag b/help/parameters/P10Mag
new file mode 100644
index 0000000..d926c45
--- /dev/null
+++ b/help/parameters/P10Mag
@@ -0,0 +1,40 @@
+
+ <h2> Pioneer 10  Magnetometer data at AMDA </h2>
+
+
+<UL>
+
+  <li> Pioneer 10 Magnetometer data are taken from:
+    <UL> 
+      <li> the PDS (Planetary Data System) <a href="http://ppi.pds.nasa.gov/index.jsp" TARGET=_BLANK>site</a>, for Jupiter flyby datasets
+      <li> the CDAWeb (Coordinated Data Analysis Web) <a href="http://cdaweb.gsfc.nasa.gov/" TARGET=_BLANK>site</a>, for cruise dataset
+    </UL>
+
+  <li> Available coordinates :
+    <UL>
+      <li> <b>RTN</b> : R (radial component, Sun to the spacecraft), T (tangential component, parallel to the Solar Equatorial plane and perpendicular to R), and N (normal component, completes right handed set)
+      <li> <b>System III</b> : R is along the Jupiter to spacecraft line, positive away from Jupiter. Phi is parallel to the Jovigraphic equator (Omega x R). Theta completes the right-handed set
+    </UL>
+
+  <li> 
+    <TABLE BORDER CELLPADDING=5>
+      <TR>
+         <TH align="center"> Source </TH>
+         <TH align="center"> Datasets </TH>
+         <TH align="center"> Status </TH>
+         <TH align="center"> Last Update </TH>
+       </TR>
+       <TR>
+         <TD> <a href="http://cdaweb.gsfc.nasa.gov/misc/NotesP.html#PIONEER10_COHO1HR_MERGED_MAG_PLASMA" TARGET=_BLANK>PIONEER10_COHO1HR_MERGED_MAG_PLASMA</a> </TD>
+         <TD> Cruise </TD>
+         <TD> -  </TD>
+         <TD> 2012-01-03</TD>
+       </TR>
+       <TR>
+         <TD> <a href="http://ppi.pds.nasa.gov/search/view/?f=yes&id=pds://PPI/PN_5001" TARGET=_BLANK>PN_5001</a> </TD>
+         <TD> Jupiter_SYS3 - Jupiter_HR_SYS3 </TD>
+         <TD> Uncertified </TD>
+         <TD> 2012-01-03 </TD>
+       </TR>
+     </TABLE>
+</UL>
diff --git a/help/parameters/P11Ephem b/help/parameters/P11Ephem
new file mode 100644
index 0000000..1991b6c
--- /dev/null
+++ b/help/parameters/P11Ephem
@@ -0,0 +1,33 @@
+
+ <h2> Pioneer 11  Ephemeris data at AMDA </h2>
+
+
+<UL>
+
+  <li> Pioneer 11 Ephemeris data are taken from the PDS (Planetary Data System) 
+    <a href="http://ppi.pds.nasa.gov/index.jsp" TARGET=_BLANK>site</a>
+
+  <li> Available parameters :
+    <UL>
+      <li> <b>r</b> : Range of the spacecraft from the Jupiter center of mass in units of Jupiter radii where 1 Rj = 71492 km
+      <li> <b>lat</b> : Planetographic latitude of the spacecraft in degrees
+      <li> <b>lon_east</b> : Planetographic east longitude of the spacecraft in degrees
+      <li> <b>LT</b> : Angle between the observer's (spacecraft) sub-Jupiter meridian and the anti-sunward meridian, measured in the Jovian equatorial plane in the direction of planetary rotation. The local hour angle is converted to a decimal hour (one hour equal to fifteen degrees longitude). The sun meridian is defined to be noon (12.000), with midnight (0.000) opposite it. Dawn (6.000) and dusk (18.000) are where the sun rises and sets according to the planet's rotation
+    </UL>
+
+  <li> 
+    <TABLE BORDER CELLPADDING=5>
+      <TR>
+         <TH align="center"> Source </TH>
+         <TH align="center"> Datasets </TH>
+         <TH align="center"> Status </TH>
+         <TH align="center"> Last Update </TH>
+       </TR>
+       <TR>
+         <TD> <a href="http://ppi.pds.nasa.gov/search/view/?f=yes&id=pds://PPI/PN_5001" TARGET=_BLANK>PN_5001</a> </TD>
+         <TD> orbit_jupiter </TD>
+         <TD> Uncertified </TD>
+         <TD> 2012-01-03 </TD>
+       </TR>
+     </TABLE>
+</UL>
diff --git a/help/parameters/P11Mag b/help/parameters/P11Mag
new file mode 100644
index 0000000..33f3bcb
--- /dev/null
+++ b/help/parameters/P11Mag
@@ -0,0 +1,40 @@
+
+ <h2> Pioneer 11  Magnetometer data at AMDA </h2>
+
+
+<UL>
+
+  <li> Pioneer 11 Magnetometer data are taken from:
+    <UL> 
+      <li> the PDS (Planetary Data System) <a href="http://ppi.pds.nasa.gov/index.jsp" TARGET=_BLANK>site</a>, for Jupiter flyby datasets
+      <li> the CDAWeb (Coordinated Data Analysis Web) <a href="http://cdaweb.gsfc.nasa.gov/" TARGET=_BLANK>site</a>, for cruise dataset
+    </UL>
+
+  <li> Available coordinates :
+    <UL>
+      <li> <b>RTN</b> : R (radial component, Sun to the spacecraft), T (tangential component, parallel to the Solar Equatorial plane and perpendicular to R), and N (normal component, completes right handed set)
+      <li> <b>System III</b> : R is along the Jupiter to spacecraft line, positive away from Jupiter. Phi is parallel to the Jovigraphic equator (Omega x R). Theta completes the right-handed set
+    </UL>
+
+  <li> 
+    <TABLE BORDER CELLPADDING=5>
+      <TR>
+         <TH align="center"> Source </TH>
+         <TH align="center"> Datasets </TH>
+         <TH align="center"> Status </TH>
+         <TH align="center"> Last Update </TH>
+       </TR>
+       <TR>
+         <TD> <a href="http://cdaweb.gsfc.nasa.gov/misc/NotesP.html#PIONEER11_COHO1HR_MERGED_MAG_PLASMA" TARGET=_BLANK>PIONEER11_COHO1HR_MERGED_MAG_PLASMA</a> </TD>
+         <TD> Cruise </TD>
+         <TD> -  </TD>
+         <TD> 2012-01-03</TD>
+       </TR>
+       <TR>
+         <TD> <a href="http://ppi.pds.nasa.gov/search/view/?f=yes&id=pds://PPI/PN_5001" TARGET=_BLANK>PN_5001</a> </TD>
+         <TD> Jupiter_SYS3 - Jupiter_HR_SYS3 </TD>
+         <TD> Uncertified </TD>
+         <TD> 2012-01-03 </TD>
+       </TR>
+     </TABLE>
+</UL>
diff --git a/help/parameters/PVOEphem b/help/parameters/PVOEphem
new file mode 100644
index 0000000..a426c4a
--- /dev/null
+++ b/help/parameters/PVOEphem
@@ -0,0 +1,40 @@
+
+ <h2> Pioneer Venus Orbiter Ephemeris data at AMDA </h2>
+
+
+<UL>
+  <li> Pioneer Venus Orbiter Ephemeris data are taken from the PDS (Planetary Data System) 
+    <a href="http://ppi.pds.nasa.gov/index.jsp" TARGET=_BLANK>site</a>
+
+  <li> Available parameters :
+    <UL>
+      <li> <b>xyz_vso</b> : PVO spacecraft position in Venus Solar Orbital Coordinates (VSO): X is taken to be positive in the direction of the Sun measured along the Venus- Sun line. Y is taken to be positive in the direction opposing orbital motion (dusk) and lying in the orbital plane of Venus. Z is taken to be parallel to the pole of the Venus orbital plane and positive in the northward direction (upward normal). The units are given in Venus Radii where Rv = 6050 km.
+      <li> <b>r</b> : Venus - Spacecraft range. 
+      <li> <b>altitude</b> : Spacecraft Altitude above the Venus surface. This value is computed by subtracting 6050 km from the centered Venus-to-PVO range given in the SEDR.
+      <li> <b>solar_zenith_angle</b> : This is the three body angle Sun-Venus-PVO taken from the SEDR.
+      <li> <b>lon</b> : Venus centered longitude.
+      <li> <b>lat</b> : Venus centered latitude.
+      <li> <b>xyz_spin_axis_vso</b> : Spin axis coordinates in VSO coordinates.
+      <li> <b>celestial_lon</b> : Heliocentric Celestial Latitude  of the PVO spacecraft.
+      <li> <b>celestial_lat</b> : Heliocentric Celestial Longitude of the PVO spacecraft.
+      <li> <b>celestial_lon_earth</b> : Heliocentric Celestial Longitude of the Earth.
+      <li> <b>r_sun</b> : Sun - Spacecraft range.
+    </UL>
+
+  <li> 
+    <TABLE BORDER CELLPADDING=5>
+      <TR>
+         <TH align="center"> Source </TH>
+         <TH align="center"> Datasets </TH>
+         <TH align="center"> Status </TH>
+         <TH align="center"> Last Update </TH>
+       </TR>
+       <TR>
+         <TD> <a href="http://ppi.pds.nasa.gov/search/view/?f=yes&id=pds://PPI/PV01_0001/" TARGET=_BLANK>PV01_0001</a> - ... - 
+              <a href="http://ppi.pds.nasa.gov/search/view/?f=yes&id=pds://PPI/PV01_0068/" TARGET=_BLANK>PV01_0068</a></TD>
+         <TD> orbit </TD>
+         <TD> Certified </TD>
+         <TD> 2012-11-20 </TD>
+       </TR>
+     </TABLE>
+</UL>
diff --git a/help/parameters/PVOMag b/help/parameters/PVOMag
new file mode 100644
index 0000000..b95ea19
--- /dev/null
+++ b/help/parameters/PVOMag
@@ -0,0 +1,34 @@
+
+ <h2> Pioneer Venus Orbiter Magnetometer data at AMDA </h2>
+
+
+<UL>
+  <li> Pioneer Venus Orbiter Magnetometer data are taken from the PDS (Planetary Data System) 
+    <a href="http://ppi.pds.nasa.gov/index.jsp" TARGET=_BLANK>site</a>
+
+  <li> Available parameters :
+    <UL>
+      <li> <b>b_sc (orbits 1 to 3601)</b> : Magnetic field in the PVO Inertial Spacecraft Coordinate System : X is the component that lies in the sunward direction in the plane that contains the Sun-spacecraft vector and the spacecraft spin axis, Y is formed by the right-handed vector cross product of the X and Z unit vectors where the Z axis is anti-parallel to the spacecraft spin axis and the X-Z plane contains the Sun, Z is defined to be anti-parallel to the spacecraft spin axis during orbital operations.
+      <li> <b>b_mag (all orbits)</b> : Magnitude of the magnetic field.
+      <li> <b>bz_sc (orbits 3602 to 5055)</b> : Z-component of the magnetic field in the PVO Inertial Spacecraft Coordinate System. The Z axis is defined to be anti-parallel to the spacecraft spin axis during orbital operations.
+    </UL>
+
+  <li> The dataset for orbits 3602 to 5055 differs from the previous orbits due to an anomaly in the multiplexor that controlled the sampling of the magnetometer sensors. During orbit 3602, and for the remainder of the mission, the spacecraft downlink contained magnetometer data from only the P sensor. The P sensor is the sensor which is aligned with the spacecraft spin axis, nominally in the direction of the ecliptic normal.</br>After the anomaly was first detected, the magnetometer team made a substantial effort to recover the average magnetic field vector using the single sensor data. Since the sensor is not perfectly aligned with the spacecraft spin axis, a small amount of spin modulation is present in the sensor data.</br>In theory, the amplitude of the spin plane field can be determined from the amplitude of the spin modulation and knowledge of the true sensor mounting geometry. In practice, this turned out to be a very difficult task because the spin axis of the spacecraft is not sufficiently constant in body-fixed coordinates.
+
+  <li> 
+    <TABLE BORDER CELLPADDING=5>
+      <TR>
+         <TH align="center"> Source </TH>
+         <TH align="center"> Datasets </TH>
+         <TH align="center"> Status </TH>
+         <TH align="center"> Last Update </TH>
+       </TR>
+       <TR>
+         <TD> <a href="http://ppi.pds.nasa.gov/search/view/?f=yes&id=pds://PPI/PV01_0001/" TARGET=_BLANK>PV01_0001</a> - ... - 
+              <a href="http://ppi.pds.nasa.gov/search/view/?f=yes&id=pds://PPI/PV01_0068/" TARGET=_BLANK>PV01_0068</a></TD>
+         <TD> orbits_1_3601, orbits_3602_5055 </TD>
+         <TD> Certified </TD>
+         <TD> 2012-11-20 </TD>
+       </TR>
+     </TABLE>
+</UL>
diff --git a/help/parameters/RosettaEphemeris b/help/parameters/RosettaEphemeris
new file mode 100644
index 0000000..2546df3
--- /dev/null
+++ b/help/parameters/RosettaEphemeris
@@ -0,0 +1,97 @@
+<h2>Rosetta Ephemeris</h2>
+ 
+<UL>
+
+    Rosetta Ephemeris data are calculated using SPICE kernels taken from the
+           <a href="ftp://ssols01.esac.esa.int/pub/data/SPICE/ROSETTA/kernels/" TARGET=_BLANK>
+            PSA</a><br/><br/>   
+   <UL> <b>Coordinates :</b> <br/><br/>  
+   <li><b>GSE</b> : Geocentric Solar Ecliptic -
+         This system has its X axis towards the Sun and its Z axis
+         perpendicular to the plane of the Earth's orbit around the
+         Sun (positive North). Y completes the right-handed system.
+   <li> <b>GSM</b> : Geocentric Solar Magnetospheric -
+         This system has its X axis towards the Sun and its Z axis
+         is the projection of the Earth's magnetic dipole axis
+         (positive North) on to the plane perpendicular to the X
+         axis. Y completes the right-handed system.
+    
+    <li> <b>MSO</b> : Mars-centric Solar Orbital   -  
+        the +X-axis points toward the Sun, 
+        +Z points northward perpendicular to Mars's orbit plane, and 
+        Y completes the right hand system nominally directed opposite Mars's orbital velocity around the Sun.
+        
+    <li><b>HCI</b>: Heliocentric Inertial Frame -
+         All vectors are geometric: no aberration corrections are used.
+         The solar rotation axis is the primary vector: the Z axis points
+         in the solar north direction.
+         The solar ascending node on the ecliptic of J2000 forms the X axis.
+         The Y axis is Z cross X, completing the right-handed reference frame.
+    <li><b>HEE</b> : Heliocentric Earth Ecliptic Frame -
+
+         All vectors are geometric: no aberration corrections are used.
+
+         The position of the Earth relative to the Sun is the primary vector:
+         the X axis points from the Sun to the Earth.
+
+         The northern surface normal to the mean ecliptic of date is the
+         secondary vector: the Z axis is the component of this vector
+         orthogonal to the X axis.
+
+         The Y axis is Z cross X, completing the right-handed reference frame.
+    <li><b>HEEQ</b> : Heliocentric Earth Equatorial Frame -
+
+         All vectors are geometric: no aberration corrections are used.
+
+         The solar rotation axis is the primary vector: the Z axis points
+         in the solar north direction.
+
+         The position of the Sun relative to the Earth is the secondary
+         vector: the X axis is the component of this position vector
+         orthogonal to the Z axis.
+
+         The Y axis is Z cross X, completing the right-handed reference frame.
+     
+   
+  <li><b>CSO</b> The body-Centered Solar Orbital frames for the Rosetta primary
+   target comet 67P/Churyumov-Gerasimenko, incidental target comet
+   45P/Honda-Mrkos-Pajdusakowa (Rosetta passed through its ion tail in
+   July 2006), and secondary targets asteroids 2867/STEINS and
+   21/LUTETIA are named '67P/C-G_CSO', '45P/H-M-P_CSO',
+   '2867/STEINS_CSO', and '21/LUTETIA_CSO'. 
+   These frames are defined as
+   a two-vector style dynamic frames as follows:
+ 
+      -  The position of the sun relative to the body is the primary
+         vector: the X axis points from the body to the sun.
+
+      -  The inertially referenced velocity of the sun relative to the
+         body is the secondary vector: the Y axis is the component of
+         this velocity vector orthogonal to the X axis.
+
+      -  The Z axis is X cross Y, completing the right-handed reference
+         frame.
+
+      -  All vectors are geometric: no aberration corrections are used.
+ 
+    
+
+   <li><b>CSEQ</b>  The body-Centered Solar EQuatorial frames for the Rosetta
+   primary target comet 67P/Churyumov-Gerasimenko and secondary target
+   asteroid 21/LUTETIA are named '67P/C-G_CSEQ' and '21/LUTETIA_CSEQ'.
+   These frames are defined as a two-vector style dynamic frames as
+   follows:
+ 
+      -  +X axis is the position of the Sun relative to the body; it's
+         the primary vector and points from the body to the Sun;
+
+      -  +Z axis is the component of the Sun's north pole of date
+         orthogonal to the +X axis;
+
+      -  +Y axis completes the right-handed reference frame;
+
+      -  the origin of this frame is the body's center of mass.
+
+   All the vectors are geometric: no aberration corrections are used.
+  </UL>
+<br/>
\ No newline at end of file
diff --git a/help/parameters/RosettaMission b/help/parameters/RosettaMission
new file mode 100644
index 0000000..33b06a8
--- /dev/null
+++ b/help/parameters/RosettaMission
@@ -0,0 +1,54 @@
+<h2>ROSETTA Mission Overview </h2>
+
+The ROSETTA mission is an interplanetary mission whose main
+objectives are the rendezvous and in-situ measurements of the comet
+67P/Churyumov-Gerasimenko, scheduled for 2014/2015. The spacecraft
+carries a Rosetta Lander, named Philae, to the nucleus and deploys it
+onto its surface.
+<br/><br/>  
+On its long way to the comet nucleus after a Launch by Ariane 5 P1+
+in March 2004, the ROSETTA spacecraft orbits the Sun for one year
+until it returns to Earth for the first swing-by. The planet Mars is
+reached in February 2007, about 3 years after launch. In November
+2007 a second Earth swing-by takes place and a third one in November
+2009. Two asteroid flybys (2867 Steins and 21 Lutetia) are performed
+on the way to the comet. These two asteroids were selected at the
+Science Working Team meeting on 11th March 2004 among all the
+available candidate asteroids, depending on the scientific interest
+and the propellant required for the correction manoeuvre. Around the
+aphelion of its orbit, which is 5.3 AU from the Sun, the spacecraft
+is in a spinning hibernation mode for about 2.5 years.
+<br/><br/> 
+The comet 67P/Churyumov-Gerasimenko is reached about 10.5 years after
+launch, in May 2014. After a comet mapping phase the Surface Science
+Package, carried piggyback on the spacecraft are released for landing
+on the comet's surface for in situ measurements. The ROSETTA mission
+then makes a detailed study of the comet and its environment until a
+Sun distance of 2 AU is reached again after comet perihelion, at the
+end of the year 2015.
+<br/><br/>
+ 
+<b>Please note:</b>
+<br/>
+The ROSETTA spacecraft was originally designed for a mission to the
+comet 46 P/Wirtanen to be launched in January 2003. Due to a delay of
+the launch a new comet (67P/Churyumow-Gerasimenko) had been selected
+by the Science Working Team on 3rd-4th April 2003 [RO-SWT-2004APR04].
+The compliance of the design was checked and where necessary adapted
+for this new mission. Therefore in the following all the details and
+characteristics for this new mission are used.
+ission Phases Overview
+<br/><br/>
+ 
+This section gives an overview of the major mission phases and main
+events in scheduled tables. A description of the individual phases is
+given in the following section. More detailed information can be
+found in the Rosetta Mission Calendar [RO-ESC-PL-5026], the
+Consolidated Report on Mission Analysis [RO-ESC-RP-5500] and the RSOC
+Design Specification [RO-EST-PL-2010]
+<br/><br/> 
+<b>Detailed Mission Phase Schedule</b> is available 
+<a href="http://www.rssd.esa.int/index.php?project=PSA&page=rosetta" 
+TARGET=_BLANK>here</a>.
+<br/> 
+ 
\ No newline at end of file
diff --git a/help/parameters/Stereo b/help/parameters/Stereo
new file mode 100755
index 0000000..a710e51
--- /dev/null
+++ b/help/parameters/Stereo
@@ -0,0 +1,42 @@
+
+<br/>
+ <h2> Stereo Data at AMDA </h2>
+<br/>
+ <UL>
+   <li><b>ORBIT</b>: GSE and HEE <br>
+              Argument /GLOBAL while plotting orbit in HEE 
+              gives <a href="help/parameters/doc/globalHee.png" TARGET=_BLANK>global view</a>.
+       
+   <li><b>IMPACT/MAG</b>: RTN <br>  Level 1,  1 Hz <br>
+          from <a href="http://aten.igpp.ucla.edu/ssc/stereo/" TARGET=_BLANK>http://aten.igpp.ucla.edu/ssc/stereo/</a>
+   <li><b>IMPACT/SWEA</b>: 
+                Electron Moments and Pitch-Angle Distribution (E=45-2000eV) <br/> Level 2, 30 s <br>
+                from <a  href="http://stereo.cesr.fr/" TARGET=_BLANK>http://stereo.cesr.fr/</a>
+                <br/><br/>
+                 <ul><b>Electron Moments</b>
+                  <li> Ne
+                  <li> Te : Te_par, Te_perp1, Te_perp2
+                  <li> Qe_rtn : Qe_r, Qe_t, Qe_n
+                  <li> Qe : Qe_par, Qe_perp 
+                  <li>quality_MAG:<br/>	
+				0 --> B field INSIDE instrument field-of-view: moments well determined. <br>
+				1 --> B field OUTSIDE instrument field-of-view: moments NOT well determined.
+	           <li>quality_PLA:<br/>
+				0 --> Temperature/Heat Flux corrected for ion bulk flow (from STEREO/PLASTIC) <br>
+				1 --> Temperature/Heat Flux NOT corrected for ion bulk flow (Data unavailable)
+                 </ul> <br/>
+                 <ul><b>Pitch-Angle Distribution</b>
+                     <li>PAD : by default at 250 eV. You may PLOT PAD for another 
+                         energy using an argument E=<i>E[in eV]</i>.
+                     <li>quality_MAG:<br/>
+				0 --> B field INSIDE instrument field-of-view: ALL PA covered. <br>
+				1 --> B field OUTSIDE instrument field-of-view: NOT ALL PA covered.
+	              <li>quality_PLA:<br/>
+				0 --> PA distributions corrected for ion bulk flow (from STEREO/PLASTIC) <br>
+				1 --> PA distributions NOT corrected for ion bulk flow (Data unavailable)
+                 </ul>
+   <li><b>PLASTIC</b>: Proton Moments : Level 2, 1D maxwellian fits, 1 min <br>
+         from <a href="http://fiji.sr.unh.edu" TARGET=_BLANK>http://fiji.sr.unh.edu</a>  
+  
+ </ul>
+
diff --git a/help/parameters/T96_help b/help/parameters/T96_help
new file mode 100644
index 0000000..f329b9b
--- /dev/null
+++ b/help/parameters/T96_help
@@ -0,0 +1,23 @@
+<br/>
+<h2> Tsyganenko96 model magnetic field</h2>
+<UL>
+ <li> A data-based Tsyganenko96 model computes
+the geomagnetospheric magnetic field with an explicitly
+defined realistic magnetopause, large-scale Region 1 and 2 Birkeland current
+systems, and the IMF penetration  across the boundary.
+The model uses the following inputs :
+<UL>
+      <li> <b>solar wind ram pressure</b>
+      <li> <b>IMF Z-component</b>
+      <li> <b>Dst index</b>
+</UL>
+    <li> When a parameter 'T96 model field along a spacecraft orbit' is calculated, 
+    the input data above are fetched in the AMDA database 
+    and averaged on 60 min (fixed interval) before computation. 
+    The original ephemeris time resolution is finally used for the resolution of the computed magnetic field.
+    <li> Model magnetic field can be calculated along a number of spacecraft orbits :
+        select the desired one from the arguments list. Note that you may also select different source for input conditions:
+        OMNI or AMDA data base. In the latter case AMDA calculates the SW propagation to the target.                  
+    <li> A detailed description along with complete references is available 
+    <a href="http://geo.phys.spbu.ru/~tsyganenko/T96.html" target=_BLANK>here</a>.    
+  </UL>
diff --git a/help/parameters/TaoModel b/help/parameters/TaoModel
new file mode 100644
index 0000000..4c38492
--- /dev/null
+++ b/help/parameters/TaoModel
@@ -0,0 +1,25 @@
+<h2>Chihiro Tao Solar Wind Model Data at AMDA</h2>
+These data sets are the simulation outputs of solar wind variations observed
+near the Earth and propagated to the different destinations using 
+a 1-dimensional 2-component (radial & azimuthal) 
+magnetohydrodynamic (MHD) model. 
+<br/><br/>
+The model code is based on the
+<a href="http://www.astro.phys.s.chiba-u.ac.jp/netlab/astro/index2-e.html" 
+TARGET=_BLANK>Coordinated Astronomical Numerical Software (CANS) by JST</a>.
+<br/><br/>
+Model details, evaluations compared with observation data, and limitations are described in
+<a href="http://onlinelibrary.wiley.com/doi/10.1029/2004JA010959/abstract" TARGET=_BLANK> 
+Tao et al. 2005, J. Geophys. Res., 110, A11208, doi:10.1029/2004JA010959</a>
+<br/><br/>
+Solar wind propagation was calculated with several inputs : <i>input_OMNI, input_Stereo-A, input_Stereo-B</i>  
+<br/><br/>
+Note an important parameter - <b>ephemeris/dPhi</b> - which could be considered as quality flag and 
+presents an angle  <i><b>SOURCE</b>(Earth,Stereo-A,Stereo-B)-<b>SUN</b>-<b>TARGET</b>(Mars,Jupiter,Saturn)</i>
+<br/><br/>
+For unknown points or other requests, please contact Chihiro Tao (<i>chihiro.tao@irap.omp.eu</i>).
+
+ 
+   
+    
+
diff --git a/help/parameters/UlysseIoTorus b/help/parameters/UlysseIoTorus
new file mode 100644
index 0000000..e161e5c
--- /dev/null
+++ b/help/parameters/UlysseIoTorus
@@ -0,0 +1,23 @@
+
+ <h2> Ulysse Io Torus data at AMDA </h2>
+
+
+<UL>
+
+  <li> Ulysse Io Torus data are taken from <a href="http://www.lesia.obspm.fr/plasma/ulysses/index.html" TARGET=_BLANK>LESIA</a>.
+
+  <li> The<b> electron density measurements Ne</b> are given in cm-3 and the given acquisition time for each value is dependant on three different measurement methods (flagged by 0,1 or 2). Ne_min and Ne_max stands for errors bars on the density measurements (which are also strongly depending on the measurements methods) 
+    <UL>
+      <li> The <b>method #0</b> corresponds to densities deduced from the upper hybrid frequency peak detection, in the HF band of the URAP/RAR receiver (firstly published in <i>Hoang et al., Planet. Space Sci.,Vol. 41, No. 11/12, pp. 1011-1020, 1993, and references therein</i>). The given acquisition time is the elapsed time (UT) of the sweeping receiver at the f_uh peak acquisition.
+      <li> The <b>method #1</b> corresponds to density obtained by the minimum chi-square fitting of theoritical dispersion curves of Bernstein modes to the experimental dispersion curves derived from the URAP/RAR spectra, Ne and Te being the two free fitted parameters (<i>Moncuquet et al., J. Geophys. Res., 100, 21697-21708 , 1995 and references therein</i>); The given acquisition time for each density measurement is the  elapsed time (UT) at mid-time of the whole spectrum acquisition (the acquisition duration of a whole spectrum is 128s). In this case, the determination of Ne and Te are synchronized  , but they are not independently determined.
+      <li> The<b> method #2</b> corresponds to density obtained from detection of Bernstein "fQ" frequencies (<i>Moncuquet et al.,J. Geophys. Res., 102, 2373-2379, 1997 and references therein</i>). The given acquisition time is the elapsed time (UT) of the sweeping receiver at the lowest fQ acquisition.
+    </UL>
+  <li> The <b>electron core temperature measurements Te</b> are given in K and are obtained by the minimum chi-square fitting of theoritical dispersion curves of Bernstein modes to the experimental dispersion curves derived from the URAP/RAR spectra,(<i>Moncuquet et al., J. Geophys. Res., 100, 21697-21708 , 1995 and references therein</i>). There is two cases for the fitting:  
+  <UL>
+    <li>from 15:02:30 UT to 17:06:59 UT,  Ne is known independently and Te is the only free fitted parameter ;
+    <li>from 17:09:06 UT to 17:50:37 UT, Ne and Te are the both free fitted parameters.   
+  </UL>
+  The given acquisition time is the elapsed time (UT) of the sweeping receiver at mid-time of the whole spectrum acquisition (the acquisition duration of a whole spectrum is 128s). Te_min and Te_max stands for errors bars on the temperature measurements Te.
+  <li> The <b>B magnitude measurements</b> are given in nanoTesla and are obtained by the detection of power spectrum relative minima at the harmonics of the gyrofrequency (firstly published in <i>Meyer et al., J. Geophys. Res., 98, 21163-21176,1993 and references therein</i>)  . The given acquisition time is the elapsed time (UT) of the sweeping receiver at the highest harmonic acquisition.
+</UL>
+
diff --git a/help/parameters/VEXMAG b/help/parameters/VEXMAG
new file mode 100644
index 0000000..4a38221
--- /dev/null
+++ b/help/parameters/VEXMAG
@@ -0,0 +1,26 @@
+<h2>Venus Express Magnetometer data at AMDA<br/> 
+
+
+ from ESA's Planetary Science Archive</h2>
+
+<h2>Principal Investigator: T. Zhang (OAW, Graz)</h2>
+
+ <i>Please acknowledge the Principal Investigator as well as the European Space Agency 
+when making a publication using this data</i>.<br/> 
+
+
+<ul>
+ <li> <b>1-sec resolution</b> : This data set comprises calibrated      
+  data from the Venus Express Mag (MAG) instrument. i.e. space        
+  magnetic field in nanoTesla and in VSO coordinates. The time        
+  resolution is 1Hz; all higher data rates are downsampled and        
+  included, such that full data-coverage 24 hr per day is obtained,   
+  with only few data-gaps. 
+
+  
+  <li> <b>4-sec resolution</b>: This data set comprises resampled calibrated 
+  data from the Venus Express Mag (MAG) instrument, i.e. resampled    
+  space magnetic field in nanoTesla and in VSO coordinates. The time  
+  resolution is 4sec, resampled from 1Hz calibrated data. Full        
+  data-coverage 24 hr per day is available with only few data-gaps. 
+</ul>
\ No newline at end of file
diff --git a/help/parameters/VO2UranusCRS b/help/parameters/VO2UranusCRS
new file mode 100644
index 0000000..05896c3
--- /dev/null
+++ b/help/parameters/VO2UranusCRS
@@ -0,0 +1,34 @@
+
+ <h2> Voyager 2 CRS Uranus data at AMDA </h2>
+
+
+<UL>
+
+  <li> Voyager 2 CRS Uranus data are taken from the PDS (Planetary Data System) <a href="http://ppi.pds.nasa.gov/index.jsp" TARGET=_BLANK>site</a>
+
+  <li> <a href="http://ppi.pds.nasa.gov/ditdos/download?id=pds://PPI/VG_1002/CATALOG/CRS_D1_DS.CAT" TARGET=_BLANK>Information about the dataset 'D1'.</a>
+  <li> <a href="http://ppi.pds.nasa.gov/ditdos/download?id=pds://PPI/VG_1002/CATALOG/CRS_D2_DS.CAT" TARGET=_BLANK>Information about the dataset 'D2'.</a>
+ 
+
+  <li> 
+    <TABLE BORDER CELLPADDING=5>
+      <TR>
+         <TH align="center"> Source </TH>
+         <TH align="center"> Datasets </TH>
+         <TH align="center"> Status </TH>
+         <TH align="center"> Last Update </TH>
+       </TR>
+       <TR>
+         <TD> <a href="http://ppi.pds.nasa.gov/search/view/?f=yes&id=pds://PPI/VG_1002/DATA/CRS/D1/96S" TARGET=_BLANK>VG_1002/DATA/CRS/D1/96S</a> </TD>
+         <TD> Detector 'D1' </TD>
+         <TD> -  </TD>
+         <TD> 2013-05-30</TD>
+       </TR>
+       <TR>
+         <TD> <a href="http://ppi.pds.nasa.gov/search/view/?f=yes&id=pds://PPI/VG_1002/DATA/CRS/D2/96S" TARGET=_BLANK>VG_1002/DATA/CRS/D2/96S</a> </TD>
+         <TD> Detector 'D2' </TD>
+         <TD> -  </TD>
+         <TD> 2013-05-30</TD>
+       </TR>
+     </TABLE>
+</UL>
diff --git a/help/parameters/VO2UranusLECP15m b/help/parameters/VO2UranusLECP15m
new file mode 100644
index 0000000..b3a34d1
--- /dev/null
+++ b/help/parameters/VO2UranusLECP15m
@@ -0,0 +1,27 @@
+
+ <h2> Voyager 2 LECP Uranus data (resampled) at AMDA </h2>
+
+
+<UL>
+
+  <li> Voyager 2 LECP Uranus data (resampled) are taken from the PDS (Planetary Data System) <a href="http://ppi.pds.nasa.gov/index.jsp" TARGET=_BLANK>site</a>
+
+  <li> <a href="http://ppi.pds.nasa.gov/ditdos/download?id=pds://PPI/VG_1002/CATALOG/VG2_LECP_URA_AVERAGE_DS.CAT" TARGET=_BLANK>Information about the dataset.</a>
+ 
+
+  <li> 
+    <TABLE BORDER CELLPADDING=5>
+      <TR>
+         <TH align="center"> Source </TH>
+         <TH align="center"> Datasets </TH>
+         <TH align="center"> Status </TH>
+         <TH align="center"> Last Update </TH>
+       </TR>
+       <TR>
+         <TD> <a href="http://ppi.pds.nasa.gov/search/view/?f=yes&id=pds://PPI/VG_1002/DATA/LECP/AVERAGE/15M" TARGET=_BLANK>VG_1002/DATA/LECP/AVERAGE/15M</a> </TD>
+         <TD> - </TD>
+         <TD> -  </TD>
+         <TD> 2013-05-30</TD>
+       </TR>
+     </TABLE>
+</UL>
diff --git a/help/parameters/VO2UranusLECPFlux b/help/parameters/VO2UranusLECPFlux
new file mode 100644
index 0000000..819ee32
--- /dev/null
+++ b/help/parameters/VO2UranusLECPFlux
@@ -0,0 +1,27 @@
+
+ <h2> Voyager 2 LECP Uranus data (resampled) at AMDA </h2>
+
+
+<UL>
+
+  <li> Voyager 2 LECP Uranus data (resampled) are taken from the PDS (Planetary Data System) <a href="http://ppi.pds.nasa.gov/index.jsp" TARGET=_BLANK>site</a>
+
+  <li> <a href="http://ppi.pds.nasa.gov/ditdos/download?id=pds://PPI/VG_1002/CATALOG/VG2_LECP_URA_STEP_12-8M_DS.CAT" TARGET=_BLANK>Information about the dataset.</a>
+ 
+
+  <li> 
+    <TABLE BORDER CELLPADDING=5>
+      <TR>
+         <TH align="center"> Source </TH>
+         <TH align="center"> Datasets </TH>
+         <TH align="center"> Status </TH>
+         <TH align="center"> Last Update </TH>
+       </TR>
+       <TR>
+         <TD> <a href="http://ppi.pds.nasa.gov/search/view/?f=yes&id=pds://PPI/VG_1002/DATA/LECP/SCAN/24S" TARGET=_BLANK>VG_1002/DATA/LECP/SCAN/24S</a> </TD>
+         <TD> - </TD>
+         <TD> -  </TD>
+         <TD> 2013-05-30</TD>
+       </TR>
+     </TABLE>
+</UL>
diff --git a/help/parameters/VO2UranusPLSEleBr b/help/parameters/VO2UranusPLSEleBr
new file mode 100644
index 0000000..b40c1b5
--- /dev/null
+++ b/help/parameters/VO2UranusPLSEleBr
@@ -0,0 +1,26 @@
+
+ <h2> Voyager 2 PLS Uranus Electron Browse data at AMDA </h2>
+
+
+<UL>
+
+  <li> Voyager 2 PLS Uranus Electron Browse data are taken from the PDS (Planetary Data System) <a href="http://ppi.pds.nasa.gov/index.jsp" TARGET=_BLANK>site</a>
+
+  <li> <a href="http://ppi.pds.nasa.gov/ditdos/download?id=pds://PPI/VG_1002/CATALOG/PLS_ELE_BR_DS.CAT" TARGET=_BLANK>Information about the dataset.</a>
+
+		<li> 
+    <TABLE BORDER CELLPADDING=5>
+      <TR>
+         <TH align="center"> Source </TH>
+         <TH align="center"> Datasets </TH>
+         <TH align="center"> Status </TH>
+         <TH align="center"> Last Update </TH>
+       </TR>
+       <TR>
+         <TD> <a href="http://ppi.pds.nasa.gov/search/view/?f=yes&id=pds://PPI/VG_1002/DATA/PLS/ELE_BR/48S" TARGET=_BLANK>VG_1002/DATA/PLS/ELE_BR/48S</a> </TD>
+         <TD> - </TD>
+         <TD> -  </TD>
+         <TD> 2013-05-30</TD>
+       </TR>
+     </TABLE>
+</UL>
diff --git a/help/parameters/VO2UranusPLSEleFit b/help/parameters/VO2UranusPLSEleFit
new file mode 100644
index 0000000..5809f9c
--- /dev/null
+++ b/help/parameters/VO2UranusPLSEleFit
@@ -0,0 +1,26 @@
+
+ <h2> Voyager 2 PLS Uranus Electron Fit data at AMDA </h2>
+
+
+<UL>
+
+  <li> Voyager 2 PLS Uranus Electron Fit data are taken from the PDS (Planetary Data System) <a href="http://ppi.pds.nasa.gov/index.jsp" TARGET=_BLANK>site</a>
+
+  <li> <a href="http://ppi.pds.nasa.gov/ditdos/download?id=pds://PPI/VG_1002/CATALOG/PLS_ELE_FIT_DS.CAT" TARGET=_BLANK>Information about the dataset.</a>
+
+  <li> 
+    <TABLE BORDER CELLPADDING=5>
+      <TR>
+         <TH align="center"> Source </TH>
+         <TH align="center"> Datasets </TH>
+         <TH align="center"> Status </TH>
+         <TH align="center"> Last Update </TH>
+       </TR>
+       <TR>
+         <TD> <a href="http://ppi.pds.nasa.gov/search/view/?f=yes&id=pds://PPI/VG_1002/DATA/PLS/ELE_FIT/48S" TARGET=_BLANK>VG_1002/DATA/PLS/ELE_FIT/48S</a> </TD>
+         <TD> - </TD>
+         <TD> -  </TD>
+         <TD> 2013-05-30</TD>
+       </TR>
+     </TABLE>
+</UL>
diff --git a/help/parameters/VO2UranusPLSIonBr b/help/parameters/VO2UranusPLSIonBr
new file mode 100644
index 0000000..36ed0c1
--- /dev/null
+++ b/help/parameters/VO2UranusPLSIonBr
@@ -0,0 +1,26 @@
+
+ <h2> Voyager 2 PLS Uranus Ion Browse data at AMDA </h2>
+
+
+<UL>
+
+  <li> Voyager 2 PLS Uranus Ion Browse data are taken from the PDS (Planetary Data System) <a href="http://ppi.pds.nasa.gov/index.jsp" TARGET=_BLANK>site</a>
+
+  <li> <a href="http://ppi.pds.nasa.gov/ditdos/download?id=pds://PPI/VG_1002/CATALOG/PLS_ION_BR_DS.CAT" TARGET=_BLANK>Information about the dataset.</a>   
+
+  <li> 
+    <TABLE BORDER CELLPADDING=5>
+      <TR>
+         <TH align="center"> Source </TH>
+         <TH align="center"> Datasets </TH>
+         <TH align="center"> Status </TH>
+         <TH align="center"> Last Update </TH>
+       </TR>
+       <TR>
+         <TD> <a href="http://ppi.pds.nasa.gov/search/view/?f=yes&id=pds://PPI/VG_1002/DATA/PLS/ION_BR/48S" TARGET=_BLANK>VG_1002/DATA/PLS/ION_BR/48S</a> </TD>
+         <TD> - </TD>
+         <TD> -  </TD>
+         <TD> 2013-05-30</TD>
+       </TR>
+     </TABLE>
+</UL>
diff --git a/help/parameters/VO2UranusPLSIonFit b/help/parameters/VO2UranusPLSIonFit
new file mode 100644
index 0000000..6467a76
--- /dev/null
+++ b/help/parameters/VO2UranusPLSIonFit
@@ -0,0 +1,27 @@
+
+ <h2> Voyager 2 PLS Uranus Ion Fit data at AMDA </h2>
+
+
+<UL>
+
+  <li> Voyager 2 PLS Uranus Ion Fit data are taken from the PDS (Planetary Data System) <a href="http://ppi.pds.nasa.gov/index.jsp" TARGET=_BLANK>site</a>
+
+  <li> <a href="http://ppi.pds.nasa.gov/ditdos/download?id=pds://PPI/VG_1002/CATALOG/PLS_ION_FIT_DS.CAT" TARGET=_BLANK>Information about the dataset.</a>
+ 
+
+  <li> 
+    <TABLE BORDER CELLPADDING=5>
+      <TR>
+         <TH align="center"> Source </TH>
+         <TH align="center"> Datasets </TH>
+         <TH align="center"> Status </TH>
+         <TH align="center"> Last Update </TH>
+       </TR>
+       <TR>
+         <TD> <a href="http://ppi.pds.nasa.gov/search/view/?f=yes&id=pds://PPI/VG_1002/DATA/PLS/ION_FIT/48S" TARGET=_BLANK>VG_1002/DATA/PLS/ION_FIT/48S</a> </TD>
+         <TD> - </TD>
+         <TD> -  </TD>
+         <TD> 2013-05-30</TD>
+       </TR>
+     </TABLE>
+</UL>
diff --git a/help/parameters/VO2UranusPWS48s b/help/parameters/VO2UranusPWS48s
new file mode 100644
index 0000000..c6eadac
--- /dev/null
+++ b/help/parameters/VO2UranusPWS48s
@@ -0,0 +1,27 @@
+
+ <h2> Voyager 2 PWS Uranus Wave Electric Field Intensities (48-second) data at AMDA </h2>
+
+
+<UL>
+
+  <li> Voyager 2 PWS Uranus Wave Electric Field Intensities (48-second) data are taken from the PDS (Planetary Data System) <a href="http://ppi.pds.nasa.gov/index.jsp" TARGET=_BLANK>site</a>
+
+  <li> <a href="http://ppi.pds.nasa.gov/ditdos/download?id=pds://PPI/VG_1002/CATALOG/PWS_SA_48S_DS.CAT" TARGET=_BLANK>Information about the dataset.</a>
+ 
+
+  <li> 
+    <TABLE BORDER CELLPADDING=5>
+      <TR>
+         <TH align="center"> Source </TH>
+         <TH align="center"> Datasets </TH>
+         <TH align="center"> Status </TH>
+         <TH align="center"> Last Update </TH>
+       </TR>
+       <TR>
+         <TD> <a href="http://ppi.pds.nasa.gov/search/view/?f=yes&id=pds://PPI/VG_1002/DATA/PWS/SA/48S" TARGET=_BLANK>VG_1002/DATA/PWS/SA/48S</a> </TD>
+         <TD> - </TD>
+         <TD> -  </TD>
+         <TD> 2013-05-30</TD>
+       </TR>
+     </TABLE>
+</UL>
diff --git a/help/parameters/VexMex b/help/parameters/VexMex
new file mode 100644
index 0000000..40ba7fe
--- /dev/null
+++ b/help/parameters/VexMex
@@ -0,0 +1,10 @@
+ 
+<h2> Mex/Vex ASPERA IMA data </h2>
+<br/>
+<br/>
+   <b>ATTENTION</b><br/><br/> 
+   MEX/VEX IMA  protons and heavy ions number density could be considered 
+   reliable only in the case when corresponding quality flag 
+   (<b><i>moments_quality_factor</i></b>) is greater than 0.7 and density values themselves are greater than 0.01 cm-3<br/>
+   It is highly recommended to download quality flag along with IMA ion densities. 
+   
\ No newline at end of file
diff --git a/help/parameters/Whisper b/help/parameters/Whisper
new file mode 100755
index 0000000..6fbffe3
--- /dev/null
+++ b/help/parameters/Whisper
@@ -0,0 +1,18 @@
+
+<h2> WHISPER Level 2 Data at AMDA </h2>
+<br/>
+<br/>
+<UL>
+   <b>Electron number density</b> determined from Whisper data.
+    <a href="http://www.sciops.esa.int/index.php?project=CLUSTER&page=Access_to_CSA" TARGET=_BLANK>
+   CSA</a> Product C[1-4]_CP_WHI_ELECTRON_DENSITY.
+   <li> AMDA Parameters: Electron Density, Contrast<br/>
+         Contrast varies from 0 to 1.<br/> Contrast = -1  and Uncertainty = 0 means that electron density has been determined
+         not from WHISPER data.
+   <li> Argument /con[trast]  while plotting density adds <a href="help/parameters/doc/whisper_contrast.png" TARGET=_BLANK> contrast color bar</a> to density plot.
+   <li> Argument /unc[ertainty] while plotting density adds <a href="help/parameters/doc/whisper_unc.png" TARGET=_BLANK> errors </a> to density plot.
+        Contrast = -1 corresponds to Error = 0.
+   <li> You may use <a href="help/parameters/doc/whisper_contrast_unc.png" TARGET=_BLANK> both arguments</a> for the same density plot  
+   <li> Read <a href="http://www.springerlink.com/content/q3172663667431p2/" TARGET=_BLANK>detailed description</a> of electon density determination.
+ </UL>
+
diff --git a/help/parameters/doc/ONERA_Jupiter_plasma_db_for_AMDA.pdf b/help/parameters/doc/ONERA_Jupiter_plasma_db_for_AMDA.pdf
new file mode 100755
index 0000000..2d5bbac
Binary files /dev/null and b/help/parameters/doc/ONERA_Jupiter_plasma_db_for_AMDA.pdf differ
diff --git a/help/parameters/doc/globalHee.png b/help/parameters/doc/globalHee.png
new file mode 100755
index 0000000..6e376bd
Binary files /dev/null and b/help/parameters/doc/globalHee.png differ
diff --git a/help/parameters/doc/whisper_contrast.png b/help/parameters/doc/whisper_contrast.png
new file mode 100644
index 0000000..e86eca6
Binary files /dev/null and b/help/parameters/doc/whisper_contrast.png differ
diff --git a/help/parameters/doc/whisper_contrast_unc.png b/help/parameters/doc/whisper_contrast_unc.png
new file mode 100644
index 0000000..4d97b5e
Binary files /dev/null and b/help/parameters/doc/whisper_contrast_unc.png differ
diff --git a/help/parameters/doc/whisper_unc.png b/help/parameters/doc/whisper_unc.png
new file mode 100644
index 0000000..15b38a5
Binary files /dev/null and b/help/parameters/doc/whisper_unc.png differ
diff --git a/help/parameters/mSWiM b/help/parameters/mSWiM
new file mode 100755
index 0000000..7c3d325
--- /dev/null
+++ b/help/parameters/mSWiM
@@ -0,0 +1,16 @@
+
+ <h2> Michigan Solar Wind Model (mSWiM) Data at AMDA </h2>
+
+<br/>
+<br/>
+
+ <UL>
+   <li>From <a href="http://mswim.engin.umich.edu/index.shtml" TARGET=_BLANK>http://mswim.engin.umich.edu/index.shtml</a>
+
+   <li><b>Data Use Policy</b>:<br/>
+   Any use of the data must follow the <a href="http://mswim.engin.umich.edu/datuser.shtml" TARGET=_BLANK>User Agreement</a>
+
+   <li><a href="http://mswim.engin.umich.edu/methodesc.shtml" TARGET=_BLANK>Model description and validation</a>
+
+ </ul>
+
diff --git a/help/parametersTree b/help/parametersTree
new file mode 100644
index 0000000..e246a64
--- /dev/null
+++ b/help/parametersTree
@@ -0,0 +1,39 @@
+<h2><img src="js/resources/images/16x16/view_tree.png" style="margin: 0px 10px 0px 0px;"/> Resources Tree: Parameters</h2>
+<p>
+<img  src="help/images/params.png" align="left" style="margin: 0px 15px 0px 0px;"/>
+AMDA Parameters  differ by  their data bases location.<br/>  
+<ul> 
+<li><b><i>Local Data</i></b> is stored in the AMDA internal Data Base.
+<li><b><i>Remote Data</i></b> is obtained by a call to the Remote Data Centers.
+It usually takes  time to send the request and to process the response.
+<li><b><i>My Data</i></b>  is stored in the user WS. It originated from the files uploaded by user. 
+</ul>
+</p>
+<br/> 
+<p>
+<img  src="help/images/paramtree.png" align="right" style="margin: 0px 0px 0px 15px;"/>
+Parameter tree' hierarchy  : </p>
+<p> <b><i>
+ Mission => Instrument => Data Set => Parameter => [Parameter Component]
+</i></b> 
+</p>
+<p> 
+ Remote Data  hierarchy is started with <i>Data Center Name</i>
+</p>
+<p>
+Parameters and parameter components are shown as circles of different colors 
+with gray for <b>scalars</b> <img src="js/resources/images/12x12/circle_grey.png">, 
+green for <b>vectors</b> <img src="js/resources/images/12x12/circle_green.png"> and 
+orange for <b>spectra</b> <img src="js/resources/images/12x12/circle_orange.png">. 
+Cursor over the parameter has a <b><i>cross</i></b> shape <img src="help/images/cursor_plus.png">.
+To work with the parameter just <b>drag-and-drop</b> it onto the desired module window. 
+Note that the module window should be open in advance.
+</p>
+<p>
+ Different usefull information is displayed in tooltips when the mouse is over the
+ corresponding tree node.
+</p>
+<p>
+ To reduce parameter tree use <b>Filters</b>
+</p>
+<br/>        
\ No newline at end of file
diff --git a/help/plotHOWTO b/help/plotHOWTO
new file mode 100644
index 0000000..07b9804
--- /dev/null
+++ b/help/plotHOWTO
@@ -0,0 +1,5 @@
+<li>1. To plot a parameter, <b><i>drag</i></b> it from the Parameters tree and <b><i>drop</i></b> onto the panel  
+<li>2. To fill the Time Selection, use manual entry, the calendar or simply  <b><i>drag</i></b> a Parameter from the tree and <b><i>drop</i></b> it into the Start or Stop field. 
+<li>3. XY (<b><i>'Scatter'</i></b>) PlotType takes into account only <b><i>'Symbol' and 'Color'</i></b>  parameter arguments
+<li>4. If <b><i>AutoScale</i></b> mode is selected AMDA <b><i>ignores</i></b> all parameter arguments for 'AutoScaled' panels
+ 
\ No newline at end of file
diff --git a/help/plotHelp b/help/plotHelp
new file mode 100644
index 0000000..bf694b3
--- /dev/null
+++ b/help/plotHelp
@@ -0,0 +1,3 @@
+<h2>Plot Help</h2>
+   
+  To plot a parameter drag it from parameter tree and drop onto panel
\ No newline at end of file
diff --git a/help/plotSettings b/help/plotSettings
new file mode 100644
index 0000000..92f97c0
--- /dev/null
+++ b/help/plotSettings
@@ -0,0 +1,33 @@
+<h2><img src="js/resources/images/16x16/plot.png" style="margin: 0px 10px 0px 0px;"/>Global Settings</h2>
+<img class="centered" src="help/images/plot_3.png"/>
+<br/>
+<p>
+ The form above  controls the global plot settings. <b><i>Char Size</i></b>,
+ <b><i>Orientation</i></b> and  <b><i>Line Thickness</i></b> are self-explanatory.
+ <b><i>Plot Title</i></b> is not implemented in the current release.
+ </p>
+ <p> 
+ <b><i>Points per Plot</i></b>. This setting controls plot averaging. It defines maximal number of data values
+ to be plotted for a given time interval. If number of values is greater than <b><i>Points per Plot</i></b>
+ data is averaged to fit this value. 
+ </p>
+ <p>
+ <b><i>File Format</i></b>. You may choose PNG, PDF or PostScript output format. PNG format produces screen output
+ and opens an interactive plot session,
+ while PDF and PostScript generate files. In the case of TimeTable mode  PDF/PS generate
+ multi-page files (page per Time Table interval). Note that PostScript output file is always gzipped. 
+ All your PDF/PS result files are stored in your workspace. They are accesible in two ways 
+ either immediately from <b>Result Window</b> or later on by double-click on the node 
+ from the <b>Jobs Tab</b> in the WorkspaceExplorer. 
+ PDF/PS files are kept in your workspace until you delete them.
+ </p><br/><br>
+ <img class="centered" src="help/images/plot_4.png"/>
+<br/><br><p> 
+ <b><i>Description</i></b> is shown in the tooltip when your mouse is over the corresponding node in the Jobs Tab.
+ The name of the file is constructed by adding some numerical identifier to the prefix <b>result</b> (by default)
+ or to the <b><i>Plot File Name</i></b> if the latter is defined.
+</p>
+<br/>
+<br/>
+ 
+        
\ No newline at end of file
diff --git a/help/plotStart b/help/plotStart
new file mode 100644
index 0000000..6a449d4
--- /dev/null
+++ b/help/plotStart
@@ -0,0 +1,27 @@
+
+<h2><img src="js/resources/images/16x16/plot.png" style="margin: 0px 10px 0px 0px;"/>Getting Started</h2>
+<p>
+All the Parameters from the WorkspaceExplorer
+identified by a circle of any color are "plotable".  
+Drag the desired parameter[s] and drop onto any place at the Plot form.
+Note that parameter names appeared in the Plot form could slightly differ 
+from those of the Workspace Explorer.</p>
+<br/>  
+<img class="centered" src="help/images/plot_1.png"/>
+<br/> 
+<p>
+Select Time interval you are interested in and click <i>Plot</i> button. 
+Note that you may always find out valid parameter time range as well as sampling time: 
+just consult tooltip displayed when your mouse is over the corresponding dataset node
+of the WorkspaceExplorer tree.</p> 
+<p>
+Plot form  proposes two choices for time selection either by one time interval
+(<b><i>Interval mode</i></b>) or by a number of intervals (<b><i>TimeTable mode</i></b>).
+In the latter case check 'Time Table' radio button and 
+drag-drop time table[s] from the WorkspaceExplorer onto TimeSelector area. 
+</p> 
+<br/><br/>  
+<img class="centered" src="help/images/plot_2.png"/>
+<br/><br/>   
+ 
+        
\ No newline at end of file
diff --git a/help/plotType b/help/plotType
new file mode 100644
index 0000000..fc6d363
--- /dev/null
+++ b/help/plotType
@@ -0,0 +1,9 @@
+<h2>Plot Type</h2> 
+After having dropped parameter onto the panel you may select one of two possible plot types:<br/>
+<b>Time</b>: <i>Y=function(Time)</i> or <b>Scatter</b>: <i>Y=function(X)</i>.
+<br/> 
+ 
+If you select
+<b>Scatter</b> plot type drag and drop your 'X' parameter onto 
+<span style="font-weight:bold;text-decoration:blink;color:red">Select parameter...</span><br/>
+Scatter plot type could be applied to the scalars only.  
\ No newline at end of file
diff --git a/help/policy.html b/help/policy.html
new file mode 100755
index 0000000..254dac3
--- /dev/null
+++ b/help/policy.html
@@ -0,0 +1,50 @@
+<html xmlns="http://www.w3.org/TR/REC-html40"><head><title>About AMDA</title>
+ <meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<title>AMDA Policy</title>
+<meta name="keywords" content="" />
+<meta name="description" content="" />
+<link href="../js/resources/css/styles.css" rel="stylesheet" type="text/css" media="screen" />
+<link rel="icon" href="../favicon.ico" type="image/x-icon">
+<link rel="shortcut icon" href="../favicon.ico" type="image/x-icon">
+</head>
+
+<body>
+<div id="content">
+<div id="back">
+<div style="clear: both;">&nbsp;</div>
+<div id="main"> 
+<div id="right">  
+   <h3>Rules of the road</h3>
+                        <div class="title">              
+                            <ul>
+                                <li><a href="licenceAction.do.html" target="_blank">CDPP</a>
+                                <li><a href="http://spdf.gsfc.nasa.gov/new_users.html" target="_blank">CDAWEB</a>
+                                <li><a href="http://ppi.pds.nasa.gov/citations_policy.jsp" target="_blank">PDS</a>      
+                                <li><a href="http://mapsview.engin.umich.edu/use_policy" target="_blank">MAPSKP</a> 
+                                <li><a href="http://themis.ssl.berkeley.edu/roadrules.shtml" target="_blank">THEMIS</a> 
+                                <li><a href="SKR.html">CASSINI/RPWS/SKR</a>
+                                <li><a href="VEXGRAZ.html">VEXGRAZ</a>
+                                <li><a href="http://caa.estec.esa.int/caa/ror.xml" target="_blank">CAA</a> / <a href="http://www.cosmos.esa.int/web/csa/rules-of-the-road" target="_blank">CSA</a>
+                                <li><a href="STEREO.html">STEREO</a>
+				<li><a href="http://ccmc.gsfc.nasa.gov/PubPolicy.php" target="_blank">CCMC</a>
+                            </ul>  
+                  </div>
+</div>
+<div id="left"> 
+<h2>AMDA System and Data Use Policy</h2> <br/>
+ <h4>System Use Policy</h4>
+<p>Thank you for acknowledging the use of AMDA in publications with wording 
+like "Data analysis was performed with the AMDA science analysis system provided by the Centre de Donn&eacute;es de la Physique des Plasmas (<a href="http://cdpp.eu">CDPP</a>) supported by CNRS, CNES, Observatoire de Paris and Universit&eacute; Paul Sabatier, Toulouse."
+</p>
+ 
+<br/>   <h4>Data Use Policy</h4><br/>
+ AMDA local base holds data 
+originating from several Data Centres (see the detailed list on 
+<a href="about.html"> AMDA About</a> page). 
+When using either those data or AMDA "External Data" service to connect 
+to remote centres, please follow the corresponding Rules of the Road.
+ </p><br/><br/> 
+ <p><a href="..">AMDA Home =&gt;</a></p>
+</div>
+</div></div></div>
+</body></html>
diff --git a/help/releaseNotes.1.1 b/help/releaseNotes.1.1
new file mode 100644
index 0000000..aec8ad3
--- /dev/null
+++ b/help/releaseNotes.1.1
@@ -0,0 +1,21 @@
+<IMG align="right" SRC="help/images/picto_amda.png"/>
+<br/><h2>Welcome on AMDA !</h2> 
+<i>Release date :  2013-10-08</i>
+<br/><br/><br/>
+<h3>Warnings</h3>
+1. This AMDA version is a combination of a new web interface with the old AMDA core which we are currently redesigning.<br/>
+2. Names of some parameters have changed - Old requests could fail, let us know of any problem.<br/><br/>  
+<h3>Major changes</h3>
+    * A multi-plot manager enables browsing multiple plots at once<br/>
+    * Long requests are treated in batch mode and managed in a job list<br/>
+    * AMDA can connect to IVOA/SAMP hub to enable VOTable/CDF file transfer<br/>
+    * Automatic download request filled from the plot interface<br/>
+    * Icons for parameters: small grey cirle - scalar; green circle - vector/tensor; orange circle - spectra<br/>
+    * "Kill Process" button is added<br/>
+    * Enhanced plotting options : scatter, resolution, ...<br/>
+    * User Groups : a dataset is disabled in the tree if you don't have access right<br/><br/> 
+
+<h3>Known issues / Implementations to come</h3>
+    * Editing a new parameter from edited and/or uploaded parameters<br/>
+    * Plotting spectra from uploaded or remote data<br/>
+    * Catalogues and shared time tables will come back in a later version 
\ No newline at end of file
diff --git a/help/releaseNotes.1.2 b/help/releaseNotes.1.2
new file mode 100644
index 0000000..06c4491
--- /dev/null
+++ b/help/releaseNotes.1.2
@@ -0,0 +1,23 @@
+<IMG align="right" SRC="help/images/picto_amda.png"/>
+<br/><h2>Welcome on AMDA !</h2> 
+<i>Release version: 1.2<br/>
+   Release date :  2014-03-05</i>
+<br/><br/><br/>
+
+<h3>Warnings</h3>
+  This AMDA version is a combination of a new web interface with the old AMDA core which we are currently redesigning.<br/><br/> 
+ 
+<h3>Major changes</h3>
+    * You may create a new parameter from derived and/or uploaded ones<br/>  
+    * File downloading is not allowed if the estimated file size is greater than 200MB<br/>
+    * Time selection may be done by drag-and-drop of the parameter (<i>Local</i> or <i>MyData</i>)<br/> 
+       from Parameter tree onto the Time Selector<br/>
+    * Time selection is saved / restored between sessions.
+
+<br/><br/><h3>Bugs corrections and minor changes</h3>
+    * Numerous bugs concerning uploaded data, time formats etc have been fixed.
+   
+
+<br/><br/><h3>Known issues / Implementations to come</h3>    
+    * Plotting spectra from uploaded or remote data<br/>
+    * <a href="http://cdpp.eu/SHARED/timetablerepository.html" target="_blank" style="text-decoration: none">Catalogues and sharing time tables will come back in a later version</a> 
\ No newline at end of file
diff --git a/help/releaseNotes.1.3 b/help/releaseNotes.1.3
new file mode 100644
index 0000000..4717740
--- /dev/null
+++ b/help/releaseNotes.1.3
@@ -0,0 +1,27 @@
+<IMG align="right" SRC="help/images/picto_amda.png"/>
+<br/><h2>Welcome on AMDA !</h2> 
+<i>Release version: 1.3<br/>
+   Release date :  2014-04-10</i>
+<br/><br/><br/>
+
+<h3>Warnings</h3>
+  This AMDA version is a combination of a new web interface with the old AMDA core which we are currently redesigning.<br/><br/> 
+ 
+<h3>Major changes</h3>
+    * You may now download MyData parameters<br/>  
+    * Local Parameters can be sorted out by mission names (default) or by mission main target<br/>
+    * Parameters tree modifs: 'target' icons at mission level, several renamings <br/>
+    // <i>No icon for the 'Interplanetary Space' for the moment - may be you propose something...</i><br/> 
+    * 'Model' (Geomagnetic field models and IMPEX) parameters with arguments can be used in new parameter construction, data mining and downloading <br/>
+ <br/>    
+<h3>IMPEX  changes</h3>
+    * 'getMostRelevantRun' method is implemented for FMI_GUMICS
+
+<br/><br/><h3>Bugs corrections and minor changes</h3>
+    * Numerous bugs concerning uploaded data, parameters access etc have been fixed.
+   
+
+<br/><br/><h3>Known issues / Implementations to come</h3> 
+    * Spectra data type downloading  is implemented for the limited number of data sets<br/>   
+    * Plotting spectra from uploaded or remote data<br/>
+    * <a href="http://cdpp.eu/SHARED/timetablerepository.html" target="_blank" style="text-decoration: none">Catalogues and sharing time tables will come back in a later version</a> 
\ No newline at end of file
diff --git a/help/releaseNotes.1.3.1 b/help/releaseNotes.1.3.1
new file mode 100644
index 0000000..85fc848
--- /dev/null
+++ b/help/releaseNotes.1.3.1
@@ -0,0 +1,27 @@
+<IMG align="right" SRC="help/images/picto_amda.png"/>
+<br/><h2>Welcome on AMDA !</h2> 
+<i>Release version: 1.3.1<br/>
+   Release date :  2014-05-20</i>
+<br/><br/><br/>
+
+<h3>Warnings</h3>
+  This AMDA version is a combination of a new web interface with the old AMDA core which we are currently redesigning.<br/><br/> 
+ 
+<h3>Major changes</h3>
+    * Reodering of Local Data Parameter tree<br/>  
+    * MESSENGER ephemerides - several plot presentations are available - use arguments!<br/>
+    * New data (group TEST): Solar Wind predictions at Mars, Jupiter, Saturn orbits - Chihiro Tao model. 
+    
+ <br/><br/>    
+<h3>Attention! MESSENGER ephemerides changes</h3>
+    * All values are in corresponding planet' RADIUS or AU. Sampling time is 1 min for flybys/orbit,
+      20 min for 'full' mission data set
+
+<br/><br/><h3>Bugs corrections and minor changes</h3>
+    * Numerous bugs concerning derived parameters download, parameters access etc have been fixed.
+   
+
+<br/><br/><h3>Known issues / Implementations to come</h3> 
+    * Spectra data type downloading  is implemented for the limited number of data sets<br/>   
+    * Plotting spectra from uploaded or remote data<br/>
+    * <a href="http://cdpp.eu/SHARED/timetablerepository.html" target="_blank" style="text-decoration: none">Catalogues and sharing time tables will come back in a later version</a> 
\ No newline at end of file
diff --git a/help/remoteIntro b/help/remoteIntro
new file mode 100644
index 0000000..fcc457f
--- /dev/null
+++ b/help/remoteIntro
@@ -0,0 +1,29 @@
+<h2><img src="js/resources/images/16x16/interop.png" style="margin: 0px 10px 0px 0px;"/>Remote Data</h2>
+<p>
+<img src="help/images/remote1.png" align="left" style="margin: 0px 3px 0px 0px;"/>
+With <b><i>Remote Data</i></b> you have access to data stored in the different 
+distant data centers.
+</p>
+<p> Parameters from some small data centers are added by default
+to the tree (<b><i>Full Bases</i></b>). 
+</p>
+<p>
+Parameters from the huge data centers such as CDAWeb  
+have to be added manually via <img src="js/resources/images/16x16/interop.png">  
+<b><i>Interoperability Module</i></b>.
+</p>
+<p>
+Some data centers could be <i>disabled</i> - it means that they are under testing
+or development. 
+</p>
+<p>
+<img src="help/images/remote2.png" align="right" style="margin: 0px 0px 0px 5px;"/>
+You may always <b><i>delete</i></b> data at any level of <b><i>Remote Data</i></b> tree
+using context menu opened on the mouse <b><i>right click</i></b>. If you select 
+<b><i>Add Data</i></b> item the Interoperability Module window is opened with
+the corresponding Data Center selected.
+</p>
+<p>
+Requested data are stored in the AMDA Internal buffer base and kept there for several days.
+Data storage duration depends on their usage statistics.  
+</p>
\ No newline at end of file
diff --git a/help/resourceHelp b/help/resourceHelp
new file mode 100644
index 0000000..4ab69ed
--- /dev/null
+++ b/help/resourceHelp
@@ -0,0 +1,10 @@
+<h3>Resources Tree</h3></br>
+<IMG SRC="help/images/resources.png"/></br>
+To add a filter on LocalData, click on <IMG SRC="help/images/edit.png" />, to reset the filter click on <IMG SRC="help/images/cancel.png" /></br></br>
+<h3>Filters</h3>
+<IMG SRC="help/images/filtre.png" /></br>
+1 : Select a filter, create a new one, or remove an existing one.  </br>
+2 : Use <b>right click to add or remove a condition</b> in a filter group. </br>
+3 : Select the condition in the list. </br>
+4 : Use <b>Save</b> button to save your modifications. </br>
+5 : Use <b>Apply</b> button to apply current selected filter to the Workspace Explorer.
\ No newline at end of file
diff --git a/help/resourceTree b/help/resourceTree
new file mode 100644
index 0000000..19b9d09
--- /dev/null
+++ b/help/resourceTree
@@ -0,0 +1,20 @@
+<h2><img  src="js/resources/images/16x16/view_tree.png" style="margin: 0px 10px 0px 0px;"/>WorkSpace Explorer : Resources Tree</h2>
+<p><b><i>Workspace Explorer</i></b> displays information on the current state of user workspace (WS).
+Note that WS size is limited to 200MB.<br/>
+The key part of the Workspace Explorer is the <b><i>Resources Tree</i></b>. 
+It shows the main objects you have access to: </p>
+<p>
+<img  src="help/images/resourcesTree.png" align="left" style="margin: 0px 25px 0px 0px;"/>
+<li><b><i>Parameters</i></b> - different physical parameters ("base" parameters) which 
+are stored in the local and remote data bases or directly in the user WS and can be treated by AMDA modules. 
+ 
+<li><b><i>Derived Parameters</i></b> - parameters which you may construct from base parameters with the help of mathematical expressions.
+ 
+<li><b><i>Aliases</i></b> - short names user may give to base parameters.
+ 
+<li><b><i>Time Tables</i></b> (TT) - files containing time intervals of interest. 
+You may use TTs as input times in AMDA Modules (plot, download,...etc).
+ 
+<li><b><i>My Files</i></b> - you may create your own small data base by uploading files into your WS. 
+ </p>
+<br/>        
\ No newline at end of file
diff --git a/help/simu/Gumics b/help/simu/Gumics
new file mode 100755
index 0000000..42e757f
--- /dev/null
+++ b/help/simu/Gumics
@@ -0,0 +1,30 @@
+
+<h2> IMPEx getMostRelevantRun based on a <a href="http://impex-fp7.fmi.fi/ws_tests/test_getMostRelevantRun.php" TARGET=_BLANK>FMI algorithm</b></a>.</h2>
+
+ 
+<UL>
+  <li> <b>General</b>
+<br/>    
+<p>
+This page demonstrates the use of the 'getMostRelevantRun' method. This method is intended to help users to find those simulation runs in SMDB's tree.xml file whose input parameters best match the given solar wind conditions. For each simulation run in the tree.xml file the method computes a 'difference index'. This 'difference index' is a sum of individual difference indices (one for each solar wind parameter defined in the input parameter set). If valuesw, scalesw and weightsw denote the value, scale and weight, respectively, of given input value for solar wind parameter 'sw' and valuesw(i) is the value of this solar wind parameter for i'th run then the difference index for this run (i) is computed as
+</p>
+<p>    
+<b>S_diff(i) = ∑ weight_sw * [(value_sw - value_sw(i))/scale_sw]^2</b>
+</p>
+<p>
+where the sum runs over all given solar wind parameters 'sw'. The smaller the 'difference index' the better the match. A perfect match will give 'difference index' zero.
+</p>
+<p>    
+As an output the method returns the list of matching runs ordered according to the total difference index in ascending order. So the 'most relevat run' is the first element. The list is in json format. The structure of the json string is displayed when clicking in the 'Show json' button at the bottom of the page.
+</p> 
+<p>
+To use this demo fill all necessary fields in the 'Input parameters' table below. For those solar wind parameters that you want to be taken into account in the fitting procedure set the 'value' to the desired value, for other fields leave the 'value' field empty. The 'weight' and 'scale' fields are set to default values but may be freely edited. Note that the input solar wind parameters in the getMostRelevantRun method must be expressed in base SI units (m, m/s, T, 1/m^3, ...) ! 
+</p>
+    <li> <b>SW_Function </b>
+<p>        
+  The SW_function input parameter allows user to define his/her own input parameter which is a combination of other solar wind input parameters. The SW_Function's 'function' parameter is a string which defines the expression how this input parameter is constructed. The variable names for the solar wind parameters used in this string are same as the names of the input parameters (i.e. 'SW_Density', 'SW_Temperature', 'SW_Bot', ...). Standard math functions (sqrt, sin, abs, ...) which are available in PHP may be used.
+</p>
+<p>      
+  An example: The user wants to find runs where the ratio |Bx/Btot| is near to one. Then he/she may set the function string as 'abs(SW_Bx/SW_Btot)' and value -> 1, weight -> 1 and scale -> 1. 
+</p>
+</UL>
diff --git a/help/simu/TargetsSimu.xml b/help/simu/TargetsSimu.xml
new file mode 100644
index 0000000..68abebb
--- /dev/null
+++ b/help/simu/TargetsSimu.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0"?>
+<DataCenters>
+  <Local>
+    <target>Comet</target>
+    <target>Saturn</target>
+    <target>Saturn.Magnetosphere</target>
+    <target>Jupiter</target>
+    <target>Jupiter.Magnetosphere</target>
+    <target>Ganymede</target>
+    <target>Mars</target>
+    <target>Heliosphere</target>
+    <target>Mercury.Magnetosphere</target>
+    <target>Venus</target>
+    <target>Mercury</target>
+    <target>Heliosphere.Remote1AU</target>
+    <target>Heliosphere.NearEarth</target>
+    <target>Earth.Magnetosheath</target>
+    <target>Earth.Magnetosphere</target>
+    <target>Earth.Surface</target>
+    <target>Earth</target>
+  </Local>
+</DataCenters>
diff --git a/help/standardTimeFormat b/help/standardTimeFormat
new file mode 100755
index 0000000..f0f899a
--- /dev/null
+++ b/help/standardTimeFormat
@@ -0,0 +1,34 @@
+
+<h2>Standard Time Format</h2><br/>
+
+ Two possible ASCII file formats:
+ 
+   <ul>1. "Running" Time:  
+   <li> line 1: Time Parameter1 Parameter2_Component1 Parameter2_Component2 Parameter2_Component3 Parameter3 .....
+   <li> line 2: Time Parameter1 Parameter2_Component1 Parameter2_Component2 Parameter2_Component3 Parameter3 .....
+   <li>  ..................... 
+   </ul>
+ <br/>
+   <ul>2. StartTime and DeltaT
+   <li> line 1: StartTime (<b>standard format only!</b>) DeltaT_in_Secs
+   <li> line 2: Parameter1 Parameter2_Component1 Parameter2_Component2 Parameter2_Component3 Parameter3 .....
+   <li> .....................
+  </ul>    
+ <br/> 
+By default AMDA assumes that Time is "standard" formatted:
+
+  <ul><b>DATE:</b> 
+    <li> YYYYMMDD   (20011128)
+    <li> YYYY/MM/DD (2001/11/28)
+    <li> YYYY-MM-DD (2001-11-28)
+  </ul> 
+ 
+  <ul><b>TIME:</b> 
+    <li> THH:MM:SS[.MSEC] (T10:25:15[.003])
+    <li> THHMMSS (T102515)
+  </ul> 
+<br/>
+ An example of standard formatted Date+Time: <b>2001-11-28T10:25:15</b> <br/><br/>
+ <b>Valid time range: 1970-01-01 - 2038-01-19</b>
+
+
diff --git a/help/statisticalHelp b/help/statisticalHelp
new file mode 100644
index 0000000..3b2913f
--- /dev/null
+++ b/help/statisticalHelp
@@ -0,0 +1,8 @@
+<h2>Time table statistical information</h2>
+When hitting the <b>"Apply"</b> button the following data on the edited time table are computed from the list of intervals :</br></br>
+<ul>
+<li>The <b>minimum</b> and <b>maximum</b> durations with corresponding intervals (following the '--' signs)</li></br>
+<li>The <b>mean</b>, <b>the standard deviation (St. dev)</b> and the <b>median</b> of interval durations</li><br/>
+<li>The <b>density</b> of the time table in the global time span : this is the ratio of the sum of all interval durations over the global time span, i.e. the duration of the interval starting with the min 'Start' and finishing with the max 'Stop'.</li>
+</ul>
+The <b>density</b> is an indication of the occurrence frequency of the event described in a time table.
diff --git a/help/timetableHOWTO b/help/timetableHOWTO
new file mode 100644
index 0000000..15fd76f
--- /dev/null
+++ b/help/timetableHOWTO
@@ -0,0 +1,4 @@
+ 
+  To edit a time table <b><i>double click</i></b> one of your time tables from the Time Tables tree 
+  or use context menu (<b><i>right click</i></b> at Workspace Explorer).<br/>
+  <b><i>Attention!</i></b> Don't use spaces in the time table name. <br/>
\ No newline at end of file
diff --git a/help/timetableHelp b/help/timetableHelp
new file mode 100755
index 0000000..c1e479e
--- /dev/null
+++ b/help/timetableHelp
@@ -0,0 +1,19 @@
+<h2><img  src="js/resources/images/16x16/timeTable.png" style="margin: 0px 10px 0px 0px;"/> Managing Time Tables</h2> 
+<p>
+Within this module you can edit and manipulate your time tables,
+make operations on intervals ( Extend/Shift, Merge ),
+and obtain different statistical information on time table intervals duration. 
+</p>  
+<p>
+Very usefull  feature is time table <b><i>Filtering</i></b>. Click a column header you wish to filter, select 
+<b><i>Filters</i></b> in pulldown menu, enter desired values and get the filtered time table. </p>
+ <img class="centered" src="help/images/ttfilt.png"/>
+<p>
+  Note that filtered column is marked by <b><i>bold italic</i></b> font. To unset filter click <b>Clear Filters</b>.
+  You may save newly created filtered time table.
+</p>
+<p>
+<img src="help/images/ttcols.png" align='right' style="margin: 0px 0px 0px 15px;"/>
+You may always <b><i>Sort Ascending or Descending</i></b> any column you like and show <b><i>Duration</i></b>
+in different units.
+</p>
\ No newline at end of file
diff --git a/help/timetables b/help/timetables
new file mode 100644
index 0000000..847c43b
--- /dev/null
+++ b/help/timetables
@@ -0,0 +1,18 @@
+<h2><img  src="js/resources/images/16x16/view_tree.png" style="margin: 0px 10px 0px 0px;"/>Resources Tree: Time Tables</h2> 
+<p>
+There are two different <b><i>Time Tables</i></b> types in AMDA - common and private.
+<b><i>My Time Tables</i></b> are accessible by the owner only while <b><i>Shared Time Tables</i></b> are open
+to the whole community.</p>
+<p>
+Time Tables can be generated by DataMining module, or you may create
+them manually during Interactive Plot Session, or upload from
+your local machine or URL. All your time tables are stored in your WS and
+<b>can be used as input times</b> for AMDA modules. 
+</p>
+<p>To access the TimeTable' context menu <b>right click</b> the node in the TimeTable tree.
+Note that menu depends on the type of the node clicked (root, folder, leaf..).
+<b><i>Edit Time Table</i></b> menu item (or <b>double click</b> the time table name) opens <b><i>Manage Time Tables</i></b> module. 
+</p><p>
+<img class="centered" src="help/images/tt_1.png"/>
+</p> 
+ 
\ No newline at end of file
diff --git a/help/ttOperationsHOWTO b/help/ttOperationsHOWTO
new file mode 100644
index 0000000..4e61d2b
--- /dev/null
+++ b/help/ttOperationsHOWTO
@@ -0,0 +1,6 @@
+To merge/intersect the time tables, <b><i>drag</i></b> them from the Time Tables tree and 
+<b><i>drop</i></b> onto the panel.<br/>
+The result time table is saved into your Workspace and is automatically loaded 
+into Time Table Manager.
+
+
diff --git a/help/ttOperationsHelp b/help/ttOperationsHelp
new file mode 100755
index 0000000..f60c61b
--- /dev/null
+++ b/help/ttOperationsHelp
@@ -0,0 +1,16 @@
+<h2><img  src="js/resources/images/16x16/operations.png" style="margin: 0px 10px 0px 0px;"/>Operations on Time Tables</h2>
+<img class='centered' src="help/images/ttOpers.png"/>
+<br/>
+<p>
+To merge/intersect the time tables <b><i>drag</i></b> them from the Time Tables tree and <b><i>drop</i></b> onto the panel. 
+The result time table is saved into your Workspace and is automatically loaded into the Time Table Manager.
+</p>
+<p>
+The result name in case of two input tables:
+<br/> Merge: <i>timetable1_<b>M</b>_timetable2</i> || Intersect: <i>timetable1_<b>I</b>_timetable2</i>
+</p>
+<p>
+In case of more than two input tables:
+<br/> Merge: <i>number-of-input-tts_<b>Merge</b>_[index]</i> || Intersect: <i>number-of-input-tts_<b>Intersect</b>_[index]</i>
+</p>
+<br/>
diff --git a/help/ttShared b/help/ttShared
new file mode 100644
index 0000000..5acfc84
--- /dev/null
+++ b/help/ttShared
@@ -0,0 +1,4 @@
+<h2><img src="js/resources/images/16x16/timeTable.png" style="margin: 0px 10px 0px 0px;"/>Shared Time Tables</h2>
+<b>TBD</b> 
+<br/>
+<br/>        
\ No newline at end of file
diff --git a/help/uploadDataHelp b/help/uploadDataHelp
new file mode 100755
index 0000000..d3b4b8c
--- /dev/null
+++ b/help/uploadDataHelp
@@ -0,0 +1,49 @@
+<h2><img src="js/resources/images/16x16/mydata.png" style="margin: 0px 10px 0px 0px;"/>Uploading Data Files</h2>
+<img class="centered" src="help/images/uploadfile_1.png" style="margin: 0px 10px 0px 0px;"/>
+<p>
+<b>1 :</b> Select data file source -  <b><i>Local</i></b> or <b><i>Remote (URL)</i></b>.
+</p>
+<p>
+<b>2 :</b> In the case of <b><i>URL</i></b> you may specify the URL of the site (<b><i>FTP</i></b>
+access only for the moment!) and select the file by browsing the remote files. 
+</p>
+<p>
+<b>3 :</b> Or put the full file URL (http or ftp) directly into the form.
+</p>
+<p>
+<img align="left" src="help/images/uploadfile_2.png" style="margin: 0px 15px 0px 0px;"/>
+<b>4 :</b> File format is detected automatically - if not, select the format.
+</p>
+<p>For all file formats except <b><i>ASCII</i></b> time format is defined by file format.
+</p><p>
+ASCII format allows different time definitions.
+</p><p>
+Note that ASCII files may have different structure - 
+<b><i>"Running" Time</i></b> with time at every file line and  with <b><i>StartTime-DeltaT</i></b>
+in the header of the file.
+</p>
+<p>
+<b>5 : </b>Don't forget to click the <b><i>Upload</i></b> button.
+</p>
+<p>
+<b>6 : </b>If there is no error the file is saved into your Workspace and  added 
+to the <b><i>My Files</i></b> tree.
+</p>
+<p>
+<b>7 : </b>  
+Special <b><i>Mydata</i></b> window for creating parameters from the uploaded files (<b><i>MyData parameters</i></b>)
+is opened. Depending on the file format you may select MyData parameter from the existing in the file (CDF,netCDF, CEF, VOTable)
+or define it by selecting the file columns (ASCII). 
+</p><p>
+Note that <b><i>Mydata</i></b> form is opened also with the 
+<b><i>Edit File</i></b>   of the 
+ context menu of the
+<b><i>My Files</i></b> tree.
+</p>
+<p>
+<br/>
+<img class="centered" src="help/images/uploadfile_3.png"/>
+</p>
+<p> 
+<b>Warning</b> : File size is limited to 30MB
+</p>
\ No newline at end of file
diff --git a/help/uploadHelp b/help/uploadHelp
new file mode 100755
index 0000000..eb5a2b5
--- /dev/null
+++ b/help/uploadHelp
@@ -0,0 +1,81 @@
+<h2><img src="js/resources/images/16x16/mydata.png" style="margin: 0px 10px 0px 0px;"/> Uploading Data</h2>
+<img class="centered" src="help/images/uploadfile_1.png" style="margin: 0px 10px 0px 0px;"/>
+<p>
+<b>1 :</b> Select data file source -  <b><i>Local</i></b> or <b><i>Remote (URL)</i></b>.
+</p>
+<p>
+<b>2 :</b> In the case of <b><i>URL</i></b> you may specify the URL of the site (<b><i>FTP</i></b>
+access only for the moment!) and select the file by browsing the remote files. 
+</p>
+<p>
+<b>3 :</b> Or put the full file URL (http or ftp) directly into the form.
+</p>
+<p>
+<img align="left" src="help/images/uploadfile_2.png" style="margin: 0px 15px 0px 0px;"/>
+<b>4 :</b> File format is detected automatically - if not, select the format.
+</p>
+<p>For all file formats except <b><i>ASCII</i></b> time format is defined by file format.
+</p><p>
+ASCII format allows different time definitions.
+</p><p>
+Note that ASCII files may have different structure - 
+<b><i>"Running" Time</i></b> with time at every file line and  with <b><i>StartTime-DeltaT</i></b>
+in the header of the file.
+</p>
+<p>
+<b>5 : </b>Don't forget to click the <b><i>Upload</i></b> button.
+</p>
+<p>
+<b>6 : </b>If there is no error the file is saved into your Workspace and  added 
+to the <b><i>My Files</i></b> tree.
+</p>
+<p>
+<b>7 : </b>  
+Special <b><i>Mydata</i></b> window for creating parameters from the uploaded files (<b><i>MyData parameters</i></b>)
+is opened. Depending on the file format you may select MyData parameter from the existing in the file (CDF,netCDF, CEF, VOTable)
+or define it by selecting the file columns (ASCII). 
+</p><p>
+Note that <b><i>Mydata</i></b> form is opened also with the 
+<b><i>Edit File</i></b>   of the 
+ context menu of the
+<b><i>My Files</i></b> tree.
+</p>
+<p>
+<br/>
+<img class="centered" src="help/images/uploadfile_3.png"/>
+</p>
+<br/><br/> 
+<h2><img src="js/resources/images/16x16/mydata.png" style="margin: 0px 10px 0px 0px;"/>Uploading Time Table</h2>
+<img align="left" src="help/images/uploadtt_1.png" style="margin: 0px 10px 0px 0px;"/>
+<p>
+<b>1 :</b> Select time table source -  <b><i>Local</i></b> or <b><i>Remote (URL)</i></b>.
+</p>
+<p>
+<b>2 :</b> In the case of <b><i>URL</i></b> you may specify the URL of the site (<b><i>FTP</i></b>
+access only for the moment!) and select the file by browsing the remote files.
+</p>
+<p>
+<b>3 :</b> Or put the full file URL (http or ftp) directly into the form.
+</p>
+<p>
+<img align="left" src="help/images/uploadTT_2.png" style="margin: 0px 18px 10px 12px;"/>
+<b>4 :</b> Time table format is detected automatically - if not, select the format.
+</p>
+<p><b><i>VOTable</i></b> format uses ISO time definition.
+</p>
+<p>
+<b><i>ASCII</i></b> format allows different time definitions 
+</p><p>
+Valid time range: <b><i>1970-01-01 - 2038-01-19</i></b>.
+</p>
+<p>
+<b>5 : </b> Don't forget to click the <b><i>Upload</i></b> button.
+</p>
+<p>
+<b>6 : </b>The uploaded time table is shown in the <b><i>TimeTable Manager</i></b>
+<img src="js/resources/images/16x16/timeTable.png" style="margin: 0px 10px 0px 0px;"/> window
+and user has to <b><i>save</i></b> it in order to store in the WorkSpace.
+</p>
+<p> 
+<b>Warning</b> : File size is limited to 30MB
+</p>  
\ No newline at end of file
diff --git a/help/uploadTTHelp b/help/uploadTTHelp
new file mode 100755
index 0000000..375c9db
--- /dev/null
+++ b/help/uploadTTHelp
@@ -0,0 +1,34 @@
+<h2><img src="js/resources/images/16x16/mydata.png" style="margin: 0px 10px 0px 0px;"/>Uploading Time Table</h2>
+<img align="left" src="help/images/uploadtt_1.png" style="margin: 0px 10px 0px 0px;"/>
+<p>
+<b>1 :</b> Select time table source -  <b><i>Local</i></b> or <b><i>Remote (URL)</i></b>.
+</p>
+<p>
+<b>2 :</b> In the case of <b><i>URL</i></b> you may specify the URL of the site (<b><i>FTP</i></b>
+access only for the moment!) and select the file by browsing the remote files.
+</p>
+<p>
+<b>3 :</b> Or put the full file URL (http or ftp) directly into the form.
+</p>
+<p>
+<img align="left" src="help/images/uploadTT_2.png" style="margin: 0px 18px 10px 12px;"/>
+<b>4 :</b> Time table format is detected automatically - if not, select the format.
+</p>
+<p><b><i>VOTable</i></b> format uses ISO time definition.
+</p>
+<p>
+<b><i>ASCII</i></b> format allows different time definitions 
+</p><p>
+Valid time range: <b><i>1970-01-01 - 2038-01-19</i></b>.
+</p>
+<p>
+<b>5 : </b> Don't forget to click the <b><i>Upload</i></b> button.
+</p>
+<p>
+<b>6 : </b>The uploaded time table is shown in the <b><i>TimeTable Manager</i></b>
+<img src="js/resources/images/16x16/timeTable.png" style="margin: 0px 10px 0px 0px;"/> window
+and user has to <b><i>save</i></b> it in order to store in the WorkSpace.
+</p>
+<p> 
+<b>Warning</b> : File size is limited to 30MB
+</p>
\ No newline at end of file
diff --git a/help/userTimeFormat b/help/userTimeFormat
new file mode 100755
index 0000000..92b6fe1
--- /dev/null
+++ b/help/userTimeFormat
@@ -0,0 +1,30 @@
+
+<h2>NonStandard Time Format</h2>
+
+Year Month Day Hour Minute Second  => in any combination and with different separators
+should be described in the special input area. This input area is displayed after selection of  Nonstandard
+Time Format.<br/> <br/>You have to put:
+
+  <ul>
+    <li> <b>Y</b> - for full numeric representation of a year, 4 digits
+    <li> <b>y</b> - for two digit representation of a year
+    <li> <b>m</b> - for numeric representation of a month, with or without leading zeros
+    <li> <b>F</b> or <b>M</b> - for textual representation, such as January (F) or Jan (M)
+    <li> <b>d</b> - for day of the month  with or without leading zeros
+    <li> <b>z</b> - for the day of the year (starting from 0) with or without leading zeros.<br/> 
+                    Use checkbox if DOY starts from 1 (ie if DOY = 1 corresponds  to 1 Jan)                    
+    <li> <b>H</b> - for 24-hour format of an hour with or without leading zeros
+    <li> <b>i</b> - for minutes <b>with</b> leading zeros
+    <li> <b>s</b> - for seconds <b>with</b> leading zeros
+    <li> <b>.u</b> - for milliseconds, <b>3 digits after decimal point</b>
+    <li> <b>.k</b> - for milliseconds, <b>1 digit after decimal point</b>
+    <li> separators: " ", ":", "-"; "/" 
+  </ul><br/>
+   In case of time formats with spaces and  <b>without leading zeros</b> or full (<b>F</b>) month representation you should fill <b>time length</b> input field
+  <br/><br/>
+      d-m-Y H:i:s.u => '30-06-2001 10:40:20.003' <br/>
+      d m Y H i s.u => '30 6 2001 1 02 20.003'; timeLength => 21<br/>
+      Y/d/m H-i-s => '2001/30/06 10-40-20' <br/>
+   etc...
+<br/><br/>
+<b>Valid time range: 1970-01-01 - 2038-01-19</b> 
diff --git a/help/variableSampling b/help/variableSampling
new file mode 100755
index 0000000..a1a27c7
--- /dev/null
+++ b/help/variableSampling
@@ -0,0 +1,6 @@
+<h2>Variable Time Sampling</h2>
+  In case of variable sampling time AMDA calculates minimal and maximal values.
+  These values are used while plotting parameters in AMDA.<br/>
+  For <b>Data Mining</b>  AMDA takes into account
+  only minimal sampling time and utilisateur should define himself
+  <b>Data Gap</b> greater than maximal sampling value.... 
diff --git a/index.html b/index.html
new file mode 100644
index 0000000..208722f
--- /dev/null
+++ b/index.html
@@ -0,0 +1 @@
+<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Welcome on Amda</title>
<link href="js/resources/css/AccueilAmda.css" rel="stylesheet" type="text/css">
<!-- Login -->
<link rel="stylesheet" type="text/css" href="js/resources/css/login.css" />
<link rel="icon" href="favicon.ico" type="image/x-icon">
<link rel="shortcut icon" href="favicon.ico" type="image/x-icon"> 
</head>

<body>
<div id="centrage">

<div id="trou">

<div id="couvercle"></div>

<div id="TousLesBoutons">
<div id="Btn_FirstVisit" onclick="location.href='help.html';""></div>
<div id="Btn_Rules" onclick="location.href='help/policy.html';"></div>
<form method="POST" action="desktop.php">  
	    <input type="text" name="username" placeholder="LOGIN" id="Btn_EnterLogin" class="PlaceHolder" />   
	    <input type="password" name="password" placeholder="PASSWORD" id="Btn_EnterPassword" class="PlaceHolder"/>
     <div><input id="Btn_Login" type="submit" value=""/></div>
</form> 
<a href="mailto:amda@irap.omp.eu?subject=AMDA registration" id="Btn_Register"></a>
<a href="mailto:amda@irap.omp.eu?subject=AMDA contact" id="Btn_Contact"></a>
<a href="http://cdpp.eu/" id="Logo_CDPP"></a>
<div id="PaveGuest">
<div id="TitrePaveGuest">Try AMDA as a guest</div>
<div id="TextePaveGuest">login: guest</div>
<div id="TextePaveGuest">password : your e-mail address</div>
</div>
<div id="Logos_partenaires"></div>

<div id="PaveAnnoucements">
<div id="TitrePaveAnnoucement">Announcements </div>
<div id="DateAnnoucement">17/09/2014</div>
<div id="TexteAnnoucement">New from PDS : update of Messenger MAG & FIPS data and new CASSINI/CAPS dataset </div>
<div id="TexteAnnoucement">New cometary datasets from Giotto, ICE and Rosetta (quicklooks for CoI only) </div>
<div id="TexteAnnoucement">Solar Wind predictions at planets & Rosetta from C.Tao's MHD model </div>
<div id="DateAnnoucement">28/11/2013</div>
<div id="TexteAnnoucement">The new AMDA is officially launched !</div> 
</div>

</div><!--TousLesBoutons-->
</div><!--trou-->
</div><!--centrage-->
</body>
</html>
\ No newline at end of file
diff --git a/install_notes/AMDAUPDATE b/install_notes/AMDAUPDATE
new file mode 100644
index 0000000..859eea4
--- /dev/null
+++ b/install_notes/AMDAUPDATE
@@ -0,0 +1,40 @@
+AMDA-NG (svn)
+
+   my_config.php - CONFIG
+
+   AmdaUpdate.php [install]
+   AmdaClient.php | THEMIS/base.xml.new
+   wsdl.location
+
+  generic_data/LocalData g+w
+  generic_data/RemoteData g+w
+ 
+AMDA (cvs)
+
+  DDService
+
+    DDServerWeb_ini.php (no DDServerWeb_ini.ryba!!!) - CONFIG
+    dd.wsdl             (no wsdl.ryba!!!) - CONFIG
+
+    DDServerWeb.php    
+    Makefile
+
+  MANAGER => depotManager (separetly!!!)
+ 
+     mgr_ini.php (no mgr_ini.ryba !!!) - CONFIG
+
+     DataCenterMgr.php
+     Makefile
+     THEMIS/makeProxyTHEMIS.php
+     INFO/THEMIS/base.xml: base.xml.old & base.xml.new : keep old for old AMDA
+     INFO/Bases.xml
+     SPASE/xsl/spase2amdaBase.xsl
+     CDAWEB/makeProxyCDAWEB.php
+
+
+while installation of AMDA-NG: php AmdaUpdate.php install
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+IMPORTANT:
+ generic_data/RemoteData: => owner: apache ;  grp : apache
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+to update Start - Stop and check connection:  php AmdaUpdate.php
\ No newline at end of file
diff --git a/install_notes/AMDA_PLUS b/install_notes/AMDA_PLUS
new file mode 100644
index 0000000..e56fa80
--- /dev/null
+++ b/install_notes/AMDA_PLUS
@@ -0,0 +1,12 @@
+These idl codes should be added to old AMDA installation in order AMDA-NG to work.
+
+Copy 
+
+     amdalib/* to /AMDALIB/lib
+     ddlib/*   to /DDLIB/lib
+     predefined/*  - pro specific for amda-ng don't copy; keep as it is
+     pro/*  -  pro specific for amda-ng don't copy; keep as it is 
+     templates/* - pro specific for amda-ng don't copy; keep as it is
+
+Normally there should be no interference between old AMDA and AMDA-NG (TO CHECK)
+So AMDA installation could be used with old AMDA as well as with AMDA-NG
\ No newline at end of file
diff --git a/install_notes/CDF_VERSION_UPDATE b/install_notes/CDF_VERSION_UPDATE
new file mode 100644
index 0000000..9464277
--- /dev/null
+++ b/install_notes/CDF_VERSION_UPDATE
@@ -0,0 +1,13 @@
+CDF VERSION UPDATE
+
+ 1. download, compile and install cdfdist....tar.gz
+
+ 2. download and install idl patches (http://cdf.gsfc.nasa.gov/html/cdf_patch_for_idl.html)
+
+ 3. recompile and reinstall DDLIB/MANAGER (CDAWEB stuff)
+                            DDLIB/DECODERS (cdf2nc)
+                            AMDALIB/WorkSpace/PRO/IDL_INTERNAL
+                            AMDA CDF UPLOAD 
+
+ 4. old_amda cdf_info.pro - check
+                               
\ No newline at end of file
diff --git a/install_notes/CEF b/install_notes/CEF
new file mode 100644
index 0000000..686c57e
--- /dev/null
+++ b/install_notes/CEF
@@ -0,0 +1,5 @@
+CEF_CESR
+
+LIB/src/ERRORS.c => set
+
+static  int             niveau_trace = -1;
\ No newline at end of file
diff --git a/install_notes/DataBaseLog b/install_notes/DataBaseLog
new file mode 100644
index 0000000..2c6b4da
--- /dev/null
+++ b/install_notes/DataBaseLog
@@ -0,0 +1,15 @@
+1. To create BaseLog.xml or to add new VI or to update ALL start-stop.
+
+   ../utils/baseLogCreate/makeDataBaseLog.php
+   configuration file:  baselog_ini.php
+
+   one should have access both
+   to DDsys.xml (DDBASE) and LocalData/DD_.....xml (AMDA)
+    
+2.  To access BaseLog.xml at http://..../BASE/BaseLog.xml 
+    ../utils/baselog.html
+
+
+3. updating of individual datasets during ordinart updating is done by
+   depotDecoder/TOOLS/DataBaselog/updateDataBaseLog.php
+   configuration file:  TOOLS/config.php
\ No newline at end of file
diff --git a/install_notes/EPN_RESOURCES b/install_notes/EPN_RESOURCES
new file mode 100644
index 0000000..ec94036
--- /dev/null
+++ b/install_notes/EPN_RESOURCES
@@ -0,0 +1,80 @@
+
+Petit récapitulatif des étapes qui ont été appliquées :
+
+    1 ère étape: Elle consistait à extraire les informations déjà présentes dans les descripteurs AMDA pour pre-remplir des EPN Resources.
+
+    2 ème étape: En utilisant l'interface de Natacha, les scientifiques ont remplis manuellement les descripteurs EPN Resources manquants (principalement les ressources planétaires).
+
+    3 ème étape: Un script a permis de reinjecter les informations ajoutées lors de la 2 ème étape dans les descripteurs AMDA. Le script en question a été ajouté au repository svn 'depotINFO_params', dans 'TOOLS/epnres2amda.php'.Théoriquement, il n'est plus nécessaire de l'utiliser.
+
+    4 ème étape: Le script AmdaUpdate.php, qui permet de faire une mise à jour des datasets dans AMDA, execute maintenant la création des EPN Resources via l'utilisation de la classe AMDA 'php/classe/EPNResourcesManager.php'. Il créait aussi le fichier 'instruments.xml' qui contient la liste des instruments. Ces fichiers sont créés dans le répertoire 'generic_data/EPNResources/' d'AMDA-NG.
+
+
+Quelques remarques:
+
+    Les étapes 1, 2 et 3 ont été introduites uniquement pour amorcer le process
+
+    Dorénavant, seule l'étape 4 sera systématiquement appliquée pour générer les EPN Resources via les descripteurs AMDA lors d'une mise à jour AMDA.
+
+    Il faut maintenant s'assurer de bien remplir tous les descripteurs dans AMDA, lorsque l'on ajoute une mission, un instrument, un dataset ou un paramètre.
+
+    Les ressources qui n'ont pas été complétées lors de l'étape 2 devront être maintenant complétées depuis les descripteurs AMDA. Si cela se fait via l'interface de Natacha, il faudra envoyer une notification à l'équipe technique pour qu'ils impactent la modification manuellement dans les descripteurs d'AMDA. On ne re-appliquera plus l'étape 3, car le merge des infos est dangereux!
+
+    Les descripteurs manquants (ie. non remplis lors de l'étape 2) sont repérés dans les descripteurs AMDA par 'ToDo'. Par exemple pour la mission MAVEN:
+
+<?xml version="1.0"?>
+<dataRoot>
+  <dataCenter name="AMDA" desc="AMDA_Internal_Data_Base">
+    <mission name="MAVEN" desc="Mars Atmosphere and Volatile Evolution Mission" class="ToDo">
+      <instrument name="orbit" desc="MAVEN position" xml:id="ToDo" refURL="ToDo">
+        <dataset name="orbit_maven" xml:id="mav:orb:mso">
+          <info>
+            <title>ToDo</title>
+            <description>ToDo</description>
+            <creator>ToDo</creator>
+            <calibration>ToDo</calibration>
+          </info>
+          <sampling>300s</sampling>
+          <dataStart>2014/10/29</dataStart>
+          <dataStop>2015/10/26</dataStop>
+          <dataSource>NAIF/SPICE</dataSource>
+          <parameter name="xyz_mso" units="Rm" size="3" xml:id="mav_xyz_mso">
+            <info>
+              <description>ToDo</description>
+              <ucd>ToDo</ucd>
+              <type>ToDo</type>
+            </info>
+            <component name="x" xml:id="mav_xyz_mso(0)"/>
+            <component name="y" xml:id="mav_xyz_mso(1)"/>
+            <component name="z" xml:id="mav_xyz_mso(2)"/>
+          </parameter>
+          <parameter name="r" units="Rm" xml:id="mav_orb_r">
+            <info>
+              <description>ToDo</description>
+              <ucd>ToDo</ucd>
+              <type>ToDo</type>
+            </info>
+          </parameter>
+        </dataset>
+      </instrument>
+    </mission>
+  </dataCenter>
+</dataRoot>
+
+    L'ajout d'un nouveau target se fera dans le fichier 'targets.xml' contenu dans le repository svn 'depotINFO_params'. Ce fichier est exporté dans AMDA lors d'un AmdaUpdate.
+
+    Il faudra penser à ajouter le mot 'spase' correspondant pour chaque target (car AMDA utilise ce data model, notamment pour les filtres), dans un tag 'attributeName'. Par exemple:
+
+  <TargetType id="titan">
+    <targetName>Titan</targetName>
+    <alternateName>naif:606</alternateName>
+    <alternateName>iau:SVI</alternateName>
+    <alternateName>spase:Titan</alternateName>
+    <description>Satellite of Saturn</description>
+    <targetClass id="sat">satellite</targetClass>
+  </TargetType>
+
+    Les fichiers EPN Resources générés (ainsi que les fichiers 'instruments.xml' et 'targets.xml') peuvent très bien être ajoutés dans la base eXist utilisée par l'interface de Natacha pour pouvoir les visualiser plus facilement.
+
+    EPNresource_cass_mag_krtp1s.xml est un exemple d'un EPN resource entièrement rempli via les descripteurs AMDA (contenus dans le fichier DD_Cassini.xml). Ne pas hésiter à le prendre en exemple pour bien comprendre les choses.
+
diff --git a/install_notes/REMOTEPARAM b/install_notes/REMOTEPARAM
new file mode 100644
index 0000000..00800c2
--- /dev/null
+++ b/install_notes/REMOTEPARAM
@@ -0,0 +1,81 @@
+Old AMDA changes for RemoteParams AMDA-NG
+
+-1. if DD Server is working at your machine =>
+       reinstall DDLIB.4.5/SOURCES/CALLEXTERNAL :
+       createVI.php and cdaweb_cfg.php have been modified
+
+
+0.  reinstall AMDALIB.2.0/SOURCES/AMDAEXTERNAL/AddVI.c 
+ TO DO THIS:     
+    a)  in AMDALIB.2.0/SOURCES/Makefile SET TARGETS = AMDAEXTERNAL
+    c) make AMDALIB.2.0-clean
+    d) make AMDALIB.2.0-all
+    e) copy AMDALIB.2.0/SOURCES/AMDAEXTERNAL/AddVI to trunk/php/old_amda
+
+ 
+
+1. reinstall AMDALIB.2.0/SOURCES/PARAMEXTERNAL/getParamAmda.c with BASEDIR === .../trunk/generic_data/RemoteData/PARAMS
+  TO DO THIS:
+    aa) in AMDALIB.2.0/SOURCES/PARAMEXTERNAL/getParamAmda.ryba:  #define BASEDIR "HTMLROOTPATHR/PARAMS/"
+    a)  in AMDALIB.2.0/SOURCES/Makefile SET TARGETS = PARAMEXTERNAL
+    b)  source amda.conf with  
+             export HTMLROOTPATH=.../trunk/generic_data/RemoteData
+    c) make AMDALIB.2.0-clean
+    d) make AMDALIB.2.0-all
+    e) copy AMDALIB.2.0/SOURCES/PARAMEXTERNAL/getParamAmda.so to trunk/php/old_amda
+
+ 
+2. new directory trunk/amda_plus/templates/ with new templates;
+     
+3. DDHTML/RAWINFO is now trunk/generic_data/RemoteData/baseId/
+4. DDHTML/PARAM  is now trunk/generic_data/RemoteData/PARAMS/
+
+5. copy  DDHTML/HTML/cdfInfo into trunk/php/old_amda/cdfInfo
+ 
+modify cdfInfo
+
+#! /bin/sh
+
+ export IDL_DIR=/usr/local/rsi/idl_6.0 
+ export IDL_PATH=/usr/local/rsi/idl_6.0/lib:/home/budnik/AMDANEW/DDLIB/lib:/home/budnik/AMDANEW/AMDALIB/lib:/home/budnik/public_html/AMDA-NG4/trunk/php/old_amda 
+ export IDL_DLM_PATH=$IDL_DIR/bin/bin.linux.x86:/home/budnik/AMDANEW/AMDALIB/dlm
+
+echo '.run param_info' > aaa
+echo  param_info, \'$1\' , \'$2\'  >> aaa
+echo  exit  >> aaa
+
+$IDL_DIR/bin/idl aaa
+
+!!!!! IMPORTANT !!!! don't forget to add .../php/old_amda TO IDL_PATH
+
+6. new dirs (committed): ../generic_data/RemoteData
+    ../generic_data/RemoteData/CDAWEB; ../generic_data/RemoteData/VEXGRAZ; 
+    ../generic_data/RemoteData/MAPSKP;  ../generic_data/RemoteData/THEMIS;
+  
+    ../generic_data/RemoteData/PARAMS
+
+     Bases.xml
+     THEMIS/base.xml (made by hand, Start/Stop should be updated by webservice)
+
+     Bases.xml and all 'base.xml' should be "php AmdaUpdate.php install" during AMDA installation (DD WebServices)
+     After that to update Start-Stop use "php AmdaUpdate.php" without argument (updateOnly)
+
+new for AMDA-NG
+7. THEMIS_CESR => all th*_pe*_sp_init.pro are generated now from templates thX_YYYY_sp_init.pro
+                  args for th*spec - predefined
+
+8. REMEMBER: THEMIS_CESR - EVERYTHING IS PREDEFINED, VIs already exist at DD Server 
+
+9. All datasets XML(CDF) descriptions are either predefined (VEXGRAZ, MAPSKP) or obtained by DD_Server (NEW feature,
+  in old AMDA it was done at AMDA client side) into  the  directory /data/DDBASE/INFO/datacenterID/DATASETS/
+  and obtained by AMDA Client by corresponding URL
+  defined in config.php : define('INFOSITE', 'http://manunja.cesr.fr/BASE/'); (DD Server WebServices address)
+ 
+   NOTE: now there is no symbolic link for RemotParamID.xml to replace ":" by "_" in the param ID. 
+        Only original XML file is used. 
+
+10. php: new class ParamMgr.php; etc
+11. js: new class ParamsMgrUI.js; etc
+
+
+12. minor changes:   print_com.pro, search_com.pro
\ No newline at end of file
diff --git a/install_notes/UPLOAD_DATA b/install_notes/UPLOAD_DATA
new file mode 100644
index 0000000..63fcda4
--- /dev/null
+++ b/install_notes/UPLOAD_DATA
@@ -0,0 +1,7 @@
+Upload Data
+
+ php/src - Makefile should be modified manually
+ make
+ make install
+
+ all executables are installed into php/bin
\ No newline at end of file
diff --git a/install_notes/UserWsTransfer b/install_notes/UserWsTransfer
new file mode 100644
index 0000000..f0561c7
--- /dev/null
+++ b/install_notes/UserWsTransfer
@@ -0,0 +1,20 @@
+1. 
+   utils/conversion dir:
+
+      paramConverter.php => creates mission_convert.xml files par mission
+
+      script tries to map old AMDA parameter to new AMDA parameter by ID, 
+      if fails  by name,
+      if fails - asks to input new parameter ID
+
+       
+      file 'Deleted.xml' is created manually
+
+2.
+     class UserWsTransfer is called during first visit by UsrMgr (if there is no user dir)
+     
+3.  
+     for testing purposes UserWsTransfer could be launched by userWsTransfer.php 
+     in this case user WS is created in the  BASE_PATH/test/ dir.
+
+     
\ No newline at end of file
diff --git a/js/app/AmdaApp.js b/js/app/AmdaApp.js
new file mode 100755
index 0000000..a259ed2
--- /dev/null
+++ b/js/app/AmdaApp.js
@@ -0,0 +1,656 @@
+/** 
+ * Project  : AMDA-NG4
+ * Name     : AmdaApp.js
+ * @class   amdaApp.AmdaApp 
+ * @extends Ext.ux.desktop.App
+ * @brief   Main class defining Amda Desktop and its Modules
+ * @author  Ext JS Library 4.0 Copyright(c) 2006-2011 Sencha Inc. licensing@sencha.com
+ * @version $Id: AmdaApp.js 2540 2014-10-03 09:22:29Z natacha $
+ * @todo  Load/Unload Modules on need
+ *******************************************************************************
+ *    FT Id     :   Date   : Name - Description
+ *******************************************************************************
+ *  :           :07/06/2011: elena - First Modifs for Amda Application
+ */
+
+ 
+Ext.define('amdaApp.AmdaApp', {
+    extend: 'Ext.ux.desktop.App',
+
+    requires: [
+       
+       'Ext.window.MessageBox',
+       'Ext.ux.desktop.ShortcutModel',
+       'amdaUI.SampToolBarUI',
+       'amdaDesktop.DynamicModule',
+       'MyDesktop.Settings'
+    ],
+    
+    dynamicModules: {
+    	param : {
+    		id          : 'param-win',
+    		icon        : 'icon-parameters',
+    		title       : 'Create/modify parameters',
+    		source      : 'amdaDesktop.ParameterModule',
+    		useLauncher : true
+    	},
+    	tt : {
+    		id          : 'timetab-win',
+    		icon        : 'icon-manage-tt',
+    		title       : 'Manage Time Tables',
+    		source      : 'amdaDesktop.TimeTableModule',
+    		useLauncher : true
+    	},
+    	tt_op : {
+    		id          : 'ttsOpe-win',
+    		icon        : 'icon-tts',
+    		title       : 'Operations on Time Tables',
+    		source      : 'amdaDesktop.TimeTableOperationModule',
+    		useLauncher : true
+    	},
+    	plot : {
+    		id          : 'plot-win',
+    	    icon        : 'icon-plot',
+    	    title       : 'Plot Manager',
+    	    source      : 'amdaDesktop.PlotModule',
+    	    useLauncher : true
+    	},
+    	search : {
+    		id          : 'search-win',
+    	    icon        : 'icon-search',
+    	    title       : 'Data Mining',
+    	    source      : 'amdaDesktop.SearchModule',
+    	    useLauncher : true
+    	},
+    	download : {
+    		id          : 'down-win',
+    	    icon        : 'icon-download',
+    	    title       : 'Download data',
+    		source      : 'amdaDesktop.DownloadModule',
+    	    useLauncher : true
+    	},
+    	upload : {
+    		id          : 'up-win',
+    		icon        : 'icon-mydata',
+    		title       : 'Upload data',
+    		source      : 'amdaDesktop.UploadModule',
+    		useLauncher : true
+    	},
+    	interop : {
+    		id          : 'interop-win',
+    		icon        : 'icon-interop',
+    		title       : 'Interoperability',
+    		source      : 'amdaDesktop.InteropModule',
+    		useLauncher : true
+    	},
+    	info : {
+    		id          : 'info-win',
+    		icon        : 'icon-information',
+    		title       : 'About AMDA',
+    		source      : 'amdaDesktop.AboutModule',
+    		useLauncher : false
+    	},	
+    	explorer : {
+    		id          : 'explorer-win',	
+    	    icon        : 'icon-elements',
+    	    title       : 'Workspace Explorer',
+    	    source      : 'amdaDesktop.ExplorerModule',
+    	    useLauncher : false
+    	},
+    	my_data : {
+    		id          : 'mydata-win',
+    	    icon        : 'icon-mydata',
+    	    title       : 'Define parameter',
+    	    source      : 'amdaDesktop.MyDataModule',
+    	    useLauncher : false
+    	},
+    	help : {
+    		id          : 'help-win',
+    		icon        : 'icon-help',
+    		title       : 'Help',
+    		source      : 'amdaDesktop.HelpModule',
+    	    useLauncher : false
+    	},
+    	feedback : {
+    		id          : 'feed-win',
+    		icon        : 'icon-feedback',
+    		title       : 'Feedback',
+    		source      : 'amdaDesktop.FeedbackModule',
+    	    useLauncher : false
+    	},
+    	filters : {
+    		id          : 'filters-win',
+    		icon        : 'icon-filter',
+    		title       : 'Filters',
+    		source      : 'amdaDesktop.FiltersModule',
+    	    useLauncher : false
+    	},
+    	interactive_plot : {
+    		id          : 'plot-mgr',
+    		icon        : 'icon-results',
+    		title       : 'Multi Plot Manager',
+    		source      : 'amdaDesktop.InteractivePlotMgr',
+    	    useLauncher : false
+    	},
+    	result : {
+    		id          : 'result-win',
+    		contentId   : 'resultUI',
+    		icon        : 'icon-results',
+    		title       : 'Results',
+    		source      : 'amdaDesktop.ResultModule',
+    	    useLauncher : false
+    	},
+    	astro : {
+    		id          : 'astroimages-win',
+    		icon        : 'icon-interop',
+    		title       : 'Astronomical Images',
+    		source      : 'amdaDesktop.AstroImagesModule',
+    	    useLauncher : false
+    	}
+    },
+    
+// IDs of Modules working with  parameters; used in Alias Node 
+    paramModulesID : ['plot-win', 'param-win', 'search-win', 'down-win'],
+   
+// Important system constants
+    MAX_UPLOADED_FILE_SIZE : 30000000, // 30MB
+    
+    listeners : {
+		scope : this,
+		beforeunload : function ()
+		{
+			var interopModule = myDesktopApp.getLoadedModule(myDesktopApp.dynamicModules.interop.id);
+			if (interopModule)
+				interopModule.forceSampDisconnect();
+			return true;
+		},
+		ready : function () 
+                {
+				  //AKKA - Clean user WS
+				  AmdaAction.cleanUserWS(function(res,e){},this);
+
+                  if (freeSpace < diskQuota / 20) {
+                     myDesktopApp.warningMsg('Think of cleaning up your work space.<br/>Only ' + 
+                     Math.round(freeSpace/1024/1024)+ 'MB of '+Math.round(diskQuota/1024/1024) +
+                     'MB rests');
+                    }
+                    
+                   if (isFirstVisit && !isGuest) {
+                      if (isSpecialInfo) {           
+                            myDesktopApp.getLoadedModule(myDesktopApp.dynamicModules.info.id, true, function(module) {
+                        		module.createWindow(isSpecialInfo, 'Welcome to AMDA', true);
+                        	});
+                        } else {
+                        	myDesktopApp.getLoadedModule(myDesktopApp.dynamicModules.info.id, true, function(module) {
+                        		module.createWindow(isSpecialInfo, 'Welcome to AMDA', true);
+                            });
+                        }
+                    } 
+                    else {
+                        if (isSpecialInfo) {                    
+                        	myDesktopApp.getLoadedModule(myDesktopApp.dynamicModules.info.id, true, function(module) {
+                                	module.createWindow(isSpecialInfo, 'Welcome to AMDA', true);
+                            });
+                        }
+                  }
+                  if (isGuest) {
+                       myDesktopApp.warningMsg("Welcome to Guest Session<br/>Guest session lasts for "+
+                                                guestSessionDuration/3600+" h maximum<br/>"+
+                                                "For extended use time and functionalities (saved sessions)<br/> please register at amda@irap.omp.eu");
+                       Ext.Function.defer(myDesktopApp.warningMsg,(guestSessionDuration-300)*1000, this, ["Your session will be closed in 5 min!"]);
+                       Ext.Function.defer(myDesktopApp.forceLogout, guestSessionDuration*1000); 
+                  }
+                }
+        },
+    
+    init: function() {
+        // custom logic before getXYZ methods get called...
+
+        this.callParent();
+
+        // now ready...      
+        //override createWindow method of desktop
+        Ext.override(Ext.ux.desktop.Desktop, {
+            createWindow: function (config, cls) {
+                var me = this;
+                var win = this.callParent([config,cls]);
+                win.on({
+                    boxready: function (w) {
+                        w.dd.xTickSize = me.xTickSize;
+                        w.dd.yTickSize = me.yTickSize;
+
+                        if (w.resizer) {
+                            w.resizer.widthIncrement = me.xTickSize;
+                            w.resizer.heightIncrement = me.yTickSize;
+                        }
+                        
+                        if (w.y < 0)
+                            w.el.setY(0);
+                        
+                        if (w.x + w.width > me.el.getWidth())
+                            w.el.setX(me.el.getWidth()-w.width);
+                        
+                        if (w.y + w.height > me.el.getHeight())
+                            w.el.setY((me.el.getHeight()-w.height > 0) ? me.el.getHeight()-w.height : 0);
+                        
+                    },
+                    single: true
+                });
+                return win;
+            }
+        });
+
+    },
+//create InfoBox 
+      infoMsg : function(msg) {
+	  Ext.Msg.show({
+	      title: 'AMDA Info',
+	      cls: 'infoMsg',
+	      msg: msg,	 
+	      modal: false,
+	      autoScroll: true,
+	      resizable: true,
+	      icon: Ext.Msg.INFO,
+	      buttons: Ext.Msg.OK
+	  });
+	},
+	
+//create WarningBox 
+      warningMsg : function(msg) {
+	  Ext.Msg.show({
+	      title: 'Attention',
+	      msg: msg,	 
+	      icon: Ext.Msg.WARNING,
+	      buttons: Ext.Msg.OK
+	  });
+	},
+	
+//create ErrorBox 
+      errorMsg : function(msg) {
+	  Ext.Msg.show({
+	      title: 'Failure',
+	      msg: msg,	 
+	      icon: Ext.Msg.ERROR,
+	      buttons: Ext.Msg.OK
+	  });
+	},	   
+				  
+    getModules : function(){
+    	var allModules = [];
+    	
+    	//Add dynamic modules
+    	Ext.Object.each(this.dynamicModules, function(key, def) {
+    		allModules.push(new amdaDesktop.DynamicModule(def.id, def.icon, def.title, def.source, def.useLauncher));
+    	});
+    	
+        return allModules;
+    },
+
+    getDesktopConfig: function () {
+        var me = this, ret = me.callParent();
+
+        var desktopId = 'AmdaDesktop';
+        var wallpaper = Ext.state.Manager.getProvider().get(desktopId+'_wallpaper');
+        if (!wallpaper)
+        	wallpaper = 'js/resources/images/desktop/wallpapers/Cdpp2.jpg';
+        return Ext.apply(ret, {
+        	id       : desktopId,
+	//	cls: 'ux-desktop-black', // TODO: investigate about uncomplete theme application !!!
+
+            contextMenuItems: [
+                { text: 'Change Settings', handler: me.onSettings, scope: me }
+            ],
+
+            shortcuts: Ext.create('Ext.data.Store', {
+                model: 'Ext.ux.desktop.ShortcutModel',
+                data: [  
+                   { name: 'Help',  iconCls: 'help', module: 'help-win' },  
+                   { name: 'Create/Modify parameter',  iconCls: 'edit', module: 'param-win' },                     
+                   { name: 'Plotting  data',  iconCls: 'plot', module: 'plot-win'},
+                   { name: 'Data mining',  iconCls: 'search', module: 'search-win'},
+                   { name: 'Download data',  iconCls: 'download_manager', module: 'down-win'},
+                   { name: 'Upload data',  iconCls: 'mydata', module: 'up-win'},
+                   { name: 'Manage Time Tables',    iconCls: 'timeTable', module: 'timetab-win' },
+                   { name: 'TimeTables Operations',   iconCls: 'operations', module: 'ttsOpe-win' },//,
+        //         { name: 'My catalogs',  iconCls: 'catalog', module: 'catalog-win'},
+                   { name: 'Interoperability',   iconCls: 'interop', module: 'interop-win' }
+               ]
+            }),
+
+            wallpaper: wallpaper,
+            wallpaperStretch: false
+        });
+    },
+
+    // config for the start menu
+    getStartConfig : function() {
+        var me = this, ret = me.callParent();
+        
+        return Ext.apply(ret, {
+            title: sessionID, 
+            iconCls: 'icon-user',
+            height: 270,
+            toolConfig: {
+                width: 130,
+                items: [
+                    {
+                        text:'Settings',
+                        iconCls:'settings',
+                        handler: me.onSettings,
+                        scope: me
+                    },
+                    '-',                    
+     /*               {
+                        text : 'Manage Workspaces',
+                        iconCls : 'icon-manage-ws',
+                        id : 'mngws-win-tool',
+                        scope : this,
+                        disabled: true,
+                        handler : function(obj, e) {
+                            e.stopEvent();
+                            var moduleId = obj.el.id;
+                            var module = this.getModule(moduleId.replace('-tool', ''));
+                            if (module) {
+                                module.createWindow();
+                            }
+                        }
+                    }, {
+                        text : 'Manage Resources',
+                        iconCls : 'icon-manage-resrc',
+                        id : 'resrc-win-tool',
+                        disabled : true,
+                        handler : function(obj, e) {
+                            e.stopEvent();
+                            var moduleId = obj.el.id;
+                            var module = this.getModule(moduleId.replace('-tool', ''));
+                            if (module) {
+                                module.createWindow();
+                            }
+                        },
+                        scope : this
+                    },
+    */
+                    {
+                        text : 'Profile',
+                        iconCls : 'icon-user',
+                        id : 'profile-win-tool',
+                        handler : function(obj, e) {
+                            e.stopEvent();
+                            AmdaAction.getUserInfo(this.onGetUserInfo,this);
+                        },
+                        scope : this
+                    },{
+                        text : 'Feedback',
+                        iconCls : 'icon-feedback',
+                        id : 'feed-win-tool',
+                        handler : function(obj, e) {
+                            e.stopEvent();
+                            var moduleId = obj.el.id;
+                            this.getLoadedModule(moduleId.replace('-tool', ''), true, function(module) {
+                            	module.createWindow();
+                            });
+                            
+                        },
+                        scope : this  
+                    }, {
+                        text : 'Help',
+                        iconCls : 'icon-help',
+                        id : 'help-win-tool',
+                        scope : this,
+                        handler : function(obj, e) {
+                            e.stopEvent();
+                            var moduleId = obj.el.id;
+                            this.getLoadedModule(moduleId.replace('-tool', ''), true, function(module) {
+                            	module.createWindow();
+                            });
+                        }
+                    }, {
+                        text : 'About AMDA',
+                        iconCls : 'icon-information',
+                        id : 'info-win-tool',
+                        scope : this,
+                        handler : function(obj, e) {
+                            e.stopEvent();
+                            var moduleId = obj.el.id;
+                            this.getLoadedModule(moduleId.replace('-tool', ''), true, function(module) {
+                            	module.createWindow();
+                            });
+                        }
+                    }, '-', {
+                        text : 'Workspaces',
+                        iconCls : 'icon-ws',
+                        disabled: true,
+                        scope : this
+                    }, '-', {
+                        text : 'Logout',
+                        iconCls : 'logout',
+                        scope : this,                     
+                        handler : me.onLogout
+                    }
+                ]
+            }
+        });
+    },
+    
+    getModuleDefinition: function(id) {
+    	return this.getModule(id);
+    },
+    
+    getLoadedModule: function(id, forceLoad, onReady) {
+    	var moduleDef = this.getModuleDefinition(id);
+    	if (!moduleDef)
+    		return null;
+    	if (!moduleDef.isReady())
+    	{	
+    		if (forceLoad)
+    		{
+    			//loadMask.show();
+    			moduleDef.get(function (module) {
+    				//loadMask.hide();
+    				if (onReady)
+    					onReady(module);
+    			});
+    		}
+    		return null;
+    	}
+    	if (onReady)
+			onReady(moduleDef.get());
+    	return moduleDef.get();
+    },
+    
+    getTaskbarConfig: function () {
+        var ret = this.callParent();
+        
+        return Ext.apply(ret, {
+            quickStart: [],
+            trayItems: [
+                {
+                	name: this.dynamicModules.feedback.title, iconCls: 'icon-feedback', 
+                	tooltip: { text: this.dynamicModules.feedback.title, align: 'bl-tl' },
+                	overflowText: this.dynamicModules.feedback.title,
+                	iconCls: this.dynamicModules.feedback.icon,
+                	scope: this,
+                	handler : function(obj, e) {
+                		e.stopEvent();
+                		this.getLoadedModule(this.dynamicModules.feedback.id, true, function(module) {
+                        	module.createWindow();
+                        });
+                	}
+                },
+                {
+                    name: this.dynamicModules.info.title, iconCls: 'icon-information', 
+                	tooltip: { text: this.dynamicModules.info.title, align: 'bl-tl' },
+                	overflowText: this.dynamicModules.info.title,
+                	iconCls: this.dynamicModules.info.icon,
+                	scope: this,
+                	handler : function(obj, e) {
+                		e.stopEvent();
+                		this.getLoadedModule(this.dynamicModules.info.id, true, function(module) {
+                        	module.createWindow();
+                        });
+                    }
+                },
+                {
+                    name: 'Logout', iconCls : 'logout',
+                    tooltip: { text: 'Logout', align: 'bl-tl' },
+                    overflowText: 'Logout',
+                    scope : this,                     
+                    handler : this.onLogout
+                },
+                '-',
+                { xtype: 'trayclock', flex: 1 }
+            ]
+        });
+    },
+
+    onLogout: function (obj,e) {
+    	e.stopEvent();	
+    //	var interopModule = this.getModule(amdaDesktop.InteropModule.id);       
+    	if (isGuest) { 
+           this.guestLogout();             
+        }
+        else {
+            this.saveSessionState();
+        }       
+    },
+    
+    onGetUserInfo : function (result, e){
+    	var t = e.getTransaction();
+		if (e.status) 
+		{	
+			if (result && result.success)
+			{
+				// SUCCESS  
+				var msg = '<b>Login :</b> '+result['login']+'<br/>';
+				msg += ('<b>Last Name :</b> '+result['name']+'<br/>');
+				msg += ('<b>First Name :</b> '+result['first_name']+'<br/>');
+				msg += ('<b>Groups :</b> '+result['group']+'<br/>');
+				msg += ('<b>Email :</b> '+result['email']+'<br/>');
+				msg += ('<b>Registration date :</b> '+result['date']+'<br/>');
+				msg += ('<b>Receive Newsletter :</b> '+(result['news'] == "1"?"true":"false")+'<br/>');
+				
+				this.infoMsg(msg);
+			}
+			else
+			{
+				//ERROR
+				this.errorMsg('Cannot get user info');
+			}
+		}
+		else
+		{
+			// FAILURE
+			this.errorMsg('Cannot get user info : '+e.message);
+		} 
+	},
+        
+        
+    guestLogout: function()
+    {
+        Ext.Msg.show({
+                        title : 'Logout', 
+                        msg   :'Your guest workspace is to be deleted. Continue logout ?',
+                        buttons : Ext.Msg.YESNO,
+                        iconCls : 'logout', 
+                        fn : function(btn) {
+                          if (btn == 'yes')
+                          {
+                            AmdaAction.logout(true, function(){
+                                sessionID = '';
+                                window.location.href ='index.html';  
+                            });                                                                                      
+                          }                           
+                        }
+                    });               
+    },
+    
+    forceLogout: function()
+    {
+      //  myDesktopApp.warningMsg('Your guest session is finished');
+        AmdaAction.logout(true, function(){
+                                sessionID = '';
+                                window.location.href ='index.html';  
+                            });  
+    },
+        
+    saveSessionState : function()
+    {
+        var me = this;
+        Ext.Msg.show({
+                        title : 'Logout', 
+                        msg   :'Do you want to keep current windows sizes and locations<br/> for the next sessions?',
+                        buttons : Ext.Msg.YESNOCANCEL,
+                        iconCls : 'logout', 
+                        fn : function(btn) {
+	                  if (btn == 'yes')
+	                  {
+                            //set wallpaper
+                            Ext.state.Manager.getProvider().set(me.desktop.id+'_wallpaper',me.desktop.getWallpaper());
+                            //
+                            Ext.state.Manager.getProvider().on({
+                                    scope : this,
+                                    aftersave : function(provider)
+                                    {
+                                            sessionID = '';
+                                            window.location.href ='index.html';
+                                    }
+                            });
+                            Ext.state.Manager.getProvider().saveState();   
+                            AmdaAction.logout();         
+	                  }
+	                  else if (btn == 'no')
+	                  {
+                              Ext.state.Manager.getProvider().on({
+                                    scope : this,
+                                    aftersave : function(provider)
+                                    {
+                                            sessionID = '';
+                                            window.location.href ='index.html';
+                                    }
+                            });
+                            Ext.state.Manager.getProvider().set(me.desktop.id+'_wallpaper',me.desktop.getWallpaper()); 
+                            Ext.state.Manager.getProvider().saveLastTime(); 
+                            AmdaAction.logout(); 
+	                  }
+                        }
+    			});
+    },
+
+    onSettings: function () {
+        var dlg = new MyDesktop.Settings({
+            desktop: this.desktop
+        });
+        dlg.show();
+    },
+    
+    /**
+     * initialization at the start of AMDA-NG webApplication
+     */
+    initProject : function() {
+        moduleIds = new Ext.util.MixedCollection();
+        // Adding Workspace Explorer Id
+        moduleIds.add(this.dynamicModules.explorer.id);
+                           
+        moduleIds.each(function(item) {
+            this.getLoadedModule(item, true, function (module) {
+            	module.createWindow();
+            });
+        }, this);
+        
+        if (isNewInfo) {
+        	this.getLoadedModule(this.dynamicModules.info.id, true, function (module) {
+            	module.createWindow('releaseNotes.' + AMDAVERSION, 'New Release V'+ AMDAVERSION);
+            });
+        }
+        
+        
+        this.desktop.taskbar.tray.width = 130;
+        this.desktop.taskbar.insert(4,new amdaUI.SampToolBarUI({id : 'samptb', onSwitchConnect : function ()
+      	  {
+        	myDesktopApp.getLoadedModule(myDesktopApp.dynamicModules.interop.id, true, function(module) {
+        		module.switchSampConnect();
+        	});
+        	
+    	  }}));
+    }
+});
diff --git a/js/app/app.js b/js/app/app.js
new file mode 100644
index 0000000..0d2e0c7
--- /dev/null
+++ b/js/app/app.js
@@ -0,0 +1,12 @@
+/**
+ * This file sets application-wide settings and launches the application when everything has
+ * been loaded onto the page. By default we just render the applications Viewport inside the
+ * launch method (see app/views/Viewport.js).
+ */ 
+AMDA-NG4 = new Ext.Application({
+    defaultTarget: "viewport",
+    name: "AMDA-NG4",
+    launch: function() {
+        this.viewport = new AMDA-NG4.Viewport();
+    }
+});
diff --git a/js/app/controllers/AboutModule.js b/js/app/controllers/AboutModule.js
new file mode 100644
index 0000000..a7235ff
--- /dev/null
+++ b/js/app/controllers/AboutModule.js
@@ -0,0 +1,98 @@
+/** 
+ * Project  : AMDA-NG4
+ * Name     : AboutModule.js
+ * @class   amdaDesktop.AboutModule 
+ * @extends amdaDesktop.AmdaModule
+ * @brief   About Module controller definition
+ * This Module describe new functionalities of AMDA-NG4
+ * @author  CDA
+ * @version $Id: AboutModule.js 2397 2014-06-03 10:21:28Z elena $
+ * TODO Do we need real Module ???  
+ */
+
+Ext.define('amdaDesktop.AboutModule', {
+    
+        extend: 'amdaDesktop.AmdaModule',
+
+        contentId : 'infoUI',
+        file : 'releaseNotes.' + AMDAVERSION,
+                        
+        createWindow : function(file, title, specialInfo)
+        {             
+            var desktop = myDesktopApp.getDesktop();            
+            var win = desktop.getWindow(this.id);
+            var theTitle = title ? title : this.title;
+           
+            if (!AMDAVERSION) this.file = 'about';
+           
+            var theFile = file ? file : this.file;
+            if (!win) {	     
+                win = desktop.createWindow({
+                    id: this.id,
+                    title: theTitle,
+                    file : theFile,
+                    width: 650,
+                    height: 570,
+                    autoScroll : true,
+                    minimizable: false,
+                    maximizable: false,
+                    bodyStyle: 'background:#ffffee; padding:15px 15px 15px 15px;',
+                    bodyCls : 'infoWindow',
+                    loader : {
+                            url : helpDir + theFile,
+                            loadMask : false,
+                            autoLoad : true // important			 
+                    },	            
+                    iconCls: this.icon,
+                    animCollapse:false,
+                    constrainHeader:true
+                }); 
+                
+              if (specialInfo) {                    
+                    win.add({ xtype: 'toolbar',                               
+                                items: [  { 
+                                        text: 'AMDA\'s ABCs',
+                                         scope  : this,
+                                         handler: function() {  
+                                            myDesktopApp.getLoadedModule(myDesktopApp.dynamicModules.help.id, true, function (module) {
+                                            	module.createWindow();
+                                            }); 
+                                         }
+                                        },'-',
+                                        '->', '-', 
+                                        {
+                                         text: 'Stop showing this window on next login',
+                                         scope  : this,
+                                         handler: function() {                                              
+                                             AmdaAction.deleteSpecialInfo(win.file);
+                                             Ext.MessageBox.show({title:'Warning', 
+                                                            msg: 'OK. Close the window right now?',
+                                                            width: 300,   
+                                                            buttons: Ext.MessageBox.OKCANCEL, 
+                                                            fn : function(btn) {
+                                                               if (btn == 'cancel') return;
+                                                               win.close();
+                                                            },
+                                                            icon: Ext.MessageBox.WARNING,
+                                                            scope : this
+                                        });  
+                                         }
+                              }
+                            ]});                      
+                }
+               
+                win.show();	      	      
+            }
+            else if (win.file === theFile) {
+                win.toFront();
+            }
+            else {	      
+                win.loader.url = helpDir + theFile;
+                win.loader.load();
+                win.setTitle(theTitle);
+                win.file = theFile;
+                win.toFront();
+            }
+        }
+        
+});
diff --git a/js/app/controllers/AmdaModule.js b/js/app/controllers/AmdaModule.js
new file mode 100644
index 0000000..88a5dd5
--- /dev/null
+++ b/js/app/controllers/AmdaModule.js
@@ -0,0 +1,115 @@
+/** 
+ * Project  : AMDA-NG4
+ * Name     : AmdaModule.js
+ * @class   amdaDesktop.AmdaModule 
+ * @extends Ext.ux.desktop.Module
+ * @brief   Generic Module controller definition for AMDA project
+ * @author  CDA
+ * @version $Id: AmdaModule.js 1761 2013-09-13 13:18:03Z myriam $
+ * @todo define createWindow method for simple applications here ?
+ *******************************************************************************
+ *    FT Id     :   Date   : Name - Description
+ *******************************************************************************
+ *  :           :08/06/2011: CDA - Migration extjs4
+ *  :           :09/06/2011: elena - Init method for Applications without launchers now is defined here 
+ */
+
+Ext.define('amdaDesktop.AmdaModule', {
+	extend: 'Ext.ux.desktop.Module',
+
+    /**
+     * @cfg {String} id
+     * @required
+     */
+	id : '',
+    /**
+     * @cfg {String} icon
+     * @required
+     */
+	icon : '',
+    /**
+     * @cfg {String} title
+     * @required
+     */
+	title : '',
+    /**
+     * @cfg {String} contentId
+     * @required
+     */
+	contentId : '',
+	
+	constructor : function(config){
+		this.callParent(arguments);
+	},
+
+	/**
+	* Module without launcher in Start Menu
+	*/
+	init: function(){		
+			this.launcher = null; 
+		},
+	
+	/**
+	 * Function which return the UI content of this module
+	 * @return {Object} The Ui content class of this module
+	 */
+	getUiContent : function (){
+	    return Ext.getCmp(this.contentId);
+	},
+
+       
+	/**
+	 * Window Creation method of the Module
+	 */
+	createWindow : function (onshowfn) {
+	  
+		var desktop = this.app.getDesktop();		
+		var win = desktop.getWindow(this.id);	
+
+		if (!win) {
+			win = desktop.createWindow({
+				id : this.id,
+				title : this.title,
+				width : this.width,
+			        minWidth : this.width,
+				height : this.height,
+				minHeight: this.height,
+				iconCls : this.icon,
+				border : false,
+				//constrainHeader : true,
+				layout : 'fit',
+				stateful : true,
+				stateId : this.id,
+				stateEvents: ['move','show','resize'],
+				tools: [
+			         {
+			        	type:'help',
+			        	qtip: this.helpTitle,
+			        	scope:this,
+			        	handler: function(event, toolEl, panel){
+			        		var me = this;
+			        		myDesktopApp.getLoadedModule(myDesktopApp.dynamicModules.info.id, true, function(module) {
+			        			module.createWindow(me.helpFile, me.helpTitle);
+			        		});
+					    }
+			         }
+				],
+				items : [ 
+				 {
+				 	    xtype :  this.uiType,					  
+					    id : this.contentId
+				  }	
+				]
+			});
+	            }
+	 
+		if (onshowfn)
+			win.on({
+			show : onshowfn,
+        		scope : this
+        	});
+		
+		win.show();
+	}
+	
+});
\ No newline at end of file
diff --git a/js/app/controllers/AmdaStateProvider.js b/js/app/controllers/AmdaStateProvider.js
new file mode 100644
index 0000000..8081b98
--- /dev/null
+++ b/js/app/controllers/AmdaStateProvider.js
@@ -0,0 +1,134 @@
+/** 
+ * Project   : AMDA-NG
+ * Name      : AmdaStateProvider.js
+ * @class    amdaDesktop.AmdaStateProvider
+ * @extends  Ext.state.Provider 
+ * @brief    Module controlling state storing/restoring at/from Server 
+ * @author   Benjamin
+ * @version  $Id: AmdaStateProvider.js 2441 2014-06-27 12:35:22Z elena $ 
+ */
+
+Ext.define('amdaDesktop.AmdaStateProvider', {
+	extend: 'Ext.state.Provider',
+	alias: 'widget.stateProvider',
+	
+	s : {},
+	
+	constructor : function()
+	{
+		var me = this;
+		this.addEvents('afterrestore,aftersave');
+		
+		me.callParent(arguments);
+	},
+	
+	set : function(name, value)
+	{
+		var me = this;
+		
+		if (typeof value == "undefined" || value === null)
+		{
+			me.clear(name);
+			return;
+		}
+		
+		me.callParent(arguments);
+		
+		this.state[name] = value;
+		this.s[name] = me.encodeValue(value);
+	},
+	
+	get : function(name)
+	{
+		return this.state[name];
+	},
+	
+	onLoadFinish : function(result, e)
+	{
+		var me = this;
+		
+		if (e.status === true)
+		{
+			if (result.error)
+			{
+				Ext.Msg.show({title:'State provider - Load error', msg: result.message, icon: Ext.MessageBox.ERROR, buttons: Ext.Msg.OK});
+			}
+			else
+			{
+				var keys = [];
+		        for (var s in result.state) {
+		            if (hasOwnProperty.call(result.state, s))
+		            	keys.push(s);
+		        }
+		        
+		        var len = keys.length;
+			
+				for (var i = 0; i < len; i++)
+				{
+					if (keys[i] == "_empty_")
+						continue;
+					this.state[keys[i]] = me.decodeValue(result.state[keys[i]]);
+					this.s[keys[i]] = result.state[keys[i]];
+				}
+			}
+		}
+		else
+		{
+			Ext.Msg.show({title:'Error System', msg: e.message, icon: Ext.MessageBox.ERROR, buttons: Ext.Msg.OK});
+		}
+		
+		me.fireEvent('afterrestore', me);
+	},
+	
+	restoreState : function()
+	{
+		var me = this;
+		var o = {};
+		AmdaAction.loadState(o,this.onLoadFinish,this);
+	},
+	
+	clear : function(name)
+	{
+		this.clearKey(name);
+		this.callParent(arguments);
+	},
+	
+	clearKey : function(name)
+	{
+		if (this.state[name])
+			this.state[name].remove();
+	},
+	
+	onSaveFinish : function(result, e)
+	{
+		var me = this;
+		if (e.status === true)
+		{
+			if (result.error)
+			{
+				Ext.Msg.show({title:'State provider - Save error', msg: result.message, icon: Ext.MessageBox.ERROR, buttons: Ext.Msg.OK});
+			}
+		}
+		else
+		{
+			Ext.Msg.show({title:'Error System', msg: e.message, icon: Ext.MessageBox.ERROR, buttons: Ext.Msg.OK});
+		}
+		me.fireEvent('aftersave', me);
+	},	
+	
+	saveState : function()
+	{
+		var me = this;              
+		AmdaAction.saveState(this.s,this.onSaveFinish,this);
+	},
+        
+	saveLastTime : function()
+        {                                           
+                var me = this;
+                var lastTime = {};
+                lastTime[myDesktopApp.desktop.id + '_wallpaper'] = this.s[myDesktopApp.desktop.id + '_wallpaper'];
+                lastTime['timeinterval'] = this.s['timeinterval'];
+                lastTime['timeintervalMining'] = this.s['timeintervalMining'];               
+                AmdaAction.saveState(lastTime,this.onSaveFinish,this);
+        }
+});
diff --git a/js/app/controllers/AstroImagesModule.js b/js/app/controllers/AstroImagesModule.js
new file mode 100644
index 0000000..ea3c6ef
--- /dev/null
+++ b/js/app/controllers/AstroImagesModule.js
@@ -0,0 +1,90 @@
+/**
+  * Project      :  AMDA-NG
+  * Name         : AstroImagesModule.js
+  * @plugin 	  amdaDesktop.AstroImagesModule.js
+  * @extends 	  amdaDesktop.AmdaModule
+  * @brief		 AstroImages controller
+  * @author Benjamin
+  * @version $Id: AstroImagesModule.js 1664 2013-07-03 11:37:37Z benjamin $
+  ********************************************************************************
+  *    FT Id     :   Date   : Name - Description
+  *******************************************************************************
+  *  :          
+  */
+
+Ext.define('amdaDesktop.AstroImagesModule', {
+		
+    extend: 'amdaDesktop.AmdaModule',
+    
+    requires : [
+      'amdaUI.HstUI',
+      'amdaUI.APISImagesUI'
+    ],
+    
+	contentId : 'astroimagesUI',
+    
+	createWindow : function(startDate,stopDate){
+	    var desktop = this.app.getDesktop();
+	    var win = desktop.getWindow(this.id);
+	    
+	    if(!win){
+	        win = desktop.createWindow({		  
+	            id: this.id,
+	            title:this.title, 
+		        layout: 'fit',
+		        width:600,
+	            height:500,  
+	            modal: true,
+	            iconCls: this.icon,
+	            animCollapse:false,
+	            constrainHeader:true,
+	            bodyPadding : 5,
+                stateful : true,
+                stateId  : this.id,
+                stateEvents: ['move','show','resize'],
+	            items : [
+	              {
+	            	  xtype : 'tabpanel',
+	            	  id    : 'astrotabs',
+	            	  items : [
+	            	           {
+	            	        	   title: 'APIS Archive',
+	            	        	   xtype: 'panelAPIS',
+	            	        	   id   : 'apisPanel'
+	            	           },
+	            	           {
+	            	        	   title: 'MAST Archive',
+	            	        	   xtype: 'panelHst',
+	            	        	   id   : 'hstPanel'
+	            	           }
+	            	          ]
+	              }
+	            ]
+	        });
+	    } 
+	    
+	    var hstPanel = win.queryById('hstPanel');
+		var apisPanel = win.queryById('apisPanel');
+
+		
+		hstPanel.setInterval(startDate,stopDate);
+		apisPanel.setInterval(startDate,stopDate);
+	    
+	    win.on({
+        	show : 
+        	{
+        		fn : function(o)
+        		{
+	    			var astrotabsUI = win.queryById('astrotabs');
+	    	        astrotabsUI.setActiveTab(apisPanel);
+	    	        hstPanel.forceRefresh();
+	    			apisPanel.forceRefresh();
+        		},
+        		scope : this
+        	}
+        });
+	    
+	    win.show();
+	    return win;
+	}
+});
\ No newline at end of file
diff --git a/js/app/controllers/DownloadModule.js b/js/app/controllers/DownloadModule.js
new file mode 100644
index 0000000..bb45478
--- /dev/null
+++ b/js/app/controllers/DownloadModule.js
@@ -0,0 +1,60 @@
+/** 
+ * Project   : AMDA-NG
+ * Name      : DownloadModule.js
+ * @class    amdaDesktop.DownloadModule
+ * @extends  amdaDesktop.InteractiveModule
+ * @brief    Download Module controller definition 
+ * @author   Myriam
+ * @version  $Id: DownloadModule.js 2152 2014-02-28 16:32:22Z elena $ 
+ */
+
+Ext.define('amdaDesktop.DownloadModule', {
+    
+    extend: 'amdaDesktop.InteractiveModule',
+    
+    requires: [
+        'amdaUI.DownloadUI' 
+    ],
+    
+    contentId : 'downloadUI',	
+
+    /**
+     * @cfg {String} data models
+     * @required
+     */
+    objectDataModel : 'amdaModel.Download',
+    nodeDataModel : 'amdaModel.DownloadNode',
+    
+    /**
+     * @cfg {String} window definitions
+     * @required
+     */
+    width: 600, 
+    height: 590,
+    uiType : 'panelDownload',
+    helpTitle : 'Help on Download Module',
+    helpFile : 'downloadHelp',
+        
+    /**
+    * @override
+    */
+    createWindow : function() {
+        if (!this.linkedNode){
+            this.setLinkedNode(amdaModel.DownloadNode);
+        }
+        this.callParent(arguments);
+    },
+        
+    saveState: function() {
+            var uiContent = this.getUiContent();               
+            var form = uiContent.down('form').getForm();
+            var values = form.getValues();                
+            //   Ext.state.Manager.set(this.id + '_form', values);
+            Ext.state.Manager.set('timeinterval', {'startDate' : values.startDate,'stopDate' : values.stopDate });
+    },
+       
+    getState : function() {            
+        //   return Ext.state.Manager.get(this.id + '_form'); 
+        return Ext.state.Manager.get('timeinterval'); 
+    }
+});
\ No newline at end of file
diff --git a/js/app/controllers/DynamicModule.js b/js/app/controllers/DynamicModule.js
new file mode 100644
index 0000000..45606cd
--- /dev/null
+++ b/js/app/controllers/DynamicModule.js
@@ -0,0 +1,77 @@
+
+
+Ext.define('amdaDesktop.DynamicModule', {
+	extend: 'Ext.ux.desktop.Module',
+
+	/**
+     * @cfg {String} id
+     * @required
+     */
+	id : '',
+    /**
+     * @cfg {String} icon
+     * @required
+     */
+	icon : '',
+    /**
+     * @cfg {String} title
+     * @required
+     */
+	title : '',
+	/**
+	 * @cfg {String} source
+	 * @required
+	 */
+	source : '',
+	
+	module: null,
+	
+	launcher: null,
+	
+	constructor : function(id, icon, title, source, useLauncher){
+		this.id = id;
+		this.icon = icon;
+		this.title = title;
+		this.source = source;
+		if (useLauncher)
+			this.launcher = {
+    			text : this.title,
+    			iconCls : this.icon,
+    			handler : this.createWindow,
+    			scope : this
+			};
+		this.callParent(arguments);
+	},
+	
+	isReady : function(){
+		return (this.module != null);
+	},
+	
+	get : function(onReady){
+		if (!this.isReady())
+		{
+			var me = this;
+			loadMask.show();
+			Ext.require(me.source, function() {
+				me.module = Ext.create(me.source, {id : me.id, icon : me.icon, title : me.title});
+				me.module.app = myDesktopApp;
+				if (onReady)
+					onReady(me.module);
+				loadMask.hide();
+			});
+		}
+		else if (onReady)
+			onReady(this.module);
+		return this.module;
+	},
+       
+	/**
+	 * Window Creation method of the Module
+	 */
+	createWindow : function () {
+		var me = this;
+		this.get(function (module) {
+			me.module.createWindow();
+		});
+	}
+});
diff --git a/js/app/controllers/ExplorerModule.js b/js/app/controllers/ExplorerModule.js
new file mode 100644
index 0000000..d66a356
--- /dev/null
+++ b/js/app/controllers/ExplorerModule.js
@@ -0,0 +1,300 @@
+/** 
+ * Project  : AMDA-NG4
+ * Name     : ExplorerModule.js
+ * @class   amdaDesktop.ExplorerModule 
+ * @extends amdaDesktop.AmdaModule
+ * @brief   Explorer Module controller definition
+ * @author  CDA
+ * @version $Id: ExplorerModule.js 2239 2014-03-26 12:31:32Z elena $
+ */
+
+Ext.define('amdaDesktop.ExplorerModule', {
+
+    extend: 'amdaDesktop.AmdaModule',
+    
+    requires : [
+        'amdaUI.ExplorerUI',
+        'amdaUI.AliasUI',
+        // Node Models
+        'amdaModel.BkgJobNode',
+        'amdaModel.DerivedParamNode',
+        'amdaModel.LocalParamNode',
+        'amdaModel.RemoteParamNode',
+        'amdaModel.RemoteSimuParamNode',
+        'amdaModel.AliasNode',
+        'amdaModel.TimeTableNode',
+        'amdaModel.sharedTimeTableNode',
+        'amdaModel.MyDataParamNode',
+        'amdaModel.MyDataNode',
+        'amdaModel.PlotNode',
+        'amdaModel.DownloadNode',       // singleton; not shown in the tree
+        'amdaModel.SearchNode',
+        // Object Models
+        'amdaModel.Parameter',
+        'amdaModel.Search',
+        'amdaModel.Plot', 
+        'amdaModel.Download',
+        'amdaModel.TimeTable',
+        'amdaModel.FileObject',
+        'amdaModel.FileParamObject',
+        'amdaModel.FilterInfo'
+    ],
+    
+    contentId : 'explorerUI',
+   
+    filter : null,
+    filtersStore : null,
+    
+    constructor : function(config){
+                this.callParent(arguments);
+                if (!this.filtersStore) {
+                  this.filtersStore = Ext.create('Ext.data.Store', {
+                        model: 'amdaModel.FilterList' 
+                });                 
+               this.filtersStore.load(); 
+             //  amdaDesktop.ExplorerModule.filtersStore = this.filtersStore;
+            }                
+        },
+        
+        
+    createWindow : function() {
+        var desktop = this.app.getDesktop();
+        
+        var win = desktop.getWindow(this.id);
+        if (!win) {            
+    	win = desktop.createWindow( {
+                id : this.id,
+                title : this.title,
+                width : 340,
+                height : 500,
+                iconCls : this.icon,
+                animCollapse : false,
+                border : false,
+       //         constrainHeader : true,
+                closable: false,
+                stateful : true,
+                stateId  : this.id,
+                stateEvents: ['move','show','resize'],
+                constrain: true,
+                layout   :
+                {
+                    type : 'border',
+                    align : 'stretch'
+                },
+                x : 5,
+                y : 5,
+                items : [
+                    {
+                        xtype: 'panelExplorer',
+                        id : this.contentId,
+                        region: 'center'
+                    },
+                    {
+                        xtype: 'panel', 
+                        id : 'LogPanel',
+                        region: 'south',
+                        height : 150,
+                        split : true,
+                        layout: {
+                                type: 'vbox',
+                                align : 'stretch',
+                                autoSize : true
+                        }, 
+                        autoScroll : true,
+                        stateful : true,
+                        stateId  : 'LogPanel',
+                        buttons : [{
+                                scope: this,
+                                text : 'Clear',
+                                handler: function(){	
+                                        win.items.get('LogPanel').removeAll();  
+                                        this.addLogMessage('<b>Log</b>');
+                                }
+                        }]
+                    }
+                ]
+            });
+        
+    		
+        }
+        
+        win.on({
+                activate: {
+                        fn : function() 
+                        {
+                                myDesktopApp.getLoadedModule(this.id, true, function (module) {
+                                	// on activation when there's a pinedModule 'null'
+                                    if (module.pinedModule===null) {
+                                            // get the ZIndex manager
+                                            var manager = myDesktopApp.desktop.getDesktopZIndexManager();
+                                            // ordering to send back this window
+                                            manager.sendToBack(win);
+                                    } 
+                                });
+                                                               
+                        },
+                        scope: this
+                } 
+        });
+        
+        win.on({
+                show : 
+                {
+                        fn : function(o)
+                        {
+                                //set current filter
+                                this.setCrtFilter();    				
+                                //resize the explorer in relation with the desktop size
+                                if (win.y + win.height > myDesktopApp.desktop.el.getHeight())
+                                        win.setHeight(myDesktopApp.desktop.el.getHeight() - win.y);
+                        },
+                        scope : this
+                }
+        });
+        
+        win.addCls('window-active');
+        win.show();
+        this.addLogMessage('<b>Log</b>');
+        return win;
+        
+    },
+    
+    pinedModule : null,
+    
+    /**
+     * Getter of pinedModule
+     * @return {amdaDesktop.InteractiveModule} The pined module
+     */
+    getPinedModule : function() 
+    {
+        // get the pined Module
+        return this.pinedModule;
+    },
+
+    /**
+     * Setter of pinedModule
+     * @param {amdaDesktop.InteractiveModule} The pined module
+     */
+    setPinedModule : function(amdaModule) 
+    {
+        // set the pined Module
+        this.pinedModule = amdaModule;
+    },
+    
+    /**
+     * Module Attachment Method
+     * @param {amdaDesktop.InteractiveModule} The module to attach
+     */
+    pinMechanism : function(amdaModule) 
+    {
+        // if there is an old pined module
+        if (this.getPinedModule()!=null) {
+                // get old pined module :
+                var oldPinedModule = this.getPinedModule();
+                // call uncolor method on the old pined Module
+                myDesktopApp.getLoadedModule(oldPinedModule).uncolorHeaderModule();
+        }
+        // set pined module
+        this.setPinedModule(amdaModule);
+        // call color method on pined Module
+        myDesktopApp.getLoadedModule(amdaModule).colorHeaderModule();
+    },
+    
+    
+    addLogMessage : function(message)
+    {
+        var height = 40;
+        var msg = Ext.create('Ext.Component', {
+            height: height,
+            html: message,
+            style: { color : '#555555'}
+        });
+        var desktop = myDesktopApp.getDesktop();
+        var win = desktop.getWindow(this.id);
+        var panel = win.items.get('LogPanel');
+        panel.add(msg);
+    },
+     
+     //
+     setCrtFilter : function()
+     {
+            var me = this;
+                //get current filter to apply
+                AmdaAction.getCrtFilterResult(function (result, e)
+                                {
+                                    var t = e.getTransaction();
+                                    if (e.status) 
+                                    {	
+                                            if (result)
+                                            {
+                                                    //apply current filter
+                                                    this.filter = result;
+                                                    
+                                                    // add saved filter to Explorer List
+                                                    if (!this.filtersStore.getById(this.filter.id)) 
+                                                        this.filtersStore.add({id : this.filter.id, name : this.filter.name});
+                                                    
+                                                    //apply filter to the tree
+                                                    var desktop = myDesktopApp.getDesktop();
+                                                    var win = desktop.getWindow(this.id);
+                                                    if (win)
+                                                    {
+                                                            var explorerUI = win.query('#'+this.contentId);
+                                                            explorerUI[0].updateFilter();
+                                                    }
+                                            }
+                                            else
+                                                    Ext.Msg.show( {
+                                                            title : 'Filter', 
+                                                            msg : 'Cannot apply filter',
+                                                            modal : true,
+                                                            icon : Ext.Msg.ERROR,
+                                                            buttons : Ext.Msg.OK
+                                                    });
+                                    }
+                                    else
+                                    {
+                                        // FAILURE
+                                    Ext.Msg.show({title:'Error System', msg: e.message, icon: Ext.MessageBox.ERROR, buttons: Ext.Msg.OK});
+                                    } 
+                            },this);
+     },
+     
+        resetFilter : function()
+        {
+            AmdaAction.resetFilter( 
+                                function (result, e)
+                                {
+                                        var t = e.getTransaction();
+                                        if (e.status) 
+                                        {	
+                                                if (result)
+                                                {
+                                                        this.setCrtFilter();
+                                                        
+                                                        //update filter win
+                                                        var desktop = myDesktopApp.getDesktop();
+                                                        var win = desktop.getWindow(myDesktopApp.dynamicModules.filters.id);
+                                                        if (win)
+                                                        {
+                                                                var filterUI = win.query('panelFilters');
+                                                                filterUI[0].reloadFilter();
+                                                        }
+                                                }
+                                                else
+                                                        Ext.Msg.show( {
+                                                                title : 'Filter', 
+                                                                msg : 'Cannot reset filter',
+                                                                modal : true,
+                                                                icon : Ext.Msg.ERROR,
+                                                                buttons : Ext.Msg.OK
+                                                        });
+                                        }
+                                        else
+                                        {
+                                                // FAILURE
+                                                Ext.Msg.show({title:'Error System', msg: e.message, icon: Ext.MessageBox.ERROR, buttons: Ext.Msg.OK});
+                                        } 
+                        },this);
+     }
+});
diff --git a/js/app/controllers/FeedbackModule.js b/js/app/controllers/FeedbackModule.js
new file mode 100644
index 0000000..3de9d20
--- /dev/null
+++ b/js/app/controllers/FeedbackModule.js
@@ -0,0 +1,54 @@
+/**
+  * Project      :  AMDA-NG
+  * Name         : FeedbackModule.js
+  * @plugin 	  amdaDesktop.FeedbackModule
+  * @extends 	  amdaDesktop.AmdaModule
+  * @brief		 Feedback controller
+  * @author Benjamin
+  * @version $Id: FeedbackModule.js 965 2012-06-28 16:05:30Z benjamin $
+  ********************************************************************************
+  *    FT Id     :   Date   : Name - Description
+  *******************************************************************************
+  *  :          
+  */
+
+Ext.define('amdaDesktop.FeedbackModule', {
+		
+    extend: 'amdaDesktop.AmdaModule',
+    
+    requires : [
+      'amdaUI.FeedbackUI'
+    ],
+    
+	contentId : 'feedUI',
+    
+	createWindow : function(){
+	    var desktop = this.app.getDesktop();
+	    var win = desktop.getWindow(this.id);
+	    
+	    if(!win){
+	        win = desktop.createWindow({		  
+	            id: this.id,
+	            title:this.title, 
+		        layout: 'anchor',
+		        width:600,
+	            height:550,  
+	            modal: true,
+	            iconCls: this.icon,
+	            animCollapse:false,
+	            constrainHeader:true,
+	            bodyPadding : 5,
+                stateful : true,
+                stateId  : this.id,
+                stateEvents: ['move','show','resize'],
+	            items : [
+	              {
+	            	  xtype: 'panelFeedback'
+	              }
+	            ]
+	        });
+	    } 
+	    win.show();
+	    return win;
+	}
+});
\ No newline at end of file
diff --git a/js/app/controllers/FiltersModule.js b/js/app/controllers/FiltersModule.js
new file mode 100644
index 0000000..c403aa2
--- /dev/null
+++ b/js/app/controllers/FiltersModule.js
@@ -0,0 +1,53 @@
+/**
+  * Project      :  AMDA-NG
+  * Name         : FiltersModule.js
+  * @plugin 	  amdaDesktop.FiltersModule
+  * @extends 	  amdaDesktop.AmdaModule
+  * @brief		 Filters controller
+  * @author Benjamin
+  * @version $Id: FiltersModule.js 1882 2013-11-22 16:05:27Z elena $
+  ********************************************************************************
+  *    FT Id     :   Date   : Name - Description
+  *******************************************************************************
+  *  :          
+  */
+
+Ext.define('amdaDesktop.FiltersModule', {
+		
+    extend: 'amdaDesktop.AmdaModule',
+    
+    requires : [
+      'amdaUI.FiltersUI'
+    ],
+    
+	contentId : 'filtersUI',
+    
+	createWindow : function(){
+	    var desktop = this.app.getDesktop();
+	    var win = desktop.getWindow(this.id);
+	    
+	    if(!win){
+	        win = desktop.createWindow({		  
+	            id: this.id,
+	            title:this.title, 
+		        layout: 'fit',
+		        width:550,
+	            height:350,  
+	            iconCls: this.icon,
+	            animCollapse:false,
+	            constrainHeader:true,
+	            bodyPadding : 5,
+                stateful : true,
+                stateId  : this.id,
+                stateEvents: ['move','show','resize'],
+	            items : [
+	              {
+	            	  xtype: 'panelFilters'
+	              }
+	            ]
+	        });
+	    } 
+	    win.show();
+	    return win;
+	}
+});
\ No newline at end of file
diff --git a/js/app/controllers/HelpModule.js b/js/app/controllers/HelpModule.js
new file mode 100644
index 0000000..0a50e62
--- /dev/null
+++ b/js/app/controllers/HelpModule.js
@@ -0,0 +1,122 @@
+/** 
+ * Project  : AMDA-NG4
+ * Name     : HelpModule.js
+ * @class   amdaDesktop.HelpModule 
+ * @extends amdaDesktop.AmdaModule
+ * @version $Id: HelpModule.js 1935 2013-11-27 14:01:31Z elena $     
+ */
+
+
+Ext.define('amdaDesktop.HelpModule', {
+		
+	extend: 'amdaDesktop.AmdaModule',
+
+        uses: [
+         'Ext.ux.desktop.Video'
+        ],
+	 
+	createWindow : function(file,title){
+            
+            var me = this;
+	    var desktop = myDesktopApp.getDesktop();
+	    var win = desktop.getWindow(this.id);
+	 
+	    if (!win) {	  
+                var contentPanel = {
+                        id: 'content-panel',
+                        region: 'center', // this is what makes this panel into a region within the containing layout   
+                        border: true,
+                        autoScroll: true,
+                        bodyCls : 'infoWindow',
+                        bodyStyle: 'padding:15px 15px 15px 15px;',            
+                        loader : {
+                                         url : helpDir + 'ABC',
+                                         loadMask : false,
+                                         autoLoad : true // important                     
+                                 }                     
+                     };
+                 
+                var videoPanel = {
+                        xtype : 'video',
+                        id: 'video-player',
+                        minHeight: 480,
+                        region: 'center', // this is what makes this panel into a region within the containing layout   
+                        border: true,
+                        layout: 'fit',
+                                                  
+                        src: [                           
+                            // browser will pick the format it likes most:
+                      //      { src: helpDir + 'movies/test.webm',  type: 'video/webm' },
+                      //      { src: helpDir + 'moviestest.mp4',  type: 'video/mp4' },
+                            { src:  helpDir + 'movies/AMDA-NG.ogv', type: 'video/ogg' }//,
+                       //     { src: helpDir + 'movies/test.mov', type: 'video/quicktime' }                     
+                        ],
+                     
+                        autobuffer: true,
+                        autoplay: true,
+                        controls: true                                           
+                           
+                    };
+   
+                var store = Ext.create('Ext.data.TreeStore', {
+                    root: {
+                        expanded: true
+                    },
+                    proxy: {
+                        type: 'ajax',
+                        url: 'help/content.json'
+                    }
+                });
+    
+                // Go ahead and create the TreePanel now so that we can use it below
+                var treePanel = Ext.create('Ext.tree.Panel', {
+                    id: 'tree-panel',
+                    title: 'Inside the AMDA',
+                    region:'west',
+                    split: true,  
+                    width: 250,      
+                    minSize: 150,
+                    rootVisible: false,
+                    autoScroll: true,
+                    store: store
+                });
+    
+                // Assign loader to be called on tree node click.
+                treePanel.getSelectionModel().on('select', function(selModel, record) {
+                    if (record.get('leaf')) { 
+                      if (record.raw.movie) {
+                       // win.remove(Ext.getCmp('content-panel'));
+                       // win.add(Ext.getCmp('v'));
+                    }
+                      else {
+                        Ext.getCmp('content-panel').loader.url = helpDir + record.getId();
+                        Ext.getCmp('content-panel').loader.load();   
+                      }
+                    }
+                });               
+       
+                win = desktop.createWindow({
+                    id: this.id, 
+                    layout: 'border',
+                    width: 900,
+                    height: 550,
+                    autoScroll : true,
+                    minimizable: false,
+                    maximizable: false,
+    //	 	bodyStyle: 'background:#ffffff;',                    
+                    title: 'Help',   
+                    iconCls: this.icon,
+                    animCollapse:false,
+                    constrainHeader:true,
+                    items: [  
+                             treePanel, 
+                             contentPanel
+                        ]
+                });  	      
+                win.show();               
+                }
+                else 
+                    win.toFront();                 
+            }
+	
+});
diff --git a/js/app/controllers/InteractiveModule.js b/js/app/controllers/InteractiveModule.js
new file mode 100644
index 0000000..9e5feb6
--- /dev/null
+++ b/js/app/controllers/InteractiveModule.js
@@ -0,0 +1,257 @@
+/** 
+ * Project  : AMDA-NG4
+ * Name     : InteractiveModule.js
+ * @class   amdaDesktop.InteractiveModule 
+ * @extends amdaDesktop.AmdaModule
+ * @brief   Generic Interactive Module controller definition
+ * @author  CDA
+ * @version $Id: InteractiveModule.js 2109 2014-02-19 17:47:37Z elena $
+ *******************************************************************************
+ *    FT Id     :   Date   : Name - Description
+ *******************************************************************************
+ *  :           :08/06/2011: CDA - Migration extjs4 
+ *  :           :09/06/2011: elena - generic Interactive modules methods: init(), createWindow(), 
+ *                                   createLinkedNode(), createObject() now are defined here 
+ */
+
+Ext.define('amdaDesktop.InteractiveModule', {
+	extend: 'amdaDesktop.AmdaModule',	 
+	
+    /**
+     * @cfg {amdaModel.InteractiveNode} the explorer node linked to this module
+     */
+	linkedNode : null,
+
+	nodeDataModel: ' ',
+
+	width : 700,
+	height: 510,
+ 	uiType : ' ',
+//	helpTitle : 'help on the module',
+	/**
+	 * Module link in Start Menu
+	 */	
+	init : function() {		 
+		this.launcher = {
+		    text : this.title,
+		    iconCls : this.icon,
+		    handler : this.createWindow,
+		    scope : this
+		};
+	},
+	
+	/**
+	 * Window Creation method of the Module
+	 */
+	createWindow : function () {
+
+		if (this.linkedNode === null){		 
+			this.createLinkedNode();		
+		} 		
+		this.createObject();	 
+		var desktop = this.app.getDesktop();		
+		var win = desktop.getWindow(this.id);	
+		var me = this;
+
+		if (!win) {
+			win = desktop.createWindow({
+				id : this.id,
+				title : this.title,
+				width : this.width,
+				minWidth : this.width,
+				height : this.height,
+				minHeight: this.height,
+				iconCls : this.icon,
+				border : false,
+				//constrainHeader : true,
+				layout : 'fit',
+				stateful : true,
+				stateId : this.id,
+				stateEvents: ['move','show','resize'],
+				tools: [
+			         {
+			        	type:'help',
+			        	qtip: this.helpTitle,
+			        	scope:this,
+			        	handler: function(event, toolEl, panel){					  
+			        	 myDesktopApp.getLoadedModule(myDesktopApp.dynamicModules.info.id, true, function(module) {
+			        		module.createWindow(me.helpFile, me.helpTitle); 
+			        	 });					  
+			        	}
+			         }
+				],
+				items : [ 
+				 {
+				 	    xtype :  this.uiType,
+					    object : this.linkedNode.get('object'),
+					    id : this.contentId
+				  }	
+				]
+			});
+			
+			this.closed = false;
+			win.on({
+                                scope: this,
+                                // on window activation event
+                                activate: function(){
+                                    // order to pin this Module with WsExplorer
+                                    this.pin();
+                                },
+                                // on window closing event
+                                beforeclose: function (win, eOpts) {
+                                    
+                                   this.saveState();
+                                        
+                                    var isDirty = this.getUiContent().fclose();
+                                    
+                                    if (!this.closed && isDirty) {
+                                        Ext.Msg.confirm('Close', 'Current window has been modified.\nDo you want to close the window ?' , function (btn, text){  
+                                            if (btn == 'yes'){ 
+                                                // mark this.closed as true before the call to close() as that will fire the beforeclose event again
+                                                this.closed = true; 
+                                                win.close();
+                                            } 
+                                        },this); 
+	                } else if (!isDirty) {
+	                	this.closed = true;
+	                }
+									
+	                if (this.closed) {
+                            //remove object from linkedNode in order to minimize used memory
+                            this.linkedNode.set('object','');
+                            // unlink Node
+                            this.setLinkedNode(null);
+                                // order to unpin this Module from WsExplorer
+                            this.unpin();
+	                }
+	 
+	                // Don't automatically close if the form is dirty, let the call to this.close() within the confirm box close the window.
+	                return this.closed;
+	            },	   
+	            minimize: function (win, eOpts) {
+					// Save form
+					if (this.getUiContent().formPanel)
+					    this.getUiContent().formPanel.getForm().updateRecord(this.linkedNode.get('object'));
+					else 
+					   this.getUiContent().items.getAt(0).getForm().updateRecord(this.linkedNode.get('object'));
+					// Save grids
+					this.getUiContent().updateObject();
+	            }
+			});
+
+		} else {
+			this.getUiContent().setObject(this.linkedNode.get('object'));
+		}
+		win.show();
+	},
+	/**
+	 * Mechanism to attach a Module to the Workspace Explorer to enable interactions
+	 * @param moduleName the module to attach
+	 */
+	pin : function() {
+		myDesktopApp.getLoadedModule(myDesktopApp.dynamicModules.explorer.id).pinMechanism(this.id);
+	},
+	
+	/**
+	 * Mechanism to detach a Module to the Workspace Explorer to enable interactions
+	 * @param moduleName the module to detach
+	 */
+	unpin : function() {
+		myDesktopApp.getLoadedModule(myDesktopApp.dynamicModules.explorer.id).setPinedModule(null);
+	},
+	
+	/**
+	 * Getter of linkedNode
+	 * @return {amdaModel.InteractiveNode} linkedNode
+	 */
+	getLinkedNode : function (){
+		return this.linkedNode;
+	},
+	
+	/**
+	 * link the current node in the current module
+	 * @param {amdaModel.InteractiveNode} myLinkedNode
+	 */
+	setLinkedNode : function (myLinkedNode){
+		if (this.linkedNode) {
+			this.linkedNode.set('object','');
+		}
+		this.linkedNode = myLinkedNode;		
+	},
+
+	/**
+	 * 
+	 * create Node of Appropriate Type if it doesn't exist
+	 */ 	
+	createLinkedNode : function (){	
+		var newNode = Ext.create(this.nodeDataModel, {
+			leaf : true,
+			contextNode : this.contextNode
+		});
+		this.setLinkedNode(newNode);		
+	},
+
+	/**
+	 * 
+	 *  
+	*/ 
+	createObject : function (obj){
+	   
+		var object;		
+		if (this.linkedNode.get('object')){			 
+		    object = this.linkedNode.get('object'); 		   
+		} else  {
+                
+                    if (!obj) {
+                         obj = this.getState();                        
+                    }
+                    
+		    object = Ext.create(this.linkedNode.get('objectDataModel'), obj);
+       
+		    this.linkedNode.set('object',object);
+		}
+		 
+	},
+
+      /**
+	* Setter of contextNode
+	* @param {amdaModel.InteractiveNode} contextNode
+	* the node from which the Module was called
+	*/
+	setContextNode : function (myContextNode){
+		this.contextNode = myContextNode;
+	},
+
+    
+	/**
+	 * Color mechanism of Header of this intarctive module
+	 */
+	colorHeaderModule : function() {
+		myDesktopApp.desktop.getWindow(this.id).getEl().addCls('window-active');
+	},
+	
+	/**
+	* UnColor mechanism of Header of this intarctive module
+	*/
+	uncolorHeaderModule : function() {
+		myDesktopApp.desktop.getWindow(this.id).getEl().removeCls('window-active');
+	},
+	
+	/**
+	 * Receiption method of a parameter sent from explorer (by drop)
+	 * @param {String} objectName The name of sent object
+	 * @param {String} isLeaf boolean true if it's a leaf parameter
+	 */
+	 addParam : function(objectName, isLeaf, isScatter, needsArgs) {
+	     var uiContent = this.getUiContent();
+	     uiContent.addParam(objectName, isLeaf, isScatter, needsArgs);
+	 },
+                  
+          saveState : Ext.emptyFn,
+           
+          getState :  function() {
+              
+              return null;
+          }
+                       
+});
\ No newline at end of file
diff --git a/js/app/controllers/InteractivePlotMgr.js b/js/app/controllers/InteractivePlotMgr.js
new file mode 100644
index 0000000..93858df
--- /dev/null
+++ b/js/app/controllers/InteractivePlotMgr.js
@@ -0,0 +1,316 @@
+
+/** 
+ * Project   : AMDA-NG
+ * Name      : InteractivePlotMgr.js
+ * @class    amdaDesktop.ResultModule
+ * @extends  amdaDesktop.InteractiveModule
+ * @brief    Result Module controller definition 
+ * @author   
+ * @version $Id: InteractivePlotMgr.js 1875 2013-11-22 15:02:50Z elena $
+ *****************************************************************************
+ *    FT Id     :   Date   : Name - Description
+ *******************************************************************************
+ *  			 
+ */
+
+Ext.define('amdaDesktop.InteractivePlotMgr', {
+        extend: 'amdaDesktop.InteractiveModule',
+  
+        requires: [
+                    'amdaUI.InteractivePlotUI',
+                    'amdaUI.PlotTabResultUI'
+        ],
+    
+        statics: {
+            multiSelector: false,            
+           
+            maxWinNumber : 5,
+	   //original image values : 700, 987; 987, 700	    
+	    imgOffset : { x : 70, y : 85 },
+	    winSize : {
+	         landscape : { width : 0, height : 0 },
+	         portrait : { width : 0, height : 0 }
+	    }
+        },
+	
+	imgSize : {
+	      landscape : { width : 987, height : 700 },
+	      portrait : { width : 700, height : 987 }
+	    },
+	   
+ 	maxWinNumber : 5,	 
+ 	contentId : 'InteractivePlotUI',	
+    /**
+     * @cfg {String} data models
+     * @required
+     */
+	nodeDataModel :  'amdaModel.BkgJobNode',	
+	windowMgr : null,
+	win: null,
+	
+	 constructor : function(config) {
+	    this.callParent(arguments);
+	    if (!this.windowMgr) this.windowMgr = new Ext.AbstractManager();
+	}, 
+	
+	init : function() {	
+		//force the launcher to null to don't add this item on start menu
+		this.launcher = null;
+		amdaDesktop.InteractivePlotMgr.winSize.landscape.width  = this.imgSize.landscape.width + amdaDesktop.InteractivePlotMgr.imgOffset.x;
+		amdaDesktop.InteractivePlotMgr.winSize.landscape.height = this.imgSize.landscape.height + amdaDesktop.InteractivePlotMgr.imgOffset.y;
+		amdaDesktop.InteractivePlotMgr.winSize.portrait.width   = this.imgSize.portrait.width + amdaDesktop.InteractivePlotMgr.imgOffset.x;
+		amdaDesktop.InteractivePlotMgr.winSize.portrait.height  = this.imgSize.portrait.height + amdaDesktop.InteractivePlotMgr.imgOffset.y;   
+	},	
+	
+	computeWindowSize : function(panelResult)
+	{
+	    var size = panelResult.getImageSize();
+	    size.width  += 30;
+	    size.height += 95;
+	    
+	    return size;
+	},
+    /**
+      * Window Creation method of the Module
+      */
+	createWindow : function () {	
+	   // independent window manager to register all plot windows	        	   
+		this.win = myDesktopApp.desktop.getWindow(this.id);
+		 
+		if (!this.win) {
+			this.win = myDesktopApp.desktop.createWindow({
+				id : this.id,
+				title : this.title,
+				width :  320,
+				height : 120,
+				iconCls : this.icon,
+				x : 3000,
+				y : 5 ,
+				border : false,
+				constrainHeader : true,
+				layout : 'fit',
+                                closable: false,
+                                maximizable: false,
+				tools: [
+				  {
+			        	type:'help',
+			        	qtip: 'Help on Multi Plot',
+                                        scope:this,
+			        	handler: function(event, toolEl, panel){	
+			        		myDesktopApp.getLoadedModule(myDesktopApp.dynamicModules.info.id, true, function (module) {
+			        			module.createWindow('multiPlot', 'Help on Multi Plot');	  
+			        		});             
+			        	}
+			         }
+				],
+				items : [ { xtype : 'panelPlotMgr' } ]
+			});
+			
+			this.win.on({
+				scope: this,				 
+				// on window closing event
+				beforeclose: function(){
+				   this.windowMgr.each(function(key,win){
+						   win.close();				        			      
+				    });	
+                                   this.linkedNode = null;
+				} 
+			});
+		} 		 	 	  
+	  
+	    var linkedNode = this.getLinkedNode();	 
+
+	    if (linkedNode) {
+	    // array of nodes for reference
+		this.addLinkedNode(linkedNode);	 	 	       
+		this.setResult({object: linkedNode.get('object')});	   
+	    }
+	    
+           //     this.win.show();
+           //     this.win.toFront(); 
+            
+	},
+	
+       setResult: function(configResult){
+ 
+// define window size depending on plot orientation
+	    var orientation = configResult.object.get('orientation');
+	     	     
+            // get existing plot Result Plot Window with this resultId	    
+	    var id = 'plot'+configResult.object.get('tabId');
+	    var windowResultId = id + '-win';
+	   	            
+	    var windowResult = this.getWindowResult(windowResultId);
+
+            // if no existing plot Tab Result Panel	 
+            if (!windowResult) {	      
+	      N = eval(configResult.object.get('tabId'));
+	      
+	      var title = 'Plot '+ configResult.object.get('tabId'); 	      
+	      var panelResult = new amdaUI.PlotTabResultUI(configResult);
+	    
+	      var pageSize = Ext.state.Manager.getProvider().get(windowResultId+'_pagesize');
+	      if (!pageSize)
+	    	  pageSize = 75;
+	      	      
+	      var size = this.computeWindowSize(panelResult);
+	     	      
+	      var x = N * 50;
+	      var y = 100 + N * 20;
+	      var win = myDesktopApp.getDesktop().createWindow({
+				id : windowResultId,
+				mode : orientation,
+				title : title,
+				width : size.width,
+				height : size.height,
+				x : x,
+				y : y,
+				iconCls : this.icon,
+				border : false,
+				constrainHeader : true,
+				layout : 'fit',
+				items : [ 
+				    panelResult 
+				],  
+				listeners: {
+				  scope: this,				  
+				  move: function(win,x,y){
+				    var panel = win.items.items[0];
+				    var image = panel.items.items[0];
+				    panel.setImageSettings(image);
+				  },				  
+				  resize: function(win, w, h){
+				    var panel = win.items.items[0];
+				    var image = panel.items.items[0];
+				    panel.setImageSettings(image);
+				  },
+				  beforeclose: function(win,opt){
+					var linkedNodeKey = win.id;   					 
+					var linkedNode = this.getLinkedNodeByKey(linkedNodeKey);					
+					this.removeLinkedNode(linkedNodeKey);
+					this.win.items.items[0].removePlotItem(linkedNodeKey);	
+				     
+					linkedNode.deleteNode();
+					this.windowMgr.unregister(win);
+					if (myDesktopApp.getLoadedModule(myDesktopApp.dynamicModules.interactive_plot.id) != null)
+						myDesktopApp.getLoadedModule(myDesktopApp.dynamicModules.interactive_plot.id).multiSelector = false;					
+				  },				  
+				//   destroy: function(win,opt){
+				// 	  if (this.windowMgr.getCount() === 0) this.win.close();
+				//   }, 
+				  show: function(o)
+				  {
+					  panelResult.setPageSize(pageSize);					 
+				  }			      
+			      }
+		});
+	      
+		panelResult.on({
+		      scope : this,
+		      pagesize : function(win,val)
+		      {
+			    Ext.state.Manager.getProvider().set(windowResultId+'_pagesize',val);
+		    }
+		});
+	      
+		// register new window 	       
+		this.windowMgr.register(win);				
+		if (this.linkedNodes) this.win.items.items[0].addPlotItem(N-1,windowResultId);		
+		win.show(); 
+	     	 
+            } else {	     
+//update image (OUTPUTNAME!!!!) and timing   in existing Tab result Panel                 
+		var linkedNode = this.getLinkedNode();
+		//resize window for changed orientation	    		 
+		var resultId = linkedNode.get('object').get('folderId'); 
+		
+	 	//var outputName = linkedNode.get('object').get('outputName');	
+		var windowId =  'plot' + linkedNode.get('object').get('tabId') + '-win';
+		panelResult = this.getWindowResult(windowId).items.items[0];
+			
+	 	//if (!outputName) {
+		   var outputName = linkedNode.get('object').get('resultId');;
+		   panelResult.updateObject(linkedNode.get('object'));
+	 	//}
+//if orientation was changed : resize window and image
+		if (windowResult.mode != orientation) {	
+		   var size = this.computeWindowSize(panelResult); 
+		   windowResult.setSize(size.width,size.height);
+		   windowResult.mode = orientation;
+		   var sizeImg = Ext.clone(size);
+		   var interactivePlotMgr = myDesktopApp.getLoadedModule(myDesktopApp.dynamicModules.interactive_plot.id);
+		   if (interactivePlotMgr)
+			   panelResult.panelImage.setSize(sizeImg.width-interactivePlotMgr.imgOffset.x, 
+						  sizeImg.height-interactivePlotMgr.imgOffset.y);
+		}
+		   
+		panelResult.panelImage.setSrc('data/'+sessionID +'/RES/'+resultId+'/'+ outputName +'.png');  		
+		panelResult.currentStartTime = linkedNode.get('object').get('startDate');
+		 
+		var stopTime = linkedNode.get('object').get('stopDate');
+		panelResult.plotDurationInSec = Ext.Date.getElapsed(panelResult.currentStartTime, stopTime) / 1000;
+// reset mire and Start - Stop ONLY if Interactive Plugin is active
+		 var interactivePlugin = Ext.getCmp('interactiveInter-win-'+windowResultId);
+		 if (interactivePlugin) {
+		  panelResult.resetMire();		    		  
+		  interactivePlugin.items.getAt(0).getForm().findField('start').setValue('');
+		  interactivePlugin.items.getAt(0).getForm().findField('stop').setValue('');             
+		 }
+				 		
+		panelResult.setImageSettings(panelResult.panelImage);
+		windowResult.toFront();
+// if time interval => update Time in TimeSelector		
+		if (configResult.object.get('timesrc')  ==  amdaModel.AmdaTimeObject.inputTimeSrc[1]) {	     
+		    var timeSelector = Ext.getCmp('plotTimeSelector'+id);
+		    timeSelector.cardContainer.activeItem = 1;		   
+		    var intervalSelector = timeSelector.cardContainer.items[1];
+		    intervalSelector.setInterval(panelResult.currentStartTime, stopTime);		  
+		}
+            }
+//if plot for time table : set/update info            
+            if (configResult.object.get('timesrc')  ==  amdaModel.AmdaTimeObject.inputTimeSrc[0]) {	     
+	         panelResult.updateTimeTableInfo(configResult.object);
+	    }
+	    
+// disable buttons if this Tab is checked in the multi plot selector
+	    var resWin =  myDesktopApp.desktop.getWindow(myDesktopApp.dynamicModules.interactive_plot.id);
+	    if (!resWin) return;
+	    var checked = resWin.items.items[0].checkBoxGroup.getChecked();	  
+	    Ext.Array.each(checked, function(item, index){
+		if (item.name.toLowerCase() === windowResultId){
+		  panelResult.disableButtons(true);
+		  return;
+		}
+	    });   
+    },
+ 
+     
+    // getter on specific plot Tab result window
+	getWindowResult: function(windowResultId){
+	    if (!this.windowMgr.get(windowResultId)) return null;
+	    return this.windowMgr.get(windowResultId);	    
+	},
+
+	addLinkedNode : function (myLinkedNode){
+	    if (!this.linkedNodes){
+	        this.linkedNodes = new Array();
+	    }
+	    var obj = myLinkedNode.get('object');	   
+	    if (obj.get('tabId')){	     
+	        // add new linkedNode to this module
+	        this.linkedNodes['plot'+obj.get('tabId') + '-win'] = myLinkedNode;		 
+	    }	  
+	},
+	
+	getLinkedNodeByKey: function(linkedNodeKey){
+	    if (this.linkedNodes){
+	        return this.linkedNodes[linkedNodeKey];
+	    } else {
+	        return null;
+	    }
+	},
+	
+	removeLinkedNode: function(linkedNodeKey){
+	    delete this.linkedNodes[linkedNodeKey];
+	}
+});
\ No newline at end of file
diff --git a/js/app/controllers/InteropModule.js b/js/app/controllers/InteropModule.js
new file mode 100644
index 0000000..d28fdf5
--- /dev/null
+++ b/js/app/controllers/InteropModule.js
@@ -0,0 +1,466 @@
+/** 
+ * Project   : AMDA-NG
+ * Name      : InteropModule.js
+ * @class    amdaDesktop.InteropModule
+ * @extends  amdaDesktop.InteractiveModule
+ * @brief    Interop Module controller definition 
+ * @author   Benjamin RENARD
+ * $Id: InteropModule.js 1870 2013-11-22 13:43:34Z elena $
+ *****************************************************************************
+ *    FT Id     :   Date   : Name - Description
+ *******************************************************************************
+ *  			 23/04/2012: BRE  - file creation
+ */
+
+
+Ext.define('amdaDesktop.InteropModule', {
+	extend: 'amdaDesktop.AmdaModule',
+	
+	requires: [
+        'amdaUI.InteropUI',
+        'amdaDesktop.SampModule'
+    ],
+    
+	contentId : 'interopUI',
+	
+    /**
+     * @cfg {String} window definitions
+     * @required
+     */
+	height:    580,
+	width:     850,
+	uiType :    'panelInterop',
+	helpTitle :'Help on Interop Module',
+	
+	samp : null,
+		 
+	sampclientsStore : new Ext.data.SimpleStore({
+		idProperty: 'id',
+        fields: [
+                   {name: 'id'},
+                   {name: 'name'},
+		           {name: 'descriptionText'},
+		           {name: 'iconUrl'},
+		           {name: 'acceptVOTable', type : 'boolean'},
+		           {name: 'acceptFITS', type : 'boolean'}
+		        ]
+		    }),
+	
+	init : function() {	
+    	this.launcher = {
+    			text : this.title,
+    			iconCls : this.icon,
+    			handler : this.createWindow,
+    			scope : this
+		};
+    },
+    
+    initSampConnector : function(successfn)
+    {
+	    var me = this;
+	    if (!this.samp)
+    	{
+    		this.samp = Ext.create('amdaDesktop.SampModule',{
+    			listeners : {
+    				connected : function(o,success)
+    				{
+    					if (!success)
+    						Ext.Msg.show( {
+    							title : 'SAMP',
+    							msg : 'Cannot connect AMDA to a hub',
+    							modal : false,
+    							icon : Ext.Msg.ERROR,
+    							buttons : Ext.Msg.OK
+    						});
+    					me.updateStatus();
+    					me.updateClients();
+    				},
+    				disconnected : function(o,success)
+    				{
+    					me.updateStatus();
+    					me.sampclientsStore.removeAll();
+    					me.updateClients();
+    				},
+    				clientregister : function(o,id)
+    				{
+    					me.updateClients();
+    				},
+    				clientunregister : function(o,id)
+    				{
+    					var record = me.sampclientsStore.getById(id);
+    					if (record)
+    					{
+    						me.sampclientsStore.remove(record);
+    						me.updateClients();
+    					}
+    				},
+    				clientmetachange : function(o,id,data,subs)
+    				{
+    					var record = me.sampclientsStore.getById(id);
+    					
+    					if (!record)
+    					{
+    						me.sampclientsStore.add({id : id});
+    						record = me.sampclientsStore.getById(id);
+    					}
+    					
+    					if (record)
+    					{
+    						record.set('descriptionText',data['samp.description.text']);
+    						record.set('iconUrl',data['samp.icon.url']);
+    						record.set('name',data['samp.name']);
+    						if (subs)
+    						{
+    							record.set('acceptVOTable',
+    									me.samp.isSubscribed(subs,"table.load.votable"));
+    							record.set('acceptFITS',
+    									me.samp.isSubscribed(subs,"image.load.fits"));
+    						}
+    					}
+    						
+    					me.updateClients();
+    				},
+    				clientsubs : function(o,id,data)
+    				{
+    					var record = me.sampclientsStore.getById(id);
+    					
+    					if (!record)
+    						return;
+    					
+    					if (record)
+    					{
+    						record.set('acceptVOTable',
+    								me.samp.isSubscribed(data,"table.load.votable"));
+    						record.set('acceptFITS',
+    								me.samp.isSubscribed(data,"image.load.fits"));
+    					}
+    						
+    					me.updateClients();
+    				},
+    				uploadfile : function(o,clientName,url,format)
+    				{
+    					myDesktopApp.getLoadedModule(myDesktopApp.dynamicModules.upload.id, true, function (module) {
+		        			module.uploadNotification(url,format);
+		        		});
+    				}
+    			}
+    		});
+    		this.samp.loadScript(function (s){
+    			if (successfn)
+    				successfn.call(me.samp);
+    		});	
+    	}
+	    else
+	    	this.samp.loadScript(function (s){
+    			if (successfn)
+    				successfn.call(me.samp);
+    		});	
+    },
+    
+    updateStatus : function()
+    {
+    	if (this.app && this.samp)
+    	{
+    		var desktop = this.app.getDesktop();
+    		
+    		var isConnected = this.samp.isConnected();
+    		
+    		if (desktop)
+    		{
+    			var win = desktop.getWindow(this.id);
+    			if (win && win.isVisible)
+    				win.items.items[0].updateStatus(isConnected);
+    		
+    			var taskbar = desktop.taskbar;
+    			
+    			if (taskbar)
+    			{
+    				var samptb = taskbar.getComponent('samptb');
+    				if (samptb)
+    					samptb.updateStatus(isConnected);
+    			}
+    		}
+    	}
+    },
+    
+    updateClients : function()
+    {
+    	if (this.app && this.samp)
+    	{
+    		var desktop = this.app.getDesktop();
+    		
+    		var isConnected = this.samp.isConnected();
+    		
+    		if (desktop)
+    		{
+    			var win = desktop.getWindow(this.id);
+    		
+    			var taskbar = desktop.taskbar;
+    			
+    			if (taskbar)
+    			{
+    				var samptb = taskbar.getComponent('samptb');
+    				if (samptb)
+    					samptb.updateClients(this.sampclientsStore);
+    			}
+    		}
+    	}
+    },
+    
+    sampConnected : function()
+    {
+    	if (!this.samp)
+    		return false;
+	    return this.samp.isConnected();
+    },
+    
+    sendVOTable : function(file,clientId)
+    {
+    	if (!this.samp)
+    		return false;
+    	var href = window.location.href;
+    	var baseurl = href.replace('desktop.php','');
+    	this.samp.sendVOTable(baseurl+file,clientId);
+    },
+    
+    sendAladinScript : function(script)
+    {
+    	if (!this.samp)
+    		return false;
+    	this.samp.sendAladinScript(script);
+    },
+    
+    sendFITS : function(url,name)
+    {
+    	if (!this.samp)
+    		return false;
+    	this.samp.sendFITS(url,name);
+    },
+    
+    generateAladinScript : function(urlList, scriptType)
+	{
+		/*var script="reset;"; //reset all views & all planes
+        // first get files 
+        var scriptHead='';
+        //var script="#AJS;\n";
+        //scriptHead+="trace 3;"; //
+        for( var i=0; i < urlList.length; i++)
+        {
+            var url = urlList[i].url;
+            var name = urlList[i].name;
+            scriptHead += 'get File(' + url +','+name+');';
+            scriptHead += 'sync;';
+        }*/
+
+        //scriptHead += 'sync;';
+
+        /*for( var i=0; i < urlList.length; i++)
+        {
+            //then modify some fits values
+            var name = urlList[i].name;
+            scriptHead += 'set '+name+' FITS:CRVAL1=0;';
+            scriptHead += 'set '+name+' FITS:CRVAL2=0;';
+        }*/
+
+        //scriptHead += 'sync;';
+        
+        // add som method specific lines
+        /*switch( scriptType )
+        {
+            case( 'mosaic' ):
+                // first insert the modeview
+                script += "mview 16;";
+                // then download the files
+                script += scriptHead;
+                //for( var i=0; i < urlList.length; i++){
+                //    // we also shall position each image in the grid
+                //    var gridCols = ["A", "B", "C", "D"];
+                //    var colIndex = i%4;
+                //    var lineIndex = 1+Math.floor(i/4);
+                //    script += "cview "+i+" "+gridCols[colIndex]+lineIndex+";\n";
+                //}
+                break;
+
+            case( 'movie' ):
+                // download first
+                script += scriptHead;
+                script += 'blink ';
+                for( var i=1; i < urlList.length; i++){
+                    script += urlList[i].name+" ";
+                }
+                script += ';';
+                break;
+
+            case( 'diff' ):
+                // download first
+                script += scriptHead;
+                for( var i=1; i < urlList.length; i++){
+                    var diffName = 'diff' + i;
+                    var currRawName = urlList[i].name;
+                    var prevRawNum = i-1;
+                    var prevRawName = urlList[prevRawNum].name;
+                    script += diffName + ' = ' + currRawName + ' - ' + prevRawName + ';\n';
+                }
+                script += 'sync;';
+                script += 'diff_movie = blink ';
+                for( var i=1; i < urlList.length; i++){
+                    script += 'diff'+i+' ';
+                }
+                script += ';';
+                break;
+        }
+        //script += 'sync;';*/
+    	
+    	var script = 'reset;';
+    	
+    	for( var i=0; i < urlList.length; i++)
+		{
+			var url = urlList[i].url;
+			var name = urlList[i].name;
+			script += 'get File(' + url +','+name+');'; 
+		}
+    	
+    	script += 'sync;';
+    	
+    	/*for( var i=0; i < urlList.length; i++)
+        {
+            //then modify some fits values
+            var name = urlList[i].name;
+            script += 'set '+name+' FITS:CRPIX1=100;';
+            script += 'set '+name+' FITS:CRPIX2=0;';
+        }*/
+    	
+    	switch( scriptType )
+        {
+            case('mosaic'):
+            	{
+            		
+            		script += 'sync;mview 16';
+            	}
+            	break;
+            case('movie'):
+            	{
+	            	script += 'blink ';
+	                for( var i=1; i < urlList.length; i++){
+	                    script += urlList[i].name+" ";
+	                }
+	                script += ';';
+            	}
+            break;
+        }
+    	
+    	
+    	
+        return script;     	
+	},
+    
+    switchSampConnect : function()
+    {
+    	var me = this;
+    	//loadMask.show();
+    	this.initSampConnector(function (s){
+    		if (me.samp.isConnected())
+    		{
+    			me.samp.disconnect();
+    		}
+    		else
+    		{
+    			me.samp.connect();
+    			//	loadMask.hide();
+    		}
+    	});
+    	
+    },
+
+    forceSampDisconnect : function()
+    {
+    	if (!this.samp)
+    		return;
+    	
+    	if (!this.samp.isConnected())
+    		return;
+    	
+    	this.samp.disconnect();
+    },
+    
+    getVOTableClients : function ()
+    {
+    	//return list of all clients that can receive a VOTable
+    	if (!this.samp)
+    		return [];
+    	var result = new Array();
+    	this.sampclientsStore.each(function (client){
+    		if (client.get('acceptVOTable'))
+    			result.push({id : client.get('id'), name : client.get('name'), icon : client.get('iconUrl')});
+    			
+    	},this);
+    	return result;
+    },
+    
+    getFITSClients : function ()
+    {
+    	//return list of all clients that can receive a FITS image
+    	if (!this.samp)
+    		return [];
+    	var result = new Array();
+    	this.sampclientsStore.each(function (client){
+    		if (client.get('acceptFITS'))
+    			result.push({id : client.get('id'), name : client.get('name'), icon : client.get('iconUrl')});
+    			
+    	},this);
+    	return result;
+    	
+    },
+ // arguments from launcher : CONFIG (OBJECT!!!)    
+	createWindow : function(config){         
+    	var me = this;
+	var baseId = null;
+	
+    	if (!Ext.isObject(config)) {
+	  baseId = config;
+	}
+	    var desktop = this.app.getDesktop();
+	    var win = desktop.getWindow(this.id);
+           
+            activeTab = 1;
+	   
+	    if(!win)
+	    {
+	        win = desktop.createWindow({		  
+	            id: this.id,
+	            title:this.title, 
+		    layout: 'anchor',
+		    width:600,
+	            height:550,  
+	            modal: true,
+		    minimizable: false,
+	            iconCls: this.icon,
+	            animCollapse:false,
+	            constrainHeader:true,
+	            bodyPadding : 5,
+		    stateful : true,
+		    stateId  : this.id,
+		    stateEvents: ['move','show','resize'],
+	            items : [
+	              {
+	            	  xtype: 'panelInterop',
+	            	  clientsStore : this.sampclientsStore,
+			  activeTab : activeTab, 
+			  baseId : baseId,
+	            	  onSwitchConnect : function ()
+	            	  {
+	            	  	me.switchSampConnect();
+	            	  }
+	              }
+	            ]
+	        });
+	    } 
+	    
+	    if (me.samp && me.samp.ready)
+	    	this.updateStatus();
+	    
+	    win.show();
+	    return win;
+	}
+
+});
\ No newline at end of file
diff --git a/js/app/controllers/JobsMgr.js b/js/app/controllers/JobsMgr.js
new file mode 100644
index 0000000..acb2953
--- /dev/null
+++ b/js/app/controllers/JobsMgr.js
@@ -0,0 +1,134 @@
+/** 
+ * Project  : AMDA-NG4
+ * Name     : JobsMgr.js
+ * @class   amdaDesktop.JobsMgr 
+ * @extends Ext.AbstractManager 
+ * @brief    Manages Jobs In Progress
+ * @author  elena
+ * @version $Id: JobsMgr.js 2759 2015-02-19 12:32:31Z elena $
+ * @todo
+ *******************************************************************************
+ *    FT Id     :   Date   : Name - Description
+ *******************************************************************************
+ *  :           :28/01/2011: 
+ 
+ */
+Ext.define('amdaDesktop.JobsMgr', {
+     
+     extend: 'Ext.AbstractManager',
+     singleton: true,
+     first : true,
+     jobsInProgress : 0,
+     jobsFinished : 0, 
+     jobsError : 0,      
+     updateStatus : null,
+     interval : 60000,   //   //msec 60000
+    
+     jobTree : null,
+     
+     
+//TODO first => at login !!!
+     
+     getStatus :  function(){  
+             	   
+	     AmdaAction.getJobs(function(res,e){
+//TODO Errors processing	       
+             if (e.status) {        
+		 if (res.success) {
+// Update from Server Jobs Running and Finished	 				 
+		      if (res.nFinished > 0 ) {
+			   Ext.each(res.jobsFinished, function(item, index, all){
+                             if (item.status != 'old') {
+                                switch (item.jobType) {
+                                case 'condition' : var type = 'Data Mining '; break;
+                                case 'request' : var type = 'Plot '; break;   
+                                case 'download' : var type = 'Download '; break;
+                                default: var type = 'unknown';    
+                                }
+                                var message = Ext.Date.format(new Date(), 'd-m-Y H:i:s: ') + ': '+ type + ' '+item.name + ' completed';
+                                myDesktopApp.getLoadedModule(myDesktopApp.dynamicModules.explorer.id, true, function (module) {
+                                	module.addLogMessage(message);
+                                });
+                             }
+			   }); 
+			   
+		      }
+			   
+ 		      if (amdaDesktop.JobsMgr.first && (res.nInProgress > 0 || res.nFinished > 0)) {			  
+			myDesktopApp.infoMsg('You have  '+  res.nFinished  + ' new finished jobs and ' + res.nInProgress + ' jobs in progress'); 		      
+		      } 
+	     		 
+		      amdaDesktop.JobsMgr.jobsInProgress = res.nInProgress;
+		      amdaDesktop.JobsMgr.jobsFinished = res.nFinished;
+		      amdaDesktop.JobsMgr.jobsError = res.nError;  
+	        
+		      if (res.nInProgress == 0 && amdaDesktop.JobsMgr.updateStatus)
+			 {				  			 				 
+			            Ext.TaskManager.stop(amdaDesktop.JobsMgr.updateStatus);
+				    amdaDesktop.JobsMgr.updateStatus = null;		  				  
+		       }
+		      if (res.nInProgress > 0 && !amdaDesktop.JobsMgr.updateStatus)
+		        {
+				   amdaDesktop.JobsMgr.updateStatus =
+				    Ext.TaskManager.start({
+				       run : amdaDesktop.JobsMgr.getStatus,
+				       interval : amdaDesktop.JobsMgr.interval 
+				    });			  	    				  
+			} 
+			
+		      if (res.nFinished > 0 && !amdaDesktop.JobsMgr.first)  {
+			 if (!amdaDesktop.JobsMgr.jobTree) 
+			      amdaDesktop.JobsMgr.jobTree = Ext.getCmp(amdaUI.ExplorerUI.JOB_TAB.TREE_ID);
+			  
+			  Ext.each(res.jobsFinished, function(job) {
+                         
+			   switch (job.jobType) {
+			     case 'condition':	
+//TODO get root nodes depending on conditions			       
+				  var resRootNode = 
+				     amdaDesktop.JobsMgr.jobTree.getRootNode().findChild('id',amdaModel.BkgJobNode.RES_ROOT_NODE.CONDITION, true);
+				  var jobRootNode = 
+				      amdaDesktop.JobsMgr.jobTree.getRootNode().findChild('id',amdaModel.BkgJobNode.JOB_ROOT_NODE.CONDITION, true);
+			          break;
+			      case 'request' :
+				  var resRootNode = 
+				     amdaDesktop.JobsMgr.jobTree.getRootNode().findChild('id',amdaModel.BkgJobNode.RES_ROOT_NODE.PLOT, true);
+				  var jobRootNode = 
+				      amdaDesktop.JobsMgr.jobTree.getRootNode().findChild('id',amdaModel.BkgJobNode.JOB_ROOT_NODE.PLOT, true);
+			       break;
+			      case 'download' :
+				  var resRootNode = 
+				     amdaDesktop.JobsMgr.jobTree.getRootNode().findChild('id',amdaModel.BkgJobNode.RES_ROOT_NODE.DOWNLOAD, true);
+				  var jobRootNode = 
+				      amdaDesktop.JobsMgr.jobTree.getRootNode().findChild('id',amdaModel.BkgJobNode.JOB_ROOT_NODE.DOWNLOAD, true);
+			       break; 
+			      default :
+			   }
+//TODO check: job sub tree is always expanded - after the first job is launched - there cannot be too many unfinished jobs on login
+//  so callback is not needed			   
+				  if (!resRootNode.parentNode.isExpanded()) resRootNode.parentNode.expand(false);				
+				  if (!jobRootNode.parentNode.isExpanded()) jobRootNode.parentNode.expand(false);
+				  if (!jobRootNode.isExpanded()) jobRootNode.expand(false);
+				  
+				  //AKKA - use processid to find job
+				  var nodeToMove = jobRootNode.findChild('id', job.id, false);
+				  nodeToMove.set('status',job.status);
+//TODO check if really job.status				  
+				  nodeToMove.set('iconCls',job.status);
+				  jobRootNode.removeChild(nodeToMove); 
+			 	  
+				  if (!resRootNode.isExpanded()) {				      
+				     resRootNode.expand(false, function(){				   
+				       if (!resRootNode.findChild('id', nodeToMove.get('processId'))) 
+					    resRootNode.appendChild(nodeToMove);
+				    });				      
+				  }  
+				  else resRootNode.appendChild(nodeToMove); 				   				  			       
+			}); 
+		      } 
+		 }  
+            }
+            amdaDesktop.JobsMgr.first = false;
+        });        
+    }                    
+})
diff --git a/js/app/controllers/MyDataModule.js b/js/app/controllers/MyDataModule.js
new file mode 100644
index 0000000..7c5c289
--- /dev/null
+++ b/js/app/controllers/MyDataModule.js
@@ -0,0 +1,42 @@
+/** 
+ * Project   : AMDA-NG
+ * Name      : MyDataModule.js
+ * @class    amdaDesktop.MydataModule
+ * @extends  amdaDesktop.InteractiveModule
+ * @brief    MyData Module controller definition 
+ * @author   Elena
+ * @version  $Id: MyDataModule.js 2683 2014-12-02 10:58:53Z elena $		 
+ */
+
+Ext.define('amdaDesktop.MyDataModule', {
+    extend: 'amdaDesktop.InteractiveModule',
+    
+    requires: [
+        'amdaUI.MyDataUI' 
+    ],
+    
+    contentId : 'mydataUI',	
+	
+    /*
+    * @cfg {String} data models
+    * @required
+    */
+    objectDataModel : 'amdaModel.FileParamObject',
+    nodeDataModel : 'amdaModel.MyDataParamNode',
+
+    /*
+    * @cfg {String} window definitions
+    * @required
+    */
+    width: 600, 
+    height: 550, 
+    uiType : 'panelMyData',
+    helpTitle : 'Help on MyData Module', 	
+    helpFile : 'uploadDataHelp',
+	
+    init : function() {	
+            //force the launcher to null to don't add this item on start menu
+            this.launcher = null;
+    }	 
+	
+});
diff --git a/js/app/controllers/ParameterModule.js b/js/app/controllers/ParameterModule.js
new file mode 100644
index 0000000..eaa4aad
--- /dev/null
+++ b/js/app/controllers/ParameterModule.js
@@ -0,0 +1,43 @@
+/** 
+ * Project  : AMDA-NG4
+ * Name     : ParameterModule.js
+ * @class   amdaDesktop.ParameterModule
+ * @extends amdaDesktop.InteractiveModule
+ * @brief   Parameter Module controller definition
+ * @author  CDA
+ * @version $Id: ParameterModule.js 1308 2013-03-01 08:15:09Z myriam $
+ * @todo helpTitle
+ *******************************************************************************
+ *    FT Id     :   Date   : Name - Description
+ *******************************************************************************
+ *  :           :08/06/2011: CDA - Migration extjs4
+ *  :           :09/06/2011: elena - all generic methods are now of InteractiveModule class
+ */
+
+
+
+Ext.define('amdaDesktop.ParameterModule', {
+	extend: 'amdaDesktop.InteractiveModule',
+ 
+	requires: [
+        'amdaUI.ParameterUI'
+	],
+	
+	contentId : 'paramUI',
+	
+    /**
+     * @cfg {String} data model
+     * @required
+     */
+	nodeDataModel : 'amdaModel.DerivedParamNode',
+ 	uiType : 'panelParam',
+	helpTitle : 'Help on Parameter Module',		
+	helpFile : 'parameterHelp',
+  
+	/**
+	 * override the non applicable receiption method
+	 */
+	addTT : function(ttname,ttid) {
+	  //this module has nothing to do with a TT sent from WsExplorer
+	}
+});
\ No newline at end of file
diff --git a/js/app/controllers/PlotModule.js b/js/app/controllers/PlotModule.js
new file mode 100644
index 0000000..c5c9ac3
--- /dev/null
+++ b/js/app/controllers/PlotModule.js
@@ -0,0 +1,196 @@
+/** 
+ * Project   : AMDA-NG
+ * Name      : PlotModule.js
+ * @class    amdaDesktop.PlotModule
+ * @extends  amdaDesktop.InteractiveModule
+ * @brief    Plot Module controller definition 
+ * @author   Caroline DARMON
+ * $Id: PlotModule.js 2152 2014-02-28 16:32:22Z elena $
+ */
+
+Ext.define('amdaDesktop.PlotModule', {
+    
+    extend: 'amdaDesktop.InteractiveModule',
+    
+    requires: [
+         'amdaUI.TabPlotUI' 
+    ],
+    
+    contentId : 'tabPlotUI',
+    linkedNode : null,
+    //array of linked nodes (TabPanel!!!)	
+    linkedNodes : null,
+    
+        
+    /**
+    * @cfg {String} data models
+    * @required
+    */
+    nodeDataModel : 'amdaModel.PlotNode',
+    
+    /**
+     * @cfg {String} window definitions
+     * @required
+     */
+    height:   680,
+    width:     850,
+    uiType :    'tabPlot',
+    helpTitle : 'Help on Plot Module',    
+
+    /**
+    * Window Creation method of the Module
+    */
+    createWindow : function () {
+        // init Result Win 	   
+        var win = myDesktopApp.desktop.getWindow(this.id); 
+	    
+        if (!win) 
+        {	       
+            win = myDesktopApp.desktop.createWindow({
+                            id : this.id,
+                            title : this.title,
+                            width : this.width,
+                            //	minWidth : this.width,
+                            height : this.height,
+                            minHeight: this.height,
+                            iconCls : this.icon,
+                            border : false,
+                            constrainHeader : true,
+                            layout : 'fit',
+                            stateful : true,
+                            stateId  : this.id,
+                            stateEvents: ['move','show','resize'],
+                            tools: [
+                                {
+                                    type:'help',
+                                    qtip: this.helpTitle,			        	                                          
+                                    scope:this,
+                                    handler: function(event, toolEl, panel){
+                                    	var me = this;
+                                        myDesktopApp.getLoadedModule(myDesktopApp.dynamicModules.info.id, true, function (module) {
+                                        	module.createWindow('plotStart', me.helpTitle);
+                                        });                                         
+                                    }  					  				  
+                                    }			        
+                            ],
+                                items : [ 
+                                    {
+                                            xtype :  this.uiType,									    
+                                            id : this.contentId
+                                    }	
+                                ]
+                        });
+                        this.closed = false;
+                        win.on({
+                                scope: this,
+                                activate: function(){
+                                    // order to pin this Module with WsExplorer
+                                    this.pin();
+                                },
+                                show: function(){
+                                    var multiMgrWin = myDesktopApp.desktop.getWindow(myDesktopApp.dynamicModules.interactive_plot.id);
+                                
+                                    if (!multiMgrWin) {
+                                        myDesktopApp.getLoadedModule(myDesktopApp.dynamicModules.interactive_plot.id, true, function (module) {
+                                        	module.createWindow();   
+                                        	module.win.show();
+                                        });
+                                    }
+                                    
+                                },
+                                // on window closing event
+                                beforeclose: function(){	
+                                    
+                                        this.saveState(); 
+                                        
+                                        var isDirty = win.down('form').getForm().isDirty();
+                                        if (!this.closed && isDirty) {
+                                        Ext.Msg.confirm('Close', 'Current window has been modified.\nDo you want to close the window ?' , function (btn, text){  
+                                            if (btn == 'yes'){ 
+                                                // mark this.closed as true before the call to close() as that will fire the beforeclose event again
+                                                this.closed = true; 
+                                                win.close();
+                                            } 
+                                            },this); 
+                                            } else if (!isDirty) {
+                                                    this.closed = true;
+                                            }
+                                        if (this.closed) {
+                                                // close Interactive Plot Mgr Window if exists
+                                            var multiMgrWin = myDesktopApp.desktop.getWindow(myDesktopApp.dynamicModules.interactive_plot.id);
+                                            if (multiMgrWin) multiMgrWin.close();
+                                            if (this.linkedNodes) this.linkedNodes.clear();  
+                                            this.linkedNode.set('object','');
+                                            // unlink Node
+                                            this.setLinkedNode(null);  
+                                            this.unpin();
+                                        } 
+                                // Don't automatically close if the form is dirty, let the call to this.close() within the confirm box close the window.
+                                return this.closed;					    
+                                }
+                        }); 		  		
+            } // if !win
+            win.show();
+            
+            this.linkedNode = this.getLinkedNode();
+            
+            if (!this.linkedNode) {
+                    this.createLinkedNode(); 
+                    this.createObject(); 		  
+            }
+            
+            var tabId = this.getUiContent().tabPanel.getActiveTab().id;	      
+            var editedNode = this.getTabNode(tabId);
+            if (editedNode !== this.linkedNode) {
+                this.getUiContent().setObject(this.linkedNode.get('object'));
+            }
+            // add  linked node to the array of nodes and set object to UI (TabPlotUI)		 	   
+            this.addLinkedNode(this.linkedNode, null);	    
+    },	
+
+    /**
+     * add the current node in this module
+     * @param {amdaModel.InteractiveNode} myLinkedNode
+     */
+    addLinkedNode : function (myLinkedNode, tabId)
+    {
+        
+        if (!this.linkedNodes){
+            this.linkedNodes = new Ext.util.HashMap();
+        }
+        //TODO link the same request node to multi tabs - or interdit???	
+   
+            if (!tabId) tabId = this.getUiContent().tabPanel.getActiveTab().id;		 
+            this.linkedNodes.replace(tabId,myLinkedNode);	   
+    },
+        
+    /**
+     * get  active Tab linked node in Plot module
+     * 
+     */
+    getTabNode : function (tabId)
+    {        
+        if (!this.linkedNodes){
+            return null;
+        }
+        //   var tabId = this.getUiContent().tabPanel.getActiveTab().id;                  
+        var linkedNode = this.linkedNodes.get(tabId);	    
+        return linkedNode;
+    },
+         	  
+    saveState: function() {
+            var uiContent = this.getUiContent();               
+            var form = uiContent.tabPanel.getActiveTab().down('form').getForm();
+            var values = form.getValues(); 
+        //     Ext.state.Manager.set(this.id + '_form', values);
+            Ext.state.Manager.set('timeinterval', {'startDate' : values.startDate,'stopDate' : values.stopDate });
+
+    },
+       
+    getState : function() {
+        
+        //  return Ext.state.Manager.get(this.id + '_form'); 
+        return Ext.state.Manager.get('timeinterval'); 
+    }
+    
+});
\ No newline at end of file
diff --git a/js/app/controllers/ResourcesMgrModule.js b/js/app/controllers/ResourcesMgrModule.js
new file mode 100644
index 0000000..7965bed
--- /dev/null
+++ b/js/app/controllers/ResourcesMgrModule.js
@@ -0,0 +1,58 @@
+/** 
+ * Project  : AMDA-NG4
+ * Name     : ResourcesMgrModule.js
+ * @class   amdaDesktop.ResourcesMgrModule
+ * @extends amdaDesktop.AmdaModule
+ * @brief   Resources Manager Module controller definition
+ * This Module allow user to manage resources of his workspace
+ * @author  CDA
+ * @version $Id: $
+ * @todo Do we need real Module ??? 
+ *******************************************************************************
+ *    FT Id     :   Date   : Name - Description
+ *******************************************************************************
+ *  :           :07/02/2011: CDA - File creation
+ */
+
+
+Ext.define('amdaDesktop.ResourcesMgrModule', {
+		
+	extend: 'amdaDesktop.AmdaModule',
+	
+	requires: [
+        'amdaUI.ResourcesMgrUI'
+    ],
+    
+	contentId : 'resrcMgrUI',
+			
+	createWindow : function(src){
+	    var desktop = this.app.getDesktop();
+	    var win = desktop.getWindow(this.id);
+	    if(!win){
+	        win = desktop.createWindow({
+	            id: this.id,
+	            title:this.title,
+	            width:550,
+	            height:370,           
+	            iconCls : this.icon,
+	            border : false,
+	            constrainHeader : true,
+	            animCollapse: false,
+	            tools: [{
+	                type: 'help',
+	                qtip: this.helpTitle,
+	                handler: function(event, toolEl, panel){
+	                    //TODO: help logic
+	                }
+	            }],
+	            layout: 'fit',
+	            items: [
+                    {xtype: 'panelResrcMgr'}
+                ]
+	        });
+	    }
+	    win.show();
+	    return win;
+	}
+
+});
diff --git a/js/app/controllers/ResultModule.js b/js/app/controllers/ResultModule.js
new file mode 100644
index 0000000..9f17ed5
--- /dev/null
+++ b/js/app/controllers/ResultModule.js
@@ -0,0 +1,143 @@
+
+/** 
+ * Project   : AMDA-NG
+ * Name      : ResultModule.js
+ * @class    amdaDesktop.ResultModule
+ * @extends  amdaDesktop.InteractiveModule
+ * @brief    Result Module controller definition 
+ * @author   
+ * @version $Id: ResultModule.js 1052 2012-07-20 14:21:37Z elena $
+ *****************************************************************************
+ *    FT Id     :   Date   : Name - Description
+ *******************************************************************************
+ *  			 
+ */
+
+Ext.define('amdaDesktop.ResultModule', {
+	extend: 'amdaDesktop.InteractiveModule',
+	
+	requires: [
+        'amdaUI.ResultUI'
+	],
+
+	contentId : 'resultUI',
+	width :  500, 
+	height : 250,
+    /**
+     * @cfg {String} data models
+     * @required
+     */
+	nodeDataModel :  'amdaModel.BkgJobNode',
+	uiType : 'panelResult',
+	nodeType : null,
+	helpTitle :'Help on Result Module',
+	
+	init : function() {	
+		//force the launcher to null to don't add this item on start menu
+		this.launcher = null;
+	},
+	
+    /**
+      * Window Creation method of the Module
+      */
+	createWindow : function () {
+	    // init Result Win 	 
+	    var desktop = this.app.getDesktop();
+	    var win = desktop.getWindow(this.id);
+	    if (!win) {
+	        win = desktop.createWindow({
+				id : this.id,
+				title : this.title,
+				width : this.width,
+				height : this.height,
+				iconCls : this.icon,
+				border : false,
+				constrainHeader : true,
+				layout : 'fit',
+				stateful : true,
+				stateId  : this.id,
+				stateEvents: ['move','show','resize'],
+//				closable : false,
+				tools: [
+			         {
+			        	type:'help',
+			        	qtip: this.helpTitle,
+			        	handler: function(event, toolEl, panel){
+			        		//TODO: help logic
+			        	}
+			         }
+				],
+				items : [ 
+				 {
+				 	    xtype :  this.uiType,					    
+					    id : this.contentId
+				  }	
+				],
+				listeners: {
+				  scope: this,
+				  beforeclose : function() {
+				     if (this.linkedNodes) this.linkedNodes.clear();
+				  }
+				}
+			});
+	    }	 
+	    win.show();
+	    
+	    var linkedNode = this.getLinkedNode();
+	    
+	    if (win && linkedNode.get('jobType')) {      
+	     if (!this.linkedNodes ||
+	 	  !this.linkedNodes.getByKey(linkedNode.get('processId'))){	 
+	    	this.getUiContent().setResult(linkedNode);	
+		    this.addLinkedNode(linkedNode);
+	     }
+	    }	
+	},	
+	
+//TODO override interactive module method : is it needed???	
+	setLinkedNode : function (myLinkedNode){
+		this.linkedNode = myLinkedNode;
+	},
+
+    /**
+     * add the current node in this module
+     * @param {amdaModel.InteractiveNode} myLinkedNode
+     */
+	addLinkedNode : function (myLinkedNode){
+	    if (!this.linkedNodes){
+	        this.linkedNodes = new Ext.util.MixedCollection();
+	    }
+	    
+	    if (myLinkedNode.get('processId')){	
+	    	
+	        // add new linkedNode to this module
+	        this.linkedNodes.add(myLinkedNode.get('processId'),myLinkedNode);	
+	    }	  
+	},
+	
+   /**
+     * remove deleted node from this module; delete corresponding FieldSet
+     * @param {amdaModel.InteractiveNode} linkedNode 
+     * @param int index
+     */
+   
+       removeLinkedNode : function(linkedNode, index) {	 
+    	   
+    this.linkedNodes.remove(index);
+	  
+	 var type = linkedNode.get('jobType');
+	 var processId = linkedNode.get('processId');	 
+	 var tabPanel = this.getUiContent().items.items[0];
+	 var thePanel;
+	 tabPanel.items.each(function(item){
+	    if (item.id == 'tab-'+type) {
+	       thePanel = item;
+	       thePanel.items.each(function(item) {
+		 if (processId == item.intId){
+		        thePanel.remove(item);
+		 }
+	       });
+	     }
+	  });
+       }
+});
\ No newline at end of file
diff --git a/js/app/controllers/SampModule.js b/js/app/controllers/SampModule.js
new file mode 100644
index 0000000..28fd9d3
--- /dev/null
+++ b/js/app/controllers/SampModule.js
@@ -0,0 +1,282 @@
+/** 
+ * Project   : AMDA-NG
+ * Name      : SampModule.js
+ * @class    amdaDesktop.SampModule
+ * @extends  amdaDesktop.SampModule
+ * @brief    Samp Module controller definition 
+ * @author   Benjamin RENARD
+ * $Id: SampModule.js 1698 2013-07-17 10:54:37Z benjamin $
+ *****************************************************************************
+ *    FT Id     :   Date   : Name - Description
+ *******************************************************************************
+ *  			 23/04/2012: BRE  - file creation
+ */
+
+Ext.define('amdaDesktop.SampModule', {
+	
+	extend: 'Ext.util.Observable',
+
+	connector : null,
+	ready     : false,
+	
+	constructor: function() 
+	{
+		this.addEvents({
+			"connected"        : true,
+			"disconnected"     : true,
+			"clientregister"   : true,
+			"clientunregister" : true,
+			"clientmetachange" : true,
+			"clientsubs"       : true,
+			"uploadfile"       : true
+		});
+		
+		this.callParent(arguments);
+	},
+	
+	destroy: function()
+	{
+		if (this.isConnected())
+			this.disconnect();
+	},
+
+	loadScript : function(successfn)
+	{
+		var me = this;
+		
+		if (this.ready)
+		{
+			successfn.call(me);
+			return;
+		}
+			
+		var connectorURL = Ext.Loader.getPath('samp')+"/jsamp/samp.js";
+		var onLoadConnector = function () {
+				
+			var href = window.location.href;
+	    	var baseurl = href.replace('desktop.php','');
+	    	var iconURL = baseurl+'js/resources/images/amda_samp.jpg';
+			
+			var meta = {
+				    "samp.name": "AMDA",
+				    "samp.description.text":
+				    "AMDA (Automated Multi Dataset Analysis) : Versatile web tool for space physics",
+				    "samp.icon.url": iconURL
+				};
+				
+			
+			var cc = new samp.ClientTracker();
+			
+			var callHandler = cc.callHandler;
+			
+			callHandler["samp.app.ping"] = function(senderId, message, isCall) {
+			    if (isCall) {
+			        return {text: "ping to you, " + cc.getName(senderId)};
+			    }
+			};
+			
+			callHandler["table.load.votable"] = function(senderId, message, isCall) {
+				var clientName = cc.getName(senderId);
+				var url = message["samp.params"]["url"];
+				me.receiveFile(clientName, url, "votable");
+			};
+			
+			callHandler["table.load.cdf"] = function(senderId, message, isCall) {
+				var clientName = cc.getName(senderId);
+				var url = message["samp.params"]["url"];
+				me.receiveFile(clientName, url, "cdf");
+			};
+			
+			callHandler["table.load.netcdf"] = function(senderId, message, isCall) {
+				var clientName = cc.getName(senderId);
+				var url = message["samp.params"]["url"];
+				me.receiveFile(clientName, url, "netcdf");
+			};
+			
+			callHandler["samp.hub.event.shutdown"] = function(senderId, message, isCall) 
+			{
+				me.disconnect();
+			};
+			
+			cc.onchange = function(id, type, data) 
+			{
+				switch (type)
+				{
+					case 'register' :
+						me.fireEvent('clientregister',me,id);
+						break;
+					case 'unregister' :
+						me.fireEvent('clientunregister',me,id);
+						break;
+					case 'meta' :
+						me.fireEvent('clientmetachange',me,id,data,cc.subs[id]);
+						break;
+					case 'subs' :
+						me.fireEvent('clientsubs',me,id,data);
+						break;
+				}
+			};
+			
+			logCc = {
+			    receiveNotification: function(senderId, message) {
+					var handled = cc.receiveNotification(senderId, message);
+			        //console.log("notification: " + message["samp.mtype"] +
+			        //            " from " + cc.getName(senderId));
+			    },
+			    receiveCall: function(senderId, msgId, message) {
+			        var handled = cc.receiveCall(senderId, msgId, message);
+			        //console.log("call: " + message["samp.mtype"] +
+			        //            " from " + cc.getName(senderId));
+			    },
+			    receiveResponse: function(responderId, msgTag, response) {
+			        var handled = cc.receiveResponse(responderId, msgTag, response);
+			        //	("response: " + msgTag +
+			        //            " from " + cc.getName(responderId));
+			    },
+			    init: function(connection) {
+			        cc.init(connection);
+			    }
+			};
+			
+			
+			var subs = cc.calculateSubscriptions();
+			
+			me.connector = new samp.Connector("AMDA", meta, logCc, subs);
+				
+			me.connector.onreg = function(conn) {
+				me.fireEvent('connected',me,true);
+			};
+			
+			me.connector.onunreg = function(conn) {
+				me.fireEvent('disconnected',me,true);
+			};
+			
+			me.connector.onregerror = function(message) {
+				me.showStartHubMsg();
+			};
+				
+			me.ready = true;
+				
+			successfn.call(me);
+		};
+		
+		var onErrorConnector = function () {
+			myDesktopApp.errorMsg("Cannot load jsamp script");
+			me.fireEvent('connected',me,false);
+		};
+		Ext.Loader.injectScriptElement(connectorURL, onLoadConnector, onErrorConnector, me);
+	},
+	
+	showStartHubMsg : function()
+	{
+		var msg = "Cannot connect to a SAMP hub.<br/>";
+		msg += 'You can use Java WebStart to start a JSAMP hub by just clicking here: <a href="http://astrojs.github.io/sampjs/hub/webhub.jnlp">start hub</a><br/>';
+		msg += 'Or use internal hub included in tools like <a href="http://www.star.bris.ac.uk/~mbt/topcat/topcat-full.jnlp">TOPCAT</a> or <a href="http://aladin.u-strasbg.fr/java/nph-aladin.pl?frame=get&id=aladin.jnlp">Aladin</a>';
+		myDesktopApp.errorMsg(msg);
+	},
+	
+	connect : function()
+	{
+		if (!this.connector || !this.ready)
+			return false;
+		try
+		{
+			this.connector.register();		
+			return true;
+		}
+		catch(err)
+		{
+			myDesktopApp.errorMsg(err);
+			return false;
+		}
+	},
+	
+	disconnect : function()
+	{
+		if (!this.connector || !this.ready)
+			return false;
+		try
+		{
+			this.connector.unregister();
+			this.fireEvent('disconnected',this,true);
+				
+			return true;
+		}
+		catch(err)
+		{
+			myDesktopApp.errorMsg(err);
+			return false;
+		}
+	},
+	
+	isConnected : function()
+	{
+		if (!this.connector || !this.ready)
+			return false;
+		try
+		{
+			return this.connector.connection;
+		}
+		catch(err)
+		{
+			myDesktopApp.errorMsg(err);
+			return false;
+		}
+	},
+	
+	notififyMessage : function(message,clientId)
+	{
+		if (!this.connector || !this.ready)
+			return false;
+		try
+		{
+			if (!clientId || clientId == 'hub')
+				this.connector.connection.notifyAll([message]);
+			else
+				this.connector.connection.notify([clientId,message]);
+			return true;
+		}
+		catch(err)
+		{
+			myDesktopApp.errorMsg(err);
+			return false;
+		}
+	},
+	
+	sendVOTable : function(url,clientId)
+	{
+		var message = new samp.Message('table.load.votable', {"url": url});
+		return this.notififyMessage(message,clientId);
+	},
+	
+	sendFITS : function(url,name)
+	{
+		var message = new samp.Message('image.load.fits', {"url": url, "name": name});
+		return this.notififyMessage(message);
+	},
+	
+	sendAladinScript : function(ascript)
+	{
+		var message = new samp.Message('script.aladin.send', {"script": ascript});
+		return this.notififyMessage(message);
+	},
+	
+	getSubscribedClients : function(mType)
+	{
+		if (!this.connector || !this.ready)
+			return [];
+		return this.connector.connection.getSubscribedClients([mType]);
+	},
+	
+	isSubscribed : function(subs, mtype)
+	{
+		if (!this.connector || !this.ready)
+			return [];
+		return samp.isSubscribed(subs, mtype);
+	},
+	
+	receiveFile : function(clientName, url, format)
+	{
+		this.fireEvent('uploadfile',this,clientName, url, format);
+	}
+});
\ No newline at end of file
diff --git a/js/app/controllers/SearchModule.js b/js/app/controllers/SearchModule.js
new file mode 100644
index 0000000..dfc2fa7
--- /dev/null
+++ b/js/app/controllers/SearchModule.js
@@ -0,0 +1,51 @@
+
+/** 
+ * Project   : AMDA-NG
+ * Name      : SearchModule.js
+ * @class    amdaDesktop.SearchModule
+ * @extends  amdaDesktop.InteractiveModule
+ * @brief    Search Module controller definition 
+ * @author   Myriam
+ * $Id: SearchModule.js 2153 2014-02-28 16:35:19Z elena $
+ */
+
+Ext.define('amdaDesktop.SearchModule', {
+    extend: 'amdaDesktop.InteractiveModule',
+    
+    requires: [
+    'amdaUI.SearchUI'       
+    ],
+    
+    contentId : 'searchUI',
+	
+    /**
+     * @cfg {String} data models
+     * @required
+     */
+    nodeDataModel : 'amdaModel.SearchNode',
+        
+    /**
+     * @cfg {String} window definitions
+     * @required
+     */
+    height: 580,
+    uiType : 'panelSearch',
+    helpTitle : 'Help on Data Mining Module',
+    helpFile : 'dataminingHelp',
+        
+    saveState: function() 
+    {
+        var uiContent = this.getUiContent();               
+        var form = uiContent.down('form').getForm();
+        var values = form.getValues(); 
+        
+        Ext.state.Manager.set('timeintervalMining', {'startDate' : values.startDate,'stopDate' : values.stopDate });
+        //    Ext.state.Manager.set(this.id + '_form', values);
+    },
+       
+    getState : function() 
+    {
+        return Ext.state.Manager.get('timeintervalMining');
+       // return Ext.state.Manager.get(this.id + '_form'); 
+    }
+});
\ No newline at end of file
diff --git a/js/app/controllers/TimeTableModule.js b/js/app/controllers/TimeTableModule.js
new file mode 100644
index 0000000..0dff52a
--- /dev/null
+++ b/js/app/controllers/TimeTableModule.js
@@ -0,0 +1,54 @@
+/**
+ * Project   : AMDA-NG
+ * Name      : TimeTableModule.js
+ * @class    amdaDesktop.TimeTableModule
+ * @extends  amdaDesktop.InteractiveModule
+ * @brief  	 Time Table Module controller definition 
+ * @author   Myriam
+ * @version $Id: TimeTableModule.js 1605 2013-06-11 13:38:47Z myriam $ 
+ ******************************************************************************
+ *    FT Id     :   Date   : Name - Description
+ ******************************************************************************
+ *	           08/06/2011: Myriam - Migration extjs4
+ */
+
+Ext.define('amdaDesktop.TimeTableModule', {
+	extend: 'amdaDesktop.InteractiveModule',
+	
+	requires: [
+         'amdaUI.TimeTableUI'
+    ],
+    
+	contentId : 'timeTableUi',
+	
+    /**
+     * @cfg {String} data models
+     * @required
+     */
+	nodeDataModel : 'amdaModel.TimeTableNode',
+	
+    /**
+     * @cfg {String} window definitions
+     * @required
+     */
+	width : 850,
+	height: 650,
+	uiType : 'panelTimeTable',
+	helpTitle : 'Help on Time Table Module',
+	helpFile : 'timetableHelp',
+	
+	/**
+	 * @override
+	 */
+	createWindow : function() {
+
+	    this.callParent(arguments);
+	    var win = this.app.getDesktop().getWindow(this.id);	
+
+		if (win) {
+			/* Reset if form in form ( OperationsTT in TimeTable ) */
+			this.getUiContent().down('form').getForm().reset();
+		}
+	} 
+ 
+});
diff --git a/js/app/controllers/TimeTableOperationModule.js b/js/app/controllers/TimeTableOperationModule.js
new file mode 100644
index 0000000..58006f3
--- /dev/null
+++ b/js/app/controllers/TimeTableOperationModule.js
@@ -0,0 +1,40 @@
+/**
+ * Project   : AMDA-NG
+ * Name      : TimeTableOperationModule.js
+ * @class    amdaDesktop.TimeTableOperationModule
+ * @extends  amdaDesktop.InteractiveModule
+ * @brief  	 Operations on Time Table Module controller definition 
+ * @author   Myriam
+ * @version $Id: TimeTableOperationModule.js 1894 2013-11-25 09:32:42Z elena $ 
+ ******************************************************************************
+ *    FT Id     :   Date   : Name - Description
+ ******************************************************************************
+ *	           01/09/2011: Myriam - Migration extjs4
+ */
+
+Ext.define('amdaDesktop.TimeTableOperationModule', {
+	extend: 'amdaDesktop.InteractiveModule',
+	
+	requires: [
+         'amdaUI.TimeTableOperationUI'
+        ],
+
+	contentId : 'ttsOpeUI',
+	
+    /**
+     * @cfg {String} data models
+     * @required
+     */
+	nodeDataModel : 'amdaModel.TimeTableNode',
+	
+	/**
+     * @cfg {String} window definitions
+     * @required
+     */
+	width : 320,
+	height: 510,
+	uiType : 'panelTtsOpe',
+	helpTitle : 'Help on TimeTables Operations',
+	helpFile : 'ttOperationsHelp'
+	
+});
\ No newline at end of file
diff --git a/js/app/controllers/UploadModule.js b/js/app/controllers/UploadModule.js
new file mode 100644
index 0000000..8e767bd
--- /dev/null
+++ b/js/app/controllers/UploadModule.js
@@ -0,0 +1,59 @@
+/** 
+ * Project   : AMDA-NG
+ * Name      : UploadModule.js
+ * @class    amdaDesktop.UploadModule
+ * @extends  amdaDesktop.AmdaModule
+ * @brief    Upload Module controller definition 
+ * @author   Elena
+ * @version  $Id: UploadModule.js 2124 2014-02-21 14:06:14Z elena $	 
+ */
+
+Ext.define('amdaDesktop.UploadModule', {
+	extend: 'amdaDesktop.AmdaModule',
+	
+	requires: [
+        'amdaUI.UploadUI' 
+    ],
+    
+	contentId : 'uploadUI',	
+
+     
+    /**
+     * @cfg {String} window definitions
+     * @required
+     */
+
+	width: 320, 
+	height: 510,
+ 	uiType : 'panelTabUpload',
+	helpTitle : 'Help on Upload Module',
+	helpFile : 'uploadHelp',
+	
+	init : function() {	
+    	this.launcher = {
+    			text : this.title,
+    			iconCls : this.icon,
+    			handler : this.createWindow,
+    			scope : this
+		};
+    },
+    
+    uploadNotification : function(url,format)
+    {
+    	var me = this;
+    	loadMask.show();
+    	this.createWindow(function (o)
+    			{
+    				var desktop = myDesktopApp.getDesktop();
+    				var win = desktop.getWindow(me.id);
+    				if (win)
+    				{
+    					win.items.items[0].forceUpload(url,format);
+    					win.close();
+    				}
+    				loadMask.hide();
+    			});
+    	
+    }
+	
+});
\ No newline at end of file
diff --git a/js/app/help.js b/js/app/help.js
new file mode 100644
index 0000000..b564741
--- /dev/null
+++ b/js/app/help.js
@@ -0,0 +1,69 @@
+ Ext.onReady(function () {
+     
+     var contentPanel = {   
+                        id: 'content-panel',                    
+                        region: 'center', // this is what makes this panel into a region within the containing layout   
+                        border: true,
+                        autoScroll: true,
+                        bodyCls : 'infoWindow',
+                        bodyStyle: 'padding:15px 15px 15px 15px;',            
+                        loader : {
+                                         url : 'help/' + 'ABC',
+                                         loadMask : false,
+                                         autoLoad : true // important                     
+                                 }                     
+                     };   
+                     
+    var store = Ext.create('Ext.data.TreeStore', {
+                    root: {
+                        expanded: true
+                    },                    
+                    proxy: {
+                        type: 'ajax',
+                        url: 'help/content.json'
+                    }
+                });  
+
+  
+     var treePanel = Ext.create('Ext.tree.Panel', {
+                    id: 'tree-panel',
+                    title: 'Inside the AMDA',
+                    region:'west',
+                    split: true,  
+                    width: 250,      
+                    minSize: 150,
+                    rootVisible: false,
+                    autoScroll: true,
+                    store: store
+                });
+     
+     // Assign loader to be called on tree node click.
+                treePanel.getSelectionModel().on('select', function(selModel, record) {
+                    if (record.get('leaf')) {                  
+                        Ext.getCmp('content-panel').loader.url = 'help/' + record.getId();
+                        Ext.getCmp('content-panel').loader.load();                         
+                    }
+                });                
+
+    var win = Ext.create('Ext.window.Window', {
+        width: 800,
+        height: 500,
+        autoScroll : true,
+        minimizable: true,                     
+        hidden: false,
+        shadow: false,
+        maximizable: true,
+        title: 'Help: While Demo Tour Is Not Ready ...',
+        autoShow: true,
+        layout: 'border',
+        items: [
+                treePanel, 
+                contentPanel
+                ]
+    });
+    
+    
+});
+              
+                
+          
\ No newline at end of file
diff --git a/js/app/models/AliasNode.js b/js/app/models/AliasNode.js
new file mode 100644
index 0000000..7132a5a
--- /dev/null
+++ b/js/app/models/AliasNode.js
@@ -0,0 +1,155 @@
+/** 
+ * Project  : AMDA-NG4
+ * Name     : AliasNode.js
+ * @class   amdaModel.AliasNode
+ * @extends amdaModel.ExecutableNode
+ * @brief   Basic Model of Node corresponding to an alias
+ * @author  Myriam
+ * @version $Id: AliasNode.js 2615 2014-10-23 15:03:48Z myriam $
+ * @todo
+ *******************************************************************************
+ *    FT Id     :   Date   : Name - Description
+ *******************************************************************************
+ *  :           :14/10/2011: Myriam  - file creation
+ */
+
+Ext.define('amdaModel.AliasNode', {
+
+    extend: 'amdaModel.InteractiveNode',
+   
+    statics: {
+        nodeType: 'alias',
+        objectName: 'Alias',
+	deletedAliases : null
+    },
+    
+   fields: [
+	    {name: 'isScatter', type: 'boolean', defaultValue: true}
+	    ], 
+  
+    constructor : function(config){
+
+        this.callParent(arguments);
+        this.set('ownerTreeId',amdaUI.ExplorerUI.RESRC_TAB.TREE_ID);
+        this.set('nodeType',amdaModel.AliasNode.nodeType);
+        if (this.get('leaf')) this.set('iconCls', 'icon-scalar');
+    },
+    
+    allMenuItems : function() {
+        var menuItems =
+         [{
+            fnId : 'leaf-deleteNode',
+            text : 'Delete Alias'
+         },{
+             fnId : 'leaf-plotParam',
+             text : 'Plot Parameter',
+             hidden : true
+         }, {
+             fnId : 'leaf-downParam',
+             text : 'Download Parameter',
+             hidden : true   	
+        }];
+
+        return menuItems;
+    }, 
+    
+    getAllContextMenuItems: function(){
+        return this.allMenuItems();
+    },
+    
+    getMultiContextMenuItems: function(){
+        return this.allMenuMultiItems(amdaModel.AliasNode.objectName);
+    },
+    
+    create: function(alias, param) {
+	      AmdaAction.createObject({name: alias, param: param, 
+				       nodeType:amdaModel.AliasNode.nodeType, leaf:true}, null, 
+					    function(result, e){	  
+					      var t = e.getTransaction();
+					      if (e.status) {	
+						      // SUCCESS 
+						      if (result && !result.error) {
+							      if ( result  == "OK" ) {
+								      Ext.Msg.alert('Complete', 'New alias '+ alias +' has been created');
+								      // set text of this node								   
+								      this.set('text', alias);	
+								      //TODO id from server
+								      this.set('id', 'alias_' + param);				            	                
+								      // create node in tree as child of contextNode      
+								      this.get('rootNode').appendChild(this);											
+								      // set the tooltip
+				                      this.set('info',param);
+							      }
+						      } else {
+							      // EXCEPTION : 
+							      alert(t.action + "." + t.method + " : " + e.message);
+						      }
+					      }
+					      else
+					      {
+						// FAILURE
+						Ext.Msg.show({title:'Error System', msg: e.message, icon: Ext.MessageBox.ERROR, buttons: Ext.Msg.OK});
+					      }   
+					},this); 
+	},
+	   
+     renameNode: function(old_alias,alias, param) {
+	     AmdaAction.renameObject({id : param, old_name: old_alias, name: alias,  
+	    	 			parent : this.parentNode.get('id'), leaf: this.isLeaf(), nodeType: this.get('nodeType')},
+	    	 			function(result, e){	  
+						      var t = e.getTransaction();
+						      if (e.status) {	
+							      // SUCCESS 
+							      if (result && !result.error) {
+								      if ( result.id ) {
+									      Ext.Msg.alert('Complete', 'Alias '+ alias +' has been renamed');
+									      // set text of this node								   
+									      this.set('text', alias);	
+									      //TODO id from server
+									      this.set('id', 'alias_' + param);				            	                
+									      // create node in tree as child of contextNode      
+									      this.get('rootNode').appendChild(this);											
+								      
+								      }
+							      } else {
+								      // EXCEPTION : 
+								      alert(t.action + "." + t.method + " : " + e.message);
+							      }
+						      }
+						      else
+						      {
+							// FAILURE
+							Ext.Msg.show({title:'Error System', msg: e.message, icon: Ext.MessageBox.ERROR, buttons: Ext.Msg.OK});
+						      }   
+						},this); 	    		 
+     },
+     
+      deleteNode: function() {
+	this.callParent();
+//temporary array to keep deleted aliases during this session	
+	if (!amdaModel.AliasNode.deletedAliases) { 
+	      amdaModel.AliasNode.deletedAliases = new Array();
+	}  
+	amdaModel.AliasNode.deletedAliases.push(this.get('id').substr(6));
+	
+	// Replace alias by parameter name in active window
+	Ext.Array.each(myDesktopApp.paramModulesID, function(id){
+		var module = myDesktopApp.getLoadedModule(id);
+		if (module) {
+			module.getUiContent().updateConstruct("#"+this.get('text'),this.get('id').substr(6));
+		 }
+	}, this);		
+	 	 	
+      // Reset alias of parameter in local data tree or in remote data tree
+	var tree = Ext.getCmp(amdaUI.ExplorerUI.RESRC_TAB.TREE_ID);
+	var rootNode = tree.getRootNode().findChild('id','myLocalData-treeRootNode',true);
+      		   
+	var paramNode = rootNode.findChild('id', this.get('id').substr(6),true);
+			
+	if (paramNode == null) {
+		var rootNode = tree.getRootNode().findChild('id','myRemoteData-treeRootNode',true);       	
+		var paramNode = rootNode.findChild('id', this.get('id').substr(6),true);
+	}	 
+	if (paramNode) paramNode.set('alias',null);
+      }   
+});
diff --git a/js/app/models/AmdaNode.js b/js/app/models/AmdaNode.js
new file mode 100644
index 0000000..69d1033
--- /dev/null
+++ b/js/app/models/AmdaNode.js
@@ -0,0 +1,194 @@
+/** 
+ * Project  : AMDA-NG4
+ * Name     : AmdaNode.js
+ * @class   amdaModel.AmdaNode
+ * @extends Ext.data.Model
+ * @brief   Generic Model of Node for AMDA project
+ * @author  CDA
+ * @version $Id: AmdaNode.js 2544 2014-10-03 10:21:56Z elena $
+ * @todo
+ *******************************************************************************
+ *    FT Id     :   Date   : Name - Description
+ *******************************************************************************
+ *  :           :08/06/2011: CDA - Migration extjs4
+ */
+Ext.define('amdaModel.AmdaNode', {
+    extend: 'Ext.data.Model',
+    
+    requires: ['amdaReader.ExplorerReader'],
+    
+    fields: [
+        {name: 'leaf', type: 'boolean'},
+        {name: 'nodeType',type:'string'}, 
+        {name: 'id', type: 'string'},
+        {name:'text',type: 'string'},
+	{name:'info',type: 'string'},
+	{name: 'help', type: 'string', defaultValue: ''},
+	{name:'rootNode',  persist: false},
+	{name: 'ownerTreeId', persist: false},
+	{name: 'ownerTree',  persist: false},
+	{name: 'checked', defaultValue: null, persist: false}
+    ],
+        
+    statics : {
+        NEW_DIR_NAME : 'new Folder',
+        MULTI_PREFIX : 'mult'
+    },
+    
+    /**
+     * @cfg proxy used to load nodes
+     */
+    proxy: {
+        type: 'direct',
+      //  directFn: AmdaAction.getTree,
+	api : 
+	{
+	  read: AmdaAction.getTree,
+	  update: AmdaAction.saveTree,
+	  create: AmdaAction.saveTree,
+	  destroy: AmdaAction.doNothing
+	},
+        paramsAsHash : true,
+        reader: {
+            type: 'explorer'
+        }
+    },
+    
+    /**
+     * Abstract getter of complete array of item context menu
+     * @return {Ext.Array} the complete array of item context menu
+     */
+    getAllContextMenuItems: Ext.emptyFn,
+    
+    /**
+     * Abstract method call on click on item of context menu
+     */
+    onMenuItemClick: Ext.emptyFn,
+    
+    /**
+     * Abstract Update Data method 
+     */
+    update : Ext.emptyFn,
+
+    /**
+     * Abstract Rename Data method
+     */
+    rename : Ext.emptyFn,
+    
+    /**
+     * Abstract Rename  D&D Data method
+     */
+    renameDD : Ext.emptyFn,
+    
+    /**
+     * Abstract Create Data method
+     */
+    create : Ext.emptyFn,
+    
+    /**
+     * filtering method of context menu
+     * @param {String} itemKind the kind of right clicked node
+     * @return {Ext.Array} the Array of filtered item menu
+     */
+    getFilteredContextMenu : function(itemKind) {
+        var menuitems = this.getAllContextMenuItems();
+        if (menuitems && menuitems.length){
+            for ( var i = 0; i < menuitems.length; i++) {
+                var currentItem = menuitems[i];
+                var myItemKind = Ext.util.Format.substr(currentItem.fnId, 0, 4);
+                if (myItemKind === itemKind) {
+                    currentItem.hidden = false;
+                }
+                else {
+                    currentItem.hidden = true;
+                }
+            }
+            return menuitems;
+        } else {
+            return null;
+        }
+    },
+    
+    getMultiContextMenu : function(){
+        var menuitems = this.getMultiContextMenuItems();
+        if (menuitems && menuitems.length){
+            return menuitems;
+        } else {
+            return null;
+        }
+    },
+    
+    /**
+     * get the kind of this node
+     * @returns itemKind string
+     */
+    getNodeKind : function() {
+	    var itemKind;
+	   // if id of this node have root subcategory suffix
+	    if (this.id && Ext.util.Format.substr(this.id, -(amdaUI.ExplorerUI.ROOT_SUFFIX.length), this.id.length) === amdaUI.ExplorerUI.ROOT_SUFFIX ) {
+	        itemKind = amdaUI.ExplorerUI.ITEM_KIND_ROOT;
+	    }
+	    // if this node is a leaf and have no child
+	    else if (this.isLeaf()) {
+	        itemKind = amdaUI.ExplorerUI.ITEM_KIND_LEAF;
+	    }
+	    else if (this.get('isParameter')) {
+                itemKind = amdaUI.ExplorerUI.ITEM_KIND_PARA;
+            }
+	    // other case
+	    else {
+	        itemKind = amdaUI.ExplorerUI.ITEM_KIND_DIRE;
+	    }
+	    return itemKind;
+	},
+    
+    /**
+     * Getter on context menu of this node
+     * @returns {Ext.menu.Menu} the contextMenu of this node
+     */
+    getContextMenuItems : function() {
+    	// set the node kind
+        var itemKind = this.getNodeKind();
+        // filter the global context menu by node kind
+        var menuItems = this.getFilteredContextMenu(itemKind);
+        // return the context menu for this node
+        return menuItems;
+    },
+    
+    getContextMenuMultiItems : function() {
+        return this.getMultiContextMenu();
+    },
+    
+    /**
+     * Method to retrieve the root node corresponding to the nodeType of this node
+     * @return {amdaModel.AmdaNode} the root node of category of this node
+     */
+    getRootNode : function() {
+        if (!this.get('rootNode')) {
+            // if this node is the root of its category
+            if(this.getNodeKind() == amdaUI.ExplorerUI.ITEM_KIND_ROOT) {
+                this.set('rootNode',this);
+            } else {
+                // get resources tree panel               
+                var tree = this.myGetOwnerTree();	 
+                var treeRoot = tree.getRootNode();
+                var rootNodeId = this.get('nodeType')+amdaUI.ExplorerUI.ROOT_SUFFIX;
+
+                this.set('rootNode',treeRoot.findChild( 'id', rootNodeId, true));
+            }
+        }
+    	return this.get('rootNode');
+    },
+    
+    /**
+     * getter on ownerTree (use ownerTreeId property)
+     * @return {Ext.tree.Panel} the tree which contains this node
+     */
+    myGetOwnerTree : function() {
+        if (!this.get('ownerTree')) {
+            this.set('ownerTree',Ext.getCmp(this.get('ownerTreeId')));
+        }
+        return this.get('ownerTree');
+    }
+
+});
diff --git a/js/app/models/AmdaObject.js b/js/app/models/AmdaObject.js
new file mode 100644
index 0000000..30a01c2
--- /dev/null
+++ b/js/app/models/AmdaObject.js
@@ -0,0 +1,49 @@
+/**
+ * Project      : AMDA-NG
+ * Name         : AmdaObject.js
+ * Description  : Base Amda Business Object Definition
+ * @class amdaModel.AmdaObject
+ * @extends Ext.data.Model 
+ * 
+ * @author elena
+ * @version $Id: AmdaObject.js 966 2012-07-03 14:50:05Z elena $
+ ******************************************************************************
+ *    FT Id     :   Date   : Name - Description
+ ******************************************************************************
+ *	:           :15/12/2010: elena – creation
+ */
+ 
+Ext.define('amdaModel.AmdaObject', {
+	
+    extend: 'Ext.data.Model',
+	
+    fields : [
+	    {name: 'id', type: 'string', defaultValue: null},
+	    {name: 'name', type:'string'}	 	    
+	],
+/*	
+    constructor: function(configParam){
+//TODO we do not need events: CHECK	
+        this.addEvents({
+            "modify" : false,
+            "create" : false,
+            "execute" : false	    
+        });
+        
+        this.callParent(arguments);      
+    },
+*/    
+    /**
+     * Set the json values into this object parameter
+     * @param values in json format
+     */
+    setValues: Ext.emptyFn,
+    
+    /**
+     * get parameter values into  object to be sent to Server
+     * @return object
+     */
+    //TODO utf8_encode() and Ext.urlEncode() ???
+    getJsonValues :  Ext.emptyFn
+     
+});
diff --git a/js/app/models/AmdaTimeObject.js b/js/app/models/AmdaTimeObject.js
new file mode 100644
index 0000000..54880a4
--- /dev/null
+++ b/js/app/models/AmdaTimeObject.js
@@ -0,0 +1,91 @@
+/**
+ * Project      : AMDA-NG
+ * Name         : AmdaTimeObject.js
+ * Description  : Base Amda Business Object Definition
+ * @class amdaModel.AmdaTimeObject
+ * @extends amdaModel.AmdaObject
+ * 
+ * @author elena
+ * @version $Id: AmdaTimeObject.js 1534 2013-05-24 13:30:26Z myriam $ 
+ * @todo Validations 
+ ******************************************************************************
+ *    FT Id     :   Date   : Name - Description
+ ******************************************************************************
+ *	:           :07/07/2011: elena – creation
+ */
+
+
+Ext.define('amdaModel.TTobject', {
+    extend: 'amdaModel.AmdaObject',
+     
+     getJsonValues : function () {
+         var values  = new Object();
+         values.timeTableName = this.get('name');
+         values.id = this.get('id');
+         return values;
+     }
+}); 
+
+
+Ext.define('amdaModel.AmdaTimeObject', {	
+    extend: 'amdaModel.AmdaObject',    
+    statics:{
+        inputTimeSrc: ['TimeTable','Interval']
+    },	
+    fields : [
+	      { name: 'resultId', type: 'string'}, 
+	      { name: 'folderId', type: 'string'}, 
+	      { name: 'processId', type: 'string'},
+	      { name: 'timesrc', type: 'string'/*, defaultValue: amdaModel.AmdaTimeObject.inputTimeSrc[1] /*'Interval'*/ },
+	      { name: 'startDate', type: 'date', defaultValue:Ext.Date.add(Ext.Date.clearTime(new Date()),Ext.Date.DAY,-1),
+		convert: function(value,rec) {
+		  if (!Ext.isDate(value)) {
+		    var valueString = new String(value);
+		    var date = new Date(valueString.replace(/\-/g,'\/').replace(/[T|Z]/g,' '));
+		      return date;
+		  }
+		  return value;
+		  }
+	      },
+	      { name: 'stopDate', type: 'date', defaultValue: Ext.Date.clearTime (new Date()), persist: false, 
+		convert: function(value,rec) {
+		   if (!Ext.isDate(value)){
+		    var valueString = new String(value);
+		    var date = new Date(valueString.replace(/\-/g,'\/').replace(/[T|Z]/g,' '));
+		      return date;
+		   }
+		   return value;
+		   }
+		  
+	      }, 
+	      { 
+	          name: 'durationDay', type: 'int',  
+	          convert: function(value, rec) {                 		 
+                  return Ext.String.leftPad(Math.floor((rec.get('stopDate') - rec.get('startDate'))/86400000),4,'0');      
+	          }
+	      }, 
+	      { 
+	          name: 'durationHour', type: 'int',  
+	          convert: function(value, rec) {
+	              var diffH = (rec.get('stopDate') - rec.get('startDate'))/3600000 % 24;
+	              return Ext.String.leftPad(Math.floor(diffH), 2, '0');      
+	          }
+	      }, 
+	      { 
+	          name: 'durationMin', type: 'int',  
+	          convert: function(value, rec) {
+	              var diffM = (rec.get('stopDate') - rec.get('startDate'))/60000 % 60;
+	              return Ext.String.leftPad(Math.floor(diffM), 2, '0');      
+	          }
+	      },
+	      { 
+	          name: 'durationSec', type: 'int',  
+	          convert: function(value, rec) {
+	              var diffS = (rec.get('stopDate') - rec.get('startDate'))/1000 % 60;
+	              return Ext.String.leftPad(Math.floor(diffS), 2, '0');      
+	          }
+	      }, 
+	      { name: 'timeTables', defaultValue: null }    // array of TTobject
+	 ]
+	 
+});
diff --git a/js/app/models/ArgGroups.js b/js/app/models/ArgGroups.js
new file mode 100644
index 0000000..59933c8
--- /dev/null
+++ b/js/app/models/ArgGroups.js
@@ -0,0 +1,50 @@
+/**
+  * Project      :  AMDA-NG
+  * Name         :   
+  * @extends 	  Ext.data.Model
+  * @brief		  
+  * @author 
+  * @version $Id: ArgGroups.js 857 2012-03-28 16:18:45Z elena $
+  ********************************************************************************
+  *    FT Id     :   Date   : Name - Description
+  *******************************************************************************
+  *  :          
+  */
+
+Ext.define('amdaModel.ArgGroups', {	
+  extend: 'Ext.data.Model',
+// simple args, plotSetting args, table (spectra) args  
+// every group is shown as fieldset
+  fields : [ 'group', 'groupS', 'groupE', 'groupEmulti', 'units'],
+  
+  hasMany: {model: 'amdaModel.Args', name: 'args'},
+   
+  proxy: {
+      type: 'ajax',    
+      url : 'php/arguments.php',
+// send parameterID to find parameter description XML @ server      
+      extraParams : {'paramID' : ''},
+      reader: {
+          type: 'json'
+      }
+  }
+});
+
+Ext.define('amdaModel.Args', {	
+  extend: 'Ext.data.Model',
+// for combo: generate [name, value] array  
+  fields : [  'arg',  
+	     { name: 'value',
+	       convert: function(value, rec){
+                return value ? value : rec.get('arg');
+             }}/*,
+	      { name: 'display',
+	        convert: function(value, rec){
+                return  rec.get('value') != rec.get('arg') ? rec.get('arg') + ' -> ' + rec.get('value') : rec.get('arg');
+             }}
+             */
+	   ],
+  
+  belongsTo: 'amdaModel.ArgGroups'
+  
+});
\ No newline at end of file
diff --git a/js/app/models/BkgJobNode.js b/js/app/models/BkgJobNode.js
new file mode 100644
index 0000000..1ceec5f
--- /dev/null
+++ b/js/app/models/BkgJobNode.js
@@ -0,0 +1,477 @@
+/** 
+ * Project  : AMDA-NG4
+ * Name     : BkgJobNode.js
+ * @class   amdaModel.BkgJobNode
+ * @extends amdaModel.AmdaNode
+ * @brief   Basic Model of Node corresponding to Amda processes in background
+ * @author  elena
+ * @version $Id: BkgJobNode.js 1963 2013-12-06 17:50:37Z elena $
+ * @todo
+ *******************************************************************************
+ *    FT Id     :   Date   : Name - Description
+ *******************************************************************************
+ *  :           :08/07/2011: elena creation
+ */
+
+Ext.define('amdaModel.BkgJobNode', {
+
+    extend: 'amdaModel.ExecutableNode',
+    
+    action : null,
+    
+    statics: {       	 	 
+        nodeType: 'bkgWorks',
+        JOB_TYPES: {
+            PLOT: 'request',//'plot',
+            CONDITION: 'condition',
+            DOWNLOAD: 'download',
+            CATALOG: 'catalog'
+        },
+        JOB_ROOT_NODE: {
+            PLOT: 'bkgPlot-treeRootNode',
+            CONDITION: 'bkgSearch-treeRootNode',
+            DOWNLOAD: 'bkgDown-treeRootNode',
+            CATALOG: 'bkgCatalog-treeRootNode'
+        },
+	RES_ROOT_NODE: {
+            PLOT: 'resPlot-treeRootNode',
+            CONDITION: 'resSearch-treeRootNode',
+            DOWNLOAD: 'resDown-treeRootNode',
+            CATALOG: 'resCatalog-treeRootNode'
+        },
+        STATUS_LIST: {
+            IN_PROGRESS: 'in_progress',
+            DONE: 'done',
+            ERROR: 'error' 
+        }	                     
+    },
+    fields: [ 
+//         name, id, moduleId, object> from parent 
+	{ name : 'jobType', type : 'string' },
+        { name : 'processId', type : 'string' },
+        { name : 'status', type : 'string' },
+	{ name : 'percentDone', type : 'string', defaultValue : '0' },
+        { name : 'start', type: 'date' },
+       // { name : 'duration', type: 'int' , defaultValue: -1}
+        { name : 'stop', type: 'date', defaultValue: null },
+	{ name : 'rawname', type: 'string'},
+	{ name : 'tabId', type: 'string'},
+	{ name : 'info', type: 'string'}
+
+    ],
+
+    constructor : function(config){
+  
+        this.callParent(arguments);
+        this.set('ownerTreeId', amdaUI.ExplorerUI.JOB_TAB.TREE_ID);   
+        this.set('nodeType', amdaModel.BkgJobNode.nodeType);
+
+        if (this.isLeaf()) {
+            switch (this.get('status')) {
+            case amdaModel.BkgJobNode.STATUS_LIST.ERROR: 
+                //     this.set('status' ,amdaModel.BkgJobNode.STATUS_LIST.ERROR);
+                this.set('iconCls','icon-error'); 
+                break;             
+            case amdaModel.BkgJobNode.STATUS_LIST.DONE:
+                // set status
+                //       this.set('status',amdaModel.BkgJobNode.STATUS_LIST.DONE);              
+                this.set('iconCls','icon-done');
+                break;          
+            default : 
+                this.set('percentDone',this.get('status')); 
+		this.set('status',amdaModel.BkgJobNode.STATUS_LIST.IN_PROGRESS);		  
+		this.set('iconCls','icon-pend');			      
+            }
+            if (config) this.set('jobType', config.jobType);
+	    else this.set('jobType',this.get('jobType'));
+        }     
+    },
+  
+    getAllContextMenuItems: function(){
+
+        if (this.get('status') == amdaModel.BkgJobNode.STATUS_LIST.IN_PROGRESS)       
+            return [{
+                fnId : 'leaf-deleteNode',
+                text : 'Stop/Delete Job'
+            }/*, {
+                fnId : 'leaf-showNode',
+                text : 'Show Job Details'
+            }, {
+                fnId : 'leaf-renameNode',
+                text : 'Rename Job'   
+            }*/];
+        else
+            return [{
+                fnId : 'leaf-editNode',
+                text : 'Show Result' 
+            },{
+                fnId : 'leaf-deleteNode',
+                text : 'Delete Result'
+            }/*, {
+                fnId : 'leaf-renameNode',
+                text : 'Rename Result' 
+            }*/];		
+    },
+
+    getMultiContextMenuItems: function(){
+        return [{
+            fnId : 'mult-deleteMulti',
+            text : 'Delete Results'
+        }];
+    },
+        
+    onMenuItemClick : function(menu, item, event) {
+        var fnId = Ext.util.Format.substr(item.fnId, 5, item.fnId.length);
+            
+        switch (fnId) {
+           
+            case 'deleteNode':      
+                this.deleteJob();
+                this.deleteNode();  
+                break;
+            
+            case 'showNode':  
+                //  alert('Show details pid ' + this.get('pid')); 
+                alert('NOT IMPLEMENTED YET');
+                break;    
+ 
+	    case 'renameNode':  
+	   //     alert('rename pid ' + this.get('pid')); 
+	         alert('NOT IMPLEMENTED YET');
+	   //     this.renameNode(); 
+	        break; 
+                
+	    case 'editNode': 
+//create object if it doesn't exist (tree load)	  
+//TODO use data model?  
+                if (!this.get('object')) {
+                        AmdaAction.getObject(this.get('id'), this.get('nodeType'), this.getObjectCallback, this);		  
+                }
+                else {
+                        var isInteractive = false;
+                        var isNewTab = true;	  
+                        this.editNode(isNewTab, isInteractive);
+                    }
+                break; 
+	        
+	    case 'deleteMulti':
+                
+                var selectedNodes = this.myGetOwnerTree().getSelectionModel().selected.items;
+                if (selectedNodes.length > 0) {
+                    Ext.Array.each(selectedNodes,function(item, index){
+                        item.deleteJob();
+                        item.deleteNode();
+                    });
+                }
+                break;
+            
+            default:
+                break;
+            }   
+        },
+        
+    deleteJob :  function() {
+         if (this.get('status') == amdaModel.BkgJobNode.STATUS_LIST.IN_PROGRESS) {
+                    amdaDesktop.JobsMgr.jobsInProgress--;          
+                    if (amdaDesktop.JobsMgr.jobsInProgress == 0 && amdaDesktop.JobsMgr.updateStatus)                      
+                        Ext.TaskManager.stop(amdaDesktop.JobsMgr.updateStatus); 
+                    amdaDesktop.JobsMgr.updateStatus = null;
+                    
+                    switch (this.get('jobType')) {
+                               case 'condition' : var type = 'Data Mining '; break;
+                               case 'request' : var type = 'Plot '; break;   
+                               case 'download' : var type = 'Download '; break;
+                               default: var type = 'unknown';    
+                             }
+                    var message = Ext.Date.format(new Date(), 'd-m-Y H:i:s: ') + ': '+ type + ' '+this.get('text') + ' killed';
+                    myDesktopApp.getLoadedModule(myDesktopApp.dynamicModules.explorer.id, true, function (module) {
+                    	module.addLogMessage(message); 
+                    });
+                }
+//delete fieldset from Result Module if it is open       
+                else {
+                  var me = this;
+                  myDesktopApp.getLoadedModule(myDesktopApp.dynamicModules.result.id, true, function (module) {
+                	  if (module && module.linkedNodes) {                 
+                          module.linkedNodes.each(function(item, index){                     
+                            if (me.get('id') == item.get('id')) {                 
+                                    module.removeLinkedNode(item, index);
+                                  return false;
+                            }
+                          }, this);                      
+                      }
+                  });
+                  
+                  
+                } 
+    },	
+    
+   getObjectCallback : function(result,remoteEvent){//result, e) {
+        var t = remoteEvent.getTransaction();
+        
+        //AKKA - Rework of the result treatment for the integration with the new kernel
+ 	   	if (!remoteEvent.status)
+ 	   	{
+ 	   		myDesktopApp.errorMsg('Internal error during download request');
+ 	   		return;
+ 	   	}
+ 	   	
+ 	    if (!result.success)
+	    {
+ 	    	myDesktopApp.errorMsg(result.message);
+ 	    	return;
+	    }
+        
+        var obj = null;
+        switch (this.get('jobType'))
+        {
+			case 'condition' : 
+				obj = Ext.create('amdaModel.Search',
+		    			 {name: result.name,
+	    	   		  	resultId : result.result,
+	    	   		  	folderId : result.folder});
+		    	break;
+		    case 'request' : 
+		    	obj = Ext.create('amdaModel.Plot',
+		    			 {name: result.name, format: result.format,
+	    	   		  	resultId : result.result,
+	    	   		  	folderId : result.folder}); 
+		    	break;   
+		    case 'download' : 
+		    	obj = Ext.create('amdaModel.Download',
+		    			 {name: result.name,
+		    	   		  compression: result.compression,
+		    	   		  resultId : result.result,
+		    	   		  folderId : result.folder}); 
+		    	break;
+		}
+        	
+        if (!obj)
+        {
+        	myDesktopApp.errorMsg("Unknown job type");
+        	return;
+        }	
+        
+        // set parameter into node
+        this.set('object',obj);
+        
+	    var isInteractive = false;
+	    var isNewTab = true;	 
+	    this.editNode(isNewTab, isInteractive);	   
+    },
+ 
+// Show Result 
+    editNode : function(isNewTab, isInteractive) {
+      var me = this;
+      if (isInteractive) {
+    	  myDesktopApp.getLoadedModule(myDesktopApp.dynamicModules.interactive_plot.id, true, function(module) {
+    		  if (isNewTab) {	 
+    			  module.setLinkedNode(me); 
+    		  }	
+    		  module.createWindow();
+    	  });
+	  }
+      else {
+    	  myDesktopApp.getLoadedModule(myDesktopApp.dynamicModules.result.id, true, function(module) {
+    		  if (isNewTab) {	 
+    			  module.setLinkedNode(me); 
+    		  }	
+    		  module.createWindow();
+    	  });
+      }
+    },
+  
+    createJobNode: function(isResult){
+       
+    // if ownerTree panel is not active
+        if (this.myGetOwnerTree().ownerCt.getActiveTab() !== this.myGetOwnerTree()) {
+            // set ownerTree panel as the active tab
+            this.myGetOwnerTree().ownerCt.setActiveTab(this.myGetOwnerTree());
+            // to enable selection of this node his ownerTree must have a view
+        }
+        
+        var rootNode = this.getRootNode(isResult);
+        // expand the corresponding rootNode
+        if (rootNode.parentNode) {
+           if (!rootNode.parentNode.isExpanded()) {
+               rootNode.parentNode.expand(false);
+           }
+        }  
+        
+        if (!rootNode.isExpanded())  {                                                        
+                rootNode.expand(false, function(){
+                        if (!this.parentNode) {
+                            nodeFantom = rootNode.findChild('id',this.get('id'));  
+                            if (nodeFantom) {                                    
+                                nodeFantom.remove();
+                                rootNode.appendChild(this);
+                            }
+                        }                        
+                }, this);                                                        
+        }
+        else {                
+            rootNode.appendChild(this);
+        }                                                                                                   
+                
+        // select the new node                  
+        this.myGetOwnerTree().getSelectionModel().select(this);
+        if (!isResult) {
+		     switch (this.get('jobType')) {
+		       case 'condition' : var type = 'Data Mining '; break;
+		       case 'request' : var type = 'Plot '; break;   
+		       case 'download' : var type = 'Download '; break;
+		       default: var type = 'unknown';    
+		     }
+            myDesktopApp.infoMsg('Your request is still running and has been assigned the name '+this.get('text')+' -- Check Jobs in Progress');
+            var message = Ext.Date.format(new Date(), 'd-m-Y H:i:s: ')+ type + ' '+this.get('text')+ ' created';
+            myDesktopApp.getLoadedModule(myDesktopApp.dynamicModules.explorer.id, true, function (module) {
+            	module.addLogMessage(message);
+            });
+	    
+            amdaDesktop.JobsMgr.jobsInProgress++;          	 
+            if (!amdaDesktop.JobsMgr.updateStatus)
+            {
+                amdaDesktop.JobsMgr.updateStatus =  
+                    Ext.TaskManager.start({
+                        run : amdaDesktop.JobsMgr.getStatus,
+                        interval : amdaDesktop.JobsMgr.interval 
+                    });
+            }
+	} 		
+    },
+    
+    //override amdaModel.AmdaNode.getRootNode method
+    getRootNode: function(isResult){    
+        if (!this.get('rootNode')){
+            var rootNodeId;
+	    if (!isResult) {
+		switch(this.get('jobType')){
+		    case amdaModel.BkgJobNode.JOB_TYPES.PLOT:		   
+			rootNodeId = amdaModel.BkgJobNode.JOB_ROOT_NODE.PLOT;
+			break;
+		    case amdaModel.BkgJobNode.JOB_TYPES.CONDITION:		   
+			rootNodeId = amdaModel.BkgJobNode.JOB_ROOT_NODE.CONDITION;
+			break;
+		    case amdaModel.BkgJobNode.JOB_TYPES.DOWNLOAD:		    
+			rootNodeId = amdaModel.BkgJobNode.JOB_ROOT_NODE.DOWNLOAD;
+			break;
+		    case amdaModel.BkgJobNode.JOB_TYPES.CATALOG:                   
+			rootNodeId = amdaModel.BkgJobNode.JOB_ROOT_NODE.CATALOG;
+			break;
+		    default:
+			break;
+		}
+	    }
+	    else {
+	      switch(this.get('jobType')){
+		    case amdaModel.BkgJobNode.JOB_TYPES.PLOT:		   
+			rootNodeId = amdaModel.BkgJobNode.RES_ROOT_NODE.PLOT;
+			break;
+		    case amdaModel.BkgJobNode.JOB_TYPES.CONDITION:		   
+			rootNodeId = amdaModel.BkgJobNode.RES_ROOT_NODE.CONDITION;
+			break;
+		    case amdaModel.BkgJobNode.JOB_TYPES.DOWNLOAD:		    
+			rootNodeId = amdaModel.BkgJobNode.RES_ROOT_NODE.DOWNLOAD;
+			break;
+		    case amdaModel.BkgJobNode.JOB_TYPES.CATALOG:                   
+			rootNodeId = amdaModel.BkgJobNode.RES_ROOT_NODE.CATALOG;
+			break;
+		    default:
+			break;
+		}
+	    } 
+            this.set('rootNode',this.myGetOwnerTree().getRootNode().findChild( 'id', rootNodeId, true));
+        }
+        return this.get('rootNode');
+    },
+    
+    /**
+     * @override amdaModel.ExecutableNode.execute  PNG (interactive session only!!!)
+     */
+    execute : function(arguments) {
+// Not needed to send the whole request
+      //  var jsonObj = this.get('object').getJsonValues(true);
+//TODO append jsonObj.action at server side => history!!!
+	var jsonObj = {};
+	var isMulti =  arguments[0];	
+        jsonObj.action = {name:arguments[1],arg1:arguments[2],arg2:arguments[3]};
+      //AKKA replace resultID by folderId
+        jsonObj.folderId =  this.get('object').get('folderId');
+	//jsonObj.resultId =  this.get('object').get('resultFolder');
+	
+	this.action = jsonObj.action.name;
+	
+     //   this.set('tabId', jsonObj.tabId);
+	
+// Node exists already, interactive Session 
+	var isInteractive = true;
+	var isNewTab = false; 
+        
+        loadMask.show(this.get('object').get('tabId'));
+        AmdaAction.execute({nodeType : this.get('nodeType')}, jsonObj, function(res,e){
+        
+            loadMask.hide();
+            
+          //AKKA - Rework of the result treatment for the integration with the new kernel
+     	   if (!e.status)
+     	   {
+     		   myDesktopApp.errorMsg('Internal error during request');
+     		   return;
+     	   }
+     	   
+     	   if (!res.success)
+     	   {
+     		   myDesktopApp.errorMsg(res.message);
+     		   return;
+     	   }
+            
+// NO background jobs for PNG !!!!! Timeout KILL
+                if (res.status == amdaModel.BkgJobNode.STATUS_LIST.DONE) {
+                    this.updateNode(res);	  		              		 
+                    this.updateObject(res);
+                    this.editNode(isNewTab, isInteractive);
+                }
+                else {
+                    myDesktopApp.warningMsg(res.message);
+                    
+// keep this for case of Backgrounf Job
+		  /*  var id = res.id;
+                      var text = 'job_' + res.pid;
+                      var status = amdaModel.BkgJobNode.STATUS_LIST.IN_PROGRESS; 
+		      var newobj = Ext.create('amdaModel.Plot',  
+		 			      { resultId : id, name : res.rawname, resultId: res.rawname});
+                      var newNode = Ext.create(this.$className, { id : id, pid : res.pid, text : text, jobType : 'request',
+                                            leaf : true, status : status, rawname : res.rawname, object : newobj});
+                    newNode.createJobNode(false);
+                */
+                }
+        }, this);
+
+    },
+        
+    updateNode : function(res) {    
+                var windowId = 'plot' + this.get('tabId')+'-win';		  
+                var win = myDesktopApp.getDesktop().getWindow(windowId); 
+  //TODO if it is possible to close window before getting result?	    
+                if (!win) myDesktopApp.errorMsg('You have closed window!!!');
+                else {
+                    var panelResult = win.items.items[0];
+                    panelResult.setObjectIntoNode();
+                }
+    },
+       
+    updateObject : function(res) {
+                var object =  this.get('object');
+                object.set('outputName', res.name);
+                object.set('resultId', res.result);
+                object.set('startDate', res.startDate);
+                object.set('stopDate', res.stopDate);
+
+                if (object.get('timesrc') == amdaModel.AmdaTimeObject.inputTimeSrc[0] && this.action != 'zoom') {
+                    object.set('intervalN', res.intervalN); 
+                    object.set('totalN', res.totalN);
+                    object.set('ttName', res.tableName); 
+                }  
+    }
+    
+});
diff --git a/js/app/models/Constant.js b/js/app/models/Constant.js
new file mode 100644
index 0000000..39b95e2
--- /dev/null
+++ b/js/app/models/Constant.js
@@ -0,0 +1,42 @@
+/**
+  * Project      :  AMDA-NG
+  * Name         : Constant.js
+  * @plugin 	  amdaModel.Constant
+  * @extends 	  Ext.data.Model
+  * @brief		 Data model for constants definition
+  * @author Benjamin
+  * @version $Id: Constant.js 1383 2013-03-25 09:30:27Z elena $
+  ********************************************************************************
+  *    FT Id     :   Date   : Name - Description
+  *******************************************************************************
+  *  :          
+  */
+
+Ext.define('amdaModel.Constant', {
+	
+  extend: 'Ext.data.Model',
+  idProperty: 'name',
+  
+  
+  fields : [
+	{name: 'name', mapping: '@name', type:'string'},
+	{name: 'info', mapping: '@info', type:'string'},
+	{name: 'units', mapping: '@units', type: 'string', defaultValue: ''},
+	{name: 'value', mapping: ' ', type: 'string'}
+  ],
+  
+  validations: [
+    {type: 'presence', field: 'value'}
+  ],
+  
+  proxy: {
+      type: 'ajax',
+//TODO url into general settings      
+      url : 'generic_data/Functions/constants.xml',
+      reader: {
+          type: 'xml',
+          root: 'constants',
+          record: 'constant'
+      }
+  }
+});
\ No newline at end of file
diff --git a/js/app/models/DerivedParamNode.js b/js/app/models/DerivedParamNode.js
new file mode 100644
index 0000000..a596de3
--- /dev/null
+++ b/js/app/models/DerivedParamNode.js
@@ -0,0 +1,70 @@
+/** 
+ * Project  : AMDA-NG4
+ * Name     : DerivedParamNode.js
+ * @class   amdaModel.DerivedParamNode
+ * @extends amdaModel.InteractiveNode
+ * @brief   Model of Node corresponding to a derived parameter
+ * @author  CDA
+ * @version $Id: DerivedParamNode.js 2544 2014-10-03 10:21:56Z elena $
+ * @todo
+ *******************************************************************************
+ *    FT Id     :   Date   : Name - Description
+ *******************************************************************************
+ *  :           :08/06/2011: CDA - Migration extjs4
+ *  :           :09/06/2011: elena - all generic methods are now of InteractiveNode class
+ */
+
+Ext.define('amdaModel.DerivedParamNode', {
+
+    extend: 'amdaModel.InteractiveNode',
+    
+    statics:{
+        nodeType: 'derivedParam',
+        objectName: 'Parameter'
+    },
+ 
+     fields:[
+	    {name: 'isScatter', type: 'boolean', defaultValue: true}
+	    ],
+	    
+    constructor : function(config){	
+        this.callParent(arguments);
+
+        this.set('nodeType',amdaModel.DerivedParamNode.nodeType);
+        this.set('moduleId',myDesktopApp.dynamicModules.param.id);
+        this.set('objectDataModel',amdaModel.Parameter.$className);
+        this.set('ownerTreeId',amdaUI.ExplorerUI.RESRC_TAB.TREE_ID);
+	if (this.get('leaf')) this.set('iconCls', 'icon-scalar');
+    },
+    
+    localMenuItems : function() {
+        var menuItems =
+                [{
+                    fnId : 'leaf-plotParam',
+                    text : 'Plot Parameter',
+                    hidden : true
+                }, {
+                    fnId : 'leaf-downParam',
+                    text : 'Download Parameter',
+                    hidden : true
+                }];     
+        return menuItems;
+    },
+    
+    getAllContextMenuItems: function(){
+        
+        var menuItems = this.allMenuItems(amdaModel.DerivedParamNode.objectName);
+        var locMenuItems = this.localMenuItems();
+        
+        return  Ext.Array.merge(menuItems,locMenuItems);       
+    },
+
+    getMultiContextMenuItems: function(){
+        return this.allMenuMultiItems(amdaModel.DerivedParamNode.objectName);
+    },
+    
+    isParameter : function(){
+        return this.get('isParameter');
+    }
+
+});
diff --git a/js/app/models/Download.js b/js/app/models/Download.js
new file mode 100644
index 0000000..23142f3
--- /dev/null
+++ b/js/app/models/Download.js
@@ -0,0 +1,125 @@
+/**
+ * Project      : AMDA-NG
+ * Name         : Download.js
+ * Description  : Download Request Business Object Definition
+ * @class amdaModel.Download
+ * @extends amdaModel.AmdaObject 
+ * 
+ * @author myriam
+ * @version $Id: Download.js 2068 2014-02-06 11:27:38Z elena $
+ ******************************************************************************
+ *    FT Id     :   Date   : Name - Description
+ ******************************************************************************
+ *	:           :15/12/2011: myriam – creation 
+ */
+ 
+ 		
+Ext.define('amdaModel.Download', {
+		extend: 'amdaModel.AmdaTimeObject',
+    
+    fields : [
+	      {name: 'type', type: 'string', defaultValue: 'Download'},
+	      {name: 'downloadSrc', type: 'string'},
+	      {name: 'list', defaultValue: null },    // array of parameters	  
+	      {name: 'timeformat', type: 'string'},
+	      {name: 'timeformatTT', type: 'string'},
+	      {name: 'milli', type: 'boolean', defaultValue: false},
+	      {name: 'structure', type: 'string'},
+	      {name: 'sampling', type: 'int', defaultValue: '600'},
+	      {name: 'output', type: 'string'},
+	      {name: 'header', type: 'string'},
+	      {name: 'fileformat', type: 'string'},
+	      {name: 'fileformatTT', type: 'string'},
+	      {name: 'compression', type: 'string'},
+	      {name: 'compressionTT', type: 'string'}
+	],
+	
+	propertiesToCopy : 'id,name,downloadSrc,sampling,list,timeformat,timeformatTT,structure,output,header,fileformat,fileformatTT,compression,compressionTT',
+
+	getJsonValues : function(){
+
+        var myValues  = new Object();       
+        myValues.nodeType =  'download';//amdaModel.DownloadNode.nodeType;
+        myValues.type = this.get('type');
+        myValues.downloadSrc = this.get('downloadSrc');
+//Data download	 
+	if (myValues.downloadSrc === '0') {	 // Data download 
+	  myValues.structure = this.get('structure');
+	  myValues.sampling = this.get('sampling');
+	  myValues.output = this.get('output');
+	  myValues.header = this.get('header');
+	   
+	  myValues.timesrc =  this.get('timesrc');
+	  // if there's at least one timeTable in case of Download data
+      if (this.get('timesrc') == amdaModel.AmdaTimeObject.inputTimeSrc[0] && this.get('timeTables') && this.get('timeTables').length){
+         // get complete timeTables collection
+         var timeTables = this.get('timeTables');
+         // init an empty array for timeTables
+         myValues.timeTables=[];
+         // for each interval record
+         Ext.Array.each(timeTables, function(item, index, all){
+            // get Json simplified value
+            if (!item.$className) {
+        		myValues.timeTables[index] = {timeTableName : item.timeTableName, id : item.id};
+        	}
+            // get Json simplified value 
+            else {
+                myValues.timeTables[index] = item.getJsonValues();
+        	}     
+	     });            
+	  } else {
+	      myValues.startDate = this.get('startDate');
+              myValues.stopDate = this.get('stopDate');
+	      myValues.durationDay = this.get('durationDay');
+	      myValues.durationHour = this.get('durationHour');
+	      myValues.durationMin = this.get('durationMin');
+	      myValues.durationSec = this.get('durationSec');
+	  } 
+          
+      // if there's at least one parameter
+      if (this.get('list') && this.get('list').length) {
+        var list = this.get('list');
+        myValues.list=[];
+         	
+  		Ext.each(list, function(item, index){                 
+            myValues.list[index]=item.get('name');
+        });
+    // milli is used only for download
+	 myValues.milli = this.get('milli');	
+      }  
+      myValues.fileformat = this.get('fileformat');
+      myValues.timeformat = this.get('timeformat');
+      myValues.compression = this.get('compression');
+	}
+	else if (myValues.downloadSrc === '1'){ // TT download
+		// if there's at least one timeTable
+        if (this.get('timeTables') && this.get('timeTables').length) {
+        	var list = this.get('timeTables');
+        	myValues.list=[];
+       	
+        	Ext.each(list, function(item, index){                 
+                myValues.list[index]=item.get('id');
+            });  
+        }
+        myValues.fileformat = this.get('fileformatTT');
+        myValues.timeformat = this.get('timeformatTT');
+        myValues.compression = this.get('compressionTT');
+	}
+	else { // fits images download
+	   myValues.list=[];
+	   if (this.get('list') && this.get('list').length)
+       	 Ext.each(this.get('list'), function(item, index){  
+       		 var image = new Object();
+       		 image.name = item['name'];
+       		 image.url  = item['url'];
+       		 myValues.list[index] = image;
+            });
+		myValues.compression = this.get('compression');
+	}
+
+        myValues.leaf = true;
+     //   myValues.nodeType = amdaModel.PlotNode.nodeType;
+        return myValues;
+	}
+      
+});
\ No newline at end of file
diff --git a/js/app/models/DownloadNode.js b/js/app/models/DownloadNode.js
new file mode 100644
index 0000000..da43f14
--- /dev/null
+++ b/js/app/models/DownloadNode.js
@@ -0,0 +1,301 @@
+/** 
+ * Project  : AMDA-NG4
+ * Name     : DownloadNode.js
+ * @class   amdaModel.DownloadNode
+ * @extends amdaModel.ExecutableNode
+ * @brief   Basic Model of Node corresponding to a download request
+ * @author  Myriam
+ * @version $Id: DownloadNode.js 2640 2014-11-18 11:57:25Z elena $
+ * @todo
+ *******************************************************************************
+ *    FT Id     :   Date   : Name - Description
+ *******************************************************************************
+ *  :          15/12/2011 - file creation
+ */
+//TODO amdaModel.SingletonNode class ???
+Ext.define('amdaModel.DownloadNode', {
+
+    extend: 'Ext.data.Model',
+    
+    singleton: true,
+        
+    fields: [ {name : 'downloadType', type : 'string'},
+              {name: 'object', type: 'object'},
+	      {name: 'realLinkedNode', type: 'amdaModel.AmdaNode'},
+	      {name: 'moduleId', type: 'string', defaultValue:'down-win'},
+	      {name: 'nodeType', type: 'string', defaultValue: 'download'},
+	      {name: 'objectDataModel', type: 'string', defaultValue:'amdaModel.Download'},
+	      {name: 'jobNode', type: 'string', defaultValue: 'amdaModel.BkgJobNode'}
+     ], 
+    
+     isExecutable: function(){
+        return true;
+      },
+      
+//TODO MIXINS
+      
+      getObjectCallback : function(result,remoteEvent){  
+        var t = remoteEvent.getTransaction();
+        if (result) {            
+         //   var reader = Ext.create('Ext.data.reader.Json',{
+        //        model: this.get('objectDataModel')
+         //   });
+        //    var resultSet = reader.read(result);	    
+       //      var paramObj =  resultSet.records[0];//
+              var paramObj = Ext.create(this.get('objectDataModel'), result);
+            // set parameter into node
+            this.set('object', paramObj);
+	    var downObject = amdaModel.DownloadNode.decodeObject();
+            // Edition	 ;
+	      amdaModel.DownloadNode.set('object',Ext.create('amdaModel.Download',downObject));
+	      amdaModel.DownloadNode.editInModule();              
+        } 
+        else {
+            // EXCEPTION : parameter not found !?
+            alert(t.action + "." + t.method + " : No parameter '"
+                +this.get('name')+"' found!");
+            //TODO: adding an error log
+        }
+      },
+      
+        editInModule : function () {
+        	var me = this;
+        	myDesktopApp.getLoadedModule(this.get('moduleId'), true, function (module) {
+        		// If the node to edit is not already linked to this module
+
+                if (module.getLinkedNode() != me) {
+                	// set relative node into parameter Module
+                	module.setLinkedNode(me);        	
+                	}
+                else {// the node to edit is already edited
+                    //TODO: TBD : message to user
+                    //Sol1: msg alert: "warning this node is already edited! If you want to get the original, please press the 'reset' button"->'OK'
+                    //Sol2: msg with user choice: "warning this node is already edited! Would you confirm this action and lost your modification?"->'Confirm','Cancel'
+                }
+                // Opening parameter window         
+                module.createWindow();
+        	});
+    },
+    
+      decodeObject: function(obj) {
+	  var myValues  = new Object(); 
+	  myValues.list=[];
+	 
+	  if (!obj) {
+	      var fullObject = this.get('realLinkedNode').get('object');	      
+	  }
+	  else {
+	    var fullObject = obj;
+	  }
+	  
+	 var childrenArray = []; 
+         if (fullObject.childNodes){
+            // use internal node attribute of NodeInterface to get children
+            Ext.Array.each(fullObject.childNodes, function(panelItem) {	                 
+                childrenArray.push(panelItem.getJsonValues());
+            });
+	  } else {
+	      // else if a json config has been past to the Plot constructor
+	      childrenArray = fullObject.get('children');              
+	  }
+      
+	  var panels = childrenArray;
+	  var i = 0;	    
+	  Ext.each(panels, function(item){	  
+	      var params = item.children;
+	      Ext.each(params,function(param){  
+                if (!param.plotOnly) {  
+                    if (param.downloadParamArgs){
+                        myValues.list[i] = this.parseArgs(param);  
+                    }
+                    else {
+                        myValues.list[i] = param.name;
+                    }
+                    i++;
+                }
+	    }, this);
+	  }, this);
+	  myValues.name = fullObject.get('name');
+	  myValues.timesrc = fullObject.get('timesrc');
+	  // if there's at least one timeTable name into 'timeTables' collection
+	  if (myValues.timesrc == amdaModel.AmdaTimeObject.inputTimeSrc[0] 
+		    && fullObject.get('timeTables') 
+		    && fullObject.get('timeTables').length ){
+	      // get complete timeTables collection
+	      var timeTables =  fullObject.get('timeTables');	    
+	      // init an empty array for timeTables
+	      myValues.timeTables=[];
+	      // for each interval record
+	      Ext.Array.each(timeTables, function(item, index, all){
+		if (!item.$className) {
+		      myValues.timeTables[index] = {timeTableName : item.timeTableName, id : item.id};
+		}
+		  // get Json simplified value 
+		else {
+		  myValues.timeTables[index] = item.getJsonValues();
+		}
+	      });            
+	  } else {
+	      myValues.startDate = fullObject.get('startDate');
+	      myValues.stopDate = fullObject.get('stopDate');
+	      myValues.durationDay = fullObject.get('durationDay');
+	      myValues.durationHour = fullObject.get('durationHour');
+	      myValues.durationMin = fullObject.get('durationMin');
+	      myValues.durationSec = fullObject.get('durationSec');
+	  } 
+	return myValues;
+      },
+      
+      encodeObject: function() {
+      },
+      
+/*
+ * Method to parse special parameters cases with arguments (spectra && MODELS)
+ * TODO to rewrite with amda new kernel
+ */      
+      parseArgs: function(param) {	
+	 var name = param.name;
+	 var args = param.downloadParamArgs;
+	  
+	 if (args.energyMax){
+	   var nameToSent = name + '_' + args.energyMin +  '_' + args.energyMax;
+	  return nameToSent;
+	 }
+	 
+	 if (args.PA && args.Energy){
+	   var nameToSent = name + '_' + args.PA +  '_' + args.Energy;
+	  return nameToSent;	    
+	 }
+	 
+	 if (args.PA) {
+	     var pa = args.PA - 1;
+	     var nameToSent = name + '(' +  pa + ')';
+	   return nameToSent;	 
+	 }
+	 
+	 if (args.Energy) {
+	    var en = args.Energy - 1;
+//TODO temporary	    
+	    if (name.substr(name.length-2, 2) == '_E') name = name.substr(0,name.length-2);
+	    var nameToSent = name + '(' +  en + ')';
+	   return nameToSent;	
+	 } 
+	 // T96; A2000
+	 if (args.SW_Monitor) {
+              var nameToSent = name + '_' + args.Spacecraft +  '_' + args.SW_Monitor;
+              return nameToSent;    
+         }
+         // LATMOS
+         if (args.ClockAngle && args.Satellite) {
+              var nameToSent = name + '_' + args.Satellite +  '_' + args.ClockAngle;
+              return nameToSent;    
+         }
+         
+         // FMI HYBRID
+        if (args.Satellite && Ext.Object.getSize(args) === 1) {
+            var nameToSent = name + '_' + args.Satellite;
+            return nameToSent;    
+        }
+        
+      },
+      
+  
+    loadJobTree : function() {   
+    	  //ToDo - BRE - fix code duplication with ExecutableNode if possible
+	var rootNode = Ext.getCmp(amdaUI.ExplorerUI.JOB_TAB.TREE_ID).getRootNode();
+	var me = this;
+	amdaModel.InteractiveNode.preloadNodes(rootNode,
+    		function()
+            	{
+					amdaModel.InteractiveNode.jobTreeLoaded = true;
+					me.realExecute(); 
+            	});
+    },   
+    	   
+    execute : function() {
+      
+	if (!amdaModel.ExecutableNode.jobTreeLoaded) this.loadJobTree();
+	else this.realExecute(); 
+	   
+    },
+ 
+      
+    /**
+     * Method to execute this node 
+     */
+    realExecute : function() {
+
+        var jsonObject = this.get('object').getJsonValues();
+            if (!jsonObject.list && !jsonObject.images) {
+		    myDesktopApp.warningMsg('Please select at least one Parameter (Get Data) or one Time Table (Get Time Table)');
+        	return;
+        }
+	
+	loadMask.show(); 
+        AmdaAction.execute({nodeType : this.get('nodeType')}, jsonObject, function(res,e){
+	
+	   loadMask.hide();
+	    
+	   //AKKA - Rework of the result treatment for the integration with the new kernel
+	   if (!e.status)
+	   {
+		   myDesktopApp.errorMsg('Internal error during download request');
+		   return;
+	   }
+	   
+	   if (!res.success)
+	   {
+		   myDesktopApp.errorMsg(res.message);
+		   return;
+	   }
+	   
+       var newobj = this.createJobObject(res);
+       var newNode = Ext.create(this.get('jobNode'), 
+    		   {
+    	   			id : res.id,
+    	   			info : res.info,
+    	   			jobType : this.get('nodeType'),
+    	   			processId : res.id,
+    	   			text : res.name,
+    	   			status : res.status,
+    	   			stop : res.stop,
+    	   			leaf : true,
+                    object : newobj});
+         
+ // new Tab
+       switch (res.status)
+       {
+       case amdaModel.BkgJobNode.STATUS_LIST.DONE :
+    	   // New tab, non-interactive session
+    	   var isInteractive = false;
+    	   var isNewTab = true; 
+    	   newNode.createJobNode(true);
+    	   newNode.editNode(isNewTab, isInteractive);
+    	   break;
+       case amdaModel.BkgJobNode.STATUS_LIST.IN_PROGRESS :
+    	   newNode.createJobNode(false);
+    	   break;
+       default:
+    	   newNode.createJobNode(true);
+       }
+        }, this );
+
+},  
+
+    createJobObject: function(res) {
+      
+		    var obj =  this.get('object').getJsonValues();		    
+//TODO text, name, outputName - if all is needed        
+	             //new object to attach to new bkgJobNode	
+//TODO Ext.clone()	
+		    
+		    var newobj = Ext.copyTo({}, obj, this.get('object').propertiesToCopy);
+	 	    		newobj.id        = res.id;	
+                    newobj.resultId  = res.result;	
+                    newobj.folderId  = res.folder;
+                    newobj = Ext.create(this.get('object').$className, newobj);
+	        
+		 return   newobj;  
+	}
+
+});
diff --git a/js/app/models/ExecutableNode.js b/js/app/models/ExecutableNode.js
new file mode 100644
index 0000000..0407de8
--- /dev/null
+++ b/js/app/models/ExecutableNode.js
@@ -0,0 +1,170 @@
+/** 
+ * Project  : AMDA-NG4
+ * Name     : ExecutableNode.js
+ * @class   amdaModel.ExecutableNode
+ * @extends amdaModel.InteractiveNode
+ * @brief   Generic Model of Executable Node
+ * @author  elena
+ * @version $Id: ExecutableNode.js 1662 2013-07-02 15:10:22Z benjamin $
+ * @todo
+ *******************************************************************************
+ *    FT Id     :   Date   : Name - Description
+ *******************************************************************************
+ *  :           :12/07/2011: elena - creation
+ * 
+ */
+
+Ext.define('amdaModel.ExecutableNode', {
+    extend: 'amdaModel.InteractiveNode',
+    
+//TODO use resultModel in execute method Is it needed???
+    
+    fields: [ 'jobNode', 'resultModel'],
+
+    statics: { jobTreeLoaded : false },
+    
+    constructor : function(config) {
+        this.callParent(arguments);
+        this.set('jobNode', amdaModel.BkgJobNode.$className);		 
+    },
+    
+    loadJobTree : function() {            
+	var rootNode = Ext.getCmp(amdaUI.ExplorerUI.JOB_TAB.TREE_ID).getRootNode();	
+	var me = this;
+	amdaModel.InteractiveNode.preloadNodes(rootNode,
+    		function()
+            	{
+					amdaModel.ExecutableNode.jobTreeLoaded = true;
+					me.realExecute(); 
+            	});
+    },   
+    	   
+    execute : function(isDirty) {
+      
+	if (!amdaModel.ExecutableNode.jobTreeLoaded) this.loadJobTree();
+	else this.realExecute(); 
+	   
+    },
+   
+    /**
+     * Method to execute this node 
+     */
+    realExecute : function() {
+	  
+        var tabId = this.get('nodeType') == 'request' ? this.get('object').get('tabId') : null; 
+       
+	if (!loadMask.isMasked())
+                    loadMask.show(tabId);
+        
+        AmdaAction.execute({nodeType : this.get('nodeType')}, this.get('object').getJsonValues(true), function(res,e){
+	  	     
+	    loadMask.hide();
+	  
+        	//AKKA - Rework of the result treatment for the integration with the new kernel
+     	   	if (!e.status)
+     	    {
+     		    myDesktopApp.errorMsg('Internal error during request');
+     		    return;
+     	    }
+     	   
+     	    if (!res.success)
+     	    {
+     		    myDesktopApp.errorMsg(res.message);
+     		    return;
+     	    }
+     	    
+     	    var newobj = this.createJobObject(res);	    
+     	    var newNode = Ext.create(this.get('jobNode'), 
+     	    		{
+     	    			info : res.info,
+     	    			jobType : this.get('nodeType'),
+     	    			processId : res.id,
+     	    			id : res.id,
+     	    			text : res.name,
+     	    			status : res.status,
+     	    			start : res.start,
+     	    			stop : res.stop,
+     	    			tabId : res.tabId,
+     	    			leaf : true,
+     	    			object : newobj});
+     	    
+     	    
+     	    newNode.get('object').on('execute', function() {
+                // Then call the node creation method
+                this.execute(arguments);
+            }, newNode);
+     	    
+     	    // new Tab
+     	    switch (res.status)
+     	    {
+     	    case amdaModel.BkgJobNode.STATUS_LIST.DONE :
+     	    	//New tab, non-interactive session
+            	var isInteractive = false;
+            	var isNewTab = true;
+            	if (newobj.get('format') &&  newobj.get('format') == 'PNG')
+            	{
+            		isInteractive = true;
+            		//TODO each new plot create new BkgJobNode => delete old!!! 			      
+            		// plot window (1-5) 			       
+            		//      newNode.set('tabId', this.get('object').get('tabId'));
+	      
+            		// if it is plot for TimeTable	      
+            		if (res.tableName) {				 
+            			newobj.set('intervalN', res.intervalN); 
+            			newobj.set('totalN', res.totalN);
+            			newobj.set('ttName', res.tableName); 
+            		}  
+            	}
+            	
+            	if (!isInteractive)
+            		newNode.createJobNode(true);
+                newNode.editNode(isNewTab, isInteractive);
+                break;
+     	    case amdaModel.BkgJobNode.STATUS_LIST.IN_PROGRESS :
+     	    	newNode.createJobNode(false);
+     	    	break;
+     	    default:
+     	    	newNode.createJobNode(true);
+     	    }
+         }, this );
+    },  
+
+    createJobObject: function(res) {
+      
+		    var obj =  this.get('object').getJsonValues();		    
+//TODO text, name, outputName - if all is needed        
+	             //new object to attach to new bkgJobNode	
+//TODO Ext.clone()  		     	  
+	 	    var newobj = Ext.copyTo({}, obj, this.get('object').propertiesToCopy);
+	 	   newobj.resultId = res.result;	
+           newobj.folderId = res.folder;
+           newobj.processId= res.id;
+           newobj.tabId = res.tabId;
+           newobj.name = res.name;
+		   if (this.get('object').$className == 'amdaModel.Plot' && obj.format == 'PNG') {
+		      if (obj.timesrc == amdaModel.AmdaTimeObject.inputTimeSrc[0]) {
+			    newobj.intervalN = res.intervalN;
+			    newobj.ttName = res.tableName;
+			    newobj.totalN = res.totalN;
+			    newobj.startDate = res.startDate;
+			    newobj.stopDate = res.stopDate;
+			  }
+			  else {
+			    newobj.stopDate = this.get('object').get('stopDate');
+			  }
+//TODO implement xmin/xmax, ymin/ymax for all panels	
+			    newobj.xMin = res.children[0].xmin;
+			    newobj.xMax = res.children[0].xmax;
+		    }    
+                    newobj = Ext.create(this.get('object').$className, newobj);
+		 return   newobj;  
+	},
+    /**
+     * override isExecutable to return true 
+     */
+    isExecutable: function(){
+        return true;
+    }
+
+});
+
diff --git a/js/app/models/FileObject.js b/js/app/models/FileObject.js
new file mode 100644
index 0000000..9e46744
--- /dev/null
+++ b/js/app/models/FileObject.js
@@ -0,0 +1,41 @@
+/**
+ * Project      : AMDA-NG
+ * Name         : FileObject.js
+ * Description  :  
+ * @class   amdaModel.FileObject
+ * @extends amdaModel.AmdaObject 
+ * 
+ * @author Elena
+ * @version $Id: FileObject.js 1719 2013-08-30 14:26:56Z elena $
+ ******************************************************************************
+ *    FT Id     :   Date   : Name - Description
+ ******************************************************************************
+ 
+ */
+ 
+ 		
+Ext.define('amdaModel.FileObject', {
+		extend: 'amdaModel.AmdaObject',
+    
+    fields : [
+	      {name: 'fileName', type: 'string'},  
+              {name: 'file', type: 'string',
+                  convert: function(value, rec){              
+                    return rec.get('fileName');
+                }
+              },               
+	      {name: 'mask',  type: 'string',
+                  convert: function(value, rec){  
+                      if (!value) return rec.get('fileName');
+                      else return value;
+                }                  
+              }, 
+	      {name: 'minsampling', type: 'float'},
+	      {name: 'maxsampling', type: 'float'},
+	      {name: 'format', type: 'string'},
+	      {name: 'vars'},
+	      {name: 'startTime', type: 'string'},
+	      {name: 'stopTime', type: 'string'},
+	      {name: 'foundTime', type: 'boolean'}
+	]
+});
\ No newline at end of file
diff --git a/js/app/models/FileParamObject.js b/js/app/models/FileParamObject.js
new file mode 100644
index 0000000..ee837a0
--- /dev/null
+++ b/js/app/models/FileParamObject.js
@@ -0,0 +1,66 @@
+/**
+ * Project      : AMDA-NG
+ * Name         : FileObject.js
+ * Description  :  
+ * @class   amdaModel.FileObject
+ * @extends amdaModel.AmdaObject 
+ * 
+ * @author Elena
+ * @version $Id: FileParamObject.js 2683 2014-12-02 10:58:53Z elena $
+ ******************************************************************************
+ *    FT Id     :   Date   : Name - Description
+ ******************************************************************************
+ 
+ */
+ 
+ 		
+Ext.define('amdaModel.FileParamObject', {
+		extend: 'amdaModel.AmdaObject',
+    
+    fields : [
+	      {name: 'minsampling', type: 'float'},
+	      {name: 'maxsampling', type: 'float'},	       
+	      {name: 'mask', type: 'string'}, 
+	      {name: 'file', type:'string'},
+	      {name: 'realvar', type: 'string'}, // or integer !!!
+	      {name:'format', type: 'string'},
+	      {name:'type', type: 'string'},
+	      {name:'size', type: 'integer'},
+	      {name:'units', type:'string'},
+	      {name:'fillvalue', type:'float'},
+	      {name:'ytitle', type:'string'},
+              {name:'legend', type:'string'},
+              {name:'plottype', type:'string'}
+	],
+	
+	 
+
+	getJsonValues : function(hasId){
+	    var myValues  = new Object();       
+	    if (hasId) {
+		myValues.id = this.get('id');
+	    }
+	    myValues.name = this.get('name');
+	    myValues.minsampling = this.get('minsampling');
+	    myValues.maxsampling = this.get('maxsampling');
+	    myValues.mask = this.get('mask');
+	    myValues.file = this.get('file');
+	    myValues.realvar = this.get('realvar');
+	    myValues.format = this.get('format');
+	    myValues.type = this.get('type');
+	    myValues.size = this.get('size');
+	    myValues.units = this.get('units');
+	    myValues.fillvalue = this.get('fillvalue'); 
+	    myValues.ytitle = this.get('ytitle');
+            myValues.legend = this.get('legend');
+	    myValues.plottype = this.get('plottype');
+            
+	    myValues.vi = '';
+	    myValues.desc = '';
+	    
+	    myValues.nodeType = amdaModel.MyDataParamNode.nodeType;
+	    myValues.leaf = true;
+	    return myValues;
+	}
+      
+});
\ No newline at end of file
diff --git a/js/app/models/FilterDef.js b/js/app/models/FilterDef.js
new file mode 100644
index 0000000..95a9c7c
--- /dev/null
+++ b/js/app/models/FilterDef.js
@@ -0,0 +1,119 @@
+/**
+  * Project      :  AMDA-NG
+  * Name         : FilterDef.js
+  * @plugin 	  amdaModel.FilterDef
+  * @extends 	  Ext.data.Model
+  * @brief		 Data model for filter definition
+  * @author Benjamin
+  * @version $Id: FilterDef.js 990 2012-07-13 09:05:31Z benjamin $
+  ********************************************************************************
+  *    FT Id     :   Date   : Name - Description
+  *******************************************************************************
+  *  :          
+  */
+
+Ext.define('amdaModel.FilterDefCond', {
+	    extend: 'Ext.data.Model',
+	    //idProperty: 'id',
+	    
+	    fields : [
+	            {name: 'id', type: 'string'},
+	            {name: 'type', type: 'string'},
+	            {name: 'index', type: 'int'},
+	    		{name: 'logical', type:'string'},
+	    		{name: 'condId', type: 'string'},
+	    		{name: 'opId', type: 'string'},
+	    		{name: 'value'/*,
+	    			convert: function(value, record) {
+	    				if (record.get('type') == 'date')
+	    				{
+	    					return new Date(value);
+	    				}
+	    				else
+	    					return value;
+	    			}*/
+	    		}
+	    ],
+	  
+
+	    getJsonValues : function () {
+	        var values  = new Object();
+	        values.index = this.get('index');
+	        values.type = this.get('type');
+	        values.logical = this.get('logical');
+	        values.condId = this.get('condId');
+	        values.opId = this.get('opId');
+	        values.value = this.get('value');
+	        return values;
+	    },
+	    
+	    associations : [
+	                    {
+	                     type  : 'belongsTo',
+	                     model : 'amdaModel.FilterDef',
+	                     ownerName  : 'filter'
+	                    }
+	       ]
+});
+
+Ext.define('amdaModel.FilterDef', {
+	  extend: 'Ext.data.Model',
+	  idProperty: 'id',
+	  	  
+	  fields : [
+	    		{name: 'id', type:'string'},
+	    		{name: 'name', type: 'string'}
+	    ],
+	    
+	  hasMany : {
+			model : 'amdaModel.FilterDefCond',
+			name  : 'conditions'
+	  },
+	  
+	  proxy: {
+		  type: 'direct',    
+	      api : 
+	      {
+		  	read   :  AmdaAction.loadFilters,
+		  	update :  AmdaAction.saveFilter,
+		  	create :  AmdaAction.createFilter,
+		  	destroy : AmdaAction.destroyFilter
+		  },
+		  reader: 
+		  {
+		    type: 'json',
+		    root: 'filters',
+		  },
+		  writer: new Ext.data.JsonWriter({
+			  encode: false,
+			  writeAllFields: true,
+			  listful: true,
+			  getRecordData: function (record) {
+			    var values  = new Object();
+			    values.id = record.get('id');
+			    values.name = record.get('name');
+			    
+			    values.conditions=[];
+			    
+			    var conditions = record.conditions();
+			    Ext.each(conditions.data.items, function(it, i, a)
+							{
+								if (!it.$className) 
+								{
+									var value = it.value;
+									//if (it.type == 'date')
+									//	value = Ext.Date.format(it.value,'Y/m/d H:i:s');
+									values.conditions[i] = {id : it.id, type : it.type, index : it.index, 
+											logical : it.logical, condId : it.condId,
+											opId : it.opId, value : it.value};
+								}
+								// get Json simplified value 
+								else
+									values.conditions[i] = it.getJsonValues();
+							});
+					  
+			    return values;
+			  }
+		  })
+	   }
+});
\ No newline at end of file
diff --git a/js/app/models/FilterInfo.js b/js/app/models/FilterInfo.js
new file mode 100644
index 0000000..c155d6e
--- /dev/null
+++ b/js/app/models/FilterInfo.js
@@ -0,0 +1,189 @@
+/**
+  * Project      :  AMDA-NG
+  * Name         : FilterInfo.js
+  * @plugin 	  amdaModel.FilterInfo
+  * @extends 	  Ext.data.Model
+  * @brief		 Data model for filter information
+  * @author Benjamin
+  * @version $Id: FilterInfo.js 1988 2013-12-18 09:53:10Z elena $
+  ********************************************************************************
+  *    FT Id     :   Date   : Name - Description
+  *******************************************************************************
+  *  :          
+  */
+
+Ext.define('amdaModel.FilterList', {
+  extend: 'Ext.data.Model',
+  idProperty: 'id',
+  
+  fields : [
+        {name: 'id',  type:'string'},
+        {name: 'name', type:'string'}
+  ],
+  proxy: {
+              type: 'direct',    
+              api : 
+               {
+                    read   :  AmdaAction.loadFilterList                        
+                },
+                reader: 
+                {
+                    type: 'json'                
+                }
+        }
+});
+
+
+Ext.define('amdaModel.FilterSelectListElt', {
+  extend: 'Ext.data.Model',
+  idProperty: 'id',
+  
+  fields : [
+	{name: 'id', mapping: '@id', type:'string'},
+	{name: 'name', mapping: '@name', type:'string'}
+  ],
+  
+  associations : [
+                  {
+                   type  : 'belongsTo',
+                   model : 'amdaModel.FilterSelectList',
+                   name  : 'selectList'
+                  }
+                 ],
+  
+  proxy: {
+      type: 'ajax',
+      reader: {
+          type: 'xml',
+          root: 'elts',
+          record : 'elt'
+        }
+  }
+});
+
+Ext.define('amdaModel.FilterSelectList', {
+    extend   : 'Ext.data.Model',
+    idProperty : 'id',
+    
+    requires : [
+        'amdaModel.FilterSelectListElt'
+    ],
+    
+    fields   : [
+            	{name: 'id', mapping: '@id', type:'string'}
+    ],
+    
+    hasMany : {
+		model : 'amdaModel.FilterSelectListElt',
+		name  : 'elts'
+    },
+    
+    proxy: {
+        type: 'ajax',
+    	//TODO url into general settings      
+	    url : 'generic_data/Filters/filters_selectLists.xml',
+        reader: {
+          type: 'xml',
+          root: 'selectLists',
+          record : 'selectList'
+        }
+      }
+});
+
+//---------------------------------------------------------------
+
+Ext.define('amdaModel.FilterOpInfo', {
+    extend     : 'Ext.data.Model',
+    idProperty : 'id',
+    
+    fields   : [
+            	{name: 'id',   mapping: '@id', type:'string'},
+            	{name: 'name', mapping: '@name', type: 'string'}
+    ],
+    
+    associations : [
+                {
+                 type  : 'belongsTo',
+                 model : 'amdaModel.FilterConditionInfo',
+                 name  : 'conditions'
+                }
+    ],
+    
+    proxy: {
+        type: 'ajax',
+        reader: {
+	      type: 'xml',
+          root: 'ops',
+          record : 'op'
+        }
+      }
+});
+
+Ext.define('amdaModel.FilterConditionInfo', {
+    extend   : 'Ext.data.Model',
+    idProperty : 'id',
+    
+	  requires : [
+	      	    'amdaModel.FilterOpInfo'
+	      	  ],
+    
+    fields   : [
+            	{name: 'id', mapping: '@id', type:'string'},
+            	{name: 'name', mapping: '@name', type: 'string'},
+            	{name: 'type', mapping: '@type', type: 'string'},
+            	{name: 'selectList', mapping: '@selectList', type: 'string'}
+    ],
+    
+    associations : [
+                 {
+                  type  : 'belongsTo',
+                  model : 'amdaModel.FilterInfo',
+                  name  : 'filter',
+                  getterName : 'getFilter'
+                 }
+    ],
+    
+    hasMany : {
+		model : 'amdaModel.FilterOpInfo',
+		name  : 'ops'
+    },
+    
+    proxy: {
+        type: 'ajax',
+        reader: {
+          type: 'xml',
+          root: 'conditions',
+          record : 'condition'
+        }
+      }
+});
+
+Ext.define('amdaModel.FilterInfo', {
+	  extend: 'Ext.data.Model',
+	  idProperty: 'id',
+	  
+	  requires : [
+	    'amdaModel.FilterConditionInfo'
+	  ],  
+	  
+	  fields : [
+		{name: 'id', mapping: '@id', type:'string'},
+		{name: 'name', mapping: '@name', type:'string'},
+	  ],
+	  
+	  hasMany : {
+			model : 'amdaModel.FilterConditionInfo',
+			name  : 'conditions'
+	    },
+	    
+	  proxy: {
+	      type: 'ajax',
+	//TODO url into general settings      
+	      url : 'generic_data/Filters/filters_info.xml',
+	      reader: {
+	          type: 'xml',
+	          root: 'filters',
+	          record: 'filter'
+	      }
+	   }
+	});
\ No newline at end of file
diff --git a/js/app/models/Function.js b/js/app/models/Function.js
new file mode 100644
index 0000000..517c828
--- /dev/null
+++ b/js/app/models/Function.js
@@ -0,0 +1,46 @@
+/**
+  * Project      :  AMDA-NG
+  * Name         : Function.js
+  * @plugin 	  amdaModel.Function
+  * @extends 	  Ext.data.Model
+  * @brief		 Data model for functions definition
+  * @author Benjamin
+  * @version $Id: Function.js 1399 2013-03-27 12:44:50Z elena $
+  ********************************************************************************
+  *    FT Id     :   Date   : Name - Description
+  *******************************************************************************
+  *  :          
+  */
+
+Ext.define('amdaModel.Function', {
+	
+  extend: 'Ext.data.Model',
+  idProperty: 'text',
+  
+  fields : [
+	{name: 'name', mapping: '@name', type:'string'},
+	{name: 'kind', mapping: '@kind', type: 'string', defaultValue: 'amda'},
+	{name: 'args', mapping: '@args', type: 'int', defaultValue: 0},
+	{name: 'argv', mapping: '@argv', type: 'string'},
+	{name: 'params', mapping: '@params', type:'int', defaultValue: 1},
+	{name: 'prompt', type: 'string', defaultValue: ''},
+	{name: 'info_brief', type: 'string', defaultValue: ''}
+  ],
+  
+  validations: [
+    {type: 'presence', field: 'name'},
+    {type: 'presence', field: 'kind'},
+    {type: 'inclusion', field: 'kind', list: ['idl','amda','time','sliding']}
+  ],
+  
+  proxy: {
+      type: 'ajax',
+//TODO url into generique settings      
+      url : 'generic_data/Functions/functions.xml',
+      reader: {
+          type: 'xml',
+          root: 'functions',
+          record: 'function'
+      }
+  }
+});
\ No newline at end of file
diff --git a/js/app/models/InteractiveNode.js b/js/app/models/InteractiveNode.js
new file mode 100644
index 0000000..541d5b7
--- /dev/null
+++ b/js/app/models/InteractiveNode.js
@@ -0,0 +1,808 @@
+/** 
+ * Project  : AMDA-NG4
+ * Name     : InteractiveNode.js
+ * @class   amdaModel.InteractiveNode
+ * @extends amdaModel.AmdaNode
+ * @brief   Generic Model of Interactive Node
+ * @author  CDA
+ * @version $Id: InteractiveNode.js 2683 2014-12-02 10:58:53Z elena $
+ */
+
+Ext.define('amdaModel.InteractiveNode', {
+    extend: 'amdaModel.AmdaNode',
+
+    fields: [        
+        {name: 'contextNode', type: 'amdaModel.AmdaNode', persist: false},
+        {name: 'objectDataModel', type: 'string', persist: false},       
+        {name: 'object', type: 'object', persist: false},
+        {name: 'moduleId', type: 'string', persist: false},
+        {name: 'filtered', type: 'boolean', defaultValue: false, persist: false},
+        {name: 'disable', type: 'boolean', defaultValue: false, persist: false}
+    ],
+
+    statics: {
+        preloadNodes : function(node,onready)
+        {
+            var me = this;
+            
+            var nodesToLoad = new Array();
+            nodesToLoad.push(node);
+            this.preloadTreeNode(node, nodesToLoad, function (node)
+                {
+                    var isFinish = true;
+                    nodesToLoad.forEach(function (element, index, array)
+                        {
+                                if (!element.isLoaded())
+                                        isFinish = false;
+                        });
+                    
+                    if (isFinish && onready)
+                            onready.call();
+                });
+        },
+
+        preloadTreeNode : function(node, nodesToLoad, onloaded)
+        {
+            var me = this;
+            
+            if (node.isLoaded())
+            {
+                node.eachChild(function(n)
+                        {		      
+                                if (!n.isLoaded() && !n.isLeaf())
+                                {
+                                        nodesToLoad.push(n);
+                                        me.preloadTreeNode(n,nodesToLoad,onloaded);
+                                }
+                        });
+                    
+                    if (onloaded)
+                                onloaded.call(me,node);
+                    return;
+            }	
+            
+            node.store.load({
+                node : node, 
+                callback : function(records, operation, successful)
+                        {
+                            records.forEach(function (record)
+                                    {                                                       
+                                            if (!record.isLoaded() && !record.isLeaf())
+                                                    {
+                                                            nodesToLoad.push(record);
+                                                            me.preloadTreeNode(record,nodesToLoad,onloaded);
+                                                    }
+                                    });
+                            if (onloaded)
+                                    onloaded.call(me,node);
+                        }
+            });
+        }
+    },
+    
+    constructor : function(config)
+    {
+        this.callParent(arguments);	 
+        // if id of this node have root category suffix		
+        if (Ext.util.Format.substr(this.get('id'), -(amdaUI.ExplorerUI.CAT_SUFFIX.length), this.get('id').length) === amdaUI.ExplorerUI.CAT_SUFFIX)
+        {
+            // set the expanded property to true
+            this.set('expanded',true);
+        }        
+    },
+    
+    /**
+     * this method is overriden into ExecutableNode to return true
+     */
+    isExecutable: function()
+    {
+        return false;
+    },
+
+    /**
+    * open Module with THIS NODE
+    */
+    editInModule : function (contextNode) 
+    {
+        // set the contextNode of this node
+        this.set('contextNode',contextNode);
+        // parameter module
+        var me = this;
+        myDesktopApp.getLoadedModule(this.get('moduleId'),true, function (module) {
+        	// If the node to edit is not already linked to this module
+            if (module.getLinkedNode() != me) 
+            {
+                // set relative node into parameter Module
+                module.setLinkedNode(me);	 
+                if (contextNode==null) 
+                {
+                // set the root node as contextNode
+                    contextNode = me.getRootNode();
+                }       	 
+                module.setContextNode(contextNode); 
+                                
+            } else if (module.getLinkedNode() != null){	
+    	   //TODO the node to edit is already edited
+               // myDesktopApp.warningMsg('This object is  being edited');
+                //Sol1: msg alert: "warning this node is already edited! If you want to get the original, please press the 'reset' button"->'OK'
+                //Sol2: msg with user choice: "warning this node is already edited! Would you confirm this action and lost your modification?"->'Confirm','Cancel'
+            }
+            // Opening parameter window     
+                module.createWindow();  
+        });
+        
+        
+    },
+
+    /**
+     * Method to rename the workspace node
+     */
+    rename: function(value,callBackFn) 
+    { 
+        var dataToSend = {id : this.get('id'), old_name: this.modified.text, name: value,  parent : this.parentNode.get('id'), leaf: this.isLeaf(), nodeType: this.get('nodeType')};
+        AmdaAction.renameObject(dataToSend, callBackFn);
+    },
+    
+    /**
+     * Method to rename the workspace node when D&D
+     */
+    renameDD: function(parentId, callBackFn) 
+    { 
+	var dataToSend = {id : this.get('id'), old_name: this.get('name'), name: this.get('name'), parent : parentId, leaf: this.isLeaf(), nodeType: this.get('nodeType')};
+	AmdaAction.renameObject(dataToSend, callBackFn);
+    },
+    
+    /**
+     * validation method on name (used in module forms)
+     * @param name the name to validate
+     * @returns 
+     */
+    isValidName : function(name, callBackFn)
+    {
+    	var dataToSend = {name: name, nodeType: this.get('nodeType'), leaf: this.isLeaf()};
+    	AmdaAction.validNameObject(dataToSend, callBackFn);
+    	
+       /*if (name.match(/[a-z,0-9]/gi)) {
+            var subTreeRoot = this.getRootNode();	            
+            //TODO - check to be sure that preload is already applied before to use the isValidName function (normally, this is the case)
+            var nodeWithSameName = subTreeRoot.findChild('text', name, true);
+            if (nodeWithSameName !== null && this !== nodeWithSameName) {
+                return "This name already exists in this subtree!<br/>Do you want to overwrite it?";
+            } else return true;        
+        } else { 	 
+            return "Name is required";
+       }*/
+    },
+
+    /**
+     * Method to persist modifications of an AmdaObject by Server side and update the workspace
+     * node linked to a Module
+     */
+    update : function(opt)
+    {        
+        AmdaAction.modifyObject(this.get('object').getJsonValues(true), function(res,e){
+            
+            if(e.status) {
+                if (res.id) {              
+                    if (!this.get('contextNode')) {
+                        // set the root node of 'Derived Parameters' tree as contextNode
+                        this.set('contextNode',this.getRootNode());
+                    }
+                    this.get('contextNode').expand(false,false);
+                    this.myGetOwnerTree().getSelectionModel().select(this);
+                    
+                    if (opt)
+                    {
+                        var scope = opt.scope ? opt.scope : this;
+                        if (opt.callback)
+                                opt.callback.call(scope,'update');
+                    }
+                    
+                    Ext.Msg.alert('Complete', 'Object '+this.get('object').get('name')+' has been modified');
+                    // fix the modifications for object
+                    this.get('object').commit();
+                    
+                    if (res.info) {
+                        this.set('info',res.info);
+                    } 
+                    
+                    if (this.get('nodeType') == 'myDataParam') {
+                        if (res.isSpectra) {
+                            this.set('iconCls', 'icon-spectra');
+                        } 
+                        else { 
+                            if (res.size > 1) this.set('iconCls', 'icon-unknowntype');
+                        }
+                    }
+                    
+                    // update my data on possibble mask change		    
+                    if (res.updateMyData) {
+                        this.updateMyData();
+                        this.updateMask(res.mask);
+                    }
+                  // reload object into the view of corresponding Module
+                    var me = this;
+                    myDesktopApp.getLoadedModule(this.get('moduleId'), true, function (module) {
+                    	module.getUiContent().setObject(me.get('object'));
+                    });
+                }
+                else {
+                    //TODO proper error message handling
+                    // error code from server; but e.status==true                   
+                    // revert all modifications since last load or commit
+                    this.get('object').reject();
+		    myDesktopApp.errorMsg(res.error);
+                }
+            }
+            else {
+                // revert all modifications since last load or commit
+                this.get('object').reject();
+                myDesktopApp.errorMsg(e.message);   
+            }
+        },this);
+    },
+
+    /**
+     * Method to create a new AmdaObject by server side and create the workspace node linked to a Module
+     * under its contextNode or the root node corresponding to this nodeType category
+     */
+    create : function(opt) 
+    {
+        if (!this.get('contextNode') || (this.get('contextNode').data.id == 'sharedtimeTable-treeRootNode')) {
+            // set the root node of 'Derived Parameters' tree as contextNode
+            this.set('contextNode',this.getRootNode());
+        }  
+       
+        // call the Ext.Direct method to create parameter 
+        AmdaAction.createObject(this.get('object').getJsonValues(false), this.get('contextNode').get('id'), function(res,e){          
+            //success
+            if(e.status) 
+            {                
+                // if correct response received
+                if (res.id) {   //if (res.id || res.error == 'NAME_EXISTS') {
+                // 'save as' case ; delete old node if it exists
+                        if (this.toRename) 
+                        {
+                            this.toRename	= false;  
+                            var myRoot = this.getRootNode();
+                            // search the same named node to override
+                            var updateNode = myRoot.findChild('text',this.get('object').get('name'),true);
+                            // destroy the overrided node
+                            updateNode.parentNode.removeChild(updateNode);//TODO ??if destroy==true => too many recursions....
+                            updateNode.destroy();			 
+                        } 
+                    // set text of this node
+                    this.set('text',this.get('object').get('name'));
+                    //set id of this node
+                    this.set('id',res.id);
+                    this.internalId = res.id;
+                    // set id of node's object
+                    this.get('object').set('id',res.id);
+                    
+                    if (res.created){
+                        // set the created date
+                        this.get('object').set('created',res.created);
+                    }
+                    
+                    if (res.info){
+                        // set the tooltip
+                        this.set('info',res.info);
+                        //set globalStart & global Stop to be used for time selection
+                        if (this.get('nodeType') == 'myDataParam')
+                        {
+                            var startStop = res.info.split("<br/>"); 
+                            var globalStart = startStop[1].substr(0,16);
+                            var globalStop = startStop[1].substr(17,16);
+                          
+                            this.set('globalStart', globalStart);
+                            this.set('globalStop', globalStop);
+                            
+                            if (res.mask)
+                                        this.set('linkedMask', res.mask);
+                            if (res.size) 
+                                        this.set('size', res.size);
+                             
+                            if (res.isSpectra) {
+                                this.set('iconCls', 'icon-spectra');
+                            } 
+                            else { 
+                               if (res.size > 1) this.set('iconCls', 'icon-unknowntype');
+                            }
+                        }
+                    }                                      
+                    
+                    //TODO do we need this commission ???
+                    // fix the modifications for object
+                    this.get('object').commit(); 
+                    // if ownerTree panel is not active
+                    if (this.myGetOwnerTree().ownerCt.getActiveTab()!==this.myGetOwnerTree())
+                    {
+                        // set ownerTree panel as the active tab - to enable selection of this node his ownerTree must have a view
+                        this.myGetOwnerTree().ownerCt.setActiveTab(this.myGetOwnerTree());                        
+                    }
+                    
+                    Ext.Msg.alert('Complete', 'New object '+this.get('object').get('name')+' has been created'); 
+                    // expand the contextNode
+                    this.get('contextNode').expand(false, function()
+                    {
+                        if (!this.get('contextNode').findChild('text',this.get('text'))) {
+                        // create node in tree as child of contextNode                 
+                            this.get('contextNode').appendChild(this);			                  				
+                        }
+                        // select the new node 
+                        this.myGetOwnerTree().getSelectionModel().select(this);
+                        if (opt)
+                        {
+                            var scope = opt.scope ? opt.scope : this;
+                            if (opt.callback)
+                                    opt.callback.call(scope,'create');
+                        }                        
+                        
+                    }, this);
+        
+                    // myDataParamNode - update MyData subtree 
+                    //TODO put this in mydataparamnode
+                    if (res.updateMyData) {
+                        this.updateMyData();
+                        this.updateMask(res.mask);
+                    } 
+                     
+                }               
+                // error code from server; but e.status==true
+                else {
+                     myDesktopApp.errorMsg(res.error);                         
+                    // revert all modifications since last load or commit
+                    this.get('object').reject();
+                }
+            }
+            // failure: e.status == false
+            else {
+                // revert all modifications since last load or commit
+                this.get('object').reject();
+                //TODO: this.destroy();
+                myDesktopApp.errorMsg(e.message);
+            }
+        },this);         
+    },
+
+    /**
+     * Generic part of Context Menu
+     *  
+     */ 
+    allMenuItems : function(src) {
+        var menuItems =
+            [ {
+                fnId : 'root-createLeaf',
+                text : 'Create '+ src
+            }, {
+                fnId : 'root-createDir',
+                text : 'Create Folder'
+            }, {
+                fnId : 'dire-createLeaf',
+                text : 'Create ' + src
+            }, {
+                fnId : 'dire-createDir',
+                text : 'Create Folder'
+            }, {
+                fnId : 'dire-renameNode',
+                text : 'Rename Folder'
+            }, {
+                fnId : 'dire-deleteNode',
+                text : 'Delete Folder'
+            }, {
+                fnId : 'leaf-editLeaf',
+                text : 'Edit ' + src
+            }, {
+                fnId : 'leaf-renameNode',
+                text : 'Rename ' + src
+            }, {
+                fnId : 'leaf-deleteNode',
+                text : 'Delete '+ src
+            } ];
+        return menuItems;
+    },
+
+    allMenuMultiItems : function(src) {
+        var menuMulti = [
+            {
+                fnId : 'mult-deleteMulti',
+                text : 'Delete selected '+ src+'s'
+            }
+        ];
+        return menuMulti;
+    },
+    
+    /**
+     * default implementation
+     * no menu display if there's no override of this function
+     */
+    getMultiContextMenuItems: function(){
+        return null;
+    },
+    
+    /**
+     *  Context Menu Actions
+     *  
+     */ 
+    onMenuItemClick : function(menu,item,event) {
+        // fnId parsing :
+        var fnId = Ext.util.Format.substr(item.fnId, 5, item.fnId.length);
+
+        switch (fnId) {
+
+        case 'deleteNode':
+            this.deleteNode(); 
+            break;
+        case 'createDir':
+            this.createDir(); 
+            break;
+        case 'createLeaf':
+            this.createLeaf(this);
+            break;                    
+        case 'renameNode':
+            this.renameNode(); 
+            break;
+        case 'editLeaf':   
+            this.editLeaf(this); 
+            break;        
+        case 'deleteMulti':
+            this.deleteMulti();
+            break;            
+        case 'plotParam':                        
+            this.createPlot(this);                
+            break;
+        case 'downParam':                      
+            this.createDownload(this);                
+            break;   
+        default:
+            break;
+        } // switch end
+    },
+    
+    
+   getTimeFromNode: function(node)  {
+       
+        var startString = new String(node.get('globalStart'));
+        var stopString = new String(node.get('globalStop'));
+        var startDate =  new Date(startString.replace(/\-/g,'\/').replace(/[T|Z]/g,' '));
+        var stopDate =  new Date(stopString.replace(/\-/g,'\/').replace(/[T|Z]/g,' '));
+        if (stopDate -  startDate  > 86400000 ) {
+            var startTime = Ext.Date.add(stopDate, Ext.Date.DAY, -1);
+            var timeObj = {start: Ext.Date.format(startTime, 'Y/m/d'), stop:  node.get('globalStop')};
+            
+        } 
+        else {
+            var timeObj = {start:  node.get('globalStart'), stop:  node.get('globalStop')};
+        }
+        return timeObj;
+              
+   },
+    
+   createPlot: function(node) 
+   {       
+       if (node.get('disable')) return;
+       
+       var me = this;
+       myDesktopApp.getLoadedModule(myDesktopApp.dynamicModules.plot.id, true, function (module) {
+    	   if (!myDesktopApp.desktop.getWindow(myDesktopApp.dynamicModules.plot.id)) {               
+    		   var request = Ext.create(amdaModel.Plot.$className);
+    		   var newNode = Ext.create(amdaModel.PlotNode.$className, { object : request });                 
+    		   // edit newNode into Plot Module with node as contextNode
+    		   newNode.editInModule();
+    		   if(node.get('globalStart') != 'depending on mission' && ( node.get('nodeType') == 'localParam' ||
+    				   node.get('nodeType') == 'myDataParam')) {                                                                            
+    			   module.getUiContent().setTimeFromData(me.getTimeFromNode(node)); 
+               }
+    	   }         
+    	   module.getUiContent().tabPanel.getActiveTab().dropRecord(node);  
+       });
+    },
+    
+    createDownload: function(node) 
+    {    
+        if (node.get('disable')) return;
+       
+        if (node.get('notyet')) {
+            myDesktopApp.warningMsg('Sorry! access to this parameter is restricted.');        
+         return;
+        }
+        
+        var me = this;
+        myDesktopApp.getLoadedModule(myDesktopApp.dynamicModules.download.id, true, function (module) {
+        	if (!myDesktopApp.desktop.getWindow(myDesktopApp.dynamicModules.download.id)) {               
+        		var request = Ext.create(amdaModel.Download.$className);
+        		amdaModel.DownloadNode.set('object',request);              
+        		// singleton!
+        		amdaModel.DownloadNode.editInModule();
+        		if(node.get('globalStart') != 'depending on mission' && ( node.get('nodeType') == 'localParam' ||
+        				node.get('nodeType') == 'myDataParam')) {
+        			module.getUiContent().setTimeFromData(me.getTimeFromNode(node)); 
+        		}
+        	}         
+        	if (node.get('needsArgs') && !node.get('isSpectra')) {                                
+        		module.getUiContent().fireEvent('openParamEditor',node.get('id'));
+        	}
+        	else {
+        		var paramName;            
+        		switch (node.$className) {
+        			case 'amdaModel.AliasNode'        :                        
+                       paramName = "#"+node.get('text');
+                       break;
+        			case 'amdaModel.DerivedParamNode' :                         
+                        paramName = "ws_"+node.get('text');
+                        break;
+        			case 'amdaModel.MyDataParamNode' :
+                        paramName = 'wsd_'+node.get('text');                                 
+                        break;                        
+        			default : 
+                         if (node.get('alias')!= "" )
+                            paramName = "#"+node.get('alias');
+                         else 
+                            paramName = node.get('id');                            
+                }
+ 
+        		module.addParam(paramName,true);   
+        	}   
+        });
+        
+        
+    },
+    deleteNode: function() {
+            
+        // if the target is a directory
+        if (!this.isLeaf()) {
+            // determine if this directory is empty before launching the delete confirmation method
+            this.isNotEmptyDir(this.confirmDirectoryDeletion);            
+            
+        // else (the target is a leaf)
+        } else {
+            // no confirmation prompt for leaves
+            this.confirmDirectoryDeletion(false);
+        }
+    },
+    
+    /**
+     * this method return if node has Childs even if it was not already loaded
+     */
+    isNotEmptyDir : function(callbackFn) {
+        var hasChilds;
+        // if node not already loaded
+        if (!this.isLoaded()){
+            // call directFunction to load this node 
+            AmdaAction.getTree({node:this.get('id'),nodeType:this.get('nodeType')},function(res,e){
+                callbackFn.call(this,res.length>0?true:false);
+            },this);
+        } 
+        else {
+            callbackFn.call(this,this.hasChildNodes());
+        }
+    },
+    
+    /**
+     * this method is used to display a confirmation message
+     */
+    confirmDirectoryDeletion : function(isNotEmptyDir)
+    {        
+        // if this is a non-empty directory
+        if (isNotEmptyDir) {
+            // Prompt to the user if he also wants to delete its content
+            Ext.Msg.confirm('non-empty directory', 'The target is a non-empty directory!<br>Do you want to continue and also delete its content?', function(btn, text){
+                if (btn == 'yes'){
+                    // do delete
+                    this.realDelete();
+                }
+            },this);
+        } else {
+            this.realDelete();
+        }        
+    },
+    
+    /*
+    *    Call the extDirect method to delete parameter
+    *    Callback method needed to execute node deletion in tree if id in result or to show error msg  
+    */
+    realDelete : function()
+    {                                                 
+        AmdaAction.deleteObject({id: this.get('id'), leaf: this.isLeaf(), nodeType: this.get('nodeType')}, function(res,e){ 
+            //TODO proper errors handling                       
+            // node deletion in tree 
+            if (res) {  // if success
+                if (res.id) {
+                    //Ext.Msg.show({title:'Warning', msg: 'Requests with parameter '+node.data.text+' are deleted', icon: Ext.MessageBox.ERROR, buttons: Ext.Msg.OK});
+                    if (this.parentNode) {
+                        if (this.isLeaf()){
+                                var moduleId = this.get('moduleId');
+                                // if really interactive node
+                                if (moduleId) {
+                                	var me = this;
+                                    myDesktopApp.getLoadedModule(moduleId, true, function (module) {
+                                    	var editedNode = module.getLinkedNode();
+                                        // file node is not linked directly to the module				    
+                                        var isThisFile = false;
+                                        
+                                        if (editedNode && editedNode.$className == 'amdaModel.MyDataParamNode')                                        
+                                                if (editedNode.get('fileObject').get('fileName') == me.get('text'))
+                                                    isThisFile = true;  
+                                        
+                                        if (editedNode === me || isThisFile){
+                                            var newNode = Ext.ModelManager.create({leaf : true}, me.$className);
+                                            // several tabs could be connected to one node
+                                            if (moduleId === myDesktopApp.dynamicModules.plot.id) {
+                                                var linkedNodes = module.linkedNodes;
+                                                                                                                                                                                                
+                                                if (linkedNodes) {
+                                                    linkedNodes.each(function(key, value){						      
+                                                        if (value === me) {	 
+                                                            linkedNodes.replace(key,newNode);
+                                                            var tabPanel = module.getUiContent().tabPanel.items.getByKey(key);
+                                                            tabPanel.setObject(Ext.create(amdaModel.Plot.$className, {}));						 
+                                                        }	
+                                                    }, me);
+                                                }					  					 	
+                                            } 
+                                            newNode.editInModule();
+                                        }
+                                    });				     
+                                    
+                                }
+                            }
+                    
+                        //update mask info in myData              
+                        if (res.maskDesc && !res.maskDeleted) {
+                            this.parentNode.set('info', res.maskDesc);
+                            this.updateMyDataParam(res.mask, res.maskDesc);
+                        } 
+                        
+                        this.remove();                       
+                    }
+                    //TODO Several special node-dependent actions - to move to node functions..                   
+                    // nodes of another nodeType to be deleted as they depend on deleted node                     
+                    if (res.params) {
+                        this.deleteDependence(res.params);
+                        //TODO reset
+                    } 
+                    
+                    // mask was deleted or updated - to update mydata tree		    
+                    if (res.maskDeleted) {
+                        this.updateMyData(); 
+                    }
+                        
+                }
+                else {
+                    myDesktopApp.warningMsg(res.error);  
+                }
+            }
+            else {
+                myDesktopApp.errorMsg(e.message);   
+            }
+        }, this);
+    },
+
+    /*
+     *  Delete musti selection
+     */
+    deleteMulti: function()
+    {
+        var selection = this.myGetOwnerTree().getSelectionModel().selected.items;
+        alert(selection.length +' to delete!');
+        Ext.Array.each(selection,function(item,index,allItems){
+            item.deleteNode();
+        })
+    },
+    
+    /*
+    *  Create Folder
+    */
+    createDir: function() {
+        var me = this;
+        amdaModel.InteractiveNode.preloadNodes(this.getRootNode(),
+                        function()
+                        {
+                            var newNode = Ext.create(me.$className,
+                                            {
+                                                    leaf : false, nodeType : me.nodeType,
+                                                    text : amdaModel.AmdaNode.NEW_DIR_NAME,
+                                                    children : []
+                                            });
+
+                            // insert the new node as a child of node                    
+                            newNode = me.insertChild(0, newNode);
+                            // start text edition on this new directory node
+                            me.expand(false);
+                            newNode.expand(false);
+
+                            // select the new node
+                            me.myGetOwnerTree().getSelectionModel().select(newNode);
+                            // call the renameNode method for this new node
+                            newNode.renameNode();
+                        });
+    },
+    
+    /*
+     *  
+     */
+    createLeaf: function(contextNode) {
+        // create new node with the same type than the contextNode
+        var newNode = Ext.create(contextNode.$className, {leaf : true});
+
+        // load the rootNode and recursively all its child nodes
+        amdaModel.InteractiveNode.preloadNodes(contextNode.getRootNode(),
+                        function()
+                        {
+                            // edit newNode into Parameter Module with node as contextNode
+                            newNode.editInModule(contextNode);
+                        });
+    },
+
+    renameNode: function() {
+        if (this.myGetOwnerTree())
+        {
+            // load the rootNode and recursively all its child nodes if not already loaded
+        	var me = this;
+            amdaModel.InteractiveNode.preloadNodes(this.getRootNode(),
+            		function()
+                    	{
+            				// fire the edition event on tree
+            				me.myGetOwnerTree().fireEvent('edition',me.myGetOwnerTree().view, me.myGetOwnerTree().getSelectionModel().selected.items[0]);
+                    	});
+        }
+        else
+        {
+        	myDesktopApp.errorMsg('tree is undefined'); 
+            //TODO: log error... tree is undefined
+        }
+    },
+    
+    /*
+    *       load the rootNode and recursively all its child nodes
+    *       to know all names of DerivedParameters
+    */
+    editLeaf: function() 
+    { 
+        var me = this;
+        amdaModel.InteractiveNode.preloadNodes(this.getRootNode(),
+                        function()
+                        {
+                                        if (me.get('object')) 
+                                        {
+                                                // launch edition of parameter into parameter module
+                                                me.editInModule();
+                                        }
+                                        else
+                                        {
+                                                // call the ext method to get the details of parameter
+                                                // the edition of real parameter is done into callback method getObjectCallback            
+                                                AmdaAction.getObject(me.get('id'), me.get('nodeType'), me.getObjectCallback, me);
+                                        }
+                        });
+    },
+
+    /*
+     * 
+     */
+    getObjectCallback : function(result,remoteEvent)
+    {
+        var t = remoteEvent.getTransaction();
+        
+        if (result) {
+            /*TODO why Caro used this???         
+              var reader = Ext.create('Ext.data.reader.Json',{
+                 model: this.get('objectDataModel')
+             });
+              var resultSet = reader.read(result);	    
+              var paramObj =  resultSet.records[0];//
+            */
+             var paramObj = Ext.create(this.get('objectDataModel'), result);
+
+            // set parameter into node
+            this.set('object',paramObj);
+            // Edition of parameter into parameter Module	    
+            this.editInModule();
+        } 
+        else {
+            // EXCEPTION : parameter not found !?
+             myDesktopApp.errorMsg(t.action + "." + t.method + " : No parameter '"
+                + this.get('name') + "' found!");          
+        }
+    } 	
+});
diff --git a/js/app/models/LocalParamNode.js b/js/app/models/LocalParamNode.js
new file mode 100644
index 0000000..495690b
--- /dev/null
+++ b/js/app/models/LocalParamNode.js
@@ -0,0 +1,254 @@
+/** 
+ * Project  : AMDA-NG4
+ * Name     : LocalParamNode.js
+ * @class   amdaModel.LocalParamNode
+ * @extends amdaModel.InteractiveNode
+ * @brief   Basic Model of Node corresponding to a amda  parameter
+ * @author  
+ * @version $Id: LocalParamNode.js 2800 2015-02-27 16:23:06Z elena $  
+ */
+
+Ext.define('amdaModel.LocalParamNode', 
+{
+    extend: 'amdaModel.InteractiveNode',
+    
+    statics:
+    {
+        nodeType: 'localParam'
+    },
+    
+    fields: 
+    [
+            {name: 'alias', type:'string', persist: false},
+            {name: 'isParameter', type: 'boolean', persist: false}, 
+            {name: 'notyet', type: 'boolean', defaultValue: false, persist: false},
+            {name: 'needsArgs', type: 'boolean', persist: false},
+            {name: 'isScatter', type: 'boolean', defaultValue: true, persist: false},
+            {name: 'isSpectra', type: 'boolean', defaultValue: false, persist: false},
+            {name: 'isStack', type: 'boolean', defaultValue: true, persist: false},
+            {name: 'globalStart', type: 'string', persist: false},
+            {name: 'globalStop', type: 'string', persist: false},
+            {name: 'timeRestriction', type: 'boolean', persist: false},           
+            {name: 'rank', type: 'integer', persist: false, defaultValue: null}
+    ],    
+    
+    constructor : function(config)
+    {        
+        this.callParent(arguments);
+
+        this.set('allowDrop', true);
+        this.set('moduleId',myDesktopApp.dynamicModules.param.id);
+        this.set('objectDataModel',amdaModel.Parameter.$className);
+        this.set('ownerTreeId',amdaUI.ExplorerUI.RESRC_TAB.TREE_ID);
+        this.set('nodeType',amdaModel.LocalParamNode.nodeType);
+        
+         // if future missions or 'depending on mission'
+         if (this.get('globalStart')) {          
+            var now = Ext.Date.format(new Date(), 'Y/m/d');               
+            if ( this.get('globalStart') > now )
+                    this.set('cls','predicted');
+        }
+         // time restriction on parameters
+         if (this.get('timeRestriction')) { 
+       //      this.set('cls','predicted');
+                var id = this.get('id');
+                var bracketPos =  id.indexOf("(");
+                if (bracketPos > 0) {
+                        id = Ext.String.insert(id, '_restr', bracketPos);
+                }
+                else {
+                        id += '_restr'; 
+                }
+             this.set('id', id);
+         }
+        
+        if (this.get('rank')) { 
+            var rank = this.get('rank');
+            if (rank == 1) this.set('iconCls', 'icon-mercury');
+            if (rank == 2) this.set('iconCls', 'icon-venus');
+            if (rank == 5) this.set('iconCls', 'icon-earth'); 
+            if (rank == 6) this.set('iconCls', 'icon-earth');
+            if (rank == 7) this.set('iconCls', 'icon-mars');
+            if (rank == 8) this.set('iconCls', 'icon-jupiter');  
+            if (rank == 9) this.set('iconCls', 'icon-saturn');
+            if (rank == 93) this.set('iconCls', 'icon-comet');     
+            if (rank == 3) this.set('iconCls', 'icon-sw');
+            if (rank == 4) this.set('iconCls', 'icon-sw');
+            if (rank >= 99) this.set('iconCls', 'icon-solarsystem');
+        }
+                         
+        if (this.get('isParameter')) 
+        {	
+            if (this.get('leaf')) this.set('iconCls', 'icon-scalar');	 
+            else this.set('iconCls', 'icon-vector');	
+           
+            if (this.get('isStack') || this.get('isSpectra')) this.set('iconCls', 'icon-spectra');
+        }
+    },
+    
+    allMenuItems : function() 
+    {
+        var menuItems =
+        [{
+            fnId : 'root-collapseAll',
+            text : 'Close All',
+            hidden : true
+        }, {
+            fnId : 'dire-collapseAll',
+            text : 'Close All',
+            hidden : true
+        }, {
+            fnId : 'para-plotParam',
+            text : 'Plot Parameter',
+            hidden : true
+        }, {
+            fnId : 'para-downParam',
+            text : 'Download Parameter',
+            hidden : true
+        },{
+            fnId : 'leaf-createAlias',
+            text : 'Create/Edit Alias',
+            hidden : true 
+        },{    
+            fnId : 'leaf-createDerivedParam',
+            text : 'Create Derived Parameter',
+            hidden : true
+        },{
+            fnId : 'leaf-plotParam',
+            text : 'Plot Parameter',
+            hidden : true
+        }, {
+            fnId : 'leaf-downParam',
+            text : 'Download Parameter',
+            hidden : true
+        }];
+
+        return menuItems;
+    },
+
+    getAllContextMenuItems: function()
+    {
+        return this.allMenuItems();
+    },
+  
+    onMenuItemClick : function(menu,item,event) 
+    {
+        switch (item.fnId) 
+        {
+            case 'root-collapseAll':
+            case 'dire-collapseAll':
+                if(this && !this.isLeaf()) {
+                    this.collapse(true);
+                }
+                break; 
+            case 'leaf-plotParam':
+            case 'para-plotParam':              
+                    this.createPlot(this);                
+                break;
+            case 'leaf-downParam':
+            case 'para-downParam':                    
+                    this.createDownload(this);                
+                break;
+            case 'leaf-createDerivedParam':
+                if (!this.get('notyet'))
+                        this.createLeaf(this); 
+                else  
+                    myDesktopApp.warningMsg("Sorry! access to this parameter is restricted"); 
+                break;
+            case 'leaf-createAlias':	
+                if (!this.get('notyet'))
+                        this.createAlias(this); 
+                else
+                   myDesktopApp.warningMsg("Sorry! access to this parameter is restricted");
+                 
+                break;
+            default:
+                break;
+
+        }
+    },
+    
+      
+   createLeaf: function(node) 
+   {       
+           
+        // instanciate a Parameter object with the current data in his buidchain
+        var param =  Ext.create(this.get('objectDataModel'));//, { buildchain: node.get('alias') ? "#"+node.get('alias') : node.get('id') });
+        // instanciate a DerivedParamNode with this param object
+        var newNode = Ext.create(amdaModel.DerivedParamNode.$className, {leaf : true, object : param}); 
+    
+       // edit newNode into Parameter Module with node as contextNode
+       newNode.editInModule();
+       
+       var module = myDesktopApp.getLoadedModule(myDesktopApp.dynamicModules.param.id);
+       
+       if (node.get('needsArgs')) {                                
+            module.getUiContent().fireEvent('openParamEditor',node.get('id'));
+        }
+        else {
+            var paramName;            
+            if (node.get('alias')!= "" )
+                paramName = "#"+node.get('alias');
+            else 
+                paramName = node.get('id');
+                      
+           
+            module.addParam(paramName,true);   
+        }     
+        
+    },
+
+    createAlias: function(node) 
+    {
+        var win = myDesktopApp.desktop.getWindow('alias-win');     
+        if (!node.get('needsArgs') && node.get('leaf'))
+        {
+            if(!win)
+            {
+                var win = myDesktopApp.desktop.createWindow(
+                {
+                    border: false,
+                    id : 'alias-win',
+                    title : 'Create Alias',
+                    width : 400,
+                    height : 200,
+                    layout : 'border',
+                    maximizable : false,
+                    items : 
+                    [{
+                        xtype : 'alias',
+                        region : 'center',
+                        margins : 
+                        {
+                            top: 0,
+                            right: 5,
+                            bottom: 5,
+                            left: 5
+                        }, 
+                        paramNode : node,
+                        id : 'aliasUI'
+                    }]
+                });	
+            }
+            else 
+            {
+    //Set data into Alias Widget
+                win.items.items[0].paramNode = node;
+                win.items.items[0].setAlias(node);	   
+            }     
+            win.show();	 
+        }
+        else 
+        {
+            var message = 'Sorry, parameter ' + node.get('id') + ' cannot have alias';
+            Ext.Msg.alert('Impossible Create Alias', message); 
+            if (win) win.close();
+        }
+    },
+    
+    isParameter : function()
+    {
+        return this.get('isParameter');
+    }
+      
+});
diff --git a/js/app/models/MyDataNode.js b/js/app/models/MyDataNode.js
new file mode 100644
index 0000000..fc38a68
--- /dev/null
+++ b/js/app/models/MyDataNode.js
@@ -0,0 +1,207 @@
+/** 
+ * Project  : AMDA-NG4
+ * Name     : MyDataParamNode.js
+ * @class   amdaModel.MyDataParamNode
+ * @extends amdaModel.InteractiveNode
+ * @brief    
+ * @author  
+ * @version $Id: MyDataNode.js 2267 2014-04-03 10:13:16Z elena $
+ * @todo
+ *******************************************************************************
+ *    FT Id     :   Date   : Name - Description
+ *******************************************************************************
+ * 
+ */
+
+Ext.define('amdaModel.MyDataNode', {
+  
+    extend: 'amdaModel.InteractiveNode',
+    
+    fields: 
+    [
+        {name: 'globalStart', type: 'string', persist: false},
+        {name: 'globalStop', type: 'string', persist: false}
+    ],
+    
+    constructor : function(config){
+        this.callParent(arguments);
+        this.set('moduleId',myDesktopApp.dynamicModules.my_data.id);
+        this.set('objectDataModel','amdaModel.FileObject');
+        this.set('ownerTreeId',amdaUI.ExplorerUI.RESRC_TAB.TREE_ID);
+        this.set('nodeType',amdaModel.MyDataNode.nodeType);
+    },
+
+    statics:{
+        nodeType: 'myData'
+    },
+
+    dependentRootNodeId :  'myDataParam-treeRootNode',
+    
+    localMenuItems : function() {
+        var menuItems =
+            [{
+                fnId : 'root-upload',
+                text : 'Upload File',
+                hidden : true
+            },  {
+                fnId : 'dire-upload',
+                text : 'Upload File', 
+                hidden : true
+            },  {
+                fnId : 'dire-deleteNode',
+                text : 'Delete Folder', 
+                hidden : true
+            }, {
+                fnId : 'leaf-editLeaf',
+                text : 'Edit File'
+            }, {
+                fnId : 'leaf-deleteNode',
+                text : 'Delete File'
+	    }
+	    ];     
+        return menuItems;
+    },
+
+    getAllContextMenuItems: function(){
+
+       // var menuItems = this.allMenuItems('File');
+        var locMenuItems = this.localMenuItems();
+
+       // return  Ext.Array.merge(menuItems,locMenuItems);
+	 return locMenuItems;
+    },
+
+    onMenuItemClick : function(menu,item,event) {
+
+        var fnId = Ext.util.Format.substr(item.fnId, 5, item.fnId.length);
+
+        switch (fnId) {
+
+        case 'deleteNode':
+            this.deleteMyDataNode(); 
+            break;
+         
+        case 'editLeaf':   
+            this.editLeaf(this); 
+            break;
+
+        case 'upload':   
+            this.uploadFile(); 
+            break;
+
+        default:
+            break;
+        } // switch end 
+
+    },
+
+
+    uploadFile: function() {
+       var module = myDesktopApp.getLoadedModule(myDesktopApp.dynamicModules.upload.id, true, function (module) {
+    	   module.createWindow();
+       });
+    },
+
+    // delete empty folders
+    deleteMyDataNode : function() {
+        
+       if (this.isLeaf()) { 
+           if (this.parentNode) {
+            var emptyFolder = this.parentNode.childNodes.length == 1;
+            if (emptyFolder && this.parentNode.getDepth() == 2) {
+                        this.parentNode.realDelete();
+            }
+            else {
+                    this.deleteNode();
+            }              
+        }
+       }
+       else  {
+           this.deleteNode();
+       }
+    },
+        
+// file has been already added at server side!!!
+   create : function(folderName, fileDesc, folderDesc)  {
+                     
+                   // if ownerTree panel is not active
+    	            if (this.myGetOwnerTree().ownerCt.getActiveTab()!==this.myGetOwnerTree()){
+                        // set ownerTree panel as the active tab
+                        this.myGetOwnerTree().ownerCt.setActiveTab(this.myGetOwnerTree());
+                        // to enable selection of this node his ownerTree must have a view
+                    }
+                    
+                   this.getRootNode().expand(false, function() { 
+                    
+                        if (!this.get('contextNode')) {
+                            // set the root node of 'my data' tree as contextNode
+                            var folder = folderName ? this.getRootNode().findChild('text', folderName) : this.getRootNode();
+                            this.set('contextNode', folder);
+                        } 		   		    
+    
+                        // expand the contextNode - new node will be added automatically
+                        if (!this.get('contextNode').isExpanded()){
+                                this.get('contextNode').expand(false); 
+                        }
+                        else {		     
+                            if (!this.get('contextNode').findChild('text', this.get('text')))  
+                                           this.get('contextNode').appendChild(this);
+                        }
+                        
+                        if (folderDesc) this.get('contextNode').set('info',folderDesc);
+                        if (fileDesc) this.set('info',fileDesc);                     
+                        // select the new node                  
+                        this.myGetOwnerTree().getSelectionModel().select(this);
+                   }, this);
+    },
+    
+/*
+ *   Delete  myDataParams
+ */
+    deleteDependence : function(params) {
+        
+        // CLOSE MyDataUI      
+        var myDataModule = myDesktopApp.desktop.getWindow(myDesktopApp.dynamicModules.my_data.id);        
+        if (myDataModule) {            
+            myDataModule.close();         
+        }   
+        
+        var myParamRootNode = this.myGetOwnerTree().getRootNode().firstChild.findChild('id',this.dependentRootNodeId);	
+        if (myParamRootNode.isExpanded) {					
+            Ext.Array.each(params, function(param) {
+                var paramNode = myParamRootNode.findChild('id', param, true);
+                if (paramNode) paramNode.parentNode.removeChild(paramNode);
+            });	    	      	 
+        }
+        else {
+            myParamRootNode.expand(true,true);
+        }
+       
+        myDesktopApp.warningMsg("Attention! Parameters which are made from these files have been deleted");
+    },
+    
+/*
+ *   Update  myDataParams Info only if node is exapnded
+ */    
+    updateMyDataParam : function(mask, maskDesc){
+        
+        var myParamRootNode = this.myGetOwnerTree().getRootNode().firstChild.findChild('id',this.dependentRootNodeId); 
+  
+        if (myParamRootNode.isExpanded) {                                       
+            Ext.Array.each(myParamRootNode.childNodes, function(node) {
+                if (node.get('linkedMask')  &&  node.get('linkedMask') == mask) {
+                    var globalStart =  maskDesc.substr(0,16);
+                    var globalStop = maskDesc.substr(17,16);
+                                        
+                    node.set('globalStart', globalStart);
+                    node.set('globalStop', globalStop); 
+                    if (node.get('info')) {
+                        var info = node.get('info').split("<br/>");
+                        node.set('info',info[0] + "<br/>" + globalStart + "-" + globalStop + "<br/> Mask: " + mask);
+                    }
+                }
+                
+            });                  
+      }
+    }
+});
diff --git a/js/app/models/MyDataParamNode.js b/js/app/models/MyDataParamNode.js
new file mode 100644
index 0000000..5caeb93
--- /dev/null
+++ b/js/app/models/MyDataParamNode.js
@@ -0,0 +1,249 @@
+/** 
+ * Project  : AMDA-NG4
+ * Name     : MyDataNode.js
+ * @class   amdaModel.MyDataNode
+ * @extends amdaModel.InteractiveNode
+ * @brief    
+ * @author  
+ * @version $Id: MyDataParamNode.js 2683 2014-12-02 10:58:53Z elena $
+ *******************************************************************************
+ *    FT Id     :   Date   : Name - Description
+ *******************************************************************************
+ */
+
+Ext.define('amdaModel.MyDataParamNode', {
+  
+    extend: 'amdaModel.InteractiveNode',
+    
+    fields : [ // { name : 'linkedFile', persist: false}, 
+		{ name : 'linkedMask', persist: false},
+		{ name : 'fileObject', persist: false},
+		{ name : 'size', persist: false},
+		{ name : 'isSpectra', type: 'boolean', defaultValue: false, persist: false }
+	     ],
+	   
+     statics:{
+        nodeType: 'myDataParam'
+    },
+    
+    constructor : function(config){
+        this.callParent(arguments);
+        this.set('moduleId',myDesktopApp.dynamicModules.my_data.id);
+        this.set('objectDataModel','amdaModel.FileParamObject');
+        this.set('ownerTreeId',amdaUI.ExplorerUI.RESRC_TAB.TREE_ID);
+        this.set('nodeType',amdaModel.MyDataParamNode.nodeType);    
+        if (this.get('isParameter')) {
+            if (this.get('size') == 1) this.set('iconCls', 'icon-scalar');      
+            else this.set('iconCls', 'icon-unknowntype');            
+        }
+       //TODO  this.set('iconCls', 'icon-vector'); 
+        if (this.get('isSpectra')) this.set('iconCls', 'icon-spectra');
+          
+    },
+    
+    localMenuItems : function() {
+        var menuItems =
+            [{
+                fnId : 'root-upload',
+                text : 'Upload File',
+                hidden : true
+            },  {
+                fnId : 'dire-upload',
+                text : 'Upload File', 
+                hidden : true
+            }, {
+                fnId : 'leaf-upload',
+                text : 'Upload File', 
+                hidden : true
+            },{
+                fnId : 'leaf-plotParam',
+                text : 'Plot Parameter',
+                hidden : true
+            }, {
+                fnId : 'leaf-downParam',
+                text : 'Download Parameter',
+                hidden : true
+            }, {
+                fnId : 'para-plotParam',
+                text : 'Plot Parameter',
+                hidden : true
+            }, {
+                fnId : 'para-downParam',
+                text : 'Download Parameter',
+                hidden : true
+          }];     
+        return menuItems;
+    },
+
+    getAllContextMenuItems: function(){
+
+        var menuItems = this.allMenuItems('Parameter');
+        var locMenuItems = this.localMenuItems();
+
+        return  Ext.Array.merge(menuItems,locMenuItems);
+    },
+
+    onMenuItemClick : function(menu,item,event) {
+
+        var fnId = Ext.util.Format.substr(item.fnId, 5, item.fnId.length);
+
+        switch (fnId) {
+
+        case 'deleteNode':
+            this.deleteNode(); 
+            break;
+
+        case 'createDir':
+            this.createDir(); 
+            break;
+
+        case 'createLeaf':
+            this.createLeaf(this);
+            break;                    
+
+        case 'renameNode':
+            this.renameNode();
+            break;
+
+        case 'editLeaf':   
+            this.editLeaf(this); 
+            break;
+
+        case 'upload':   
+            this.uploadFile(); 
+            break;
+            
+	 case 'plotParam':                 
+            this.createPlot(this);                
+            break;
+            
+        case 'downParam':                   
+            this.createDownload(this);                
+            break; 
+            
+        default:
+            break;
+        } // switch end 
+
+    },
+    
+    uploadFile: function() {
+    	myDesktopApp.getLoadedModule(myDesktopApp.dynamicModules.upload.id, true, function (module) {
+    		module.createWindow();
+    	});
+    }, 
+    
+    editLeaf: function() {
+        // load the rootNode and recursively all its child nodes
+        // to know all names of DerivedParameters
+    	var me = this;
+        amdaModel.InteractiveNode.preloadNodes(this.getRootNode(),
+        		function()
+                	{
+        				if (me.get('object'))
+        				{
+        					if (me.get('fileObject'))
+        						// launch edition of parameter into parameter module
+        						me.editInModule();
+        					else
+        						AmdaAction.getObject(me.get('object').get('file'), amdaModel.MyDataNode.nodeType, me.getFileObjectCallback, me);
+        				}
+        				else
+        				{
+        					// call the ext method to get the details of parameter
+        					// the edition of real parameter is done into callback method getObjectCallback            
+        					AmdaAction.getObject(me.get('id'), me.get('nodeType'), me.getObjectCallback, me);
+        				}
+                	});
+    },
+    
+    // special case file object should be also loaded
+     getObjectCallback : function(result,remoteEvent){//result, e) {
+        var t = remoteEvent.getTransaction();
+        if (result) { 
+            if (result.id) {
+                var paramObj = Ext.create(this.get('objectDataModel'), result);
+                // set parameter into node
+                this.set('object',paramObj);
+                
+                if (paramObj.get('mask')) var file = paramObj.get('mask');
+                else  var file = paramObj.get('file'); 
+            
+                AmdaAction.getObject(file, amdaModel.MyDataNode.nodeType, 
+                                        this.getFileObjectCallback, this);              
+            }
+            else {                 
+                 myDesktopApp.errorMsg(result.error);
+            }
+        }
+        else {
+            // EXCEPTION : parameter not found !?
+            myDesktopApp.errorMsg(t.action + "." + t.method + " : No parameter '"
+                +this.get('name')+"' found!");
+            //TODO: adding an error log
+        }
+    },
+    
+    getFileObjectCallback : function(result,remoteEvent){//result, e) {
+        var t = remoteEvent.getTransaction();
+        if (result) {
+            if (result.success) {
+                    var paramObj = Ext.create('amdaModel.FileObject', result);
+                    this.set('fileObject', paramObj);
+                    // Edition of parameter into parameter Module	    
+                    this.editInModule();
+            }
+            else {                 
+                 myDesktopApp.errorMsg(result.error);
+            }
+        } 
+        else {
+            // EXCEPTION : parameter not found !?
+            myDesktopApp.errorMsg(t.action + "." + t.method + " : No parameter '"
+                +this.get('name')+"' found!");          
+        }
+    },
+    
+    /*
+     * Mask was possibly changed update this info
+     */    
+    updateMask : function(mask)
+    {
+         var myParamRootNode = this.getRootNode(); 
+         if (myParamRootNode.isExpanded) {                                       
+            Ext.Array.each(myParamRootNode.childNodes, function(node) {
+                if (node.get('linkedMask')  &&  node.get('linkedMask').indexOf(mask) != -1 ) {
+                    node.set('linkedMask',mask);                     
+                    if (node.get('info')) {
+                        var info = node.get('info').split("<br/>");
+                        node.set('info',info[0] + "<br/>" + info[1] + "<br/> Mask: " + mask);
+                    }
+                }
+                
+            });                  
+      }
+         
+     },
+    
+    updateMyData : function(){
+            // reload myFiles Tree in explorer
+                var explorerTree = Ext.getCmp(amdaUI.ExplorerUI.RESRC_TAB.TREE_ID);
+                if (explorerTree) {					  
+                        var explorerTreeStore = explorerTree.getStore();
+                        var explorerRoot = explorerTreeStore.getRootNode().findChild('text','My Files');
+                        
+                        var explorerPath = '/root/myData-treeRootNode/';
+                        
+                        explorerTreeStore.reload({node : explorerRoot, 
+                                                params : { nodeType: 'myData'},
+                                                callback : function(){	
+                                                    explorerTree.selectPath(explorerPath);						 
+                                                }
+                        });	      	 
+                }     
+    },
+    
+    isParameter : function(){
+        return this.get('isParameter');
+    } 
+});
diff --git a/js/app/models/Parameter.js b/js/app/models/Parameter.js
new file mode 100644
index 0000000..f60a053
--- /dev/null
+++ b/js/app/models/Parameter.js
@@ -0,0 +1,56 @@
+/**
+ * Project      : AMDA-NG
+ * Name         : parameter.js
+ * Description  : Parameter Business Object Definition
+ * @class amdaModel.Parameter
+ * @extends amdaModel.AmdaObject 
+ * 
+ * @author cdarmon
+ * @version $Id: Parameter.js 1435 2013-04-04 14:24:04Z elena $
+ ******************************************************************************
+ *    FT Id     :   Date   : Name - Description
+ ******************************************************************************
+ *	:           :15/12/2010: CDA – creation
+ *      :           :22/06/2011: elena - extends generic class AmdaObject
+ */
+ 
+Ext.define('amdaModel.Parameter', {
+	
+	extend: 'amdaModel.AmdaObject',
+	
+    fields : [
+	    {name: 'timestep', type: 'string'},
+	    {name: 'units', type: 'string'},
+	    {name: 'buildchain', type: 'string'},
+	    {name: 'description', type: 'string'},
+	    {name: 'ytitle', type: 'string'}
+	],
+    
+    /**
+     * get parameter values into  object to be sent to Server
+     * @return object
+     */
+//TODO utf8_encode() and Ext.urlEncode() ???
+    getJsonValues : function (hasId) {
+        var myValues  = new Object();       
+        if (hasId) {
+            myValues.id = this.get('id');
+        }
+        myValues.name = this.get('name');
+        myValues.buildchain = this.get('buildchain').replace(/\n/g," ");
+        myValues.timestep = this.get('timestep');
+        myValues.leaf = true;
+        if (this.get('ytitle').match(/[a-z,0-9]/gi) != null) {
+            myValues.ytitle = this.get('ytitle');
+        }
+        if (this.get('description').match(/[a-z,0-9]/gi) != null) {
+            myValues.description = this.get('description');
+        }
+        if (this.get('units').match(/[a-z,0-9]/gi) != null) {
+            myValues.units = this.get('units');
+        }
+        myValues.nodeType = amdaModel.DerivedParamNode.nodeType;
+        return myValues;
+    }
+  
+});
\ No newline at end of file
diff --git a/js/app/models/Plot.js b/js/app/models/Plot.js
new file mode 100644
index 0000000..31cde61
--- /dev/null
+++ b/js/app/models/Plot.js
@@ -0,0 +1,130 @@
+/**
+ * Project      : AMDA-NG
+ * Name         : Plot.js
+ * @class   amdaModel.Plot
+ * @extends amdaModel.PlotNodeObject
+ * @brief   Plot Request Business Object Definition 
+ * @author  Caroline DARMON
+ * @version $Id: Plot.js 2544 2014-10-03 10:21:56Z elena $
+ ******************************************************************************
+ *    FT Id     :   Date   : Name - Description
+ ******************************************************************************
+ *	:           :08/09/2011: CDA  - file creation
+ */
+ 
+ 		
+Ext.define('amdaModel.Plot', {
+    extend: 'amdaModel.AmdaTimeObject',
+    
+    fields : [
+	  {name: 'children'},
+	  {name: 'leaf', type: 'boolean', defaultValue: false},	 		 
+          {name: 'outputName', type: 'string'},
+	  {name: 'orientation', type: 'string', defaultValue: 'LANDSCAPE'},
+          {name: 'format', type: 'string', defaultValue: 'PNG'},
+          {name: 'title', type: 'string'},
+          {name: 'description', type: 'string'},
+          {name: 'charSize', type: 'float', defaultValue: 1.3},
+          {name: 'thickness', type: 'int', defaultValue: 1},
+	  {name: 'ppp', type: 'int', defaultValue: 3000},
+	  {name: 'forcedLayout', type: 'boolean', defaultValue: false}, 
+	  {name: 'forcedMulti', type: 'boolean', defaultValue: false},
+          {name: 'resultId', type: 'string'},
+	  {name: 'resultFolder', type: 'string'},
+	  {name: 'tabId', type: 'string', defaultValue: '1'},
+	  {name: 'xMin', type: 'string'},  
+	  {name: 'xMax', type: 'string'}
+	],
+
+	hasMany: {model: 'amdaModel.PlotPanel', name: 'children'},
+	 
+	propertiesToCopy : 'id,name,outputName,orientation,format,ppp,title,description,charSize,thickness,timesrc,startDate,stopDate,children',
+	
+	constructor: function(configPanel){
+        this.callParent(arguments);
+        this.set('leaf',false);
+	},
+		
+	getParentPanel : function(paramObject){
+        // for each panel
+        for(var i=0;i<this.object.plotPanels().getCount();i++) {
+            var panel = this.object.plotPanels().getAt(i);
+            // if there's at least one param
+            if (panel.plotParams()){
+                // for each param
+                for(var j=0;j<panel.plotParams().getCount();j++) {
+                    if (paramObject == panel.plotParams().getAt(j)){
+                        return panel;
+                    }
+                }
+            }
+        }
+    },
+	
+	getJsonValues : function(hasId){
+	    
+	var myValues  = new Object();       
+        if (hasId) {
+            myValues.id = this.get('id');
+        }
+        if (this.get('resultId')) {
+            myValues.resultId = this.get('resultId');
+        }
+        myValues.name = this.get('name');
+        
+     //   myValues.text = this.get('text');
+        myValues.tabId = this.get('tabId');
+        myValues.outputName = this.get('outputName');
+        myValues.orientation = this.get('orientation');
+        myValues.format = this.get('format');
+        myValues.title = this.get('title');
+        myValues.description = this.get('description');
+        myValues.charSize = this.get('charSize');
+        myValues.thickness = this.get('thickness');
+	myValues.ppp = this.get('ppp');
+        myValues.forcedLayout = this.get('forcedLayout');
+	myValues.forcedMulti = this.get('forcedMulti');
+	
+        var childrenArray = []; //PlotPanel.JsonValues!!!
+        if (this.childNodes && this.childNodes.length > 0){	
+            // use internal node attribute of NodeInterface to get children             
+            Ext.Array.each(this.childNodes, function(panelItem, panelIndex, allPanelItem) {
+                childrenArray.push(panelItem.getJsonValues());		 
+           });		   
+       } else {	  
+            // else if a json config has been past to the Plot constructor
+            childrenArray = this.get('children');
+        }
+        myValues.children = childrenArray;
+        myValues.timesrc =  this.get('timesrc');       
+        // if there's at least one timeTable name into 'timeTables' collection
+        if (this.get('timesrc') == amdaModel.AmdaTimeObject.inputTimeSrc[0] && this.get('timeTables') && this.get('timeTables').length){
+            // get complete timeTables collection
+            var timeTables = this.get('timeTables');	    
+            // init an empty array for timeTables
+            myValues.timeTables=[];
+            // for each interval record
+            Ext.Array.each(timeTables, function(item, index, all){
+	       if (!item.$className) {
+		    myValues.timeTables[index] = {timeTableName : item.timeTableName, id : item.id};
+	       }
+                // get Json simplified value 
+               else {
+                myValues.timeTables[index] = item.getJsonValues();
+	       }
+            });            
+        } else {
+            myValues.startDate = this.get('startDate');	
+            myValues.stopDate = this.get('stopDate'); 
+            myValues.durationDay = this.get('durationDay');
+            myValues.durationHour = this.get('durationHour');
+            myValues.durationMin = this.get('durationMin');
+            myValues.durationSec = this.get('durationSec');
+        }
+        
+        myValues.leaf = true;
+        myValues.nodeType = amdaModel.PlotNode.nodeType;
+        return myValues;  
+	}
+
+});
\ No newline at end of file
diff --git a/js/app/models/PlotNode.js b/js/app/models/PlotNode.js
new file mode 100644
index 0000000..b0229ef
--- /dev/null
+++ b/js/app/models/PlotNode.js
@@ -0,0 +1,127 @@
+/** 
+ * Project  : AMDA-NG4
+ * Name     : PlotNode.js
+ * @class   amdaModel.PlotNode
+ * @extends amdaModel.ExecutableNode
+ * @brief   Basic Model of Node corresponding to a plot request
+ * @author  Caroline DARMON
+ * @version $Id: $
+ * @todo
+ *******************************************************************************
+ *    FT Id     :   Date   : Name - Description
+ *******************************************************************************
+ *  :           :08/09/2011: CDA  - file creation
+ */
+
+Ext.define('amdaModel.PlotNode', {
+
+    extend: 'amdaModel.ExecutableNode',
+  
+    statics: {
+        nodeType: 'request' 
+ //       objectName: 'Plot Request',
+    },
+
+    constructor : function(config){
+
+        this.callParent(arguments);
+        this.set('moduleId',myDesktopApp.dynamicModules.plot.id);
+        this.set('objectDataModel',amdaModel.Plot.$className);
+        this.set('ownerTreeId',amdaUI.ExplorerUI.OPE_TAB.TREE_ID);
+        this.set('nodeType',amdaModel.PlotNode.nodeType);
+    },
+
+    allMenuItems : function() {
+        var menuItems =
+         [{
+             fnId : 'root-createDir',
+             text : 'Create Folder'
+         }, {
+             fnId : 'dire-createDir',
+             text : 'Create Folder'
+         }, {
+             fnId : 'dire-renameNode',
+             text : 'Rename Folder'
+         }, {
+             fnId : 'dire-deleteNode',
+             text : 'Delete Folder'
+         }, {
+            fnId : 'leaf-editPlot',
+            text : 'Plot By Request'
+         }, {
+            fnId : 'leaf-editDownload',
+            text : 'Download By Request'
+         }, {
+             fnId : 'leaf-renameNode',
+             text : 'Rename Request'
+         }, {
+             fnId : 'leaf-deleteNode',
+             text : 'Delete Request'
+         }];
+
+        return menuItems;
+    }, 
+    
+    allMenuMultiItems : function() {
+        var menuMulti = [
+            {
+                fnId : 'mult-deleteMulti',
+                text : 'Delete selected Requests'
+            }
+        ];
+        return menuMulti;
+    },
+    
+    getAllContextMenuItems: function(){
+        return this.allMenuItems();
+    },
+    
+    getMultiContextMenuItems: function(){
+        return this.allMenuMultiItems();
+    },
+    
+    onMenuItemClick : function(menu,item,event) {
+        // fnId parsing :
+        var fnId = Ext.util.Format.substr(item.fnId, 5, item.fnId.length);
+
+        switch (fnId) {
+
+        case 'createDir':
+            this.createDir(); 
+            break;
+
+        case 'deleteNode':
+            this.deleteNode(); 
+            break;
+
+        case 'renameNode':
+            this.renameNode(); 
+            break;
+
+        case 'editPlot':     
+            this.editLeaf(this); 
+            break;
+        
+        case 'editDownload':
+	    amdaModel.DownloadNode.set('realLinkedNode',this);
+	    
+	    if (!this.get('object')){
+			AmdaAction.getObject(this.get('id'), this.get('nodeType'), amdaModel.DownloadNode.getObjectCallback, this);
+		    }
+		    else {	      
+		      var downObject = amdaModel.DownloadNode.decodeObject();
+		      amdaModel.DownloadNode.set('object',Ext.create('amdaModel.Download',downObject));
+		      amdaModel.DownloadNode.editInModule();
+		    }
+		    break;
+	    
+        case 'deleteMulti':
+            this.deleteMulti();
+            break;
+            
+        default:
+            break;
+        } // switch end
+    }
+   
+});
diff --git a/js/app/models/PlotObject.js b/js/app/models/PlotObject.js
new file mode 100644
index 0000000..075fdf8
--- /dev/null
+++ b/js/app/models/PlotObject.js
@@ -0,0 +1,31 @@
+/**
+ * Project      : AMDA-NG
+ * Name         : PlotObject.js
+ * @class   amdaModel.PlotObject
+ * @extends amdaModel.AmdaObject
+ * @brief   Plot Request Component Abstract Business Object Definition 
+ * @author  Caroline DARMON
+ * @version $Id: PlotObject.js 961 2012-06-28 14:58:24Z elena $
+ ******************************************************************************
+ *    FT Id     :   Date   : Name - Description
+ ******************************************************************************
+ *	:           :08/09/2011: CDA  - file creation
+ */
+ 
+ 		
+Ext.define('amdaModel.PlotObject', {
+	extend: 'amdaModel.AmdaObject', 	
+    
+	fields: [	
+        { name: 'leaf', type: 'boolean'},    
+        { name:'text', convert: function(value, rec) {              
+            return rec.get('name');
+            }
+        },
+        //TODO:[CDA]test
+        {name: 'rowCls', type: 'string'}
+		 
+    ]//,
+    
+  //  hasMany: {model: 'amdaModel.PlotPanel', name: 'children'}
+});
\ No newline at end of file
diff --git a/js/app/models/PlotPanel.js b/js/app/models/PlotPanel.js
new file mode 100644
index 0000000..f808ca2
--- /dev/null
+++ b/js/app/models/PlotPanel.js
@@ -0,0 +1,110 @@
+/**
+ * Project      : AMDA-NG
+ * Name         : PlotPanel.js
+ * @class   amdaModel.PlotPanel
+ * @extends amdaModel.PlotNodeObject
+ * @brief   PlotPanel Business Object Definition 
+ * @author  Caroline DARMON
+ * @version $Id: PlotPanel.js 1499 2013-05-22 13:50:03Z elena $ 
+ ******************************************************************************
+ *    FT Id     :   Date   : Name - Description
+ ******************************************************************************
+ *	:           :08/09/2011: CDA  - file creation
+ */
+
+Ext.define('amdaModel.PlotPanel', {
+	
+    extend: 'amdaModel.PlotObject',
+	
+    statics: {
+        rowClass : 'plotPanelBgColor',
+        ADD_PARAM_MODE : ['simple','function'],
+        PLOT_TYPES : [
+            {display:"Time", value:"TIME"},
+            {display:"Scatter", value:"SCATTER"}
+        ]                      
+     },
+    
+    fields : [
+          { name: 'children'},
+          { name: 'width',      type: 'float',    defaultValue: 1 },
+          { name: 'height',     type: 'float',    defaultValue: 0.4 },
+          { name: 'xTitle',     type: 'string' }, //TODO: TBD
+          { name: 'xRangeMin',  type: 'float', defaultValue: 0 },
+          { name: 'xRangeMax',  type: 'float', defaultValue: 0 },
+          { name: 'y1Title',    type: 'string', defaultValue: '' },
+          { name: 'y1RangeMin', type: 'float', defaultValue: 0 },
+          { name: 'y1RangeMax', type: 'float', defaultValue: 0 },
+          { name: 'y2Title',    type: 'string', defaultValue: '' },
+          { name: 'y2RangeMin', type: 'float', defaultValue: 0 },
+          { name: 'y2RangeMax', type: 'float', defaultValue: 0 },         
+          { name: 'plotType',   type: 'string', defaultValue: 'TIME'},  
+          { name: 'panelArgs', type: 'string', defaultValue: 'select...'},
+	  { name : 'checked', defaultValue: null }
+	 ],
+	 
+	 constructor: function(configPanel){
+	     this.callParent(arguments);
+//TODO seems to be not needed!!!	    	     
+	    //  if (configPanel && configPanel.scatterParam) {
+	   //	  this.set('scatterParam',Ext.create('amdaModel.AmdaObject',configPanel.scatterParam));
+	  //    }		     
+	      // defaultValue plotType 
+	     //if (!configPanel || !configPanel.plotType) {
+		//  this.set('plotType',amdaModel.PlotPanel.PLOT_TYPES[0].value);
+	    //  }
+	      this.set('leaf',false);
+	      this.set('rowCls', this.getRowClass());
+	      this.set('id', Ext.id());	  	 
+	      this.set('expandable', true); 	     
+	     // set this instance as unmodified	   
+	     this.commit();
+	 },
+
+	 belongsTo: 'amdaModel.Plot', 
+	 hasMany: {model: 'amdaModel.PlotParam', name: 'children'},
+	 
+	 getJsonValues : function(){
+	     	     
+         var myValues  = new Object();
+         
+         myValues.name = this.get('name');
+         
+         myValues.leaf = false;
+         myValues.text = this.get('text');         
+         myValues.width = this.get('width');
+         myValues.height = this.get('height');
+         myValues.xTitle = this.get('xTitle');
+         myValues.xRangeMin = this.get('xRangeMin');
+         myValues.xRangeMax = this.get('xRangeMax');
+         myValues.y1Title = this.get('y1Title');
+         myValues.y1RangeMin = this.get('y1RangeMin');
+         myValues.y1RangeMax = this.get('y1RangeMax');
+         myValues.y2Title = this.get('y2Title');
+         myValues.y2RangeMin = this.get('y2RangeMin');
+         myValues.y2RangeMax = this.get('y2RangeMax');
+         myValues.plotType = this.get('plotType');
+         myValues.scatterParam = this.get('scatterParam');
+
+	var childrenArray = []; //PlotParam.JsonValues!!!
+		    
+	if (this.childNodes){
+	    Ext.Array.each(this.childNodes, function(paramItem, paramIndex, allParamItem) {
+	    childrenArray.push(paramItem.getJsonValues());
+	});
+	} else {
+	    // else if a json config has been past to this constructor
+	    childrenArray = this.get('children');
+	}
+
+	     myValues.children = childrenArray;
+	     
+	     return myValues;
+	     
+	 },
+	 
+	 getRowClass: function(){
+         return amdaModel.PlotPanel.rowClass;
+     }
+	 
+});
diff --git a/js/app/models/PlotParam.js b/js/app/models/PlotParam.js
new file mode 100644
index 0000000..97022e8
--- /dev/null
+++ b/js/app/models/PlotParam.js
@@ -0,0 +1,68 @@
+/**
+ * Project      : AMDA-NG
+ * Name         : PlotParam.js
+ * @class   amdaModel.PlotParam
+ * @extends amdaModel.PlotObject
+ * @brief   PlotParam Business Object Definition 
+ * @author  Caroline DARMON
+ * @version $Id: PlotParam.js 2490 2014-08-27 16:08:06Z elena $ 
+ ******************************************************************************
+ *    FT Id     :   Date   : Name - Description
+ ******************************************************************************
+ *	:           :08/09/2011: CDA  - file creation
+ */
+
+Ext.define('amdaModel.PlotParam', {	
+    extend: 'amdaModel.PlotObject',
+    
+    statics: {
+        rowClass : 'plotParamBgColor',
+        ADD_PARAM_MODE : ['simple','function']    
+    },
+    
+    fields : [  { name: 'paramArgs', type: 'string', defaultValue: 'select...' },
+	 	{ name: 'isScatter', type: 'boolean',  defaultValue: true },
+		{ name: 'downloadParamArgs', defaultValue: null },
+		{ name: 'needsArgs', type: 'boolean',  defaultValue: false },
+                { name: 'plotOnly', type: 'boolean',  defaultValue: false },	
+		{ name: 'isSpectra', type: 'boolean',  defaultValue: false },
+		{ name: 'yaxe', type: 'boolean',  defaultValue: false },		
+		{ name: 'checked', defaultValue: null }
+ 	    ],
+	   
+    belongsTo: 'amdaModel.PlotPanel', 
+	 
+    constructor: function(configParam){
+	    this.callParent(arguments);
+
+	    this.set('id',Ext.id());
+	    this.set('leaf',true);
+	    this.set('rowCls', this.getRowClass());	 
+	    // set this instance as unmodified
+	    this.commit();
+         
+     },
+
+     getJsonValues: function(){	     
+	    var myValues  = new Object();
+	     
+	    myValues.name = this.get('name');
+	    myValues.leaf = true;
+	    myValues.text = this.get('text');
+	    myValues.paramArgs = this.get('paramArgs');
+	    myValues.isScatter = this.get('isScatter');
+	    myValues.needsArgs = this.get('needsArgs');
+	    myValues.plotOnly = this.get('plotOnly');
+            
+	    if (this.get('downloadParamArgs')) {
+	      myValues.downloadParamArgs = this.get('downloadParamArgs');
+	    }
+            myValues.yaxe = this.get('yaxe');
+         return myValues;
+      },
+	 
+      getRowClass: function(){
+	  return amdaModel.PlotParam.rowClass;
+      }
+	 
+});
diff --git a/js/app/models/RemoteParamNode.js b/js/app/models/RemoteParamNode.js
new file mode 100644
index 0000000..4a77bfe
--- /dev/null
+++ b/js/app/models/RemoteParamNode.js
@@ -0,0 +1,154 @@
+/** 
+ * Project  : AMDA-NG4
+ * Name     : RemoteParamNode.js
+ * @class   amdaModel.RemoteParamNode
+ * @extends amdaModel.LocalParamNode
+ * @brief    
+ * @author  
+ * @version $Id: RemoteParamNode.js 2544 2014-10-03 10:21:56Z elena $
+ */
+
+Ext.define('amdaModel.RemoteParamNode', {
+
+    extend: 'amdaModel.LocalParamNode',
+    
+    fields: [
+            {name: 'isRemoteDataSet', type:'boolean', persist: false, defaultValue: false},
+            {name: 'isSimulation', type:'boolean', defaultValue: false}          
+            ],
+	   
+    constructor : function(config){	   
+        this.callParent(arguments);
+        this.set('nodeType',amdaModel.RemoteParamNode.nodeType);
+        //TODO only for INTEROPER TREE	
+	if (!this.get('leaf')) this.set('allowDrag', false);
+	if (this.get('isParameter')) this.set('allowDrag',true);
+	if (this.get('leaf') && this.get('isSpectra')) this.set('iconCls', 'icon-spectra');  
+        if (this.get('disable')) {
+            this.set('cls', 'icon-disabled');
+            this.set('allowDrag', false);
+        }
+    },
+    
+    statics:{
+        nodeType: 'remoteParam'
+    },
+           
+    allMenuItems : function() {
+        var menuItems =
+        [{
+            fnId : 'dire-addData',
+            text : 'Add Data'
+        },{
+            fnId : 'root-addData',
+            text : 'Add Data'
+        },{
+            fnId : 'dire-deleteNode',
+            text : 'Delete Data'
+        },{
+            fnId : 'root-collapseAll',
+            text : 'Close All'
+        }, {
+            fnId : 'dire-collapseAll',
+            text : 'Close All'
+        }, {
+            fnId : 'para-plotParam',
+            text : 'Plot Parameter',
+            hidden : true
+        }, {
+            fnId : 'para-downParam',
+            text : 'Download Parameter',
+            hidden : true
+        },{
+            fnId : 'leaf-createAlias',
+            text : 'Create/Edit Alias'
+        }, {    
+            fnId : 'leaf-createDerivedParam',
+            text : 'Create Derived Parameter'
+        },{
+            fnId : 'leaf-deleteNode',
+            text : 'Delete Parameter'
+        },{
+            fnId : 'leaf-plotParam',
+            text : 'Plot Parameter',
+            hidden : true
+        }, {
+            fnId : 'leaf-downParam',
+            text : 'Download Parameter',
+            hidden : true
+        }];
+
+        return menuItems;
+    } ,
+    
+    onMenuItemClick : function(menu,item,event) {
+      
+        if (item) {
+            switch (item.fnId) {
+
+            case 'root-collapseAll':
+            case 'dire-collapseAll':
+                if(this && !this.isLeaf()) {
+                    this.collapse(true);
+                }
+                break;
+            case 'leaf-createDerivedParam':
+                this.createLeaf(this); 
+                break;
+            case 'leaf-createAlias':	   
+                this.createAlias(this); 
+                break;
+            case  'leaf-deleteNode':
+            case 'dire-deleteNode' :
+                this.deleteData();
+                break;
+            case  'dire-addData':
+            case  'root-addData':    
+                this.addData();           
+                break;
+            case 'leaf-plotParam':
+            case 'para-plotParam':                    
+                    this.createPlot(this);                
+                break;
+            case 'leaf-downParam':
+            case 'para-downParam':                    
+                    this.createDownload(this);                
+                break;    
+            default:	 
+                break;
+            }
+        }
+    },
+    
+     deleteData : function() {
+      //  var parent = this.parentNode;
+	AmdaAction.deleteFromTree({nodeType: this.get('nodeType'), id : this.get('id')}, function(res,e){	      
+	            //TODO  if () not error ??		 
+		  this.remove();
+		  this.destroy();				  
+	      },this);		
+     },
+    
+     addData : function() {
+         
+        if (this.get('disable')) return;
+           
+        var me = this;
+        myDesktopApp.getLoadedModule(myDesktopApp.dynamicModules.interop.id, true, function (module) {
+        	module.createWindow(me.getBaseId());    
+        });
+	}, 
+     
+// Depth of Base Root Node = 3 : root, Parameters, Remote Parameters, BaseName    
+    getBaseId : function() {
+      
+	if (this.getDepth() < 3) return 'root';
+	    
+	var node = this;
+	while (node.getDepth() > 3) {
+	  node = node.parentNode;
+	}
+	return node.get('id');
+    }
+    
+});
diff --git a/js/app/models/RemoteSimuParamNode.js b/js/app/models/RemoteSimuParamNode.js
new file mode 100644
index 0000000..8fe616d
--- /dev/null
+++ b/js/app/models/RemoteSimuParamNode.js
@@ -0,0 +1,175 @@
+/** 
+ * Project  : AMDA-NG4
+ * Name     : RemoteSumuParamNode.js
+ * @class   amdaModel.RemotSimuParamNode
+ * @extends amdaModel.LocalParamNode
+ * @brief    
+ * @author  elena
+ * @version $Id: RemoteSimuParamNode.js 2620 2014-11-05 09:00:34Z elena $
+ */
+
+Ext.define('amdaModel.RemoteSimuParamNode', {
+
+    extend: 'amdaModel.LocalParamNode',
+    
+    requires: 'amdaUI.InteropImpexUI',
+                     
+    fields: [
+            {name: 'isRemoteDataSet', type:'boolean', persist: false, defaultValue: true},
+            {name: 'isSimulation', type:'boolean', defaultValue: true}, 
+            {name: 'isAddable', type:'boolean', defaultValue: false},
+            {name: 'isDeletable', type:'boolean', defaultValue: false},
+	    {name: 'rank', type: 'integer', persist: false, defaultValue: null}
+            ],
+	   
+    constructor : function(config){	   
+        this.callParent(arguments);
+        this.set('nodeType',amdaModel.RemoteSimuParamNode.nodeType);
+        if (this.get('isParameter')) this.set('needsArgs',this.get('needsArgs'));
+	if (this.get('leaf') && this.get('isSpectra')) this.set('iconCls', 'icon-spectra');  
+        if (this.get('disable')) {
+            this.set('cls', 'icon-disabled');
+            this.set('allowDrag', false);
+        }
+        
+        if (this.get('rank')) { 
+            var rank = this.get('rank');
+            if (rank == 1) this.set('iconCls', 'icon-mercury');
+            if (rank == 2) this.set('iconCls', 'icon-venus');
+            if (rank == 5) this.set('iconCls', 'icon-earth'); 
+            if (rank == 6) this.set('iconCls', 'icon-earth');
+            if (rank == 7) this.set('iconCls', 'icon-mars');
+            if (rank == 8) this.set('iconCls', 'icon-jupiter');  
+            if (rank == 9) this.set('iconCls', 'icon-saturn');
+            if (rank == 93) this.set('iconCls', 'icon-comet');         
+            if (rank == 3) this.set('iconCls', 'icon-sw');
+            if (rank == 4) this.set('iconCls', 'icon-sw');
+            if (rank >= 99) this.set('iconCls', 'icon-solarsystem');
+        }
+    },
+    
+    statics:{
+        nodeType: 'remoteSimuParam'
+    },
+           
+    allMenuItems : function() {
+        var menuItems =
+         [ {
+            fnId : 'root-collapseAll',
+            text : 'Close All'
+	  }, {
+            fnId : 'dire-collapseAll',
+            text : 'Close All'
+	  },{
+	    fnId : 'leaf-createAlias',
+	    text : 'Create/Edit Alias'
+	  }, {    
+            fnId : 'leaf-createDerivedParam',
+            text : 'Create Derived Parameter'
+	  } 
+        ];
+
+        return menuItems;
+    },
+     
+   getAllContextMenuItems: function()
+   {
+       // TODO use 'isAddable' attribute
+      if (this.get('isAddable')) 
+                return  Ext.Array.push(this.allMenuItems(),
+                                            { fnId : 'dire-addData',
+                                                text : 'Add Run'});
+      else if (this.get('isDeletable'))                                  
+                return  Ext.Array.push(this.allMenuItems(),
+                                            { fnId : 'dire-deleteNode',
+                                                text : 'Delete Run'});
+                                           
+    return this.allMenuItems();
+         
+    },   
+    
+    onMenuItemClick : function(menu, item, event) {
+      
+	if (item) {
+	  switch (item.fnId) {
+
+	  case 'root-collapseAll':
+	  case 'dire-collapseAll':
+	      if(this && !this.isLeaf()) {
+		  this.collapse(true);
+	      }
+	      break;
+	  case 'leaf-createDerivedParam':
+	      this.createLeaf(this); 
+	      break;
+	  case 'leaf-createAlias':	   
+	      this.createAlias(this); 
+	      break;
+	  case 'dire-deleteNode' :
+		this.deleteData();
+	      break;
+	  case  'dire-addData':
+	  case  'root-addData':    
+		this.addData();           
+	      break;
+	  default:	 
+	      break;
+	  }
+	}
+    },
+    
+     deleteData : function() {
+         var parent = this.parentNode;
+	   AmdaAction.deleteFromTree({nodeType: this.get('nodeType'), id : this.get('id')}, function(res,e){	      
+	            //TODO  if () not error ??		 
+	 	  this.remove();
+	 	  this.destroy();				  
+	     },this);		
+     },
+    
+     addData : function() {
+         
+        if (this.get('disable')) return;
+         
+        var win = myDesktopApp.desktop.getWindow('impex-win');     
+            if(!win)
+            {
+                var win = myDesktopApp.desktop.createWindow(
+                {
+                    border: false,
+                    id : 'impex-win',
+                    title : 'Find the most relevant run(s)',
+                    width : 600,
+                    height : 600,
+                    layout : 'border',
+		    //autoScroll: true,
+		    overflowY: 'scroll',
+                    maximizable : false,
+                    items : 
+                    [{
+                        xtype : 'interop_impex',
+                        region : 'center',
+                        margins : 
+                        {
+                            top: 0,
+                            right: 5,
+                            bottom: 5,
+                            left: 5                            
+                        }  
+                    }],
+                    listeners: {
+                        scope : this,
+                        show : function( ) {              
+                            win.items.getAt(0).setLinkedNode(this);                              
+                        }
+                    }
+                });     
+            }
+            else 
+            {
+   
+            }     
+            win.show();              
+        }    
+     
+});
diff --git a/js/app/models/Search.js b/js/app/models/Search.js
new file mode 100644
index 0000000..b2be195
--- /dev/null
+++ b/js/app/models/Search.js
@@ -0,0 +1,76 @@
+/**
+ * Project      : AMDA-NG
+ * Name         : Search.js
+ * Description  : Condition Business Object Definition
+ * @class amdaModel.Search
+ * @extends amdaModel.AmdaObject 
+ * 
+ * @author myriam
+ * @version $Id: Search.js 2068 2014-02-06 11:27:38Z elena $
+ ******************************************************************************
+ *    FT Id     :   Date   : Name - Description
+ ******************************************************************************
+ *	:           :23/06/2011: myriam – creation 
+ *	:           :04/07/2011: elena – event Execute
+ *	:           :06/07/2011: elena – date fields 
+ */
+ 
+ 		
+Ext.define('amdaModel.Search', {
+		extend: 'amdaModel.AmdaTimeObject',
+    
+    fields : [
+//	      {name: 'name', type: 'string', defaultValue: 'Search'},
+	      {name: 'sampling', type: 'int', defaultValue: '600'},
+	      {name: 'gap', type: 'int', defaultValue: '5'},
+	      {name: 'description', type: 'string'},
+	      {name: 'expression', type: 'string'}	      
+	],
+	
+	propertiesToCopy : 'id,name,sampling,gap,description,expression',
+
+	getJsonValues : function(hasId){
+
+        var myValues  = new Object();       
+        if (hasId) {
+            myValues.id = this.get('id');
+        }
+        myValues.name = this.get('name');
+        myValues.sampling = this.get('sampling');
+        myValues.gap = this.get('gap');
+        myValues.description = this.get('description');
+        myValues.expression = this.get('expression').replace(/\n/g," ");;
+        myValues.timesrc =  this.get('timesrc');                         
+        // if there's at least one timeTable name into 'timeTables' collection
+        if (this.get('timesrc') == amdaModel.AmdaTimeObject.inputTimeSrc[0] && this.get('timeTables') && this.get('timeTables').length){
+//          myValues.timeTables = this.get('timeTables').items;
+            // get complete timeTables collection
+            var timeTables = this.get('timeTables');
+            // init an empty array for timeTables
+            myValues.timeTables=[];
+            // for each interval record
+            Ext.Array.each(timeTables, function(item, index, all){
+                // get Json simplified value
+                if (!item.$className) {
+		    myValues.timeTables[index] = {timeTableName : item.timeTableName, id : item.id};
+	       }
+                // get Json simplified value 
+               else {
+                myValues.timeTables[index] = item.getJsonValues();
+	       }                
+            });            
+        } else {
+            myValues.startDate = this.get('startDate');
+            myValues.stopDate = this.get('stopDate');
+            myValues.durationDay = this.get('durationDay');
+            myValues.durationHour = this.get('durationHour');
+            myValues.durationMin = this.get('durationMin');
+            myValues.durationSec = this.get('durationSec');
+        }
+        
+        myValues.leaf = true;
+        myValues.nodeType = amdaModel.SearchNode.nodeType;
+        return myValues;
+	}
+      
+});
\ No newline at end of file
diff --git a/js/app/models/SearchNode.js b/js/app/models/SearchNode.js
new file mode 100644
index 0000000..67fc049
--- /dev/null
+++ b/js/app/models/SearchNode.js
@@ -0,0 +1,111 @@
+/** 
+ * Project  : AMDA-NG4
+ * Name     : SearchNode.js
+ * @class   amdaModel.SearchNode
+ * @extends amdaModel.InteractiveNode
+ * @brief   Basic Model of Node corresponding to a amda condition
+ * @author  
+ * @version $Id: SearchNode.js 1739 2013-09-09 14:47:10Z myriam $
+ * @todo
+ *******************************************************************************
+ *    FT Id     :   Date   : Name - Description
+ *******************************************************************************
+ *  :           :23/06/2011: myriam - Migration extjs4
+ */
+
+Ext.define('amdaModel.SearchNode', {
+
+    extend: 'amdaModel.ExecutableNode',
+   
+    statics: {
+        nodeType: 'condition'
+    },
+
+    constructor : function(config){
+
+        this.callParent(arguments);
+        this.set('moduleId',myDesktopApp.dynamicModules.search.id);
+        this.set('objectDataModel',amdaModel.Search.$className);
+        this.set('ownerTreeId',amdaUI.ExplorerUI.OPE_TAB.TREE_ID);
+        this.set('nodeType',amdaModel.SearchNode.nodeType);
+        this.set('resultModel',amdaModel.TimeTable.$className);
+        
+    },
+    
+    allMenuItems : function() {
+        var menuItems =
+         [{
+             fnId : 'root-createDir',
+             text : 'Create Folder'
+         }, {
+             fnId : 'dire-createDir',
+             text : 'Create Folder'
+         }, {
+             fnId : 'dire-renameNode',
+             text : 'Rename Folder'
+         }, {
+             fnId : 'dire-deleteNode',
+             text : 'Delete Folder'
+         }, {
+            fnId : 'leaf-editNode',
+            text : 'Data Mining By Request'
+         }, {
+             fnId : 'leaf-renameNode',
+             text : 'Rename Request'
+         }, {
+             fnId : 'leaf-deleteNode',
+             text : 'Delete Request'
+         }];
+
+        return menuItems;
+    }, 
+    
+    allMenuMultiItems : function() {
+        var menuMulti = [
+            {
+                fnId : 'mult-deleteMulti',
+                text : 'Delete selected Requests'
+            }
+        ];
+        return menuMulti;
+    },    
+    
+   getAllContextMenuItems: function(){
+       return this.allMenuItems();
+    },
+    
+    getMultiContextMenuItems: function(){
+        return this.allMenuMultiItems();
+    },
+        
+    onMenuItemClick : function(menu,item,event) {
+        // fnId parsing :
+        var fnId = Ext.util.Format.substr(item.fnId, 5, item.fnId.length);
+
+        switch (fnId) {
+
+        case 'createDir':
+            this.createDir(); 
+            break;
+            
+        case 'deleteNode':
+            this.deleteNode(); 
+            break;
+
+        case 'renameNode':
+            this.renameNode(); 
+            break;
+
+        case 'editNode':        	
+            this.editLeaf(); 
+            break;
+    	    
+        case 'deleteMulti':
+            this.deleteMulti();
+     
+        default:
+            break;
+        } // switch end
+    }
+   
+});
diff --git a/js/app/models/TimeTable.js b/js/app/models/TimeTable.js
new file mode 100644
index 0000000..e073ba3
--- /dev/null
+++ b/js/app/models/TimeTable.js
@@ -0,0 +1,182 @@
+/**
+ * Project      : AMDA-NG
+ * Name         : timeTable.js 
+ * Description  : TimeTable Business Object Definition
+ * @class amdaModel.TimeTable
+ * @extends amdaModel.AmdaObject 
+ * 
+ * @author cdarmon
+ * @version $Id: TimeTable.js 1907 2013-11-25 15:59:42Z myriam $
+ ******************************************************************************
+ *    FT Id     :   Date   : Name - Description
+ ******************************************************************************
+ *	:           :24/03/2011: CDA – creation
+ *      :           :22/06/2011: elena - extends generic class AmdaObject
+ */
+
+
+Ext.define('amdaModel.Interval', {
+    extend: 'amdaModel.AmdaObject', 
+    fields: [
+        {
+            name: 'id',
+            convert: function(value, rec){
+                // generate id only if start and stop fields exists
+                return rec.get('start')&rec.get('stop')?Ext.id():null;
+            },
+            persist: false
+        },
+        { name: 'start', type : 'date', defaultValue : new Date(),
+	  convert: function(value,rec) {
+		   if (!Ext.isDate(value)){
+		    var valueString = new String(value);
+		    var date = new Date(valueString.replace(/\-/g,'\/').replace(/[T|Z]/g,' '));
+		      return date;
+		   }
+		   return value;
+		   }
+	},
+        { name: 'stop', type : 'date', defaultValue : new Date(),
+	  convert: function(value,rec) {
+		   if (!Ext.isDate(value)){
+		    var valueString = new String(value);
+		    var date = new Date(valueString.replace(/\-/g,'\/').replace(/[T|Z]/g,' '));
+		      return date;
+		   }
+		   return value;
+		   }
+	},
+        {
+            name: 'durationHour',
+            type: 'float',
+            convert: function(value, rec){
+                if (rec.get('stop') && rec.get('start') && (rec.get('stop')-rec.get('start'))>=0) {
+                    return (rec.get('stop') - rec.get('start'))/3600000.0;
+                }
+            },
+            persist: false
+        },
+        {
+            name: 'durationMin',
+            type: 'float',
+            convert: function(value, rec){
+                if (rec.get('stop') && rec.get('start') && (rec.get('stop')-rec.get('start'))>=0) {
+                    return (rec.get('stop') - rec.get('start'))/60000.0;
+                }
+            },
+            persist: false
+        },
+        {
+            name: 'durationSec',
+            type: 'float',
+            convert: function(value, rec){
+                if (rec.get('stop') && rec.get('start') && (rec.get('stop')-rec.get('start'))>=0) {
+                    return (rec.get('stop') - rec.get('start'))/1000.0;
+                }
+            },
+            persist: false
+        },
+        { name: 'cacheId', type : 'int'},
+        { name: 'isNew', type : 'boolean', defaultValue: false},
+        { name: 'isModified', type : 'boolean', defaultValue: false}
+    ],
+    
+    getJsonValues : function () {
+        var values  = new Object();
+        values.start = this.get('start');
+        values.stop = this.get('stop');
+        return values;
+    },
+    
+    proxy: {
+        type: 'direct',
+        api :
+        {
+              read   :  AmdaAction.readTTCacheIntervals
+        },
+        extraParams : {'typeTT' : ''},
+        reader:
+        {
+          type: 'json',
+          root: 'intervals',
+          totalProperty : 'totalCount'
+        }
+    }
+    
+ /* 
+    validations: [
+        {type: 'presence',  field: 'age'},
+        {type: 'length',    field: 'name',     min: 2},
+        {type: 'inclusion', field: 'gender',   list: ['Male', 'Female']},
+        {type: 'exclusion', field: 'username', list: ['Admin', 'Operator']},
+        {type: 'format',    field: 'username', matcher: /([a-z]+)[0-9]{2,3}/}
+    ],
+*/
+    
+});
+
+
+Ext.define('amdaModel.TimeTable', {
+	
+    extend: 'amdaModel.AmdaObject',
+	
+    fields : [
+	    {name: 'fromPlugin', type: 'boolean', defaultValue: false},
+            {name: 'created', type: 'date'},
+            {name: 'description', type: 'string'},
+            {name: 'history', type: 'string'},            
+            {name: 'nbIntervals', type: 'int'},
+            {name: 'objName', type: 'string', defaultValue: ""},
+            {name: 'objFormat', type: 'string', defaultValue: ""},
+	    {name: 'folderId', type: 'string', defaultValue: ""},
+            {name: 'cacheToken', type: 'string', defaultValue: ""}
+	], 
+	
+	/*commit: function(){
+	    this.callParent(arguments);
+	    
+	    // fix the modifications for its intervals
+	    Ext.Array.each(this.get('intervals'), function(item, index, all) {	
+//TODO check if JSON object should be processed	      
+	       if (item.$className) {  
+	                   item.commit();
+	       }	   
+        });
+	    
+	},*/
+	
+//	hasMany: {model: 'amdaModel.Interval', name: 'intervals'},
+    
+    /**
+     * get TimeTable values to sent to Server
+     * @return object
+     */
+	//TODO utf8_encode() and Ext.urlEncode() ???
+    getJsonValues : function (hasId) {
+    	var values  = new Object();	    
+    	if (hasId) {
+    		values.id = this.get('id');
+    	}
+    	values.name = this.get('name');
+    	values.created = this.get('created');
+    	if (this.get('description').match(/[a-z,0-9]/gi) != null) {
+    		values.description = this.get('description');
+    	}
+    	if (this.get('history').match(/[a-z,0-9]/gi) != null) {
+    		values.history = this.get('history');
+    	}
+    	values.objName = this.get('objName');
+    	values.objFormat = this.get('objFormat');
+        values.folderId = this.get('folderId');
+    	values.nbIntervals = this.get('nbIntervals');
+    	values.cacheToken = this.get('cacheToken');
+    	
+    	values.leaf = true;
+    	values.nodeType = amdaModel.TimeTableNode.nodeType;
+    	return values;
+    }
+
+});
+
+
+    
diff --git a/js/app/models/TimeTableNode.js b/js/app/models/TimeTableNode.js
new file mode 100644
index 0000000..974a3e9
--- /dev/null
+++ b/js/app/models/TimeTableNode.js
@@ -0,0 +1,175 @@
+/** 
+ * Project  : AMDA-NG4
+ * Name     : TimeTableNode.js
+ * @class   amdaModel.TimeTableNode
+ * @extends amdaModel.InteractiveNode
+ * @brief   Basic Model of Node corresponding to a amda Time Table
+ * @author  
+ * @version $Id: TimeTableNode.js 1904 2013-11-25 12:42:02Z elena $
+ * @todo
+ *******************************************************************************
+ *    FT Id     :   Date   : Name - Description
+ *******************************************************************************
+ *  :           :08/06/2011: CDA - Migration extjs4
+ *  :           :09/06/2011: elena - all generic methods are now of InteractiveNode class
+ */
+
+Ext.define('amdaModel.TimeTableNode', {
+
+    extend: 'amdaModel.InteractiveNode',
+    
+    statics: {
+        nodeType: 'timeTable',
+        objectName: 'Time Table'
+    },
+
+    constructor : function(config){	
+        this.callParent(arguments);
+
+        this.set('nodeType',amdaModel.TimeTableNode.nodeType);
+        this.set('moduleId',myDesktopApp.dynamicModules.tt.id);//'timetab-win');
+        this.set('objectDataModel','amdaModel.TimeTable');
+        this.set('ownerTreeId',amdaUI.ExplorerUI.RESRC_TAB.TREE_ID);
+        if (this.get('leaf')) this.set('iconCls', 'icon-timetable');
+    },
+  
+    localMenuItems : function() {
+        var menuItems =
+         [/*{
+            fnId : 'dire-shareNode',
+            text : 'Share content',
+            hidden : true
+        },{
+            fnId : 'leaf-shareLeaf',
+            text : 'Share Time Table',
+            hidden : true
+        },*/{
+            fnId : 'leaf-download',
+            text : 'Download Time Table',
+            hidden : true
+        },{
+            fnId : 'leaf-operations',
+            text : 'Operations',
+            hidden : true
+        }];
+     
+        return menuItems;
+    },
+
+    localMultiMenuItems : function() {
+        var menuItems =
+         [/*{
+            fnId : 'mult-shareMulti',
+            text : 'Share selected '+amdaModel.TimeTableNode.objectName+'s'
+        },*/{
+            fnId : 'mult-downloadMulti',
+            text : 'Download selected '+amdaModel.TimeTableNode.objectName+'s'
+        },{
+            fnId : 'mult-operationsMulti',
+            text : 'Operations'
+        }];
+     
+        return menuItems;
+    },
+    
+    getAllContextMenuItems: function(){
+
+        var menuItems = this.allMenuItems(amdaModel.TimeTableNode.objectName);
+        var locMenuItems = this.localMenuItems();
+        return  Ext.Array.merge(menuItems,locMenuItems);
+    },
+    
+    getMultiContextMenuItems: function(){
+        var multiMenu = this.allMenuMultiItems(amdaModel.TimeTableNode.objectName);
+        var locMultiMenuItems = this.localMultiMenuItems();
+        return  Ext.Array.merge(multiMenu,locMultiMenuItems);
+    },
+  
+    onMenuItemClick : function(menu,item,event) {
+ 
+        this.callParent(arguments);
+        
+	    var fnId = Ext.util.Format.substr(item.fnId, 5, item.fnId.length);
+
+	    switch (fnId) {
+	    
+ 	    case 'shareNode':		 
+ 	    case 'shareLeaf':   
+ 	        this.shareNode(this); 
+ 	        break;
+
+	    case 'download':
+	    	this.ttDownload();
+	    	break;
+	    	
+	    case 'operations':
+	        this.ttOperations();
+	        break;
+
+//	    case 'deleteMulti':
+//	        this.deleteMulti();
+//	        break;
+
+	    case 'shareMulti':
+	        this.shareMulti();
+	        break;
+
+	    case 'downloadMulti':
+	        this.downloadMulti();
+	        break;
+
+	    case 'operationsMulti':
+	        this.operationsMulti();
+	        break;
+
+	    default:
+	        break;
+	    } // switch end 
+	 
+     },
+ 
+     ttDownload : function() {
+    	 // download Module
+    	 var me = this;
+    	 myDesktopApp.getLoadedModule(myDesktopApp.dynamicModules.download.id, true, function (module) {
+    		 module.createWindow();
+        	 var uidownload = module.getUiContent();
+      	     uidownload.addTTdownload(me.get('text'), me.get('id'));
+    	 });
+     },
+     
+     ttOperations : function() {
+         var me = this;
+         myDesktopApp.getLoadedModule(myDesktopApp.dynamicModules.tt_op.id, true, function (module) {
+        	 module.createWindow();
+        	 module.getUiContent().addTT(me.get('text'), me.get('id'));
+         });
+
+     },
+ 
+     shareNode: function(node) {
+         alert("NOT IMPLEMENTED YET");
+     },
+     
+     shareMulti: function(){
+         var selection = this.myGetOwnerTree().getSelectionModel().selected.items;
+         alert(selection.length+' to share!');
+         alert("NOT IMPLEMENTED YET");
+     },
+     
+     downloadMulti: function(){
+         var selection = this.myGetOwnerTree().getSelectionModel().selected.items;
+//         alert(selection.length+' to download!');
+         Ext.Array.each(selection,function(item,index,allItems){
+             item.ttDownload();
+         })
+     },
+     
+     operationsMulti: function(){
+         var selection = this.myGetOwnerTree().getSelectionModel().selected.items;
+         alert(selection.length+' time tables to send into operationsTT module!');
+         Ext.Array.each(selection,function(item,index,allItems){
+             item.ttOperations();
+         })
+     }
+});
diff --git a/js/app/models/sharedTimeTableNode.js b/js/app/models/sharedTimeTableNode.js
new file mode 100644
index 0000000..78ed5ea
--- /dev/null
+++ b/js/app/models/sharedTimeTableNode.js
@@ -0,0 +1,51 @@
+/** 
+ * Project  : AMDA-NG4
+ * Name     : TimeTableNode.js
+ * @class   amdaModel.TimeTableNode
+ * @extends amdaModel.InteractiveNode
+ * @brief   Basic Model of Node corresponding to a amda Time Table
+ * @author  
+ * @version $Id: sharedTimeTableNode.js 1916 2013-11-26 10:58:49Z elena $
+ * @todo
+ *******************************************************************************
+ *    FT Id     :   Date   : Name - Description
+ *******************************************************************************
+ *  :           :08/06/2011: CDA - Migration extjs4
+ *  :           :09/06/2011: elena - all generic methods are now of InteractiveNode class
+ */
+
+Ext.define('amdaModel.sharedTimeTableNode', {
+
+    extend: 'amdaModel.InteractiveNode',
+    
+    statics: {
+        nodeType: 'sharedtimeTable',
+        objectName: 'Time Table'
+    },
+
+    constructor : function(config){	
+        this.callParent(arguments);
+
+        this.set('nodeType',amdaModel.sharedTimeTableNode.nodeType);
+        this.set('moduleId',myDesktopApp.dynamicModules.tt.id);//'timetab-win');
+        this.set('objectDataModel','amdaModel.TimeTable');
+        this.set('ownerTreeId',amdaUI.ExplorerUI.RESRC_TAB.TREE_ID);
+        if (this.get('leaf')) this.set('iconCls', 'icon-timetable');
+    },
+  
+    localMenuItems : function() {
+        var menuItems =
+         [{
+            fnId : 'leaf-editLeaf',
+            text : 'Edit Time Table',
+            hidden : true
+        }];
+     
+        return menuItems;
+    },
+    
+    getAllContextMenuItems: function(){
+
+        return this.localMenuItems();
+    }
+});
diff --git a/js/app/routes.js b/js/app/routes.js
new file mode 100644
index 0000000..a2e621c
--- /dev/null
+++ b/js/app/routes.js
@@ -0,0 +1,18 @@
+/**
+ * The Router maps local urls to controller and action pairs. This is used primarily 
+ * for providing history support without reloading the page. Example usage:
+ * 
+ * Connects http://myapp.com/#home to the index controller's overview action
+ * map.connect("home", {controller: 'index', action: 'overview'});
+ * 
+ * Connects urls like "images/myImage.jpg" to the images controller's show action, passing
+ * "myImage.jpg" as the "url" property of the options object each controller action receives
+ * map.connect("images/:url", {controller: 'images', action: 'show'});
+ */
+Ext.Router.draw(function(map) {
+    
+    
+    //These are default fallback routes and can be removed if not needed
+    map.connect(':controller/:action');
+    map.connect(':controller/:action/:id');
+});
\ No newline at end of file
diff --git a/js/app/stores/AmdaTreeReader.js b/js/app/stores/AmdaTreeReader.js
new file mode 100644
index 0000000..4466bf9
--- /dev/null
+++ b/js/app/stores/AmdaTreeReader.js
@@ -0,0 +1,80 @@
+/** 
+ * Project  : AMDA-NG4
+ * Name     : AmdaTreeReader.js
+ * @class   amdaReader.AmdaTreeReader
+ * @extends Ext.data.reader.Json 
+ * @brief    
+ * @author  Sencha Support + CDA
+ * @version $Id: AmdaTreeReader.js 894 2012-05-02 09:18:29Z elena $
+ * @todo
+ *******************************************************************************
+ *    FT Id     :   Date   : Name - Description
+ *******************************************************************************
+ *    :           :10/06/2011: CDA  - Init
+ *    :           :22/06/2011: elena  - added new nodes
+ *   
+ *  
+ */
+
+Ext.define('amdaReader.AmdaTreeReader', {
+    extend: 'Ext.data.reader.Json',
+        
+    alias: 'reader.tree',
+    
+    extractData : function(root) {
+        var me = this,
+            records = [],
+            Model   = me.model,
+            length  = root.length,
+            convertedValues, node, record, i, Type;
+
+        if (!root.length && Ext.isObject(root)) {
+            root = [root];
+            length = 1;
+        }
+
+        for (i = 0; i < length; i++) {
+            node = root[i];
+            Type = me.getType(node);
+            // Create a record with an empty data object.
+            // Populate that data object by extracting and converting field values from raw data
+            record = new Type(undefined, me.getId(node), node, convertedValues = node);
+
+            // If the server did not include an id in the response data, the Model constructor will mark the record as phantom.
+            // We  need to set phantom to false here because records created from a server response using a reader by definition are not phantom records.
+            record.phantom = false;
+
+            // Use generated function to extract all fields at once
+            me.convertRecordData(convertedValues, node, record);
+            records.push(record);
+
+            if (me.implicitIncludes) {
+                me.readAssociated(record, node);
+            }
+        }
+
+        return records;
+    },
+ 
+    extractValues: function(data, Type) {
+  
+        var fields = Type.prototype.fields.items,
+            i      = 0,
+            length = fields.length,
+            output = {},
+            field, value;
+ 
+        for (; i < length; i++) {
+            field = fields[i];
+            value = data[field.name];
+            output[field.name] = value;
+        }
+ 
+        return output;
+    },
+ 
+    /**
+     * @abstract This method has to be overriden in subclasses
+     */
+    getType: function(node){}
+});
\ No newline at end of file
diff --git a/js/app/stores/ExplorerReader.js b/js/app/stores/ExplorerReader.js
new file mode 100644
index 0000000..f6a0e12
--- /dev/null
+++ b/js/app/stores/ExplorerReader.js
@@ -0,0 +1,55 @@
+/** 
+ * Project  : AMDA-NG4
+ * Name     : ExplorerReader.js
+ * @class   amdaReader.ExplorerReader
+ * @extends amdaReader.AmdaTreeReader 
+ * @brief    
+ * @author  CDA
+ * @version $Id: ExplorerReader.js
+ */
+
+Ext.define('amdaReader.ExplorerReader', {
+    extend: 'amdaReader.AmdaTreeReader',
+        
+    alias: 'reader.explorer',
+    
+    /**
+     * @override amdaReader.AmdaTreeReader.getType
+     */
+
+	getType: function(node){
+ 
+        switch (node.nodeType) {
+        
+            case 'derivedParam':
+                return amdaModel.DerivedParamNode; 
+            case 'localParam':
+                return amdaModel.LocalParamNode; 
+            case 'remoteParam':
+                return amdaModel.RemoteParamNode; 
+            case 'remoteSimuParam':
+                return amdaModel.RemoteSimuParamNode; 
+            case 'myDataParam':
+                return amdaModel.MyDataParamNode; 
+            case 'myData':
+                return amdaModel.MyDataNode;
+            case 'alias':
+            	return amdaModel.AliasNode;
+            case 'timeTable' :
+                return amdaModel.TimeTableNode;
+            case 'sharedtimeTable' :
+            	return amdaModel.sharedTimeTableNode;
+            case 'condition' :
+                return amdaModel.SearchNode; 
+            case 'request' :
+                return amdaModel.PlotNode;     
+            case 'bkgWorks' :
+                return amdaModel.BkgJobNode; 	  	
+            default:
+                return amdaModel.InteractiveNode;
+
+        }
+
+        
+    }
+});
\ No newline at end of file
diff --git a/js/app/stores/PlotReader.js b/js/app/stores/PlotReader.js
new file mode 100644
index 0000000..e5d7ef3
--- /dev/null
+++ b/js/app/stores/PlotReader.js
@@ -0,0 +1,32 @@
+/**
+ * Project      : AMDA-NG
+ * Name         : PlotReader.js
+ * @class       amdaReader.PlotReader
+ * @extends     amdaReader.AmdaTreeReader
+ * @brief    
+ * @author  Caroline DARMON
+ * @version $Id: PlotReader.js 953 2012-06-23 09:50:13Z elena $
+ ******************************************************************************
+ *    FT Id     :   Date   : Name - Description
+ ******************************************************************************
+ *  :           :15/09/2011: CDA  - file creation
+ */
+
+Ext.define('amdaReader.PlotReader', {
+    extend: 'amdaReader.AmdaTreeReader',
+        
+    alias: 'reader.plot',
+    
+    /**
+     * @override amdaReader.AmdaTreeReader.getType
+     */ 
+	getType: function(node){
+	  
+        if (!node.leaf) {
+            return amdaModel.PlotPanel;
+        } else {
+            return amdaModel.PlotParam;
+        }
+        
+    }
+});
\ No newline at end of file
diff --git a/js/app/views/APISImagesUI.js b/js/app/views/APISImagesUI.js
new file mode 100644
index 0000000..193f811
--- /dev/null
+++ b/js/app/views/APISImagesUI.js
@@ -0,0 +1,129 @@
+/**
+  * Project      :  AMDA-NG
+  * Name         : APISImagesUI.js
+  * @plugin 	  amdaUI.APISImagesUI
+  * @extends 	  Ext.panel.Panel
+  * @brief		 APIS view
+  * @author Benjamin
+  * @version $Id: APISImagesUI.js 1664 2013-07-03 11:37:37Z benjamin $
+  ********************************************************************************
+  *    FT Id     :   Date   : Name - Description
+  *******************************************************************************
+  *  :          
+  */
+
+Ext.define('amdaUI.APISImagesUI', {
+    extend: 'amdaUI.AstroImagesUI',
+    alias: 'widget.panelAPIS',
+	
+	getPreviewUrl : function(image)
+	{
+		return image.get('preview_url');
+	},
+	
+	getImageLink : function(image)
+	{
+		return image.get('image_url');
+	},
+	
+	getFITSUrl : function(image)
+	{
+		return image.get('fits_url');
+	},
+	
+	getAcknowledgement : function()
+	{
+		return '<br/><a target="_blank"  href="http://lesia.obspm.fr/apis/">APIS database by Laurent Lamy - Lesia-Observatoire de Paris</a>';
+	},
+	
+	onFinishGetImages : function(result, e)
+	{	
+		var t = e.getTransaction();
+		
+		if (e.status && result) 
+		{	
+		  if (result.success)
+		  {
+			var imgs = new Array();
+			
+			var crtStartTime = 0.0;
+			var crtFolder;
+			Ext.each(result.result,function(folder)
+					{	
+						var rec = {
+								name  : folder.date,
+								start : folder.date,
+								images : new Array()
+						};
+						imgs.push(rec);
+						
+						Ext.each(folder.images, function(image)
+								{
+									rec.images.push({
+										name        : image.name,
+										target      : image.target_name,
+										ra          : image.ra,
+										dec         : image.dec,
+										ref         : image.reference,
+										start       : image.time_min,
+										stop        : image.time_max,
+										exposure    : image.time_exp_max,
+										instrument  : image.instrument_name,
+										preview_url : image.access_url_calibrated_thumbnail,
+										fits_url    : image.access_url,
+										image_url   : image.access_url_calibrated_preview,
+										additional_text : 'Original data'
+									});
+									
+									rec.images.push({
+										name        : image.name,
+										target      : image.target_name,
+										ra          : image.ra,
+										dec         : image.dec,
+										ref         : image.reference,
+										start       : image.time_min,
+										stop        : image.time_max,
+										exposure    : image.time_exp_max,
+										instrument  : image.instrument_name,
+										preview_url : image.preview_url,
+										fits_url    : image.access_url_processed_filename,
+										image_url   : image.access_url_processed_preview,
+										additional_text : 'Processed data'
+									});
+								});
+					});
+			this.createTree(imgs);
+		  }
+		  else
+		  {
+			  //ERROR
+			  if (result.message)
+				  Ext.Msg.show({title:'Error', msg: result.message, icon: Ext.MessageBox.ERROR, buttons: Ext.Msg.OK});
+			  else
+				  Ext.Msg.show({title:'Error', msg: 'Unknown error', icon: Ext.MessageBox.ERROR, buttons: Ext.Msg.OK});
+		  }
+		}
+		else
+		{
+		  // FAILURE
+	      Ext.Msg.show({title:'Error System', msg: e.message, icon: Ext.MessageBox.ERROR, buttons: Ext.Msg.OK});
+		}
+	},
+	
+	refreshTree : function(o)
+	{
+		var startTime = this.timeSelector.getStartTime();
+        var stopTime = this.timeSelector.getStopTime();     
+        var planet = this.getTargetCombo().getValue();
+
+        var obj = {
+        		startTime : startTime,
+        		stopTime  : stopTime,
+        		planet    : planet
+        };
+        
+        this.getImageTreePanel().setLoading(true);
+
+        AmdaAction.getAPISImagesUrl(obj,this.onFinishGetImages,this);
+	}
+});
\ No newline at end of file
diff --git a/js/app/views/AliasUI.js b/js/app/views/AliasUI.js
new file mode 100644
index 0000000..4418cc7
--- /dev/null
+++ b/js/app/views/AliasUI.js
@@ -0,0 +1,199 @@
+/**
+ * Project   : AMDA-NG
+ * Name      : AliasUI.js
+ * @class 	 amdaUI.AliasUI
+ * @extends  Ext.form.FieldSet
+ * @brief	 Alias UI definition (View)
+ * @author 	 Myriam
+ * @version  $Id: AliasUI.js 966 2012-07-03 14:50:05Z elena $
+ ********************************************************************************
+ *    FT Id     :   Date   : Name - Description
+ *******************************************************************************
+ *             08/06/2011: Myriam - Migration extjs4
+ */ 
+Ext.define('amdaUI.AliasUI',{
+	extend: 'Ext.form.Panel',
+	alias: 'widget.alias', 
+	
+    /**
+     * @cfg {String} data models
+     * @required
+     */
+	nodeDataModel : 'amdaModel.AliasNode',
+	
+ 
+	setAlias : function(obj) {	  
+		var paramValue = obj ? obj.get('id') : null;
+		var aliasValue = obj && obj.get('alias') ? obj.get('alias') : null;
+		this.parameterField.setValue(paramValue);		
+		this.aliasField.setValue(aliasValue);
+	},
+	
+	setAliasJson : function(obj) {	  
+		var paramValue = obj ? obj.id : null;
+		var aliasValue = obj && obj.alias ? obj.alias : null;
+		this.parameterField.setValue(paramValue);
+		this.aliasField.setValue(aliasValue);		
+	},
+	
+	setLinkedNode : function (myLinkedNode){
+		this.linkedNode = myLinkedNode;		
+	},
+	
+	setParamNode : function (paramNode){
+		this.paramNode = paramNode;
+		if (this.paramNode.get('alias') && amdaModel.AliasNode.deletedAliases) {
+			this.checkDeleted(this.paramNode.get('id'));
+		}
+	},
+  
+// check if alias was deleted in this session => set param alias == null	
+	checkDeleted : function(paramId) {
+		 var itemIndex = -1;
+		 Ext.Array.each(amdaModel.AliasNode.deletedAliases,
+				function(name, index, item) {
+				    if (name === paramId) {
+				      itemIndex = index;
+				      return false;
+				    }
+				}
+		    );
+		 if (itemIndex >= 0) {
+			 Ext.Array.erase(amdaModel.AliasNode.deletedAliases, itemIndex, 1);
+		 }
+	},
+	
+	createLinkedNode : function (){
+	 
+		var newNode = Ext.create(this.nodeDataModel, {
+			leaf : true,
+			contextNode : this.contextNode
+		});		  
+	 
+	      this.setLinkedNode(newNode);
+	},
+	
+	validate : function(alias,param) {	  			    
+ 
+		var aliasNodeByName = this.linkedNode.get('rootNode').findChild('text', alias);		       
+		if (aliasNodeByName) {
+		      //TODO process
+		      var paramId =  aliasNodeByName.get('id').substr(6);
+		      Ext.Msg.alert('Alias','Alias '+ alias +' already exists for parameter\n' + paramId);
+		      return false;
+		    }	    
+		
+	  return true;
+	}, 
+	
+	updateConstruct : function(oldval,newval) {
+		Ext.Array.each(myDesktopApp.paramModulesID, function(id){
+			var targetModule = myDesktopApp.getLoadedModule(id);
+			if (targetModule)
+				targetModule.getUiContent().updateConstruct(oldval,newval);
+		});			 
+	},
+		
+	saveAlias: function() {
+	  
+	        if (this.parameterField.value.match(/[a-z,0-9]/gi) == null) {
+		  Ext.Msg.show({title:'No Parameter', msg: 'Please select parameter to create alias for', 
+			     icon: Ext.Msg.WARNING, buttons: Ext.Msg.OK});
+		  return;
+		}
+		
+		var tree = Ext.getCmp(amdaUI.ExplorerUI.RESRC_TAB.TREE_ID);
+		var rootNode = tree.getRootNode().findChild('id','alias-treeRootNode',true);
+		
+		if (!rootNode.isExpanded()) rootNode.expand(false);	   					    						    
+		
+		if (!this.paramNode.get('alias')) {
+		      this.createLinkedNode();
+		      var isNew = true;
+		}		 
+		else {
+		      var aliasNode = rootNode.findChild('text', this.paramNode.get('alias'));
+		      if (!aliasNode) {//TODO error 
+			  alert('NOT FOUND');
+		      }
+		      this.setLinkedNode(aliasNode);
+		      var isNew = false;
+		}  
+
+		this.linkedNode.set('rootNode', rootNode);
+		var alias = this.aliasField.value;
+		var param = this.parameterField.value;
+		// now validation							    
+		if (this.validate(alias,param)) {	
+		    if (isNew) {
+		       if (alias.match(/[a-z,0-9]/gi) == null) {
+			  Ext.Msg.show({title:'No Alias', msg: 'No alias was created for parameter '+ param, 
+				    icon: Ext.Msg.WARNING, buttons: Ext.Msg.OK});
+			  
+			}
+			else {
+			// create alias
+			    this.linkedNode.create(alias, param);
+			    this.updateConstruct(param,"#"+alias);
+			}
+		    }   
+		    else if (alias.match(/[a-z,0-9]/gi) == null) {
+			var alias = this.paramNode.get('alias');
+			Ext.Msg.confirm('Delete', 'Are you sure you want to delete this alias ?', function(btn, text){
+			  if (btn == 'yes'){
+			      // remove alias		                                	
+				  this.updateConstruct("#"+alias,param);
+				  this.linkedNode.deleteNode();
+			  }
+			  },this);
+		    }   
+		    else {
+			// rename alias
+			this.linkedNode.renameNode(this.paramNode.get('alias'),alias, param);
+			this.updateConstruct("#"+this.paramNode.get('alias'),"#"+alias);
+		    }
+		    // Delete alias from array of deleted aliases
+		    this.checkDeleted(this.paramNode.get('id'));
+		    this.paramNode.set('alias',alias);
+		}						    						    	  
+		var win = myDesktopApp.getDesktop().getWindow('alias-win');
+		if (win) win.close();	  
+	},
+	
+ 	initComponent : function (){
+		
+	    if (this.initialConfig.paramNode)
+		    this.setParamNode(this.initialConfig.paramNode);	    	    
+		
+	    this.parameterField = new Ext.form.field.Text({
+		fieldLabel: 'AMDA Parameter', name:'param',  labelAlign: 'top', 
+		disabled: true, width : '90%', padding : '10px 0 0 10px', allowBlank: false		 
+	    });
+ 
+	    this.aliasField = new Ext.form.field.Text({
+		fieldLabel: 'Your Alias', padding : '10px 0 0 10px', width : '90%',
+		labelWidth: 70, allowBlank: false
+	    });
+	    
+	    this.setAlias(this.paramNode);
+	    	 
+	    var config = {		
+		defaultType: 'textfield', 
+		bodyStyle: 'background:#ddecfe;',  
+		items: [
+		      this.parameterField,
+		      this.aliasField
+		],
+		fbar: [
+		  { 
+		  text: 'Save Alias', 
+		  scope: this,
+		  handler: this.saveAlias
+		  }
+                ]
+        };
+        Ext.apply (this , Ext.apply(this.initialConfig, config));
+        this.callParent(arguments);
+
+ 	}  
+});
\ No newline at end of file
diff --git a/js/app/views/AstroImagesUI.js b/js/app/views/AstroImagesUI.js
new file mode 100644
index 0000000..492a897
--- /dev/null
+++ b/js/app/views/AstroImagesUI.js
@@ -0,0 +1,712 @@
+/**
+  * Project      :  AMDA-NG
+  * Name         : AstroImagesUI.js
+  * @plugin 	  amdaUI.AstroImagesUI
+  * @extends 	  Ext.panel.Panel
+  * @brief		 Astronomical images viewer for interoperability - Abstract class
+  * @author Benjamin
+  * @version $Id: AstroImagesUI.js 1847 2013-10-30 14:46:48Z elena $
+  ********************************************************************************
+  *    FT Id     :   Date   : Name - Description
+  *******************************************************************************
+  *  :          
+  */
+
+Ext.define('ImageNode', {
+		    extend: 'Ext.data.Model',
+		    
+		    fields: [
+		        {name: 'leaf',      type: 'boolean'},
+		        {name: 'id',        type: 'string'},
+		        {name: 'name',      type: 'string'},
+		        {name: 'target',    type: 'string'},
+		        {name: 'ra',        type: 'string'},
+		        {name: 'dec',       type: 'string'},
+		        {name: 'ref',       type: 'string'},
+		        {name: 'start',     type: 'string'},
+		        {name: 'stop',      type: 'string'},
+		        {name: 'exposure',  type: 'string'},
+		        {name: 'instrument',type: 'string'},
+		        {name: 'preview_url', type: 'string'},
+		        {name: 'image_url', type: 'string'},
+		        {name: 'fits_url', type: 'string'},
+		        {name: 'additional_text', type: 'string'}
+		    ]
+		});
+
+Ext.define('amdaUI.AstroImagesUI', {
+    extend: 'Ext.form.Panel',
+    
+    requires: [
+               'amdaUI.SendToSampButtonUI'
+           ],
+    
+    //
+    getPreviewUrl : Ext.emptyFn,
+    getImageLink  : Ext.emptyFn,
+    getFITSUrl    : Ext.emptyFn,
+    refreshTree   : Ext.emptyFn,
+    getAcknowledgement : Ext.emptyFn,
+           
+    timeSelector : null,
+    preview      : false,
+    
+    constructor: function(config) {			
+		this.init(config);
+		this.callParent(arguments);
+	},
+    
+	setInterval : function(startDate,stopDate)
+	{
+		this.timeSelector.setInterval(startDate,stopDate);
+	},
+	
+	setPreview : function(prev)
+	{
+		if (!this.getPreviewUrl)
+			return;
+		
+		this.preview = prev;
+		
+		var view = this.getImageTreePanel().getView();
+		var rootNode = this.getImageTreePanel().store.getRootNode();
+			
+		rootNode.eachChild(function(folder)
+				{
+					folder.eachChild(function(image)
+							{
+								if (prev)
+								{
+									var imageSrc = this.getPreviewUrl(image);
+									image.set('icon',imageSrc);
+									image.set('iconCls','x-tree-icon-leaf');
+								}
+								else
+								{
+									image.set('icon','');
+									image.set('iconCls','');
+								}
+							},this);
+				},this);
+	},
+	
+	getSelectedImageList : function()
+	{
+		var me = this;
+		var root = this.getImageTreePanel().getRootNode();
+		var imgList = new Array();
+		
+		if (!this.getFITSUrl)
+			return imgList;
+		
+		root.eachChild(function (folder){
+			folder.eachChild(function (image){
+				if(image.get('checked'))
+				{
+					var name = image.get('name');
+					if (!name.substr(name.lastIndexOf('.') + 1) != "fits")
+						name+='.fits';
+					imgList.push({name:name, 
+								  url:me.getFITSUrl(image)});
+				}
+			});
+		});
+		
+		return imgList;
+	},
+	
+	getCurrentScript : function()
+	{
+		var imageList = this.getSelectedImageList();
+		if (imageList.length <= 0)
+			{
+			  	Ext.Msg.show({title:'Empty selection', msg: 'You must select at least one image in tree', icon: Ext.MessageBox.WARNING, buttons: Ext.Msg.OK});
+				return;
+			}
+		var interopModule = myDesktopApp.getLoadedModule(myDesktopApp.dynamicModules.interop.id);
+		if (interopModule) {
+			return interopModule.generateAladinScript(imageList,'movie');
+		};
+		return;
+	},
+	
+	onExtendInterval : function(o)
+	{
+		var dtField = o.up().up().query('numberfield')[0];
+		var dtVal = dtField ? dtField.getValue() : 0;
+		
+		var unitField = o.up().up().query('combobox')[1];
+		var unitVal = unitField ? unitField.getValue() : 'min';
+		
+		switch(unitVal)
+		{
+			case 'min' :
+				dtVal *= 60;
+				break;
+			case 'hour' :
+				dtVal *= 3600;
+				break;
+			case 'day' :
+				dtVal *= (24*3600);
+				break;
+		}
+		
+		var startTime = this.timeSelector.getStartTime();
+		var stopTime = this.timeSelector.getStopTime();
+		
+		switch(o.getText())
+		{
+			case 'left'  :
+				startTime = Ext.Date.add(startTime, Ext.Date.MILLI, -dtVal*1000);
+				break;
+			case 'right' :
+				stopTime  = Ext.Date.add(stopTime, Ext.Date.MILLI, dtVal*1000);
+				break;
+			case 'both'  :
+				startTime = Ext.Date.add(startTime, Ext.Date.MILLI, -dtVal*1000);
+				stopTime  = Ext.Date.add(stopTime, Ext.Date.MILLI, dtVal*1000);
+				break;
+		}
+		
+		this.timeSelector.setInterval(startTime,stopTime);
+	},
+	
+	onShiftInterval : function(o)
+	{
+		var dtField = o.up().up().query('numberfield')[0];
+		var dtVal = dtField ? dtField.getValue() : 0;
+		
+		var unitField = o.up().up().query('combobox')[1];
+		var unitVal = unitField ? unitField.getValue() : 'min';
+                
+		switch(unitVal)
+		{
+			case 'min' :                            
+				dtVal *= 60;                               
+				break;
+			case 'hour' :
+				dtVal *= 3600;
+				break;
+			case 'day' :
+				dtVal *= (24*3600);
+				break;
+		}
+		
+		var startTime = this.timeSelector.getStartTime();
+		var stopTime = this.timeSelector.getStopTime();
+		
+		switch(o.getText())
+		{
+			case 'left'  :
+				startTime = Ext.Date.add(startTime, Ext.Date.MILLI, -dtVal*1000);
+				stopTime  = Ext.Date.add(stopTime, Ext.Date.MILLI, -dtVal*1000);
+				break;
+			case 'right' :
+				startTime = Ext.Date.add(startTime, Ext.Date.MILLI, dtVal*1000);
+				stopTime  = Ext.Date.add(stopTime, Ext.Date.MILLI, dtVal*1000);
+				break;
+		}
+		
+		this.timeSelector.setInterval(startTime,stopTime);
+	},
+	
+	createTree : function(imagesArray)
+	{
+		this.getImageTreePanel().setLoading(false);
+		var rootNode = this.getImageTreePanel().store.getRootNode();
+		rootNode.removeAll(false);
+	    	
+		Ext.each(imagesArray, function(data){
+			var rec =	Ext.create('ImageNode',{
+					leaf  : false,
+					id    : data.name,
+					name  : data.name,
+					start : data.start
+				  });
+			var folderNode = rootNode.appendChild(rec);
+			Ext.each(data.images, function(image){
+				var rec =	Ext.create('ImageNode',{
+					 leaf        : true,
+					 id          : image.name,
+					 name        : image.name,
+					 target      : image.target,
+					 ra          : image.ra,
+					 dec         : image.dec,
+					 ref         : image.ref,
+					 start       : image.start,
+					 stop        : image.stop,
+					 exposure    : image.exposure,
+					 instrument  : image.instrument,
+					 preview_url : image.preview_url,
+					 fits_url    : image.fits_url,
+					 image_url   : image.image_url,
+					 additional_text : image.additional_text,
+					 checked     : false,
+					 hrefTarget  : '_blank'
+				  });
+				if (this.getImageLink)
+					rec.set('href',this.getImageLink(rec));
+						 
+				folderNode.appendChild(rec);
+			},this);
+		}, this);
+		
+		this.getImageTreePanel().getView().refresh();
+		
+		this.setPreview(this.preview);
+	},
+	
+	onRefreshTree : function(o)
+	{
+		if (this.refreshTree)
+			this.refreshTree();
+	},
+	
+	onSendFITSToSAMP : function(clientId, sendOpt)
+	{
+		if (!sendOpt.scope)
+			return;
+		
+		var imageList = sendOpt.scope.getSelectedImageList();
+		if (imageList.length <= 0)
+			{
+				Ext.Msg.show({title:'Empty selection', msg: 'You must select at least one image in tree', icon: Ext.MessageBox.WARNING, buttons: Ext.Msg.OK});
+				return;
+			}
+		
+		myDesktopApp.getLoadedModule(myDesktopApp.dynamicModules.interop.id, true, function (module) {
+			/*var script = this.getCurrentScript();
+			module.sendAladinScript(escape(script));*/	
+			for( var i=0; i < imageList.length; i++)
+			{
+				var url = imageList[i].url;
+				var name = imageList[i].name;
+				if (module)
+					module.sendFITS(url,name);
+			}
+		});
+		
+		
+	},
+	
+	onSendToWeb : function(o)
+	{
+		var script = this.getCurrentScript();
+		var args = "";
+        if( script )
+        {
+            args="?script="+escape(script);
+        }
+        var url = "http://aladin.u-strasbg.fr/java/nph-aladin.pl"+args;
+        window.open( url );
+	},
+	
+	onDownload : function(o)
+	{
+		var imageList = this.getSelectedImageList();
+		
+		if (imageList.length <= 0)
+		{
+			Ext.Msg.show({title:'Empty selection', msg: 'You must select at least one image in tree', icon: Ext.MessageBox.WARNING, buttons: Ext.Msg.OK});
+			return;
+		}
+			
+		var obj = Ext.create('amdaModel.Download');
+		obj.set('compression','zip');
+		obj.set('list',imageList);
+		obj.set('downloadSrc',2);
+		
+		amdaModel.DownloadNode.set('object',obj);	
+		amdaModel.DownloadNode.execute();
+	},
+	
+	createTimeSelectorPanel : function(panelId)
+	{
+		var me = this;
+		this.timeSelector = Ext.create('amdaUI.IntervalUI', {});
+		
+		return {
+			xtype : 'panel',
+			region : 'west',
+			title : 'Request definition',
+			bodyStyle: { background : '#dfe8f6' },
+			flex:1,
+	    	dockedItems: [{
+		          xtype: 'toolbar', 
+		          dock: 'bottom',
+		          items: [
+		             '->',
+		            {
+		              text: 'Refresh',
+		              scope : me,
+		              handler : me.onRefreshTree
+		          }]
+	    		}],
+		    items : [
+		             { xtype: 'component', height: 5},
+		             {
+		            	xtype : 'combo',
+		            	id : panelId+'-combo-target',
+		            	fieldLabel : 'Target',
+		            	fields : ['id', 'name'],
+		            	queryMode: 'local',
+		            	editable: false,
+		            	store : [
+		            	        ["saturn",  "Saturn"],
+		            	        ["jupiter", "Jupiter"],
+		            	        ["uranus", "Uranus"]
+		            	    ],
+		            	value: "saturn"
+		             },
+		             {
+		            	 xtype : 'component',
+		            	 autoEl: 'hr'
+		             },
+		             this.timeSelector,
+		             {
+		            	 xtype : 'component',
+		            	 autoEl: 'hr'
+		             },
+		             {
+		            	 xtype : 'container',
+		            	 layout : 'hbox',
+		            	 items : [
+		            	          {
+		            	        	  xtype : 'numberfield',
+		            	        	  fieldLabel : 'Delta T',
+		            	        	  labelWidth: 60,
+		            	        	  flex : 1,
+		            	        	  minValue: 0,
+		            	        	  value : 0,
+		            	        	  hideTrigger: true,
+		            	              keyNavEnabled: false,
+		            	              mouseWheelEnabled: false
+		            	          },
+		            	          { xtype: 'component', width: 5},
+		            	          {
+		            	        	  xtype : 'combobox',
+		            	        	  queryMode: 'local',
+		            	        	  forceSelection : true,
+		            	        	  flex : 1,
+		            	        	  allowBlank : false,
+		            	        	  editable: false,
+		            	        	  value : "min",
+		            	        	  store : [
+		            	        	          ["min","minute(s)"],
+		            	        	          ["hour","hour(s)"],
+		            	        	          ["day","day(s)"]
+		            	        	          ]
+		            	          }
+		            	       ]
+		             },
+		             { xtype: 'component', height: 5},
+		             {
+		            	 xtype : 'container',
+		            	 layout : 'hbox',
+		            	 items : [
+		            	          {
+		            	        	  xtype : 'label',
+		            	        	  text  : 'Extend ... ',
+		            	        	  width : 60
+		            	          },
+		            	          { xtype: 'component', width: 5},
+		            	          {
+		            	        	  xtype : 'button',
+		            	        	  text  : 'left',
+		            	        	  flex  : 1,
+		            	        	  scope : me,
+		            	        	  handler : me.onExtendInterval
+		            	          },
+		            	          { xtype: 'component', width: 5},
+		            	          {
+		            	        	  xtype : 'button',
+		            	        	  text  : 'right',
+		            	        	  flex  : 1,
+		            	        	  scope : me,
+		            	        	  handler : me.onExtendInterval
+		            	          },
+		            	          { xtype: 'component', width: 5},
+		            	          {
+		            	        	  xtype : 'button',
+		            	        	  text  : 'both',
+		            	        	  flex  : 1,
+		            	        	  scope : me,
+		            	        	  handler : me.onExtendInterval
+		            	          }
+		            	       ]
+		             },
+		             { xtype: 'component', height: 5},
+		             {
+		            	 xtype : 'container',
+		            	 layout : 'hbox',
+		            	 items : [
+		            	          {
+		            	        	  xtype : 'label',
+		            	        	  text  : 'Shift ... ',
+		            	        	  width : 60
+		            	          },
+		            	          { xtype: 'component', width: 5},
+		            	          {
+		            	        	  xtype : 'button',
+		            	        	  text  : 'left',
+		            	        	  flex  : 1,
+		            	        	  scope : me,
+		            	        	  handler : me.onShiftInterval
+		            	          },
+		            	          { xtype: 'component', width: 5},
+		            	          {
+		            	        	  xtype : 'button',
+		            	        	  text  : 'right',
+		            	        	  flex  : 1,
+		            	        	  scope : me,
+		            	        	  handler : me.onShiftInterval
+		            	          }
+		            	       ]
+		             }
+		    ]
+		};
+	},
+	
+	createImageTreePanel : function(panelId)
+	{
+		
+		
+		
+		var me = this;
+		return {
+			xtype : 'treepanel',
+			region : 'center',
+			title : 'Image Selection',
+		    flex:1,
+		    rootVisible: false,
+		    autoScroll : true,
+		    animate: false,
+		    id : panelId+'-images-tree-panel',
+		    columns: [{
+	            xtype: 'treecolumn',
+	            text: 'Images',
+	            flex: 1,
+	            sortable: false,
+	            dataIndex : 'id',
+	            renderer : function(value,metaData,record,rowIndex,colIndex,store,view)
+                {
+                	if (record.get('leaf'))
+                	{
+                		if (record.get('additional_text'))
+                			return record.get('start') + ' - ' + record.get('additional_text');
+                		else
+                			return record.get('start');
+                	}
+                	var start = record.get('start');
+                	var dt = Ext.Date.parse(start,'Y-m-d H:i:s');
+                	return Ext.Date.format(dt, 'Y-m-d') + ' <b>('+record.childNodes.length+' image'+(record.childNodes.length > 1 ? 's' : '')+')</b>';
+                } 
+	        }],
+	        store : Ext.create('Ext.data.TreeStore', {
+	            root: {
+	            	expanded: true,
+	            	children: []
+	        		},
+	        	model : 'ImageNode'
+	        }),
+		    tbar : [
+		            {
+		            	text : 'Collapse all',
+		            	flex : 1,
+		            	scope : me,
+		            	handler : function(o)
+		            	{
+		            		this.getImageTreePanel().collapseAll();
+		            	}
+		            },
+		            {
+		            	text : 'Expand all',
+		            	flex : 1,
+		            	scope : me,
+		            	handler : function(o)
+		            	{
+		            		this.getImageTreePanel().expandAll();
+		            	}
+		            },
+		            {
+		            	text : 'Select all',
+		            	flex : 1,
+		            	scope : me,
+		            	handler : function(o)
+		            	{
+		            		var root = this.getImageTreePanel().getRootNode();
+		            		root.eachChild(function (folder){
+		            			folder.eachChild(function (image){
+		            				image.set('checked',true);
+		            			});
+		            		});
+		            	}
+		            },
+		            {
+		            	text : 'Unselect all',
+		            	flex : 1,
+		            	scope : me,
+		            	handler : function(o)
+		            	{
+		            		var root = this.getImageTreePanel().getRootNode();
+		            		root.eachChild(function (folder){
+		            			folder.eachChild(function (image){
+		            				image.set('checked',false);
+		            			});
+		            		});
+		            	}
+		            }
+		            
+		            ],
+		     dockedItems: [{
+		                xtype: 'toolbar',
+		                dock: 'bottom',
+		                items: [
+		                        {
+		                        	xtype : 'checkbox',
+		                        	boxLabel: 'Load preview',
+		                        	listeners : {
+		                        		'change' : function(o,newVal,oldVal,opts)
+		                        		{
+		                        			me.setPreview(newVal);
+		                        		}
+		                        	}
+		                        },
+		                        '->',
+		                        {
+		                        	xtype : 'button',
+		                        	text  : 'Download selection',
+	      	  	        			scope : this,
+	      	  	        			handler : me.onDownload
+		                        }
+		                        ]
+		    }],
+		    listeners :
+		    {
+			    'afterrender' : function(tree) 
+				{
+					view = tree.getView();
+						
+					
+					view.tip = Ext.create('Ext.tip.ToolTip', {
+						// The overall target element.
+						target: view.el,
+						// Each grid row causes its own seperate show and hide.
+						delegate: view.itemSelector,
+						// Moving within the row should not hide the tip.
+						trackMouse: false,//true,
+						// Render immediately so that tip.body can be referenced prior to the first show.
+						//renderTo : Ext.getBody(),
+						//showDelay : 2,
+						//hideDelay : 0,
+						listeners: {
+							// Change content dynamically depending on which element triggered the show.
+							beforeshow: function updateTipBody(tip) 
+							{							
+								record = view.getRecord(tip.triggerElement);
+								if (record)
+								{
+									if (!record.get('leaf'))
+									{
+										var crtTip = '<b>Name : </b>"' + record.get('name') + '"<br/>';
+										crtTip    += '<b>Start time : </b>"' + record.get('start') + '"<br/>';
+										tip.update(crtTip);
+										return;
+									}
+									var crtTip = '<b>Name : </b>' + record.get('name') + '<br/>';
+									crtTip    += '<b>Start time : </b>' + record.get('start') + '<br/>';
+									crtTip    += '<b>Stop time : </b>' + record.get('stop') + '<br/>';
+									crtTip    += '<b>Exposure time : </b>' + record.get('exposure') + '<br/>';
+									crtTip    += '<b>Target : </b>' + record.get('target') + '<br/>';
+									crtTip    += '<b>Instrument : </b>' + record.get('instrument') + '<br/>';
+									
+									if (me.preview && me.getPreviewUrl)
+										crtTip    += '<img width=300 height=300 src="'+me.getPreviewUrl(record)+'" /><br/>';
+									
+									tip.update(crtTip);
+								}
+		            		}
+						}
+					});
+				}
+		    }
+		};
+	},
+	
+	getImageTreePanel : function()
+	{
+		return this.queryById(this.id+'-images-tree-panel');
+	},
+	
+	getTargetCombo : function()
+	{
+		return this.queryById(this.id+'-combo-target');
+	},
+	
+	forceRefresh : function()
+	{
+		this.onRefreshTree(this);
+	},
+	
+    init : function(config)	
+    {
+	  var me = this;
+		
+	  var myConf = {
+    		  defaults: {
+    	  	    bodyStyle: { background : '#dfe8f6' }
+    	  	  },
+    	  	  layout : 'border',
+    	  	  items: [
+    	  	          {
+    	  	        	xtype : 'panel',
+  	  	        	    region : 'north',
+  	  	        	    height : 40,
+  	  	        	    html : this.getAcknowledgement ? this.getAcknowledgement() : 'ToDo - Acknowledgement'
+    	  	          },
+    	  	          this.createTimeSelectorPanel(config.id),
+    	  	          this.createImageTreePanel(config.id),
+    	  	          {
+    	  	        	  xtype : 'panel',
+    	  	        	  region : 'south',
+    	  	        	  layout : 'hbox',
+    	  	        	  title : 'Interoperability',
+      	  	        	  height : 60,
+      	  	        	  items :
+      	  	        		  [
+      	  	        		   {
+      	  	        			   xtype : 'combobox',
+      	  	        			   fieldLabel : 'Display Mode',
+      	  	        			   flex : 2,
+      	  	        			   disabled : true,
+      	  	        			   allowBlank : false,
+      	  	        			   editable: false,
+      	  	        			   store : [
+      	  	        			            ["mosaic","mosaic"],
+      	  	        			            ["movie","movie"],
+      	  	        			            ["diff","diff"]
+      	  	        			            ]
+      	  	        		   },
+      	  	        		   { xtype: 'component', width: 5},
+      	  	        		   {
+      	  	        			   xtype : 'button',
+      	  	        			   flex : 1,
+      	  	        			   text  : 'Send to Aladin Web',
+      	  	        			   scope : this,
+      	  	        			   handler : this.onSendToWeb
+      	  	        		   },
+      	  	        		   { xtype: 'component', width: 5},
+      	  	        		   {
+      	  	        			   xtype : 'sendToSampButton',
+      	  	        			   flex : 1,
+      	  	        			   type         : 'fits',
+      	  	        			   onSendToSamp : me.onSendFITSToSAMP,
+      	  	        			   sendOpt : {scope : me}
+      	  	        		   }
+      	  	        		  ]
+    	  	          }
+    	  	  ]
+    	  	  };
+      Ext.apply (this , Ext.apply (arguments, myConf));
+    }
+});
\ No newline at end of file
diff --git a/js/app/views/CalculatorUI.js b/js/app/views/CalculatorUI.js
new file mode 100644
index 0000000..c709c56
--- /dev/null
+++ b/js/app/views/CalculatorUI.js
@@ -0,0 +1,490 @@
+/**
+ * Project      : AMDA-NG4
+ * Name         : CalculatorUI.js
+ * @class   amdaDesktop.ExplorerModule 
+ * @extends Ext.util.Observable
+ * @brief   Calculator Plugin used in SearchUI and ParameterUI
+ * @author  elena
+ * @version $Id: CalculatorUI.js 1399 2013-03-27 12:44:50Z elena $
+ *
+ ******************************************************************************
+ *    FT Id     :   Date   : Name - Description
+ ******************************************************************************
+ *
+ *	:           :06/05/2011: CDA  - Extjs 4.0.0 Migration
+ *  :               :16/06/2011: elena - resolve rendering problem (sencha support)
+ *  :	            :26/10/2011: BRE -autoload constants and functions from xml files
+ */
+
+
+/**
+ * @plugin calculator
+ * @extends Ext.util.Observable 
+ * @ptype calculator
+ */
+
+var CalculatorData = ['1','2','3','4','5','6','7','8','9','0','(',')','[',']','+','-','*','/','^', '.','>','<', '&', '|'];
+
+Ext.define('amdaUI.CalculatorUI', {
+	extend: 'Ext.util.Observable',
+	
+	requires : [
+	  'amdaModel.Constant',
+	  'amdaModel.Function'
+	],
+	
+	alias: 'plugin.calculator',
+	
+	statics : {
+	  constantStore : null,
+	  functionStore : null
+	},
+	
+	win: null,
+	
+	constructor: function(config) { 
+		Ext.apply(this, config);  
+		this.callParent(arguments);
+	},
+
+	init: function(cmp) 
+	{  
+	    this.hostCmp = cmp;
+	    this.hostCmp.on({
+	        scope: this,		 	       
+	        added: function(){
+		    this.hostCmp.ownerCt.on({
+		      render: this.onRender,
+	          show: this.onShow,
+	          hide : this.onHide,
+		      scope: this });		   
+	        }
+	    }); 
+	   
+	},
+	
+	onRender: function() 
+	{
+		this.win = new Ext.Window({
+			width: 350, 
+			height: 170,
+			x: 380, y: 0,
+			baseCls:'x-panel',	 
+			title: 'Tools For ' + this.context + ' Construction',
+			layout: 'fit',
+			closable: false,
+			collapsible: true,
+			constrain: true,
+			floating: true,
+			ghost: false,
+			renderTo: this.hostCmp.id,
+			items: this.getFormConfig(),
+			listeners : {
+				boxready: function (w) 
+				{
+					if (w.y + w.height > myDesktopApp.desktop.el.getHeight())
+						w.el.setY((myDesktopApp.desktop.el.getHeight()-w.height > 0) ? myDesktopApp.desktop.el.getHeight()-w.height : 0);
+        		}
+			},
+			getConstrainVector: function(constrainTo){
+				var me = this;
+		        if (me.constrain || me.constrainHeader) {
+		            constrainTo = constrainTo || (me.floatParent && me.floatParent.getTargetEl()) || me.container || me.el.getScopeParent();
+		            return (me.constrainHeader ? me.header.el : me.el).getConstrainVector(constrainTo);
+		        }
+		    }
+		});
+		
+		//load constants store
+		if (!amdaUI.CalculatorUI.constantStore)
+		{
+		  amdaUI.CalculatorUI.constantStore = Ext.create('Ext.data.Store',{model: 'amdaModel.Constant'});
+		  amdaUI.CalculatorUI.constantStore.load({
+		    scope   : this,
+		    callback: function(records, operation, success) 
+		    {
+			  	this.createConstantBtns();
+		    }
+		  });
+		}
+		else
+			this.createConstantBtns();
+
+		//load functions store
+		if (!amdaUI.CalculatorUI.functionStore)
+		{
+		  amdaUI.CalculatorUI.functionStore = Ext.create('Ext.data.Store',{model: 'amdaModel.Function'});
+		  amdaUI.CalculatorUI.functionStore.load({
+		    scope   : this,
+		    callback: function(records, operation, success) 
+		    {
+			  	this.createAllFunctionBtns();
+		    }
+		  });
+		}
+		else
+			this.createAllFunctionBtns();
+	
+		
+	},
+	
+	onShow: function() {
+		this.win.show(); 
+		var parentWin = this.hostCmp.findParentByType('window');
+		
+		if (parentWin.getId() === myDesktopApp.dynamicModules.param.id) {
+			this.win.setPosition(335,10);
+		}
+		else {
+			
+			var posX =  parentWin.getWidth() - this.win.getWidth() - 30;
+			var posY = parentWin.getHeight() - this.win.getHeight() - 110 - 30/*20*/;
+			this.win.setPosition(posX,posY);//(420,290);
+		}
+	},
+	
+	onHide : function()
+	{
+		this.win.hide(); 
+	},
+ 	
+	getFormConfig: function(){
+		return {
+			xtype: 'tabpanel',
+			border: false, frame: true, plain: true,
+			enableTabScroll: true, 
+			defaults: { frame: true, border: false, plain: true, autoScroll:true},
+			activeTab: 0,
+			items: [ {
+				title: 'Calculator',layout: 'column',
+				defaults: { xtype: 'button', columnWidth: .11},
+				items: this.getItems('Calculator')
+			} , {
+				title: 'Constants', layout: 'column',
+				defaults: { xtype: 'button', columnWidth: .20},
+				id : 'calc_tab_const_id'
+			}, {
+				title: 'Functions', xtype:'tabpanel', //iconCls: 'tabs',
+				enableTabScroll: true,	tabPosition: 'bottom',	
+				defaults: { frame: true, border: false, plain: true, layout: 'column', autoScroll:true},
+				activeTab: 0,
+				id : 'calc_tab_func_id'
+			}]
+		};					 
+	},
+
+	/**
+	 * Prompt any argument to user before processing Formula
+	 * @param sel selected text
+	 * @param currentBtn calculator button pressed
+	 * @param params array of parameters
+	 */
+	preProcessFormula: function(sel,currentBtn, params) {
+		
+		if (currentBtn.initialConfig.args!=0 && currentBtn.initialConfig.prompt!=""){
+			// Prompt for user precision and process the result using a callback
+			Ext.Msg.prompt('Argument',currentBtn.initialConfig.prompt, function(bt2, text){
+				if (bt2 === 'ok'){
+					var afterParamsText = "," + text + ")";
+					//TODO: more than one args and prompt
+					this.processFormula(sel,currentBtn, params, afterParamsText);
+
+				}
+			},this);
+		} else {
+			this.processFormula(sel,currentBtn, params, ")");
+		}// endif prompt
+	},
+	
+	processFormula : function(sel,currentBtn, params, afterParamsText){
+		// calculation of the required number of parameters
+		var nbParams = currentBtn.initialConfig.params;
+		var fnText = currentBtn.text.split('(');
+		var newConstruction = sel.beforeText + fnText[0]+"(";
+		// if there at least one parameter selected
+		if (params.length){
+			for (var i=0;i<nbParams;i++) {
+				if(i>0) {
+					newConstruction += ",";
+				}
+				newConstruction += params[i];
+			}
+		}
+		// we keep position
+		var afterParameterPos = newConstruction.length;
+		newConstruction += afterParamsText;
+		var caretPos = newConstruction.length;
+		newConstruction += sel.afterText;
+		this.hostCmp.constructionField.setValue(newConstruction);
+
+		// If we haven't the right number of selected parameters
+		if (params.length < nbParams){
+			var stringParamRequired = currentBtn.initialConfig.params+" parameter(s)";
+			Ext.Msg.alert('Caution', 'you\'ll have to add '+ stringParamRequired +' to apply this function', 
+				function(){
+					// set Caret Position at placement of required parameter in function
+					this.hostCmp.constructionField.setCaretPosition(afterParameterPos);
+				},this
+			);											        	
+		} else {
+			// set Caret Position after inserted Text
+			this.hostCmp.constructionField.setCaretPosition(caretPos);
+		}
+	},
+	
+	/**
+	 * This method construct an array of arguments into selected text
+	 * @param selectedText the selection to parse
+	 * @param parseIndex the index to start parsing
+	 * @return the arguments array
+	 */
+	parseArgsInFormula : function (selectedText, parseIndex) {
+		
+		if (!selectedText || selectedText==""){
+			return [];
+		} else {
+			var params = [];
+			var startIndex = parseIndex;
+			var curIndex = parseIndex;
+			var openBrace = 0;
+			var sep = 0;
+			var closeBrace = 0;
+			
+			// while there is a separator
+			while(sep!=-1){
+				openBrace = selectedText.indexOf("(",curIndex);
+				sep = selectedText.indexOf(",",curIndex);
+				closeBrace = selectedText.indexOf(")",curIndex);
+				
+				// if there's an open bracket and no close bracket or inversely
+				if (openBrace!=-1 && closeBrace==-1 || openBrace==-1 && closeBrace!=-1) {
+					// invalid selection
+					return -1;
+				}
+				
+				// if there's a separator and opening brackets into selection
+				if (sep!=-1 && openBrace!=-1){
+					// if brace is before separator 
+					if (openBrace<sep) {
+						curIndex = this.getEndBracket(selectedText,openBrace+1);
+						if (curIndex===-1){
+							return -1;
+						}
+					} else {// else separator is before brace
+						params.push(selectedText.substring(startIndex,sep));
+						startIndex = curIndex = sep+1;
+					}
+				// if there's only separators into selection
+				} else if (sep!=-1) {
+					params.push(selectedText.substring(startIndex,sep));
+					startIndex = curIndex = sep+1;
+				}
+			}
+			params.push(selectedText.substring(startIndex,selectedText.length));			
+			return params;
+		}
+	},
+
+	getEndBracket : function(string,indOpenBrace){
+		// we search for the corresponding end brace (after open bracket)
+		var currentIndex = indOpenBrace;
+		var nextCloseBrace = 0;
+		var nextOpenBrace = 0;
+		var braceLevel = 1;
+		while (nextCloseBrace!==-1 && braceLevel!==0){
+			// get index of next opening bracket
+			nextOpenBrace = string.indexOf("(",currentIndex);
+			// get index of next closing bracket
+			nextCloseBrace = string.indexOf(")",currentIndex);
+			// if both exist
+			if (nextOpenBrace!=-1 && nextCloseBrace!=-1) {
+				// if opening bracket is before closing one
+				if (nextOpenBrace<nextCloseBrace) {
+					currentIndex = nextOpenBrace+1;
+					braceLevel++;
+				} else { // if closing bracket is before opening one
+					currentIndex = nextCloseBrace+1;
+					braceLevel--;
+				}
+			// if there's only a next opening bracket
+			} else if (nextOpenBrace!=-1 && nextCloseBrace==-1) {
+				currentIndex = nextOpenBrace+1;
+				braceLevel++;
+			// if there's only a next closing bracket
+			} else if (nextOpenBrace==-1 && nextCloseBrace!=-1) {
+				currentIndex = nextCloseBrace+1;
+				braceLevel--;
+			}
+		}
+		// if no level imbrication left return index after closing bracket of block else -1
+		return braceLevel==0 ? currentIndex : -1;
+	},
+	
+	getCalculatorBtn : function()
+	{
+		var btns = [];
+		
+		Ext.each(CalculatorData, function (c){
+		  btns.push({
+		    text: c,
+			scope: this,
+			handler: function(b,e){
+			  // keep selection into construction field
+			  var selection = this.hostCmp.constructionField.getSelection();
+			  // the new value of construction field
+			  var newConstruction = "";
+			  // replacement of selection into construction field by text of clicked button
+			  newConstruction = selection.beforeText + b.text;
+			  var caretPos = newConstruction.length;
+			  newConstruction += selection.afterText;
+			  this.hostCmp.constructionField.setValue(newConstruction);
+			  // set Caret Position after inserted Text
+			  this.hostCmp.constructionField.setCaretPosition(caretPos);
+		    }
+		  })
+		},
+		this
+	  );
+		
+	  return btns;
+	},
+	
+	createConstantBtns : function(){
+	  var constTab = this.win.query('#calc_tab_const_id');
+	  
+	  if (constTab.length < 1)
+		  return;
+	  
+	  amdaUI.CalculatorUI.constantStore.each( function(c){
+		 constTab[0].add(
+				 {
+					 text: c.get('name'),
+					 tooltip: c.get('units') == '' ? c.get('info')+'<br/>'+c.get('value') :
+									 c.get('info')+'<br/>'+c.get('value')+' '+c.get('units'),
+					 scope: this,
+					 handler: function(b,e){
+						 // keep selection into construction field
+						 var selection = this.hostCmp.constructionField.getSelection();
+						 // the new value of construction field
+						 var newConstruction = "";
+						 // replacement of selection into construction field by text of clicked button
+						 newConstruction = selection.beforeText + '@'+b.text;
+						 var caretPos = newConstruction.length;
+						 newConstruction += selection.afterText;
+						 this.hostCmp.constructionField.setValue(newConstruction);
+						 // set Caret Position after inserted Text
+						 this.hostCmp.constructionField.setCaretPosition(caretPos);
+					 }
+				 });
+	  },this);
+	},
+	
+	createAllFunctionBtns : function()
+	{
+		this.createFunctionBtns('IdlFunctions','Simple Maths');	  	
+	  	this.createFunctionBtns('TimeFunctions','Statistics');
+	  	this.createFunctionBtns('FunctionsSliding','Statistics/Sliding');
+		this.createFunctionBtns('AmdaFunctions','Space Physics');
+	},
+	
+	createFunctionBtns : function(item, tabTitle)
+	{
+		var funcTab = this.win.query('#calc_tab_func_id');
+		  
+		if (funcTab.length < 1)
+		  return;
+		
+		switch (item) 
+		{
+		  case 'IdlFunctions' :
+			  amdaUI.CalculatorUI.functionStore.filter('kind','idl');
+		    break;
+		  case 'AmdaFunctions' :
+			  amdaUI.CalculatorUI.functionStore.filter('kind','amda');  
+			break;
+		  case 'TimeFunctions' :
+			  amdaUI.CalculatorUI.functionStore.filter('kind','time'); 
+			  break;
+		  case 'FunctionsSliding' :
+			  amdaUI.CalculatorUI.functionStore.filter('kind','sliding'); 
+		    break;
+		}
+		
+		var crtTab = funcTab[0].add(
+				{
+					title : tabTitle,
+					defaults: { xtype: 'button',  columnWidth: .20}
+				});
+		
+		amdaUI.CalculatorUI.functionStore.each( function(f){
+			crtTab.add(
+					{
+						text: f.get('name'),
+						args: f.get('args'),
+						params: f.get('params'),//"+",
+						prompt: f.get('prompt'),
+						tooltip: f.get('info_brief'),
+						disabled: f.get('argv') == 'vector',
+						scope: this,
+						handler: function(b,e){
+							var selection = this.hostCmp.constructionField.getSelection();
+							var selectedText = selection&&selection.text!="" ? Ext.util.Format.trim(selection.text) : null;
+							if (selectedText && selectedText!==""){
+								selectedText.replace("[","(");
+								selectedText.replace("{","(");
+								selectedText.replace("}",")");
+								selectedText.replace("]",")");
+							}
+							// Formula Parsing for arguments
+							var params = this.parseArgsInFormula(selectedText,0);
+//							var params = selectedText ? selectedText.split(',') : [];
+							if (params === -1) {
+								Ext.Msg.alert("Invalid Selection", "Action aborted");
+							} 
+							else {
+								// calculation of the required number of parameters
+								var nbParams = b.initialConfig.params;
+
+								if (params.length>nbParams)
+								{
+									// Show a dialog using config options:
+									Ext.Msg.show({
+										title:'Caution',
+										msg: 'you have selected more than '+nbParams+' parameter(s) to apply this function<br>Only the first will be kept, others will be deleted',
+										buttons: Ext.Msg.OKCANCEL,
+//										animEl: 'elId',
+										icon: Ext.MessageBox.WARNING,
+										fn: function(bt1){
+										if (bt1 === 'ok'){
+											this.preProcessFormula(selection,b, params);
+										}
+									},
+									scope:this
+									});
+								} 
+								else 
+								{
+									this.preProcessFormula(selection,b, params);
+								}
+							}
+						}
+					});
+		},
+		this
+	  );
+      //clear filter
+	  amdaUI.CalculatorUI.functionStore.clearFilter();
+      
+	},
+      
+	getItems:  function(item)
+	{          
+	  switch (item) 
+	  {
+	    case 'Calculator': 
+		  return this.getCalculatorBtn();
+		default: break;
+	  }
+	  return [];	      
+	}				  
+});
diff --git a/js/app/views/DownloadUI.js b/js/app/views/DownloadUI.js
new file mode 100644
index 0000000..7c5d098
--- /dev/null
+++ b/js/app/views/DownloadUI.js
@@ -0,0 +1,660 @@
+/**
+ * Project   : AMDA-NG
+ * Name      : DownloadUI.js
+ * @class 	 amdaUI.DownloadUI
+ * @extends  Ext.container.Container 
+ * @brief    Download Module UI definition (View)
+ * @author 	 Myriam
+ * @version $Id: DownloadUI.js 2622 2014-11-07 14:50:09Z elena $  
+ */
+ 
+ 
+Ext.define('amdaUI.DownloadUI', {
+	extend: 'Ext.container.Container',
+	alias: 'widget.panelDownload',
+
+	requires: [
+		'amdaUI.TimeSelectorUI',
+		'amdaUI.SearchParamEditorPlugin'
+	],   
+	
+	timeformatData    : [['Y-m-dTH:i:s', 'YYYY-MM-DDThh:mm:ss'], ['Y m d H i s', 'YYYY MM DD hh mm ss'], ['d m Y H i s', 'DD MM YYYY hh mm ss'], ['Y z H i s', 'YYYY DDD hh mm ss']],
+	fileformatData    : [['ASCII', 'ASCII'],['vot', 'VOTable']],
+	fileformatTTData  : [['text', 'plain text'], ['vot','VOTable']],
+	filecompressData  : [['zip', 'zip'], ['tar+gzip', 'tar+gzip']],
+	filestructureData : [['0','All In One File'], ['1','One File Per Time Interval'], ['2','One File Per Param/Interval']],
+	fileheaderData    : [['0','Write Into Data File'], ['1','Create Separate File']],
+
+	constructor: function(config) {	  
+		this.init(config);
+		this.callParent(arguments);		
+	    // load object into view		 
+	 	if (this.object) this.loadObject();	        
+	},
+
+	addTT : function(newTTName,newTTid)
+        {		 
+		var tabPanel = this.formPanel.down();
+		var downloadSrc = tabPanel.items.indexOf(tabPanel.getActiveTab());
+		 
+		if (downloadSrc === 0) {
+                    this.timeSelector.addTT(newTTName,newTTid);
+		}
+		else {
+                    // search for an existing record in store with this unique name
+                    var existingIndex = this.TTGrid.store.findExact( 'name', newTTName);
+                    // if no corresponding TT found
+                    if (existingIndex == -1){
+                        // adding the time table to the TTGrid of TT download 
+                        var r = Ext.create('amdaModel.TTobject', { id: newTTid, name: newTTName });
+                        this.TTGrid.store.insert(this.TTGrid.store.getCount(),r);   
+                    }        
+		}
+	},
+
+	addTTs : function(TTarray) {
+	// set TTTab	    
+	this.timeSelector.setTTTab(TTarray);
+	},
+	
+	// Add TT in download TT module
+	addTTdownload : function(newTTName,newTTid){
+		var tabPanel = this.formPanel.down();
+		tabPanel.setActiveTab(1);
+		this.addTT(newTTName,newTTid);
+		
+	},	
+        
+        /**
+         * Set Start-Stop from parameter info (Local & MyData)
+         */ 
+        setTimeFromData : function(obj) {
+                                                                  
+            var dateStart = new Date(obj.start.replace(/[T|Z]/g,' ').replace(/\-/g,'\/')); 
+            var dateStop = new Date(obj.stop.replace(/[T|Z]/g,' ').replace(/\-/g,'\/')); 
+            
+            this.down('form').getForm().setValues({ startDate : dateStart, stopDate : dateStop });
+            this.timeSelector.intervalSel.updateDuration();
+        },
+        
+        addParam : function(newParamName,isLeaf) 
+        {
+            // search for an existing record in store with this unique name
+            var existingIndex = this.paramGrid.store.findExact('name', newParamName);
+            // if no corresponding parameter found
+            if (existingIndex == -1){
+                // adding the parameter to the  paramGrid
+                var r = Ext.create('amdaModel.AmdaObject', {name: newParamName });
+                var pos = newParamName.indexOf('ws_',0) == -1 ? 0 :this.paramGrid.store.getCount();
+                this.paramGrid.store.insert(pos,r); 
+                this.paramGrid.getView().refresh();                
+            }        
+        },
+
+        addParams: function(arrayParams) 
+        {
+            var arrayRec = new Array();
+            var index = 1;		 
+            if (arrayParams)
+            {
+                index = 0;            
+                Ext.Array.each(arrayParams,function(item){		
+                        if (Ext.isObject(item)) {
+                                // for Parameter Name in Download Module
+                                var r = Ext.create('amdaModel.AmdaObject', { name: item.get('name') });
+                        }
+                        else {
+                                // for Download By Request in Operations menu
+                                var r = Ext.create('amdaModel.AmdaObject', { name: item });
+                        }
+                    arrayRec.push(r);
+                });
+            } 	     
+            this.paramGrid.getStore().loadData(arrayRec);
+        },
+	
+	// parameter name -> alias
+	updateConstruct : function(oldval,newval) {
+		var index = this.paramGrid.store.findExact('name', oldval);
+		if (index != -1) {
+			this.paramGrid.getStore().getAt(index).set('name',newval);
+			this.paramGrid.getStore().getAt(index).set('text',newval);	
+    	}
+	},
+	
+	setObject : function(obj) {
+		this.object = obj;  
+		this.loadObject();
+	},
+
+	/**
+	 * update this.object from form
+	 */
+        updateObject : function()
+        {    
+            // get the basic form
+            var tabPanel = this.formPanel.down();
+            var downloadSrc = tabPanel.items.indexOf(tabPanel.getActiveTab());
+            var basicForm = this.formPanel.getForm();
+            var updateStatus = true;
+            var values = basicForm.getValues();
+            
+            // data download
+            if (downloadSrc === 0) 
+            {            
+                var timeformat =  basicForm.findField('timeformat').getRawValue();         
+                var timeSource = values.timesrc_downloadTimeSelector;           
+                var structure = values.filestructure;
+                var sampling = values.sampling ? values.sampling : 600;
+                var output = values.output ? values.output : '';
+                var header = values.header;
+                var fileformat = values.fileformat;
+                var compression = values.compression;
+
+          	  var fieldsWithoutName = basicForm.getFields().items;
+        	  Ext.Array.each(fieldsWithoutName, function(item, index,allItems){		     
+        		   if (!item.isValid()) {
+            		  if ((timeSource === amdaModel.AmdaTimeObject.inputTimeSrc[0]) &&
+               			   ((item.name == 'startDate') || (item.name == 'stopDate') || (item.name == 'duration'))) {
+               			  	updateStatus = true;
+               		  }
+               		  else {
+               			// set update isn't allowed
+                             updateStatus = false;
+                             return false;
+               		  }       
+        		   }
+        	  }, this);
+        	  
+                if (timeSource === amdaModel.AmdaTimeObject.inputTimeSrc[0] // timeSource  'TimeTable'
+                        && this.timeSelector.TTGrid.getStore().count() == 0) {
+                    myDesktopApp.warningMsg('You\'ve chosen Time Selection `by TimeTable` but no timeTable was added!'
+                            +'<br>You must add one or choose Time Selection `by Interval`'); 
+                    updateStatus = false;    
+                }
+                                
+                if (updateStatus) 
+                {
+                    /// real object update
+                    // update TimeTable object with the content of form
+                    basicForm.updateRecord(this.object);
+                    this.object.set('timesrc', timeSource);
+                    // set valid intervals into TimeTable object
+                    if (timeSource === amdaModel.AmdaTimeObject.inputTimeSrc[0])
+                            this.object.set('timeTables',this.timeSelector.TTGrid.getStore().data.items);
+                    // set parameters			    
+                    this.object.set('list',this.paramGrid.getStore().data.items);
+                    this.object.set('structure', structure);
+                    this.object.set('sampling', sampling);
+                    this.object.set('output',output);
+                    this.object.set('header', header);	
+                    this.object.set('timeformat',timeformat);
+                    this.object.set('fileformat',fileformat);
+                    this.object.set('compression',compression);
+                }    
+            }
+            //TT download
+            else 
+            {
+                var timeformat =  values.timeformatTT;
+                var compression = values.compressionTT;
+                var fileformat = values.fileformatTT;
+                this.object.set('timeTables',this.TTGrid.getStore().data.items);
+                this.object.set('timeformatTT',timeformat);
+                this.object.set('fileformatTT',fileformat);
+                this.object.set('compressionTT',compression);
+            }
+            
+            this.object.set('downloadSrc',downloadSrc);
+            // return the update status
+            return updateStatus;	    
+	},
+
+	/**
+	 * load this.object into form
+	 */
+	loadObject : function(){	
+	
+	if (!this.object.get('timeformat'))
+		 this.object.set('timeformat', this.timeformatData[0][0]);
+	
+	if (!this.object.get('timeformatTT'))
+		 this.object.set('timeformatTT', this.timeformatData[0][0]);
+	
+	if (!this.object.get('fileformat'))
+		this.object.set('fileformat', this.fileformatData[0][0]);
+	
+	if (!this.object.get('fileformatTT'))
+		  this.object.set('fileformatTT', this.fileformatTTData[0][0]);
+	
+	if (!this.object.get('compression'))
+		    this.object.set('compression', this.filecompressData[1][0]);
+
+	if (!this.object.get('compressionTT'))
+	    this.object.set('compressionTT', this.filecompressData[1][0]);
+	
+	if (!this.object.get('header'))
+	    this.object.set('header', this.fileheaderData[0][0]);
+	
+	// load object into form	
+	this.formPanel.getForm().loadRecord(this.object);
+        // set object's TTs into the timeselector
+	this.addTTs(this.object.get('timeTables'));	 
+	// set parameters 	
+	this.addParams(this.object.get('list'));	     
+	},
+
+	/**
+	 * download method called by 'Download' button to launch the download process
+	 */
+	doDownload : function(){	 
+		var downloadModule = myDesktopApp.getLoadedModule(myDesktopApp.dynamicModules.download.id);
+		if (downloadModule)
+			downloadModule.linkedNode.execute();	
+	   // fire execution  
+	  //  this.object.fireEvent('execute',this.object.dirty);
+	},
+	 
+	
+	removeItem: function(grid, cell, cellIndex, record, row, recordIndex, e){
+		if (cellIndex == 2)
+			grid.getStore().remove(record);
+	},
+	 
+	disableField : function(combo, newValue, oldValue){
+		var tt = combo.next();
+
+		if (tt &&  newValue !== oldValue) {
+		   var ff = tt.next();
+		   if (newValue == 2) {
+		     tt.setDisabled(true);
+		  //   ff.setDisabled(true);
+		   }
+		   else {
+		     tt.setDisabled(false);
+		  //   ff.setDisabled(false);
+		   }
+		}
+	},
+	
+	/**
+	 * Check if changes were made before closing window 
+	 * @return false
+	 */	
+	fclose : function() {
+		return false;
+	},
+	
+	init : function (config){
+		
+		this.timeSelector = new amdaUI.TimeSelectorUI({id: 'downloadTimeSelector',flex: 1});
+		
+		this.paramGrid = Ext.create('Ext.grid.Panel', {
+		    flex: 2,
+		    store : Ext.create('Ext.data.Store', { model: 'amdaModel.AmdaObject'} ),  
+		    columns: [ 
+			{ xtype: 'rownumberer', width: 20 },
+			{ header: "Parameter Name", dataIndex: 'name', flex:1, sortable: false, menuDisabled : true },
+			{ 
+			    menuDisabled : true, width: 30, renderer: function(){
+				return'<div class="icon-remover" style="width: 15px; height: 15px;"></div>';
+			    }
+			}
+		    ],
+			//TODO - BRE - Wait the fix for drag&drop issue
+		    listeners :
+			{
+			  render : function(o,op)
+			  {
+			    var me = this;
+			    var el = me.body.dom;
+			    var dropTarget = Ext.create('Ext.dd.DropTarget', el, {
+			        ddGroup: 'explorerTree',
+			        notifyEnter : function(ddSource, e, data) 
+			        { },
+			        notifyOver  : function(ddSource, e, data)
+			        {                                    
+                                    if (data.records[0].data.nodeType == 'localParam' && data.records[0].get('notyet')) {
+                                        this.valid = false;
+                                        return this.dropNotAllowed;   
+                                    }	
+                                    if (((data.records[0].data.nodeType == 'localParam')   ||
+                                                (data.records[0].data.nodeType == 'remoteParam') || 
+                                                (data.records[0].data.nodeType == 'remoteSimuParam') ||
+                                                (data.records[0].data.nodeType == 'derivedParam') || 
+                                                (data.records[0].data.nodeType == 'myDataParam') ||
+                                                (data.records[0].data.nodeType == 'alias'))&&
+                                                (data.records[0].isLeaf() || data.records[0].data.isParameter) &&
+                                                !data.records[0].data.disable)
+                                    {
+                                        this.valid = true;
+                                        return this.dropAllowed;
+                                    }
+                                    
+                                    this.valid = false;
+                                    return this.dropNotAllowed;
+			        },
+			        notifyDrop  : function(ddSource, e, data)
+			        {
+			          if (!this.valid)
+			            return false;
+                                    var nameToSent;
+                                    switch (data.records[0].data.nodeType)
+                                    {
+                                        case 'localParam' :
+                                        case 'remoteParam':
+                                        case 'remoteSimuParam':                                           
+                                            nameToSent = data.records[0].get('id');
+                                            if (data.records[0].get('alias')!= "" )
+                                            var nameToSent = "#"+data.records[0].get('alias');
+                                            break;
+                                        case 'alias' :
+                                            nameToSent = "#"+data.records[0].get('text');
+                                            break;
+                                        case 'derivedParam' :
+                                            nameToSent = "ws_"+data.records[0].get('text');
+                                            break;
+                                        case 'myDataParam' :
+                                            nameToSent = "wsd_"+data.records[0].get('text');
+                                            break;
+                                        default :
+                                            return false;
+                                    }
+                                    var downModule = myDesktopApp.getLoadedModule(myDesktopApp.dynamicModules.download.id);
+                                    if (downModule)
+                                    {
+                                    	if (data.records[0].get('needsArgs') && !data.records[0].get('isSpectra')) { 				    
+                                    		downModule.getUiContent().fireEvent('openParamEditor',nameToSent);
+                                    	}
+                                    	else {
+                                    		downModule.addParam(nameToSent,true);	
+                                    	}
+                                    }
+			          return true;
+			        }
+			    });
+			  }
+			}
+			
+		});      
+						
+		this.paramGrid.on('cellclick', this.removeItem, this);
+
+		this.TTGrid = Ext.create('Ext.grid.Panel', {
+		    flex: 2,
+		    store : Ext.create('Ext.data.Store', {model: 'amdaModel.TTobject'}),  
+		    columns: [ 
+			{ xtype: 'rownumberer', width: 20 },
+			{ header: "Time Table Name", dataIndex: 'name', flex:1, sortable: false, menuDisabled: true},
+			{ 
+			    menuDisabled : true, width: 30, renderer: function(){
+				return '<div class="icon-remover" style="width: 15px; height: 15px;"></div>';
+			    }
+			}
+		    ],
+	    listeners :
+		{
+		  render : function(o,op)
+		  {
+		    var me = this;
+		    var el = me.body.dom;
+		    var dropTarget = Ext.create('Ext.dd.DropTarget', el, {
+		        ddGroup: 'explorerTree',
+		        notifyEnter : function(ddSource, e, data) 
+		        {
+		    	  
+		        },
+		        notifyOver  : function(ddSource, e, data)
+		        {
+		        	if ((data.records[0].get('nodeType') == 'timeTable' || data.records[0].get('nodeType') == 'sharedtimeTable') && (data.records[0].get('leaf')))
+		        	{
+		        	  this.valid = true;
+		        	  return this.dropAllowed;
+		        	}
+		        	this.valid = false;
+		        	return this.dropNotAllowed;
+		        },
+		        notifyDrop  : function(ddSource, e, data)
+		        {
+		          if (!this.valid)
+		            return false;
+		          var downModule = myDesktopApp.getLoadedModule(myDesktopApp.dynamicModules.download.id);
+		          if (downModule)
+		        	  downModule.getUiContent().addTTdownload(data.records[0].get('text'),data.records[0].get('id'));
+		          return true;
+		        }
+		    });
+		  }
+		}
+		});
+		this.TTGrid.on('cellclick', this.removeItem, this);
+						
+		this.paramPanel = { 		 
+		      xtype: 'container',	  
+		      title: 'Get Data',		   
+		      layout: {
+			  type: 'hbox',
+			  align : 'stretch',
+			  defaultMargins: {top: 10, left:10, bottom: 5, right:10}
+		      },
+		      items: [		     
+			  {
+			     xtype: 'container',
+			     flex: 2,
+			     layout: {
+			 	type: 'vbox',
+			 	align : 'stretch'
+			      },
+			     items: [ 				
+				{
+				  xtype: 'textfield',				 				 
+				  fieldLabel: 'Request Name',
+				  disabled: true,
+				  name : 'name'	 
+				}, 
+				{
+				  xtype: 'splitter',
+				  flex: 0.05 
+				},  	 			 				 			 	      
+			 	this.paramGrid
+			      ]  
+			   },			 
+			  {                 		   
+			    xtype: 'container',
+			    flex: 2,
+			    defaults : {
+			      xtype : 'combo',
+			      labelWidth: 90,
+			      queryMode: 'local',
+			      editable: false
+			    },
+			    layout: {
+				type: 'vbox',
+				align: 'stretch'
+			    },
+			    items: [				
+				{				    				  
+				  fieldLabel: 'Time Format',				  
+				  name: 'timeformat',				   
+				  store: this.timeformatData,
+				  value: this.timeformatData[0]					     
+				},
+				{  xtype : 'checkbox', boxLabel: 'Show Milliseconds', 		
+				   boxLabelAlign: 'before',
+				   name: 'milli', checked: false//,
+				 //  margin : '0 0 5 150' //(top, right, bottom, left).
+				},	   
+				{				    
+				    fieldLabel: 'File Structure',
+				    name: 'filestructure',
+				    store: this.filestructureData,
+				    value: this.filestructureData[2],
+				    listeners : {
+				      change  : { fn : this.disableField }
+				    } 
+				},  		 					    						
+				{
+				    xtype: 'numberfield', name: 'sampling',
+				    fieldLabel: 'Sampling Time', value: 600,
+				    hideTrigger: true,  editable: true,
+				    disabled: true
+				},
+				{
+				    xtype: 'textfield', name: 'output',
+				    fieldLabel: 'File Name',				    
+				    disabled: true,  editable: true
+				},
+				{				      
+				      fieldLabel:'Header',
+				      name: 'header',				       
+				      store: this.fileheaderData,
+				      value: this.fileheaderData[0]  
+				},                        
+				{				     
+				      fieldLabel: 'File Format',
+				      name: 'fileformat',				    
+				      store: this.fileformatData, 
+				      value: this.fileformatData[0]                  	        	        	 
+				},				
+				{
+				      fieldLabel: 'Compression', 
+				      name: 'compression',
+				      store: this.filecompressData, 
+				      value: this.filecompressData[0]
+				},
+				this.timeSelector
+                      ]
+                   } 
+                ]};
+ 
+		     this.ttPanel =
+		     {  
+			  xtype: 'container',	        
+			  title: 'Get Time Table',			 
+			  layout: {
+			      type: 'hbox',
+			      align : 'stretch',
+			      defaultMargins: {top: 10, left:10, bottom: 5, right:10}
+			  },
+			  items: [ 			 									 			 				 			 	      
+			 	this.TTGrid,			         
+			  {                 		   
+			    xtype: 'container',
+			    flex: 2,
+			    defaults : {
+			      xtype : 'combo',
+			      labelWidth: 90,
+			      queryMode: 'local',
+			      editable: false			      
+			    },
+			    layout: {
+				type: 'vbox',
+				align : 'stretch'
+			    },
+			    items: [			       
+				{				    				  
+				  fieldLabel:'Time Format',				  
+				  name:'timeformatTT',				   
+				  store: this.timeformatData,
+				  value: this.timeformatData[0]					     
+                   		 }, 
+				{				     
+				    fieldLabel: 'File Format ',
+				    name: 'fileformatTT',				    
+				    store: this.fileformatTTData, 
+				    value: this.fileformatTTData[0]                  	        	        	 
+				},				
+				{
+				    fieldLabel: 'Compression ', 
+				    name: 'compressionTT',
+				    store: this.filecompressData, 
+				    value: this.filecompressData[0]
+				}	          	        	           
+			    ]
+                         }
+	             ]
+			 } ;       
+ 
+		this.formPanel = new Ext.form.Panel({
+		    layout: 'fit',
+		    region: 'center',
+		    bodyStyle: { background : '#dfe8f6' },  
+		    buttonAlign: 'left',
+		    trackResetOnLoad: true,  //reset to the last loaded record
+		    defaults: {
+			border: false
+		    },
+		    items: [  			   
+			 {
+			   xtype: 'tabpanel',
+			   activeTab : 0,
+			   bodyStyle: { background : '#dfe8f6' },
+			   items: [
+			       this.paramPanel,
+			       this.ttPanel			      
+			   ]
+			 }
+		      ],
+		    fbar: [
+			  {
+			    text: 'Download',
+			    scope : this,
+			    handler: function(button){
+			    // if the return is true (object had been updated)
+			      if(this.updateObject()){
+			      // launch the search process 			        
+				this.doDownload();				   				
+			      }
+			    } 
+			  },
+			  {
+                            text: 'Reset',
+			    scope : this,
+			    handler: function(){
+				  this.formPanel.getForm().reset();	
+				  
+				  var tabPanel = this.formPanel.down();
+				  var downloadSrc = tabPanel.items.indexOf(tabPanel.getActiveTab());					 
+			      if (downloadSrc === 0) {
+			    	  // reset parameters and Time Tables in Get Data
+			    	  this.paramGrid.store.removeAll();
+			    	  this.timeSelector.TTGrid.store.removeAll();
+			      }
+			      else {
+			    	// reset Time Tables in Get time Table
+			    	  this.TTGrid.store.removeAll();
+			      }
+			    }			 
+			  }
+		    ]  
+		});
+    	 
+		
+	var myConf = {
+		layout: 'border',
+		items: [		   
+		      this.formPanel, 		     
+		      {
+			xtype: 'panel', 
+			region: 'south',
+			title: 'Information',
+			collapsible: true,
+			height: 100,
+			autoHide: false,
+			bodyStyle: 'padding:5px',
+			iconCls: 'icon-information',
+			  loader: {
+			    autoLoad: true,
+			    url: helpDir+'downloadHOWTO'
+			  }
+
+		    	  
+		      }
+		],
+		plugins: [ {ptype: 'searchParamEditorPlugin'}]
+	  };
+        
+	Ext.apply (this, Ext.apply(arguments, myConf));
+      }
+
+});
diff --git a/js/app/views/ExplorerUI.js b/js/app/views/ExplorerUI.js
new file mode 100644
index 0000000..10baeec
--- /dev/null
+++ b/js/app/views/ExplorerUI.js
@@ -0,0 +1,1114 @@
+Ext.Ms/**
+ * Project      : AMDA-NG4
+ * Name         : ExplorerUI.js
+ * Description  : Explorer Module UI definition (View)
+ * @class   amdaUI.ExplorerUI 
+ * @extends Ext.tab.Panel 
+ * @brief   Explorer View
+ * @author  CDA
+ * @version $Id: ExplorerUI.js 2544 2014-10-03 10:21:56Z elena $ 
+ */
+
+
+Ext.define('amdaUI.TreeToolColumn', {
+    extend: 'Ext.tree.Column',
+    alias: 'widget.treetoolcolumn',
+    
+    /**
+     * Add more tools here.  These will be on the prototype for all TreeToolColumns
+     */
+    tools: {
+        'info': 'js/resources/images/16x16/info_mini.png'
+    },
+    
+    initComponent: function() 
+    {
+        var me = this;
+        me.addEvents( 'toolclick' );
+        me.callParent();
+        me.on('toolclick', me.toolHandler, me);
+    },
+    
+    renderer: function(value, metaData, record, rowIdx, colIdx, store, view)
+    {
+        var toolCol = view.getHeaderAtIndex(colIdx);
+        
+        if (!toolCol.toolIsVisible(record))
+                return value;
+        
+        var toolId  = 'tool-' + rowIdx + '-' + colIdx,
+            toolImg = toolCol.tools[toolCol.tool],
+            imgHtml = Ext.DomHelper.markup({
+                id      : toolId,
+                tag     : 'img',
+                tooltype: toolCol.tool,
+                src     : toolImg,
+                style   : 'cursor:hand;'
+            });
+ 
+        return value + ' ' + imgHtml;
+    },
+    
+    processEvent: function(type, view, cell, recordIndex, cellIndex, e) 
+    {
+        if(type === "click" && e.target.tagName === "IMG") 
+        {
+                var tooltype = e.target.getAttribute("tooltype");
+            if(tooltype)
+                return this.fireEvent("toolclick", view, cell, recordIndex, cellIndex, e);
+        }
+        return this.fireEvent.apply(this, arguments);
+    },
+    
+    /**
+     * Override this when you add columns to the tree... see example below
+     */
+//    toolHandler: function() {
+//        alert("override this");
+//    },
+    
+    toolIsVisible : function(record) {
+    	return false;
+    }
+});
+
+
+Ext.define('amdaUI.ExplorerUI', {
+
+    extend: 'Ext.tab.Panel',
+    alias : 'widget.panelExplorer',
+
+    statics: 
+    {        
+        RESRC_TAB : {
+            TREE_ID:'resourcesTree',
+            TREE_TYPE:'resources'
+        },
+        OPE_TAB : {
+            TREE_ID:'operationsTree',
+            TREE_TYPE:'operations'
+        },
+        JOB_TAB : {
+            TREE_ID:'jobsTree',
+            TREE_TYPE:'jobs'
+        },
+        
+        CAT_SUFFIX: '-treeBase',
+        ROOT_SUFFIX: '-treeRootNode',
+        SUB_ROOT_SUFFIX : 'RootNode',
+
+        ITEM_KIND_ROOT : 'root',
+        ITEM_KIND_LEAF : 'leaf',
+        ITEM_KIND_DIRE : 'dire',
+        ITEM_KIND_PARA : 'para',
+    },
+
+    initComponent : function (config) {
+        
+        var explorerModule =  myDesktopApp.getLoadedModule(myDesktopApp.dynamicModules.explorer.id);
+        
+        var myConf = {
+            split	: true,
+            width	: '100%',
+            height      : '100%',
+            autoScroll  : true,
+            border      : true,
+            header	: false,
+            defaults	: {
+                // applied to each contained panel
+                containerScroll	: true
+            },       
+            stateful: true,
+       //     stateId: 'tp1',
+            stateEvents: ['tabchange'],
+            getState: function() {
+            return {
+                activeTab: this.items.findIndex('id',this.getActiveTab().id)
+            };
+            },
+            applyState: function(s) {
+                this.setActiveTab(s.activeTab);
+            },
+       //     activeTab: 0,
+            items: [
+                this.initTree(amdaUI.ExplorerUI.RESRC_TAB.TREE_TYPE),               
+                this.initTree(amdaUI.ExplorerUI.OPE_TAB.TREE_TYPE),
+                this.initTree(amdaUI.ExplorerUI.JOB_TAB.TREE_TYPE)             
+            ],
+            tbar : [               
+                {   
+                    xtype : 'combo', 
+                    fieldLabel: 'Filter',
+                    labelWidth: 25,
+                    width: 140,
+                    store: explorerModule.filtersStore,
+                    queryMode: 'local',
+                    displayField: 'name',
+                    valueField: 'id',
+                    listeners : {
+                        scope : this,
+                        select: function(combo, records) {                                                   
+                                AmdaAction.setCrtFilterId({id : records[0].get('id')}, 
+                                    function (result, e)
+                                    {
+                                            var t = e.getTransaction();
+                                            if (e.status) 
+                                            {       
+                                                    if (result)
+                                                    {
+                                                        var explorerModule = myDesktopApp.getLoadedModule(myDesktopApp.dynamicModules.explorer.id);
+                                                        if (explorerModule)
+                                                                    explorerModule.setCrtFilter();
+                                                    }
+                                                    else
+                                                            Ext.Msg.show( {
+                                                                    title : 'Filter', 
+                                                                    msg : 'Cannot apply filter',
+                                                                    modal : true,
+                                                                    icon : Ext.Msg.ERROR,
+                                                                    buttons : Ext.Msg.OK
+                                                            });
+                                            }
+                                            else
+                                            {
+                                                    // FAILURE
+                                                    Ext.Msg.show({title:'Error System', msg: e.message, icon: Ext.MessageBox.ERROR, buttons: Ext.Msg.OK});
+                                            } 
+                                },this);  
+                            }                        
+                        }                           
+                },
+                {
+                    text: '',
+                    iconCls : 'icon-parameters',
+                    tooltip: { text: 'Edit Filter', align: 'bl-tl' },
+                    handler: function(t){
+                    	myDesktopApp.getLoadedModule(myDesktopApp.dynamicModules.filters.id, true, function (module) {
+                    		module.createWindow();
+                    	});
+                    }
+                },                
+                {
+                    text: '',
+                    iconCls : 'icon-remover',
+                    tooltip: { text: 'Reset Filter', align: 'bl-tl' },
+                    handler: function(t){
+                            var explorerModule = myDesktopApp.getLoadedModule(myDesktopApp.dynamicModules.explorer.id);
+                            explorerModule.resetFilter();
+                    }
+                }, '-',
+                {
+                    xtype: 'displayfield',
+                    fieldLabel: 'SortBy',
+                    width: 40 
+                },
+                {
+                    text: 'Name',  
+                    scope : this,                    
+                    tooltip: { text: 'Sort out Local Data by Mission name', align: 'bl-tl' },
+                    pressed: true,
+                    enableToggle : true, 
+                    toggleGroup: 'sorting',
+                    handler: function(){
+                        var tree = Ext.getCmp(amdaUI.ExplorerUI.RESRC_TAB.TREE_ID);
+                        tree.getStore().sort([
+                            {  sorterFn: function(o1, o2){                     
+                                if (o1.get('nodeType') !== 'localParam')
+                                    return;  
+                                
+                                return o1.get('text').toUpperCase()  < o2.get('text').toUpperCase() ? -1 : 1;
+                        } }  ]); 
+                        this.updateFilter();  
+                    }
+                },
+                {
+                    text: 'Target',  
+                    scope : this,                   
+                    tooltip: { text: 'Sort Out Local Data by Mission main target', align: 'bl-tl' },  
+                    enableToggle : true, 
+                    toggleGroup: 'sorting',
+                    handler: function(){  
+                          var tree = Ext.getCmp(amdaUI.ExplorerUI.RESRC_TAB.TREE_ID);
+                          tree.getStore().sort([{ property : 'rank' }]); 
+                          this.updateFilter();
+                    }  
+                } 
+            ]
+        };
+        Ext.apply (this , Ext.apply (arguments, myConf));
+        this.callParent(arguments);
+    },
+
+    initTree : function(treeType){
+        
+        switch (treeType) {    
+            case amdaUI.ExplorerUI.RESRC_TAB.TREE_TYPE: 
+                treeId = amdaUI.ExplorerUI.RESRC_TAB.TREE_ID;
+                break;
+            case amdaUI.ExplorerUI.OPE_TAB.TREE_TYPE: 
+                treeId = amdaUI.ExplorerUI.OPE_TAB.TREE_ID;
+                break;
+            case amdaUI.ExplorerUI.JOB_TAB.TREE_TYPE: 
+                treeId = amdaUI.ExplorerUI.JOB_TAB.TREE_ID;
+                break;
+            default: 
+                treeId = amdaUI.ExplorerUI.RESRC_TAB.TREE_ID;
+                break;
+        }  
+
+        var store = Ext.create('Ext.data.TreeStore', {
+            root: {
+                expanded: true,
+                nodeType : treeType             
+             },
+            model: 'amdaModel.AmdaNode',
+            sorters:[{ property:'leaf', direction: 'DES' }, 
+                    {  sorterFn: function(o1, o2){                     
+                        if (o1.get('nodeType') !== 'localParam')
+                            return;  
+                        
+                        return o1.get('text').toUpperCase()  < o2.get('text').toUpperCase() ? -1 : 1;
+                    } }],
+             listeners: {
+                 beforeload: function(store, operation){
+                     store.proxy.extraParams = {
+                         nodeType: operation.node.get('nodeType')  
+                     };
+                 }
+             }
+
+        });
+
+        var menu = new Ext.menu.Menu();
+
+        var tree = Ext.create('Ext.tree.Panel', { 
+            id : treeId,
+            title: treeType,
+            store: store,
+            rootVisible: false,
+            animate: false,
+            hideHeaders : true,
+            //TODO deprecated
+            //multiSelect: true,
+            selModel: Ext.create('Ext.selection.TreeModel', {
+            	ignoreRightMouseSelection: true,
+            	mode: 'MULTI'
+            }),
+            
+            viewConfig: 
+            {
+                plugins: 
+                { 
+                    ptype: 'treeviewdragdrop',
+                    enableDrag:true,
+                    enableDrop:true,
+                    //TODO - BRE - Wait a fix for drag&drop issue
+                    ddGroup:'explorerTree',
+                    pluginId : 'ddplugin',
+                    isValidDropPoint : function (node, position, dragZone, e, data) 
+                    {       
+                        if (!node || !data.item) {
+                                return false;
+                        }
+                        
+                        var view = this.view,
+                        targetNode = view.getRecord(node),
+                        draggedRecords = data.records,
+                        dataLength = draggedRecords.length,
+                        ln = draggedRecords.length,
+                        i, record;
+                                            
+                        // No drop position, or dragged records: invalid drop point
+                        if (!(targetNode && position && dataLength)) {
+                            return false;
+                        }
+                                                
+                        // If the targetNode is within the folder we are dragging
+                        for (i = 0; i < ln; i++) {
+                            record = draggedRecords[i];
+                            if (record.isNode && record.contains(targetNode)) {
+                                return false;
+                            }
+                        }
+                
+                        // Respect the allowDrop field on Tree nodes
+                        if (position === 'append' && targetNode.get('allowDrop') === false) {
+                            return false;
+                        }
+                        else if (position != 'append' && targetNode.parentNode.get('allowDrop') === false) {
+                            return false;
+                        }
+                
+                        // If the target record is in the dragged dataset, then invalid drop
+                        if (Ext.Array.contains(draggedRecords, targetNode)) {
+                            return false;
+                        }
+                               
+                        // 
+                        if (dataLength > 1)
+                                return false;
+                        var draggedRecord = draggedRecords[0];
+
+                        // 
+                        switch (targetNode.data.nodeType)
+                        {
+                        case 'localParam' :
+                        case 'myData' :
+                            return false;
+                        default :
+                                if (draggedRecord.data.id == targetNode.data.nodeType+'-treeRootNode')
+                                    return false;
+                                if ((position == 'before') && (targetNode.data.id == targetNode.data.nodeType+'-treeRootNode'))
+                                    return false;
+                                return (draggedRecord.data.nodeType == targetNode.data.nodeType);	
+                        }
+                        return false;
+                    },
+                    onViewRender : function(view) 
+                    {			
+                        var me = this;
+                    
+                        view.on('itemupdate', function(record,index,node,opts)
+                        {		
+                                var forceHide = false;
+                                var crtRec = record.parentNode;
+                                while (crtRec && !forceHide)
+                                {
+                                    if (crtRec.get('filtered'))
+                                        forceHide = crtRec.get('filtered');
+                                    crtRec = crtRec.parentNode;								  
+                                }
+                                tree.setNodesVisibility(record,forceHide);
+                                tree.applyDisableToNode(record);
+                        });
+ 	
+                        view.on('itemadd', function(records,index,node,opts)
+                        {
+                                Ext.each(records,function (rec)
+                                {
+                                        tree.applyFilterToNode(rec);	
+                                        tree.applyDisableToNode(rec);
+                                });	
+                                        
+                        });
+                    
+                        view.on('afteritemexpand', function(record,index,node,opts)
+                        {
+                                var forceHide = false;
+                                var crtRec = record.parentNode;
+                                while (crtRec && !forceHide)
+                                {
+                                    if (crtRec.get('filtered'))
+                                            forceHide = crtRec.get('filtered');
+                                    crtRec = crtRec.parentNode;
+                                    
+                                }
+                                tree.setNodesVisibility(record,forceHide);
+                                tree.applyDisableToNode(record);
+                        });
+
+                        if (me.enableDrag) 
+                        {
+                                me.dragZone = Ext.create('Ext.tree.ViewDragZone', {
+                                view: view,
+                                ddGroup: me.dragGroup || me.ddGroup,
+                                dragText: me.dragText,
+                                repairHighlightColor: me.nodeHighlightColor,
+                                repairHighlight: me.nodeHighlightOnRepair
+                                });
+                        }
+
+                        if (me.enableDrop) 
+                        {
+                                me.dropZone = Ext.create('Ext.tree.ViewDropZone', {
+                                view: view,
+                                ddGroup: me.dropGroup || me.ddGroup,
+                                allowContainerDrops: me.allowContainerDrops,
+                                appendOnly: me.appendOnly,
+                                allowParentInserts: me.allowParentInserts,
+                                expandDelay: me.expandDelay,
+                                dropHighlightColor: me.nodeHighlightColor,
+                                dropHighlight: me.nodeHighlightOnDrop,
+                                isValidDropPoint : me.isValidDropPoint
+                                });
+                        } 
+                    }        	 
+                },
+                listeners : 
+                {
+                        beforedrop : function(node, data, overModel, dropPosition)
+                        {
+                                var parentId;
+                                switch(dropPosition)
+                                {
+                                        case 'append' :
+                                                if (overModel.isLeaf())
+                                                        parentId = overModel.parentNode.get('id');
+                                                else
+                                                        parentId = overModel.get('id');
+                                                
+                                                        if(!overModel.isExpanded() && overModel.isExpandable()) {								   
+                                                                myDesktopApp.warningMsg('Please open the folder before node adding'); 									   								 								  
+                                                                return false; 
+                                                        }
+                                                break;
+                                        case 'before' :
+                                        case 'after' :
+                                                parentId = overModel.parentNode.get('id');
+                                                break;
+                                }
+	    			 
+                            Ext.each(data.records, function(rec)
+                            {
+                                    rec.renameDD(parentId,function(result)
+                                    {
+                                        if (result)
+                                        {
+                                                if (!result.id)
+                                                {
+                                                        Ext.Msg.show({
+                                                                title : 'Drop is impossible',
+                                                                msg : result.error,
+                                                                buttons : Ext.Msg.OK,
+                                                                icon : Ext.MessageBox.WARNING
+                                                        });
+                                                        
+                                                        return false;
+                                                }
+                                        }
+                                        else
+                                        {
+                                                Ext.Msg.show({
+                                                                title : 'Drop is impossible',
+                                                                msg : 'Cannot connect to the server',
+                                                                buttons : Ext.Msg.OK,
+                                                                icon : Ext.MessageBox.WARNING
+                                                        });
+                                                        
+                                                return false;
+                                        }
+                                        
+                                        return true;
+                                    });
+                            });				
+                        }
+                    },
+	    },
+            listeners: {
+	      
+	        itemmouseenter: function(view, record, item){		  
+		  if(record.get('isParameter')){		 
+		        var el = Ext.get(item),
+                        td = el.down('td > div');
+                        td.setStyle('cursor', 'crosshair');				
+		  }
+		  else
+		  {
+			  var el = Ext.get(item),
+              td = el.down('td > div');
+              td.setStyle('cursor', 'pointer');	
+		  }
+		},
+                itemcontextmenu: function(view, rec, item, index, e){
+                	 // block other events
+                    e.stopEvent();
+                	
+                    // unlock selection
+                    view.ownerCt.getSelectionModel().setLocked(false);
+                    
+                    view.ownerCt.getSelectionModel().select(rec,true);
+                    
+                    // clear menu items
+                    menu.removeAll();
+                    var menuItems;
+                    
+                    // if it's a single selection
+                    if (view.ownerCt.getSelectionModel().selected.length === 1) {
+                    	// get items menu corresponding to right clicked record
+                        menuItems = rec.getContextMenuItems(this);
+                       
+                    } else if (view.ownerCt.getSelectionModel().selected.length > 1) {
+                        // get items menu corresponding to right clicked record
+                        menuItems = rec.getContextMenuMultiItems(this);
+                        
+                    }
+                    
+                    // if there's at least one item menu
+                    if (menuItems && menuItems.length){
+                        // add the items
+                        menu.add(menuItems);
+                        // add listener on right clicked record
+                        var onRecordClick = function (menu, item, e, eOpts)
+                			{
+                				//Dispatch click event to the record
+                				this.onMenuItemClick(menu,item,e);
+                				//Remove old click listener
+                				menu.removeListener('click',onRecordClick,this);
+                			};
+                        menu.addListener('click',onRecordClick,rec);
+                        
+                        // then show menu
+                        menu.showAt(e.getXY());
+                    }                    
+                },
+		
+                itemdblclick: function(view, record, item, index, event){
+                    event.stopEvent();
+		    
+                    // first check if it is for SAVE-START-STOP plugin...		    
+		    if (Ext.PluginManager.getCount() > 0 && 
+		        record.get('nodeType') == amdaModel.TimeTableNode.nodeType && record.isLeaf()) {		        
+			var zmgr = myDesktopApp.desktop.getDesktopZIndexManager();
+			var winActive = zmgr.getActive();
+			var winId =  winActive.getId();
+			if (winId == 'explorer-win') {
+			  zmgr.eachTopDown(function(win) {
+			      var id = win.getId();
+			      if (id !==  'explorer-win') { 
+				winId = id;
+			        return false;
+			      }	
+			  }); 
+			}  		 		 
+		      }                    
+		    
+//		    var targetModuleName = myDesktopApp.getModule('explorer-win').getPinedModule();
+		    if (record.get('nodeType') == 'remoteParam' && !record.isLeaf() 
+							&& !record.get('isParameter')) {
+			myDesktopApp.getLoadedModule(myDesktopApp.dynamicModules.interop.id, true, function (module) {
+				module.createWindow(record.getBaseId());
+			});			
+				      
+		    }
+		    
+		    if (record.isLeaf() || record.data.isParameter)
+		      switch (record.get('nodeType')) 
+		      {
+			case 'myData' :
+			case 'myDataParam' :
+		        case 'derivedParam' :
+		        case 'timeTable' :
+		        case 'sharedtimeTable' :	
+		        case 'request' :
+		        case 'condition' :
+		    	    record.editLeaf();
+		    	    break;
+		        case 'localParam' :
+			case 'remoteParam':
+                        case 'remoteSimuParam':    
+		    	    record.createAlias(record);			  
+		    	    break;
+		        case 'bkgWorks' :                            
+		        	if (!record.get('object')) {  
+		        		AmdaAction.getObject(record.get('id'), record.get('nodeType'), record.getObjectCallback, record);
+		        	}
+		        	else {
+                                    if (record.get('status') == 'done') {
+                                        var isInteractive = false;
+                                        var isNewTab = true;	  
+                                        record.editNode(isNewTab, isInteractive);
+                                    }
+                                    else {
+                                        myDesktopApp.infoMsg('Job Status: ' + record.get('status'));
+                                    }
+		        	}
+		        	break;
+		      }
+                    
+                },
+                beforeselect: function(view,node,index,options){
+                    // if there's at least one node already selected   
+                    if(view.selected.length 
+                            //AND (the node which is beeing selected has a different nodeType than the first selected node OR the first selected node isn't a leaf
+                            && ( node.get('nodeType')!== view.selected.items[0].get('nodeType') ||  !view.selected.items[0].isLeaf())
+                            // OR the node which is beeing selected has no nodeType OR it isn't a leaf OR
+                            || !node.get('nodeType') || !node.isLeaf() 
+                    ){
+                        // clear old selection
+                        view.deselectAll();
+                    }
+                },
+                itemmousedown: function(tree,rec,item,index,event,options){
+                    if(event.button===2){
+                        // if the right clicked item is already selected
+                        if (tree.getSelectionModel().isSelected(rec)) {
+                            // lock selection to prevent the selection modification by the right click
+                            tree.getSelectionModel().setLocked(true);
+                        }
+                    }
+                },
+		afterrender: function(comp){		   
+		  	        var view = comp.getView();                  
+				view.tip = Ext.create('Ext.tip.ToolTip', {
+				    // The overall target element.
+				    target: view.el,
+				    // Each grid row causes its own seperate show and hide.
+				    delegate: view.itemSelector,	
+				    dismissDelay : 0,
+				   //    showDelay: 100,
+				    //  anchor: 'left',
+				    // Moving within the row should not hide the tip.
+				    trackMouse: true,			   
+	 			    autoRender: true,				   
+				    listeners: {
+					// Change content dynamically depending on which element triggered the show.
+					beforeshow: function updateTipBody(tip) {
+                                          if (view.getRecord(tip.triggerElement)) {
+                                            var info = view.getRecord(tip.triggerElement).get('info');
+                                                if (!info || info == '') {						      
+                                                    tip.addCls('hide');							  
+                                                }
+                                                else { 
+                                                    tip.removeCls('hide');			 					  	 					        					       						 
+                                                    tip.update(info); 
+                                                }	
+                                          }
+				    }
+				}
+				});
+		},
+		// if remote base is empty - open interoperability module
+		itemexpand: function(node) {		 
+				    if ( node.get('nodeType') == amdaModel.RemoteParamNode.nodeType 
+					&& node.getDepth() == 3 && !node.hasChildNodes()) {
+					node.addData();  
+				    }
+		},
+                scope: this
+            },
+            hideHeaders: true,
+            // must define a column with a field to enable editor
+            columns: [{ 
+                xtype    : 'treetoolcolumn',
+                text     : 'Name',
+                flex     : 1,
+                dataIndex: 'text',
+                tool: 'info', // this references the "tools" object on the prototype
+                toolHandler: function(view, cell, recordIndex, cellIndex, e) {
+            	    var tooltype = e.target.getAttribute("tooltype");
+            	    var record = view.store.getAt(recordIndex);
+            	    switch (tooltype)
+            	    {
+            	    	case 'info' :
+            	    		myDesktopApp.getLoadedModule(myDesktopApp.dynamicModules.info.id, true, function (module) {
+            	    			module.createWindow(record.get('help'), record.get('info'));
+            	    		});
+            	    		break;
+            	    }
+                },
+                toolIsVisible : function(record) {
+                	
+                	switch (record.get('nodeType'))
+                	{
+                		case 'localParam' :
+                                case 'remoteParam' :
+                                case 'remoteSimuParam' :
+                			
+                			return record.get('help') != '';
+                	}
+                	return false;
+                },
+                field: { 
+                	validFlag: false,
+    	            validator : function(value) {
+    	            	// get explorerModule
+                    	var explModule = myDesktopApp.getLoadedModule(myDesktopApp.dynamicModules.explorer.id);
+                        var explUI = explModule.getUiContent();
+                        var activeTreePanel = explUI.getActiveTab();
+                        
+                        var editedNode = activeTreePanel.getSelectionModel().selected.items[0];
+                        if (editedNode) {
+                            if (!editedNode.get('id') && value === amdaModel.AmdaNode.NEW_DIR_NAME){
+                                return false;
+                            } else {
+                            	return this.validFlag;
+                            }
+                        } else {
+                            return true;
+                        }
+    	            },
+    	            listeners: {
+    	            	change : function( field, newValue, oldValue, eOpts )
+    	            	{
+    	            		var explModule = myDesktopApp.getLoadedModule(myDesktopApp.dynamicModules.explorer.id);
+                            var explUI = explModule.getUiContent();
+                            var activeTreePanel = explUI.getActiveTab();
+                            
+                            var editedNode = activeTreePanel.getSelectionModel().selected.items[0];
+                            if (editedNode) {
+                            	editedNode.isValidName(newValue, function (res) {
+                            		if (!res)
+								  	{
+                            			field.validFlag = 'Error during object validation';
+                            			field.validate();
+									  	return;
+								  	}
+                        		
+                            		if (!res.valid)
+                            		{
+                            			if (res.error)
+									  	{
+                            				field.validFlag = res.error;
+                            				field.validate();
+											return;
+									  	}
+                            			else
+                            			{
+                            				field.validFlag = 'Invalid object name';
+                            				field.validate();
+                            				return;
+                            			}
+								  	}
+								  
+                            		field.validFlag = true;
+                            		field.validate();
+								});
+                            }
+    	            	}
+    	            },
+		    scope: this
+                }
+            }],
+            //add our custom editor plugin
+            plugins:  [new MyTreeEditor({
+            	pluginId: 'treeEditor',
+            	listeners: {
+            		'canceledit' : function(editor, context) {
+            			if (editor && editor.startValue===amdaModel.AmdaNode.NEW_DIR_NAME) {
+            	            context.record.remove(true);	  
+            			}
+            		}
+            		
+            	}})],
+            
+            setNodesVisibility : function(node,forceHide)
+            {
+              var isFiltered = node.get('filtered');
+                
+              for (var i = 0; i < node.childNodes.length; i++)
+                this.setNodesVisibility(node.childNodes[i],forceHide || isFiltered);
+              
+              this.setNodeVisibility(node,!(forceHide || isFiltered));
+            },
+
+            setNodeVisibility : function(node,isVisible)
+            {
+              var record = store.getNodeById(node.internalId);
+              var viewNode = Ext.fly(tree.getView().getNode(record));
+              if (viewNode)
+              {
+            	viewNode.setVisibilityMode(Ext.Element.DISPLAY);
+                if (isVisible)
+                {
+                  viewNode.show();
+                  this.applyDisableToNode(record);
+                }
+                else
+                  viewNode.hide();
+              }
+            },
+            
+            applyFilterToNode : function(node)
+            {
+            	if (!node)
+            		return;
+                        
+            	var filter = myDesktopApp.getLoadedModule(myDesktopApp.dynamicModules.explorer.id).filter;
+            	
+            	switch (node.get('nodeType'))
+            	{
+            		case 'localParam' :
+            			if (!filter || !filter['param'])
+            			{
+            				//no filter applied
+            				node.set('filtered',false);
+                			return;
+            			}
+            			var pos = node.get('depth') - 3; //depth from local param root node
+            			if (pos < 0 || pos > 2)
+            			{
+            				node.set('filtered',false);
+            				return;
+            			}
+            			var isFiltered = true;
+            			for (var i = 0; i < filter['param'].length; i++)
+            			{          			
+            				s = filter['param'][i].split(';');
+        					if (node.get('id') == s[pos])
+        					{
+        						isFiltered = false;
+        						break;
+        					}
+        				}
+            			node.set('filtered',isFiltered);
+            			break;
+            		case 'remoteSimuParam' :
+                                
+            			if (!filter || !filter['simu'] )                                   
+            			{            				 
+                                    //no filter applied
+            				node.set('filtered',false);
+                			return;
+            			}
+            			  
+            			var pos = node.get('depth') - 3; //depth from remote param root node
+            		
+            			if (pos < 0 || pos > 5)
+            			{
+            				 node.set('filtered',false);
+            				 return;
+            			}
+            		 	
+            			var isFiltered = true;
+                            
+            			for (var i = 0; i < filter['simu'].length; i++)
+            			{          			
+            				s = filter['simu'][i].split(';');
+                                          
+        					if (node.get('id') == s[pos])
+        					{   
+        						isFiltered = false;
+        						break;
+        					}
+        				}
+            			node.set('filtered',isFiltered);
+            			break;
+            		/*case 'alias' :
+            			if (!this.localParamFilter.result || this.localParamFilter.id == "" ||
+            				!node.isLeaf())
+            			{
+            				//no filter applied
+            				node.set('filtered',false);
+                			return;
+            			}
+            			var crtParam = node.get('id');
+            			crtParam = crtParam.replace('alias_','');
+            			crtParam = crtParam.replace(/_/g,':');
+            			var isFiltered = true;
+            			for (var i = 0; i < this.localParamFilter.result.length; i++)
+            			{          			
+            				s = this.localParamFilter.result[i].split(';');
+            				console.log(s[2]);
+        					if (crtParam == s[2])
+        					{
+        						isFiltered = false;
+        						break;
+        					}
+            			}
+            			node.set('filtered',isFiltered);
+            			break;*/
+            		default :
+            			return;
+            	}
+            },
+            
+            applyFilterToNodes : function(node)
+            {
+            	node.eachChild(function (child){
+            		tree.applyFilterToNodes(child);
+            	});
+            	tree.applyFilterToNode(node);
+            },
+            
+            applyDisableToNode : function(node)
+            {
+            	var crtNode = node;
+            	var disable = false;
+            	
+            	do
+            	{
+            		if (crtNode.get('disable'))
+            		{
+            			disable = true;
+            			break;
+            		}
+            		crtNode = crtNode.parentNode;
+            	} while (crtNode);
+            	
+            	
+                var viewNode = Ext.fly(tree.getView().getNode(node));
+			    if (disable)
+			    {
+			      node.set('disable',true);
+				  viewNode.setStyle('opacity',0.5);
+			    }
+            }
+        });
+        
+        tree.addEvents('edition');
+        
+        
+        
+        return tree;
+    },
+    
+    updateFilter : function()
+    {   	  
+    	var filter = myDesktopApp.getLoadedModule(myDesktopApp.dynamicModules.explorer.id).filter;
+    	
+    	var keys = [];
+        for (var f in filter) {
+            if (hasOwnProperty.call(filter, f))
+            	keys.push(f);
+        }
+        
+        var tree = this.query('#'+amdaUI.ExplorerUI.RESRC_TAB.TREE_ID)[0];
+		tree.getView().refresh();
+		
+        for (var i = 0; i < keys.length; i++)
+		{
+			if (keys[i] == "_empty_")
+				continue;
+			
+			switch (keys[i])
+			{
+    			case 'param' :
+    				
+    				//apply filter to local datasets
+    				var localNode = tree.getRootNode().findChild('id','myLocalData-treeRootNode',true);            	
+    				tree.applyFilterToNodes(localNode);	          	
+    				tree.setNodesVisibility(localNode,false);
+    				tree.applyDisableToNode(localNode);
+    
+    				//apply filter to aliases
+    				var aliasNode = tree.getRootNode().findChild('id','alias-treeRootNode',true);   
+    				tree.applyFilterToNodes(aliasNode);	          	
+    				tree.setNodesVisibility(aliasNode,false);
+    				tree.applyDisableToNode(aliasNode);
+    				break;
+    				
+    			case 'simu' :
+    				//apply filter to simulation datasets (in remote data)
+    				var remoteNode = tree.getRootNode().findChild('id','myRemoteSimuData-treeRootNode',true);  
+    				tree.applyFilterToNodes(remoteNode);	          	
+    				tree.setNodesVisibility(remoteNode,false);
+    				tree.applyDisableToNode(remoteNode);
+    				break;
+			}
+		}
+	 	 
+         this.dockedItems.getAt(1).items.items[0].select(filter['name']);
+    }
+
+});    
+        
+Ext.define( 'MyTreeEditor', {
+    extend: 'Ext.grid.plugin.CellEditing',
+    alias: 'editing.treeeditor',
+
+    // initialization method of plugin
+    init: function(cmp) {  
+        var me = this;
+        me.hostCmp = cmp;
+        // on parent event
+        me.hostCmp.on({
+            // on edition event
+            edition : { 
+                delay: 50,
+                fn : function(view, record, item, index, e){
+                	view.getHeaderAtIndex(0).field.validFlag = 'Not modified';
+                    // call the start edition method
+                    me.startEdit(record, view.getHeaderAtIndex(0));
+                },
+                scope: me
+            }
+        });
+        me.callParent(arguments);
+    },
+    
+    /**
+     * Cancel any active editing.
+     */
+    cancelEdit: function() {
+        var me = this,
+        activeEd = me.getActiveEditor(),
+        viewEl = me.grid.getView().getEl(me.getActiveColumn());
+
+        me.setActiveEditor(null);
+        me.setActiveColumn(null);
+        me.setActiveRecord(null);
+        if (activeEd) {
+            activeEd.cancelEdit();
+            viewEl.focus();
+            this.fireEvent('canceledit', activeEd, me.context);
+        }
+    },
+    
+    /**
+     * overwrite the initEditTriggers to disable edition on click/dblclick
+     * and to add custom 
+     */
+    initEditTriggers: function() {
+
+        var me = this,
+        view = me.view;
+        
+        me.on({
+            edit: function(editor,event){
+                // if there is a modification
+                if (event.originalValue !== event.value) {
+                    // delegate rename action on model
+                    event.record.rename(event.value,function(result){
+                        // if a result has been returned : success
+                        if(result) {
+                            // delegate commit action to delete modification flag
+                            event.record.commit();
+                            var rec = event.record.data;
+                            // in case of directory
+                            if (!rec.leaf){
+                                // set folder's ID returned by server
+                                rec.id = result.id;                                
+                            }
+                        } else { // in case of transaction error
+                            // reset originalValue
+                            event.record.value = event.originalValue;
+                            event.record.get('text') = event.originalValue;
+                            event.record.commit();
+                        }
+                    });
+                }
+
+            }
+        });
+
+        // enable Enter key and Esc Key
+        view.on('render', function() {
+            me.keyNav = Ext.create('Ext.util.KeyNav', view.el, {
+                enter: me.onEnterKey,
+                esc: me.onEscKey,
+                scope: me
+            });
+        }, me, { single: true });
+    },
+
+    //overwrite the getEditing context because we do not need the rowId
+    getEditingContext: function(record, columnHeader) {
+        var me = this,
+        grid = me.grid,
+        store = grid.store,
+        colIdx,
+        view = grid.getView(),
+        value;
+
+        // getting colIdx and real columnHeader
+        if (Ext.isNumber(columnHeader)) {
+            colIdx = columnHeader;
+            columnHeader = grid.headerCt.getHeaderAtIndex(colIdx);
+        } else {
+            colIdx = columnHeader.getIndex();
+        }
+        // getting current value
+        value = record.get(columnHeader.dataIndex);
+
+        // return editing context
+        return {
+            grid: grid,
+            record: record,
+            field: columnHeader.dataIndex,
+            value: value,
+            column: columnHeader,
+            colIdx: colIdx,
+            view: columnHeader.getOwnerHeaderCt().view
+        };
+    }
+} );
diff --git a/js/app/views/FeedbackUI.js b/js/app/views/FeedbackUI.js
new file mode 100644
index 0000000..4ec6309
--- /dev/null
+++ b/js/app/views/FeedbackUI.js
@@ -0,0 +1,269 @@
+/**
+  * Project      :  AMDA-NG
+  * Name         : FeedbackUI.js
+  * @plugin 	  amdaUI.FeedbackUI
+  * @extends 	  Ext.panel.Panel
+  * @brief		 Feedback view
+  * @author Benjamin
+  * @version $Id: FeedbackUI.js 2031 2014-01-22 11:28:34Z elena $
+  ********************************************************************************
+  *    FT Id     :   Date   : Name - Description
+  *******************************************************************************
+  *  :          
+  */
+
+Ext.define('amdaUI.FeedbackUI', {
+    extend: 'Ext.form.Panel',
+    alias: 'widget.panelFeedback',
+    
+    constructor: function(config) {			
+		this.init(config);
+		this.callParent(arguments);
+	},
+    
+    getInfoMsg : function()
+    {
+  	  return '<h2>Welcome,</h2>' +
+             'You have problems/comments</br>'+
+             'Please select an item[s] from a list below and describe the problem...</br></br>';
+    },
+  	
+    getBrowserInfo : function()
+    {
+  	  return Ext.browser.name+' - '+Ext.browser.engineName+' - '+Ext.browser.engineVersion;
+    },
+    
+    getUser : function()
+    {
+      return sessionID;
+    },
+    
+    getInterfaceList : function()
+    {
+      return [
+              ['General','General'],
+              ['Plot_Data','Plot Data'],
+              ['Data_mining','Data mining'],
+              ['My_Parameters','Parameters'],
+              ['My_Time_Tables','Time Tables'],
+              ['Download_Data','Download Data'],
+              ['Upload_Data','Upload Data'],
+              ['Interoperability','Interoperability'],
+              ['Add_External_Data','External Data']
+            ];
+    },
+    
+    onSendFinish : function(result, e){	
+	    var t = e.getTransaction();
+		if (e.status) 
+		{	
+		  if (result && result == 'none')
+		  {
+			// SUCCESS  
+			var win = myDesktopApp.desktop.getWindow(myDesktopApp.dynamicModules.feedback.id);
+			Ext.MessageBox.show({
+		      title: 'Feedback sended',
+		      msg: 'Thanks for your feedback',
+		      buttons: Ext.MessageBox.OK,
+		      icon: Ext.MessageBox.INFO,
+		      fn: function (btn){
+				win.close();
+			  }
+		    });
+		  }
+		  else
+		  {
+			  //ERROR
+			  var msgErr = 'Unknown error';
+			  switch (result)
+			  {
+			  	case 'err_user' :
+			  		msgErr = 'User not defined';
+			  		break;
+			  	case 'err_file' :
+			  		msgErr = 'Feedback file error';
+			  		break;	
+			  }
+			  Ext.Msg.show({title:'Error', msg: msgErr, icon: Ext.MessageBox.ERROR, buttons: Ext.Msg.OK});
+		  }
+		}
+		else
+		{
+		  // FAILURE
+	      Ext.Msg.show({title:'Error System', msg: e.message, icon: Ext.MessageBox.ERROR, buttons: Ext.Msg.OK});
+		}   
+    },
+    
+    onSendIssue : function(b,e){
+	  //get links to components
+      var fieldset = this.getComponent('feedback_fieldset');
+      var fieldsubject = fieldset.getComponent('subject_checkboxgroup');
+      var fielduser = fieldset.getComponent('user_displayfield');
+      var fieldbrowser = fieldset.getComponent('browser_displayfield');
+      var fieldattach = fieldset.getComponent('attach_filefield');
+      var fieldinterface = fieldset.getComponent('interface_combo');
+      var fielddes = fieldset.getComponent('desc_textarea');
+      
+      //test if some fields are valid
+	  if (!fieldsubject.isValid() || !fielddes.isValid())
+		  {
+		  	Ext.Msg.show({title:'Error', msg: 'Some field are required', icon: Ext.MessageBox.ERROR, buttons: Ext.Msg.OK});
+		  	return;
+		  }
+	  
+	  //generate subject message (a list of all checked boxes)
+	  var subjectMsg = '';
+	  fieldsubject.items.each(function (item){
+		  if (!item.checked)
+		    return;
+		  if (subjectMsg != '')
+		    subjectMsg += ' - ';
+		  subjectMsg += item.boxLabel;
+	  },this);
+	  
+	  //make the object to send
+      var feed = {user : fielduser.getValue(), 
+    		      interface : fieldinterface.getValue(), 
+    		      subject : subjectMsg, 
+    		      userText : fielddes.getValue(), 
+    		      userAgent : fieldbrowser.getValue(),
+    		      attach : fieldattach.getValue()};
+      
+      if (feed.attach != '')
+      {
+    	  this.submit({
+    		  	scope : this,
+    		    url: 'php/uploadFile.php',
+			    waitMsg: 'Uploading your file...',
+    		    success: function(form, o)
+    		    {
+    		  		feed.attach = o.result.file;
+    		  		//call action
+        	  		AmdaAction.sendFeedback(feed,this.onSendFinish,this);
+    		    },
+    		    failure: function(form, o) 
+    		    {
+    		    	Ext.Msg.show( {
+		  				title : 'Feedback - Upload attachment',
+		  				msg : 'Error '+o.result.error,
+		  				modal : true,
+		  				icon : Ext.Msg.ERROR,
+		  				buttons : Ext.Msg.OK
+		  			});
+				}
+    		});
+      }
+      else
+    	  //call action
+    	  AmdaAction.sendFeedback(feed,this.onSendFinish,this);
+    },
+    
+    init : function(config)	
+    {
+      var myConf = {
+        layout: 'fit',
+        bodyStyle: { background: '#ddecfe'},
+	    items : [
+	    	{
+	          xtype: 'fieldset',
+	          itemId: 'feedback_fieldset',
+	          layout: 'anchor',
+	          anchor: '100%',
+	          items : [
+                {
+                  xtype: 'displayfield',
+                  itemId: 'info_displayfield',
+                  name: 'information',
+                  fieldLabel: '',
+                  anchor: '100%',
+                  value: this.getInfoMsg()
+                },
+                {
+                  xtype: 'checkboxgroup',
+                  itemId: 'subject_checkboxgroup',
+                  fieldLabel: 'Subject',
+                  anchor: '100%',
+                  columns : 3,
+                  vertical: true,
+                  allowBlank: false,
+                  items: [
+                    {boxLabel: 'Bug', inputValue: 'bug', checked: true},
+                    {boxLabel: 'Question', inputValue: 'question'},
+                    {boxLabel: 'Data', inputValue: 'data'},
+                    {boxLabel: 'Comment', inputValue: 'comment'},
+                    {boxLabel: 'Other', inputValue: 'other'}
+                  ]
+                },
+                {
+                  xtype: 'displayfield',
+                  itemId: 'user_displayfield',
+                  fieldLabel: 'User',
+                  anchor: '100%',
+                  name: 'user',
+                  value: this.getUser()
+                },
+                {
+                  xtype: 'displayfield',
+                  itemId: 'browser_displayfield',
+                  fieldLabel: 'Browser',
+                  anchor: '100%',
+                  name: 'browser',
+                  value: this.getBrowserInfo()
+                },
+                {
+                  xtype: 'filefield',
+                  itemId: 'attach_filefield',
+                  anchor: '100%',
+                  name: 'attachment',
+                  fieldLabel: 'Attachment',
+                  buttonText: 'Select File...',
+                  emptyText : 'none'
+                },
+                {
+                  xtype: 'combo',
+                  itemId: 'interface_combo',
+                  fieldLabel: 'Interface',
+                  name: 'interface',
+                  store: this.getInterfaceList(),
+                  value: 'General',
+                  forceSelection: true,
+                  anchor: '100%',
+                  autoSelect: true,
+                  allowBlanck: false
+                },
+                {
+                  xtype : 'textareafield',
+                  itemId: 'desc_textarea',
+                  anchor: '100%',
+                  height : 200,
+                  name: 'description',
+                  fieldLabel: 'Description',
+                  allowBlank: false
+                },
+                {  
+				  xtype : 'hiddenfield',
+				  name: 'MAX_FILE_SIZE',
+				  value: '3000000' // 3MB				      
+				}
+              ]
+	    	}],
+	    	dockedItems: [{
+	          xtype: 'toolbar', 
+	          dock: 'bottom',
+	          items: [
+	             '->',
+	            {
+	              iconCls: 'icon-feedback',
+	              text: 'Send',
+	              scope: this,
+	              tooltip: 'Send feeback',
+	              handler: this.onSendIssue
+	          }]
+	          
+	    	}
+	      
+	    ]
+      }
+      Ext.apply (this , Ext.apply (arguments, myConf));
+    }
+});
\ No newline at end of file
diff --git a/js/app/views/FiltersUI.js b/js/app/views/FiltersUI.js
new file mode 100644
index 0000000..ba2dcb9
--- /dev/null
+++ b/js/app/views/FiltersUI.js
@@ -0,0 +1,1130 @@
+/**
+  * Project      :  AMDA-NG
+  * Name         : FiltersUI.js
+  * @plugin 	  amdaUI.FiltersUI
+  * @extends 	  Ext.TabPanel
+  * @brief		 Filters view
+  * @author Benjamin
+  * @version $Id: FiltersUI.js 1988 2013-12-18 09:53:10Z elena $
+  ********************************************************************************
+  *    FT Id     :   Date   : Name - Description
+  *******************************************************************************
+  *  :          
+  */
+
+/*
+ * Filter grid panel used to define conditions of a filter
+ */
+
+Ext.define('amdaUI.FilterGridPanel', {
+  extend : 'Ext.grid.Panel',
+  alias  : 'widget.gridFilter',
+  
+  filtersInfoStore : null,
+  filtersListStore : null,
+  
+  selectListStore : null,
+  crtFilter       : null,
+  
+  opStore : null,
+  condStore : null,
+  
+  groupingFeature : null,
+  valueColumn : null,
+  
+  groupMenu : null,
+  itemMenu : null,
+  
+  constructor: function(config) 
+  {			
+    this.init(config);
+	this.callParent(arguments);
+  },
+  
+  setFiltersInfoStore: function(infoStore)
+  {
+    this.filtersInfoStore = infoStore;
+  },
+  
+  setFiltersListStore: function(listStore)
+  {
+    this.filtersListStore = listStore;
+  },
+  
+  setConditions : function(record)
+  {
+	this.editingPlugin.completeEdit();	
+	this.crtFilter = record;
+	this.reconfigure(record.conditions());
+	this.store.groupField = 'type';
+	this.store.group('type');
+	if (record.conditions().getCount() > 0)
+		this.getSelectionModel().select(record.conditions().getAt(0));
+  },
+  
+  setConditionType : function(condType,condInfo,reset)
+  {
+	if (!condInfo)
+		return;
+	
+	//update current conditions types store
+	this.condStore.removeAll();
+	
+	this.filtersInfoStore.getById(condType).conditions().data.each(function(cond)
+			  {
+		this.condStore.add(cond);
+	  },
+	  this
+	);
+	
+	//update current operators store
+	this.opStore.removeAll();
+	
+	condInfo.ops().data.each(function(op)
+								  {
+									this.opStore.add({id : op.get('id'), name : op.get('name')});
+								  },
+								  this
+   	);
+	
+	//update current value field
+	var valueField = this.getValueField(condInfo);
+	this.editingPlugin.completeEdit();	
+	this.editingPlugin.setColumnField(this.columns[3],valueField);
+	
+	//get current cell
+	var crtCell;
+	if (this.getSelectionModel().hasSelection())
+		crtCell  = this.getSelectionModel().getSelection()[0];
+	else
+		return;
+	
+	crtCell.set('condId',condInfo.get('id'));
+	
+	if (reset)
+	{
+	  //set first operator
+	  crtCell.set('opId',this.opStore.getAt(0).get('id'));
+	  
+	  //reset value field
+	  switch (valueField.xtype)
+	  {
+	    case 'combobox' :
+		  crtCell.set('value',valueField.store.getAt(0).get('name'));
+		  break;
+		case 'datefield' :
+		  var date = new Date();	  
+		  crtCell.set('value',date);
+		  break;
+		default :
+		  crtCell.set('value','');
+	  }
+	}
+  },
+  
+  getValueField : function(condInfo)
+  {
+	//get field type in relation with the condition
+	switch (condInfo.get('type'))
+	{
+	  case 'select' :
+		if (!this.filtersListStore.getById(condInfo.get('selectList')))
+			console.log('Error - Missing select list definition for '+condInfo.get('selectList'));
+		else
+			return {
+			  xtype  : 'combobox',
+			  queryMode: 'local',
+			  editable: false,
+			  displayField:'name',
+			  valueField  : 'id',
+			  store       : this.filtersListStore.getById(condInfo.get('selectList')).elts()
+			};
+			
+	  case 'date' :
+		return {
+		  xtype  : 'datefield',
+		  format : 'Y/m/d H:i:s',
+		  altFormats: 'Y/m/d H:i:s'
+	    };
+	  case 'string' :
+		return {
+		  xtype  : 'textfield'
+	    };
+
+	}
+		
+//	console.log('Error - Missing value field definition for '+condInfo.get('type'));
+	return {
+	  xtype  : 'textfield'
+	};
+  },
+  
+  createCondition : function(group)
+  {
+	  var rec = Ext.create('amdaModel.FilterDefCond',{
+	       type : group,
+		   logical : 'and'
+	  });
+	  
+	  return rec;
+  },
+  
+  onAddCondition : function(t)
+  {
+	  var crtGroup = t.parentMenu.crtGroup;
+	  if (!crtGroup)
+		  return;
+	  var firstCond = this.filtersInfoStore.getById(crtGroup).conditions().getAt(0);
+	  var rec = this.createCondition(crtGroup);
+	  var maxIndex = -1;
+	  this.store.each(function(cond)
+			  {
+		  		if (cond.get('type') == crtGroup)
+		  			maxIndex = (maxIndex < cond.get('index')) ? cond.get('index') : maxIndex; 
+			  },this);
+	  rec.set('index',maxIndex+1);
+	  this.store.add(rec);
+	  this.store.group('type');
+	  this.crtFilter.setDirty();
+	  this.getSelectionModel().select(rec);
+	  this.setConditionType(crtGroup,firstCond, true);
+  },
+  
+  onInsertCondition : function(t)
+  {
+	  if (this.getSelectionModel().hasSelection())
+	  {
+		  var cells  = this.getSelectionModel().getSelection();
+		  var crtRec = cells[0];
+		  var firstCond = this.filtersInfoStore.getById(crtRec.get('type')).conditions().getAt(0);
+		  var rec = this.createCondition(crtRec.get('type'));
+		  this.store.each(function(cond)
+				  {
+			  		if ((cond.get('type') == crtRec.get('type')) && (cond.get('index') > crtRec.get('index')))
+			  			cond.set('index',cond.get('index')+1);
+				  },this);
+		  rec.set('index',crtRec.get('index')+1);
+		  this.store.insert(crtRec.index+1,rec);
+		  this.store.group('type');
+		  this.crtFilter.setDirty();
+		  this.getSelectionModel().select(rec);
+		  this.setConditionType(crtRec.get('type'),firstCond, true);
+	  }
+  },
+  
+  onDeleteCondition : function(t)
+  {
+	if (this.getSelectionModel().hasSelection())
+	{
+	  var cells  = this.getSelectionModel().getSelection();
+	  this.store.remove(cells);
+	  this.crtFilter.setDirty();
+	  this.store.group('type');
+	};
+  },
+  
+  onClearGroupConditions : function(t)
+  {
+	  var crtGroup = t.parentMenu.crtGroup;
+	  if (!crtGroup)
+		  return;
+	  var recs = this.store.getGroups(crtGroup);
+	  if (!recs)
+		  return;
+	  Ext.each(recs.children, function (rec)
+			  {
+		  			if (rec.get('index') == -1)
+		  				return;
+		  			this.store.remove(rec);
+			  },this);  
+	  this.store.group('type');
+  },
+  
+  onClearAllConditions : function(t)
+  {  
+	  var recs = this.store.getGroups();
+	  if (!recs)
+		  return;
+	  Ext.each(recs, function (group)
+			  {		  
+		  		Ext.each(group.children, function (rec)
+		  				{
+		  					if (rec.get('index') == -1)
+		  						return;
+		  					this.store.remove(rec);
+		  				},this);
+			  },
+			  this);
+	  this.store.group('type');
+  },
+  
+  onSelectConditionType : function(combo,records,eOpts)
+  {
+	  if (!records || (records.length != 1))
+		  return;
+	  this.setConditionType(records[0].getFilter().get('id'),records[0],true);
+  },
+  
+  createCellEditingPlugin : function()
+  {
+	  var cellPlug = Ext.create('Ext.grid.plugin.CellEditing', {
+      			clicksToEdit: 1,
+      			listeners: {
+              		beforeedit: function(o, el, opt) {
+		  				if ((el.field == 'logical') && (el.record.get('index') <= 0))
+      						return false;
+      					return true;
+      				}
+	  			}
+      	}); 
+	  
+	  return cellPlug;
+  },
+  
+  createOperatorStore : function()
+  {
+    this.opStore = Ext.create('Ext.data.Store',{model: 'amdaModel.FilterOpInfo'});
+    return this.opStore;
+  },
+  
+  createFilterCondInfoStore : function()
+  {
+    this.condStore = Ext.create('Ext.data.Store',{model: 'amdaModel.FilterConditionInfo'});
+    return this.condStore;
+  },
+    
+  createLogicalColumn : function()
+  {
+	  return {
+      	   header: '',  
+      	   dataIndex: 'logical', 
+      	   flex: 1,
+      	   allowBlank : false,
+      	   renderer: function(value,metaData,record,rowIndex,colIndex,store,view)
+      	   {
+					if (record.get('index') == 0)
+						return '';
+					return value;
+      	   },
+      	   field: {
+      	     xtype : 'combobox',
+      	     store: [
+                       ['and','and'],
+                       ['or','or']
+                      ]
+             }
+    };
+  },
+  
+  createTypeColumn : function()
+  {
+	  return { 
+		   	   	header: 'Type', 
+		   	   	dataIndex: 'condId', 
+		   	   	flex: 3,
+		   	   	allowBlank : false,
+		       	renderer: function(value,metaData,record,rowIndex,colIndex,store,view)
+		       	{
+		  			var crtType = record.get('type');
+		  			var conditions = this.filtersInfoStore.getById(crtType).conditions();		
+		  			var condition = conditions.getById(record.get('condId'));
+		  			if (condition)
+		  				return condition.get('name');
+		  			else
+		  				return value;
+				},
+		   	   	field: {
+		       	     xtype  : 'combobox',
+		       	     queryMode: 'local',
+		       	     store : this.createFilterCondInfoStore(),
+		       	     editable: false,
+		       	     displayField:'name',
+		       	     valueField  : 'id',
+		       	     validateOnChange : true,
+		       	     listeners :
+		        	 {
+		       		   scope : this,
+		               'select': this.onSelectConditionType
+		        	 }
+		           }
+		      };  
+  },
+  
+  createOperatorColumn : function()
+  {
+	  return { 
+      	   header: '', 
+      	   dataIndex: 'opId', 
+      	   flex: 1,
+      	   allowBlank : false,
+      	   renderer: function(value,metaData,record,rowIndex,colIndex,store,view)
+      	   {
+		  		var crtType = record.get('type');
+		  		var conditions = this.filtersInfoStore.getById(crtType).conditions();
+	  		
+		  		var condition = conditions.getById(record.get('condId'));
+		  		if (!condition || !condition.ops().getById(record.get('opId')))
+		  			return '';
+		  		return condition.ops().getById(record.get('opId')).get('name');
+		  		return value;
+		   },
+      	   field: {
+       	     xtype  : 'combobox',
+       	     queryMode: 'local',
+       	     editable: false,
+       	     displayField:'name',
+      	     valueField  : 'id',
+      	     store       : this.createOperatorStore()
+           }
+         
+         };
+  },
+  
+  createValueColumn : function()
+  {
+	  return { 
+			header: 'Value', 
+			dataIndex: 'value', 
+			flex: 3,
+			renderer: function(value,metaData,record,rowIndex,colIndex,store,view)
+			{
+		  		var crtType = record.get('type');
+		  		var conditions = this.filtersInfoStore.getById(crtType).conditions();
+		  		var condition = conditions.getById(record.get('condId'));				
+				if (!condition)
+					return value;
+				switch(condition.get('type'))
+				{
+				  case 'date' :
+					return Ext.util.Format.date(value, 'Y/m/d H:i:s');
+				  case 'select' :
+					var selectList = this.filtersListStore.getById(condition.get('selectList'));
+					if (!selectList)
+					  return value;
+					var rec = selectList.elts().getById(record.get('value'));
+				    if (!rec)
+				      return value;
+				    return rec.get('name');
+				}
+				return value;
+			}
+		};
+  },
+  
+  createColumns : function()
+  {
+	  return [
+	          	this.createLogicalColumn(),
+	          	this.createTypeColumn(),
+	          	this.createOperatorColumn(),
+	          	this.createValueColumn()
+	          ];
+  },
+  
+  createContextMenus : function()
+  {
+	  var me = this;
+	  
+	  this.groupMenu = Ext.create('Ext.menu.Menu', {
+		  	crtGroup : null,
+		    items: [{
+		        text: 'Add',
+		        iconCls: 'icon-add',
+		        handler : this.onAddCondition,
+		        scope : me
+		    },{
+		        text: 'Clear',
+		        iconCls: 'icon-delete',
+		        handler : this.onClearGroupConditions,
+		        scope : me
+		    },
+		    '-',
+		    {
+		        text: 'Clear All',
+		        iconCls: 'icon-delete',
+		        handler : this.onClearAllConditions,
+		        scope : me
+		    }
+		    ]
+		});
+	  
+	  this.itemMenu = Ext.create('Ext.menu.Menu', {
+		  	items: [{
+		        text: 'Insert',
+		        iconCls: 'icon-add',
+		        handler : this.onInsertCondition,
+		        scope : me
+		    },{
+		        text: 'Delete',
+		        iconCls: 'icon-delete',
+		        handler : this.onDeleteCondition,
+		        scope : me
+		    }
+		    ]
+		});  
+  },
+  
+  createGroupingFeature : function()
+  {
+	  var me = this;
+	  
+	  this.groupingFeature = Ext.create('Ext.grid.feature.Grouping',{
+		 	enableGroupingMenu: true,
+		 	enableNoGroups : false,
+		 	showGroupsText : false,
+	        groupHeaderTpl: Ext.create('Ext.XTemplate', 
+	        		'{name:this.filter_type} ({rows.length:this.cond_info})', 
+	        		{
+	            		cond_info : function(val) 
+	            		{
+	        				var nbCond = val < 1 ? 0 : val-1;
+	        				return (nbCond > 1) ? nbCond+' conditions' : nbCond+' condition';
+	            		},
+	            		filter_type : function(val)
+	            		{
+	            			if (!me.filtersInfoStore)
+	            				return val;
+	            			var rec = me.filtersInfoStore.getById(val);
+	            			if (!rec)
+	            				return val;
+	            			return rec.get('name');
+	            		}
+	        		}
+	        		
+	        	)
+	    });
+  },
+  
+  init : function(config)	
+  {
+	  var me = this;
+	  
+	  this.createContextMenus();
+	  
+	  this.createGroupingFeature();
+	 
+	  var myConf = 
+      	{
+	    	 plugins : [
+	    	            this.createCellEditingPlugin()
+	    	 ],
+	    	 flex:2,
+	    	 height : 200,
+	    	 columns: this.createColumns(),
+	    	 features: [this.groupingFeature],
+	    	 hideHeaders: true,
+	    	 viewConfig: {
+	    	        getRowClass: function(record, rowIndex, rowParams, store){
+    	 				if (record.get('index') == -1) return 'x-hide-display';
+	    	        },
+     		},
+
+	    	 listeners : {
+	    	 	selectionchange : function(view, selections, options)
+	    	 	{
+    	 			if (selections && selections[0])
+					{
+    	 				
+					  var condId = selections[0].get('condId');
+					  
+					  var crtType = selections[0].get('type');
+				  	  var conditions = this.filtersInfoStore.getById(crtType).conditions();
+			  					  		
+					  var cond = conditions.getById(condId);
+					  if (cond)
+					  {
+						this.setConditionType(crtType,cond,false);
+					  }
+					}
+	    	 	},
+	    	 	itemcontextmenu : function(view,record,item,index,e)
+	    	 	{
+	    	 		e.stopEvent();
+	    	 		this.itemMenu.showAt(e.getXY());
+	    	 	},
+	    	 	groupcontextmenu : function(view, node, group, e)
+		 		{	 			
+		 			e.stopEvent();
+		 			this.groupMenu.crtGroup = group;
+		 			this.groupMenu.showAt(e.getXY());
+		 		},
+	    	 	scope : this
+	    	  	
+			 }
+      };
+      Ext.apply (this , Ext.apply (arguments, myConf));
+  }
+});
+
+/*
+ * Filters main interface 
+ */
+
+Ext.define('amdaUI.FiltersUI', {
+    extend: 'Ext.panel.Panel',
+    alias: 'widget.panelFilters',
+
+    requires : [
+		      	  'amdaModel.FilterInfo',
+		      	  'amdaModel.FilterDef'
+		],
+    
+	newFilterName : 'New_Filter_',
+		
+	//filters info to build interface
+	filtersInfoStore : null,
+	filtersListStore : null,
+		
+    constructor: function(config) {			
+		this.init(config);
+		this.callParent(arguments);
+	},
+	
+	onSelect : function(combo,records,eOpts)
+	{
+		if (!records || (records.length != 1))
+	      return;    
+	    var record = records[0];
+	    this.setFilterName(record.get('name'));
+	    this.grid.setConditions(record);
+	},
+	  
+	onBeforeSelect: function(combo, record, index)
+	{
+		/*var me = this;
+	    //var rec = this.getCrtFilterRecord();
+	    //if (!rec)
+	    //	return true;
+	    if (this.isDirty(record))
+	    {
+	    	Ext.Msg.confirm('Filters', 'Current filter has been modified.\nDo you want to save it?',
+			        function(btn) {
+		              if (btn == 'yes')
+		              {
+		                me.saveFilter(record,null);
+		                return true;
+		              }
+			        }
+			);
+	    	return false;
+	    }*/
+	    return true;
+	},
+	  
+	onAddFilter : function(t)
+	{
+		this.addFilter(null,null);
+	},
+	
+	addFilter : function(name,conds,successfn)
+	{
+		var combo = this.getFilterCombo();
+		if (!combo)
+			return null;
+		
+		var newRec = Ext.create('amdaModel.FilterDef');
+		
+		if (name != null)
+			newRec.set('name',name);
+		
+		newRec.conditions();
+		
+		if (conds != null)
+			Ext.each(conds, function(cond)
+					  			{
+									newRec.conditions().add(cond);
+					  			},this);
+		
+		combo.store.add(newRec);
+		
+		//sync store with the server
+		combo.store.sync({
+		      scope: this,
+		      callback: function (records, operation, success) {
+				// ....
+				var resRec = records.operations[0].response.result;
+				newRec.set('id',resRec.id);
+				newRec.set('name',resRec.name);
+				newRec.conditions().removeAll();
+				newRec.conditions().add(resRec.conditions);
+				combo.select(newRec);
+				combo.fireEvent('select', combo, [newRec] );		
+				if (successfn)
+   					successfn.call(this,newRec);
+		      }});
+		
+		return newRec;
+	},
+	  
+	onDeleteFilter : function(t)
+	{
+		var combo = this.getFilterCombo();
+		if (!combo)
+		  return;
+		
+		var rec = this.getCrtFilterRecord();
+                 
+		if (!rec)
+			return;
+		if (rec.get("id") == "0")
+			Ext.Msg.show( {
+				title : 'Filter', 
+				msg : 'Cannot delete the Default Filter',
+				modal : false,
+				icon : Ext.Msg.ERROR,
+				buttons : Ext.Msg.OK
+	  		});
+	  	else
+	  	{
+	  		combo.store.remove(rec);
+	  		combo.store.sync();
+	  		if (combo.store.getCount() > 0)
+	  		{
+	  			combo.select(combo.store.getAt(0));
+	  			//fire select event
+	  			combo.fireEvent('select', combo, [combo.store.getAt(0)]);
+	  		}
+	  		// the same in WS explorer combobox  
+	  		myDesktopApp.getLoadedModule(myDesktopApp.dynamicModules.explorer.id, true, function (module) {
+	  			var store = module.filtersStore;
+		  		var win = module.getUiContent(); 
+		  		var comboList = win.dockedItems.getAt(1).items.items[0];
+	                        
+		  		var recList = store.getById(rec.get("id"));                        
+		  		store.remove(recList);  
+		  		if (store.getCount() > 0)
+		  		{                                                    
+		  			comboList.select(store.getAt(0));                                
+		  			//fire select event
+		  			comboList.fireEvent('select', comboList, [store.getAt(0)]);
+		  		}    
+	  		});
+	  		        
+	  	}
+	},
+	  
+	onSaveFilter : function(t)
+	{
+		var rec = this.getCrtFilterRecord();
+		  
+		if (!rec)
+			return;
+		  
+		this.saveFilter(rec);
+	},
+	  
+	onApplyFilter : function(t)
+	{
+		
+		var me = this;
+		var rec = this.getCrtFilterRecord();
+		if (!rec)
+			return;
+		if (this.isDirty(rec))
+		{
+			Ext.Msg.confirm('Filters', 'Current filter has been modified.\nDo you want to save it?',
+			        function(btn) {
+		              if (btn == 'yes')
+		                me.saveFilter(rec,me.requestApplyFilter);
+			        }
+			);
+			return;
+		}
+		
+		this.requestApplyFilter(rec);
+	},
+	
+	requestApplyFilter : function(rec)
+	{
+		AmdaAction.setCrtFilterId({id : rec.get('id')}, 
+				function (result, e)
+				{
+					var t = e.getTransaction();
+					if (e.status) 
+					{	
+						if (result)
+						{
+							myDesktopApp.getLoadedModule(myDesktopApp.dynamicModules.explorer.id, true, function (module) {
+								module.setCrtFilter();    
+							});                                                 
+						}
+						else
+							Ext.Msg.show( {
+								title : 'Filter', 
+								msg : 'Cannot apply filter',
+								modal : true,
+								icon : Ext.Msg.ERROR,
+								buttons : Ext.Msg.OK
+							});
+					}
+					else
+					{
+						// FAILURE
+						Ext.Msg.show({title:'Error System', msg: e.message, icon: Ext.MessageBox.ERROR, buttons: Ext.Msg.OK});
+					} 
+			},this);
+	},
+		
+	isDirty : function(filter)
+	{
+		if (filter.dirty)
+			return true;
+		var crtName = this.getFilterName();
+		if (filter.get('name') != crtName)
+			return true;
+		var dirty = false;
+		filter.conditions().each(function(cond)
+				{
+					dirty |= cond.dirty
+				}
+		);
+		return dirty;
+	},
+	  
+	getFilterCombo : function()
+	{
+		var comboField = this.query('#filter_combo');
+		if (!comboField || (comboField.length != 1))
+			return null;
+		return comboField[0];
+	},
+	
+	getNameField : function()
+	{
+		var nameField = this.query('#filter_name');
+		if (!nameField || (nameField.length != 1))
+			return null;
+		return nameField[0];
+	},
+		
+	saveFilter : function(rec,successfn)
+	{
+		var me = this;
+		  
+		var filterName = this.getFilterName();
+		if (!filterName)
+			return;
+
+		if (filterName == rec.get('name'))
+		{
+			//save modifications
+            rec.save({
+            			success: function() {
+            				rec.conditions().each(function (cond)
+            				{
+            					cond.commit();
+            				});
+            				rec.commit();
+            				if (successfn)
+            					successfn.call(me,rec);
+            		    },
+            		    failure : function(){
+            		    	Ext.Msg.alert('Filters', 'Cannot save filter!');
+            		    }
+            });
+			return;
+		}
+		
+		var msg;
+		if (rec.get('id') == 0)
+			msg = 'The name of the default filter cannot be modified. Do you want to create a new instance of this filter?';
+		else
+			msg = 'Filter name has been changed. Do you want to create a new instance of this filter?';
+					
+		Ext.Msg.confirm('Filters', msg,
+				function(btn) {
+					if (btn == 'yes')
+					{
+						//duplicate the filter with the new name
+						//make a copy of current conditions list
+						var conds = [];
+						rec.conditions().each(function (cond,i,a)
+								{
+									conds[i] = cond.getJsonValues();
+								},
+								this);
+							
+						//reload conditions of the current filter
+						amdaModel.FilterDef.load(rec.get('id'),
+								{
+									scope : this,
+									callback : function(r, operation) 
+									{
+										//reset modifications on current record
+										rec.conditions().removeAll();
+										rec.conditions().loadData(r.conditions().data.items);
+										//create the new filter
+										var newRec = this.addFilter(filterName,conds,successfn);
+										
+									}
+								}		
+						);
+						return;
+					}				
+						
+					if (rec.get('id') == 0)
+					{
+						filterName = rec.get('name'); //cannot change default filter name
+						this.setFilterName(filterName);
+					}
+					
+					//change the name of the filter
+			        rec.set('name',filterName);  		
+			        //save modifications
+			        rec.save({
+			           			success: function() {
+			           				rec.conditions().each(function (cond)
+			           				{
+			           					cond.commit();
+			           				});
+			           				rec.commit();
+			           				if (successfn)
+			           					successfn.call(me,rec);
+			           		    },
+			           		    failure : function(){
+			           		    	Ext.Msg.alert('Filters', 'Cannot save filter!');
+			           		    }
+			           });
+				},
+				this
+			);	
+	},
+	  
+	setFilterName : function(n)
+	{
+		var nameField = this.getNameField();
+	    if (!nameField)
+	      return;
+	    nameField.setValue(n);
+	},
+	  
+	getFilterName : function()
+	{
+	    var nameField = this.getNameField();
+	    return nameField.getValue();
+	},
+	  
+	getCrtFilterRecord : function()
+	{
+	    var combo = this.getFilterCombo();
+		if (!combo)
+		  return null;
+		return combo.store.getById(combo.getValue());
+	},
+	  
+	setCrtFilter : function()
+	{  
+		AmdaAction.getCrtFilterId(function (result, e)
+				{
+					var t = e.getTransaction();
+					if (e.status) 
+					{	
+						if (result)
+						{
+							var crtId = result;
+							var combo = this.getFilterCombo();
+							if (!combo)
+							  return null;
+							var rec = combo.store.getById(crtId);
+							combo.select(rec);
+							combo.fireEvent('select', combo, [rec] );
+						}
+						else
+							Ext.Msg.show( {
+								title : 'Filter',//module.title,
+								msg : 'Cannot get current filter',
+								modal : true,
+								icon : Ext.Msg.ERROR,
+								buttons : Ext.Msg.OK
+					  		});
+					}
+					else
+					{
+					  // FAILURE
+				      Ext.Msg.show({title:'Error System', msg: e.message, icon: Ext.MessageBox.ERROR, buttons: Ext.Msg.OK});
+					} 
+				},this);
+	},
+	  
+	createFilterStore : function()
+	{
+		return Ext.create('Ext.data.Store',
+				{
+					model: 'amdaModel.FilterDef',
+					autoLoad : true,
+					listeners : 
+					{
+						'load' : function(store, records, successful)
+						{
+							if (!successful)
+								Ext.Msg.show( {
+									title : 'Filter',//module.title,
+									msg : 'Cannot load filters',
+									modal : true,
+									icon : Ext.Msg.ERROR,
+									buttons : Ext.Msg.OK
+						  		});
+							else
+								this.setCrtFilter();
+						},
+						scope : this
+					}
+					             
+				});
+	},
+	
+	reloadFilter : function()
+	{
+	    var combo = this.getFilterCombo();
+	    if (!combo)
+	    	return;
+	    combo.getStore().reload();
+	},
+	    
+	createToolBar : function()
+	{
+		var me = this;
+		return [
+		        {
+		        	xtype : 'button',
+		        	text  : 'Add',
+		        	flex : 1,
+		        	iconCls: 'icon-add',
+		        	scope : this,
+		        	handler: this.onAddFilter
+		        },
+		        {
+		        	xtype : 'button',
+		        	text  : 'Remove',
+		        	flex : 1,
+		        	iconCls: 'icon-delete',
+		        	scope : this,
+		        	handler: this.onDeleteFilter
+		        },
+		        {
+		        	xtype: 'tbseparator'
+		        },
+		        {
+		        	xtype : 'combobox',
+		        	fieldLabel: 'Select Filter',
+		        	id : 'filter_combo',
+		        	forceSelection : true,
+		        	height : 20,
+		        	flex : 4,
+		        	store : this.createFilterStore(),
+		        	queryMode: 'remote',
+		        	editable: false,
+		        	displayField: 'name',
+		        	valueField  : 'id',
+		        	listeners :
+		        	{
+		        		scope : this,
+		        		'select': this.onSelect,
+		        		'beforeselect' : this.onBeforeSelect
+		        	}
+		        }
+		        
+			];
+	},
+		
+	createInfoPanel : function()
+	{
+		var me = this;
+		return {
+			xtype : 'panel',
+			bodyStyle: { background : '#dfe8f6' },
+			flex:1,
+			layout : {
+				type : 'vbox',
+				align: 'stretch',
+				defaultMargins: {top: 10, left:10, bottom:5, right:5}
+			},
+			height : 200,
+			items : [
+			         {
+			        	 xtype : 'textfield',
+			        	 fieldLabel : 'Filter Name',
+			        	 id : 'filter_name',
+			        	 labelAlign : 'top'
+			         },
+			         {
+			        	 xtype : 'button',
+			        	 text : 'Save',
+			        	 scope : this,
+			        	 handler: this.onSaveFilter
+			         },
+			         {
+			        	 xtype : 'button',
+			        	 text : 'Apply',
+			        	 scope : this,
+			        	 handler : this.onApplyFilter
+			         }
+			       ]
+		   };
+	},
+		
+	createGridPanel : function()
+	{
+		this.grid = Ext.create('amdaUI.FilterGridPanel',{});
+		return this.grid;
+	},
+	
+    init : function(config)	
+    {
+	  var me = this;
+	  
+   	  var myConf = {
+    		  layout: 'border',
+    		  tbar : this.createToolBar(),
+    		  items: [  
+    		          {
+    		        	  xtype : 'panel',
+    		        	  region: 'center',
+    		        	  layout : {
+    		        	    type : 'hbox',
+    		        	    align : 'stretch',
+    		        	    defaultMargins: {top: 10, left:10, bottom:5, right:5}
+    		          	  },
+    		              bodyStyle: { background : '#dfe8f6' },
+    		             items : [
+    		                        this.createInfoPanel(),
+    		                        this.createGridPanel()
+    		                   ]    
+    		          },
+    		          {
+    		  			xtype: 'panel', 
+    		  			region: 'south',
+    		  			title: 'Information',
+    		  			collapsible: true,
+    		  			height: 103,
+    		  			autoHide: false,
+    		  			iconCls: 'icon-information',
+					bodyStyle: 'padding:5px',
+    		  			loader: {
+    	 				      autoLoad: true,
+    	 				      url: helpDir+'filterHOWTO'
+    	 				    } 		  			
+    		  		  }
+    		          ]
+		};
+		Ext.apply (me , Ext.apply (arguments, myConf));
+		
+		  this.filtersInfoStore = Ext.create('Ext.data.Store',{model: 'amdaModel.FilterInfo'});
+		  this.filtersListStore = Ext.create('Ext.data.Store',{model: 'amdaModel.FilterSelectList'});
+
+		  this.filtersInfoStore.load({
+	    	  scope   : me,
+	    	  callback: function(records, operation, success)
+	    	  {
+                        me.grid.setFiltersInfoStore(this.filtersInfoStore);
+                        this.filtersListStore.load({
+                            scope   : me,
+                            callback: function(records, operation, success)
+                            { 
+                                        me.grid.setFiltersListStore(this.filtersListStore);
+                            }
+			    });
+	    	  }
+		  });
+    }
+});
\ No newline at end of file
diff --git a/js/app/views/HstUI.js b/js/app/views/HstUI.js
new file mode 100644
index 0000000..4eb8e83
--- /dev/null
+++ b/js/app/views/HstUI.js
@@ -0,0 +1,80 @@
+/**
+  * Project      :  AMDA-NG
+  * Name         : HstUI.js
+  * @plugin 	  amdaUI.HstUI
+  * @extends 	  Ext.panel.Panel
+  * @brief		 Hst view
+  * @author Benjamin
+  * @version $Id: HstUI.js 1123 2012-10-31 13:47:03Z benjamin $
+  ********************************************************************************
+  *    FT Id     :   Date   : Name - Description
+  *******************************************************************************
+  *  :          
+  */
+
+Ext.define('amdaUI.HstUI', {
+    extend: 'amdaUI.AstroImagesUI',
+    alias: 'widget.panelHst',
+	
+	getPreviewUrl : function(image)
+	{
+		return 'http://archive.stsci.edu/cgi-bin/hst_preview_search?ne=on&amp;shrink=on&amp;imfmt=gif&amp;name='+image.get('name');
+	},
+	
+	getImageLink : function(image)
+	{
+		return 'http://archive.stsci.edu/cgi-bin/mastpreview?mission=hst&amp;dataid='+image.get('id');
+	},
+	
+	getFITSUrl : function(image)
+	{
+		return 'http://archive.stsci.edu/cgi-bin/hst_preview_search?ne=on&imfmt=fits&name='+image.get('id');
+	},
+	
+	getAcknowledgement : function()
+	{
+		return '<br/><a target="_blank"  href="http://archive.stsci.edu/">Mikulski Archive for Space Telescopes (MAST)</a>';
+	},
+	
+	onFinishGetImages : function(result, e)
+	{	
+		var t = e.getTransaction();
+		if (e.status && result) 
+		{	
+		  if (result.success)
+		  {
+			this.createTree(result.result);
+		  }
+		  else
+		  {
+			  //ERROR
+			  if (result.message)
+				  Ext.Msg.show({title:'Error', msg: result.message, icon: Ext.MessageBox.ERROR, buttons: Ext.Msg.OK});
+			  else
+				  Ext.Msg.show({title:'Error', msg: 'Unknown error', icon: Ext.MessageBox.ERROR, buttons: Ext.Msg.OK});
+		  }
+		}
+		else
+		{
+		  // FAILURE
+	      Ext.Msg.show({title:'Error System', msg: e.message, icon: Ext.MessageBox.ERROR, buttons: Ext.Msg.OK});
+		}
+	},
+	
+	refreshTree : function(o)
+	{
+		var startTime = Ext.Date.format(this.timeSelector.getStartTime(),"Y-m-d H:i:s");
+		var stopTime = Ext.Date.format(this.timeSelector.getStopTime(),"Y-m-d H:i:s");     
+        var planet = this.getTargetCombo().getValue();
+
+        var obj = {
+        		startTime : startTime,
+        		stopTime  : stopTime,
+        		planet    : planet
+        };
+        
+        this.getImageTreePanel().setLoading(true);
+
+        AmdaAction.getHstImagesUrl(obj,this.onFinishGetImages,this);
+	}
+});
\ No newline at end of file
diff --git a/js/app/views/InteractiveIntervalPlugin.js b/js/app/views/InteractiveIntervalPlugin.js
new file mode 100644
index 0000000..d5ae1bd
--- /dev/null
+++ b/js/app/views/InteractiveIntervalPlugin.js
@@ -0,0 +1,370 @@
+/**
+  * Project      :  AMDA-NG
+  * Name         : InteractiveIntervalPlug.js
+  * @plugin 	  amdaUI.InteractiveIntervalPlug
+  * @extends 	  Ext.util.Observable 
+  * @ptype 	 	  interactiveIntervalPlugin
+  * @brief		 Plot interactive session UI (View)
+  * @author Myriam
+  * @version $Id: InteractiveIntervalPlugin.js 2617 2014-10-24 12:06:57Z elena $
+  ********************************************************************************
+  *    FT Id     :   Date   : Name - Description
+  *******************************************************************************
+  *  :          
+  */
+
+
+Ext.define('amdaUI.InteractiveIntervalPlugin', {
+        extend:  'Ext.util.Observable',//'Ext.AbstractPlugin',
+        alias: 'plugin.interactiveIntervalPlugin',
+        
+        linkedNode : null,
+
+        moduleId : 'timetab-win',
+
+        rootNode : null,
+        win : null,
+
+        addInterval : false,
+
+        constructor: function(config) {            
+            Ext.apply(this, config);            
+            this.callParent(arguments);
+        },
+ 
+ 
+        init: function(cmp) {          
+            this.hostCmp = cmp;             
+            this.hostCmp.on({            
+                open: this.onOpen,            
+                startTime: this.setStart,            
+                stopTime: this.setStop,    
+                scope: this
+          });
+          
+//Global event	    
+          myDesktopApp.EventManager.on({            
+              refresh : this.insertInterval,            
+              scope: this}); 
+        },
+
+        onDestroy : function() {          
+            this.win = null;
+        },
+	
+        setStart: function(a){         
+            if (this.form)             
+                this.form.getForm().findField('start').setValue(a);
+        },	
+		
+        setStop: function(b){          
+            var a = new Date(this.form.getForm().findField('start').getValue());                 
+            if (a <= b) {                       
+                this.form.getForm().findField('stop').setValue(b);                                           
+            } else {            
+                this.form.getForm().findField('start').setValue(b);            
+                this.form.getForm().findField('stop').setValue(a);                                           
+            }                  
+        },
+        
+/**
+ *  add Interval to Time table
+ **/        
+        insertInterval: function() { 
+       
+            if (this.addInterval) {
+            	var targetModule = myDesktopApp.getLoadedModule(this.moduleId);
+            	if (targetModule)
+            	{
+            		var targetModuleUI = targetModule.getUiContent();
+            		if (targetModuleUI)
+            			targetModuleUI.addInterval(this.start,this.stop);
+            	}
+            }          
+          this.addInterval = false;
+        },
+
+/**
+ *  creation of the window
+ */        
+        onOpen: function() {          
+            if (!this.win) {             
+                this.win = new Ext.Window({                
+                    id: 'interactiveInter-win-' + this.hostCmp.ownerCt.ownerCt.getId(), // Plot window ID                                                   
+                    width: 380,               
+                    height: 160,              
+                    x: 0, y: 0,                
+                    baseCls:'x-panel',                
+                    title: 'Interactive Interval',			                
+                    layout: 'fit',			                
+                    constrain: true,			                
+                    collapsible: true,			               
+                    ghost: false,			                
+                    renderTo: this.hostCmp.ownerCt.getId(),                                 
+                    items: this.getFormConfig(),                
+                    listeners: {			                      
+                        scope: this,			    			                      
+                        beforeclose: function() {      
+                            this.hostCmp.ownerCt.destroyMire();	                    
+                            Ext.PluginManager.unregister(this);                                                                   
+                        }     
+                    },
+                    getConstrainVector: function(constrainTo){
+        				var me = this;
+        		        if (me.constrain || me.constrainHeader) {
+        		            constrainTo = constrainTo || (me.floatParent && me.floatParent.getTargetEl()) || me.container || me.el.getScopeParent();
+        		            return (me.constrainHeader ? me.header.el : me.el).getConstrainVector(constrainTo);
+        		        }
+        		    }
+                });
+                        
+                this.win.on('destroy', this.onDestroy, this);
+          
+                this.id = 'interactiveInter-' + this.hostCmp.ownerCt.ownerCt.getId();
+                        
+                Ext.PluginManager.register(this);	           		              
+                this.win.show();		 			              
+                this.win.setPosition(0,0);		  
+                var tree = Ext.getCmp(amdaUI.ExplorerUI.RESRC_TAB.TREE_ID);		              
+                this.rootNode = tree.getRootNode().findChild('id','timeTable-treeRootNode',true);
+                
+                amdaModel.InteractiveNode.preloadNodes(this.rootNode,
+                		function()
+                        	{
+                        	});
+            }                             
+        },
+
+/**
+ *   check if multi or individual operation
+ */        
+        isMultiZoom: function() { 
+          
+            var win = myDesktopApp.desktop.getWindow(myDesktopApp.dynamicModules.interactive_plot.id);		          				
+            if (!win) return false;
+            
+            var multiPlotUI = win.items.getAt(0);		  
+            var checked = multiPlotUI.checkBoxGroup.getChecked();
+            
+            if (checked.length == 0) return false;		  
+            // check if this Plot is not checked then this is individual zoom		  
+            var hostId = this.hostCmp.ownerCt.ownerCt.getId();
+            
+            var isUnique = Ext.Array.every(checked, function(item){
+                if (item.name === hostId)             
+                return false;            
+            });
+            
+            return !isUnique;		            	  	         
+        },
+        
+        resetStartStop: function() {
+            this.form.getForm().findField('start').setValue('');                                
+            this.form.getForm().findField('stop').setValue('');                                 
+            this.hostCmp.ownerCt.resetMire();                  
+        },
+           
+
+/**
+ *        Main form
+ */
+        getFormConfig: function(){	    
+          this.form = new Ext.form.FormPanel( {	    	
+            frame: true,		
+            width: 380,		
+            height: 160,	    	
+            layout: 'hbox',	    	
+            fieldDefaults: {		  
+              labelWidth: 100		
+            },		
+            items: [
+               {                          
+                 xtype: 'container',			
+                 width : 250,			
+                 layout : 'vbox',			
+                 defaults: { height : 25, width: 250 },	
+                   items: [ 
+                      {                             
+                        xtype:'datefield', name:'start', fieldLabel: 'Start Time',                           
+                        format : 'Y-m-d\\TH:i:s'                                                                           
+                      },                         
+                      {                                                      
+                        xtype:'datefield', name:'stop', fieldLabel: 'Stop Time',                                                      
+                        format : 'Y-m-d\\TH:i:s'                                                                                                                                                         
+                      },
+                      {                            
+                        xtype: 'textfield',                               
+                        fieldLabel: 'Add in TimeTable',                            
+                        name: 'timeTableName',    
+                        listeners :
+                          {                             
+                            render : function(o,op)  
+                            { 
+                              var me = this;   
+                              var el = me.el;
+                              var dropTarget = Ext.create('Ext.dd.DropTarget', el, {
+                                ddGroup: 'explorerTree',
+                                notifyOver  : function(ddSource, e, data)
+                                {
+                                  if ((data.records[0].data.nodeType == 'timeTable') && (data.records[0].data.leaf))						
+                                  {  
+                                    this.valid = true; 
+                                    return this.dropAllowed;                                    
+                                  }
+                                  this.valid = false;
+                                  return this.dropNotAllowed;                                  
+                                },
+                                notifyDrop  : function(ddSource, e, data)	
+                                {
+                                  if (!this.valid)
+                                    return false;  
+                                  me.setValue(data.records[0].get('text'));
+                                  return true;                           
+                                }                                    
+                              });                                                                                          
+                            }                                                                                  
+                          }                                                    
+                      }                     
+                  ]                     
+              },		    
+              {		        
+                xtype: 'container',			
+                width : 130,			
+                margin: '0 0 0 15',			
+                layout : 'vbox',			
+                defaults: {height : 25, width: 100},   			
+                items: [			 
+                  {                            
+                    xtype: 'button',			                                
+                    text: 'Reset Start/Stop',                                                       
+                    scope: this,                            
+                    handler: function() {
+                        this.resetStartStop();
+                    }
+                  },	 		
+                  { xtype: 'component', height: 34 },                                                     			
+                  {                            
+                    xtype: 'button',                            
+                    text: 'Insert Interval',                         			    
+                    scope: this,                            
+                    handler: function(){
+                      //   linkedNode.isValidName(value);	                                
+                      this.start = this.form.getForm().findField('start').getValue();                                
+                      this.stop = this.form.getForm().findField('stop').getValue();
+                     // new TimeTable or typed manually				 				
+                      var targetModule = myDesktopApp.getLoadedModule(this.moduleId);
+                      var targetModuleUI = null;
+                      if (targetModule)
+                    	  targetModuleUI = targetModule.getUiContent();				
+                      var TTname =  this.form.getForm().findField('timeTableName').getValue();
+// TT window was closed or TTname was changed				
+                      if (!targetModuleUI || !this.linkedNode || TTname !== this.linkedNode.get('text')) {						
+                        var nodeWithSameName = this.rootNode.findChild('text', TTname, true);					
+                        if (nodeWithSameName !== null) {					    					    
+                          this.linkedNode = nodeWithSameName;					    
+                          this.linkedNode.editLeaf();					    
+                          this.addInterval = true;					                          
+                        } 
+                        else {					   
+                          obj = Ext.create('amdaModel.TimeTable', {name : TTname, fromPlugin : true});					    
+                          this.linkedNode = Ext.create('amdaModel.TimeTableNode', {						  
+                            leaf : true,  
+                            text : TTname,
+                            nodeType : 'timeTable',  
+                            object : obj                               
+                          });					 					
+                          //   this.linkedNode.set('id','');					    
+                          this.linkedNode.editLeaf();					 				 					  					   
+                          //TODO generic PRELOAD problem to fix					
+                           Ext.Function.defer(function(){
+                        	   var targetModule = myDesktopApp.getLoadedModule(this.moduleId);
+                        	   if (targetModule)
+                        	   {
+                        		   targetModuleUI = targetModule.getUiContent();                            
+                        		   targetModuleUI.addInterval(this.start,this.stop); 
+                        	   }
+                            this.resetStartStop();
+                          }, 1000, this);   					                          
+                        }
+                      }   
+                      else  {				  				      
+                        targetModuleUI.addInterval(this.start, this.stop);
+                        this.resetStartStop();
+                      }                                                                                                             
+                    }                                             
+                  }                                           
+                ]		                                                 
+              }                            
+            ],	    
+            fbar : [		    	    
+              {                        
+                text: 'Zoom In Start/Stop',			                      
+                width: 100,			                      
+                scope: this,			                      
+                handler: function(){			   
+                  var startZoom = this.form.getForm().findField('start').getValue();			    
+                  var stopZoom = this.form.getForm().findField('stop').getValue(); 
+                  if(!startZoom || !stopZoom || !this.form.getForm().isValid()) {
+                      myDesktopApp.warningMsg('StartTime or StopTime is incorrect');
+                      return;
+                  }
+                 
+                  this.hostCmp.ownerCt.resetMire();     
+                  var multiZoom  = this.isMultiZoom();
+                			    
+                  if (multiZoom) { 
+                    var win = myDesktopApp.desktop.getWindow(myDesktopApp.dynamicModules.interactive_plot.id);                                                                             
+                    var multiPlotUI = win.items.getAt(0);           
+                    var checked = multiPlotUI.checkBoxGroup.getChecked();
+        
+                    Ext.Array.each(checked,function(item, index, all){  
+                      var id = item.name;  
+                      var winRes = myDesktopApp.getDesktop().getWindow(id); 
+                      
+                      if (winRes) {      
+                        var panelResult = winRes.items.items[0];     
+                        panelResult.setObjectIntoNode();  
+                        panelResult.object.fireEvent('execute', true, 'zoom',startZoom,stopZoom);                           
+                      }                          
+                    });                         
+                  }
+                  else {
+                    this.hostCmp.ownerCt.setObjectIntoNode();	
+                    this.hostCmp.ownerCt.object.fireEvent('execute', false, 'zoom',startZoom,stopZoom);				                        
+                  }                  
+                }                    
+              },
+              {                              
+                text: 'Reset Zoom', 
+                width: 100,                           
+                scope : this,
+                handler: function(){ 	
+                  this.hostCmp.ownerCt.resetMire();
+                  var multiZoom =  this.isMultiZoom();
+                  
+                  if (multiZoom) {                    
+                    var win = myDesktopApp.desktop.getWindow(myDesktopApp.dynamicModules.interactive_plot.id);                                                                             
+                    var multiPlotUI = win.items.getAt(0);           
+                    var checked = multiPlotUI.checkBoxGroup.getChecked(); 
+                    
+                    Ext.Array.each(checked,function(item, index, all){		      
+                      var id = item.name;		        
+                      var winRes = myDesktopApp.getDesktop().getWindow(id);	  
+                      if (winRes) {    
+                        var panelResult = winRes.items.items[0]; 
+                        panelResult.setObjectIntoNode();     
+                        panelResult.object.fireEvent('execute', true, 'resetzoom');                           
+                      }
+                    }); 
+                  }
+                  else {
+                    this.hostCmp.ownerCt.object.fireEvent('execute', false, 'resetzoom');                      
+                  }
+              }            
+            }       
+            ]            
+            
+          });   
+          return this.form;   
+        }    
+});
\ No newline at end of file
diff --git a/js/app/views/InteractivePlotUI.js b/js/app/views/InteractivePlotUI.js
new file mode 100644
index 0000000..5751046
--- /dev/null
+++ b/js/app/views/InteractivePlotUI.js
@@ -0,0 +1,410 @@
+/**
+ * Project   : AMDA-NG
+ * Name      :  InteractivePlotUI
+ * @class 	 amdaUI.ResultUI
+ * @extends  Ext. 
+ * @brief	  UI definition (View)
+ * @author 	  
+ * @version  $Id: InteractivePlotUI.js 2719 2015-01-26 10:23:22Z elena $
+ ********************************************************************************
+ *    FT Id     :   Date   : Name - Description
+ *******************************************************************************
+ *              
+ */
+
+Ext.define('amdaUI.InteractivePlotUI', {
+    extend: 'Ext.form.Panel',
+    
+    alias: 'widget.panelPlotMgr',
+    
+    requires: [
+                'amdaUI.TimeSelectorUI'
+    ],
+    
+    object : null,
+     
+    checkedTabs : null,   
+     
+    constructor: function(config) {
+        this.init(config);
+        this.callParent(arguments);  
+        this.timeSelector.timeSrc.on('change', this.onChange, this);
+    },
+    
+ // overwrite  timeselector onchange function   
+    onChange : function(radio, newValue, oldValue, options){	             	 			    
+        var ttIndex = newValue['timesrc_'+this.timeSelector.id] === amdaModel.AmdaTimeObject.inputTimeSrc[0] ? 0 : 1 ;			  		   
+
+        if (this.rendered){				    
+            radio.nextSibling().layout.setActiveItem(ttIndex);            
+        } else {				       
+            this.timeSelector.cardContainer.activeItem = ttIndex;                
+        }
+    },    
+        
+    addPlotItem : function(num, itemId){          
+        var checkBox = this.checkBoxGroup.getComponent(itemId);
+        if (checkBox) checkBox.enable();  
+    },
+    
+    removePlotItem : function(itemId){
+        var checkBox = this.checkBoxGroup.getComponent(itemId);
+        if (checkBox) {
+            checkBox.reset();
+            var module = myDesktopApp.getLoadedModule(myDesktopApp.dynamicModules.interactive_plot.id);
+            if (module && !module.multiSelector) 
+                    checkBox.disable();
+        }        
+    },
+    
+/**
+ *  Disable/Enable docked buttons in the PlotTab Windows checked
+ */    
+   disableDocked :  function(disable, plotTab) {
+        var docked = plotTab.formPanel.getDockedItems()[0]; 
+// Plot, GetData, Reset        
+        for (var i = 0; i < 3; i++) {
+            if (disable) docked.items.getAt(i).disable();
+            else docked.items.getAt(i).enable();
+        }       
+   },
+   
+/**
+ *  Disable/Enable TimeSelectors and buttons in the PlotTab Forms checked
+ */     
+    disableTimeSelectors : function(disable, plotId) {
+              
+        if (plotId){
+            var plotTab = Ext.getCmp(plotId);
+            var timeSource = plotTab.timeSelector.timeSrc.getChecked()[0].getGroupValue();
+             
+            if (disable) {
+                plotTab.timeSelector.disable();
+                if (timeSource === amdaModel.AmdaTimeObject.inputTimeSrc[0])
+                    plotTab.timeSelector.TTGrid.disable();
+            }
+            else {
+                plotTab.timeSelector.enable();
+                if (timeSource === amdaModel.AmdaTimeObject.inputTimeSrc[0])
+                    plotTab.timeSelector.TTGrid.enable();
+            }
+            this.disableDocked(disable, plotTab);
+        }
+        else { 
+	    var plotId; 
+	    var checked = this.checkBoxGroup.getChecked(); 
+	    if (checked.length > 0) {
+		  Ext.Array.each(checked,function(item){		    
+		    var plotId = item.boxLabel.toLowerCase(); 
+		    var plotTab = Ext.getCmp(plotId);
+                    var timeSource = plotTab.timeSelector.timeSrc.getChecked()[0].getGroupValue();
+                    
+		    if (disable) {
+		      plotTab.timeSelector.disable(); 
+                      if (timeSource === amdaModel.AmdaTimeObject.inputTimeSrc[0])
+                        plotTab.timeSelector.TTGrid.disable();
+		    }
+		    else {
+		      plotTab.timeSelector.enable(); 
+                      if (timeSource === amdaModel.AmdaTimeObject.inputTimeSrc[0])
+                        plotTab.timeSelector.TTGrid.enable();
+		    }
+		    this.disableDocked(disable, plotTab); 
+		  }, this);
+	     }
+       }    
+   },
+   
+ /**
+  *  Start interactive session for checked PlotTabs
+  */  
+    plot : function() {
+        var checked = this.checkBoxGroup.getChecked(); 
+        this.checkedTabs = [];
+        
+        if (checked.length > 0) {
+            
+            Ext.Array.each(checked,function(item){  
+                this.checkedTabs.push(item.boxLabel.substr(4,1));
+            }, this);
+  
+            Ext.Array.each(checked,function(item){
+                               
+                var plotId = item.boxLabel.toLowerCase();     
+                var plotTab = Ext.getCmp(plotId);
+                
+                if (plotTab.updateObject(true)){	       
+                    plotTab.doPlot();
+                }
+            }, this);
+            
+           this.multiSelector.setValue(false);      
+        }
+        else 
+            myDesktopApp.warningMsg('Please select SOMETHING in \'Multi Plot Manager\' window');
+        
+        this.checkedTabs = null;
+    },
+    
+/**
+ *  Execute commands during interactive session for checked PlotTabs
+ */   
+    execute : function(procedure, argName)
+    {  
+	  var checked = this.checkBoxGroup.getChecked();
+	  this.checkedTabs = [];
+           
+	  if (checked.length > 0)
+          {
+              Ext.Array.each(checked,function(item){  
+                this.checkedTabs.push(item.boxLabel.substr(4,1));
+                }, this);
+              
+	      var isMulti = checked.length > 1;
+	      Ext.Array.each(checked,function(item, index, all)
+              {		    
+		var id = item.name;				      
+                    var win = myDesktopApp.getDesktop().getWindow(id); 
+                    if (win) 
+                    {
+                        var panelResult = win.items.items[0];
+                        panelResult.setObjectIntoNode();
+                        var argValue =  panelResult.object.get(argName);
+                        if (procedure == 'goto') {
+                            var argValue = argName;
+                        }
+                        else {
+                            var argValue =  panelResult.object.get(argName);
+                        }
+                        panelResult.object.fireEvent('execute', isMulti, procedure, argValue);
+                    }
+                },this);	
+            }
+	  else 
+	      myDesktopApp.warningMsg('Please select SOMETHING');
+          
+          this.checkedTabs = null;
+      },
+      
+       /**
+         * Set Start-Stop from parameter info (Local & MyData)
+         */ 
+        setTimeFromData : function(obj) {
+                                                                  
+            var dateStart = new Date(obj.start.replace(/[T|Z]/g,' ').replace(/\-/g,'\/')); 
+            var dateStop = new Date(obj.stop.replace(/[T|Z]/g,' ').replace(/\-/g,'\/')); 
+             
+            this.getForm().setValues({ startDate : dateStart, stopDate : dateStop });
+        },
+      
+/**
+ *
+ */    
+    init : function(config){      
+        var items = [];
+	
+        var module = myDesktopApp.getLoadedModule(myDesktopApp.dynamicModules.interactive_plot.id);
+        if (!module)
+        	return;
+        
+        for (var i = 0; i < module.maxWinNumber; i++) {	
+	    var label = i + 1;
+	    items[i] = new Ext.form.field.Checkbox({ width: 52, boxLabel: 'Plot' + label,  disabled : true,
+                                                     id : 'plot' + label +'-win_box', name :  'plot' + label +'-win',
+                                                     itemId : 'plot' + label +'-win',
+						     listeners: {
+						       scope : this,
+						       change : function( cb, nv ){
+							 var plotId = cb.boxLabel.toLowerCase(); 
+							 
+							 var resWindow = myDesktopApp.desktop.getWindow(plotId + '-win');
+							 if (resWindow) {
+							   var resPlotUI =resWindow.items.getAt(0);
+							 }
+							 if (nv) {
+							   this.disableTimeSelectors(true, plotId);
+							   if (resPlotUI) resPlotUI.disableButtons(true);
+							 }
+							 else {
+							    this.disableTimeSelectors(false, plotId);
+							    if (resPlotUI) resPlotUI.disableButtons(false);
+							 }
+						       }
+						     }
+	    });					     
+	}  
+	
+	 this.checkBoxGroup =
+	          new Ext.form.CheckboxGroup( {items : items });
+		  	 	
+	this.timeSelector = new amdaUI.TimeSelectorUI({ id: 'MultiPlotTimeSelector',
+							style: { borderColor: '#98c0f4', borderWidth: '1px', marginBottom: '10px' }, 
+							hidden : true 	  
+						    }); 	
+ 
+	this.object = new amdaModel.AmdaTimeObject({timesrc :  amdaModel.AmdaTimeObject.inputTimeSrc[1]});
+	
+	this.multiSelector = new Ext.form.field.Checkbox({ 
+	    padding: '0, 0, 0, 5',  
+	    boxLabel: 'New Interactive Session for Selected Plot Requests',
+	    listeners: {
+			scope : this,
+			change: function (cb, nv, ov) {
+				
+				
+			  var win = myDesktopApp.desktop.getWindow(myDesktopApp.dynamicModules.interactive_plot.id);                          
+                          
+			  // multi Selector
+			  if (nv) {
+				  var module = myDesktopApp.getLoadedModule(myDesktopApp.dynamicModules.interactive_plot.id);
+				  module.multiSelector = true;
+			    
+			    Ext.Array.each(this.checkBoxGroup.items.items, function(item){
+			      item.enable();
+			    });
+			    
+		 	    this.disableTimeSelectors(true); 
+			    this.ttToolBar.hide();
+			    this.intervalToolBar.hide();
+			    
+			    this.plotToolBar.show();			    
+			    this.timeSelector.show();
+			    this.getForm().loadRecord(this.object);
+			    
+			    win.setHeight(270);	
+			  }	
+			  // individual Selectors
+			  else { 
+				  // update multi time selector from form        
+				  this.getForm().updateRecord(this.object);
+                
+				  var module = myDesktopApp.getLoadedModule(myDesktopApp.dynamicModules.interactive_plot.id);
+				  module.multiSelector = false;
+			    
+			    this.timeSelector.hide();  
+			    this.plotToolBar.hide();
+	 		    
+			    if (this.timeSelector.timeSrc.getChecked()[0].getGroupValue() == amdaModel.AmdaTimeObject.inputTimeSrc[1]) {			      
+			       this.intervalToolBar.show();			
+			    } 
+			    else {			
+			        this.ttToolBar.show();
+			    }
+			    var plotWinId;
+			    Ext.Array.each(this.checkBoxGroup.items.items, function(item){
+			      // disable only if plot window is closed
+			      plotWinId = item.name.toLowerCase();
+			      var resWindow = myDesktopApp.desktop.getWindow(plotWinId);
+			      if (!resWindow){
+				  item.disable();						 
+			      }			      
+			    });
+			    win.setHeight(120);	
+			  }
+			}				  							    							     
+		}
+	});	
+	
+	this.plotToolBar =  new Ext.toolbar.Toolbar({ 
+	  dock: 'bottom', 
+	  hidden: true,	
+	  items: [ '->', '-', 
+	      {				    
+	      text: 'Plot',    
+              scope : this,
+	      handler: function () { 
+		  this.plot();
+	      }
+	  }]	  
+	});
+	
+        this.intervalToolBar = new Ext.toolbar.Toolbar({           
+            dock: 'bottom',
+            items: [
+                {
+                    text: 'Backward', 
+		    scope: this,
+                    handler: function(){
+                         this.execute('back','startDate'); 
+                    }
+                }, '-' ,
+                {
+                    text: '1/2 Backward',
+		    scope: this,
+                    handler: function(){                          
+			  this.execute('halfback','startDate');                        
+                    }
+                }, '-', {
+                    text: '1/2 Forward',
+		    scope: this,
+                    handler: function(){                                                                  
+                         this.execute('halfnext','stopDate');
+                    }
+                }, '-',
+                {
+                    text: 'Forward',
+		    scope: this,
+                    handler: function(){  
+		              this.execute('next','stopDate');			      			      
+		    }     
+                }]
+	});
+
+	 this.ttToolBar = new Ext.toolbar.Toolbar({       
+	    hidden: true,
+            dock: 'bottom',
+            items: [
+                {
+                    text: 'Previous', 
+		    scope: this,
+                    handler: function(){
+                         this.execute('backInt', 'intervalN'); 
+                    }
+                }, '-' ,                   
+                {
+                    text: 'Next',
+		    scope: this,
+                    handler: function(){  
+		              this.execute('nextInt', 'intervalN');			      			      
+		    }     
+                },'-',
+		 {		 
+		    text: 'Go to Interval #',  
+		    scope: this,
+		    handler: function(bt){			    
+			var number = bt.nextSibling().getValue();			
+		//	var intTot = this.getDockedItems()[0].items.getAt(11).getValue();
+		//	if (number <= intTot){
+				    this.execute('goto', number);
+		//	}
+		//	else {
+		//	  myDesktopApp.warningMsg('Only '+ intTot +' intervals in the current Time Table');
+		//	}
+		      }
+		      }, {
+			  xtype: 'numberfield',
+			  hideTrigger: true,                        
+			  width: 40, 
+			  minValue: 1			
+		      }
+ 		  ]
+	});
+	 
+        var myConf = {
+	 //   bodyStyle: { background: '#dfe8f6' },  
+	    bodyStyle: { background: '#ffffdd' },    
+	    items: [ 
+		      this.checkBoxGroup,
+		      this.multiSelector,
+		      this.timeSelector	  
+		    ],	
+	   dockedItems: [
+		      this.intervalToolBar,
+		      this.ttToolBar,
+		      this.plotToolBar
+		    ]	
+        };
+
+        Ext.apply (this , Ext.apply (arguments, myConf));	    	    
+    }
+});
diff --git a/js/app/views/InteropImpexUI.js b/js/app/views/InteropImpexUI.js
new file mode 100644
index 0000000..29e72f6
--- /dev/null
+++ b/js/app/views/InteropImpexUI.js
@@ -0,0 +1,410 @@
+/**
+ * Project   : AMDA-NG
+ * Name      : InteropImpexUI.js
+ * @class 	 amdaUI.InteropImpexUI 
+ * @extends      Ext.form.Panel
+ * @brief	  
+ * @author 	Elena
+ * @version  $Id: InteropImpexUI.js 2327 2014-04-29 08:47:22Z natacha $ 
+ */ 
+ 
+Ext.define('amdaUI.InteropImpexUI',{
+        extend: 'Ext.container.Container',
+        alias: 'widget.interop_impex', 
+        
+         requires: [ 'Ext.ux.CheckColumn'],
+        
+        nodeDataModel : 'amdaModel.remoteSimuParamNode',
+        linkedNode : null,
+        
+        setLinkedNode : function (myLinkedNode){           
+                this.linkedNode = myLinkedNode;		
+        },
+        
+        saveCallback: function(res,e)
+        {  
+            loadMask.hide();        
+            //if success
+            if(e.status) 
+            {              
+                // reload RemoteParam Tree in explorer
+                var explorerTree = Ext.getCmp(amdaUI.ExplorerUI.RESRC_TAB.TREE_ID);
+                if (explorerTree && this.linkedNode ) 
+                {                                       
+                        var explorerTreeStore = explorerTree.getStore();
+                        var explorerRoot = explorerTreeStore.getRootNode();
+                        var updatedId = this.linkedNode.get('id');
+                        var explorerPath = '/root/parameters-treeBase/myRemoteSimuData-treeRootNode/'+updatedId+'/';
+                            
+                        explorerTreeStore.load({ node : explorerRoot, 
+                                                params : { nodeType: 'resources'},
+                                                callback : function(){
+                                                    explorerTree.selectPath(explorerPath);                                                 
+                                                }
+                        });                
+                }                
+            }
+            //TODO error processing
+            else {
+            }
+        },
+        
+        /*
+         * UI components description / creation
+         */
+        initComponent : function()
+        {
+            //TODO Earth Only  ??? 
+            var targetStore = Ext.create('Ext.data.Store', {
+                fields: ['target'], 
+                data : [
+                    { target: 'Earth' }
+                   /* { target: 'Mars'  },
+                    { target: 'Venus' }   */                
+                ]
+            });
+            
+            var table = Ext.create('Ext.form.Panel', {       
+		bodyStyle:'padding:5px 5px 5px',
+                layout: 
+                {
+                    type: 'table',   
+                    columns: 7   
+                },
+                defaults: 
+                {    
+                    xtype: 'displayfield',          
+                    bodyStyle: 'padding:20px',
+                    hideTrigger: true
+                },            
+                items: [ 
+                    // header
+                    { width : 110},
+                    { value: 'value', width : 65 },
+                    { width : 20 },
+                    { value: 'weight' , width : 65},
+		    { width : 20},
+                    { value: 'scale', width : 65 },
+                    { width : 20 },
+                    
+                    { value: 'Density' },
+                    { xtype: 'numberfield', name : 'SW_Density_value', width: 50 },
+                    { value: ' *10^6m-3 ' },
+                    { xtype: 'numberfield', name : 'SW_Density_weight' , value: '1.0' , width: 50 },
+		    { value: '   ' },
+                    { xtype: 'numberfield', name: 'SW_Density_scale' , value: '7' , width: 50 },
+                    { value: ' *10^6m-3 '},  
+		    
+		    { value: 'Utot' },    
+                    { xtype: 'numberfield', name : 'SW_Utot_value' , width: 50 } ,
+                    { value: ' *10^3 m/s ' },
+                    { xtype: 'numberfield', name : 'SW_Utot_weight' , value: '1.0'  , width: 50 },
+		    { value: '   ' },
+                    { xtype: 'numberfield', name: 'SW_Utot_scale' , value: '430'  , width: 50 },
+                    { value: ' *10^3 m/s ' }, 
+		    
+		    { value: 'Btot' },    
+                    { xtype: 'numberfield', name : 'SW_Btot_value' , width: 50 } ,
+                    { value: ' *10^-9 T ' },
+                    { xtype: 'numberfield', name : 'SW_Btot_weight' , value: '1.0'  , width: 50 },
+		    { value: '   ' },
+                    { xtype: 'numberfield', name: 'SW_Btot_scale' , value: '6'  , width: 50 },
+                    { value: ' *10^-9 T ' },                      
+                    
+                    { value: 'Temperature' },    
+                    { xtype: 'numberfield', name : 'SW_Temperature_value' , width: 50 } ,
+                    { value: ' *10^3K ' },
+                    { xtype: 'numberfield', name : 'SW_Temperature_weight' , value: '1.0'  , width: 50 },
+		    { value: '   ' },
+                    { xtype: 'numberfield', name: 'SW_Temperature_scale' , value: '80'  , width: 50 },
+                    { value: ' *10^3K ' },      
+                    
+                    { value: 'Bx' },    
+                    { xtype: 'numberfield', name : 'SW_Bx_value' , width: 50 } ,
+                    { value: ' *10^-9 T ' },
+                    { xtype: 'numberfield', name : 'SW_Bx_weight' , value: '1.0' , width: 50  },
+		    { value: '   ' },
+                    { xtype: 'numberfield', name: 'SW_Bx_scale' , value: '6'  , width: 50 },
+                    { value: ' *10^-9 T ' },                      
+                    
+                    { value: 'By' },    
+                    { xtype: 'numberfield', name : 'SW_By_value' , width: 50 } ,
+                    { value: ' *10^-9 T ' },
+                    { xtype: 'numberfield', name : 'SW_By_weight' , value: '1.0' , width: 50  },
+		    { value: '   ' },
+                    { xtype: 'numberfield', name: 'SW_By_scale' , value: '6'  , width: 50 },
+                    { value: ' *10^-9 T ' },                      
+                    
+                    { value: 'Bz' },    
+                    { xtype: 'numberfield', name : 'SW_Bz_value' , width: 50 } ,
+                    { value: ' *10^-9 T ' },
+                    { xtype: 'numberfield', name : 'SW_Bz_weight' , value: '1.0'  , width: 50 },
+		    { value: '   ' },
+                    { xtype: 'numberfield', name: 'SW_Bz_scale' , value: '6'  , width: 50 },
+                    { value: ' *10^-9 T ' },                      
+                    
+                    { value: 'Function' },    
+                    { xtype: 'numberfield', name : 'SW_Function_value' , width: 50 } ,
+                    { value: '  ' },
+                    { xtype: 'numberfield', name : 'SW_Function_weight' , value: '1.0' , width: 50  },
+		    { value: '   ' },
+                    { xtype: 'numberfield', name: 'SW_Function_scale'  , width: 50 },
+                    { xtype: 'textfield', name: 'SW_Function_formule' }                      
+                ]
+            });  
+           
+           var inputForm = Ext.create(Ext.form.Panel, {
+	       bodyStyle:'padding:5px 5px 5px',
+               title: 'Based on a FMI algorithm',
+               items: [
+                    { 
+                        xtype : 'combo', name: 'Object',
+                        store :  targetStore,
+                        displayField: 'target', valueField: 'target', value: 'Earth' , width: 170 , 
+                        fieldLabel: 'Object', queryMode: 'local'                     
+                    },
+                    {                          
+                        xtype : 'numberfield', name : 'RunCount', value: 1 , width: 170 ,
+                        fieldLabel: 'RunCount'                     
+                    },
+                     table
+               ],
+                fbar: [
+                { 
+                    text: 'Get Runs', 
+                    scope: this,
+                    handler:  function() 
+                    {
+                       var values = this.down('form').getForm().getValues();  
+		       var i = 0;
+		       var j = 0;
+		       var nullValues = new Array();
+		       var hasValues = new Array();
+		       for (key in values) {
+			    if (values.hasOwnProperty(key)) {
+				
+				if (values[key] == ''){
+				  nullValues[i] = key;
+				  i++;
+				}
+				else {
+				  hasValues[j] = key;
+				  j++;
+				}
+			    }
+			}
+			var index;
+		       for (key in nullValues) {
+// 			 console.log(key + ": " + nullValues[key]);
+			 
+			  var index;
+			  for (index = 0; index < resOutput.columns.length; ++index) {
+			      if (resOutput.columns[index].items){
+				if (resOutput.columns[index].items.items[1] && resOutput.columns[index].items.items[1].dataIndex) {
+				    if (resOutput.columns[index].items.items[1].dataIndex == nullValues[key]) {
+				      resOutput.columns[index].items.items[0].hidden = true;
+				      resOutput.columns[index].items.items[0].setText("");			 				      
+				    }
+				    if (resOutput.columns[index].items.items[1].dataIndex == hasValues[key]) {
+				      resOutput.columns[index].items.items[0].hidden = false;
+				      resOutput.columns[index].items.items[0].setText("Diff. index");
+				    }
+				}
+			      }
+			  }
+		       }
+		       resOutput.update();
+		       loadMask.show();                       
+                       AmdaAction.getRun(values, function(res,e){  
+                           loadMask.hide();        
+                            //success
+                            if(e.status) 
+                            {                                 
+                              resStore.load();
+                              resOutput.show(); 
+                            }
+                            //TODO error processing
+                            else {}
+                       }, this);
+                     }
+                }]
+           });
+            
+           var resStore =  Ext.create('Ext.data.Store', {              
+                fields:[ { name : 'ToAdd', type : 'bool', defaultValue : false}, 
+                         'ResourceID', 'ResourceName', 'S_diff', 
+                        { name : 'S_diff_n_SW_Density', mapping : 'S_diff_n.SW_Density' }, 
+                        { name : 'SW_Density_value', mapping : 'Param_values.SW_Density' },
+			{ name : 'S_diff_n_SW_Utot', mapping : 'S_diff_n.SW_Utot' }, 
+			{ name : 'SW_Utot_value', mapping : 'Param_values.SW_Utot' },
+			{ name : 'S_diff_n_SW_Btot', mapping : 'S_diff_n.SW_Btot' }, 
+			{ name : 'SW_Btot_value', mapping : 'Param_values.SW_Btot' },
+			{ name : 'S_diff_n_SW_Temperature', mapping : 'S_diff_n.SW_Temperature' }, 
+			{ name : 'SW_Temperature_value', mapping : 'Param_values.SW_Temperature' },
+			{ name : 'S_diff_n_SW_Bx', mapping : 'S_diff_n.SW_Bx' }, 
+			{ name : 'SW_Bx_value', mapping : 'Param_values.SW_Bx' },
+			{ name : 'S_diff_n_SW_By', mapping : 'S_diff_n.SW_By' }, 
+			{ name : 'SW_By_value', mapping : 'Param_values.SW_By' },
+			{ name : 'S_diff_n_SW_Bz', mapping : 'S_diff_n.SW_Bz' }, 
+			{ name : 'SW_Bz_value', mapping : 'Param_values.SW_Bz' }
+                ],
+                proxy: {
+                    type: 'ajax',
+                     //TODO use sessionID  user-dependent URL
+                    url: 'data/'+sessionID+'/WS/runs.json',
+                    reader: {
+                        type: 'json',                       
+                        root: 'runs',
+                        idProperty: 'ResourceID'
+                    }
+                }
+            });
+           
+            var columns = [
+                { 
+                    xtype : 'checkcolumn',
+                    menuDisabled: true,
+                    sortable: false,
+                    dataIndex : 'ToAdd',   
+                    width: 30
+                },
+                {
+                    text     : 'Run Name',         
+                    sortable : false,
+                    dataIndex:  'ResourceName',
+		    width: 150
+                },{
+                    text     : 'Total diff. index',         
+                    sortable : true,
+                    dataIndex:  'S_diff'
+                },  
+                {
+                    text: 'SW_Density',
+                    columns: [{
+                        text     : 'Diff. index',
+                        width    : 75,                        
+                        dataIndex: 'S_diff_n_SW_Density'
+                    }, {
+                        text     : 'Value',
+                        width    : 80,                   
+                        dataIndex: 'SW_Density_value'
+                    }]
+                },
+		{
+                    text: 'SW_Utot',
+                    columns: [{
+                        text     : 'Diff. index',
+                        width    : 75,   
+                        dataIndex: 'S_diff_n_SW_Utot'
+                    }, {
+                        text     : 'Value',
+                        width    : 80,                   
+                        dataIndex: 'SW_Utot_value'
+                    }]
+                },
+	   {
+                    text: 'SW_Temperature',
+                    columns: [{
+                        text     : 'Diff. index',
+                        width    : 75,                        
+                        dataIndex: 'S_diff_n_SW_Temperature'
+                    }, {
+                        text     : 'Value',
+                        width    : 80,                   
+                        dataIndex: 'SW_Temperature_value'
+                    }]
+                },
+	   {
+                    text: 'SW_Btot',
+                    columns: [{
+                        text     : 'Diff. index',
+                        width    : 75,                        
+                        dataIndex: 'S_diff_n_SW_Btot'
+                    }, {
+                        text     : 'Value',
+                        width    : 80,                   
+                        dataIndex: 'SW_Btot_value'
+                    }]
+                },
+	   {
+                    text: 'SW_Bx',
+                    columns: [{
+                        text     : 'Diff. index',
+                        width    : 75,                        
+                        dataIndex: 'S_diff_n_SW_Bx'
+                    }, {
+                        text     : 'Value',
+                        width    : 80,                   
+                        dataIndex: 'SW_Bx_value'
+                    }]
+                },
+	   {
+                    text: 'SW_By',
+                    columns: [{
+                        text     : 'Diff. index',
+                        width    : 75,                        
+                        dataIndex: 'S_diff_n_SW_By'
+                    }, {
+                        text     : 'Value',
+                        width    : 80,                   
+                        dataIndex: 'SW_By_value'
+                    }]
+                },
+	   {
+                    text: 'SW_Bz',
+                    columns: [{
+                        text     : 'Diff. index',
+                        width    : 75,                        
+                        dataIndex: 'S_diff_n_SW_Bz'
+                    }, {
+                        text     : 'Value',
+                        width    : 80,                   
+                        dataIndex: 'SW_Bz_value'
+                    }]
+                }
+		];
+                
+            var cellEditing = Ext.create('Ext.grid.plugin.CellEditing');
+            
+            var resOutput = Ext.create('Ext.grid.Panel', {
+                title: 'Runs Info',             
+                columns: columns, 
+                store: resStore,
+                scroll: 'both',
+                hidden : true,
+                selModel: {
+                    selType: 'cellmodel'
+                },
+                fbar: [
+                { 
+                    text: 'Save Runs', 
+                    scope: this,
+                    handler:  function() 
+                    {                       
+                       var me = this;  
+                       var runsToAdd = resStore.getModifiedRecords();
+                       var values = [];
+                      
+                       Ext.Array.each(runsToAdd,function(run){
+                           values.push(run.get('ResourceID'));
+                       });
+                           
+                       loadMask.show();                     
+                       AmdaAction.addRun(values, me.saveCallback, me);
+                     }
+                }],
+                plugins: [cellEditing]
+            });
+            
+            var config = {		
+            //    bodyStyle: 'background:#ddecfe;',                
+                items: [
+                     inputForm,
+                     resOutput
+                ]  
+            };
+            
+            Ext.apply(this , config);
+            this.callParent(arguments);
+        }  
+});
\ No newline at end of file
diff --git a/js/app/views/InteropUI.js b/js/app/views/InteropUI.js
new file mode 100644
index 0000000..a3ff0b7
--- /dev/null
+++ b/js/app/views/InteropUI.js
@@ -0,0 +1,129 @@
+/**
+ * Project   : AMDA-NG
+ * Name      : InteropUI.js
+ * @class   amdaUI.InteropUI
+ * @extends Ext.tab.Panel
+ * @brief   Interop Module UI definition (View)
+ * @author  Benjamin RENARD
+ * @version $Id: InteropUI.js 1093 2012-10-03 15:54:26Z elena $
+ ******************************************************************************
+ *    FT Id     :   Date   : Name - Description
+ ******************************************************************************
+ *  :           :23/04/2012: BRE  - file creation
+ */
+
+
+Ext.define('amdaUI.InteropUI', {
+        extend: 'Ext.tab.Panel',
+        alias: 'widget.panelInterop',
+	     
+	requires: [
+	      'amdaUI.ParamsMgrUI'
+	  ],
+    
+    	constructor: function(config) {
+			this.init(config);
+			this.callParent(arguments);
+		},
+		
+		onSwitchConnect    : Ext.emptyFn,
+		
+		updateStatus : function(isConnected)
+		{
+			var sampTab = this.getComponent('samp_tab_panel');
+			
+			var sampButton = sampTab.dockedItems.items[0].items.items[1];
+			sampButton.setIconCls(isConnected ? 'icon-connected' : 'icon-disconnected');
+		},
+		
+		/*updateClients : function(clients)
+		{
+			var sampTab = this.getComponent('samp_tab_panel');
+			
+			var sampDataView = sampTab.query('dataview')[0];
+
+			sampDataView.store.loadData(clients);	
+		},*/
+		
+		getSampToolBar : function()
+		{
+			var me = this;
+			return [
+			        'SAMP connection : ',
+			        {
+			        	iconCls   : 'icon-disconnected',
+			        	handler: function() {
+			        		if (me.onSwitchConnect)
+			        			me.onSwitchConnect();
+			        	}
+			        }
+			];
+		},
+		
+		getSampClientsDataView : function(clientsStore)
+		{
+			var tpl = new Ext.XTemplate(
+				'<tpl for=".">',
+				  '<div style="margin: 2px;border: 1px solid #99BDE8;" class="clientinfo">',
+				    '<img src="{iconUrl}" width=24 height=24/><br/>',
+				    '<b>Name : </b><span>{name}</span><br/>',
+				    '<b>Identificator : </b><span>{id}</span><br/>',
+				    '<b>Description : </b><span>{descriptionText}</span><br/>',
+				    //'<b>Documentation : </b><span>{documentationUrl}</span><br/>',
+				  '</div>',
+				'</tpl>'
+			);
+			
+			return {
+				xtype : 'dataview',
+				store : clientsStore,
+				tpl: tpl,
+				emptyText: 'No clients to show',
+				itemSelector : 'div.clientinfo',
+				overClass:'x-view-over',
+				autoScroll : true,
+				width  : 300,
+				height : 300
+			};
+		},
+		
+		getSampTab : function (clientsStore)
+		{
+			var me = this;
+			
+			return {
+				xtype : 'panel',
+				id : 'samp_tab_panel',
+				title : 'SAMP',
+				layout : 'fit',
+				items : [
+				         this.getSampClientsDataView(clientsStore)
+				         ],
+				tbar : me.getSampToolBar()
+			};
+		},
+	   	   	 	   	   
+	      init : function(config) {
+            
+	    	var me = this;
+	    	
+	    	this.onSwitchConnect = config.onSwitchConnect;
+	    	var activeTab = config.activeTab ? config.activeTab : 0;
+		
+	    	var myConf = {
+	                plain : true,
+	    		activeTab: activeTab,
+	    		defaults: {
+	    	            autoHeight: true,
+	    	            layout : 'fit',
+	    	            bodyStyle: { background : '#dfe8f6' }
+	    	        },
+	    	        items: [
+	    	                this.getSampTab(config.clientsStore),
+				{ xtype : 'paramsMgrPanel', baseId : config.baseId, layout : 'hbox'}
+	    	        ]
+	        };
+
+	        Ext.apply (this , Ext.apply (arguments, myConf));  
+		}
+});
\ No newline at end of file
diff --git a/js/app/views/IntervalUI.js b/js/app/views/IntervalUI.js
new file mode 100644
index 0000000..c716491
--- /dev/null
+++ b/js/app/views/IntervalUI.js
@@ -0,0 +1,238 @@
+/**
+ * Project   : AMDA-NG
+ * Name      : IntervalUI.js
+ * @class 	 amdaUI.IntervalUI
+ * @extends  Ext.container.Container
+ * @brief    common component to select interval
+ * @author 	 Benjamin
+ * @version  $Id: IntervalUI.js 2077 2014-02-11 11:33:36Z elena $
+ * @todo Validations 
+ *****************************************************************************
+ * FT Id     :   Date   : Name - Description
+ ******************************************************************************
+ */
+
+
+Ext.define('amdaUI.IntervalUI', {
+    extend: 'Ext.container.Container',
+    
+    alias: 'widget.intervalSelector',
+
+    activeField : null,
+    
+	constructor: function(config) {
+		this.init(config);
+		this.callParent(arguments);
+	},
+    
+	setInterval : function(startDate,stopDate)
+	{
+		// get the search form
+        var form = this.findParentByType('form').getForm();
+        // get start field
+        var startField = form.findField('startDate');
+        // get stop field
+        var stopField = form.findField('stopDate');
+        
+        if (startField != null)
+        	startField.setValue(startDate);
+        
+        if (stopField != null)
+        	stopField.setValue(stopDate);
+        
+        this.updateDuration();
+	},
+	
+	getStartTime : function()
+	{
+		// get the search form
+        var form = this.findParentByType('form').getForm();
+        // get start field
+        var startField = form.findField('startDate');
+        
+        return startField.getValue();
+	},
+	
+	getStopTime : function()
+	{
+		// get the search form
+        var form = this.findParentByType('form').getForm();
+        // get stop field
+        var stopField = form.findField('stopDate');
+        
+        return stopField.getValue();		
+	},
+	
+    updateDuration: function() {
+
+        // get the search form
+        var form = this.findParentByType('form').getForm();
+        // get start value
+        var start = form.findField('startDate').getValue();
+        // get stop value
+        var stop = form.findField('stopDate').getValue();
+        // if duration computable
+        if (stop != null && start != null) {
+
+            // compute offset
+            var zoneOffset = stop.getTimezoneOffset() - start.getTimezoneOffset();
+            // compute duration
+            var diff = stop - start - zoneOffset*60000;
+            
+            var durationDays = Math.floor(diff/86400000);
+            // set all duration values
+            form.findField('durationDay').setValue(Ext.String.leftPad(durationDays,4,'0')); 
+            form.findField('durationHour').setValue(Ext.String.leftPad(Math.floor(diff/3600000 % 24),2,'0'));
+            form.findField('durationMin').setValue(Ext.String.leftPad(Math.floor(diff/60000 % 60),2,'0'));
+            form.findField('durationSec').setValue(Ext.String.leftPad(Math.floor(diff/1000 % 60),2,'0'));
+           
+            if (durationDays > 9999) {                   
+                form.findField('durationDay').markInvalid('Maximum interval is 9999 days!');
+            }
+            
+        }
+
+    },
+
+    isValidDuration: function(){
+        // get the time form
+        var form = this.findParentByType('form').getForm();
+        // get global validation status for duration fields
+        return (
+                form.findField('durationDay').isValid() && form.findField('durationHour').isValid() 
+                && form.findField('durationMin').isValid() && form.findField('durationSec').isValid()
+        );// return true if all duration fields are Valid false otherwise
+    },
+
+    updateStop: function() {
+
+        // get the time form
+        var form = this.findParentByType('form').getForm();
+        // get duration value
+        var duration =  parseInt(form.findField('durationDay').getValue(),10)*86400 +
+        parseInt(form.findField('durationHour').getValue(),10)*3600 +
+        parseInt(form.findField('durationMin').getValue(),10)*60  +
+        parseInt(form.findField('durationSec').getValue(),10);
+        // get start value
+        var start = form.findField('startDate').getValue();
+        // compute stop value
+        var stop = Ext.Date.add(start,Ext.Date.SECOND,duration);
+        // set stop value into form
+        form.findField('stopDate').setValue(stop);
+
+    },
+	
+	onChangeStartField : function(field, newValue, oldValue)         
+	{           
+            if (field.isValid())  {
+            // get the search form
+                var form = this.findParentByType('form').getForm();
+                // set to the stop datefield the newValue as minValue
+                form.findField('stopDate').setMinValue(newValue);
+                // if it's a user modification
+                if (oldValue != null && this.activeField == 'start')  {
+                    // launch the update of duration fields
+                    this.updateDuration();
+                }
+        }	
+	},
+	
+	onChangeStopField: function(field, newValue, oldValue){
+        if (field.isValid() && oldValue != null  && this.activeField == 'stop')  {
+            // launch the update of duration fields                              
+            this.updateDuration();  
+        }       
+    },
+	
+	getDateField : function(fieldName,fieldText,fieldId,onChangeField)
+	{
+		return {
+			layout: {type: 'hbox', align: 'middle'},
+            items: [
+                { 
+                    xtype: 'datefield', name: fieldName, format: 'Y/m/d H:i:s',
+                    enforceMaxLength : true,
+                    maxLength: 19,
+                    fieldLabel: fieldText, labelAlign: 'right', labelWidth: 60,
+                    listeners: {
+                        change: onChangeField,
+                        focus: function(field) {
+                            this.activeField = fieldId;
+                        },
+                        scope : this
+                    } 
+                } 
+            ]       
+        };
+	},
+	
+	getStartField : function()
+	{
+		return this.getDateField('startDate','Start Time','start',this.onChangeStartField);
+	},
+	
+	getStopField : function()
+	{
+		return this.getDateField('stopDate','Stop Time','stop',this.onChangeStopField);
+	},
+	
+	getDurationField : function()
+	{
+            return {
+            layout: {type: 'hbox', align: 'middle'},
+            height: 45,
+            defaults: { 
+                xtype: 'textfield', labelAlign: 'top', width: 30, 
+                allowBlank: false, maxLength:2, enforceMaxLength : true,
+                hideTrigger: true,
+                regex: /^[0-9]([0-9])*$/i,
+                listeners: {
+                    change: function(field, newValue, oldValue){
+                        if (this.isValidDuration() && oldValue != null && this.activeField == 'duration')  {
+                            // launch the update of stop datefield
+                            this.updateStop();  
+                        }       
+                    },
+                    focus: function(field) {
+                        this.activeField = 'duration';                  
+                    },  
+                    scope : this
+                } 
+            },                           
+            items:[
+                { xtype: 'displayfield', labelWidth: 60, labelAlign: 'right', width: 60, fieldLabel: '<br>Duration'},
+                { xtype: 'component', width: 5},
+                { name: 'durationDay', fieldLabel: 'Days', width: 45, maxLength: 4},
+                { xtype: 'component', width: 5},
+                { name: 'durationHour', fieldLabel: 'Hrs'},
+                { xtype: 'component', width: 5},
+                { name: 'durationMin', fieldLabel: 'Mins'},  
+                { xtype: 'component', width: 5},
+                { name: 'durationSec', fieldLabel: 'Secs'}
+            ]
+        };
+	},
+	
+    init : function(config) {
+        
+        var me = this;
+        
+        var myConf = {
+                    border: false,
+                    plain: true, 
+                    flex: 1,
+                    layout: 'anchor',
+                    defaults: { height : 30, xtype : 'container'},
+
+                    items: [
+                            me.getStartField(),
+                            me.getStopField(),
+                            me.getDurationField()
+                        ]
+        };
+
+        Ext.apply (this , Ext.apply (arguments, myConf));  
+	}
+});
+    
+    
\ No newline at end of file
diff --git a/js/app/views/MyDataUI.js b/js/app/views/MyDataUI.js
new file mode 100644
index 0000000..edc9c98
--- /dev/null
+++ b/js/app/views/MyDataUI.js
@@ -0,0 +1,816 @@
+/**
+ * Project   : AMDA-NG
+ * Name      : MyDataUI.js
+ * @class    : amdaUI.MyDataUI
+ * @extends  Ext.container.Container 
+ * @brief    MyData Module UI definition (View)
+ * @author Elena 
+ * @version  $Id: MyDataUI.js 2895 2015-05-05 14:38:28Z elena $	          
+ */
+ 
+ 
+Ext.define('amdaUI.MyDataUI', {
+        extend: 'Ext.container.Container',
+        alias: 'widget.panelMyData',
+
+        object : null,	
+        fileObject : null,
+        
+        module : null,
+        
+        fields : [],
+        columns : [],
+        
+        constructor: function(config) {	
+                this.module = myDesktopApp.getLoadedModule(myDesktopApp.dynamicModules.my_data.id);	   
+                this.init(config);
+                this.callParent(arguments);
+                this.setObject(this.module.linkedNode.get('object')); 
+        },
+ 
+        /*
+        * linked node should be MyDataParamNode
+        */	 	
+        resetLinkedNode: function() 
+        {
+            this.linkedNode = null;	    		      
+            this.module.createLinkedNode();
+            this.module.createObject();
+            this.module.linkedNode.set('fileObject',this.fileObject); 
+        },
+	
+        getObjectCallback: function(result,remoteEvent)
+        {
+            var t = remoteEvent.getTransaction();
+            if (result && !result.error) {   	         	      	      	     
+                //this.tmpNode.set('contextNode',mask!!! if exists	  
+                this.fileObject = Ext.create('amdaModel.FileObject', result);
+                var panelConfig = this.initPanel();
+            } 
+            else {	   
+                // EXCEPTION : parameter not found !
+                myDesktopApp.errorMsg(t.action + "." + t.method + " : No parameter '"
+                    +this.tmpNode.get('text')+"' found!");	     
+            }	  
+        },
+		
+        /*
+        *  Update info in the form on another parameter selection (cdf, cef formats);
+        */
+        updateInfo : function(res, e) 
+        {	    
+            if (res.success){	   
+                // info panel	     
+                this.items.getAt(1).update(res.info.name+': '+res.info.type+' '+res.info.size+' '+res.info.n_records);	    
+                var form = this.items.getAt(0).getForm();
+            
+                //keep old name and mask if they exist 
+                if ((res.info.name === this.object.get('realvar'))) { 
+                    if (this.object.get('realvar') != this.object.get('name')) {
+                            res.info.name = this.object.get('name');
+                    }
+                    if (res.info.mask != this.object.get('mask')) {
+                        res.info.mask = this.object.get('mask');
+                    }
+                }
+             res.info.ytitle = res.info.name;
+             
+             form.setValues(res.info);       
+            }
+            else {
+                myDesktopApp.errorMsg("System Error <br/> Error at AMDA Server");
+            }
+        },
+        
+        /*
+        * Check if changes were made before closing window 
+        * @return false
+        */	
+        fclose : function() {
+                return false;
+        },
+	
+        /**
+        * set object into form
+        */
+        setObject : function (object) 
+        {
+            // edit in module from  FileUpload Module and ExplorerModule (edit param)
+            if (this.module.linkedNode) { 
+                if (this.module.linkedNode.get('fileObject')) {		
+                    this.fileObject = this.module.linkedNode.get('fileObject');		  		       		    
+                } 
+            // edit in module from Explorer Module (edit file)
+                else if (this.module.linkedNode.get('object')) { 	 
+                    this.fileObject = this.module.linkedNode.get('object'); 
+                    this.resetLinkedNode();
+                }
+                else {	      
+                    myDesktopApp.errorMsg("System Error <br/> No FileObject and Object");
+                }	      
+            }	    
+            else {  
+                myDesktopApp.errorMsg("System Error <br/> No Linked Node"); 
+            }
+            
+            var form = this.down('form');
+            form.getForm().reset();
+            // remove and DESTROY right panel if it exists
+            if (form.items.length == 2) 
+                    form.remove(form.items.getAt(1),true);
+            // create right panel depending on file	  
+            var rightPanel = this.initPanel();
+            form.add(rightPanel);
+            this.object = this.module.linkedNode.get('object'); 
+
+            // load object into form
+            if (object.$className == 'amdaModel.FileObject' || !this.object.get('name'))
+                    form.getForm().loadRecord(this.fileObject);
+            else
+                    form.getForm().loadRecord(this.object);
+
+            // if it is not newly created empty myParamData node	  
+            if (this.object.get('name')) {
+                // file panel work around	   
+                if (this.fileObject.get('format') == 'txt') {    		 
+                    form.getForm().findField('start').setValue(this.object.get('realvar'));		 
+                }
+                else if (this.object.get('name') == 'vot')
+                {
+                    var radio = this.down('radiogroup'); 		
+                    radio.setValue({'votvar' : this.object.get('realvar')});
+                }
+                else { // cdf, cef, nc
+                // select parameter
+                    var radio = this.down('radiogroup'); 		
+                    radio.setValue({'cdfvar' : this.object.get('realvar')});                  
+                }
+            }
+        },
+
+/*
+ *  highlight selected columns in case of param (ASCII) edit
+ */
+        updateSelection: function()
+        {                    
+            var start = parseInt(this.object.get('realvar'));
+            var size =  parseInt(this.object.get('size'));
+            
+            if (start && size) {
+                var columns = this.down('gridpanel').columns;
+                for (var i = start; i < start+size; i++) {	   
+                    var selected = Ext.select(columns[i].getCellSelector(i));
+                    selected.addCls('meow');
+                    columns[i].selected = true;
+                }
+            }
+        },
+	
+        /*
+        * update this.object from form
+        */
+        updateObject : function(nameField)
+        {    
+            // get the basic form
+            var basicForm =  this.down('form').getForm();	  
+            var updateStatus = true;
+            var fieldsWithoutName = basicForm.getFields().items;
+            
+            Ext.Array.each(fieldsWithoutName, function(item, index,allItems){
+                if(item !== nameField) { 		     
+                    if (!item.isValid()) {
+                        // set update isn't allowed
+                        updateStatus = false;    
+                    }
+                }
+            }, this);
+            
+            // if the update is allowed
+            if (updateStatus) {
+                // real object update
+                // updateobject with the content of form
+                var values = basicForm.getValues(); 
+                basicForm.updateRecord(this.object);
+                this.object.set('file',this.fileObject.get('fileName')); 
+                this.object.set('format', this.fileObject.get('format'));
+                if (this.object.get('format') == 'cdf' || this.object.get('format') == 'cef' || this.object.get('format') == 'nc') this.object.set('realvar',values.cdfvar);
+                if (this.object.get('format') == 'vot') this.object.set('realvar',values.votvar);
+                if (this.object.get('format') == 'txt') this.object.set('realvar',values.start); 	
+            }
+            // return the update status
+            return updateStatus;	    
+        },
+	        
+        /**
+         * Check mask - length, existed....
+         * @return true/false
+         */     
+         validateMask : function(value)
+         {
+            // length
+            if (value.length < 6) return 'mask length is too small (< 6)';
+ 
+            // first *
+            if (value.indexOf('*') === 0)  return '"*" could not be the first letter in mask';
+           
+            // several *
+            if (value.indexOf('*') !== value.lastIndexOf('*')) return 'several "*" are not allowed in mask';
+           
+            // less common            
+            var paramModule = myDesktopApp.getLoadedModule(myDesktopApp.dynamicModules.my_data.id); 
+            var oldmask = paramModule.linkedNode.get('object').get('mask');
+            // no old mask
+            if (oldmask.length === 0) return true;
+            if (value.length > oldmask.length) return 'new mask is less common than old one';
+           
+           return true;
+        },
+
+        /*
+         * 
+         */        
+        saveProcess : function(toRename)
+        {          
+            var values = this.down('form').getForm().getValues();              	 
+            // Parameter Module
+            var paramModule = myDesktopApp.getLoadedModule(myDesktopApp.dynamicModules.my_data.id);   
+             
+            // if the name has been modified this is a creation
+            if (this.object.isModified('name')){                
+                    var contextNode = paramModule.linkedNode.parentNode;        
+                    // if object already has an id : it's a 'rename' of an existing  	
+                    if (this.object.get('id')){
+                        // get file object of the first node linked this file
+                        var fileObject = paramModule.linkedNode.get('fileObject');
+                        
+                        paramModule.createLinkedNode();                         
+                        // create a new object linked	                      
+                        var paramobj = Ext.create(paramModule.linkedNode.get('objectDataModel'), values);
+                            
+                        paramobj.set('format', this.fileObject.get('format'));                   
+                        if (paramobj.get('format') == 'cdf' || paramobj.get('format') == 'cef' ||
+                            paramobj.get('format') == 'nc')
+                                                    paramobj.set('realvar',values.cdfvar);
+                        if (paramobj.get('format') == 'vot') 
+                                                    paramobj.set('realvar',values.votvar);
+                        if (paramobj.get('format') == 'txt') 
+                                                    paramobj.set('realvar',values.start);
+ 
+                        paramobj.set('file', this.fileObject.get('fileName'));
+            
+                        paramModule.linkedNode.set('object',paramobj);
+                        //synchronize objects
+                        this.object = paramobj; 
+                        
+                        paramModule.linkedNode.set('fileObject',fileObject);
+                        
+                        if (toRename) 
+                                    paramModule.linkedNode.toRename = true;
+                    }
+                    paramModule.linkedNode.set('contextNode',contextNode);                 
+                    paramModule.linkedNode.create();
+                
+                    paramModule.linkedNode.set('isParameter', true);
+                    
+                    if (values.size == 1) {
+                                paramModule.linkedNode.set('iconCls', 'icon-scalar');  
+                                paramModule.linkedNode.set('isSpectra', false);
+                    }
+                    else {
+                        if (values.plottype == 'Spectra') {
+                                paramModule.linkedNode.set('isSpectra', true);
+                                paramModule.linkedNode.set('iconCls', 'icon-spectra'); 
+                        }
+                        else {
+                                paramModule.linkedNode.set('iconCls', 'icon-unknowntype'); 
+                                paramModule.linkedNode.set('isSpectra', false);
+                            }
+                    }                                        
+           
+                } else {  		  
+                    paramModule.linkedNode.set('contextNode',paramModule.contextNode); 
+                    paramModule.linkedNode.update();		  
+                }                  
+            }, 
+            
+            /* 
+            *       overwrite method called by Save button
+            */
+            overwriteProcess : function(btn){
+                if (btn == 'cancel') return;
+                var basicForm = this.down('form').getForm();
+                basicForm.clearInvalid();
+                this.saveProcess(true);        
+            },
+	
+            updateForm : function() {
+                var basicForm = this.down('form').getForm();
+                var columns = this.down('gridpanel').columns;
+                
+                var start;
+                var size = 0;
+                Ext.Array.each(columns, function(column,index){
+                    if (!start && column.selected) start = index;
+                    if (column.selected) size += 1;
+                });
+                
+                basicForm.setValues({start: start, size : size});
+            },
+    
+        /*
+        *         Configurations 
+        * 
+        */     
+        initPanel : function() 
+        {
+            var format = this.fileObject.get('format');	  
+            if (format == 'cdf' || format == 'cef' || format == 'nc') return this.cdfPanel(format);
+            if (format == 'txt')  return this.txtPanel();
+            if (format == 'vot') return this.votPanel();
+        },
+		
+        txtPanel: function() 
+        {	  
+            var fileName = this.fileObject.get('fileName');
+            
+            //FOR INFO
+            // Null out built in convert functions for performance *because the raw data is known to be valid*
+            // Specifying defaultValue as undefined will also save code. 
+            // As long as there will always be values in the data, or the app tolerates undefined field values*
+            
+            // Dynamically created fields and columns	    
+            var n_col = this.fileObject.get('vars'); 
+            // reset	  
+            this.fields = [];
+            this.columns = [];
+	  
+            for (var i = 0; i < n_col; i++){    
+                var name = i === 0 ? 'Time' : 'n'+i;
+                //TODO width dependent on data?	  
+                var width = i === 0 ? 120 : 75;
+                
+                this.fields[i] = { name: name };
+                this.columns[i] = { text: name, sortable : false,  dataIndex: name, width : width, 
+                                    menuDisabled: true, selected : false,
+                                    listeners: {
+                                        scope : this,
+                                        headerclick: function(ct, column){
+                                        if (column.text != 'Time') {
+                                            var selected = Ext.select(column.getCellSelector(1));
+                                            if (column.selected) {				      
+                                                selected.removeCls('meow');
+                                                column.selected = false;
+                                            }
+                                            else {
+                                            selected.addCls('meow');
+                                            column.selected = true;
+                                            }
+                                            this.updateForm();
+                                        }
+                                        }
+                                    }
+                };  
+            }
+            
+            // Dynamically created model	  
+            Ext.define('myData', {
+                extend: 'Ext.data.Model',
+                fields: this.fields,
+                idProperty: 'Time' 
+            });
+            
+            var store = Ext.create('Ext.data.ArrayStore', {
+                model: 'myData',
+                autoLoad: true,
+                proxy: {
+                type: 'direct',
+                directFn: AmdaAction.getAsciiFile		   
+                },
+                listeners: {
+                    scope: this,
+                    beforeload: function(store){
+                        store.proxy.extraParams = {
+                        fileName: this.fileObject.get('fileName') 
+                        };
+                    },
+                    load: function(store, records, successful, eOpts) {
+                        this.updateSelection();
+                    }
+                }
+            });
+	  
+            // Dynamically created columns dependent of myData model
+            var panelConfig = {
+                xtype : 'gridpanel',
+                store : store,
+                title : fileName,
+                height: 390,
+                flex : 2,
+                columnLines: true,
+                columns: this.columns,
+                listeners: {
+                    scope : this,
+                    cellclick: function(view,td,cellIndex,record,tr,rowIndex,e){
+                        var column = view.getGridColumns()[cellIndex];
+                        if (cellIndex > 0) {
+                            var selected = Ext.select(column.getCellSelector(cellIndex));
+                            if (column.selected) {
+                                selected.removeCls('meow');
+                                column.selected = false;			  
+                            }
+                            else {
+                                selected.addCls('meow');
+                                column.selected = true;
+                            }
+                            this.updateForm();
+                        }
+                    },
+                    select: function(selmodel, record, index, e) {
+                        selmodel.deselectAll();
+                    }	
+                }
+            };
+            
+            return panelConfig;
+        },
+	
+        cdfPanel : function(format) {
+            
+            var vars = this.fileObject.get('vars');
+            var fileName = this.fileObject.get('fileName'); 
+            var items = [];	   
+            Ext.Array.each(vars, function(name, index) {
+                if (name) {
+                    items[index] = { boxLabel: name, name: 'cdfvar',  inputValue: name,
+                                    listeners: {
+                                        scope: this,
+                                        change: function (cb, nv, ov) {					     
+                                            if (nv) {                                             
+                                                AmdaAction.getParamInfo({format: format, file : fileName, varName : cb.inputValue},						
+                                                this.updateInfo, this);                                          
+                                            }					   							 						  
+                                        }
+                                    }
+                    }
+                }
+            }, this);
+	 	
+            var panelConfig = {
+                xtype : 'fieldset', 
+                bodyStyle: { background : '#dfe8f6'},
+                flex : 2, 
+                title: fileName,
+                items : [{
+                    xtype: 'radiogroup', 
+                    cls: 'x-check-group-alt',
+                    columns: 2,
+                    vertical: true,	 
+                    bodyStyle: { background : '#dfe8f6'},
+                    flex : 2,
+                    items: items
+                }]
+            };
+	    
+            return panelConfig;
+        },
+	
+        votPanel : function() 
+        {                    
+                var vars = this.fileObject.get('vars');
+                var fileName = this.fileObject.get('fileName');
+                
+                var items = [];	  
+                
+                if (this.fileObject.get('foundTime'))
+                {
+                        Ext.Array.each(vars, function(obj, index) {
+                                items[index] = { boxLabel: obj.name, name: 'votvar',  inputValue: obj.id,
+                                                listeners: {
+                                        scope: this,
+                                        change: function (cb, nv, ov) {					     
+                                                if (nv) {						
+                                                AmdaAction.getParamInfo({format: 'vot', file : fileName, varName : cb.inputValue},						
+                                                    this.updateInfo, this); 
+                                            }					   							 						  
+                                        }
+                                    }
+                        };
+                    }, this);
+                }
+                else
+                        myDesktopApp.errorMsg("Cannot find a valid time field!");	       
+                    
+                var panelConfig = {
+                    xtype : 'fieldset', 
+                    bodyStyle: { background : '#dfe8f6'},
+                    flex : 2, 
+                    title: fileName,
+                    items : [{
+                        xtype: 'radiogroup', 
+                        cls: 'x-check-group-alt',
+                        columns: 2,
+                        vertical: true,	 
+                        bodyStyle: { background : '#dfe8f6'},
+                        flex : 2,
+                        items: items
+                    }]
+                };
+                
+                return panelConfig;
+            },
+	
+        init : function(config) {	 
+            
+            var store = Ext.create('Ext.data.Store', {
+                fields: ['value', 'name'],
+                data : [
+                    {"value": "FLOAT", "name":"FLOAT"},
+                    {"value": "INTEGER", "name":"INTEGER"},
+                    {"value": "DOUBLE", "name":"DOUBLE"},
+                    {"value": "SHORT", "name":"SHORT"}
+                ]
+            }); 
+                    
+            var combo =   { 
+                xtype: 'combo',
+                fieldLabel: 'Parameter Data Type',
+                store: store,
+                queryMode: 'local',
+                displayField: 'name',
+                valueField: 'value',
+                name: 'type',		
+                editable: false,
+                value: 'FLOAT'
+            };
+            
+	    var store1 = Ext.create('Ext.data.Store', {
+                fields: ['value', 'name'],
+                data : [
+                    {"value": "TimeSerie", "name":"Time Serie"},                   
+                    {"value": "Spectra", "name":"Spectra"}
+                ]
+            }); 
+                    
+            var comboPlotType =   { 
+                xtype: 'combo',
+                fieldLabel: 'Display Type',
+                store: store1,
+                queryMode: 'local',
+                displayField: 'name',
+                valueField: 'value',
+                name: 'plottype',           
+                editable: false,
+                value: 'Time Series'
+            };
+            
+            var notTxt = false; //this.fileObject.get('format') !== 'txt';
+            //  var maxSize = notTxt? 100 : this.columns.length - 1;
+	  
+        // Parameter Form	  
+            var panelLeft =  {
+                bodyStyle: { background : '#dfe8f6'},	      
+                flex : 1,	 
+                defaults: {
+                    xtype:'textfield',
+                    validateOnChange: false,
+                    validateOnBlur: false,
+                    padding : '0 10 0 5',
+                    inputWidth : 80
+                },
+                items: [
+                {
+                    id: 'mydataName',
+                    fieldLabel: 'Parameter Name',
+                    labelAlign: 'top',
+                    name: 'name',
+                    allowBlank : false,
+                    stripCharsRe: /(^\s+|\s+$)/g,
+                    validFlag: false,
+    	            validator : function() {
+    	            	return this.validFlag;
+    	            },
+                    inputWidth : 180
+                }, {
+                    fieldLabel: 'File Name/Mask&nbsp;<img amda_clicktip="fileMask" style="vertical-align:bottom" src="js/resources/images/16x16/info_mini.png"', 
+                    labelAlign: 'top',             
+                    name: 'mask',
+                    inputWidth : 180,
+                    validator : this.validateMask
+                }, combo, {
+                    xtype:'numberfield',
+                    fieldLabel: 'Parameter Start Position',              
+                    name: 'start',
+                    disabled: notTxt,
+                    minValue : 1,
+        //	  maxValue : maxSize,
+                    listeners : {
+                        scope : this,
+                        change : function(field, newValue, oldValue){
+                            var grid = this.down('gridpanel');
+                            if (!grid) return;
+                            if (newValue && newValue != oldValue) {
+                            var size = field.prev().value;
+                            var columns = grid.columns;
+                            Ext.Array.each(columns, function(column,index){
+                                var selected = Ext.select(column.getCellSelector(index));
+                                if (index < newValue){
+                                if (column.selected) {
+                                    selected.removeCls('meow');
+                                    column.selected = false;				 
+                                }
+                            }
+                            else if (index == newValue) {
+                                if (!column.selected) {
+                                    selected.addCls('meow');
+                                    column.selected = true;				 
+                                }
+                            }
+                            else {
+                                if (column.selected) {
+                                    selected.removeCls('meow');
+                                    column.selected = false;				 
+                                } 
+                            }
+                            });
+                            }
+                        }
+                    }
+                }, { 
+                    xtype:'numberfield',
+                    fieldLabel: 'Parameter Size',              
+                    name: 'size',
+                    minValue: 1,
+        //	  maxValue : maxSize,
+                    disabled: notTxt,
+                    listeners : {
+                        scope : this,
+                        change : function(field, newValue, oldValue){
+                            var grid =  this.down('gridpanel');
+                            if (!grid) return;
+                            var start =  field.prev().value;
+                            var columns = grid.columns;
+                            Ext.Array.each(columns, function(column,index){
+                                var selected = Ext.select(column.getCellSelector(index));
+                                if (index <= start) {}
+                                else if (index - start < newValue) {
+                                if (!column.selected){
+                                    selected.addCls('meow');
+                                    column.selected = true;	
+                                }
+                                }
+                                else {
+                                    if (column.selected){
+                                    selected.removeCls('meow');
+                                    column.selected = false;	
+                                }
+                                }
+                            });
+                        }
+                    }
+                }, {
+                    xtype:'numberfield',
+                    fieldLabel: 'Min Sampling',              
+                    name: 'minsampling'//,
+                //  disabled: notTxt
+                },{
+                    xtype:'numberfield',
+                    fieldLabel: 'Max Sampling',              
+                    name: 'maxsampling'//,
+                    // disabled: notTxt
+                },{
+                    fieldLabel: 'Filling Value',              
+                    name: 'fillvalue'
+                },{
+                    fieldLabel: 'Units',              
+                    name: 'units'
+                },  comboPlotType, {
+                    fieldLabel: 'Y Title',              
+                    name: 'ytitle'
+                },{
+                    fieldLabel: 'Legend',              
+                    name: 'legend'
+                }                  
+                ],
+                listeners: {
+                            click: {
+                                element: 'el',
+                                fn: function(e,t) {	 		 
+                                    var me = t,
+                                        text = me.getAttribute('amda_clicktip');
+                                        if (text) {
+                                                e.preventDefault();
+                                                AmdaAction.getInfo({name : text}, function(res,e) {					    					   
+                                                            if (res.success) myDesktopApp.infoMsg(res.result);
+                                                }); 
+                                        }
+                                    }
+                            }			
+                        }
+            };
+	    
+            var myConf = {
+                layout: 'border',		 
+                items: [ {		   
+                        xtype : 'form',
+                        bodyStyle: { background : '#dfe8f6'},
+                        layout: { type: 'hbox'},   
+                        region: 'center',
+                        items : [
+                            panelLeft 
+                        ],					
+                        buttons: [{  
+                            scope : this,								 							  
+                            text: 'Save',								   
+                            handler: function() 
+                            {			     
+                                var form = this.down('form').getForm();			     
+                                // check if variable was selected
+                                // cdf,...
+                                var radio = this.down('radiogroup');            
+                                if (radio && radio.getChecked().length == 0) {
+                                    myDesktopApp.warningMsg('Select variable from the file, please');
+                                    return;
+                                }
+                                // ascii
+                                if (!radio && this.columns.length > 0) {                                  
+                                    if (!form.findField('start').getValue() || !form.findField('size').getValue()) {                                    
+                                    myDesktopApp.warningMsg('Select column[s] from the file, please');
+                                    return;
+                                    }                                  
+                                }
+                                var nameField = form.findField('mydataName'); 
+                                if (this.updateObject(nameField))
+                                {
+                                	var myDataModule = myDesktopApp.getLoadedModule(myDesktopApp.dynamicModules.my_data.id);	
+      							  	if (!myDataModule)
+      								  return;
+                                	var me = this;
+                                	myDataModule.linkedNode.isValidName(nameField.getValue(), function (res) {
+                                		if (!res)
+      								  	{
+                                			nameField.validFlag = 'Error during object validation';
+      									  	myDesktopApp.errorMsg(nameField.validFlag);
+      									  	nameField.validate();
+      									  	return;
+      								  	}
+      								  
+      								  	if (!res.valid)
+      								  	{
+      								  		if (res.error)
+      								  		{
+      								  			if (res.error.search('subtree') != -1) {  							
+      								  				Ext.MessageBox.show({title:'Warning', 
+      								  					msg: res.error+'<br/>Do you want to overwrite it?',
+      													width: 300,
+      													buttons: Ext.MessageBox.OKCANCEL, 
+      													fn : me.overwriteProcess,
+      													icon: Ext.MessageBox.WARNING,
+      													scope : me
+      								  				});
+      								  				nameField.validFlag = true;
+      								  			}
+      								  			else
+      								  				nameField.validFlag = res.error;
+      								  		}
+      								  		else
+      								  		{
+      								  			nameField.validFlag = 'Invalid object name';
+      								  			myDesktopApp.errorMsg(nameField.validFlag);
+      								  		}
+      								  		nameField.validate();
+      								  		return;
+      								  	}
+      								  
+      								  	nameField.validFlag = true;
+      								  	nameField.validate();
+      								  	me.saveProcess();
+                                	});
+                                }
+                            }
+                        },{
+                            scope : this,
+                            text: 'Reset',
+                            handler: function(){				      
+                                this.down('form').getForm().reset();
+                            }
+                        }]
+                    },{
+                        xtype: 'panel', 
+                        region: 'south',
+                        title: 'Information',
+                        collapsible: true,
+                        height: 100,
+                        autoHide: false,
+                        iconCls: 'icon-information',
+                        bodyStyle: 'padding:5px',
+                        loader: {
+                            autoLoad: true,
+                            url: helpDir+'myDataHOWTO'
+                        }  
+                    }
+                ] 
+            };
+        
+            Ext.apply (this, Ext.apply(arguments, myConf));
+        }
+});
diff --git a/js/app/views/OperationsTT.js b/js/app/views/OperationsTT.js
new file mode 100644
index 0000000..3f04fd7
--- /dev/null
+++ b/js/app/views/OperationsTT.js
@@ -0,0 +1,190 @@
+/**
+  * Project  : AMDA-NG
+  * Name     : OperationsTT.js
+  * @class 	 amdaUI.OperationsTT
+  * @extends Ext.form.FieldSet
+  * @brief	 Operations in Time Table Module UI (View)
+  * @author  Myriam
+  * @version $Id: OperationsTT.js 1855 2013-11-19 13:23:55Z elena $
+  ********************************************************************************
+  *    FT Id     :   Date   : Name - Description
+  *******************************************************************************
+  *             08/06/2011: Myriam - Migration extjs4
+  */
+
+Ext.define('amdaUI.OperationsTT', {
+	extend: 'Ext.form.FieldSet',
+	alias: 'widget.operationsTT',
+
+	// Translate Extend or Shift in seconds
+	TranslateSec: function(valueForm, valueUnit) {
+
+		if (valueForm == "") var value = 0;
+		else switch (valueUnit) {
+			case "sec":
+				var value = valueForm;
+				break;
+			case "min":
+				var value = valueForm * 60;
+				break;
+			case "hour":
+				var value = valueForm * 3600;
+				break;
+			case "day":
+				var value = valueForm * 86400;
+				break;
+			default:
+				break;
+		}
+		return value;
+	},
+		
+	// Extend and shift intervals
+	ExtendTT: function(dir){
+
+		var extendForm = this.formExtend.getForm().findField('extend').getValue();		
+		var extendUnit = this.formExtend.getForm().findField('extendUnit').getValue();
+
+		var shiftForm = this.formExtend.getForm().findField('shift').getValue();		
+		var shiftUnit  = this.formExtend.getForm().findField('shiftUnit').getValue();
+
+		if ((extendForm == null) && (shiftForm == null))return;
+		
+		// Translate Extend and Shift in milliseconds
+		var extend = dir * this.TranslateSec(extendForm, extendUnit);
+		var shift = dir * this.TranslateSec(shiftForm, shiftUnit);
+				
+		this.cntApply += dir;
+	    if (this.cntApply < 0) {
+	       this.cntApply = 0;
+	       alert("Nothing to Undo");
+	       return;
+	    }
+	    
+	    var me = this;
+	    AmdaAction.operationTTCacheIntervals(extend,shift, function () {
+	    	me.parent.TTGrid.getStore().reload();
+	    	
+			// Update historic field
+			var history = me.parent.formPanel.getForm().findField('history').getValue();
+			if (extend != 0) {
+				history += " \n Extended by "+ dir*extendForm + " " + extendUnit;
+			}
+			if (shift != 0) {
+				history += " \n Shifted by "+ dir*shiftForm + " " + shiftUnit;
+			}
+			me.parent.formPanel.getForm().findField('history').setValue(history);
+	    	
+	    });
+	
+	},
+	
+	// Merge intervals
+	MergeTT: function(){
+		var me = this;
+		AmdaAction.mergeTTCacheIntervals(function () {
+	    	me.parent.TTGrid.getStore().reload({
+        		callback : function(records, options, success) {
+        			me.parent.updateCount();	
+        		},
+        		me
+	    	});	
+	    });   
+	},
+		
+    initComponent : function (){
+		this.cntApply = 0;
+		this.formExtend = new Ext.form.Panel({
+			xtype: 'form', frame: true, buttonAlign: 'center', height: 75,
+			trackResetOnLoad : true, // reset to the last loaded record
+        	fieldDefaults: {
+                labelWidth: 40, labelSeparator: ''
+            },
+			items: [ 	        	        
+    	        {
+    	        	  xtype: 'fieldcontainer',
+    	        	  layout: 'hbox',
+    	        	  fieldLabel:'Extend',
+    	        	  items: [
+    	        	          {xtype:'numberfield', name: 'extend', hideTrigger: true, width: 60},
+    	        	          {xtype: 'splitter', width: 5},
+    	        	          {
+    	        	        	  xtype:'combo', name: 'extendUnit', store:['sec', 'min', 'hour', 'day'], 
+    	        	        	  editable: false, width: 60, value: 'min',	triggerAction: 'all'
+    	        	          },
+    	        	          {xtype: 'splitter', width: 20},
+    	        	          {xtype:'displayfield', value: 'Shift', width: 30},
+    	        	          {xtype:'numberfield', name: 'shift', hideTrigger: true, width: 60},
+    	        	          {xtype: 'splitter', width: 5},
+    	        	          {
+    	        	        	  xtype:'combo', name: 'shiftUnit', store:['sec', 'min', 'hour', 'day'], 
+    	        	        	  editable: false, width: 60, value: 'min',	triggerAction: 'all'
+    	        	          }
+    	        	  ]
+    	        }
+    	     ],       	        
+    	     fbar: [{ 	    	 
+		              text: 'Apply',
+		              scope: this,
+		              handler: function () {
+    	    	 			this.ExtendTT(1);
+    	    	 			this.parent.fireEvent('refresh');
+		              }
+		               },{
+		              text: 'Undo',
+		              scope: this,
+	                  handler: function () {
+		            	   this.ExtendTT(-1);
+		            	   this.parent.fireEvent('refresh');
+	                  }
+		         }]    	     
+		});
+		
+
+        var config = {
+           title:'Operations on Intervals',
+           style: { borderWidth: '2px' },           
+           items: [
+               {xtype: 'splitter', width: 5},   
+               this.formExtend,
+               {
+		        	xtype: 'form', frame: true,
+		        	border: 1,		        	
+		        	height: 60,
+		        	layout: {
+		        		type: 'hbox',
+		        		pack: 'center',
+		        		align: 'middle'	
+		        	},
+		        	items: [
+	    				{	
+	    					xtype: 'button',
+	    					text: 'Merge intervals',
+	    					minWidth: 105,
+	    					scope : this,
+	    					handler: function () {
+	    						this.MergeTT();
+	    						this.parent.fireEvent('refresh');                          
+	    					}
+	    				},
+	    				{
+	    					xtype: 'container',
+	    					width: 5
+	    				},
+	    				{ 
+				        	xtype: 'button',
+	    					text: 'Statistical info',
+	    					minWidth: 105,
+	    					scope: this,
+	    					handler: function() {
+	    						this.parent.fireEvent('info');
+	    					}
+	    				} 
+	              	]
+		        } 
+           ]
+        };
+        Ext.apply (this , Ext.apply (this.initialConfig, config));
+        this.callParent(arguments);
+  }
+ });           
\ No newline at end of file
diff --git a/js/app/views/ParamEditorPlugin.js b/js/app/views/ParamEditorPlugin.js
new file mode 100644
index 0000000..2db495a
--- /dev/null
+++ b/js/app/views/ParamEditorPlugin.js
@@ -0,0 +1,420 @@
+/**
+  * Project      :  AMDA-NG
+  * Name         : ParamEditorPlugin.js
+  * @plugin 	  amdaUI.ParamEditorPlugin
+  * @extends 	  Ext.util.Observable 
+  * @ptype 	 paramEditorPlugin	  
+  * @brief		 
+  * @author  
+  * @version $Id: ParamEditorPlugin.js 2259 2014-04-02 12:22:26Z elena $
+  ********************************************************************************
+  *    FT Id     :   Date   : Name - Description
+  *******************************************************************************
+  *  :          
+  */
+
+
+Ext.define('amdaUI.ParamEditorPlugin', {
+	extend: 'Ext.AbstractPlugin',
+	alias: 'plugin.paramEditorPlugin',
+	
+	requires : [
+	   'amdaModel.ArgGroups'
+	],
+ 	
+	titles: null,
+	
+	y2axe: null,
+	win: null,
+	// calculate number of fieldsets added - to avoid rendering problem
+	fieldsetNumber: 0,
+	height : 150,
+	
+	confCombo : { width: 150, 
+		      labelAlign: 'top',
+		      margin: '5 10 0 0',								      
+		      queryMode: 'local',
+		      editable: false, 						 
+		      displayField: 'value' 
+	},
+		
+	confField : { width: 150, 
+		      labelAlign: 'top',
+		      allowDecimals : false,
+		      hideTrigger: true,
+		      margin : '5 10 0 0'
+	},
+	
+	configFS : {layout:'column'},
+	
+	 
+	init: function(cmp) {
+	    this.hostCmp = cmp;   
+	    this.hostCmp.on('openParamEditor', this.onOpen, this);
+	    
+	    if (!this.titles) {
+		this.titles = new Ext.util.MixedCollection();
+		this.titles.addAll([{ name: 'xTitle', label:  'X Title' },
+				    { name: 'yTitle', label:  'Y Title' }]);		   
+	    } 
+	    if (!this.y2axe) {
+		this.y2axe = new Ext.util.MixedCollection();
+		this.y2axe.addAll([{ xtype: 'textfield', name: 'y2Title', label:  'Y2 Title'},
+				   { xtype: 'numberfield', name: 'y2RangeMin', label: 'Y2min'},
+				   { xtype: 'numberfield', name: 'y2RangeMax', label: 'Y2max'}]);	   
+	    }	    	   
+	},
+	
+	apply: function() { 
+	    var args = this.form.getForm().getValues(this.record.isLeaf());
+	    
+	    if (this.record.isLeaf()) {	
+                //arguments for some special parameters
+	          if (this.record.get('needsArgs')) {
+			var argsDownload = this.form.getForm().getValues(); 
+			this.record.set('downloadParamArgs',argsDownload);
+		  }
+		  this.record.set('paramArgs',args);		 
+	    }
+	    else {
+	         var panelArgs = ''; 
+	         if(args.xTitle) {
+		            this.record.set('xTitle', args.xTitle);
+			    panelArgs += 'Xtitle';
+		 }
+		 if(args.yTitle) {
+		   this.record.set('y1Title', args.yTitle);
+		   panelArgs += ' Ytitle';
+		 }
+	       this.record.set('panelArgs', panelArgs);
+	    }
+	    this.win.close();
+	}, 
+	
+	reset: function() {
+	    this.form.getForm().reset();
+	}, 
+
+	onOpen: function(record) {
+	 
+		var str = record.get('paramArgs');
+		if ( str && str !== 'select...')
+		{
+			this.values = []; 
+			var arr = str.split('&');
+			if (arr.length > 1)
+			{
+				this.values = [];
+				Ext.each(arr, function(item)
+						{
+							var obj = item.split('=');		
+							this.values.push({ id : obj[0], value: obj[1] });
+						}, this);	   
+		    }
+		    else
+		    {
+		    	var obj = str.split('=');		     
+		    	this.values.push({id : obj[0], value: obj[1]});
+		    } 
+		} 
+		if ( str && str == 'select...')
+			this.values = null;
+	   
+		if (this.win)
+			this.win.close(); 	   		
+
+		this.record = record;
+                //
+		this.paramId = record.get('name');	
+		this.getFormConfig(record.isLeaf(), function(items)
+				{
+					this.win = new Ext.Window({			
+						id: 'parameditor-win-'+this.hostCmp.id, 
+						width: 550, 
+						height: this.height,
+						x: 0, y: 0,
+						baseCls:'x-panel',	 
+						title: 'Select Arguments for ' + this.paramId,
+						layout: 'fit',
+						constrain: true,
+						ghost: false,
+						renderTo: this.hostCmp.ownerCt.getId(),
+						items: items,
+						listeners: {
+							scope: this,			    
+							beforeclose: function(){			      			     
+								Ext.PluginManager.unregister(this);				
+							},								
+							show: function(){
+								if (this.values) { 
+									//TODO defer - if not - values are not set - which event to use?
+									//Ext.Function.defer(function(){
+									this.form.getForm().setValues(this.values);
+									
+								    
+									//}, 500, this); 				   
+								}
+								this.form.doLayout();
+							} 
+						},
+						getConstrainVector: function(constrainTo){
+							var me = this;
+					        if (me.constrain || me.constrainHeader) {
+					            constrainTo = constrainTo || (me.floatParent && me.floatParent.getTargetEl()) || me.container || me.el.getScopeParent();
+					            return (me.constrainHeader ? me.header.el : me.el).getConstrainVector(constrainTo);
+					        }
+					    }
+					});
+			
+					if (this.fieldsetNumber > 0) {
+						if (this.fieldsetNumber > 1) this.win.setHeight(this.height *  this.fieldsetNumber);
+						this.win.show(); 
+						Ext.PluginManager.register(this);
+						this.fieldsetNumber = 0;
+					} else {
+						myDesktopApp.infoMsg("This parameter has no arguments");
+		       			this.values = null;
+		     		}
+			
+				});    
+	},
+	
+	loadArgsStore: function(items,successfn)
+	{
+		var argStore = Ext.create('Ext.data.Store',{model: 'amdaModel.ArgGroups'});
+		//is sent to server to find parameter XML description
+		argStore.getProxy().extraParams.paramID = this.paramId;
+		argStore.getProxy().extraParams.application = 'plot';
+		
+		argStore.load({
+			scope   : this,
+			callback: function(records, operation, success) {			  
+			if (success && records[0].get('group') != 'nok') {
+				
+				this.simpleGroup = false;
+				this.settingGroup = false;
+				
+				argStore.each(function(grp){
+					
+					var args = grp.args();
+					var units = grp.get('units');
+					
+					
+					if (grp.get('groupE') || grp.get('groupEmulti')) {				   				  				  
+						
+						var fieldsetSpectro = new Ext.form.FieldSet({ layout:'hbox', height: 25 });
+						//plot type radio group	    
+						var radioGroup = new Ext.form.RadioGroup({ layout :  'hbox', 
+							items: [
+							        {boxLabel: 'Spectrogram', name: 'plot', inputValue: 'spectro', checked: true,
+							        	listeners: {
+							        	scope : this,
+							        	change: function (cb, nv, ov) {
+							        		if (nv == ov) return;
+							        		var fs = Ext.getCmp('energyFieldSet');
+							        		if (nv) 
+							        			fs.disable();												     
+							        		else  
+							        			fs.enable(); 
+							        		} 
+							        	}
+							        },
+							        {boxLabel: 'Time Serie', name: 'plot', inputValue: 'serie', margin : '0 0 0 20' }						 
+							]});			           			 	    
+					     
+						fieldsetSpectro.add(radioGroup);
+					
+					    var isMulti = false;
+					    var argsN = args.count();
+					    var argMin  = args.first();
+					    var argMax = args.getAt(argsN-1);
+
+					    var title = grp.get('groupE') || grp.get('groupEmulti');
+					    if (grp.get('groupEmulti'))  isMulti = true;
+						    
+					    var fieldset = new Ext.form.FieldSet({layout:'hbox', height: 70, id : 'energyFieldSet'});
+					     
+					    var suffix = 'Min';
+					    var argValue = argMin;
+					    
+					    for (var i = 0; i < 2; i++) {
+					          var label = title + suffix;				  
+						  var fieldlabel = label + ' ' +units;
+						  
+						  if (isMulti){
+							var config = {name: label, fieldLabel: fieldlabel, minValue: argValue, maxValue: argMax, value: argValue.get('value')};					  
+							Ext.applyIf(config, this.confField);				    
+							var combo = new Ext.form.field.Number(config); 
+						  }					
+						  else {					        
+							var config = {name: label, fieldLabel: fieldlabel, store: args,  value: argValue};
+							this.confCombo.valueField = 'value';
+							Ext.applyIf(config, this.confCombo);				    
+							var combo = new Ext.form.field.ComboBox(config);						
+						  }
+						  fieldset.add(combo);
+						  
+						  var suffix = 'Max';   
+						  argValue = argMax;
+						  
+					    } 
+								    
+                                            fieldset.disable();				    
+                                            this.form.add(fieldsetSpectro);
+						
+					    this.fieldsetNumber++;
+					     
+					    this.form.add(fieldset);
+					
+					  }  
+					  else 
+					  {  
+					      var title =  grp.get('group') || grp.get('groupS');
+					     
+                                                if (title)
+                                                {
+                                                    if (units) 
+                                                            label = title + ' ' + units;				       
+                                                    else
+                                                            label = title;
+					    	  
+                                                    var argsN   = args.count();
+                                                    var argMin  = args.first();
+					    	  
+					    	  if (argsN >  1)
+					    	  {
+					    	   //combo
+					    	    var config = 
+					    	    	{
+					    	    		name         : title,
+					    	    		fieldLabel   : label, 
+					    	    		displayField : 'value',
+                                                                valueField   : 'arg',
+					    	    		store        : args, 
+					    	    		value        : args.first().get('arg')
+					    	    	};
+					    	    
+					    	    Ext.applyIf(config, this.confCombo);
+					    	 
+					    	    var newField = new Ext.form.field.ComboBox(config);
+					    	  }
+					    	  else if (argMin && argMin.get('value'))
+					    	  {
+					    	   
+                                                    var config = {name: title, fieldLabel: label, value: argMin.get('value')};					  
+                                                    Ext.applyIf(config, this.confField);
+                                                    
+                                                    //text
+                                                    if (isNaN(parseInt(argMin.get('value')))) {
+                                                            var newField = new Ext.form.field.Text(config);
+                                                            newField.setReadOnly(true);
+                                                    }
+                                                    //number
+                                                    else
+                                                            var newField = new Ext.form.field.Number(config); 
+					    	  }
+					    	  else
+					    		  return;
+						  
+					    	  if (grp.get('group'))
+					    	  {					   
+					    		  if (!this.simpleGroup)
+                                                                this.fieldsetSimple = new Ext.form.FieldSet(this.configFS);	
+					    		  this.simpleGroup = true;
+					    		  this.fieldsetSimple.add(newField);				    
+					    	  }
+					    	  else 
+					    	  {					  
+					    		  if (!this.settingGroup)
+					    			  this.fieldsetSetting = new Ext.form.FieldSet(this.configFS);
+					    		  this.settingGroup = true;
+					    		  this.fieldsetSetting.add(newField);   
+					    	  }
+					      }			  
+				     
+					  	}
+				      },  this); 
+				       
+				    this.fieldsetNumber++;
+			            
+			            if (this.simpleGroup) this.form.add(this.fieldsetSimple);
+				    if (this.settingGroup) this.form.add(this.fieldsetSetting);
+				    
+				    
+				    if (successfn)
+	   					successfn.call(this,items);
+				  }
+				  else {			    
+					  myDesktopApp.errorMsg("Cannot load parameter arguments!");
+				  } 			 
+			      }
+			      
+			    });
+	},
+	
+	getFormConfig: function(isParam,successfn){
+	   
+	   this.form = new Ext.form.Panel( {
+	    	frame: true, buttonAlign: 'left', autoScroll: true,
+	    	layout: { type: 'vbox', align : 'stretch', autoSize: true},
+		 fbar: [
+		  {
+		      text: 'Apply',
+		      scope : this,
+		      handler: this.apply
+		  },
+		   {
+		      text: 'Reset',
+		      scope : this,		       
+		      handler: this.reset 
+		   } ]
+		});
+	      
+	   // Get parameter arguments from Server
+	      if (isParam)
+	    	  this.loadArgsStore(this.form,successfn);
+	     // Additional Panel arguments 
+	      else {
+		   var fieldset = new Ext.form.FieldSet(this.configFS);
+		   var isDisabled, value;
+		   var plotType = this.record.get('plotType');
+		    
+		   this.titles.each(function(item){		      
+		      isDisabled = (plotType == 'TIME' && item['label'] == 'X Title');		      
+		      value = isDisabled ? 'Time' : this.record.get(item['name']);
+		      var textField = new Ext.form.field.Text({
+			  width: 150, 
+			  labelAlign: 'top',
+			  margin: '5 10 0 0',
+			  name: item['name'],
+			  value: value,
+			  disabled: isDisabled,
+			  fieldLabel: item['label']		
+			});		      
+			fieldset.add(textField);			 
+		  }, this);
+		  this.fieldsetNumber++;
+		  this.form.add(fieldset);
+		  
+		  var y2disable = this.record.childNodes.length == 1; 
+		  var fieldsetY = new Ext.form.FieldSet(this.configFS);		  
+		  this.y2axe.each(function(item){
+		      var textField = new Ext.form.field.Text({
+			  width: 100, 
+			  labelAlign: 'top',
+			  margin: '5 10 0 0',
+			  name: item['name'],
+			  fieldLabel: item['label'],
+			  disabled: y2disable
+			});		      
+			fieldsetY.add(textField);
+		  }, this);
+		   this.fieldsetNumber++;
+		   this.form.add(fieldsetY);
+		   if (successfn)
+			   successfn.call(this,this.form);
+	      }	 
+	    return this.form;
+	}    
+		
+});
\ No newline at end of file
diff --git a/js/app/views/ParameterUI.js b/js/app/views/ParameterUI.js
new file mode 100755
index 0000000..d4ee3d0
--- /dev/null
+++ b/js/app/views/ParameterUI.js
@@ -0,0 +1,450 @@
+/**
+ * Project   : AMDA-NG
+ * Name      : ParameterUI.js
+ * @class 	 amdaUI.ParameterUI
+ * @extends  Ext.container.Container
+ * @brief	 Parameter  Module UI definition (View)
+ * @author 	  
+ * @version  $Id: ParameterUI.js 2257 2014-04-02 12:21:27Z elena $
+ ********************************************************************************
+ *    FT Id     :   Date   : Name - Description
+ *******************************************************************************
+ *              
+ */
+
+Ext.define('amdaUI.ParameterUI', {
+	extend: 'Ext.container.Container',
+	
+	alias: 'widget.panelParam',
+	
+	requires: [
+	      'amdaUI.AliasUI',     
+	      'amdaUI.CalculatorUI',
+	      'extensions.SelectableTextArea',
+	      'amdaUI.SearchParamEditorPlugin'
+    ],
+	
+    constructor: function(config) {    
+	    this.init(config);
+	    this.callParent(arguments);
+        // load object into form
+	    this.formPanel.getForm().loadRecord(this.object);
+    },
+
+    addParam : function(newParamName,isLeaf) {
+        if (isLeaf){	
+    	    var selection = this.constructionField.getSelection();
+    	    this.constructionField.setValue(selection.beforeText + newParamName + selection.afterText);
+    	    this.constructionField.focus();
+    	    this.constructionField.setCaretPosition(this.constructionField.getValue().length);  
+        }       
+    },
+    
+    setObject : function (object) {
+        this.object = object; 
+        // load object into form	 
+        this.formPanel.getForm().loadRecord(this.object);
+    },
+       
+/**
+* update this.object from form
+*/
+      updateObject : function(){    
+      // get the basic form
+      var basicForm = this.formPanel.getForm();        
+      var updateStatus = true;
+
+	var fieldsWithoutName = basicForm.getFields().items;
+	Ext.Array.each(fieldsWithoutName, function(item, index,allItems){
+	    if(item !== this.fieldName) { 		     
+		if (!item.isValid()) {
+		    // set update isn't allowed
+		    updateStatus = false;    
+		}
+	    }
+	}, this);
+	// if the update is allowed
+	if (updateStatus) {
+	/// real object update
+	// update TimeTable object with the content of form
+	  basicForm.updateRecord(this.object);	
+	}
+	// return the update status
+      return updateStatus;	    
+      },
+ 
+    updateConstruct : function(oldval,newval) {
+		// update constructionField (Construct parameter) in window parameter
+		var expression = this.constructionField.value;
+		oldval = oldval.replace(/[(]/g,"\\(");
+		oldval = oldval.replace(/[)]/g,"\\)");	
+		var reg=new RegExp(oldval, "g");
+	    expression = expression.replace(reg, newval);
+	    this.constructionField.setValue(expression);
+	},
+    
+    /**
+     * save method called by Save button
+     */
+    saveProcess : function(toRename){
+        
+        if(this.object.dirty) {
+            // Parameter Module
+            var paramModule = myDesktopApp.getLoadedModule(myDesktopApp.dynamicModules.param.id);            
+            // if the name has been modified this is a creation
+            if (this.object.isModified('name')){                
+                // if object already has an id : it's a 'rename' of an existing TimeTable
+                if (this.object.get('id')){
+                    // the context Node is the parent node of current edited one
+                    var contextNode = paramModule.linkedNode.parentNode;
+                    // link a new node to the TimeTableModule
+                    paramModule.createLinkedNode();
+                    // set the contextNode
+                    paramModule.linkedNode.set('contextNode',contextNode);
+                    // create a new object linked		   		  
+                    paramModule.createObject(this.object.getJsonValues());
+                    var paramobj = paramModule.linkedNode.get('object');
+		    //synchronize objects
+		    this.object = paramobj;
+		    if (toRename) paramModule.linkedNode.toRename = true;
+                }                
+                paramModule.linkedNode.create();
+                paramModule.linkedNode.set('iconCls', 'icon-scalar');
+                paramModule.linkedNode.set('isParameter', true); 
+                
+                // fire creation event
+               // this.object.fireEvent('create');            
+            } else {            
+                paramModule.linkedNode.set('contextNode',paramModule.contextNode); 
+		paramModule.linkedNode.update();
+              //  this.object.fireEvent('modify');
+            }            
+        }        
+    },
+
+    /**
+     * overwrite metod called by Save button
+     */
+    overwriteProcess : function(btn){
+         if (btn == 'cancel') return; 
+           
+         this.fieldName.clearInvalid();  
+         this.saveProcess(true);        
+    },
+    
+ /**
+  *   Check if brackets are balanced
+  */   
+    isBalanced : function(str){  
+         str =  (""+str).replace(/[^()\[\]{}]/g, ""); 
+         var bracket = {
+                    "]": "[",
+                    "}": "{",
+                    ")": "("
+                },
+                openBrackets = [], 
+                isClean = true,
+                i = 0,
+                len = str.length;
+
+            for(; isClean && i<len; i++ ){                
+                if( bracket[ str[ i ] ] ){
+                    isClean = ( openBrackets.pop() === bracket[ str[ i ] ] );
+                }else{
+                    openBrackets.push(str[i]);
+                }
+            }
+            if (!(isClean && !openBrackets.length)) return 'Brackets are not balanced';
+           
+            return true; 
+        },
+	/**
+	 * Check if changes were made before closing window 
+	 * @return true if changes
+	 */	   
+	fclose : function() {
+		var isDirty = this.formPanel.getForm().isDirty();
+		return isDirty;
+	},
+	
+	init: function(config) {
+		
+		this.fieldName = new Ext.form.field.Text({
+		    labelAlign: 'top', itemId: 'formParamName',
+		    fieldLabel: 'Parameter Name*',
+		    name : 'name',
+	 	    allowBlank : false, //blankText : 'Name is required',
+		    emptyText: 'Please only low case here!',
+		    width: 150,
+		    validateOnChange: false,
+		    validateOnBlur: false,
+		    enableKeyEvents: true,
+		    validFlag: false,
+	            validator : function() {
+	            	return this.validFlag;
+	            },
+                    stripCharsRe: /(^\s+|\s+$)/g,
+		    listeners : {
+                       keyUp : function(field, e, opt) {
+                          this.setValue(this.getValue().toLowerCase());
+		       }
+		    }
+		});
+		
+		this.constructionField = new extensions.SelectableTextArea({
+			labelAlign: 'top',
+			itemId: 'formParamConstructParameter',
+			fieldLabel:'Construct Parameter*',
+		 	allowBlank : false, blankText : 'Construct Parameter is required',
+			name : 'buildchain',
+			flex: 0.9,
+			validateOnChange: false,
+			validateOnBlur: false,
+                        validator : this.isBalanced,
+			// ToDo - BRE - Wait the fix for drag&drop issue
+			listeners :
+			{
+			  render : function(o,op)
+			  {
+			    var me = this;
+			    var meEl = me.bodyEl;
+			    var dropTarget = Ext.create('Ext.dd.DropTarget', meEl, {
+			        ddGroup: 'explorerTree',
+			        notifyEnter : function(ddSource, e, data) 
+			        {
+			        },
+			        notifyOver  : function(ddSource, e, data)
+			        {
+                                    if (data.records[0].data.nodeType == 'localParam' && data.records[0].get('notyet')) {
+                                        this.valid = false;
+                                        return this.dropNotAllowed;   
+                                    }
+			        	if (((data.records[0].data.nodeType == 'localParam')   ||
+						(data.records[0].data.nodeType == 'remoteParam') ||
+						 (data.records[0].data.nodeType == 'remoteSimuParam') ||
+			        		 (data.records[0].data.nodeType == 'derivedParam') ||
+			        		 (data.records[0].data.nodeType == 'myDataParam') ||
+			        		 (data.records[0].data.nodeType == 'alias')) &&
+			        		(data.records[0].data.leaf) &&
+			        		!(data.records[0].data.disable))
+			        	{
+			        	  this.valid = true;
+			        	  return this.dropAllowed;
+			        	}
+			        	this.valid = false;
+			        	return this.dropNotAllowed;
+			        },
+			        notifyDrop  : function(ddSource, e, data)
+			        {			          
+			          if (!this.valid)
+			            return false;
+			          var nameToSent;
+			          switch (data.records[0].data.nodeType)
+			          {
+			            case 'localParam' :
+			            case 'remoteParam' :
+                                    case 'remoteSimuParam' :    
+			            	nameToSent = data.records[0].get('id');
+			            	if (data.records[0].get('alias')!= "" )
+                        		var nameToSent = "#"+data.records[0].get('alias');
+			            	break;
+			            case 'alias' :
+			            	nameToSent = "#"+data.records[0].get('text');
+			            	break;
+			            case 'derivedParam' :
+			            	nameToSent = "ws_"+data.records[0].get('text');
+			            	break;
+			            case 'myDataParam' :
+			            	var name = data.records[0].get('text');
+			            	nameToSent = "wsd_"+name;
+					var size = data.records[0].get('size');
+					if (size &&  size > 1) {
+					  nameToSent += "(0)";
+					  myDesktopApp.warningMsg("parameter "+name+" is array of size: "
+								  +size+"<br/>Please put index");
+					}
+			            	break;
+			            default :
+			            	return false;
+			          }
+			          var paramModule = myDesktopApp.getLoadedModule(myDesktopApp.dynamicModules.param.id);
+				  
+				  if (data.records[0].get('needsArgs')) { 				    
+				       paramModule.getUiContent().fireEvent('openParamEditor',nameToSent);
+				  }
+			           else {
+				       paramModule.addParam(nameToSent,true);	
+				   }			           
+			          return true;
+			        }
+			    });
+			  }
+			}
+            //TODO: ?validator on formula structure?
+//			listener : {
+//				valid : function(field) {
+//
+//				}
+//			}
+		});
+		
+		this.formPanel = new Ext.form.Panel({
+			id: 'vbox-paramForm',			
+			bodyStyle: {background : '#dfe8f6'},
+			border: false,
+			buttonAlign: 'left',
+			region: 'center',
+			trackResetOnLoad: true, //reset to the last loaded record
+			layout: {
+			    type: 'vbox',
+			    defaultMargins: {top: 10, left:10, bottom:5, right:5},			   
+			    align: 'stretch'
+			},
+			defaults: {
+			    border: false
+			},
+			items: [
+					{
+					    flex: 1,
+					    xtype: 'container',
+					    border: false,
+					    layout: {
+						type: 'table',
+						columns: 3
+					    },
+					    defaultType: 'textfield',
+					    defaults: {
+						    labelAlign: 'top'
+					    },
+					    items: [
+						this.fieldName,
+						{
+						    xtype:'component', width: 20
+						    },{
+							    itemId: 'formParamTimeStep', fieldLabel: 'Time Step (sec)*', labelAlign: 'top',
+							    allowBlank : false, blankText : 'Time Step is required',
+							    name : 'timestep',
+							    regex : new RegExp('^[0-9]+$'),
+							    regexText : 'Time Step has to be a numeric value',
+							    width: 150, validateOnChange: false,
+							    validateOnBlur: false
+						    },{
+							    xtype: 'textfield',
+							    itemId: 'formParamUnit', 
+							    fieldLabel: 'Units',
+							    name : 'units',
+							    width: 150
+						    },{
+							    xtype:'component', width: 20
+						    },{
+							    xtype: 'textfield',
+							    itemId: 'formParamYTitle', 
+							    fieldLabel: 'Y Title for Plot',
+							    name : 'ytitle',
+							    width: 150
+						    },{
+							    xtype: 'textfield',
+							    itemId: 'formParamDescription',
+							    name: 'description', 
+							    xtype: 'textarea', fieldLabel:'Description',
+							    width: 320,  height: 75,
+							    colspan: 3
+						    }]                        
+				    },
+				    this.constructionField
+				],		        
+				fbar: [
+					{
+					  text: 'Save',
+					  scope : this,
+					  handler: function(){
+						  if (this.updateObject()){
+							  var paramModule = myDesktopApp.getLoadedModule(myDesktopApp.dynamicModules.param.id);	
+							  if (!paramModule)
+								  return;
+							  var me = this;
+							  paramModule.linkedNode.isValidName(this.fieldName.getValue(), function (res) {
+								  if (!res)
+								  {
+									  me.fieldName.validFlag = 'Error during object validation';
+									  myDesktopApp.errorMsg(me.fieldName.validFlag);
+									  me.fieldName.validate();
+									  return;
+								  }
+								  
+								  if (!res.valid)
+								  {
+									  if (res.error)
+									  {
+										  if (res.error.search('subtree') != -1) {  							
+											  Ext.MessageBox.show({title:'Warning', 
+														msg: res.error+'<br/>Do you want to overwrite it?',
+														width: 300,
+														buttons: Ext.MessageBox.OKCANCEL, 
+														fn : me.overwriteProcess,
+														icon: Ext.MessageBox.WARNING,
+														scope : me
+											  });
+											  me.fieldName.validFlag = true;
+										  }
+										  else
+											  me.fieldName.validFlag = res.error;
+									  }
+									  else
+									  {
+										  me.fieldName.validFlag = 'Invalid object name';
+										  myDesktopApp.errorMsg(me.fieldName.validFlag);
+									  }
+									  me.fieldName.validate();
+									  return;
+								  }
+								  
+								  me.fieldName.validFlag = true;
+								  me.fieldName.validate();
+								  me.saveProcess(false);
+							  });
+							  
+						  }
+					  }
+					},
+					{
+					  text: 'Reset',
+					  scope: this,
+					  handler: function(){
+					    var paramModule = myDesktopApp.getLoadedModule(myDesktopApp.dynamicModules.param.id);			
+					    paramModule.createLinkedNode();
+					    paramModule.createObject();
+					    this.setObject(paramModule.getLinkedNode().get('object'));
+					     /* reset with keeping old object
+					           this.formPanel.getForm().reset();
+					     */
+					  }
+					}
+				    ] 	
+		});
+				
+		var myConf = {
+				layout: 'border',
+				border: false,
+				defaults: { layout: 'fit', border: false },
+				items: [
+				  this.formPanel,
+				  {
+				    xtype: 'panel', region: 'south',
+				    title: 'Information',
+				    collapsible: true,
+				    height: 100,
+				    autoHide: false,
+				    iconCls: 'icon-information',
+				    bodyStyle: 'padding:5px',
+				    loader: {
+				      autoLoad: true,
+				      url: helpDir+'myParameterHOWTO'
+				    }
+				} ],
+				plugins: [ {ptype: 'calculator', myBtns:[], context: 'Parameter' }, {ptype: 'searchParamEditorPlugin'}]
+			};
+	              
+			Ext.apply(this, Ext.apply(arguments, myConf));
+	}
+});
diff --git a/js/app/views/ParamsMgrUI.js b/js/app/views/ParamsMgrUI.js
new file mode 100644
index 0000000..25820a2
--- /dev/null
+++ b/js/app/views/ParamsMgrUI.js
@@ -0,0 +1,423 @@
+/**
+ * Project   : AMDA-NG
+ * Name      : amdaUI.ParamsMgrUI
+ * @class    :  
+ * @extends  Ext.Panel.Panel 
+ * @brief     
+ * @author Elena 
+ * @version  $Id: ParamsMgrUI.js 1871 2013-11-22 13:54:17Z elena $
+ ******************************************************************************
+ *    FT Id     :   Date   : Name - Description
+ ******************************************************************************
+ *	          
+ */
+
+Ext.define('amdaUI.ParamsMgrUI', {
+    extend: 'Ext.panel.Panel',
+      
+    alias: 'widget.paramsMgrPanel',
+    
+    baseId : null,
+    srcTree : null,
+    destTree : null,
+    
+   
+    hasModifs: false,
+    
+    //TODO where keep this (==baseId) description ? Global variable?
+    basesNames : ['VEXGRAZ', 'CDAWEB', 'THEMIS', 'MAPSKP'],
+    bases : [],
+    
+    configSrc : {title: 'source', enableDrag : true, enableDrop: false},
+    configDest : {title: 'destination', enableDrag : false, enableDrop:true},
+	
+       
+    constructor: function(config) {	    
+	    this.init(config);
+	    this.callParent(arguments);
+    },
+      	   
+   /*
+    * Load new data bases trees	: source & destination
+    */   
+    loadTrees : function(button, pressed) {
+      if (pressed) {		    
+	this.baseId =  button.text;	
+	this.loadTree('source');
+	this.loadTree('destination');
+      }
+    },
+    
+   /*
+    * Real Load  data base tree	
+    */   
+    loadTree : function(type) {
+      
+      var title = this.baseId;
+      if (type == 'source') var store = this.srcTree.getStore();
+      else {
+	    var store = this.destTree.getStore();
+	    title = 'My '+ this.baseId;
+      }	
+      // or RELOAD?
+      var root = store.getRootNode();		   
+      store.load({
+	node: root,
+	params: {
+	  nodeType: type,
+	  baseId: this.baseId
+	}
+      });	
+      root.set('text', title);		    		  
+    },
+    
+/*
+ *   Store and tree creation
+ */
+    initTree:  function(config) {
+		  
+	if (this.baseId) {
+	  var title = config.title == 'source' ? this.baseId : 'My '+ this.baseId;
+	}
+	else var title = config.title;
+	   
+	var selMode =  config.title == 'source' ? {mode: 'SIMPLE'} : {mode: 'SINGLE'};
+
+	var store = Ext.create('Ext.data.TreeStore', {
+	  model: 'amdaModel.AmdaNode',		     
+	  root: {			  			  
+	      text: title,
+	      //TODO if use the same logic for localParam?
+	      nodeType : 'remoteParam',
+	      expanded: true
+	  },
+	  listeners: {
+	    scope : this,
+	    beforeload: function(store, operation){
+	      store.proxy.extraParams = {
+		  nodeType: config.title,
+		  baseId: this.baseId
+	      }
+	    }}
+	  });
+	
+	var menu = new Ext.menu.Menu({
+	  items: [{
+	    text: 'Delete Data'
+	  }],
+	  listeners: {
+	    scope : this,
+	    click : this.deleteMulti
+	  }
+	});
+	
+	var tree = Ext.create('Ext.tree.Panel', {
+	    store: store,
+	    id : config.title,
+	    flex: 1,
+	    height: 400,
+	    selModel: selMode, //{mode: 'SIMPLE'},
+	    viewConfig: {
+		plugins: {
+		    ptype: 'treeviewdragdrop',
+		    allowContainerDrops : true,
+		    enableDrag: config.enableDrag,
+		    enableDrop: config.enableDrop,
+		    //TODO dataset drag/drop by parameters SELECTION
+		    dragText : "{0} selected parameter{1}",
+		    expandDelay : 100,		   
+		    ddGroup : "RemoteTreeDD",   
+		    isValidDropPoint : function(){		            
+		        return true;
+		    },		    
+		    onContainerOver : function() {					 
+		      return this.dropAllowed;
+		      
+		    },
+		    onNodeOver : function() {					 
+		      return this.dropAllowed;		      
+		    }, 		 
+		    onNodeDrop : function(nodeData, dd, e, data) { 
+		       if (!data.records)
+				  return false;
+		      Ext.Array.each(data.records, this.onDrop, this);
+// deselect source tree selection		      
+		      data.view.getSelectionModel().deselectAll();
+		      return true;		      
+		    },		    
+		    onContainerDrop : function(dd, e, data) {	
+		      
+		      if (!data.records)
+				  return false;		
+			Ext.Array.each(data.records, this.onDrop, this); 
+// deselect source tree selection		      
+		        data.view.getSelectionModel().deselectAll();
+		        return true;
+		    },
+
+		    onDrop : function(record) {
+		      
+ 		      var root = tree.getRootNode();		   
+		      var srcNode = record;		   
+		      var id = srcNode.get('id');	
+		      
+		      // Check if node exists already at destination		      
+		      if (root.findChild('id',id, true)) return;
+		      
+		      var ddNode = srcNode;
+  // Array of parent nodes description			  
+		      var Arr = []; 
+		      	      
+		      while (!ddNode.isRoot()) {			   
+			    ddNode = ddNode.parentNode;
+			    Arr.push(ddNode);
+			}
+  // start with the highest node			    
+		      Arr.reverse();			  						   
+
+  // create parent nodes if they do not exist
+		      var parentNode = root;
+		      Ext.Array.each(Arr,function(srcNode, index){
+			    if (index > 0) {
+			       var nodeId = srcNode.get('id');	  			
+			       var node = root.findChild('id',nodeId, true);				  
+			        if (!node) {					 			
+			          node = srcNode.copy();
+			 	  parentNode.appendChild(node);
+				  parentNode.expand(); 				    				    				
+				  node.setDirty();
+			      }				      			      			 
+			      parentNode = node;				
+			    } 			      
+		      });
+	 			      
+		    // Add new node to correct location			    
+		      parentNode.expand(!this.isDataSet, function(res){  		  	     	    		   		  
+			  var newNode = srcNode.copy();
+			  parentNode.appendChild(newNode); 	
+			  //to sync treeStore			  
+			  newNode.setDirty();
+			  //expand the whole subtree of added node
+			  tree.selectPath(newNode.getPath( 'id', '|'), 'id', '|');
+		    });
+		    return true;		     
+		    },
+		    
+		    onViewRender : function(view) {
+		      var me = this;
+
+		      if (me.enableDrag) {
+			      me.dragZone = Ext.create('Ext.tree.ViewDragZone', {
+			      view: view,
+			      ddGroup: me.dragGroup || me.ddGroup,
+		 	      dragText: me.dragText
+			    });
+		      }
+
+		      if (me.enableDrop) {
+			      me.dropZone = Ext.create('Ext.tree.ViewDropZone', {
+			      view: view,
+			      ddGroup: me.dropGroup || me.ddGroup,
+			      allowContainerDrops: me.allowContainerDrops,
+			      expandDelay: me.expandDelay,
+			      isValidDropPoint : me.isValidDropPoint,
+			      onContainerDrop : me.onContainerDrop,
+			      onNodeDrop      : me.onNodeDrop,
+			      onContainerOver : me.onContainerOver,
+			      onNodeOver : me.onNodeOver,
+			      onDrop : me.onDrop,
+			      onSimpleDrop : me.onSimpleDrop
+			    });
+		      }
+		      }
+		  }
+	      }, 		
+	      listeners: {
+		afterrender: function(comp){		   
+		    var view = comp.getView();                  
+		    view.tip = Ext.create('Ext.tip.ToolTip', {
+			// The overall target element.
+			target: view.el,
+			// Each grid row causes its own seperate show and hide.
+			delegate: view.itemSelector,			  				   				 
+			// Moving within the row should not hide the tip.
+			trackMouse: true,			   
+			autoRender: true,				   
+			listeners: {
+			    // Change content dynamically depending on which element triggered the show.
+			    beforeshow: function updateTipBody(tip) {	
+			      var trigger =  view.getRecord(tip.triggerElement);
+			      if (trigger) {
+				var info = trigger.get('info');
+				if (!info || info == '') {						      
+				    tip.addCls('hide');							  
+				  }
+				  else { 
+				    tip.removeCls('hide');			 					  	 					        					       						 
+				    tip.update(info); 
+				  }					      					  
+				}
+			    }
+		    }
+		    });
+		},
+				 
+		itemmouseenter: function(view, record, item){		  
+		  if(record.get('allowDrag') && view.ownerCt.id == 'source'){		 
+		        var el = Ext.get(item),
+                        td = el.down('td > div');
+                        td.setStyle('cursor', 'crosshair');				
+		  }
+		},
+		
+		beforeselect: function(selmodel, record, index) {		    
+	 	    if (!(record.get('isRemoteDataSet') || record.get('isParameter')) && tree.id == 'source') return false;			 	  			      
+		},
+  
+	  	select: function(selmodel, record, index) {
+		   
+	  	   if (record.get('isRemoteDataSet') && tree.id == 'source' && record.isExpanded()) {
+		            var toSelect = selmodel.getCount() !== record.childNodes.length + 1;
+			    var alreadySelected = selmodel.isSelected(record.firstChild);
+			    
+			    selmodel.deselectAll();
+			      
+			    if (toSelect && !alreadySelected) selmodel.select(record.childNodes);			 
+		   }
+	  	},
+	 	
+		itemcontextmenu: function(view, rec, item, index, e){		  
+		    e.preventDefault();//stopEvent();
+		    if (tree.id == 'destination' && rec.getDepth() > 0)  		        
+					      menu.showAt(e.getXY());			 		 		        
+		    }
+	  }
+	});	
+	return tree;
+    },
+// for the moment SINGLE!    
+    deleteMulti: function(){
+	    var selected = this.destTree.getSelectionModel().getSelection();
+	    Ext.Array.each(selected, function(rec){
+				      rec.deleteData();
+	    });      
+    },
+    
+    
+    successCallBack : function(batch, options) {   
+	    this.hasModifs = true;   
+	    loadMask.hide();               
+	    var createdNodes = options.operations.update;
+	     
+// define Pathes to the created nodes	     
+	     var Arr = [];	     
+	     Ext.Array.each(createdNodes,function(item){	                            	           
+		      if (item.getDepth() == 4) { // parameter level			    
+			   Arr.push(item.getPath('id', '|'));		 	 		 
+		      }
+	     });
+	     
+// reload destination tree and expand created nodes	     
+	     var panel = this.destTree;	     
+	     var store = this.destTree.getStore();
+	     var root = store.getRootNode();	     
+	     store.load({ node : root, 
+			  params : { nodeType: 'destination',
+				      baseId: this.baseId },
+			  callback : function(){			    			 
+			    for (var i = 0; i < Arr.length; i++){			     
+			        panel.selectPath(Arr[i], 'id', '|');
+			     }			      			  
+			  }
+		    });	 
+	       
+	   		      
+    },
+    
+    failureCallBack : function(batch, options) {
+      //TODO message error	     
+	      alert('FAILURE!'); 
+	      loadMask.hide();	      
+	      this.loadTree('destination');	       	
+    },   
+    
+ /*
+  *  Panel Trees generation
+  */
+ 
+  init: function(config) {
+    
+		  if (config.baseId && config.baseId != 'root') 
+				this.baseId = config.baseId;
+	   
+		  this.srcTree = this.initTree(this.configSrc);
+		  this.destTree = this.initTree(this.configDest);
+		  
+// synchron load of destination tree if the corresponding  node exists		  
+		  this.srcTree.on('itemexpand', function(node) { 		      
+		      var root = this.destTree.getRootNode();
+		      var destNode = root.findChild('id',node.get('id'),true);
+		      if (destNode) destNode.expand();
+		  },
+		  this);
+// toolbar		  
+		  Ext.Array.each(this.basesNames, function(baseName,index){
+			  var isTheBase = false;
+			  if (this.baseId && baseName == this.baseId) var isTheBase = true;
+			  this.bases[index] = {text: baseName,  toggleGroup: 'remoteBases', pressed: isTheBase, scope : this, toggleHandler: this.loadTrees}
+		  }, this);
+						    
+		  var myConf = {
+		   
+		    id : 'rb_tab_panel', 
+		    title : 'Remote Data Base',		   		  
+		    items: [                 
+			    this.srcTree, 
+			    this.destTree                      
+			  ],
+		    tbar: this.bases,	                       
+		    fbar: [
+			      { text: 'Save Modifs', 
+				scope : this,					  
+				handler: function(){				  
+				      var store = this.destTree.getStore();
+				      
+				       var removed = store.getRemovedRecords();
+				       var updated = store.getUpdatedRecords();				        				  
+			// if only removed: no sync - already removed at Server by node.delete	
+			//TODO 	 is this condition OK??				        				       
+					if (Ext.Array.union(removed,updated).length != removed.length) {  
+						    loadMask.show();
+						    store.sync({ success : this.successCallBack, failure: this.failureCallBack, scope : this});	
+					}
+				    }
+				}				   
+			  ],
+		    listeners : {
+				scope : this,
+				destroy : function() { 	
+				   if (this.hasModifs) {
+				      // reload RemoteParam Tree in explorer
+					var explorerTree = Ext.getCmp(amdaUI.ExplorerUI.RESRC_TAB.TREE_ID);
+					if (explorerTree) {					  
+					      var explorerTreeStore = explorerTree.getStore();
+					      var explorerRoot = explorerTreeStore.getRootNode();
+					      var explorerPath = '/root/parameters-treeBase/myRemoteData-treeRootNode/';
+					      
+					      explorerTreeStore.load( { node : explorerRoot, 
+									params : { nodeType: 'resources'},
+									callback : function(){
+									  explorerTree.selectPath(explorerPath);						 
+									}
+					      });	      	 
+				      }
+				   }
+				}
+		    }
+		};
+
+		Ext.apply(this, Ext.apply(arguments, myConf));
+ 
+    }	   		 	  
+    
+});    
\ No newline at end of file
diff --git a/js/app/views/PlotTabResultUI.js b/js/app/views/PlotTabResultUI.js
new file mode 100644
index 0000000..6da2763
--- /dev/null
+++ b/js/app/views/PlotTabResultUI.js
@@ -0,0 +1,703 @@
+/**
+ * Project   : AMDA-NG
+ * Name      : PlotTabResultUI.js
+ * @class    amdaUI.ResultUI
+ * @extends  Ext. 
+ * @brief    Plot Tab Result UI definition (View)
+ * @author    
+ * @version  $Id: PlotTabResultUI.js 2813 2015-03-12 13:46:38Z elena $
+ ********************************************************************************
+ *    FT Id     :   Date   : Name - Description
+ *******************************************************************************
+ *              
+ */
+
+Ext.define('amdaUI.PlotTabResultUI', {
+    extend: 'Ext.panel.Panel',
+ 
+    alias: 'widget.plotTabResult',
+
+    requires: [
+        'amdaUI.InteractiveIntervalPlugin'
+    ],
+    
+    constructor: function(config) {
+        this.isMire1Visible = false;
+        this.isMire1Draggable = false;
+        this.isMire2Visible = false;
+        this.isMire2Draggable = false;
+        
+        this.addEvents({'pagesize':true});
+        
+        this.init(config);	 
+        this.callParent(arguments);	 
+    },  
+    
+    
+    init: function(configResult){
+ 
+        this.object = configResult.object;
+  //timing from Start Stop	
+        this.currentStartTime = this.object.get('startDate');
+	var stopTime = this.object.get('stopDate');
+	this.plotDurationInSec = Ext.Date.getElapsed(this.currentStartTime, stopTime) / 1000;
+	      
+	this.Smin = this.object.get('xMin');  // 0.0 !P.Region : !X.window = 0.18 0.114286     0.915714
+	this.Smax = this.object.get('xMax');  // 0.9 !P.Region : !X.window = 0.89	   
+	
+    this.sliderPage = new Ext.slider.Single({
+        width: 130,
+        value: 75,
+        increment: 5,
+        minValue: 50,
+        maxValue: 100,
+        fieldLabel : 'Resize',
+        labelWidth : 40,
+        listeners: {
+    		scope : this,
+            changecomplete: function(s, v)
+            {
+    			this.resetMire();
+    			var size = this.getImageSize();	 
+    			this.panelImage.width  = size.width;
+    			this.panelImage.height = size.height;
+    			this.panelImage.doComponentLayout();
+    			this.setImageSettings(this.panelImage);
+    			this.fireEvent('pagesize',this,v);
+            }
+        }
+    });
+	
+        var panelResult = this.createPlotResultPanel(this.object.get('folderId'), this.object.get('resultId'));	 
+	              
+        var tsrc = this.object.get('timesrc'); 
+	var isTimeTable = tsrc == amdaModel.AmdaTimeObject.inputTimeSrc[0];
+	var navToolbar = this.createToolBar(isTimeTable);
+
+        this.mouseXField = new Ext.form.field.Date({
+            hideTrigger: true,
+            labelAlign: 'left',
+            fieldLabel: 'X',
+            labelWidth: 10,
+            disabled: true,
+            width: 150,
+            format : 'Y-m-d\\TH:i:s'
+        });
+
+        this.mouseYField = new Ext.form.field.Number({
+            hideTrigger: true,
+            labelAlign: 'left',
+            fieldLabel: 'Y',
+            labelWidth: 10,
+            disabled: true,
+            minValue: 0,
+            width: 50
+        });
+ 
+	
+        var mouseToolbar = {
+            xtype: 'toolbar',
+            height: 25,
+            dock: 'bottom',
+            items:[ {
+		      xtype: 'form',
+		      layout: {
+			type: 'hbox',
+			align : 'stretch',
+			pack  : 'start'
+		      },
+		      height: 21,
+		      width: 200,
+		      border: false,
+		      bodyStyle: {background : '#dfe8f6'},
+		      items:[
+			    this.mouseXField,
+			    {
+			      xtype: 'container',
+			      width: 5
+			    },
+			    this.mouseYField,
+			  ]
+                    }, 
+		    this.sliderPage,        			        
+                    '->',
+		    {
+		      xtype: 'button',
+		      text: 'Zoom in Time Interval',
+		      width: 130,
+		      scope: this,
+		      handler: function(){
+			
+			  this.createMire(panelResult);
+			  panelResult.fireEvent('open');
+		      }
+		    }, '-' , 
+		    {
+		      xtype: 'button',
+		      text: 'Extend/Shift',
+		      width: 80,
+		      scope : this,
+		      handler: function(){
+			  // define customized prompt message 
+    //TODO without getCmp		 
+			  var msgId = 'extend_shift'+ this.id;				 
+			  var msg = Ext.getCmp(msgId);				 
+			  if (!msg) {
+			      var msg = new Ext.window.Window({
+				  constrain : true,
+				  renderTo : this.id,
+				  id : msgId,
+				  title: 'Extend,Shift',
+				  buttonAlign : 'left',
+				  ghost: false,
+				  border: false,
+				  getConstrainVector: function(constrainTo){
+						var me = this;
+				        if (me.constrain || me.constrainHeader) {
+				            constrainTo = constrainTo || (me.floatParent && me.floatParent.getTargetEl()) || me.container || me.el.getScopeParent();
+				            return (me.constrainHeader ? me.header.el : me.el).getConstrainVector(constrainTo);
+				        }
+				    },
+				  buttons:
+				      [ {
+					  text: 'Extend/Shrink',
+					  scope : this,
+					  handler: function(bt,event){
+					      var durationForm = bt.findParentByType('window').items.items[0].items.items[0].getValue();
+					      var durationUnit = bt.findParentByType('window').items.items[0].items.items[2].getValue();
+					      var duration = this.TranslateSec(durationForm, durationUnit);
+					      if (duration) {
+						var start = this.object.get('startDate');
+						this.setObjectIntoNode(); 
+						this.object.fireEvent('execute', false, 'extend', duration, start);						   
+					      }	
+					      else myDesktopApp.errorMsg('no duration');		         
+					      }
+					    },
+					    '->',{
+					    text: 'Shift',
+					    scope : this,
+					    handler: function(bt,event){
+					      var durationForm = bt.findParentByType('window').items.items[0].items.items[0].getValue();
+					      var durationUnit = bt.findParentByType('window').items.items[0].items.items[2].getValue();
+					      var duration = this.TranslateSec(durationForm, durationUnit);
+					      if (duration) {
+						var start = this.object.get('startDate');
+						this.setObjectIntoNode(); 
+						this.object.fireEvent('execute', false, 'shift', duration, start);						   
+					      }	
+					      else myDesktopApp.errorMsg('no duration');
+					      }
+					    }
+					  ],
+					    layout: 'fit', 
+					    width: 230,
+					    items: {
+						xtype: 'fieldcontainer',
+						layout: 'hbox',
+						fieldLabel: 'Duration to apply to the interval',
+						labelAlign: 'top',
+						bodyStyle: {background : '#dfe8f6'},
+						border: false,
+						items: [{
+						    xtype: 'numberfield',
+						    hideTrigger: true,
+						    name: 'duration',
+						  //   minValue: 0,
+						    width: 150
+						},
+						{ xtype: 'splitter', width: 5 },
+						{
+						    xtype:'combo', name: 'durationUnit', store:['sec', 'min', 'hour', 'day'], 
+						    editable: false, width: 60, value: 'sec', triggerAction: 'all'
+						}]
+					    }
+				    });
+				    msg.show();
+				}
+				else {
+				    msg.toFront();
+				}
+			    }                               
+			}]   
+        };
+        
+        var newPlotResultTabPanelConfig = {
+            id: configResult.object.get('resultId'),
+            object: configResult.object,
+	    preventHeader : true,
+            autoScroll: true,       
+            items: panelResult,
+            dockedItems: [navToolbar,mouseToolbar]
+        };
+        
+        Ext.apply(this , newPlotResultTabPanelConfig);	
+	 
+    },
+    
+    disableButtons: function(disable) {
+     var toolBar = this.getDockedItems()[0];
+     var timeSrc = this.object.get('timesrc'); 
+     var isTimeTable = timeSrc == amdaModel.AmdaTimeObject.inputTimeSrc[0];
+     var numButton = isTimeTable ? 5 : 7;
+
+     for (var i = 0; i < numButton; i++) {
+	if (disable) toolBar.items.getAt(i).disable();
+	else toolBar.items.getAt(i).enable();
+     }
+ // disable/enable Extend/Shift    
+     var toolBarBottom = this.getDockedItems()[1];
+     if (disable) toolBarBottom.items.getAt(5).disable();
+     else toolBarBottom.items.getAt(5).enable();
+	   
+    },
+    
+	// Translate Duration for Extend,Shift in seconds
+    TranslateSec: function(valueForm, valueUnit) {
+
+	  if (valueForm == "") return 0;
+	  else switch (valueUnit) {
+		  case "sec":
+			  return valueForm;				
+		  case "min":
+			  return valueForm * 60;				
+		  case "hour":
+			  return valueForm * 3600;				 
+		  case "day":
+			  return valueForm * 86400;				 
+		  default:
+			  return 0;
+	  }		
+	},
+ 
+    createPlotResultPanel: function(resultFolder,resultId){
+ 	 
+        var simplUrl = 'data/'+sessionID +'/RES/'+resultFolder+ '/' + resultId +'.png'; 
+
+//TODO if possible use window sizes	
+	var size = this.getImageSize();	 
+        this.panelImage = Ext.create('Ext.Img', {
+            src: simplUrl,
+	    width : size.width,
+	    height : size.height,
+            listeners: {
+                scope: this,
+                afterrender: function(panel, opt){		  
+		    this.setImageSettings(panel);
+                    panel.getEl().on('click',function(e,i){
+                        this.setMireMode(panel);			
+                    },this);
+                    panel.getEl().on('mousemove',function(e,el,opt){		      		       
+                        var clickX = this.trackMousePosition(e);			
+                        this.setMirePosition(clickX,panel);
+                    },this);
+                    this.body.on('scroll',function(e,t,opt){
+                    	var mir1 = this.getEl().getById("mire_vertical"+this.id);
+                    	var mir2 = this.getEl().getById("mire_vertical2"+this.id);
+                    	var scrollLeft = this.body.getScroll().left;
+                    	if (mir1)
+                    		mir1.setStyle("margin-left","-"+scrollLeft+"px");
+                    	if (mir2)
+                    		mir2.setStyle("margin-left","-"+scrollLeft+"px");
+                    },this);
+                     panel.getEl().on('contextmenu',function(e,i){
+                         e.preventDefault();                         
+                         var imgContextMenu = new Ext.menu.Menu({
+                             items: [
+                             {
+                                   text: 'Show Image',
+                             //    html: '<A HREF="'+panel.src+'">Save Image As...</A> ',                                
+                                 handler:function(){                                     
+                              //       saveImageAs(panel.getEl());
+                                       img = panel.src;				    
+                                       window.win = open(img);
+                               //      setTimeout('win.document.execCommand("SaveAs")', 500);
+                               //      document.execCommand('saveas',false, 'test.txt');
+                               //      document.location.href
+                                     return false;
+                                 }
+                             }
+                             //,{
+////                              text: 'Show Start/Stop Plugin',
+////                              iconCls: 'show',
+////                              scope: this,
+////                              handler: function(){
+////                                  this.createMire(panel);
+////                                  panel.fireEvent('open');
+////                              }
+////                            },{
+////                                text: 'Reset Zoom',
+////                                iconCls: 'reset',
+////                                scope: this,
+////                                handler: function(){
+////                                    alert('restore Plot original image');
+////                                }
+//                              }			       
+			    ]
+                           });
+                         
+                         imgContextMenu.showAt(e.getXY());
+                     },this);
+                }
+            },
+            plugins: [ {ptype: 'interactiveIntervalPlugin'} ]
+        });
+
+        return this.panelImage;
+
+    },
+            
+    createMire: function(panel){
+        
+        this.isMire1Visible = true;
+        this.isMire1Draggable = true;
+        this.isMire2Visible = false;
+        this.isMire2Draggable = false;
+        var myContainer=document.getElementById(this.id);        
+         
+        var scrollLeft = this.body.getScroll().left;
+        
+        if (!document.getElementById("mire_vertical"+this.id)){
+            var newdiv1 = document.createElement('div'); 
+            newdiv1.setAttribute('id', 'mire_vertical'+this.id);
+            newdiv1.style.position = 'absolute';
+            newdiv1.style.top = '26px';
+            newdiv1.style.height = '990px';
+            newdiv1.style.borderLeft = "1px solid rgb(0, 0, 0)";
+            newdiv1.style.marginLeft = "-"+scrollLeft+"px";
+            myContainer.appendChild(newdiv1);
+        }
+        
+        if (!document.getElementById("mire_vertical2"+this.id)){                
+            var newdiv2 = document.createElement('div'); 
+            newdiv2.setAttribute('id', 'mire_vertical2'+this.id);
+            newdiv2.style.position = 'absolute';
+            newdiv2.style.top = '26px';
+            newdiv2.style.height = '990px';
+            newdiv2.style.borderLeft = "1px solid rgb(0, 0, 0)";
+            newdiv2.style.marginLeft = "-"+scrollLeft+"px";
+            myContainer.appendChild(newdiv2);
+        }
+        
+        this.resetMire();
+    },
+    
+    setImageSettings: function(panel) {
+      
+	var imgSize = panel.getSize();
+	  
+	this.imgPosition = panel.getPosition();		 
+	 
+//TODO if resizing influences this??	
+        this.leftOffset = Math.round(imgSize.width*this.Smin)+1; 
+        this.rightOffset = Math.round(imgSize.width*this.Smax);
+	var timePanelWidth =  this.rightOffset - this.leftOffset;       
+	this.pixelValue = this.plotDurationInSec / timePanelWidth;
+    },
+        
+    trackMousePosition: function(event){ 
+   
+    	var clickX = event.getX() - this.imgPosition[0];
+    	var clickY = event.getY() - this.imgPosition[1];
+	
+    	var scrollX = this.body.getScroll().left;
+    	var scrollY = this.body.getScroll().top;
+	
+    	if (clickX + scrollX >= this.leftOffset && clickX + scrollX <= this.rightOffset){
+    		var DeltaTimeX = clickX + scrollX - this.leftOffset;
+    		if (this.currentStartTime) 
+    		{
+    			var realTimeX = Ext.Date.add(this.currentStartTime, Ext.Date.SECOND, this.pixelValue*DeltaTimeX);	     
+    		}
+	 
+    		this.mouseXField.setValue(realTimeX);
+    		this.mouseYField.setValue(clickY + scrollY);
+    	}
+	
+	
+        return clickX + scrollX;
+    },
+    
+    setMirePosition: function(clickX,panel){
+        var mir1 = document.getElementById("mire_vertical"+this.id);
+	var mir2 = document.getElementById("mire_vertical2"+this.id);
+        if (this.isMire1Draggable){
+            // set mire1 position
+           if (mir1) mir1.style.left = clickX-1+"px";
+           if (mir2) mir2.style.left = clickX-1+"px";
+        } else if (this.isMire2Draggable){
+            // set mire2 position
+            if (mir2) mir2.style.left = clickX-1+"px";
+        }
+    },
+    
+    setMireMode: function(panel){ 
+
+        if (this.isMire1Draggable){
+            // fix position of mire1
+            this.isMire1Draggable = false;
+            panel.fireEvent('startTime',this.mouseXField.getValue());
+            if (!this.isMire2Draggable){
+	        var mir2 = document.getElementById("mire_vertical2"+this.id);
+		if (mir2) {
+		  mir2.style.left = document.getElementById("mire_vertical"+this.id).style.left;
+                // set mire2 visible
+		  mir2.style.borderTopStyle = "solid";
+		  this.isMire2Visible = true;
+		  this.isMire2Draggable = true;
+		}
+            }
+        } else if (this.isMire2Draggable){
+            // fix position of mire2
+            this.isMire2Draggable = false;
+            panel.fireEvent('stopTime',this.mouseXField.getValue());
+        }
+    },
+    
+    resetMire: function(){
+        this.isMire1Visible = true;
+        this.isMire1Draggable = true;
+        this.isMire2Visible = false;
+        this.isMire2Draggable = false;
+        // reinit position of mire1/2
+	var mir1 = document.getElementById("mire_vertical"+this.id);
+	var mir2 = document.getElementById("mire_vertical2"+this.id);
+	if (mir1) {
+	  mir1.style.left = '126px';
+	  mir1.style.borderTopStyle = "solid";
+	}  
+	if (mir2) {
+	  mir2.style.left = '126px';
+	  mir2.style.borderTopStyle = "none";
+	}        
+    },
+    
+    destroyMire: function(){
+        this.isMire1Visible = false;
+        this.isMire1Draggable = false;
+        this.isMire2Visible = false;
+        this.isMire2Draggable = false;
+        // get mire1 element
+        var mire1 = document.getElementById("mire_vertical"+this.id);
+        // set mire1 unvisible
+        mire1.style.borderTopStyle = "none";
+        // get mire2 element
+        var mire2 = document.getElementById("mire_vertical2"+this.id);
+        // set mire2 unvisible
+        mire2.style.borderTopStyle = "none";
+        //destroy mire1
+        mire1.parentNode.removeChild(mire1);
+        //destroy mire2
+        mire2.parentNode.removeChild(mire2);
+    },
+    
+ createToolBar : function(isTimeTable){ 
+   
+        var interoperItemCfg =  {
+				  text: 'Get HST Data',
+				  scope: this,
+				  menu: [
+				         {
+				        	 text: 'Giant Planet Auroral Emissions',
+				        	 scope: this,
+				        	 handler: function()
+				        	 {
+				        		 var me = this;
+				        		 myDesktopApp.getLoadedModule(myDesktopApp.dynamicModules.astro.id, true, function (module) {
+				        			 module.createWindow(me.object.get('startDate'),me.object.get('stopDate'));
+				        		 });
+							}
+						  }
+				  ]
+			  };
+        
+	if (isTimeTable) {	 
+	      var toolConfig = {
+		    dock: 'top',
+		    items: [{
+			  text: 'Previous',
+			  scope: this,
+			  handler: function(){ 
+                              var number = this.getDockedItems()[0].items.getAt(10).getValue();                               
+			      if (number > 1) {
+                                  this.execute('backInt', number); 
+                              }
+                              else {
+                                  myDesktopApp.warningMsg('It is the very FIRST interval');
+                              }
+			    }                   
+		      }, '-', {
+			  text: 'Next',
+			  scope: this,
+			  handler: function(){ 
+                              var number = this.getDockedItems()[0].items.getAt(10).getValue();    
+                              var intTot = this.getDockedItems()[0].items.getAt(11).getValue();                              
+			      if (parseInt(number) < parseInt(intTot)) {
+                                  this.execute('nextInt', number); 
+                              } 
+                              else {
+                                  myDesktopApp.warningMsg('It is the very LAST interval');
+                              }
+			    }
+		      }, '-', {		 
+			  text: 'Go to Interval #',  
+			  scope: this,
+			  handler: function(bt){			    
+			      var number = bt.nextSibling().getValue();
+			      var intTot = this.getDockedItems()[0].items.getAt(11).getValue();
+			      if (parseInt(number) <= parseInt(intTot)){
+					  this.execute('goto', number);
+			      }
+			      else {
+				myDesktopApp.warningMsg('Only '+ intTot +' intervals in the current Time Table');
+			      }
+			    }
+		      }, {
+			  xtype: 'numberfield',
+			  hideTrigger: true,                        
+			  width: 40, 
+			  minValue: 1			
+		      }, ' ',' ',' ',		    			    
+		      {   
+			  xtype: 'textfield',   
+			  labelAlign: 'right',
+			  labelWidth: 30,
+			  fieldLabel: 'Table',
+			  width: 130,
+			  disabled : true			
+		      }, {		               
+			  xtype: 'textfield',            
+			  labelAlign: 'right',
+			  labelWidth: 30,
+			  fieldLabel: 'Int #',
+			  width: 70,
+			  disabled : true
+		      }, {                        
+			  xtype: 'textfield',  		     
+			  labelAlign: 'right',
+			  labelWidth: 30,
+			  fieldLabel: 'Total',
+			  width: 70,
+			  disabled : true    
+		      },  '->',  
+		     interoperItemCfg
+		    ]                          
+	      };
+	}
+	else {
+		  var toolConfig = {            
+		      dock: 'top',
+		      items: [ {
+			      text: 'Backward', 
+			      scope: this,
+			      handler: function(){                    
+				  this.execute('back', 'startDate'); 
+			      }
+			  }, '-' , {
+			      text: '1/2 Backward',
+			      scope: this,
+			      handler: function(){                         
+				    this.execute( 'halfback','startDate'); 
+			      }
+			  }, '-', {
+			      text: '1/2 Forward',
+			      scope: this,
+			      handler: function(){                          
+				  this.execute('halfnext','stopDate');
+			      }
+			  }, '-', {
+			      text: 'Forward',
+			      scope: this,
+			      handler: function(){  				
+				  this.execute('next','stopDate');	
+			      }
+			  }, '->',
+			 interoperItemCfg			 
+		      ]
+		  };
+	}
+	
+       var toolBar =  Ext.create('Ext.toolbar.Toolbar', toolConfig); 
+       return toolBar;
+    }, 
+ 
+    execute: function(procedure, argName){
+    	
+	      var isMulti = false;
+	      this.setObjectIntoNode();	      
+	      if (procedure == 'goto' || procedure == 'backInt'|| procedure == 'nextInt') var argValue = argName;
+	      else var argValue = this.object.get(argName);
+	  
+	     this.object.fireEvent('execute', isMulti, procedure, argValue);	    
+      },
+      
+// can't find event to listen to    
+    setObjectIntoNode: function() {
+       	      
+	var resModule = myDesktopApp.getLoadedModule(myDesktopApp.dynamicModules.interactive_plot.id);
+
+	//AKKA - modification to retrieve the linkedNode
+	var linkedNodeKey = 'plot' + this.object.get('tabId') + '-win';
+	//var linkedNodeKey = this.object.get('resultFolder').toLowerCase() + '-win';
+	
+//TODO work with real ID
+	var linkedNode = resModule.getLinkedNodeByKey(linkedNodeKey);
+	
+	if (!linkedNode.get('object')) {
+	    resModule.setLinkedNode(linkedNode);
+	    linkedNode.set('object',this.object);      
+	  } 	
+    },
+    
+//Update object and toolbar    
+     updateObject: function(obj) { 
+        var newTsrc = obj.get('timesrc');
+	var oldTsrc = this.object.get('timesrc');
+        this.object = obj;  
+// update toolbar
+	if (newTsrc !== oldTsrc) {
+	  var isTimeTable = newTsrc  == amdaModel.AmdaTimeObject.inputTimeSrc[0];	     
+	  var navToolbar = this.createToolBar(isTimeTable);
+	    
+	  var oldNavToolbar =  this.getDockedItems()[0];
+	  this.removeDocked(oldNavToolbar,true); 
+         // dock = top by default	 
+	  this.addDocked(navToolbar); 	 
+	}   
+     },
+     
+     getImageSize : function() {
+	    var orientation = this.object.get('orientation');
+	 
+	    var module = myDesktopApp.getLoadedModule(myDesktopApp.dynamicModules.interactive_plot.id);
+	    
+	    if (orientation.toLowerCase() == 'portrait')  {
+	        var size =  Ext.clone(module.self.winSize.portrait);		 
+	    }
+	    else {
+	        var size = Ext.clone(module.self.winSize.landscape);		
+	    }
+	    
+	    size.width *= this.sliderPage.getValue()/100.;
+	    size.height *= this.sliderPage.getValue()/100.;
+	    
+	    size.width -= module.self.imgOffset.x;
+	    size.height -= module.self.imgOffset.y;
+	    
+	    return size;
+     },
+     
+     setPageSize : function(size)
+     {
+    	 this.sliderPage.setValue(size);
+    	 this.sliderPage.fireEvent('changecomplete',this.sliderPage,size);
+     },
+
+      updateTimeTableInfo: function(obj)
+      { 	
+    	 var toolBar = this.getDockedItems()[0];	   
+    	 if (obj.get('ttName')) toolBar.items.getAt(9).setValue(obj.get('ttName'));
+    	 if (obj.get('intervalN')) toolBar.items.getAt(10).setValue(obj.get('intervalN'));
+    	 if (obj.get('totalN')) toolBar.items.getAt(11).setValue(obj.get('totalN'));
+      }
+});
diff --git a/js/app/views/PlotUI.js b/js/app/views/PlotUI.js
new file mode 100755
index 0000000..b7837c9
--- /dev/null
+++ b/js/app/views/PlotUI.js
@@ -0,0 +1,1550 @@
+/**
+ * Project   : AMDA-NG
+ * Name      : PlotUI.js
+ * @class   amdaUI.PlotUI
+ * @extends Ext.container.Container
+ * @brief   Plot Module UI definition (View)
+ * @author  Caroline DARMON
+ * @version $Id: PlotUI.js 2641 2014-11-18 11:58:13Z elena $
+ */
+
+
+Ext.define('amdaUI.PlotUI', {
+        extend: 'Ext.container.Container',
+        alias: 'widget.panelPlot',
+        
+        forcedLayout : false,
+        forcedMulti : false,
+ 	
+        requires: [
+          'amdaUI.TimeSelectorUI',
+          'amdaReader.PlotReader',
+          'amdaUI.ParamEditorPlugin',
+          'Ext.ux.amdaGrid.HeaderToolTip'
+        ],
+        
+        // cell decoration	
+        statics : { 
+          editable : 'border: 1px inset #a3bae9!important; margin:2px 3px 2px 3px; background-color: #ffffff',	
+          button : 'border: 1px outset #a3bae9!important;  margin:2px 3px 2px 3px; background-color: #ffffff',
+          important: 'color: red!important; text-decoration: blink;'
+        },
+
+        constructor: function(config) {  
+            this.addParamMode=amdaModel.PlotPanel.ADD_PARAM_MODE[0];  
+            this.waitingScatterPanel=null;   
+            this.init(config);	    
+            this.callParent(arguments);	    	   
+            // load object into view if exists	     
+            if (this.object) this.loadObject();	    	     
+        },
+    
+        addTT : function(newTTName,newTTid){        
+          this.timeSelector.addTT(newTTName,newTTid);              
+        },
+        
+        addTTs : function(TTarray) {                       
+          this.timeSelector.setTTTab(TTarray);              
+        },
+        
+        addParam : function(targetNode, position, newParamName, isLeaf, isScatter, needsArgs, notyet) {  
+          var selModel = this.plotTree.getSelectionModel();
+          if (this.addParamMode == amdaModel.PlotPanel.ADD_PARAM_MODE[0]) {
+            // Create a new record instance
+            var recEmptyParam = Ext.create('amdaModel.PlotParam',{ name: newParamName, isScatter: isScatter, needsArgs: needsArgs, plotOnly: notyet });	
+            // Move the record to the corresponding panel
+            this.moveParam(recEmptyParam,targetNode,position);
+            selModel.select(recEmptyParam);
+                  
+            if (needsArgs){                           
+                this.plotTree.fireEvent('openParamEditor',recEmptyParam);                
+            }
+          } 
+          else if (isLeaf) {            
+            if (this.waitingScatterPanel) {                       
+                var recScatter = Ext.create('amdaModel.AmdaObject',{name: newParamName});                 
+                if (needsArgs) {
+                Ext.Msg.alert('Warning', newParamName + ' can not be used as X in scatter mode');
+                return; 
+                }                
+                this.waitingScatterPanel.set('scatterParam',recScatter);                
+                // simple add mode                
+                this.addParamMode = amdaModel.PlotPanel.ADD_PARAM_MODE[0];                
+                this.waitingScatterPanel = null;                          
+            }                                
+          }              
+        },
+    
+    
+        addPanel : function() 
+        {           
+            // Create a new Panel record instance 
+            var recEmptyPanel = Ext.create('amdaModel.PlotPanel',{expanded: true});			    
+            // Add the new panel under the root node
+            this.plotTree.getRootNode().appendChild(recEmptyPanel);	
+            //TODO config : expand doesn't work????
+            recEmptyPanel.expand(); 
+            this.updatePanelsIndex();
+          
+          return recEmptyPanel; 
+        },
+    
+    dropRecord : function(record,targetNode,position)
+    {
+    	var selModel = this.plotTree.getSelectionModel();
+		
+    	//select the target node if defined
+    	if (targetNode)
+    		selModel.select(targetNode);
+    	else
+    		selModel.deselectAll();
+    	
+    	switch (record.$className)
+    	{
+    	 	case 'amdaModel.LocalParamNode'   :	  
+    	 	case 'amdaModel.RemoteParamNode'  :
+                case 'amdaModel.RemoteSimuParamNode'  :    
+                        if (!record.get('isParameter') || record.get('disable'))
+                                return false;
+                        
+                         var needsArgs = false;
+                        
+                         if (record.$className == 'amdaModel.RemoteSimuParamNode') {
+                            needsArgs = record.get('needsArgs');
+                         }
+                         else if (record.$className == 'amdaModel.LocalParamNode') {
+                            needsArgs = record.get('needsArgs') && !record.get('isSpectra');
+                        }
+                       
+                        if (record.get('alias')!= "" )
+                                this.addParam(targetNode,position,"#"+record.get('alias'), record.isLeaf(), record.get('isScatter'), needsArgs );
+                        else
+                                this.addParam(targetNode,position,record.get('id'), record.isLeaf(),  record.get('isScatter'), needsArgs,  record.get('notyet'));                 
+                        
+                        return true;
+    	 	case 'amdaModel.AliasNode'        :
+    	 		if (!record.isLeaf())
+    	 			return false;
+    	 		this.addParam(targetNode,position,"#"+record.get('text'), record.isLeaf(), record.get('isScatter'));
+    	 		return true;
+    	 	case 'amdaModel.DerivedParamNode' :
+    	 		if (!record.isLeaf())
+				    return false;
+			    this.addParam(targetNode,position,"ws_"+record.get('text'), record.isLeaf(), record.get('isScatter'));
+			    return true;
+			case 'amdaModel.MyDataParamNode' :
+				if (!record.isLeaf())
+				    return false;
+			    this.addParam(targetNode,position,"wsd_"+record.get('text'), record.isLeaf(), record.get('isScatter'));
+			    return true;
+		 	case 'amdaModel.PlotParam' :
+			    return this.moveParam(record,targetNode,position);
+		 	case 'amdaModel.PlotPanel' :
+		 		return this.movePanel(record,targetNode,position);
+		    default :
+			    return false;
+    	}
+    	return false;
+	},
+	    
+	moveParam : function(record,targetNode,position)
+	{
+		if (record.$className != 'amdaModel.PlotParam')
+			return false;
+		//Create a new panel
+		if (!targetNode)
+			targetNode = this.addPanel();
+		
+		if (targetNode.$className == 'amdaModel.PlotPanel')
+		{				
+			targetNode.expand();
+			targetNode.appendChild(record);
+			return true;
+		}
+		else if (targetNode.$className == 'amdaModel.PlotParam')
+		{
+			var panelNode = targetNode.parentNode;
+			if (!panelNode)
+				return false;
+			switch (position)
+			{
+				case 'append' :
+					return false;
+				case 'before' :
+					panelNode.insertBefore(record,targetNode);
+					return true;
+				case 'after' :
+					if (panelNode.isLast())
+					{
+						panelNode = this.addPanel();
+						panelNode.appendChild(record);
+					}
+					else
+						panelNode.insertChild(targetNode.get('index')+1,record);
+					return true;
+			}
+		}
+		return false;
+	},
+	
+	movePanel : function(record,targetNode,position)
+	{
+		if (record.$className != 'amdaModel.PlotPanel')
+			return false;
+					
+		switch (position)
+		{
+			case 'before' :
+				this.plotTree.getRootNode().insertBefore(record,targetNode);
+				this.updatePanelsIndex();
+				return true;
+			case 'after' :
+				var refPanel = targetNode;
+				switch (targetNode.$className)
+				{
+					case 'amdaModel.PlotPanel' :
+						refPanel = targetNode;
+						break;
+					case 'amdaModel.PlotParam' :
+						refPanel = targetNode.parentNode;
+						break;
+					default :
+						return false;
+				}		
+				this.plotTree.getRootNode().insertChild(refPanel.get('index')+1,record);
+				this.updatePanelsIndex();
+				return true;
+				break;
+			default :
+				return false;
+		}
+		
+		return true;
+	},
+	
+	isValidToDrop : function(record,targetNode,position)
+	{
+		switch (record.$className)
+        {
+        	case 'amdaModel.LocalParamNode'   :
+    	 	case 'amdaModel.RemoteParamNode'  :
+                case 'amdaModel.RemoteSimuParamNode'  :    
+    	 		return record.get('isParameter') && ! record.get('disable');
+    	 	case 'amdaModel.AliasNode'        :
+    	 	case 'amdaModel.DerivedParamNode' :
+    	 	case 'amdaModel.MyDataParamNode'  :
+    	 		return record.isLeaf(); 
+    	 	case 'amdaModel.PlotParam'        :
+    	 		return true;
+    	 	case 'amdaModel.PlotPanel'        :	
+    	 		switch (position)
+    	 		{
+    	 			case 'append' :
+    	 				return false;
+    	 			case 'before' :
+    	 				return (targetNode.$className == 'amdaModel.PlotPanel');
+    	 			case 'after'  :
+    	 				return ((targetNode.$className == 'amdaModel.PlotParam') && targetNode.isLast());
+    	 		}
+        }
+		return false;
+	},
+
+/**
+ *  replace alias by param and vise versa
+ */	
+   updateConstruct : function(oldval,newval) {
+      if (this.plotTree) {
+    	while (this.plotTree.getRootNode().findChild('name',oldval,true)) {
+	    	var paramToMove = this.plotTree.getRootNode().findChild('name',oldval,true);
+	    	if (paramToMove) {
+	    		paramToMove.set('name',newval);	
+	    		paramToMove.set('text',newval);	
+	    	}
+    	}
+      }
+    },	 
+ 
+    setObject : function(obj) {
+      this.object = obj;
+      this.loadObject();
+    },    
+    
+    loadTimeFromMulti : function() {
+// get individual basic form
+      var thisForm = this.formPanel.getForm();
+      
+      var multiPlotWin =  myDesktopApp.desktop.getWindow(myDesktopApp.dynamicModules.interactive_plot.id);
+      
+      var multiTimeSelector = multiPlotWin.items.items[0].timeSelector;      
+      var multiForm = multiPlotWin.items.items[0].getForm();
+// get values from multiPlot Form and set into individual one          
+      var multiTimeSource = multiTimeSelector.timeSrc.getChecked()[0].getGroupValue();     
+      var thisTimeSource = this.timeSelector.timeSrc.getChecked()[0].getGroupValue();
+     
+// set timetables names from multiPlot Form - change to needed Time Source is automatic
+      if (multiTimeSource === amdaModel.AmdaTimeObject.inputTimeSrc[0]){  
+        this.addTTs(multiTimeSelector.TTGrid.getStore().data.items);          
+      }
+      else { 
+        if (thisTimeSource === amdaModel.AmdaTimeObject.inputTimeSrc[0]){
+            this.timeSelector.setTTTab(false);
+        }
+// get values from multiPlot Form and set into individual one     
+        var timeValuesFromMulti = multiForm.getValues();
+        thisForm.setValues(timeValuesFromMulti);	
+      }  
+    },
+    
+
+    /**
+     * update this.object from form
+     */
+    updateObject : function(fromMulti){
+     
+//if empty tree
+        if (!this.plotTree.getStore().getRootNode().hasChildNodes())
+          return false;
+	                            
+// get the basic form
+        var basicForm = this.formPanel.getForm();        
+        var timeSource = this.timeSelector.timeSrc.getChecked()[0].getGroupValue();
+        
+        var updateStatus = true;
+        if (this.object) this.object.set('tabId', this.id.substr(4,1)); 
+	 
+          var fieldsWithoutName = basicForm.getFields().items;
+          Ext.Array.each(fieldsWithoutName, function(item, index,allItems){             
+              if(item !== this.fieldName) {		
+            	  if (!item.isValid()) {
+            		  if ((timeSource === amdaModel.AmdaTimeObject.inputTimeSrc[0]) &&
+            			   ((item.name == 'startDate') || (item.name == 'stopDate') || (item.name == 'duration'))) {
+            			  	updateStatus = true;
+            		  }
+            		  else {
+            			// set update isn't allowed
+                          updateStatus = false;
+                          return false;
+            		  }                  
+            	 }
+              }	  
+          }, this);
+          
+ 	  if (!updateStatus) 
+                        return false;
+          
+// multiPlot time settings into this form
+	  if (fromMulti) {
+	      this.loadTimeFromMulti();     
+	  }
+ 	     	  	  	 
+	  if (timeSource === amdaModel.AmdaTimeObject.inputTimeSrc[0] // timeSource  'TimeTable'
+		    &&  this.timeSelector.TTGrid.getStore().count() == 0) {
+		    myDesktopApp.warningMsg(
+		          'You chose Time Selection by TimeTable` but no timeTable was added!<br/>Please add one or change Time Selection');  
+		  return false;    
+	  }
+
+// if the update is allowed
+	  if (updateStatus) {
+	      // real object update
+	      
+	      //update object from multi plot mgr as this tt form is disabled
+	       if (fromMulti) { 
+	     var resWin =  myDesktopApp.desktop.getWindow(myDesktopApp.dynamicModules.interactive_plot.id);
+		 var multiForm = resWin.items.items[0].getForm();
+		 multiForm.updateRecord(this.object);
+	       }
+	       // update object with the content of form
+	       else {
+		 basicForm.updateRecord(this.object);
+	       }
+	      var orientation = basicForm.findField('orientation').getValue();
+	      this.object.set('orientation', orientation); 
+	      var format = basicForm.findField('format').getValue();	
+	      this.object.set('format', format); 
+	      
+	      this.object.set('forcedLayout', this.forcedLayout);
+	      this.object.set('forcedMulti', this.forcedMulti);
+	      
+	      this.object.set('timesrc', timeSource);
+	      // update object with content of treePanel
+	      this.object.childNodes = this.plotTree.getRootNode().childNodes;	     
+	      // set valid intervals into TimeTable object
+	      if (timeSource === amdaModel.AmdaTimeObject.inputTimeSrc[0]) {
+		      this.object.set('timeTables', this.timeSelector.TTGrid.getStore().data.items);
+	      }	      
+	  }
+
+	  // return the update status
+	  return updateStatus;
+      
+    },
+
+    /**
+     * load this.object into form
+     */
+    loadObject : function(){
+  
+         if (this.object.get('charSize') == 0)
+		    this.object.set('charSize', 1.3);
+	
+	 if (this.object.get('thickness') == 0)
+		    this.object.set('thickness', 1);
+	 
+	 if (!this.object.get('format'))
+		    this.object.set('format', 'PNG');
+	 
+	 if (!this.object.get('orientation'))
+		    this.object.set('orientation', 'LANDSCAPE');
+	 
+	 if (!this.object.get('ppp'))
+		    this.object.set('ppp', 3000);
+	 
+	  if (this.object.get('forcedLayout')  || this.object.get('forcedMulti')) {	          
+		 var toolItems = this.plotTree.getDockedItems('toolbar')[0].items;
+		 
+		 if (this.object.get('forcedLayout')) toolItems.getAt(3).setValue(true);
+		 if (this.object.get('forcedMulti')) toolItems.getAt(5).setValue(true);	  
+	  }
+        // load object into form
+        this.formPanel.getForm().loadRecord(this.object);
+
+         if (this.object.get('children') || this.object.childNodes) {
+ 	   
+          var jsonObj = this.object.getJsonValues(this.object.get('id'));	    
+	  jsonObj.leaf = false; 
+/* reset with keeping old object 	  
+	    // clone jsonObj as setRootNode() spoiled this.object ??
+ 	  this.jsonObj = Ext.clone(jsonObj);
+*/
+            this.plotTree.getStore().setRootNode(jsonObj);
+ 	    this.plotTree.getRootNode().expandChildren(true);	    
+        }
+ 	           
+	   // set object's TTs into the timeselector
+	if (this.object.get('timesrc') === amdaModel.AmdaTimeObject.inputTimeSrc[0])
+	                this.addTTs(this.object.get('timeTables'));
+    },
+        
+    /**
+     * save method called by Save button to launch the save process
+     */
+    saveProcess : function(toRename){
+        // if this object has been modified
+        if (this.object.dirty) {  
+            // Plot module
+            var plotModule = myDesktopApp.getLoadedModule(myDesktopApp.dynamicModules.plot.id);
+            var linkedNode =  plotModule.getTabNode(this.id);
+	    plotModule.setLinkedNode(linkedNode);
+	   
+            // if the name has been modified this is a creation
+            if (this.object.isModified('name')){
+                
+                // if object already has an id : it's a 'rename' of an existing request
+                if (this.object.get('id')){
+		   
+                    // the context Node is the parent node of current edited one
+                    var contextNode = plotModule.getTabNode(this.id).parentNode;
+		    
+                    // link a new node to the plotModule		    
+                    plotModule.createLinkedNode();
+		    plotModule.addLinkedNode(plotModule.linkedNode, this.id);
+		    
+                    // set the contextNode
+                    plotModule.linkedNode.set('contextNode',contextNode);
+		    
+                    // create a new object linked		   
+                    plotModule.createObject(this.object.getJsonValues());                     
+                    var plotObj =  plotModule.linkedNode.get('object');			    
+                    // synchronisation of objects
+                    this.object = plotObj; 		     
+		    if (toRename) plotModule.linkedNode.toRename = true;
+                }                
+              plotModule.linkedNode.set('object',this.object);	       
+              plotModule.linkedNode.create();
+                
+            } else {  	     
+	       plotModule.linkedNode.set('object',this.object);		 
+               plotModule.linkedNode.set('contextNode',plotModule.contextNode); 
+	       plotModule.linkedNode.update();
+            }
+        }
+    },
+    
+    /**
+      * overwrite metod called by Save button
+      */
+    overwriteProcess : function(btn){	
+    if (btn == 'cancel') return;
+           
+    this.fieldName.clearInvalid();      
+    this.saveProcess(true);		
+    }, 
+	
+    /**
+     * plot method called by 'Do Plot' button to launch the plot process
+     */
+    doPlot : function(){
+        // fire execution        
+         var plotModule = myDesktopApp.getLoadedModule(myDesktopApp.dynamicModules.plot.id);
+	 this.object.set('forcedLayout',this.forcedLayout);
+	 this.object.set('forcedMulti',this.forcedMulti);
+	 plotModule.getTabNode(this.id).set('object',this.object);
+	 
+	 plotModule.getTabNode(this.id).execute();
+    },    
+    getPlotTreeColumns : function(){
+        
+        var typeStore = Ext.create('Ext.data.Store', {
+            fields: ['display', 'value'],
+            data : amdaModel.PlotPanel.PLOT_TYPES
+        });
+                                        
+        return [
+                {
+                    menuDisabled: true, 
+		    align: 'left',
+                    width: 16, 
+		    renderer: function(v,m,record){
+                            return'<div class="icon-small-remover" style="width: 16px; height: 16px; vertical-align: middle;"></div>';
+                    }
+                },
+                {
+                    xtype: 'treecolumn', //this is so we know which column will show the tree
+                    text: 'Name', 
+                    dataIndex: 'name',
+                    width: 130,
+                    menuDisabled: true
+                },
+                //// Panel specific columns
+                {
+                    text: 'Panel Properties',
+                    menuDisabled: true, align: 'center',
+                    columns: [
+                              {
+                                  text: 'Plot Type&nbsp;<img amda_clicktip="plotType" style="vertical-align:bottom" src="js/resources/images/16x16/info_mini.png"',
+                                  dataIndex : 'plotType',
+                                  menuDisabled: true,
+                                  width: 100, align: 'center',
+				//  tooltip: 'You may select one of two different plot types:<br/>Time-Y(<b>Time</b>,default) or X-Y(<b>Scatter</b>)',
+                                  editor: {
+//                                    selectOnFocus: true,
+                                      xtype:'combo',  
+                                      editable: false,
+                                      store: typeStore,
+//                                    queryMode: 'local',
+                                      displayField: 'value',
+                                      valueField: 'value',
+                                      onItemClick: function(picker,record){
+                                          /*
+                                           * Extract/Override of original extjs library code
+                                           * If we're doing single selection, the selection change events won't fire when
+                                           * clicking on the selected element. Detect it here.
+                                           */
+                                          var me = this,
+                                              lastSelection = me.lastSelection,
+                                              valueField = me.valueField,
+                                              selected, selectedRow;
+                                          		                           
+                                          if (!me.multiSelect && lastSelection) {
+                                              selected = lastSelection[0];
+					      // SCATTER
+					      if (selected && record.get(valueField) === amdaModel.PlotPanel.PLOT_TYPES[1].value) {
+						selectedRow = me.up('form').ownerCt.selectedRow;
+						//  SCATTER : RESET
+						if (selected.get(valueField) === amdaModel.PlotPanel.PLOT_TYPES[1].value) { 
+						 //TODO if it is needed???
+						 //Make sure we also update the display value if it's only partial
+						    //me.displayTplData = [record.data];
+						    //me.setRawValue(me.getDisplayValue());
+						    //me.collapse();
+						    // CDA: plug
+						   me.fireEvent('unchangedselect',me,record);
+						}
+						else if (selectedRow.get('scatterParam')) {
+						  selectedRow.set('scatterParam',null);						  
+						}				 
+					      }
+					      //me.fireEvent('blur');
+                                          }
+                                      },
+                                      listeners : {
+                                          scope: this,
+                                          select: function(combo, record, index) {
+                                              // on select complete action                                             
+                                              combo.fireEvent('blur');
+                                          },				      
+                                          unchangedselect: function(combo, record){                                               
+                                                  // if we're already waiting for scatter param
+                                                  if (this.addParamMode == amdaModel.PlotPanel.ADD_PARAM_MODE[1]) {
+                                                      Ext.Msg.alert('Warning', 'Panel '+ this.getPanelIndex(this.waitingScatterPanel) +' is already waiting for a scatter parameter!');
+                                                  } else {
+                                                      // reinit scatter selection of selected row
+                                                      this.selectedRow.set('scatterParam',null);
+                                                      // set the waiting scatter panel with the selected row
+                                                      this.waitingScatterPanel = this.selectedRow;
+                                                      // set scatter add mode
+                                                      this.addParamMode = amdaModel.PlotPanel.ADD_PARAM_MODE[1];
+                                                      // refresh view
+                                                      //this.plotTree.getView().refresh();
+                                                  }                                                  
+                                                  // complete action
+                                                  combo.fireEvent('blur');                                   
+                                          }
+                                      }
+                                  },
+                                  renderer: function(v,m,record){				      
+                                      if(!record.isLeaf()) {					  
+                                          // if 'TIME'
+					 if (record.get('plotType') == amdaModel.PlotPanel.PLOT_TYPES[0].value) {                                             
+					      m.style += amdaUI.PlotUI.editable;	 
+                                              return record.get('plotType');
+                                          } else if (record.get('scatterParam')) {
+                                              m.style += amdaUI.PlotUI.editable;
+					      var scatterName = record.get('scatterParam').data.name;
+                                           //   return 'function of '+ record.get('scatterParam').get('name');
+					      return 'function of '+ scatterName;
+                                          } else {                                              
+					      m.style = amdaUI.PlotUI.important; 
+					      record.set('width',record.get('height'));
+                                              return 'Select Parameter...';
+                                          }
+                                      }
+                                  }
+
+                              }, {
+                                  text: 'Height',
+                                  dataIndex : 'height',
+                                  menuDisabled: true,
+                                  width: 50, align: 'center',
+                                  editor: {
+                                      xtype: 'numberfield', minValue:0,
+                                      allowDecimals : true,
+                                      hideTrigger: true
+                                  },
+				 renderer: function(value,metaData,record){
+				    if (record.$className === amdaModel.PlotPanel.$className){				                 
+						  metaData.style += amdaUI.PlotUI.editable;	         			                    
+				    }
+				    return value;
+                                  }       
+                              }, {
+                                  menuDisabled: true,
+                                  text: 'Width', align: 'center',
+                                  dataIndex : 'width',
+                                  width: 50,
+                                  editor: {
+                                      xtype: 'numberfield', minValue: 0,
+                                      allowDecimals : true,
+                                      decimalPrecision: 10,
+                                      hideTrigger: true
+                                  },
+				 renderer: function(value,metaData,record){
+				    if (record.$className == amdaModel.PlotPanel.$className){					
+					metaData.style += amdaUI.PlotUI.editable;				                    
+				    }
+				    return value;
+                                  }   
+                              },                               
+                              {
+                                  text: 'Xmin',
+                                  menuDisabled: true,
+                                  dataIndex : 'xRangeMin',
+                                  width: 50, align: 'center',                                
+                                  editor: {
+                                      xtype: 'numberfield', 
+                                      allowDecimals : true, baseChars: '0123456789eE',
+                                      decimalPrecision: 20,
+				      hideTrigger: true
+                                  },
+				 renderer: function(value,metaData,record){
+				    if (record.$className == amdaModel.PlotPanel.$className){				                 
+				                      metaData.style += amdaUI.PlotUI.editable;				                    
+				    }
+				    return value;
+                                  }   
+                              },
+                              {
+                                  text: 'Xmax',
+                                  menuDisabled: true,
+                                  dataIndex : 'xRangeMax',
+                                  width: 50, align: 'center',                                
+                                  editor: {
+                                      xtype: 'numberfield', 
+                                      allowDecimals : true, baseChars: '0123456789eE',
+                                      decimalPrecision: 20,
+				      hideTrigger: true
+                                  },
+				 renderer: function(value,metaData,record){
+				    if (record.$className == amdaModel.PlotPanel.$className){				                 
+				                      metaData.style += amdaUI.PlotUI.editable;				                    
+				    }
+				    return value;
+                                  }   
+                              },
+                              {
+                                  text: 'Ymin', align: 'center',
+                                  menuDisabled: true,
+                                  
+                                  dataIndex : 'y1RangeMin',
+                                  editor: {
+                                      xtype: 'numberfield', baseChars: '0123456789eE',
+                                      allowDecimals : true, decimalPrecision: 20,
+				      hideTrigger: true
+                                  },
+                                  width: 50,
+				  renderer: function(value,metaData,record){
+				    if (record.$className == amdaModel.PlotPanel.$className){				                 
+				                      metaData.style += amdaUI.PlotUI.editable;				                    
+				    }
+				    return value;
+                                  }   
+                              },
+                              {
+                                  text: 'Ymax', align: 'center',
+                                  menuDisabled: true,                                  
+                                  dataIndex : 'y1RangeMax',
+                                  editor: {
+                                      xtype: 'numberfield', 
+                                      allowDecimals : true, baseChars: '0123456789eE',
+                                      decimalPrecision: 20,
+				      hideTrigger: true
+                                  },
+                                  width: 50,
+				 renderer: function(value,metaData,record){
+				    if (record.$className == amdaModel.PlotPanel.$className){				                 
+				                      metaData.style += amdaUI.PlotUI.editable;				                    
+				    }
+				    return value;
+                                  }   
+                              }, {
+				  text: 'Additional',
+				  menuDisabled: true, align: 'center',
+				  width: 100,
+				  dataIndex : 'panelArgs',
+				  tooltip: 'Panel generic arguments.....',
+				  renderer: function(value,metaData,record){				    
+				    if (record.$className === amdaModel.PlotPanel.$className){
+				      //TODO save it somehow at server side
+				                      if (!value) value = 'select...';
+						      metaData.style += amdaUI.PlotUI.button;				                    
+				    }
+				    else {value = ""};
+				    return value;
+				  } 			
+			      },
+			     ]      
+        
+                },
+                //// Param Arguments
+                {
+                    text: 'Parameter Arguments',
+                    menuDisabled: true, align: 'center',
+                    width: 120,
+		    dataIndex : 'paramArgs', 
+		    tooltip: 'Parameter specific arguments.....',    
+		    renderer: function(value,metaData,record){		     
+		      if (record.$className === amdaModel.PlotParam.$className){			 
+			    metaData.style += amdaUI.PlotUI.button;	
+			    var tooltip = value;
+			    if (value !== 'select...')
+			      metaData.tdAttr = 'data-qtip="' + Ext.String.htmlEncode(tooltip) + '"';		
+		      }
+		      else {value = ""};
+		      return value;
+		    }
+                  },
+	           {
+                    text: 'Y2',
+                    menuDisabled: true,
+		    dataIndex : 'yaxe',   
+                    width: 30,
+		    tooltip: 'Y2 is not implemented yet',
+		    renderer: function(value,metaData,record){				    
+		      if (record.$className == amdaModel.PlotParam.$className){			  
+			if (value) return '<input type="checkbox" disabled checked/>';
+			else return '<input type="checkbox" disabled/>';
+		      }
+		      else return "";		  
+		    } 
+                 }
+                ];
+    },
+    
+    updatePanelsIndex : function()
+    {
+    	Ext.each(this.plotTree.getRootNode().childNodes, function(item)
+    			{
+    				if (item.$className == 'amdaModel.PlotPanel')
+    				{
+    					var index = this.getPanelIndex(item);
+    					item.set('name', 'Panel '+index);
+    				}
+    			},this);
+    },
+
+    removePanel : function(panel)
+    {
+    	var selModel = this.plotTree.getSelectionModel();
+    	var plugin = this.plotTree.getPlugin('paramEditorPlugin');
+    	
+    	// if the panel to delete is not empty
+    	if (panel.hasChildNodes()) {
+    		// Prompt confirmation to the user if he wants to continue deletion
+    		Ext.Msg.confirm('non-empty panel', 'This Panel is non-empty!<br>Do you want to continue its deletion?', function(btn, text){
+    			if (btn == 'yes'){
+    				// remove panel
+    				selModel.deselect(panel);
+    				//if args plugin is open and is connected to removed record : close plugin	
+                	Ext.Array.each(panel.childNodes, function(item){					 					  
+                		if (plugin && plugin.record && (plugin.record.get('id') == item.get('id')))						 
+                			plugin.win.close();			   					 
+                	});
+                	panel.remove();
+                	this.updatePanelsIndex();
+                	//this.plotTree.getView().refresh();
+            	}
+    		},this);
+    	} 
+    	else {
+    		// remove panel
+    		selModel.deselect(panel);
+    		panel.remove();
+    		this.updatePanelsIndex();
+    		//this.plotTree.getView().refresh();
+    	} 
+    },
+       
+    getPanelIndex : function(panel){
+        var root = this.plotTree.getRootNode(), index=1;
+        root.eachChild(function(node){
+            if (node == panel){
+                return false;
+            }
+            index++;
+        });
+        return index;
+    },
+    	 
+    init : function(config) {
+            
+    	var me = this;
+    	
+        var treeGridCellEditing = Ext.create('TreeGridCellEditor', {
+            listeners: {
+                scope: this,
+                beforeedit: function(editor,object,opt){   
+	  
+                //TODO replace hardcoded column values		  
+                // panel fields  
+                if ( 0 < object.colIdx && object.colIdx < 10 ){
+		  
+                        //   desactivate editor in case of param                        
+                        if (object.record.isLeaf()){                          
+                            return false;
+                        }
+                       
+                        // fields Xmin - Xmax  and  plotType is 'TIME'  
+                        if ( 4 < object.colIdx && object.colIdx < 7 && 
+		 		 object.record.get('plotType') === amdaModel.PlotPanel.PLOT_TYPES[0].value){                                                    
+                                //TODO temporary!!!! wait for new kernel                               
+                                if ((object.record.childNodes[0].get('paramArgs').match('OrbitPresentation=CYL')) ||
+				   (object.record.childNodes[0].get('paramArgs').match('OrbitPresentation=GLOBAL')))
+				            return true;
+                                // desactivate editor in case of TIME plot_type
+                               return false;                            
+                       }
+                    
+                        //TODO temporary!!! wait for  new kernel;    desactivate Plot_Type if parameter 'needsArs' or    is 'not scattarable'                     
+                       if (object.colIdx == 2 && object.record.childNodes.length > 0) {
+			 var isScatter = true;
+			 Ext.Array.each(object.record.childNodes, function(item){
+			   if (item.get('needsArgs') || !item.get('isScatter')) {
+				 isScatter = false;
+				 Ext.Msg.alert('Warning', 'Scatter mode cannot be applied to '+item.get('name'));
+			     return false;
+			   }
+			 });
+			 return isScatter;
+		       }       
+                    }                  
+                },
+                edit: function(editor,object){
+                    if (object.field == 'plotType'){
+                        if (object.value != object.originalValue){
+                            // 'SCATTER' selection
+                            if (object.value == amdaModel.PlotPanel.PLOT_TYPES[1].value){
+                                // if we're already waiting for scatter param
+                                if (this.addParamMode == amdaModel.PlotPanel.ADD_PARAM_MODE[1]) {
+                                    Ext.Msg.alert('Warning', 'Panel '+ this.getPanelIndex(this.waitingScatterPanel) +' is already waiting for a scatter parameter!');
+                                    object.record.set('plotType',amdaModel.PlotPanel.PLOT_TYPES[0].value);
+                                    this.plotTree.getView().refresh();
+                                    return false;
+                                } else {
+                                    // erase X title
+                                    object.record.set('xTitle','');				    
+                                    // mode addScatterParam
+                                    this.addParamMode=amdaModel.PlotPanel.ADD_PARAM_MODE[1];
+                                    // set waitingScatterPanel
+                                    this.waitingScatterPanel=object.record;
+                                }
+
+                            } else { // 'TIME' selection
+                                // if is in waiting mode for this panel
+                                if (this.waitingScatterPanel == object.record){
+                                    // end of waiting mode
+                                    this.addParamMode = amdaModel.PlotPanel.ADD_PARAM_MODE[0];
+                                    this.waitingScatterPanel = null;				    
+                                }
+                                // set X title
+                                object.record.set('xTitle',object.value);
+				object.record.set('width',1);
+                            }
+                        }
+                    }
+
+                }
+            }
+        });
+         	 
+        var treeStore = Ext.create('Ext.data.TreeStore', {
+            model: 'amdaModel.PlotObject',
+            data : this.object,
+            proxy: {
+                type: 'memory',
+                reader: {
+                    type: 'plot'
+                }
+            }	 
+        });
+	
+       
+        this.plotTree = Ext.create('Ext.tree.Panel', {
+            store : treeStore,
+            flex: 3,
+            scroll: 'both',	   
+            selType: 'treemodel',
+            allowDeselect : true,
+            rootVisible: false,
+            viewConfig:{
+                plugins:{
+                    ptype:'treeviewdragdrop',
+                    ddGroup:'explorerTree',
+                    enableDrag:true,
+                    enableDrop:true,
+                    appendOnly : false,
+                    allowContainerDrops : true,
+                    containerScroll : true,
+                    isValidDropPoint : function (node, position, dragZone, e, data) 
+                    {       
+                                if (!node || !data.item) {
+                                    return false;
+                                }           	    
+                                        
+                                var view = this.view,
+                                targetNode = view.getRecord(node),
+                                draggedRecords = data.records,
+                                dataLength = draggedRecords.length,
+                                ln = draggedRecords.length,
+                                i, record;        		
+                        // No drop position, or dragged records: invalid drop point
+                        if (!(targetNode && position && dataLength)) {
+                            return false;
+                        }
+                                     
+                        // If the targetNode is within the folder we are dragging
+                        for (i = 0; i < ln; i++) {
+                            record = draggedRecords[i];
+                            if (record.isNode && record.contains(targetNode)) {
+                                return false;
+                            }
+                        }
+                        
+                        // Respect the allowDrop field on Tree nodes
+                        if (position === 'append' && targetNode.get('allowDrop') === false) {
+                            return false;
+                        }
+                        
+                        // If the target record is in the dragged dataset, then invalid drop
+                        if (Ext.Array.contains(draggedRecords, targetNode)) {
+                             return false;
+                        }
+                                 
+                        if (dataLength > 1)
+                        	return false;
+                        var draggedRecord = draggedRecords[0];
+                        
+                        return me.isValidToDrop(draggedRecord,targetNode,position);
+                        },
+                        onPlotContainerDrop : function(dd, e, data){
+                                if (data.records.length != 1)
+                        return false;
+                                return me.dropRecord(data.records[0],null,null);
+                        },
+                        onPlotNodeDrop : function(n, dd, e, data){
+                            if (data.records.length != 1)
+                            return false;
+                            return me.dropRecord(data.records[0],this.view.getRecord(n),this.getPosition(e,n));
+                        }, 
+                        onPlotContainerOver : function(dd, e, data) {
+                            if (data.records.length != 1)
+                                    return false;
+                            var draggedRecord = data.records[0];
+                            return me.isValidToDrop(draggedRecord,null,'append') ? this.dropAllowed : this.dropNotAllowed;
+                        },
+        			onViewRender : function(view) {
+        				var me = this;
+
+              			if (me.enableDrag) {
+                  			me.dragZone = Ext.create('Ext.tree.ViewDragZone', {
+                      			view: view,
+                      			ddGroup: me.dragGroup || me.ddGroup,
+                      			dragText: me.dragText,
+                      			repairHighlightColor: me.nodeHighlightColor,
+                      			repairHighlight: me.nodeHighlightOnRepair
+                  			});
+              			}
+
+              			if (me.enableDrop) {
+                  			me.dropZone = Ext.create('Ext.tree.ViewDropZone', {
+                      			view: view,
+                      			ddGroup: me.dropGroup || me.ddGroup,
+                      			allowContainerDrops: me.allowContainerDrops,
+                      			appendOnly: me.appendOnly,
+                      			allowParentInserts: me.allowParentInserts,
+                      			expandDelay: me.expandDelay,
+                      			dropHighlightColor: me.nodeHighlightColor,
+                      			dropHighlight: me.nodeHighlightOnDrop,
+                      			isValidDropPoint : me.isValidDropPoint,
+                      			onContainerDrop : me.onPlotContainerDrop,
+                      			onNodeDrop      : me.onPlotNodeDrop,
+                      			onContainerOver : me.onPlotContainerOver
+                  			});
+              			}
+        			}
+                }, 
+                toggleOnDblClick: false, 
+                stripeRows: false,
+                getRowClass: function(record, rowIndex){		
+                    return record.getRowClass();
+                }
+            },
+	    lines: false,
+            columns: this.getPlotTreeColumns(),
+            bodyBorder: true,
+            autoScroll: true,
+            dockedItems: [{
+                xtype: 'toolbar', 
+                items: [{
+                    iconCls: 'icon-add',
+                    text: 'Add Panel',
+                    scope: this,
+                    tooltip: 'add Panel to this Plot',
+                    handler: function(){                        
+                        // Create a new record instance
+                	    var recEmptyParam = this.addPanel();
+                	    if (recEmptyParam)
+                	    {
+                	    	var selModel = this.plotTree.getSelectionModel();
+                	    	selModel.select(recEmptyParam);
+                	    }
+                    }
+                }, {
+                    iconCls: 'icon-delete',
+                    text: 'Remove Panel',
+                    itemId: 'delete',
+                    tooltip: 'remove selected Panel from this Plot',
+                    scope: this,
+                    handler:  function(){
+                        // if there's a selectedRow (in tree)
+                        var selModel = this.plotTree.getSelectionModel();
+						if (selModel.hasSelection()) {
+						   var selectedRow = selModel.getSelection()[0];	
+					        if (selectedRow.get('leaf'))
+					    	   selectedRow = selectedRow.parentNode;
+						}
+                        if (selectedRow)                                            
+                        	this.removePanel(selectedRow);                      
+                    }
+                 }, '->', 
+		 {
+		    xtype : 'checkbox', boxLabel: 'AutoLayout&nbsp;<img amda_clicktip="autoLayout" style="vertical-align:bottom" src="js/resources/images/16x16/info_mini.png"',
+		    name: 'forcedlLayout', checked: false,
+		    scope: this,
+		    handler:  function(box, checked){ 
+		       this.forcedLayout = checked;		     
+		    } 	   
+		},'', {
+		    xtype : 'checkbox', boxLabel: 'AutoScale&nbsp;<img amda_clicktip="autoScale" style="vertical-align:bottom" src="js/resources/images/16x16/info_mini.png"', 		
+		    name: 'forcedlMulti', checked: false,
+		    scope: this,
+		    handler:  function(box, checked){ 
+		       this.forcedMulti = checked;
+		    }
+		  }		  
+	      ]
+            }	      	   	     
+	    ],
+            plugins: [ treeGridCellEditing,  {ptype: 'headertooltip'}, {ptype: 'paramEditorPlugin', pluginId: 'paramEditorPlugin'+this.id}]
+        });
+      
+        // this call is not needed - for documentation purposes only
+        this.plotTree.addEvents('edition', 'openParamEditor');
+ 	
+        // cell click actions : delete, edit, openPlug             
+	this.plotTree.on('cellclick', function(view, el, columnIndex, record){
+	    // param & panel arguments PLUGIN
+	    if ( (columnIndex == 9 && !record.isLeaf()) || 
+		  (columnIndex == 10 && record.isLeaf()) ) {	   		    		   	    			 
+		    this.plotTree.fireEvent('openParamEditor',record);
+	    }
+	    else if (columnIndex == 11 && record.isLeaf()) {
+	    	if (!record.get('yaxe')) record.set('yaxe',true);
+	    	else  record.set('yaxe', false);
+	    }	    	    
+		// param remover
+	    else if (columnIndex === 0) { 
+	    	// select the clicked record
+		//this.selectedRow = record;                         
+	    	var selModel = this.plotTree.getSelectionModel();
+		 
+	    	// if record is defined
+	    	if (record) {
+	    		var plugin = this.plotTree.getPlugin('paramEditorPlugin'+this.id);
+	    		// if plot parameter deletion
+	    		if (record.isLeaf()){
+	    			// get parent panel
+	    			var panelParent = record.parentNode;
+	    			// remove record
+	    			selModel.deselect(record);
+                        
+	    			//if args plugin is open and is connected to removed record : close plugin			
+	    			if (plugin && plugin.record && (plugin.record.get('id') == record.get('id'))) {			      
+	    				plugin.win.close();			   
+	    			} 
+	    			record.remove();
+			
+	    			// if parent panel has no child anymore
+	    			if (panelParent && !panelParent.hasChildNodes()){
+	    				// remove parent panel too  	
+	    				this.removePanel(panelParent);
+                    }                        
+                 } 
+                 // else (plot panel deletion)  
+                 else 
+                	 // if the panel to delete is not empty
+                	 this.removePanel(record);  
+            }
+        }
+        // otherwise EDITION
+        else {
+	  //select record to use in Scatter Reset
+	      if (columnIndex == 2) {
+		  this.selectedRow = record; 
+	       }
+	       this.plotTree.fireEvent('edition', view, record, columnIndex);
+	    }    
+        },this);
+	
+        //Important! we need to have here 5 different TimeSelectors!!! RadioGroup Manager - singleton, searching items by NAME!!!
+        this.timeSelector = new amdaUI.TimeSelectorUI( { id: 'plotTimeSelector' + config.id, flex: 1 } );
+	 
+	this.fieldName =  new Ext.form.field.Text({
+	    labelWidth: 90, 
+	    fieldLabel: 'Request Name',
+            allowBlank : false,
+	    name : 'name',
+	    validFlag: false,
+        validator : function() {
+        	return this.validFlag;
+        },
+        validateOnChange : false,
+	    validateOnBlur : false,
+            stripCharsRe: /(^\s+|\s+$)/g
+	});
+	
+	var orientation = [['landscape','LANDSCAPE'], ['portrait', 'PORTRAIT']];
+	var format = [['PNG','PNG'], ['PDF', 'PDF'], ['PS', 'PostScript']];
+	
+        this.formPanel = new Ext.form.Panel({
+	    region: 'center',
+	    buttonAlign: 'left',              
+            bodyStyle: { background : '#dfe8f6' },  
+            border: false,
+            trackResetOnLoad: true,  //reset to the last loaded record
+            layout: {type: 'vbox', align: 'stretch', 
+		      defaultMargins: {top:0, left:5, bottom:0, right:5}},    
+            items : [
+                this.plotTree,
+                {
+                    flex: 2,
+                    xtype: 'container',		     
+                    layout: {type: 'hbox', align: 'stretch',
+			     defaultMargins: {top:8, left:8, bottom:0, right:5}},		    
+                    items: [
+                        this.timeSelector,
+                        {                             
+                            xtype: 'container', flex: 1,
+			    defaults: {labelWidth: 90 },
+                            layout: {type: 'vbox', align: 'stretch'},
+                            items : [                                                                                                          
+				{
+				    xtype: 'textfield', 
+				    fieldLabel: 'Plot Title', 
+				    name: 'title',
+				    disabled: true
+				},
+				{ 
+				    xtype: 'numberfield',  
+				    fieldLabel: 'Char Size',
+				    allowBlank: false, 
+				    validateOnChange: false, validateOnBlur: false,
+				    name: 'charSize',				  
+				    minValue: 0.5,				   
+				    decimalPrecision: 1,
+				    step: 0.1
+				}, 
+				{                                    
+				    xtype: 'combo',                                    
+				    fieldLabel: 'Orientation',
+				    name: 'orientation',
+				    store: orientation,
+				    queryMode: 'local',
+				    editable: false                                      
+				}, 
+				{
+				    xtype: 'textfield',
+				    name: 'description', 
+				    xtype: 'textarea', 
+				    fieldLabel:'Description',
+				    height: 40
+				}
+			      ]
+			  },
+			  {   
+			    xtype: 'container', flex:1, 
+			    defaults: { labelWidth: 90 }, 
+			    layout: {type: 'vbox', align: 'stretch'},
+			    items: [                                    
+				{ 
+				    xtype: 'textfield',
+				    fieldLabel: 'Plot File Name',  
+				    name: 'outputName' 
+				},    
+				{ 
+				    xtype: 'numberfield',
+				    fieldLabel: 'Line Thickness',				
+				    minValue: 1,
+				    allowBlank: false,
+				    validateOnChange: false, validateOnBlur: false,
+				    name: 'thickness',				    
+				    step: 1
+				},
+				{                                   
+                                    xtype: 'combo',                                    
+                                    fieldLabel: 'File Format',
+				    name: 'format',
+			  	    store : format,
+				    queryMode: 'local',
+				    editable: false	
+				},
+				{
+				    xtype: 'numberfield',
+				    name: 'ppp', 
+				    step: 1000,
+				    fieldLabel:'Points per Plot',
+				    minValue : 1000,
+				    maxValue : 10000,
+				    value : 3000
+				    
+				},
+				{ xtype : 'component', flex: 0.1 },
+				this.fieldName
+				]
+			    }
+			  ]
+		}],
+            fbar:[
+                {   
+                    text: 'Plot',
+                    width: 75,
+                    scope : this,
+                    handler: function (button) {
+                        // update object with user's values with name field validation
+                        // if the return is true (object had been updated)
+                        if(this.updateObject()){                          
+                              this.doPlot();			      			     			   
+                        }
+                    }
+                },{   
+                    text: 'Get Data',
+                    width: 75,
+                    scope : this,
+                    handler: function () {
+                        // update object with user's values with name field validation
+                         // if the return is true (object had been updated)                        
+                         if(this.updateObject()){ 		 
+                          var downObject = amdaModel.DownloadNode.decodeObject(this.object);
+			  amdaModel.DownloadNode.set('object',Ext.create('amdaModel.Download',downObject));			 
+			  amdaModel.DownloadNode.editInModule(); 
+                        }
+                    }
+                },
+                {
+                    text: 'Reset',
+                    width: 75,
+                    scope : this,
+                    handler: function () { 
+                	this.formPanel.getForm().reset();
+		        this.plotTree.getRootNode().removeAll();
+			var plotModule = myDesktopApp.getLoadedModule(myDesktopApp.dynamicModules.plot.id);			
+			plotModule.createLinkedNode();
+			plotModule.createObject();					  
+			this.setObject(plotModule.linkedNode.get('object'));	     
+			plotModule.addLinkedNode(plotModule.linkedNode, this.id);			 
+                	}
+                },'->',
+                {
+                    text: 'Save Request',
+                    width: 80,
+                    scope : this,
+                    handler: function () {                        
+                        // update object with user's values with name field validation
+                        // if the return is true (object had been updated)
+                        if(this.updateObject()){
+                        	
+                        	var plotModule = myDesktopApp.getLoadedModule(myDesktopApp.dynamicModules.plot.id);	
+							if (!plotModule)
+								return;
+							var me = this;
+							plotModule.linkedNode.isValidName(this.fieldName.getValue(), function (res) {
+								if (!res)
+								{
+									me.fieldName.validFlag = 'Error during object validation';
+									myDesktopApp.errorMsg(me.fieldName.validFlag);
+									me.fieldName.validate();
+									return;
+								}
+								  
+								if (!res.valid)
+								{
+									if (res.error)
+									{
+										if (res.error.search('subtree') != -1) {  							
+											Ext.MessageBox.show({title:'Warning', 
+												msg: res.error+'<br/>Do you want to overwrite it?',
+												width: 300,
+												buttons: Ext.MessageBox.OKCANCEL, 
+												fn : me.overwriteProcess,
+												icon: Ext.MessageBox.WARNING,
+												scope : me
+											});
+											me.fieldName.validFlag = true;
+										}
+										else
+											me.fieldName.validFlag = res.error;
+									}
+									else
+									{
+										me.fieldName.validFlag = 'Invalid object name';
+										myDesktopApp.errorMsg(me.fieldName.validFlag);
+									}
+									me.fieldName.validate();
+									return;
+								}
+								  
+								me.fieldName.validFlag = true;
+								me.fieldName.validate();
+								me.saveProcess(false);
+							});                         
+                        }
+                    }
+                }
+            ]
+        });
+
+        var myConf = {
+            layout: 'border',
+            defaults: { layout: 'fit', border: false },
+            items: [
+                this.formPanel 
+            ],
+	    listeners: {
+	      scope : this,
+	      activate: function(comp) {   
+		    if (!this.object && this.id != 'plot1'){
+		      var plotModule = myDesktopApp.getLoadedModule(myDesktopApp.dynamicModules.plot.id);
+		      // open empty form	
+ 	      
+ 		           plotModule.createLinkedNode();		    
+                           plotModule.createObject();
+// add  linked node to the array of nodes and set object to UI (TabPlotUI)    							
+			  this.setObject(plotModule.linkedNode.get('object'));	     
+			  plotModule.addLinkedNode(plotModule.linkedNode, this.id);				    
+		      } 
+		},	  
+		click: {
+		      element: 'el',
+		      fn: function(e,t) {	 		 
+			  var me = t,
+				  text = me.getAttribute('amda_clicktip');
+			      if (text) {
+				    e.preventDefault();
+				    AmdaAction.getInfo({name : text}, function(res,e) {					    					   
+					  if (res.success) myDesktopApp.infoMsg(res.result);
+				    }); 
+			      }
+			}
+		}	      	 
+	      } 	     
+        };
+
+        Ext.apply (this , Ext.apply (arguments, myConf));               
+    }
+    
+});
+ 	  
+Ext.define( 'TreeGridCellEditor', {
+    extend: 'Ext.grid.plugin.CellEditing',
+    alias: 'editing.treegrideditor',
+    // initialization method of plugin
+    init: function(cmp) {  
+        var me = this;
+        me.hostCmp = cmp;
+        // on parent event
+        me.hostCmp.on({
+            // on edition event
+            edition : { 
+                delay: 50,
+                fn : function(view, record, colIndex){
+                    var selModel = me.hostCmp.getSelectionModel(),
+                      columnHeader = me.hostCmp.headerCt.getHeaderAtIndex(colIndex);                    
+                    // call the start edition method
+                    me.startEdit(record, columnHeader);
+                },
+                scope: me
+            }
+        });
+        me.callParent(arguments);
+    },
+    
+    /**
+     * Cancel any active editing.
+     */
+    cancelEdit: function() {
+        var me = this,
+        activeEd = me.getActiveEditor(),
+        viewEl = me.grid.getView().getEl(me.getActiveColumn());
+
+        me.setActiveEditor(null);
+        me.setActiveColumn(null);
+        me.setActiveRecord(null);
+        if (activeEd) {
+            activeEd.cancelEdit();
+            viewEl.focus();
+        }
+        // if an editor is active and has 'new Folder' as startValue
+        if (activeEd && activeEd.startValue===amdaModel.AmdaNode.NEW_DIR_NAME) {
+            var editedNode = this.hostCmp.getSelectionModel().selected.items[0];
+            // if there is a selected Node without computed id
+            if (editedNode && !editedNode.get('id')) {
+                // remove it
+                editedNode.remove(true);
+            }
+        }
+    },
+    
+    /**
+     * overwrite the initEditTriggers to disable edition on click/dblclick
+     * and to add custom 
+     */
+    initEditTriggers: function() {
+
+        var me = this,
+        view = me.view;
+        // enable Enter key and Esc Key
+        view.on('render', function() {
+            me.keyNav = Ext.create('Ext.util.KeyNav', view.el, {
+                enter: me.onEnterKey,
+                esc: me.onEscKey,
+                scope: me
+            });
+        }, me, { single: true });
+    },
+
+    /**
+     * @private
+     * Collects all information necessary for any subclasses to perform their editing functions.
+     * @param record
+     * @param columnHeader
+     * @returns {Object} The editing context based upon the passed record and column
+     */
+    getStandardEditingContext: function(record, columnHeader) {
+        var me = this,
+            grid = me.grid,
+            store = grid.store,
+            rowIdx,
+            colIdx,
+            view = grid.getView(),
+            value;
+
+        // If they'd passed numeric row, column indices, look them up.
+        if (Ext.isNumber(record)) {
+            rowIdx = record;
+            record = store.getAt(rowIdx);
+        } else {
+            rowIdx = store.indexOf(record);
+        }
+        if (Ext.isNumber(columnHeader)) {
+            colIdx = columnHeader;
+            columnHeader = grid.headerCt.getHeaderAtIndex(colIdx);
+        } else {
+            colIdx = columnHeader.getIndex();
+        }
+
+        value = record.get(columnHeader.dataIndex);
+        return {
+            grid: grid,
+            record: record,
+            field: columnHeader.dataIndex,
+            value: value,
+            row: view.getNode(rowIdx),
+            column: columnHeader,
+            rowIdx: rowIdx,
+            colIdx: colIdx,
+	    view: columnHeader.getOwnerHeaderCt().view
+        };
+    },
+    
+    //overwrite the getEditing context because we do not need the rowId
+    getEditingContext: function(record, columnHeader) {
+        var me = this,
+        grid = me.grid,
+        store = grid.store,
+        colIdx,
+        view = grid.getView(),
+        value;
+
+        // getting colIdx and real columnHeader
+        if (Ext.isNumber(columnHeader)) {
+            colIdx = columnHeader;
+            columnHeader = grid.headerCt.getHeaderAtIndex(colIdx);
+        } else {
+            colIdx = columnHeader.getIndex();
+        }
+        // getting current value
+        value = record.get(columnHeader.dataIndex);
+
+        // return editing context
+        return {
+            grid: grid,
+            record: record,
+            field: columnHeader.dataIndex,
+            value: value,
+            column: columnHeader,
+            colIdx: colIdx,
+	    view: columnHeader.getOwnerHeaderCt().view
+        };
+    }
+});
diff --git a/js/app/views/RemoteSearchPlugin.js b/js/app/views/RemoteSearchPlugin.js
new file mode 100644
index 0000000..cf851ff
--- /dev/null
+++ b/js/app/views/RemoteSearchPlugin.js
@@ -0,0 +1,114 @@
+/**
+  * Project      :  AMDA-NG
+  * Name         : RemoteSearchPlug.js
+  * @plugin 	  amdaUI.InteractiveIntervalPlug
+  * @extends 	  Ext.AbstractPlugin 
+  * @ptype 	 	  interactiveIntervalPlugin
+  * @brief		 Plot interactive session UI (View)
+  * @author Myriam
+  * @version $Id: RemoteSearchPlugin.js 1130 2012-12-18 16:45:54Z elena $
+  ********************************************************************************
+  *    FT Id     :   Date   : Name - Description
+  *******************************************************************************
+  *  :          
+  */
+
+
+Ext.define('amdaUI.RemoteSearchPlugin', {
+	extend: 'Ext.AbstractPlugin',
+	alias: 'plugin.remoteSearchPlugin',
+	 	
+	moduleId : 'up-win',
+ 
+	win : null,
+	
+ 	constructor: function(config) { 	  
+        Ext.apply(this, config);  
+        this.callParent(arguments);
+	},
+ 	
+	
+	init: function(cmp) {
+	    this.hostCmp = cmp;   
+	    this.hostCmp.on({
+		open: this.onOpen, 	
+		scope: this});
+	},
+		 	
+	onDestroy : function() {
+	     this.win = null;
+	},
+			
+	onOpen: function(url) {
+	  //TODO just reloa dtree
+	        if (this.win) this.win.destroy();
+	   
+		if (!this.win) {
+		  this.win = new Ext.Window({			
+			  id: 'remoteSearch-win',  
+			  width: 310, 
+			  height: 500,			 	 
+			  title: url,
+			  layout: 'fit',
+			  constrain: true,
+			  ghost: false,			 
+			  items: this.getTree(url),
+			  listeners: {
+			      scope: this,			    
+			      beforeclose: function(){			      				 
+	//			  Ext.PluginManager.unregister(this);
+			      }
+			  },
+			  getConstrainVector: function(constrainTo){
+					var me = this;
+			        if (me.constrain || me.constrainHeader) {
+			            constrainTo = constrainTo || (me.floatParent && me.floatParent.getTargetEl()) || me.container || me.el.getScopeParent();
+			            return (me.constrainHeader ? me.header.el : me.el).getConstrainVector(constrainTo);
+			        }
+			    }
+		  });
+		  this.win.on('destroy', this.onDestroy, this);
+		
+		//  Ext.PluginManager.register(this);		 
+	
+		  this.win.show();		 		 		 		 
+	  }
+	},
+	
+	getTree : function(url) {
+	  
+	  var store = Ext.create('Ext.data.TreeStore', {
+	  model: 'amdaModel.AmdaNode',		     
+	  root: {			  			  
+	      text: url,	   
+	      nodeType : 'url',
+	      expanded: true
+	  } ,
+	  listeners: {
+	    scope : this,
+	    beforeload: function(store, operation){
+	      store.proxy.extraParams = {
+		   nodeType: 'url',
+		   baseId: url
+	      }}	     
+	    }
+	  
+	  });
+	  
+	  var tree = Ext.create('Ext.tree.Panel', {
+	    store: store,
+	    listeners : {
+	        scope : this,
+		itemdblclick: function(view, record, item, index, event){
+                    event.stopEvent();
+		    var form = this.hostCmp.down('form').next().getForm();
+		    form.getFields().getAt(1).setValue(record.internalId);	// internalId ??			
+		    this.win.destroy();
+		}
+	      }
+	    });
+	  
+	  return tree;	     	  	  
+	}
+		
+});
\ No newline at end of file
diff --git a/js/app/views/ResourcesMgrUI.js b/js/app/views/ResourcesMgrUI.js
new file mode 100755
index 0000000..5d4656e
--- /dev/null
+++ b/js/app/views/ResourcesMgrUI.js
@@ -0,0 +1,343 @@
+Ext.define('amdaUI.ResourcesMgrUI', {
+	extend: 'Ext.container.Container',
+	alias: 'widget.panelResrcMgr',
+	
+	requires: [
+    ],
+	
+    constructor: function(config) {
+	    
+	    this.init(config);
+	    this.callParent(arguments);
+    },
+    
+    /**
+     * save method called by Save button
+     */
+    saveProcess : function(renamed){
+        
+    },
+
+    /**
+     * overwrite method called by Save button
+     */
+    overwriteProcess : function(btn){
+         if (btn == 'cancel') {
+             return;
+         }
+         this.saveProcess(true);        
+    },
+    
+	init: function(config) {
+	    
+	    // The data store containing the list of states
+	    var categories = Ext.create('Ext.data.Store', {
+	        fields: ['abbr', 'name'],
+	        data : [
+                {"abbr":"AR", "name":"All Resources"},
+	            {"abbr":"LD", "name":"Local Data"},
+	            {"abbr":"RD", "name":"Remote Data"},
+	            {"abbr":"DP", "name":"Derived Parameters"},
+	            {"abbr":"TT", "name":"Time Tables"},
+	            {"abbr":"SC", "name":"Search Conditions"},
+	            {"abbr":"RQ", "name":"Requests"},
+	            {"abbr":"CA", "name":"Catalogs"}
+	            //...
+	        ]
+	    });
+	    
+	  //we want to setup a model and store instead of using dataUrl
+//	    Ext.define('Task', {
+//	        extend: 'Ext.data.Model',
+//	        fields: [
+//	            {name: 'task',     type: 'string'},
+//	            {name: 'user',     type: 'string'},
+//	            {name: 'duration', type: 'string'}
+//	        ]
+//	    });
+
+//	    var store = Ext.create('Ext.data.TreeStore', {
+//	        model: 'Task',
+//	        proxy: {
+//	            type: 'ajax',
+//	            //the store will get the content from the .json file
+//	            url: 'treegrid.json'
+//	        },
+//	        folderSort: true
+//	    });
+	    
+	    var storeMyWs = Ext.create('Ext.data.TreeStore', {
+            root: {
+                expanded: true,
+                nodeType : 'resources'             
+             },
+            model: 'amdaModel.AmdaNode',
+            listeners: {
+                beforeload: function(store, operation){
+                    store.proxy.extraParams = {
+                        nodeType: operation.node.data.nodeType
+                    };
+                }
+            }
+
+        });
+	    
+	    var storeResrc = Ext.create('Ext.data.TreeStore', {
+            root: {
+                expanded: true,
+                nodeType : 'resources'
+             },
+            model: 'amdaModel.AmdaNode',
+            listeners: {
+                beforeload: function(store, operation){
+                    store.proxy.extraParams = {
+                        nodeType: operation.node.data.nodeType
+                    };
+                }
+            }
+
+        });
+
+	    //Ext.ux.tree.TreeGrid is no longer a Ux. You can simply use a tree.TreePanel
+	    var resrcTree = Ext.create('Ext.tree.Panel', {
+	        height: '90%',
+            hideHeaders: true,
+	        useArrows: true,
+	        rootVisible: false,
+	        store: storeResrc,
+	        multiSelect: true,
+            dockedItems: [{
+                xtype: 'toolbar',
+                dock: 'top',
+                layout: 'fit',
+                padding : '0 5 0 0',
+                items: [{
+                    xtype: 'textfield',
+                    labelWidth: 50,
+                    fieldLabel: 'filter'
+                }]
+            }],
+            headerHidden: true,
+//	        singleExpand: true,
+	        //the 'columns' property is now 'headers'
+	        columns: [{
+	            xtype: 'treecolumn', //this is so we know which column will show the tree
+	            text: 'All Resources',
+	            flex: 2,
+	            sortable: false,
+	            menuDisabled: true,
+	            dataIndex: 'text',
+	            heigth:2
+	        },{
+//	            text: 'Assigned To',
+	            flex: 1,
+	            hidden: true,
+	            dataIndex: 'user',
+                sortable: false,
+                menuDisabled: true
+	        }]
+	    });
+	    
+	    var myTree = Ext.create('Ext.tree.Panel', {
+//          title: 'Core Team Projects',
+//          width: 500,
+            height: '90%',
+            hideHeaders: true,
+            useArrows: true,
+            rootVisible: false,
+            store: storeMyWs,
+            multiSelect: true,
+            dockedItems: [{
+                xtype: 'toolbar',
+                dock: 'top',
+                layout: 'fit',
+                padding : '0 5 0 0',
+                items: [{
+                    xtype: 'textfield',
+                    labelWidth: 50,
+                    fieldLabel: 'filter'
+                }]
+            }],
+//          singleExpand: true,
+            //the 'columns' property is now 'headers'
+            columns: [{
+                xtype: 'treecolumn', //this is so we know which column will show the tree
+                text: 'All Resources',
+                flex: 2,
+                sortable: false,
+                menuDisabled: true,
+                dataIndex: 'text',
+                heigth:2
+            },{
+                text: 'Assigned To',
+                flex: 1,
+                hidden: true,
+                dataIndex: 'user',
+                sortable: false,
+                menuDisabled: true
+            }]
+        });
+	    
+//	    this.MyWsTree = null;//new Ext.form.FieldSet({});
+//	    
+//	    this.RsrcTree = null;//FieldSet = new Ext.form.FieldSet({});
+//	    
+//		this.formPanel = new Ext.form.Panel({});
+				
+		var myConf = {
+//				id : config.id,
+				border: false,
+				layout: {
+                    type:'vbox',
+                    padding:'5',
+                    align:'center'
+                },
+                defaults:{margins:'0 0 5 0'},
+				items: [
+			        // category selection
+			        {
+			            layout: {
+                            type: 'hbox',
+                            padding:'5',
+                            align:'top'
+                        },
+                        defaults:{margins:'0 5 0 0'},
+                        xtype: 'container',
+			            plain: true,
+				        flex: 1,
+				        width: '95%',
+				        items:[
+			               {
+			                   xtype: 'container',
+			                   flex: 1
+		                   },{
+		                       xtype: 'combo',
+		                       fieldLabel: 'Resources Categories',
+		                       labelWidth: 130,
+		                       width: 280,
+		                       store: categories,
+		                       queryMode: 'local',
+		                       displayField: 'name',
+		                       valueField: 'abbr'
+		                   },{
+		                       xtype: 'container',
+	                           flex: 1
+		                   }
+	                   ]
+			        },
+			        // selection panel
+			        {
+			            xtype: 'container',
+			            flex: 5,
+			            width: '95%',
+			            layout: {
+                            type: 'hbox',
+                            padding:'5',
+                            align:'stretch'
+                        },
+                        defaults:{margins:'0 5 0 0'},
+			            items: [
+		                    { // fieldset Resources
+		                        xtype: 'fieldset',
+		                        flex: 3,
+                                title: 'Resources',
+                                items:[
+//                                    resrcTree
+                                    {
+
+                                        layout: 'border',
+                                        title: 'resources',
+                                        defaults: {layout: 'fit'},
+                                        split: true,
+                                        items: [
+                                            {
+                                                region: 'north',
+                                                xtype: 'form',
+                                                title : 'filtering parameters',
+                                                collapsible: true,
+                                                collapsed: true,
+//                                                layout: 'fit',
+//                                                  padding : '0 5 0 0',
+                                                items: [{
+                                                    xtype: 'textfield',
+                                                    labelWidth: 50,
+                                                    fieldLabel: 'filter'
+                                                }]//,
+//                                                listeners: {
+//                                                    expand: function(a,b,c,d){
+//                                                        alert('expand');
+//                                                        a.ownerCt.doLayout();
+//                                                    },
+////                                                      beforecollapse: function(a,b,c,d){
+////                                                      alert('beforecollapse');
+////                                                      },
+//                                                    collapse: function(a,b,c,d){
+//                                                        alert('collapse');
+//                                                    }
+//                                                }
+                                            },
+                                            {
+                                                region: 'center',
+                                                title:'resources',
+                                                items: [
+                                                    resrcTree
+                                                ]
+                                            }
+                                        ]
+                                    }
+                                ]
+		                    },
+		                    { // container of action buttons
+		                        xtype: 'container',
+//                                flex: 1,
+		                        width: 42,
+		                        layout: {
+		                            type:'vbox',
+		                            padding:'5',
+		                            align:'center'
+		                        },
+                                defaults:{margins:'0 0 5 0'},
+		                        items: [
+	                                { 
+	                                    xtype: 'container',
+	                                    flex: 1
+                                    },
+	                                {// add to my Ws
+	                                    xtype: 'button',
+//	                                    text: 'Droite',
+//	                                    iconCls: 'icon-addRsrc',
+	                                    icon: 'js/resources/images/32x32/1309360076_misc_22.png',
+	                                    width: 32,
+	                                    heigth: 32,
+	                                    tooltip: 'Add to my Ws',
+//	                                    width: 50
+		                            },{// remove from my Ws
+		                                xtype: 'button',
+                                        width: 32,
+                                        heigth: 32,
+//		                                text: 'Gauche',
+//		                                iconCls: 'icon-removeRsrc',
+                                        icon: 'js/resources/images/32x32/1309360153_misc_21.png',
+                                        tooltip: 'remove from my Ws',
+//                                        width: 50
+		                            },
+                                    { 
+                                        xtype: 'container',
+                                        flex: 1
+                                    }
+	                            ]
+		                    },
+		                    { // fieldset My Workspace
+                                xtype: 'fieldset',
+                                flex: 3,
+                                title: 'My Workspace',
+                                items:[myTree]
+		                    }
+	                    ]
+			        }
+		        ]
+			};
+	              
+			Ext.apply (this , Ext.apply (arguments, myConf));
+	}
+});
diff --git a/js/app/views/ResultUI.js b/js/app/views/ResultUI.js
new file mode 100644
index 0000000..9e050e6
--- /dev/null
+++ b/js/app/views/ResultUI.js
@@ -0,0 +1,85 @@
+/**
+ * Project   : AMDA-NG
+ * Name      : ResultUI.js
+ * @class 	 amdaUI.ResultUI
+ * @extends  Ext. 
+ * @brief	 Result  Module UI definition (View)
+ * @author 	  
+ * @version  $Id: ResultUI.js 1052 2012-07-20 14:21:37Z elena $
+ ********************************************************************************
+ *    FT Id     :   Date   : Name - Description
+ *******************************************************************************
+ *              
+ */
+
+Ext.define('amdaUI.ResultUI', {
+    extend: 'Ext.container.Container',
+    alias: 'widget.panelResult',
+    
+    requires: [
+        'amdaUI.TabResultUI'
+    ],
+
+    constructor: function(config) {
+        this.init(config);
+        this.callParent(arguments);   
+	
+    },
+    
+    getTabResult: function(nodeType) {
+      var tabId = 'tab-'+nodeType;      
+      return this.tabPanel.getComponent(tabId);
+    },
+    
+    setObject: function(obj){},
+    
+    setResult: function(linkedNode){
+        var configResult = {nodeType: linkedNode.get('jobType')}; 
+        var panelResult = this.getTabResult(linkedNode.get('jobType'));
+	
+	if (!panelResult) {
+	    // create the plot Tab Result Panel	    
+	     panelResult = Ext.create('widget.tabResult',configResult);
+	    	     
+	    // add it
+	    this.tabPanel.add(panelResult);	  	      
+	} 
+	   // focus on it
+	    this.tabPanel.setActiveTab(panelResult);
+	    var format = linkedNode.get('object').get('format');
+	    if (!format) format = 'unknown';	  
+	    var compression = linkedNode.get('object').get('compression');	     
+	    if (!compression) compression = 'unknown';	
+	    var plotTab = linkedNode.get('tabId');
+	    if (!plotTab) plotTab = 'unknown';
+	  
+//TODO args as object ???	
+	    panelResult.addResult(
+	    		linkedNode.get('text'),
+	    		linkedNode.get('object').get('resultId'),
+	    		linkedNode.get('object').get('folderId'),
+	    		plotTab,
+	    		compression.toLowerCase(),
+	    		format.toLowerCase(),
+	    		linkedNode.get('id'));
+    },
+    
+    init : function(config)	{
+
+        this.tabPanel = Ext.create('Ext.tab.Panel',{	   
+	    layout: { type :'vbox' },        
+            activeTab: 0
+        });
+	 
+	
+        var myConf = {
+            layout: 'fit',   
+            items: [                 
+                     this.tabPanel                        
+            ]
+        };
+
+        Ext.apply (this , Ext.apply (arguments, myConf));	    	    
+    }
+    
+});
diff --git a/js/app/views/SampToolBarUI.js b/js/app/views/SampToolBarUI.js
new file mode 100644
index 0000000..816198a
--- /dev/null
+++ b/js/app/views/SampToolBarUI.js
@@ -0,0 +1,79 @@
+/**
+ * Project   : AMDA-NG
+ * Name      : SampToolBarUI.js
+ * @class   amdaUI.SampToolBarUI
+ * @extends Ext.toolbar.Toolbar
+ * @brief   Samp toolbar to show connection status (on the taskbar) (View)
+ * @author  Benjamin RENARD
+ * @version $Id: SampToolBarUI.js 1088 2012-09-18 13:06:08Z benjamin $
+ ******************************************************************************
+ *    FT Id     :   Date   : Name - Description
+ ******************************************************************************
+ *  :           :23/04/2012: BRE  - file creation
+ */
+
+Ext.define ('amdaUI.SampToolBarUI',{
+	extend: 'Ext.toolbar.Toolbar',
+	alias: 'widget.sampToolBar',
+	
+	constructor: function(config) {
+		this.init(config);
+		this.callParent(arguments);
+	},
+	
+	onSwitchConnect    : Ext.emptyFn,
+	
+	updateStatus : function(isConnected)
+	{
+		var sampButton = this.items.items[1];
+		sampButton.setIconCls(isConnected ? 'icon-connected' : 'icon-disconnected');
+	},
+	
+	updateClients : function(clientsStore)
+	{
+		for (var i = this.items.length-1; i >= 2; i--)
+		  this.remove(this.items.items[i].id);
+		
+		for (var i = 0; i < clientsStore.count(); i++)
+			this.add({ xtype: 'box', autoEl: { tag: 'img', src: clientsStore.getAt(i).get('iconUrl'), width: 16, height : 16}});
+		
+		this.width = 32 + clientsStore.count()*18;
+		
+		this.doLayout();
+		
+	},
+	
+	getSampItems : function()
+	{
+		var me = this;
+		return [
+                '-',
+                {
+                	name: 'SAMP connection', iconCls: 'icon-disconnected',
+                	tooltip: { text: 'SAMP connection', align: 'bl-tl' },
+                	overflowText: 'SAMP connection',
+                	iconCls: 'icon-disconnected',
+                	scope: this,
+                	handler : function(obj, e) {
+                		e.stopEvent();
+                		if (me.onSwitchConnect)
+                			me.onSwitchConnect();
+                	}
+                }
+        ];
+	},
+		
+	init : function(config) {
+            
+	    	var me = this;
+	    	
+	    	this.onSwitchConnect = config.onSwitchConnect;
+	    	
+	    	var myConf = {
+	    			width : 32,
+	    	        items: me.getSampItems()
+	        };
+
+	        Ext.apply (this , Ext.apply (arguments, myConf));  
+		}
+});
\ No newline at end of file
diff --git a/js/app/views/SearchParamEditorPlugin.js b/js/app/views/SearchParamEditorPlugin.js
new file mode 100644
index 0000000..894cd2b
--- /dev/null
+++ b/js/app/views/SearchParamEditorPlugin.js
@@ -0,0 +1,248 @@
+/**
+  * Project      :  AMDA-NG
+  * Name         : searchParamEditorPlugin.js
+  * @plugin 	  amdaUI.ParamEditorPlugin
+  * @extends 	  Ext.util.Observable 
+  * @ptype 	 searchParamEditorPlugin	  
+  * @version $Id: SearchParamEditorPlugin.js 2850 2015-03-31 09:51:58Z elena $      
+  */
+
+
+Ext.define('amdaUI.SearchParamEditorPlugin', {
+	extend: 'Ext.util.Observable',
+	alias: 'plugin.searchParamEditorPlugin',
+	
+	requires : [
+	   'amdaModel.ArgGroups'
+	],
+	
+	win: null,
+	
+	confCombo : { width: 100, 
+		      labelAlign: 'top',
+		      margin: '5 10 0 0',								      
+		      queryMode: 'local',
+		      editable: false, 						 
+		      displayField: 'value' 
+	},
+	
+	confCombo1 : { width: 100, 
+		      labelAlign: 'top',
+		      margin: '5 10 0 0',								      
+		      queryMode: 'local',
+		      editable: false, 						 
+		      displayField: 'value',
+		      valueField: 'arg'
+	},
+	
+	confField : { width: 100, 
+		      labelAlign: 'top',
+		      allowDecimals : false,
+		      hideTrigger: true,
+		      margin : '5 10 0 0'
+	},
+	
+	configFS : {layout:'hbox', height: 70},
+	
+	confCB : {boxLabel: 'Average', margin: '5 10 0 0'},	
+	
+	init: function(cmp) {	 
+	    this.hostCmp = cmp;	   
+	    this.hostCmp.on('openParamEditor', this.onOpen, this);	   
+	},
+	 
+	
+	apply: function() { 
+            var args = this.form.getForm().getValues();	
+            // if component - insert before brackets                
+            var bracketPos = this.paramId.indexOf("(");              
+            if (bracketPos > 0) {
+                if (args.argMax) 
+                        this.hostCmp.addParam(Ext.String.insert(this.paramId, '_' +args.argMin +'_'+args.argMax, bracketPos), true);                       
+                else 
+                        this.hostCmp.addParam(Ext.String.insert(this.paramId, '_' +args.argMin, bracketPos), true);                        
+                    
+            }
+            else {    // TODO check number of args	; here 2 maximum 
+                if (args.argMax) {
+                        this.hostCmp.addParam(this.paramId + '_' +args.argMin +'_'+args.argMax, true);                    
+                }
+                else {
+                    if (args.argMin == 'all') {
+                    alert('Select channel, pls : ALL not implemeted yet');
+                    return false;
+                    }
+                    // string value
+                    if (isNaN(args.argMin)) {
+                        this.hostCmp.addParam(this.paramId + '_' +args.argMin, true);
+                    }
+                    // Energy channel
+                    else {
+                        arg = args.argMin - 1;
+                        //TODO this is temporary!!!
+                        if (this.paramId.substr(this.paramId.length-2, 2) == '_E') this.paramId = this.paramId.substr(0,this.paramId.length-2);
+                        this.hostCmp.addParam(this.paramId + '(' +arg + ')', true);
+                    }
+                }
+            }
+	 
+	  this.win.close();
+	}, 
+	
+	reset: function() {
+	    this.form.getForm().reset();
+	}, 
+	
+	onOpen: function(id) {
+	        if (this.win) this.win.close();			 
+		this.paramId = id;
+		this.win = new Ext.Window({			
+			id: 'searchparameditor-win', 
+			width: 280, 
+			height: 150,
+			x: 0, y: 0,
+			baseCls:'x-panel',	 
+			title: 'Select Arguments for ' + this.paramId,
+			layout: 'fit',
+			constrain: true,
+			ghost: false,
+			renderTo: this.hostCmp.ownerCt.getId(),
+			items: this.getFormConfig(),
+			listeners: {
+			    scope: this,			    
+			    beforeclose: function(){			      			     
+				Ext.PluginManager.unregister(this);
+			    } 
+			},
+			getConstrainVector: function(constrainTo){
+				var me = this;
+		        if (me.constrain || me.constrainHeader) {
+		            constrainTo = constrainTo || (me.floatParent && me.floatParent.getTargetEl()) || me.container || me.el.getScopeParent();
+		            return (me.constrainHeader ? me.header.el : me.el).getConstrainVector(constrainTo);
+		        }
+		    }
+		});
+	//	this.hostCmp.ownerCt.add(this.win); 
+		this.win.show()
+                Ext.PluginManager.register(this);		
+	 	this.win.setPosition(0,0);		 
+	},
+	
+	getFormConfig: function(){
+	  
+	   this.form = new Ext.form.Panel( {
+	    	frame: true, buttonAlign: 'left', autoScroll: true,  
+	    	layout: { type: 'vbox', align : 'stretch', autoSize: true},
+		 fbar: [
+		  {
+		      text: 'Apply',
+		      scope : this,
+		      handler: this.apply
+		  },
+		   {
+		      text: 'Reset',
+		      scope : this,		       
+		      handler: this.reset 
+		   }
+		  ]
+		});
+	      
+	   // Get parameter arguments from Server
+	     
+		var argStore = Ext.create('Ext.data.Store',{model: 'amdaModel.ArgGroups'});
+		    //is sent to server to find parameter XML description
+		    argStore.getProxy().extraParams.paramID = this.paramId;
+		    argStore.getProxy().extraParams.application = 'search';
+		    
+		    argStore.load({
+		      scope   : this,
+		      callback: function(records, operation, success) {			  
+			  if (success && records[0].get('group') != 'nok') {
+			      this.simpleGroup = false;
+			      
+			      argStore.each(function(grp){				 				 
+				  var isMulti = false;
+				  var args = grp.args();
+				  var units = grp.get('units');	
+				 
+				  if (grp.get('groupE') || grp.get('groupEmulti')) {
+				    var argsN = args.count();
+				    var argMin  = args.first();
+				    var argMax = args.getAt(argsN-1);
+				  
+				    var title = grp.get('groupE') || grp.get('groupEmulti');
+				    if (grp.get('groupEmulti'))  isMulti = true;
+					    
+				    var fieldset = new Ext.form.FieldSet(this.configFS);
+				    var suffix = 'Min';
+				    var argValue = argMin;
+				    
+				    for (var i = 0; i < 2; i++) {
+				          var label = title + suffix;				  
+					  var fieldlabel = label + ' ' +units;
+					  var name = 'arg' +  suffix;
+					  
+					  if (isMulti){
+						var config = {name: name, fieldLabel: fieldlabel, minValue: argMin.get('value'), maxValue: argMax.get('value'), value: argValue.get('value')};					  
+						Ext.applyIf(config, this.confField);				    
+						var combo = new Ext.form.field.Number(config); 
+					  }
+					  else {
+						var config = {name: name, fieldLabel: fieldlabel, store: args, value: argValue};					  
+						Ext.applyIf(config, this.confCombo);				    
+						var combo = new Ext.form.field.ComboBox(config);				  
+					  }
+					  fieldset.add(combo);
+					  
+					  var suffix = 'Max';   
+					  argValue = argMax;
+				    } 
+                        // average checkbox				    
+			//	    var config = {name: title + 'CB'};
+			//	    Ext.applyIf(config, this.confCB);
+			//	    var checkBox = new Ext.form.field.Checkbox(config);
+			//	    fieldset.add(checkBox);				   	
+				    this.form.add(fieldset);				  
+				  }   
+				  else { 
+                                     
+				      var title =  grp.get('group');
+				      var suffix =  this.simpleGroup ? 'Max' : 'Min';
+				      if (title) {
+					var name = 'arg' +  suffix;
+					title +=  ' ' + units; 
+                                        
+                                        var config = {name: name,  fieldLabel: title, store: args, value: args.first()};
+                                      
+                                        if (grp.get('group') == 'ClockAngle') {                                         
+                                            Ext.applyIf(config, this.confField);
+                                            var newField = new Ext.form.field.Number(config);         
+                                        }
+					else {
+                                            Ext.applyIf(config, this.confCombo1);	
+                                            var newField = new Ext.form.field.ComboBox(config);
+                                        } 
+                                        
+                                        if (!this.simpleGroup) this.fieldsetSimple = new Ext.form.FieldSet(this.configFS);	
+                                            this.simpleGroup = true;
+                                            this.fieldsetSimple.add(newField);				    
+                                        }					         
+				  }
+			      }, this);
+			      if (this.simpleGroup) this.form.add(this.fieldsetSimple);
+			  }
+			  
+			  else {
+      //TODO process errors		      
+			  }
+		      }
+		    });
+	
+	    return this.form;
+	}    
+		
+});
+		    
+		    
+		    
+		    
\ No newline at end of file
diff --git a/js/app/views/SearchUI.js b/js/app/views/SearchUI.js
new file mode 100755
index 0000000..5aff84c
--- /dev/null
+++ b/js/app/views/SearchUI.js
@@ -0,0 +1,522 @@
+/**
+ * Project   : AMDA-NG
+ * Name      : SearchUI.js
+ * @class 	 amdaUI.SearchUI
+ * @extends      Ext.container.Container 
+ * @brief    Search Module UI definition (View)
+ * @author CDA
+ * @version $Id: SearchUI.js 2467 2014-07-10 16:06:26Z myriam $  
+ */
+
+Ext.define('amdaUI.SearchUI', {
+	extend: 'Ext.container.Container',
+	alias: 'widget.panelSearch',
+	
+	requires: [
+	 	'amdaUI.CalculatorUI',
+	 	'amdaUI.TimeSelectorUI',
+	 	'extensions.SelectableTextArea',
+		'amdaUI.SearchParamEditorPlugin'	 		
+	],    
+ 
+	constructor: function(config) {	
+          
+	this.init(config);
+	this.callParent(arguments);	
+        // load object into view    
+	 this.loadObject();
+	},
+
+	addTT : function(newTTName,newTTid){
+	this.timeSelector.addTT(newTTName,newTTid);
+	},
+	
+        addTTs : function(TTarray) {
+        // set TTTab	    
+            this.timeSelector.setTTTab(TTarray);
+        },
+               
+        addParam : function(newParamName, isLeaf) {
+            if (isLeaf){
+                var selection = this.constructionField.getSelection();
+                this.constructionField.setValue(selection.beforeText + newParamName + selection.afterText);
+                this.constructionField.focus();
+                this.constructionField.setCaretPosition(this.constructionField.getValue().length);  
+            }
+        },
+        
+       /**
+         * Set Start-Stop from parameter info (Local & MyData)
+         */ 
+        setTimeFromData : function(obj) {
+                                                                  
+            var dateStart = new Date(obj.start.replace(/[T|Z]/g,' ').replace(/\-/g,'\/')); 
+            var dateStop = new Date(obj.stop.replace(/[T|Z]/g,' ').replace(/\-/g,'\/')); 
+            
+            this.down('form').getForm().setValues({ startDate : dateStart, stopDate : dateStop });
+        },
+        
+        setObject : function(obj) {             
+            this.object = obj;  
+            this.loadObject();
+        },
+	
+	/**
+	 * update this.object from form
+	 */
+	updateObject : function(){    
+	// get the basic form
+	var basicForm = this.formPanel.getForm();
+	// get the timeSource selected
+	var timeSource = basicForm.findField('timesrc_'+this.timeSelector.id).getGroupValue();	    
+	var updateStatus = true;
+
+	  var fieldsWithoutName = basicForm.getFields().items;
+	  Ext.Array.each(fieldsWithoutName, function(item, index,allItems){
+	      if(item !== this.fieldName) { 		     
+		   if (!item.isValid()) {
+    		  if ((timeSource === amdaModel.AmdaTimeObject.inputTimeSrc[0]) &&
+       			   ((item.name == 'startDate') || (item.name == 'stopDate') || (item.name == 'duration'))) {
+       			  	updateStatus = true;
+       		  }
+       		  else {
+       			// set update isn't allowed
+                     updateStatus = false;
+                     return false;
+       		  }       
+		   }
+	      }
+	  }, this);
+
+	  if (timeSource === amdaModel.AmdaTimeObject.inputTimeSrc[0] // timeSource  'TimeTable'
+		    && this.timeSelector.TTGrid.getStore().count() == 0) {
+
+		  Ext.Msg.show({
+		      title: 'Warning', msg: 'You chose Time Selection `by TimeTable` but no timeTable was added!'
+			  +'<br>You must add one or choose Time Selection `by Interval`', 
+		      icon: Ext.MessageBox.WARNING, buttons: Ext.Msg.OK
+		  }); 
+		  updateStatus = false;    
+	  }
+	  // if the update is allowed
+	  if (updateStatus) {
+	  /// real object update
+	  // update TimeTable object with the content of form
+	    basicForm.updateRecord(this.object);
+	    this.object.set('timesrc', timeSource);
+	    // set valid intervals into TimeTable object
+	    if (timeSource === amdaModel.AmdaTimeObject.inputTimeSrc[0]) {	      
+		  this.object.set('timeTables',this.timeSelector.TTGrid.getStore().data.items);
+	    }
+	  }    
+	  // return the update status
+        return updateStatus;	    
+	},
+	
+	/**
+	 * load this.object into form
+	 */
+	loadObject : function(){
+	// load object into form
+	 
+	this.formPanel.getForm().loadRecord(this.object);       
+        // set object's TTs into the timeselector
+	this.addTTs(this.object.get('timeTables'));	 
+	},
+	
+	/**
+	 * save method called by Save button to launch the save process
+	 */
+	saveProcess : function(toRename){
+	 // if the TimeTable object has been modified	  
+        if (this.object.dirty) {            
+            // TT module
+            var searchModule = myDesktopApp.getLoadedModule(myDesktopApp.dynamicModules.search.id);//('search-win');           
+            // if the name has been modified this is a creation
+            if (this.object.isModified('name')){
+                
+                // if object already has an id : it's a 'rename' of an existing Condition
+                if (this.object.get('id')){
+                    // the context Node is the parent node of current edited one
+                    var contextNode = searchModule.linkedNode.parentNode;
+                    // link a new node to the TimeTableModule
+                    searchModule.createLinkedNode();
+                    // set the contextNode
+                    searchModule.linkedNode.set('contextNode',contextNode);
+                    // create a new object linked
+                    searchModule.createObject(this.object.getJsonValues());            
+                    var searchObj = searchModule.linkedNode.get('object');                           
+                    // synchronisation of objects		     
+                    this.object = searchObj; 		      
+		    if (toRename) searchModule.linkedNode.toRename = true;
+                }               
+                // fire creation event
+              //  this.object.fireEvent('create');
+                searchModule.linkedNode.create();
+            } else {           
+                searchModule.linkedNode.set('contextNode',searchModule.contextNode); 
+                // this.object.fireEvent('modify');
+		searchModule.linkedNode.update();
+            }
+          }
+	},
+	
+	/**
+	 * overwrite metod called by Save button
+	 */
+	overwriteProcess : function(btn){	
+	if (btn == 'cancel') return;	
+           
+        this.fieldName.clearInvalid();    
+	this.saveProcess(true);		
+	},
+	
+	/**
+	 * search method called by 'Do Search' button to launch the search process
+	 */
+	doSearch : function(){	     
+	var searchModule = myDesktopApp.getLoadedModule(myDesktopApp.dynamicModules.search.id);
+	searchModule.linkedNode.execute();
+	   // fire execution  
+	  //  this.object.fireEvent('execute',this.object.dirty);
+	},
+        
+ /**
+  *   Check if brackets are balanced
+  */        
+        isBalanced : function(str){ 
+         str =  (""+str).replace(/[^()\[\]{}]/g, ""); 
+         var bracket = {
+                    "]": "[",
+                    "}": "{",
+                    ")": "("
+                },
+                openBrackets = [], 
+                isClean = true,
+                i = 0,
+                len = str.length;
+
+            for(; isClean && i<len; i++ ){                
+                if( bracket[ str[ i ] ] ){
+                    isClean = ( openBrackets.pop() === bracket[ str[ i ] ] );
+                }else{
+                    openBrackets.push(str[i]);
+                }
+            }
+            if (!(isClean && !openBrackets.length)) return 'Brackets are not balanced';
+           
+            return true; 
+        },
+        
+        /**
+         * Update constructionField (Search Condition) in window search        
+         */     
+        updateConstruct : function(oldval,newval) 
+        {
+            var expression = this.constructionField.value;
+            oldval = oldval.replace(/[(]/g,"\\(");
+            oldval = oldval.replace(/[)]/g,"\\)");	
+            var reg=new RegExp(oldval, "g");
+            expression = expression.replace(reg, newval);
+            this.constructionField.setValue(expression);
+	},
+
+	/**
+	 * Check if changes were made before closing window 
+	 * @return true if changes
+	 */	   
+	fclose : function() {
+                var form = this.formPanel.getForm();
+		var isDirty = form.isDirty();
+		return isDirty;
+	},
+	
+        /**
+         *  Component configiration / init
+         */
+        init : function(config)	
+        {	  
+            this.timeSelector = new amdaUI.TimeSelectorUI({id: 'SearchTimeSelector',flex: 2});
+
+            this.fieldName = new Ext.form.field.Text({
+                labelAlign: 'top', itemId: 'formParamName',
+                fieldLabel: 'Request Name<b>*</b>',
+                name : 'name',
+                width: 375,
+                colspan: 3,
+                allowBlank : false,
+                stripCharsRe: /(^\s+|\s+$)/g,
+                validateOnChange: false,
+                validateOnBlur: false,
+                validFlag: false,
+	            validator : function() {
+	            	return this.validFlag;
+	            }
+            });
+
+            this.constructionField = new extensions.SelectableTextArea({
+                labelAlign: 'top',
+                itemId: 'formSearchCondition',
+                fieldLabel:'Data Mining Condition<b>*</b>',
+                allowBlank : false, blankText : 'Condition expression is required',
+                name: 'expression',
+                validateOnChange: false,
+                validateOnBlur: false,
+                validator : this.isBalanced,
+                flex : 2.5,
+                listeners :
+                    {
+                        render : function(o,op)
+                        {
+                            var me = this;
+                            var el = me.bodyEl;
+                            var dropTarget = Ext.create('Ext.dd.DropTarget', el, {
+                                ddGroup: 'explorerTree',
+                                notifyEnter : function(ddSource, e, data) 
+                                { },
+                                notifyOver  : function(ddSource, e, data)
+                                { 
+                                    if (data.records[0].data.nodeType == 'localParam' && data.records[0].get('notyet')) {
+                                        this.valid = false;
+                                        return this.dropNotAllowed;   
+                                    }
+                                    if (((data.records[0].data.nodeType == 'localParam')   ||
+                                            (data.records[0].data.nodeType == 'remoteParam') || 
+                                            (data.records[0].data.nodeType == 'remoteSimuParam') ||
+                                            (data.records[0].data.nodeType == 'derivedParam') ||
+                                            (data.records[0].data.nodeType == 'myDataParam') ||
+                                            (data.records[0].data.nodeType == 'alias'))&&
+                                            (data.records[0].data.leaf) &&
+                                            !data.records[0].data.disable)
+                                        {
+                                            this.valid = true;
+                                            return this.dropAllowed;
+                                        }
+                                        this.valid = false;
+                                        return this.dropNotAllowed;
+                                },
+                                notifyDrop  : function(ddSource, e, data)
+                                {
+                                    if (!this.valid) return false;
+                                                        
+                                    var nameToSent;
+                                    switch (data.records[0].get('nodeType'))
+                                    {
+                                    case 'localParam' :
+                                    case 'remoteParam' :
+                                    case 'remoteSimuParam' :    
+                                        nameToSent = data.records[0].get('id');
+                                        if (data.records[0].get('alias')!= "" )
+                                            var nameToSent = "#"+data.records[0].get('alias');
+                                        break;
+                                    case 'alias' :
+                                        nameToSent = "#"+data.records[0].get('text');
+                                        break;
+                                    case 'derivedParam' :
+                                        nameToSent = "ws_"+data.records[0].get('text');
+                                        break;
+                                    case 'myDataParam' :
+                                        var name = data.records[0].get('text');
+                                        nameToSent = "wsd_"+name;
+                                        var size = data.records[0].get('size');
+                                        if (size &&  size > 1) {
+                                            nameToSent += "(0)";
+                                            myDesktopApp.warningMsg("parameter "+name+" is array of size: "+size+"<br/>Please put index");
+                                        }
+                                        break;
+                                    default :
+                                        return false;
+                                    }
+                                    var searchModule = myDesktopApp.getLoadedModule(myDesktopApp.dynamicModules.search.id);
+                                    if (data.records[0].get('needsArgs')) { 
+                                        searchModule.getUiContent().fireEvent('openParamEditor',nameToSent);
+                                    } 
+                                    else {
+                                        searchModule.addParam(nameToSent,true);	
+                                    }
+                                    return true;
+                                }
+                            });
+                        }
+                    }
+            });
+
+            this.formPanel = new Ext.form.Panel({
+                region : 'center',  
+                bodyStyle: { background : '#dfe8f6' },  
+                border: false, buttonAlign: 'left',
+                trackResetOnLoad: true,  //reset to the last loaded record
+                layout : { 
+                            type : 'vbox',
+                            align: 'stretch',
+                            defaultMargins : { top:15, bottom:0, left: 15, right:15}
+                },
+                id: 'formSearch',
+                defaults: {
+                    border: false
+                },
+                items : [
+                    { 
+                        xtype: 'container',
+                        flex: 2.5,
+                        layout: {
+                            type: 'hbox',  
+                            align: 'stretch'
+                        },
+                        items: [
+                                {
+                                flex: 3,
+                                xtype: 'container',
+                                border: false,
+                                layout: {
+                                    type: 'table',
+                                    columns: 3
+                                },
+                                defaultType: 'textfield',
+                                defaults: {
+                                        labelAlign: 'top'
+                                },
+                                items: [   
+                                    this.fieldName,
+                                    {
+                                            xtype :'displayfield', width: 165,
+                                            hideLabel: true, 
+                                            value: '<b>Averaging/Interpolation</b>'
+                                    },
+                                    { xtype: 'component', width: 45 },
+                                    {
+                                        xtype :'displayfield', width: 165,
+                                        hideLabel: true, 
+                                        value: '<b>Data Gap</b>'
+                                    },
+                                    {
+                                        xtype: 'numberfield', name: 'sampling',
+                                        fieldLabel: 'Sampling Time Step (sec)*', minValue : 0,
+                                        labelAlign: 'top', hideTrigger: true, width: 165
+                                    },
+                                    { xtype: 'component', width: 45 },
+                                    {
+                                        xtype: 'numberfield',  name: 'gap',
+                                        fieldLabel: 'if no data for interval', minValue : 1,
+                                        labelAlign: 'top', hideTrigger : true, width: 165
+                                    },
+                                    {
+                                        xtype: 'textfield',
+                                        name: 'description', 
+                                        xtype: 'textarea', fieldLabel:'Description',
+                                        width: 375, height: 70,
+                                        colspan: 3
+                                    }]	
+                                },   
+                            this.timeSelector
+                        ]
+                    },
+                    this.constructionField
+                ],
+                fbar: [
+                    {
+                        text: 'Do Search',
+                        scope : this,
+                        handler: function(button){
+                            // update object with user's values
+                            // if the return is true (object had been updated)
+                            if(this.updateObject()){
+                                // launch the search process                           
+                                this.doSearch();			   			 
+                            }
+                        }
+                    },
+                    {
+                        text: 'Save Request',
+                        scope: this,
+                        handler: function(){
+                            // update object with user's values 
+                            // if the return is true (object had been updated)
+                            if (this.updateObject()){
+                            	var searchModule = myDesktopApp.getLoadedModule(myDesktopApp.dynamicModules.search.id);	
+                            	if (!searchModule)
+                            		return;
+                            	var me = this;
+                            	
+                            	searchModule.linkedNode.isValidName(this.fieldName.getValue(), function (res) {
+                            		if (!res)
+                            		{
+                            			me.fieldName.validFlag = 'Error during object validation';
+                            			myDesktopApp.errorMsg(me.fieldName.validFlag);
+                            			me.fieldName.validate();
+                            			return;
+                            		}
+  								  
+                            		if (!res.valid)
+                            		{
+                            			if (res.error)
+                            			{
+                            				if (res.error.search('subtree') != -1) {  							
+                            					Ext.MessageBox.show({title:'Warning', 
+                            						msg: res.error+'<br/>Do you want to overwrite it?',
+                            						width: 300,
+                            						buttons: Ext.MessageBox.OKCANCEL, 
+                            						fn : me.overwriteProcess,
+                            						icon: Ext.MessageBox.WARNING,
+                            						scope : me
+                            					});
+                            					me.fieldName.validFlag = true;
+                            				}
+                            				else
+                            					me.fieldName.validFlag = res.error;
+                            			}
+                            			else
+                            			{
+                            				me.fieldName.validFlag = 'Invalid object name';
+                            				myDesktopApp.errorMsg(me.fieldName.validFlag);
+                            			}
+                            			me.fieldName.validate();
+                            			return;
+                            		}
+  								  
+                            		me.fieldName.validFlag = true;
+                            		me.fieldName.validate();
+                            		me.saveProcess(false);
+                            	});  
+                            }                              
+                        }
+                    },
+                    {
+                        text: 'Reset',
+                        scope : this,
+                        handler: function(){
+                            var searchModule = myDesktopApp.getLoadedModule(myDesktopApp.dynamicModules.search.id);			
+                            searchModule.createLinkedNode();
+                            searchModule.createObject();
+                            this.setObject(searchModule.getLinkedNode().get('object'));                           
+                        }
+                    }
+                ] 
+            });		
+                
+            var myConf = {
+                layout: 'border',
+                defaults: { layout: 'fit', border: false },
+                items: [
+                    this.formPanel,                         
+                    {
+                        xtype: 'panel', region: 'south',
+                        title: 'Information',
+                        collapsible: true,
+                        height: 100,
+                        autoHide: false,
+                        iconCls: 'icon-information',
+                        bodyStyle: 'padding:5px',
+                        loader: {
+                            autoLoad: true,
+                            url: helpDir+'dataMiningHOWTO'
+                        }				 
+                    }  
+                ],
+                plugins: [ {ptype: 'calculator', myBtns:[], context: 'Condition'}, {ptype: 'searchParamEditorPlugin'}]
+            };
+
+            Ext.apply (this , Ext.apply (arguments, myConf));	    	    
+    }
+    
+});
diff --git a/js/app/views/SendToSampButtonUI.js b/js/app/views/SendToSampButtonUI.js
new file mode 100644
index 0000000..4756788
--- /dev/null
+++ b/js/app/views/SendToSampButtonUI.js
@@ -0,0 +1,130 @@
+/**
+ * Project   : AMDA-NG
+ * Name      : SendToSampButtonUI.js
+ * @class    amdaUI.SendToSampButtonUI
+ * @extends  Ext.Button 
+ * @brief    Button use to send VOTable or FITS images via SAMP protocole (View)
+ * @author   Benjamin RENARD 
+ * @version  $Id: SendToSampButtonUI.js 1459 2013-04-22 13:19:43Z benjamin $
+ ********************************************************************************
+ *    FT Id     :   Date   : Name - Description
+ *******************************************************************************
+ *              
+ */
+
+Ext.define('amdaUI.SendToSampButtonUI', {
+    extend: 'Ext.Button',
+   
+    alias: 'widget.sendToSampButton',
+    
+    folderId  : '',
+    voTableId : '',
+    
+    type : 'votable',
+    
+    sendOpt : {},
+    
+    onSendToSamp : null,
+    
+    constructor: function(config)
+    {	 
+    	this.initConfig(config);
+    	this.callParent();	
+    }, 
+        
+    getMenuItem : function(name,id,icon)
+    {
+    	var me = this;
+    	
+    	return {
+    		text     : name+' ('+id+')',
+    		clientId : id,
+    		handler  : function ()
+    		{
+    			if (!me.testSAMPConnection())
+    				return;
+    			if (me.onSendToSamp)
+    				me.onSendToSamp.call(this,id,me.sendOpt);
+    		},
+    		icon     : icon
+    	};
+    },
+    
+    testSAMPConnection : function()
+    {
+    	var interopModule = myDesktopApp.getLoadedModule(myDesktopApp.dynamicModules.interop.id);
+    	if (!interopModule)
+    		return false;
+    	if (!interopModule.sampConnected())
+		{
+    		interopModule.switchSampConnect();
+			return false;
+		}
+		
+		return true;
+    },
+    
+    updateMenu : function()
+    {
+    	var me = this;
+    	
+    	this.menu.removeAll();
+    	
+    	if (!this.testSAMPConnection())
+    		return false;
+    	
+    	var clients = [];
+    	
+    	var interopModule = myDesktopApp.getLoadedModule(myDesktopApp.dynamicModules.interop.id);
+    	if (!interopModule)
+    		return false;
+    	
+    	switch (this.type)
+    	{
+    	case 'fits' :
+    		clients = interopModule.getFITSClients();
+    		break;
+    	default :
+    		clients = interopModule.getVOTableClients();
+    	}
+    	
+    	Ext.each(clients,function(client)
+    			{
+    				if (client['id'] != 'hub')
+    					me.menu.add(me.getMenuItem(client['name'],client['id'],client['icon']));
+    			});
+    	if (clients.length > 0)
+    	{
+    		me.menu.add('-');
+    		me.menu.add(me.getMenuItem('all clients','hub'));
+    	}
+    	
+    	return true;
+    },
+    
+    maybeShowMenu: function() //overrided function
+    {
+        var me = this;
+        if (me.updateMenu() && me.menu && !me.hasVisibleMenu() && !me.ignoreNextClick) 
+        {
+            me.showMenu();
+        }
+    },
+    
+    initConfig: function(config)
+    {
+    	this.onSendToSamp = config.onSendToSamp;
+    	this.sendOpt = config.sendOpt;
+    	
+    	if (config.type)
+    		this.type = config.type;
+    	
+        var newConfig = {
+    			text: 'Send (via SAMP) to ...',
+    			menu      : [],
+    			scope : this
+    	};
+    	
+    	Ext.apply(this, newConfig);
+    }
+});
\ No newline at end of file
diff --git a/js/app/views/StatisticalPlug.js b/js/app/views/StatisticalPlug.js
new file mode 100644
index 0000000..b4ef3fe
--- /dev/null
+++ b/js/app/views/StatisticalPlug.js
@@ -0,0 +1,185 @@
+/**
+  * Project      :  AMDA-NG
+  * Name         : statisticalPlug.js
+  * @plugin 	  amdaUI.StatisticalPlug
+  * @extends 	  Ext.util.Observable 
+  * @ptype 	 	  statisticalPlugin
+  * @brief		  Statistical info in Time Table Module UI (View)
+  * @author Myriam
+  * @version $Id: StatisticalPlug.js 1237 2013-02-12 15:42:14Z myriam $
+  ********************************************************************************
+  *    FT Id     :   Date   : Name - Description
+  *******************************************************************************
+  *  :           :08/06/2011: Myriam - Migration extjs4
+  */
+
+
+Ext.define('amdaUI.StatisticalPlug', {
+	extend: 'Ext.util.Observable',
+	alias: 'plugin.statisticalPlugin',
+	
+	win : null,
+		
+ 	constructor: function(config) { 
+        Ext.apply(this, config);  
+        this.callParent(arguments);
+	},
+ 	
+	init: function(cmp) {
+	    this.hostCmp = cmp;    
+	    this.hostCmp.on({
+		info: this.onInfo,
+		refresh: this.refresh,		 
+		scope: this});
+	},
+	
+	onDestroy : function() {
+	        this.win = null;   
+	},
+	
+	refresh: function() {
+		this.statTT();
+		/*if (this.form) {
+			this.form.getForm().setValues({min: this.min, max: this.max, mean:this.mean, stdev: this.stdev,
+				median: this.median, density: this.density });
+		}*/
+	},
+
+	onInfo: function() {
+	        if (!this.win) {	   
+		    this.win = new Ext.Window({			
+			    id: 'statistical-win',
+			    width: 370, 
+			    height: 140,
+			    x: 420, y: 330,
+			    baseCls:'x-panel',	 
+			    title: 'Statistical info',
+			    layout: 'fit',
+			    constrain: true,
+			    ghost: false,
+			    renderTo: this.hostCmp.id,
+				tools: [
+				         {
+				        	type:'help',
+				        	qtip: 'Help on Statistical info',
+				        	handler: function(event, toolEl, panel){
+				        		AmdaAction.getInfo({name : 'statisticalHelp'}, function(res,e) {					    					   
+								    if (res.success) myDesktopApp.infoMsg(res.result);
+							 });  
+				        	}
+				         }
+					],
+			    items: this.getFormConfig(),
+			    getConstrainVector: function(constrainTo){
+					var me = this;
+			        if (me.constrain || me.constrainHeader) {
+			            constrainTo = constrainTo || (me.floatParent && me.floatParent.getTargetEl()) || me.container || me.el.getScopeParent();
+			            return (me.constrainHeader ? me.header.el : me.el).getConstrainVector(constrainTo);
+			        }
+			    }
+		    });
+		    this.win.on('destroy', this.onDestroy, this);
+		    this.win.show();
+		}
+	//    this.hostCmp.add(this.win);	    
+	    this.refresh();
+	},
+	
+	/**
+	 * calculation method of statical values 
+	 */
+	statTT: function(){
+	    if (this.win) {
+	    	var me = this;
+	    	AmdaAction.getTTCacheStatistics(function (result, e) {
+	    		if (!result || !result.success)
+	    		{
+	    			if (result.message)
+	        			myDesktopApp.errorMsg(result.message);
+	        		else
+	        			myDesktopApp.errorMsg('Unknown error during statistics calculation');
+	        		return;
+	    		}
+	    		
+	    		// format min value
+	    		me.min = me.format_unit(result.result.minDuration) + " (-- " + result.result.minDurationIndex + ")";
+	    	    // format max value
+	    		me.max = me.format_unit(result.result.maxDuration) + " (-- " + result.result.maxDurationIndex + ")";    	    
+	    	    // format mean value
+	    	    me.mean = me.format_unit(result.result.mean);
+	    	    // format Stdev value
+	    	    me.stdev = me.format_unit(result.result.stdev);
+	    	    // format median value
+	    	    me.median = me.format_unit(result.result.median);
+	    	    // format density value
+	    	    me.density = (result.result.density*100).toFixed(2) + " %";
+	    	    
+	    	    if (me.form) {
+	    	    	me.form.getForm().setValues({min: me.min, max: me.max, mean:me.mean, stdev: me.stdev,
+	    				median: me.median, density: me.density });
+	    		}
+	    	});
+	    }
+	},
+	
+	format_unit: function(unit) {
+		if ( unit < 60 ) var string_unit = unit.toFixed(2) + " sec";
+	    else if ((unit >= 60) && ( unit < 3600)) var string_unit = (unit/60).toFixed(2) + " min";
+	    else if ((unit >= 3600) && ( unit < 86400)) var string_unit = (unit/3600).toFixed(2) + " hour";
+	    else if ( unit >= 86400 ) var string_unit = (unit/86400).toFixed(2) + " day";
+	    return string_unit;
+	},	
+	
+	getFormConfig: function(){
+	    this.form = new Ext.form.FormPanel( {
+	    	frame: true, buttonAlign: 'center', flex: 1,
+	    	fieldDefaults: {
+                labelWidth: 50
+            },
+            items: [{
+                xtype : 'container',
+                layout:'anchor',
+                items: [	
+      	          {			            	        	        	  
+      	        	  xtype: 'fieldcontainer',
+      	        	  layout: 'hbox',
+      	        	  fieldLabel:'Min',
+      	        	  items: [
+  	        	          {xtype:'textfield', name:'min', value: this.min, width: 100},
+  	        	          {xtype:'splitter', width: 20},
+  	        	          {xtype:'displayfield', value: 'Max:', width: 40},
+  	        	          {xtype:'splitter', width: 13},
+  	        	          {xtype:'textfield', name:'max', value: this.max, width: 100}
+      	        	  ]
+      	          },
+      	          {			            	        	        	  
+      	        	  xtype: 'fieldcontainer',
+      	        	  layout: 'hbox',
+      	        	  fieldLabel:'Mean',
+      	        	  items: [
+  	        	          {xtype:'textfield', name: 'mean', value: this.mean, width: 100},
+  	        	          {xtype:'splitter', width: 20},
+  	        	          {xtype:'displayfield', value: 'St.dev:', width: 50},
+  	        	          {xtype:'splitter', width: 2},
+  	        	          {xtype:'textfield', name: 'stdev', value: this.stdev, width: 100}
+      	        	  ]
+      	          },	        	          
+      	          {			            	        	        	  
+      	        	  xtype: 'fieldcontainer',
+      	        	  layout: 'hbox',
+      	        	  fieldLabel:'Median',
+      	        	  items: [
+  	        	          {xtype:'textfield', name: 'median', value: this.median, width: 100},
+  	        	          {xtype:'splitter', width: 20},
+  	        	          {xtype:'displayfield', value: 'Density:', width: 52},
+  	        	          {xtype:'textfield', name: 'density', value: this.density, width: 100}
+      	        	  ]
+      	          }
+      	          
+      	         ]
+            }]
+	    });
+	    return this.form;
+	}    
+		
+});
\ No newline at end of file
diff --git a/js/app/views/TabPlotUI.js b/js/app/views/TabPlotUI.js
new file mode 100644
index 0000000..7e91e60
--- /dev/null
+++ b/js/app/views/TabPlotUI.js
@@ -0,0 +1,109 @@
+/**
+ * Project   : AMDA-NG
+ * Name      : TabPlotUI.js
+ * @class 	 amdaUI.TabPlotUI
+ * @extends  Ext. 
+ * @brief	 Plot Formular  Module UI definition (View)
+ * @author 	  
+ * @version  $Id: TabPlotUI.js 2622 2014-11-07 14:50:09Z elena $
+ ********************************************************************************
+ *    FT Id     :   Date   : Name - Description
+ *******************************************************************************
+ *              
+ */
+
+Ext.define('amdaUI.TabPlotUI', {
+    extend: 'Ext.container.Container',
+    alias: 'widget.tabPlot',
+    
+   requires: [
+        'amdaUI.PlotUI',
+        'amdaModel.PlotParam',
+        'amdaModel.PlotPanel'    
+    ],  
+
+    constructor: function(config) {
+        this.init(config);
+        this.callParent(arguments);	
+    },
+    
+    getTabPlot: function() {
+    
+       return 0;
+    },
+
+    addTT : function(newTTName,newTTid){
+        this.tabPanel.getActiveTab().addTT(newTTName,newTTid);
+    },
+    
+    addTTs : function(TTarray) {
+        // set TTTab
+        this.tabPanel.getActiveTab().addTTs(TTarray);
+    },
+    
+    /**
+    * Set Start-Stop from parameter info (Local & MyData)
+    */ 
+    setTimeFromData : function(obj) 
+    {                                                               
+        var dateStart = new Date(obj.start.replace(/[T|Z]/g,' ').replace(/\-/g,'\/')); 
+        var dateStop = new Date(obj.stop.replace(/[T|Z]/g,' ').replace(/\-/g,'\/')); 
+        
+        this.tabPanel.getActiveTab().down('form').getForm().setValues({ startDate : dateStart, stopDate : dateStop });
+        this.tabPanel.getActiveTab().timeSelector.intervalSel.updateDuration();        
+    },
+        
+    setObject: function(obj){      
+       this.tabPanel.getActiveTab().object = obj;
+       this.tabPanel.getActiveTab().loadObject();
+    },
+    
+     updateConstruct : function(oldval,newval) 
+     { 
+       Ext.Array.each(this.tabPanel.items.items, function(item){
+	  item.updateConstruct(oldval, newval);
+       }, this);
+   
+     },
+    
+    init : function(config)	
+    {
+       this.tabPanel = Ext.create('Ext.tab.Panel',{
+	    region: 'center',
+	    layout: { type :'vbox' },        
+            activeTab: 0,
+	    items : [
+	      Ext.create(amdaUI.PlotUI,{title: 'Plot 1', id : 'plot1'}),
+	      Ext.create(amdaUI.PlotUI,{title: 'Plot 2', id : 'plot2'}),
+	      Ext.create(amdaUI.PlotUI,{title: 'Plot 3', id : 'plot3'}),
+	      Ext.create(amdaUI.PlotUI,{title: 'Plot 4', id : 'plot4'}),
+	      Ext.create(amdaUI.PlotUI,{title: 'Plot 5', id : 'plot5'})		   
+	    ]            
+        });
+	 
+	
+        var myConf = {
+            layout: 'border',
+            defaults: { layout: 'fit', border: false },   
+            items: [                 
+		    this.tabPanel,
+		    {
+		      xtype: 'panel', region: 'south',
+		      title: 'Information',
+		      bodyStyle: 'padding:5px',
+		      collapsible: true,
+		      height: 100,
+		      autoHide: false,
+		      iconCls: 'icon-information',		     
+		      loader: {
+			autoLoad: true,
+			url: helpDir+'plotHOWTO'
+		      }
+		  }                        
+            ] 
+        };
+
+        Ext.apply (this , Ext.apply (arguments, myConf));		
+    }
+    
+});
diff --git a/js/app/views/TabResultUI.js b/js/app/views/TabResultUI.js
new file mode 100644
index 0000000..d42fa32
--- /dev/null
+++ b/js/app/views/TabResultUI.js
@@ -0,0 +1,343 @@
+/**
+ * Project   : AMDA-NG
+ * Name      : TabResultUI.js
+ * @class    amdaUI.TabResultUI
+ * @extends  Ext.panel.Panel 
+ * @brief   Tab Result UI definition (View)
+ * @author    
+ * @version  $Id: TabResultUI.js 2618 2014-10-24 12:27:42Z elena $
+ ********************************************************************************
+ *    FT Id     :   Date   : Name - Description
+ *******************************************************************************
+ *              
+ */
+
+Ext.define('amdaUI.TabResultUI', {
+    extend: 'Ext.panel.Panel',
+   
+    alias: 'widget.tabResult',
+    
+    requires: [
+               'amdaUI.SendToSampButtonUI'
+           ],
+    
+    constructor: function(config) {	 
+	this.initConfig(config);
+	this.callParent();	
+    },  
+        
+    initConfig: function(config){
+	this.type = config.nodeType;
+  	this.id = 'tab-' + config.nodeType;	 
+	//var title = config.nodeType +' Result';	
+	switch (config.nodeType) {
+	  case 'condition': var title = 'Data Mining Results';
+			    break;
+	  case 'request' : var title = 'Plot Results';
+			    break;	   
+	  case 'download': var title = 'Download Results';
+			    break;
+	  default:
+	}
+        var newConfig = {
+	    id: this.id,          	    
+            title: title,
+            autoScroll: true,
+	    height: 250,
+            closable: true,
+	    layout: {
+		type: 'vbox',
+	        align : 'stretch',
+		autoSize : true
+	    },
+	    listeners: {
+	      scope : this,
+	      beforeclose : function() {
+		//delete linked nodes connected to ResultModule and corresponding to this Tab
+		       var module = myDesktopApp.getLoadeModule(myDesktopApp.dynamicModules.result.id);
+		       if (module.linkedNodes) {
+			  var indices = new Array();
+			  var i =0;
+			  module.linkedNodes.each(function(item,index){
+			    if(this.type == item.get('jobType')) {
+			      indices[i] = index;
+			      i++;
+			    }
+			  }, this);
+			  if (indices.length > 0) {
+			    Ext.Array.each(indices, function(item) {
+			       module.linkedNodes.removeAt(item);
+			    });			    
+			  }
+		       }
+		    }
+	    }
+	    }
+	Ext.apply(this, newConfig);	 
+    },
+     
+    addResult: function(resultName, resultId, folderId, plotTab, compression, format, processId) { 
+      this.insert(0,[ {xtype : 'resultItem', type : this.type, title: resultName, plotTab : plotTab, folderId: folderId, resultId: resultId, compress : compression, format: format, processId: processId}]); 
+   }
+});
+
+Ext.define('amdaUI.ResultItem', {
+    extend: 'Ext.form.FieldSet',
+   
+    alias: 'widget.resultItem',
+    
+    linkedNode : null,
+    
+    delete: function(processId) {
+      var module = myDesktopApp.getLoadedModule(myDesktopApp.dynamicModules.result.id);
+      var jobLinkedNode = module.linkedNodes.getByKey(processId);
+      jobLinkedNode.deleteNode();
+      module.linkedNodes.remove(jobLinkedNode);    
+    },
+    
+    saveTable: function(folderId,ttName) {
+      this.linkedNode = Ext.create('amdaModel.TimeTableNode',{leaf : true});
+      AmdaAction.getTmpObject(
+    		  folderId,
+    		  ttName,
+    		  this.linkedNode.get('nodeType'),
+    		  this.getResultCallback,
+    		  this);       
+    },
+    
+    getResultCallback : function(result,remoteEvent){//result, e) {
+        var t = remoteEvent.getTransaction();
+        //AKKA - catch error
+        if (!remoteEvent.status)
+        {
+        	myDesktopApp.errorMsg('Internal error');
+        	return;
+        }
+        
+        if (result.error)
+        {
+        	myDesktopApp.errorMsg(result.error);
+        	return;
+        }
+        
+        var paramObj = Ext.create(this.linkedNode.get('objectDataModel'), result);	 
+        paramObj.set('fromPlugin',true);
+         paramObj.set('intervals',result.intervals);
+        // set parameter into node
+        this.linkedNode.set('object',paramObj);
+           
+	var me = this;
+	myDesktopApp.getLoadedModule(myDesktopApp.dynamicModules.result.id, true, function (module) {
+		module.setLinkedNode(me.linkedNode);
+		// Edition of parameter into parameter Module	    
+		me.linkedNode.editInModule();
+	});
+    },
+    
+    onSendVOTableToSamp : function (clientId, sendOpt)
+    {
+    	var o = {folderId : sendOpt.downFolder, downId : sendOpt.downId};
+
+    	var me = this;
+        myDesktopApp.getLoadeModule(myDesktopApp.dynamicModules.interop.id, true, function (module) {
+        	loadMask.show();
+        	
+            AmdaAction.sendToSAMP(o,function (result, e)
+            		{
+            	        loadMask.hide();
+            			if (!result.success)
+        				{
+        					Ext.Msg.show( {
+        						title : 'SAMP - Cannot send VOTable',
+        						msg : result.message,
+        						modal : true,
+        						icon : Ext.Msg.ERROR,
+        						buttons : Ext.Msg.OK
+        				});
+        				return;
+        			}
+        			
+        			Ext.each(result.files,function (file)
+        					{
+        						module.sendVOTable(file,clientId);
+        					}, me);
+        		},
+        		me);
+        });
+        	
+        
+    },
+    
+    constructor: function(config) {
+    	this.initConfig(config);
+    	this.callParent();	
+    },  
+    
+      initConfig: function(config){	
+    	// Show title only for finished jobs
+    	if (Ext.util.Format.substr(config.title,0,2) === 'DD') {
+    		var jobtitle = config.plotTab? 'PlotTab_'+ config.plotTab : '' ;
+    	}
+    	else {
+    		var jobtitle = config.title;
+    	}
+    	
+       switch (config.type) {	
+	  
+	    case 'request' : 
+	    	if (config.format == 'unknown')
+	    		config.format = 'png';
+            var suffix = config.format;
+            if (config.format != 'png')
+            	//auto compression
+                suffix += '.tar.gz';
+            var plotId = config.resultId;
+            var folderId = config.folderId;
+            var href = 'data/'+sessionID+'/RES/'+ folderId  + '/' + plotId  + '.'+ suffix;
+			break; 
+	    case 'download' :
+	      //TODO suffix parsing		     
+			      var suffix = '.tar.gz';			     
+			      if (config.compress == 'zip') var suffix = '.zip';
+			      var downId = config.resultId;
+			      var downFolder = config.folderId;			      
+			      var href = 'data/'+sessionID+'/RES/'+ downFolder + '/' + downId + suffix;			      
+			    break;
+	    default:
+	  }
+	  
+       
+	var height = 60;  
+	
+        var configTT = {
+	    intId : config.title, 
+	    height : height,	
+	    title: jobtitle,
+	    collapsible: true,
+	    defaultType: 'button',
+	    items :[
+	         {
+		   xtype: 'label',
+		   text: 'Time Table '
+		 }, 
+		{
+		text: 'Edit/Save',
+		scope : this,
+		handler: function() {
+			  this.saveTable(config.folderId,config.resultId);
+		  }
+		},  {
+		   xtype: 'label',
+		   text: '  || Gaps Time Table '
+		 }, 
+		{
+		text: 'Edit/Save',
+		scope : this,
+		handler: function() {
+		     this.saveTable(config.folderId,'Gaps_'+config.resultId); 
+		  }
+		}, {
+		   xtype: 'label',
+		   text: ' || ',
+		   width: 50
+		 }, 
+	        {
+		text: 'Delete Both',
+		scope : this,
+		handler: function() {
+		      this.delete(config.processId);
+		      this.ownerCt.remove(this);
+		  }
+		}
+	     ]
+	  };
+//TODO make this properly
+	  	  
+	  var configPlot = {
+	    intId : config.processId,
+	    height :  height,	
+	    title : jobtitle + ' ' +config.format,
+	    collapsible: true,
+	    defaultType: 'button',
+	    items :[
+	         {
+		   xtype: 'label',
+		   text: 'Plot '
+		 }, 
+		{
+		text: 'Download',
+	        href: href,
+                target: '_blank', // removed in 4.1    , hrefTarget: '_blank' // used in 4.1	
+                hrefTarget: '_blank'
+		},  {
+		   xtype: 'label',
+		   text: '  ||  '
+		 }, 
+	        {
+		text: 'Delete',
+		scope : this,
+		handler: function() {
+		      this.delete(config.processId);
+		      this.ownerCt.remove(this);
+		  }
+		}
+	     ]
+	  };
+	  
+	  var configDown = {
+	    intId : config.processId,
+	    height :  height,	
+	    title: jobtitle,
+	    collapsible: true,
+	    defaultType: 'button',
+	    items :[
+	         {
+		   xtype: 'label',
+		   text: 'File '
+		 }, 
+		{
+		text: 'Download',
+	        href: href,
+                target: '_self', // removed in 4.1    , hrefTarget: '_blank' // used in 4.1	
+                hrefTarget: '_self'
+		},  {
+		   xtype: 'label',
+		   text: '  ||  '
+		 }, 
+	        {
+		text: 'Delete',
+		scope : this,
+		handler: function() {
+		      this.delete(config.processId);
+		      this.ownerCt.remove(this);
+		  }
+		},
+		{
+			   xtype: 'label',
+			   text: '  ||  '
+		},
+		{
+			xtype        : 'sendToSampButton',
+			type         : 'votable',
+			onSendToSamp : this.onSendVOTableToSamp,
+			sendOpt      : {'downId' : downId, 'downFolder'   : downFolder}
+		}
+	     ]
+	  };
+ 
+	  switch (config.type) {
+	    case 'condition' : 
+			      Ext.apply(this, configTT);	
+			    break;
+	    case 'request' : 		      
+			      Ext.apply(this, configPlot);
+			    break; 
+	    case 'download' :			     
+			      Ext.apply(this, configDown);
+			    break;
+	    default:
+	  }
+ 
+    }
+    
+});    
diff --git a/js/app/views/TimeSelectorUI.js b/js/app/views/TimeSelectorUI.js
new file mode 100644
index 0000000..94e9ec9
--- /dev/null
+++ b/js/app/views/TimeSelectorUI.js
@@ -0,0 +1,270 @@
+/**
+ * Project   : AMDA-NG
+ * Name      : TimeSelectorUI.js
+ * @class      amdaUI.TimeSelectorUI
+ * @extends    Ext.form.FieldSet
+ * @brief    common component to select Time in searchModule, plotModule
+ * 					and downloadModule
+ * @author 	 Myriam
+ * @version  $Id: TimeSelectorUI.js 2135 2014-02-25 13:37:18Z elena $
+ * @todo Validations 
+ */
+
+Ext.define('amdaUI.TimeSelectorUI', 
+{
+    extend: 'Ext.form.FieldSet',
+    requires : 
+    [                
+        'amdaUI.IntervalUI'
+    ],
+    
+    setTTTab: function(arrayTT) 
+    {
+        var arrayRec = new Array();
+        var index = 1;
+        if (arrayTT)
+        {
+            index = 0;            
+            Ext.Array.each(arrayTT,function(item,index,all)
+            {
+                // adding the time table to the TTGrid
+                if (!item.$className)
+                {
+                        //json case
+                        var r = Ext.create('amdaModel.TTobject', { id: item.id, name: item.timeTableName });
+                        arrayRec.push(r);
+                }
+                else
+                        //TTobject case
+                        arrayRec.push(item);
+            });
+        }          
+        this.activeTab = amdaModel.AmdaTimeObject.inputTimeSrc[index];
+        
+        // name of RadioGroup in every TimeSelector object should be UNIQUE: 
+        // RadioManager is a singleton working with getByName !!!!!	
+        var obj = new Object();  	 
+        obj['timesrc_' + this.id] =  this.activeTab;        
+        this.timeSrc.setValue(obj); 
+        
+        if (index === 0) this.TTGrid.getStore().loadData(arrayRec);        
+    },
+    
+    addTT : function(newTTName,newTTid)
+    {      
+        // set the TimeTable radio checked
+        var obj = new Object();  
+        obj['timesrc_'+this.id] =  amdaModel.AmdaTimeObject.inputTimeSrc[0]; /*'TimeTable'*/
+        this.timeSrc.setValue(obj);
+        
+        // fireEvent to show the corresponding panel
+        this.timeSrc.fireEvent('change', this.timeSrc, this.timeSrc.getValue());
+        // search for an existing record in store with this unique name
+        var existingIndex = this.TTGrid.store.findExact( 'name', newTTName);
+        // if no corresponding TT found
+        if (existingIndex == -1){
+            // adding the time table to the TTGrid  
+            var r = Ext.create('amdaModel.TTobject', { id: newTTid, name: newTTName });
+            this.TTGrid.store.insert(this.TTGrid.store.getCount(),r);   
+        }        
+    },
+   
+    initComponent: function() 
+    {
+        this.activeField = null;
+        var store = Ext.create('Ext.data.Store', 
+        {
+            model: 'amdaModel.TTobject'	
+        });
+
+        this.TTGrid = Ext.create('Ext.grid.Panel', 
+        {
+            height: 100,
+            itemId: 1, 	    
+            store : store,  
+            columns: 
+            [ 
+                Ext.create('Ext.grid.RowNumberer', { width: 20 } ),
+                { header: "Time Table Name", dataIndex: 'name', flex:1, sortable : false, menuDisabled: true },
+                { 
+                  menuDisabled: true,  width: 30, renderer: function()
+                    {
+                        return'<div class="icon-remover" style="width: 15px; height: 15px;"></div>';
+                    }
+                }
+            ],
+            listeners : {
+                    render : function(o,op) {
+                    var me = this;
+                    var el = me.getEl();
+                    var dropTarget = Ext.create('Ext.dd.DropTarget', el, {
+                        ddGroup: 'explorerTree',
+                        notifyOver  : function(ddSource, e, data)
+                        {
+                                if ((data.records[0].get('nodeType') == 'timeTable' || data.records[0].get('nodeType') == 'sharedtimeTable') && (data.records[0].get('leaf')))
+                                {
+                                    this.valid = true;
+                                    return this.dropAllowed;
+                                }
+                                this.valid = false;
+                                return this.dropNotAllowed;
+                        },
+                        notifyDrop  : function(ddSource, e, data) 
+                        {
+                                if (!this.valid) return false;
+                                
+                                var module = myDesktopApp.getLoadedModule(myDesktopApp.dynamicModules.interactive_plot.id);
+                                if (module && module.multiSelector) 
+                                {
+                                    var targetWin  = myDesktopApp.desktop.getWindow(myDesktopApp.dynamicModules.interactive_plot.id);
+                                    targetWin.items.items[0].timeSelector.addTT(data.records[0].get('text'),data.records[0].get('id'));
+                                }
+                                else 
+                                {
+                                	var explorerModule = myDesktopApp.getLoadedModule(myDesktopApp.dynamicModules.explorer.id);
+                                	if (!explorerModule)
+                                		return false;
+                                    var targetModuleId = explorerModule.getPinedModule(); 
+                                    var targetModule = myDesktopApp.getLoadedModule(targetModuleId);
+                                    if (targetModule)
+                                    	targetModule.getUiContent().addTT(data.records[0].get('text'),data.records[0].get('id'));
+                                }
+                            return true;
+                            }
+                        });
+                        }
+                    }
+        });		
+
+        this.TTGrid.on('cellclick', function(view, cell, cellIndex, record, row, recordIndex, e)
+        {
+        	if (cellIndex == 2)
+        	    this.TTGrid.getStore().remove(record);
+        }, this);
+
+        this.intervalSel = Ext.create('amdaUI.IntervalUI', 
+        {
+                itemId: 2,
+                listeners : 
+                {
+                  render : function(o,op) 
+                  {
+                    var me = this;
+                    var el = me.getEl(); 
+                    var dropTarget = Ext.create('Ext.dd.DropTarget', el, {
+                        ddGroup: 'explorerTree',
+                        notifyOver  : function(ddSource, e, data) 
+                        {                              
+                            if ((data.records[0].get('nodeType') == 'myDataParam' || data.records[0].get('nodeType') == 'localParam')
+                                &&  data.records[0].get('isParameter'))
+                                {
+                                  this.valid = true;
+                                  return this.dropAllowed;
+                                }
+                                this.valid = false;
+                                return this.dropNotAllowed;
+                        },
+                        notifyDrop  : function(ddSource, e, data)
+                        {
+                          if (!this.valid) return false;
+                            
+                          var module = myDesktopApp.getLoadedModule(myDesktopApp.dynamicModules.interactive_plot.id);
+                          
+                          if (module && module.multiSelector) 
+                          {
+                              var targetWin  = myDesktopApp.desktop.getWindow(myDesktopApp.dynamicModules.interactive_plot.id);
+                              targetWin.items.items[0].setTimeFromData({ start : data.records[0].get('globalStart'),
+                                                                         stop  : data.records[0].get('globalStop')});      
+                          }
+                          else 
+                          {
+                        	  var explorerModule = myDesktopApp.getLoadedModule(myDesktopApp.dynamicModules.explorer.id);
+                        	  if (!explorerModule)
+                        		  return false;
+                              var targetModuleId = explorerModule.getPinedModule();                                
+                              var targetModule = myDesktopApp.getLoadedModule(targetModuleId);                              
+                              targetModule.getUiContent().setTimeFromData({ start : data.records[0].get('globalStart'),
+                                                                            stop  : data.records[0].get('globalStop')});     
+                              me.updateDuration();
+                          }
+                        return true;
+                        }
+                    });
+                  }
+                }
+                
+        });
+                                                                       
+        this.cardContainer = 
+        {
+                xtype: 'container',
+                flex: 4,
+                width: '99%',
+                layout: 'card',
+                border: false,
+                activeItem: 1,
+                items: 
+                [                           
+                    this.TTGrid,  
+                    this.intervalSel
+                ],
+                listeners: 
+                {
+                    afterrender: function (container,opt)
+                    {
+                        this.layout.setActiveItem(this.initialConfig.activeItem);
+                    }
+                }
+        };
+        
+        this.timeSrc = new Ext.form.RadioGroup(
+            {
+                height: 15,
+                columns: 2,
+                items: 
+                [
+                    {
+                        boxLabel: 'Time Table', 
+                        name: 'timesrc_'+this.id, 
+                        inputValue: amdaModel.AmdaTimeObject.inputTimeSrc[0]//'TimeTable',                   
+                    },
+                    {
+                        boxLabel: 'Interval', 
+                        name: 'timesrc_'+this.id, 
+                        inputValue: amdaModel.AmdaTimeObject.inputTimeSrc[1],//'Interval', 
+                        checked: true                    
+                    }
+                ],	    
+                listeners: 
+                {
+                        scope: this,
+                        change: function(radio, newValue, oldValue, options)
+                        {		      			    
+                            var ttIndex =  newValue['timesrc_'+this.id] === amdaModel.AmdaTimeObject.inputTimeSrc[0] ? 0 : 1 ;		      
+                            if (this.rendered)
+                            {				 
+                                    radio.nextSibling().layout.setActiveItem(ttIndex);
+                            } 
+                            else 
+                            {				 
+                                    this.cardContainer.activeItem = ttIndex;
+                            }		   
+                        }
+                }               
+        });
+        
+        var config = 
+        {
+                style: { borderColor: '#98c0f4', borderWidth: '2px' },   
+                title: 'Time Selection',
+                items: 
+                [
+                    this.timeSrc,
+                    this.cardContainer
+                ]
+        };
+	 
+	Ext.apply(this, config);
+        this.callParent(arguments);
+    }
+});
diff --git a/js/app/views/TimeTableOperationUI.js b/js/app/views/TimeTableOperationUI.js
new file mode 100644
index 0000000..5b15402
--- /dev/null
+++ b/js/app/views/TimeTableOperationUI.js
@@ -0,0 +1,309 @@
+/**
+ * Project   : AMDA-NG
+ * Name      : TimeTableOperationUI.js
+ * @class 	 amdaUI.TimeTableOperationUI
+ * @extends  Ext.container.Container
+ * @brief	 Time Table Operations Module UI definition (View)
+ * @author 	 Myriam
+ * @version  $Id: TimeTableOperationUI.js 1937 2013-11-27 14:42:41Z myriam $
+ ********************************************************************************
+ *    FT Id     :   Date   : Name - Description
+ *******************************************************************************
+ *             01/09/2011: Myriam - Migration extjs4
+ */
+
+Ext.define('amdaUI.TimeTableOperationUI', {
+	extend: 'Ext.container.Container',
+	alias: 'widget.panelTtsOpe',
+
+	constructor: function(config) {			
+		this.init(config);
+		this.callParent(arguments);
+	},
+
+	addTT : function(newTTName,newTTid) {
+		// search for an existing record in store with this unique name
+        var existingIndex = this.TTGrid.store.findExact( 'name', newTTName);
+        // if no corresponding TT found
+        if (existingIndex == -1){
+            // adding the time table to the TTGrid of TT download 
+            var r = Ext.create('amdaModel.TTobject', { id: newTTid, name: newTTName });
+            this.TTGrid.store.insert(this.TTGrid.store.getCount(),r);   
+        }  
+	}, 
+
+	findValidName : function(originalName, crtIndex, module, onValidName){
+		if (module == null)
+			return;
+		
+		if (originalName == "")
+			return;
+		
+		originalName = originalName.replace(" ", "_");
+		
+		var crtName = originalName;
+		if (crtIndex > 0)
+			crtName = originalName + "_" + crtIndex;
+		
+		var me = this;
+		
+        module.linkedNode.isValidName(crtName, function (res) {
+    		if (!res)
+    			return;
+    			
+    		if (res.valid)
+    		{
+    			//
+    			onValidName(crtName);
+    			return;
+    		}
+    			
+    		//If name is not valid, increment the index and test the new name
+    		++crtIndex;
+    		me.findValidName(originalName, crtIndex, module, onValidName);
+    			
+    	});
+	},
+
+	/**
+	 * 
+	 * this method will be used on timetableOperation edition when this win is already opened
+	 */
+	setObject : function () {
+	},
+
+	/**
+	 * Check if changes were made before closing window 
+	 * @return false
+	 */	
+	fclose : function() {
+		return false;
+	},
+	
+	init : function(config) {    
+
+	    var store = Ext.create('Ext.data.Store', {
+	        model: 'amdaModel.TTobject'	
+	    });
+
+        this.TTGrid = Ext.create('Ext.grid.Panel', {
+        	anchor: '80% 85%',
+            itemId: 1,
+            store : store,  
+            columns: [ 
+                Ext.create('Ext.grid.RowNumberer', { width: 20 } ),
+                { header: "Time Table Name", dataIndex: 'name', flex:1, sortable : false },
+                { 
+                    width: 30, renderer: function(){
+                        return'<div class="icon-remover" style="width: 15px; height: 15px;"></div>';
+                    }
+                }
+            ]
+		,
+	    listeners :
+		{
+		  render : function(o,op)
+		  {
+		    var me = this;
+		    var el = me.body.dom;
+		    var dropTarget = Ext.create('Ext.dd.DropTarget', el, {
+		        ddGroup: 'explorerTree',
+		        notifyEnter : function(ddSource, e, data) 
+		        {
+		    	  
+		        },
+		        notifyOver  : function(ddSource, e, data)
+		        {
+		        	if ((data.records[0].data.nodeType == 'timeTable') && (data.records[0].data.leaf))
+		        	{
+		        	  this.valid = true;
+		        	  return this.dropAllowed;
+		        	}
+		        	this.valid = false;
+		        	return this.dropNotAllowed;
+		        },
+		        notifyDrop  : function(ddSource, e, data)
+		        {
+		          if (!this.valid)
+		            return false;
+		          var timeTableOperationModule = myDesktopApp.getLoadedModule(myDesktopApp.dynamicModules.tt_op.id);
+		          if (!timeTableOperationModule)
+		        	  return false;
+		          timeTableOperationModule.getUiContent().addTT(data.records[0].get('text'),data.records[0].get('id'));
+		          return true;
+		        }
+		    });
+		  }
+		}
+        });		
+        this.TTGrid.on('cellclick', function(view, cell, cellIndex, record, row, recordIndex, e){
+            if (cellIndex == 2)
+            	    this.TTGrid.getStore().remove(record);
+        },this);
+        
+
+		var myConf = {
+		    layout: 'border',
+		    defaults: { layout: 'fit', border: false },
+			items: [
+			  {
+				 xtype: 'form',
+                 region: 'center',
+                 buttonAlign: 'left',
+                 bodyStyle: {background : '#dfe8f6'},
+                 padding: '5 5 5 5',
+                 layout: {type: 'vbox', pack: 'start', align: 'stretch'},	
+                 items: [ 
+			        {xtype: 'splitter', height: 15},
+                    {						        	        	        	
+                        xtype: 'container',
+                        border: false,
+                        padding: '0 0 5 5',
+                        flex: 4,					
+                        layout: 'fit',
+                        items: [ this.TTGrid ] 					        	        
+                    }			        
+			        ],            	
+			        fbar: [
+			               {
+			            	   text: 'Merge',
+			            	   scope: this,
+			            	   handler: function(){
+				            	   	if (this.TTGrid.getStore().count()==0) {
+				            	   		Ext.Msg.show({title: "Time Table Operations", msg: "Please select at least one time table", icon: Ext.MessageBox.WARNING, buttons: Ext.Msg.OK});
+				            	   		return;
+				            	   	}
+			            	   		var tts = this.TTGrid.getStore().data.items;
+			            	   		var ttids = [];
+			            	   		var name= "";
+			            	   		Ext.each(tts, function(tt, index) {
+			            	   			ttids[index] = tt.data.id;
+			            	   			name = name + tt.data.name + " ";
+			            	   		});
+			            	   		// Time table's name and history field
+			            	        if ( ttids.length == 1 ) {
+			                       		var newTabName = tts[0].data.name + "_M";
+			                       		var history = "Merged intervals from "+name;
+			                    	} else if ( ttids.length == 2 ) {
+			                       		var newTabName = tts[0].data.name + "_M_" + tts[1].data.name;
+			                       		var history = "Union between "+ name;
+			                    	}	
+			                    	else {
+			                       		var newTabName = ttids.length + "_tables_M";			                       		
+			                       		var history = "Union between " + name;
+			                    	}
+
+			            	        var me = this;
+			            	        myDesktopApp.getLoadedModule(myDesktopApp.dynamicModules.tt_op.id, true, function (module) {
+			            	        	
+				            	        
+				            	        me.findValidName(newTabName, 0, module, function (validName) {
+				            	        	AmdaAction.merge({ids:ttids, name:validName, history:history},function(result, e){		
+					            	   			var t = e.getTransaction();
+					            	   			if (e.status) {	
+					            	   				// SUCCESS  
+					            	   				if (result && !result.error) {
+					            	   					module.linkedNode.set('id',result.id);
+					            	   					module.linkedNode.set('text', validName);
+					            	   					module.linkedNode.set('object',null);
+					            	   					module.linkedNode.set('info',result.info);
+					            	   					module.linkedNode.getRootNode().appendChild(module.linkedNode);
+					            	   					module.linkedNode.editLeaf();
+					            	   				} else {
+					            	   					// EXCEPTION : 
+					            	   					Ext.Msg.show({title: "Time Table Operations", msg: t.action + "." + t.method + " : " + e.message, icon: Ext.MessageBox.ERROR, buttons: Ext.Msg.OK});
+					            	   				}
+					            	   			}
+					            	   			else
+					            	   			{
+					            	   				// FAILURE
+					            	   				Ext.Msg.show({title:'Error System', msg: e.message, icon: Ext.MessageBox.ERROR, buttons: Ext.Msg.OK});
+					            	   			}   
+					            	   		},this); 
+				            	        	
+				            	        	// New node for another operation
+					            	        module.createLinkedNode();
+					            	       
+				            	        });
+			            	        });  
+			               		}  
+			               },
+			               {
+			            	   text: 'Intersect',
+			            	   scope: this,
+			            	   handler: function(){
+				            	   	if (this.TTGrid.getStore().count()!==2) {
+				            	   		Ext.Msg.show({title: "Time Tables Operations", msg: "Intersection is only available for 2 tables", icon: Ext.MessageBox.WARNING, buttons: Ext.Msg.OK});
+				            	   		return;
+				            	   	}
+				            	   	var tts = this.TTGrid.getStore().data.items;
+			            	   		var ttids = [];
+			            	   		Ext.each(tts, function(tt, index) {
+			            	   			ttids[index] = tt.data.id;
+			            	   		});
+			            	   		// Time table's name and history field
+			            	   		var newTabName = tts[0].data.name + "_I_" + tts[1].data.name;
+			            	   		var history = "Intersection between "+ tts[0].data.name + " and " + tts[1].data.name;
+			            	        
+			            	   		var me = this;
+			            	        myDesktopApp.getLoadedModule(myDesktopApp.dynamicModules.tt_op.id, true, function (module) {
+			            	        	
+				            	        
+			            	        	me.findValidName(newTabName, 0, module, function (validName) {
+				            	        	AmdaAction.intersect({ids:ttids, name:newTabName, history:history},function(result, e){		
+					            	   			var t = e.getTransaction();
+					            	   			if (e.status) {	
+					            	   				// SUCCESS  
+					            	   				if (result && !result.error) {
+					            	   					if ( result  == "empty" ) Ext.Msg.show({title: "Time Tables Operations", msg: "The intersection of these tables is empty ", icon: Ext.MessageBox.WARNING, buttons: Ext.Msg.OK});
+					            	   					else {
+					            	   						module.linkedNode.set('id',result.id);
+					            	   						module.linkedNode.set('text', validName);
+					            	   						module.linkedNode.set('object',null);
+					            	   						module.linkedNode.set('info',result.info);
+					            	   						module.linkedNode.getRootNode().appendChild(module.linkedNode);
+					            	   						module.linkedNode.editLeaf();
+					            	   					}
+					            	   				} else {
+					            	   					// EXCEPTION : 
+					            	   					Ext.Msg.show({title: "Time Tables Operations", msg: t.action + "." + t.method + " : " + e.message, icon : Ext.MessageBox.ERROR, buttons: Ext.Msg.OK});
+					            	   				}
+					            	   			}
+					            	   			else
+					            	   			{
+					            	   				// FAILURE
+					            	   				Ext.Msg.show({title:'Error System', msg: e.message, icon: Ext.MessageBox.ERROR, buttons: Ext.Msg.OK});
+					            	   			}   
+					            	   		},this); 
+				            	        	
+				            	        	// New node for another operation
+					            	        module.createLinkedNode();
+					            	        
+				            	        });
+			            	        });   
+			               	  }
+			               }
+			              ]
+               },                            
+               {
+                   xtype: 'panel',
+                   title: 'Information',
+                   region: 'south',
+                   height: 100,
+                   collapsible: true,
+                   layout: 'fit',
+                   autoHide: false,
+                   iconCls: 'icon-information',
+		   bodyStyle: 'padding:5px',
+                   loader: {
+ 				      autoLoad: true,
+ 				      url: helpDir+'ttOperationsHOWTO'
+ 				    }
+               }
+            ]   
+		};
+
+		Ext.apply (this , Ext.apply (arguments, myConf));     
+
+	}
+});
\ No newline at end of file
diff --git a/js/app/views/TimeTableUI.js b/js/app/views/TimeTableUI.js
new file mode 100755
index 0000000..2e8b25c
--- /dev/null
+++ b/js/app/views/TimeTableUI.js
@@ -0,0 +1,791 @@
+/**
+ * Project   : AMDA-NG
+ * Name      : TimeTableUI.js
+ * @class 	 amdaUI.TimeTableUI
+ * @extends  Ext.container.Container
+ * @brief	 Time Table Module UI definition (View)
+ * @author 	 Myriam
+ * @version  $Id: TimeTableUI.js 2075 2014-02-11 11:30:14Z elena $
+ ********************************************************************************
+ *    FT Id     :   Date   : Name - Description
+ *******************************************************************************
+ *             08/06/2011: Myriam - Migration extjs4
+ */
+
+Ext.define('amdaUI.TimeTableUI', {
+	extend: 'Ext.container.Container',
+	alias: 'widget.panelTimeTable',
+	
+	requires: [
+            'Ext.ux.grid.FiltersFeature',
+            'Ext.ux.grid.filter.DateFilter',
+            'Ext.ux.grid.filter.NumericFilter',
+            'amdaUI.OperationsTT',
+            'amdaUI.StatisticalPlug',
+            'Ext.grid.plugin.BufferedRenderer'
+	],
+	
+	statics: {
+        COL_TO_HIDE : 'colToHide'
+    },
+       
+    status: null,
+    
+	constructor: function(config) {          	 
+		this.init(config);
+	 	this.callParent(arguments);
+	 	// load object into view
+	 	this.loadObject();
+	},
+
+	/**
+	 * set the current editing object
+	 * this method will be used on timetable edition when this win is already opened
+	 */
+	setObject : function (object) {
+		// set object
+		this.object = object;
+		
+		// load object into view
+		this.loadObject();
+        
+		// show the default duration column
+		this.TTGrid.headerCt.getGridColumns()
+		Ext.Array.each(this.TTGrid.headerCt.getGridColumns(), function(item,index,all){
+			// if item is the default duration column
+			if ( item.id == amdaUI.TimeTableUI.COL_TO_HIDE+'2' ) {
+				// show this column
+				item.show();
+			}
+		});    
+        // fire the refresh event (to statistical plugin)
+        this.fireEvent("refresh");
+	// global event
+	myDesktopApp.EventManager.fireEvent("refresh");
+	},
+	
+	/**
+	 * load object timetable into this view
+	 */
+	loadObject : function(){    
+        // load object into form
+        this.formPanel.getForm().loadRecord(this.object);
+        
+        this.status = null;
+        
+        //
+        var me = this;
+        
+        var onAfterInit = function(result, e) {
+        	if (!result || !result.success)
+        	{
+        		if (result.message)
+        			myDesktopApp.errorMsg(result.message);
+        		else
+        			myDesktopApp.errorMsg('Unknown error during cache initialisation');
+        		return;
+        	}
+        	
+        	me.TTGrid.getSelectionModel().deselectAll();
+        	        	
+        	// clear filters
+        	me.TTGrid.getStore().clearFilter(true);
+        
+    		//clear sort
+        	me.TTGrid.getStore().sorters = new Ext.util.MixedCollection();
+        	
+        	//set cache token to the Time Table object
+        	me.object.set('cacheToken', result.token);
+        	
+        	me.TTGrid.getStore().reload();
+        	
+        	me.status = result.status;
+        	
+        	//Statistical plugin
+        	me.fireEvent("refresh");
+        };
+        
+        if (this.object.get('fromPlugin'))
+        {
+        	if (this.object.get('objFormat') && this.object.get('objFormat') != '')
+        	{
+        		//From uploaded file
+        		AmdaAction.initTTCacheFromUploadedFile(this.object.get('objName'), this.object.get('objFormat'), onAfterInit);
+        	}
+        	else
+        	{
+        		//From tmp object (ie Search result)
+        		AmdaAction.initTTCacheFromTmpObject(this.object.get('folderId'), this.object.get('objName'), onAfterInit);
+        	}
+        }
+        else
+        {
+        	var typeTT = myDesktopApp.getLoadedModule(myDesktopApp.dynamicModules.tt.id).linkedNode.data.nodeType;
+        	if (this.object.get('id') == '')
+        	{
+        		//Init empty cache
+        		AmdaAction.initTTCache(onAfterInit);
+        	}	
+        	else
+        	{
+        		//From existing TT file
+        		AmdaAction.initTTCacheFromTT(this.object.get('id'), typeTT, onAfterInit);
+        	}
+        }
+	},
+
+	/**
+	* update this.object from form
+	*/
+	updateObject : function(){
+		this.updateCount();
+		
+		// get the basic form
+	    var basicForm = this.formPanel.getForm();        
+	    var updateStatus = true;
+
+            var fieldsWithoutName = basicForm.getFields().items;
+            Ext.Array.each(fieldsWithoutName, function(item, index,allItems){
+                if(item !== this.fieldName) { 		     
+                    if (!item.isValid()) {
+                        // set update isn't allowed
+                        updateStatus = false;    
+                    }
+                }
+            }, this);
+		// if the update is allowed
+            if (updateStatus) {
+            /// real object update
+            // update TimeTable object with the content of form
+                basicForm.updateRecord(this.object);	
+            }
+            // return the update status
+            return updateStatus;	    
+	},	
+
+	updateCount : function() {
+		this.object.set('nbIntervals',this.TTGrid.getStore().getTotalCount());
+		this.formPanel.getForm().findField('nbIntervals').setValue(this.object.get('nbIntervals'));
+	},
+	
+	/*	    
+	 * save method called by Save button
+	 */
+	saveProcess : function(toRename){
+            var timeTableModule = myDesktopApp.getLoadedModule(myDesktopApp.dynamicModules.tt.id); 
+	      
+            // if the name has been modified this is a creation
+            if (timeTableModule.contextNode &&  (timeTableModule.contextNode.data.id == 'sharedtimeTable-treeRootNode')) { 
+            	timeTableModule.linkedNode = null;	    		      
+            	timeTableModule.createLinkedNode();
+            	timeTableModule.createObject(this.object.getJsonValues());     
+            	var ttobj = timeTableModule.linkedNode.get('object');                                                    
+                // synchronisation of objects
+                this.object = ttobj;
+            	timeTableModule.linkedNode.create();
+            }
+            else  if (this.fclose() /*TimeTable object has been modified*/) {
+             if (this.object.isModified('name') || this.object.get('fromPlugin')) {
+	            
+                // if object already has an id : it's a 'rename' of an existing TimeTable
+                if (this.object.get('id')){
+                    // the context Node is the parent node of current edited one
+                    var contextNode = timeTableModule.linkedNode.parentNode;
+                    // link a new node to the TimeTableModule
+                    timeTableModule.createLinkedNode();
+                    // set the contextNode
+                    timeTableModule.linkedNode.set('contextNode',contextNode);
+                    // create a new object linked
+                    timeTableModule.createObject(this.object.getJsonValues());
+                    
+                    var ttobj = timeTableModule.linkedNode.get('object');                                                    
+                    // synchronisation of objects
+                    this.object = ttobj;
+                    if (toRename) timeTableModule.linkedNode.toRename = true;
+                } 
+                timeTableModule.linkedNode.create({callback : function ($action) {timeTableModule.linkedNode.update();}, scope : this});
+	         } else {
+	        	 //update
+	        	 timeTableModule.linkedNode.update();
+	         }
+	    }
+	},
+	
+	/**
+	 * overwrite metod called by Save button
+	 */
+	overwriteProcess : function(btn){	
+		if (btn == 'cancel') return;
+           
+        this.fieldName.clearInvalid();
+		this.saveProcess(true);		
+		
+	},
+	
+	addInterval : function(start, stop) {
+	   AmdaAction.addTTCacheInterval({'start' : start, 'stop' : stop},function (result, e) {
+		   this.TTGrid.getStore().reload();
+		   this.status = result.status;
+	   }, this);
+	},
+	
+	init : function(config) {
+	    
+	    this.object =   config.object;
+	     
+	    this.fieldName = new Ext.form.field.Text({
+                fieldLabel: 'Name*',
+                allowBlank : false,
+                stripCharsRe: /(^\s+|\s+$)/g,
+                emptyText: 'Please no spaces!',
+                name: 'name',
+                anchor: '100%',
+                validateOnChange: false,
+                validateOnBlur: false,
+                validFlag: false,
+	            validator : function() {
+	            	return this.validFlag;
+	            }
+	    });
+	    
+	    this.formPanel = new Ext.form.Panel({
+            bodyStyle: {background : '#dfe8f6'},
+            id: 'formTimeTable',
+            flex: 4,
+            model : 'amdaModel.TimeTable',
+            trackResetOnLoad : true, // reset to the last loaded record
+            border : false,
+            fieldDefaults: { labelWidth: 80 },
+            items: [
+                this.fieldName,      
+                {
+                    xtype: 'fieldcontainer',
+                    layout: 'hbox',
+                    fieldLabel:'Creation date',
+                    items: [
+                        {
+                            xtype:'datefield', width: 200, 
+                            name: 'created', disabled: true, 
+                            hideTrigger: true, format: 'Y/m/d H:i:s'
+                        },
+                        { xtype:'component', width: 20 },
+                        { xtype:'displayfield', value: 'Intervals:', width: 50 },
+                        { xtype:'component', width: 8 },
+                        { xtype:'textfield', name: 'nbIntervals', disabled: true, width: 50 }
+                    ]                                                                       
+                },
+                {
+                    xtype: 'textarea',
+                    name: 'description',
+                    fieldLabel: 'Description',
+                    anchor: '100% 50%'
+                },
+                {
+                    xtype: 'textarea',
+                    name: 'history',
+                    fieldLabel: 'Operation log',
+                    anchor: '100% 30%'
+                }
+            ]
+
+        });
+	    
+	    var store = Ext.create('Ext.data.Store', {
+	        model: 'amdaModel.Interval',
+	        autoDestroy: false,
+	        pageSize : 200,
+		  buffered : true,
+	      autoLoad: true,
+	      purgePageCount: 0,
+	 	remoteSort: true,
+	        listeners: { 
+	            load: function(store,records) {
+	            	
+ 	              //  alert('nb of records in store:'+records.length );          
+                        myDesktopApp.EventManager.fireEvent('refresh');
+                        this.TTGrid.getView().refresh();
+                        this.TTGrid.getSelectionModel().refresh();
+                        this.updateCount();
+                        //Statistical plugin
+             		   	this.fireEvent("refresh");
+	            },
+	            prefetch : function(store, records, successful, operation, eOpts) {
+	            	if (operation && (operation.action == 'read'))
+	            	{
+	            		if (operation.response && operation.response.result && operation.response.result.success)
+	            			this.status = operation.response.result.status;
+	            	}
+	            },
+	            remove: function(store) {
+	            	this.updateCount();
+	            	//Statistical plugin
+         		   	this.fireEvent("refresh");
+	            },
+	            add:  function(store) {
+	            	this.updateCount();
+	            	//Statistical plugin
+         		   	this.fireEvent("refresh");
+	            },
+	            datachanged: function(store){
+	            	this.updateCount();
+	            	//Statistical plugin
+         		   	this.fireEvent("refresh");
+	    		},
+	            scope : this
+	        } 
+	    });      
+     
+	    var filters = {
+	        ftype: 'filters',
+	        encode: true, // json encode the filter query
+	        local: false,   // defaults to false (remote filte
+	        filters: [
+                { type: 'numeric', dataIndex: 'durationHour'},
+                { type: 'numeric', dataIndex: 'durationMin'},  
+                { type: 'numeric', dataIndex: 'durationSec'},  		     
+                { type: 'date', dataIndex: 'start',  dateFormat: 'Y-m-d'},
+                { type: 'date', dataIndex: 'stop',  dateFormat: 'Y-m-d' }
+            ]
+	    };  
+
+	    var cellEditing = Ext.create('Ext.grid.plugin.CellEditing',{
+	    		onEditComplete : function(ed, value, startValue) {
+	    	        var me = this,
+	    	            activeColumn = me.getActiveColumn(),
+	    	            context = me.context,
+	    	            record;
+
+	    	        if (activeColumn) {
+	    	            record = context.record;
+
+	    	            me.setActiveEditor(null);
+	    	            me.setActiveColumn(null);
+	    	            me.setActiveRecord(null);
+	    	    
+	    	            context.value = value;
+	    	            if (!me.validateEdit()) {
+	    	                me.editing = false;
+	    	                return;
+	    	            }
+
+	    	            // Only update the record if the new value is different than the
+	    	            // startValue. When the view refreshes its el will gain focus
+	    	            if (!record.isEqual(value, startValue)) {
+	    	            	var obj = null;
+	    	            	if (activeColumn.dataIndex == 'start')
+	    	            		obj = {
+	    	            			'cacheId' : record.get('cacheId'),
+	    	            			'start'   : value
+	    	            		};
+	    	            	else if (activeColumn.dataIndex == 'stop')
+	    	            		obj = {
+	    	            			'cacheId' : record.get('cacheId'),
+	    	            			'stop'   : value
+	    	            		};
+	    	            	else
+	    	            	{
+	    	            		me.editing = false;
+		    	                return;
+	    	            	}
+	    	            		
+	    	            	//context.grid.getSelectionModel().deselectAll();
+	    	            	//Interval is modified on the server side
+	    	            	AmdaAction.modifyTTCacheInterval(obj, function (result, e) {
+	    	            		var ttModule = myDesktopApp.getLoadedModule(myDesktopApp.dynamicModules.tt.id);
+                    			if (ttModule)
+                    				ttModule.getUiContent().status = result.status;
+	    	            		context.store.reload({
+	                        		callback : function(records, options, success) {
+	                        			context.view.refresh();
+	                        			context.view.bufferedRenderer.scrollTo(context.rowIdx, true, function() {
+	                        				me.fireEvent('edit', me, context);
+		            	    	            me.editing = false;
+	                        			}, me);	    	            
+	                        		}
+	                        	});
+	                        }, this);
+	    	            }
+	    	        }
+	    	    }
+	    
+	    });
+
+	    this.TTGrid =  Ext.create('Ext.grid.Panel', {
+	        store : store,
+	        features: [filters],
+	        columnLines: true,
+	        columns: [ 
+                {
+                	xtype: 'rownumberer',
+                	width: 50,
+                	renderer: function(value, metaData, record, row, col, store, gridView){
+                		var msg = record.index;
+                		if (record.get('isNew') || record.get('isModified'))
+                		{
+                			msg += ' *';
+                			metaData.style = 'font-weight: bold'
+                		}
+               	      	return msg;
+                    }
+                },
+                {   
+                    header: 'Start Time', dataIndex: 'start',  width: 120,
+                    editor: { xtype:'datefield', allowBlank:false, hideTrigger: true,  format : 'Y-m-d\\TH:i:s'},                              
+                    renderer: function(value){  
+                        if (value != null) {
+                            if(Ext.isDate(value)){
+                                return Ext.Date.format(value, 'Y-m-d\\TH:i:s');
+                            } else {
+                                return Ext.Date.format(new Date (value), 'Y-m-d\\TH:i:s');
+                            }
+                        } else {
+                            return value;
+                        }
+                    }
+                },
+                {  
+                    header: 'Stop Time', dataIndex: 'stop', width: 120, 
+                    editor: { xtype: 'datefield', allowBlank: false, hideTrigger: true,  format : 'Y-m-d\\TH:i:s'},
+                    renderer: function(value) {
+                        if (value != null) {
+                            if(Ext.isDate(value)){
+                                return Ext.Date.format(value, 'Y-m-d\\TH:i:s');
+                            } else {
+                                return Ext.Date.format(new Date (value), 'Y-m-d\\TH:i:s');
+                            }
+                        } else {
+                            return value;
+                        }
+                    }
+                },                             
+                {
+                    header: 'Duration (hour)',  width: 120, dataIndex: 'durationHour',
+                    id: amdaUI.TimeTableUI.COL_TO_HIDE+'1',
+                    hidden: true,
+                    renderer: function(value) {
+                        return Ext.util.Format.number(value,'0.00');
+                    },
+                    listeners: {
+                        beforeshow : function(){
+                            Ext.Array.each(this.ownerCt.getGridColumns(), function(item,index,all){
+                                // if item is a column to hide automatically
+                                if ( Ext.util.Format.substr(item.id, 0, amdaUI.TimeTableUI.COL_TO_HIDE.length) == amdaUI.TimeTableUI.COL_TO_HIDE ) {
+                                    // if item isn't the column which is being declared and is not hidden
+                                    if ( item.id != amdaUI.TimeTableUI.COL_TO_HIDE+'1' && !item.isHidden() ){
+                                        // hide this column
+                                        item.hide();
+                                    }
+                                }
+                            });
+                        }
+                    }
+                },                             
+                {
+                	header: 'Duration (min)',  width: 120, dataIndex: 'durationMin',
+                	id: amdaUI.TimeTableUI.COL_TO_HIDE+'2',
+                	renderer: function(value) {
+                		return Ext.util.Format.number(value,'0.00');
+                	},
+                    listeners: {
+                        beforeshow : function(){
+                            Ext.Array.each(this.ownerCt.getGridColumns(), function(item,index,all){
+                                // if item is a column to hide automatically
+                                if ( Ext.util.Format.substr(item.id, 0, amdaUI.TimeTableUI.COL_TO_HIDE.length) == amdaUI.TimeTableUI.COL_TO_HIDE ) {
+                                    // if item isn't the column which is being declared and is not hidden
+                                    if ( item.id != amdaUI.TimeTableUI.COL_TO_HIDE+'2' && !item.isHidden() ){
+                                        // hide this column
+                                        item.hide();
+                                    }
+                                }
+                            });
+                        }
+                    }
+                },                             
+                {
+                    header: 'Duration (sec)',  width: 120, dataIndex: 'durationSec',
+                    id: amdaUI.TimeTableUI.COL_TO_HIDE+'3',
+                    hidden: true,
+                    renderer: function(value) {
+                        return Ext.util.Format.number(value,'0.00');
+                    },
+                    listeners: {
+                        beforeshow : function(){
+                            Ext.Array.each(this.ownerCt.getGridColumns(), function(item,index,all){
+                                // if item is a column to hide automatically
+                                if ( Ext.util.Format.substr(item.id, 0, amdaUI.TimeTableUI.COL_TO_HIDE.length) == amdaUI.TimeTableUI.COL_TO_HIDE ) {
+                                    // if item isn't the column which is being declared and is not hidden
+                                    if ( item.id != amdaUI.TimeTableUI.COL_TO_HIDE+'3' && !item.isHidden() ){
+                                        // hide this column
+                                        item.hide();
+                                    }
+                                }
+                            });
+                        }
+                    }
+                }
+            ], 
+            frame: true,
+            dockedItems: [{
+                xtype: 'toolbar', 
+                items: [{
+                    iconCls: 'icon-add',
+                    scope: this,
+                    handler: function(){
+                        cellEditing.cancelEdit();
+                        
+                        var selection = this.TTGrid.getView().getSelectionModel().getSelection()[0];
+                        var row = 0;
+                        if (selection)
+                        	row = store.indexOf(selection) + 1;
+                        
+                        var me = this;
+                        AmdaAction.addTTCacheInterval({'index' : row}, function (result, e) {
+                        	this.status = result.status;
+                        	this.TTGrid.getStore().reload({
+                        		callback : function(records, options, success) {
+                        			me.TTGrid.getView().bufferedRenderer.scrollTo(row, false, function() {
+                        				cellEditing.startEditByPosition({row: row, column: 1});	
+                        			}, me);	
+                        		}
+                        	});
+                        }, this);
+                    }
+                }, {
+                    iconCls: 'icon-delete',
+                    disabled: true,
+                    itemId: 'delete',
+                    scope: this,
+                    handler:  function(){
+                        var selection = this.TTGrid.getView().getSelectionModel().getSelection()[0];
+                        if (selection) {
+                        	var rowId = selection.get('cacheId');
+                        	AmdaAction.removeTTCacheIntervalFromId(rowId, function (result, e) {
+                        		this.status = result.status;
+                            	this.TTGrid.getStore().reload();
+                            }, this);
+                        }
+                    }
+                },
+                '->',
+                {
+                    text: 'Clear Filters',
+                    scope: this,
+                    handler: function () {
+                    	this.TTGrid.getStore().clearFilter(true);
+                    } 
+                }
+                ] 
+            }],
+            plugins: [ cellEditing, {ptype : 'bufferedrenderer'} ],
+            listeners : {
+                scope : this,
+                edit : function(editor,e) { 
+                    if (e.record.get('stop') != null && e.record.get('start') != null) {
+                        e.record.set('durationHour', (e.record.get('stop') - e.record.get('start'))/3600000.0);
+                        e.record.set('durationMin', (e.record.get('stop') - e.record.get('start'))/60000.0);
+                        e.record.set('durationSec', (e.record.get('stop') - e.record.get('start'))/1000.0);
+                        //  send refresh event to statistical plugin
+                        this.fireEvent("refresh");
+                    }
+                }
+            }
+	    });
+
+	    this.TTGrid.getSelectionModel().on('selectionchange', function(selModel,selections){
+	        this.TTGrid.down('#delete').setDisabled(selections.length === 0); 
+        }, this);
+    	
+	    var myConf = {
+	        layout: 'border',
+	        defaults: { layout: 'fit', border: false },
+	        items : [
+                {
+                    xtype: 'form',
+                    region: 'center',
+                    buttonAlign: 'left',
+                    bodyStyle: {background : '#dfe8f6'},
+                    padding: '5 5 5 5',
+                    layout: {type: 'hbox', pack: 'start', align: 'stretch'},	
+                    items: [						        	        	        
+                        {
+                            xtype: 'container',
+                            flex: 3.6,
+                            layout: {type: 'vbox', pack: 'start', align: 'stretch'},
+                            items: [
+                                this.formPanel,
+                                {
+                                    xtype: 'operationsTT',
+                                    parent: this,
+                                    flex: 2.5,
+                                    id: 'operation'
+                                }
+                            ]      
+                        }, 
+                        {						        	        	        	
+                            xtype: 'container',
+                            border: false,
+                            padding: '0 0 5 15',
+                            flex: 4,					
+                            layout: 'fit',
+                            items: [ this.TTGrid ] 					        	        
+                        }
+                    ],
+                    fbar:[
+                        {   
+                            xtype: 'button',
+                            text: 'Save',
+                            width: 65,
+                            scope : this,
+                            handler: function () {
+                            	if (this.updateObject()){
+                            		var basicForm = this.formPanel.getForm();      
+                            		// if there's at least one record in the store of TTGrid
+                            		if (this.TTGrid.getStore().getTotalCount()>0) {
+                            			// update TimeTable object which the content of form
+                            			basicForm.updateRecord(this.object);
+
+                            			var me = this;
+                            			this.checkIntervalsStatusForSave(function () {
+                            				//Name validation
+                            				var ttModule = myDesktopApp.getLoadedModule(myDesktopApp.dynamicModules.tt.id);	
+                            				if (!ttModule)
+                            					return;
+                            				ttModule.linkedNode.isValidName(me.fieldName.getValue(), function (res) {
+        			                    		if (!res)
+        			                    		{
+        			                    			me.fieldName.validFlag = 'Error during object validation';
+        			                    			myDesktopApp.errorMsg(me.fieldName.validFlag);
+        			                    			me.fieldName.validate();
+        			                    			return;
+        			                    		}
+        									  
+        			                    		if (!res.valid)
+        			                    		{
+        			                    			if (res.error)
+        			                    			{
+        			                    				if (res.error.search('subtree') != -1) {  							
+        			                    					Ext.MessageBox.show({title:'Warning', 
+        			                    						msg: res.error+'<br/>Do you want to overwrite it?',
+        			                    						width: 300,
+        			                    						buttons: Ext.MessageBox.OKCANCEL, 
+        			                    						fn : me.overwriteProcess,
+        			                    						icon: Ext.MessageBox.WARNING,
+        			                    						scope : me
+        			                    					});
+        			                    					me.fieldName.validFlag = true;
+        			                    				}
+        			                    				else
+        			                    					me.fieldName.validFlag = res.error;
+        			                    			}
+        			                    			else
+        			                    			{
+        			                    				me.fieldName.validFlag = 'Invalid object name';
+        			                    				myDesktopApp.errorMsg(me.fieldName.validFlag);
+        			                    			}
+        			                    			me.fieldName.validate();
+        			                    			return;
+        			                    		}
+        									  
+        			                    		me.fieldName.validFlag = true;
+        			                    		me.fieldName.validate();
+        			                    		me.saveProcess(false);
+        			                    	});
+                            			});                            
+  				              } else {
+  				                // warning:
+  				                Ext.Msg.alert('No intervals', 'Your time table is invalid, <br>you must have at least one interval');
+  				              }
+                                        }
+                           }                                  
+                        },{ 
+                            xtype: 'button',
+                            text: 'Reset',
+                            width: 65,
+                            scope: this,
+                            handler: function() {
+	                        	var ttModule = myDesktopApp.getLoadedModule(myDesktopApp.dynamicModules.tt.id);			
+	    					    ttModule.createLinkedNode();
+	    					    ttModule.createObject();
+	    					    this.setObject(ttModule.getLinkedNode().get('object'));
+                            }
+                        }, 
+                        {
+                            xtype: 'button',
+                            text: 'Share',
+                            scope: this,
+                            width: 65,
+                            disabled: true,
+                            handler: function () {}
+                        }
+                    ]
+                },                              
+                {
+		  xtype: 'panel', region: 'south',
+		  title: 'Information',
+		  collapsible: true,
+		  height: 100,
+		  autoHide: false,
+		  iconCls: 'icon-information',
+		  bodyStyle: 'padding:5px',
+		  loader: {
+		    autoLoad: true,
+		    url: helpDir+'timetableHOWTO'
+		  }	 		    
+                }
+            ],
+            plugins: [ {ptype: 'statisticalPlugin'} ]                   
+	    };
+	    
+	    Ext.apply (this , Ext.apply (arguments, myConf));	    	    
+	},
+	
+	checkIntervalsStatusForSave : function(onStatusOk) {
+		if (this.status == null)
+			return;
+		
+		if (this.status.nbValid <= 0)
+		{
+			myDesktopApp.errorMsg('Your time table is invalid, <br>you must have at least one valid interval');
+			return;
+		}
+		
+		var msg = '';
+		if (this.status.nbInvalid > 0)
+			msg += 'There are some invalid intervals. Only valid intervals will be saved!<br/>';
+		if (this.status.nbFiltered > 0)
+			msg += 'There are some filtered intervals. Filtered intervals will not be saved!<br/>';
+		if (msg != '')
+		{
+			msg += 'Do you want to continue?';
+			Ext.Msg.show({
+				title:'Warning!',
+				msg: msg,
+				buttons: Ext.Msg.OKCANCEL,
+				fn: function(btnId){
+					if (btnId==='cancel'){
+						// cancel the save action
+					} else {
+						onStatusOk();
+					}
+				},
+				scope: this,
+				icon: Ext.Msg.WARNING
+			});
+			return;
+		}
+		
+		onStatusOk();
+	},
+	
+	/**
+	 * Check if changes were made before closing window 
+	 * @return true if changes
+	 */	
+	fclose : function() {
+		if (this.status == null)
+			return false;
+		
+		var isDirty = this.formPanel.getForm().isDirty() || (this.status.isModified) || (this.status.nbModified > 0) || (this.status.nbNew > 0);
+		return isDirty;
+	}
+});	
diff --git a/js/app/views/UploadPanelUI.js b/js/app/views/UploadPanelUI.js
new file mode 100644
index 0000000..25f2fce
--- /dev/null
+++ b/js/app/views/UploadPanelUI.js
@@ -0,0 +1,528 @@
+/**
+ * Project   : AMDA-NG
+ * Name      : UploadUI.js
+ * @class    amdaUI.UploadUI
+ * @extends  Ext.panel.Panel 
+ * @brief    Upload Panel UI definition (View)
+ * @author 	 Elena
+ * @version  $Id: UploadPanelUI.js 2831 2015-03-26 10:33:42Z elena $            
+ */
+
+Ext.define('amdaUI.UploadPanelUI', {
+        extend: 'Ext.form.Panel',
+        alias: 'widget.panelUpload',
+        
+        requires : [
+                'amdaUI.RemoteSearchPlugin'
+        ],
+        
+        isFile : true,        
+        tmpNode : null,
+                        
+        constructor: function(config) {	  
+            this.init(config);
+            this.callParent(arguments);  		        
+        },
+
+        /*
+         * create MyData linked node and edit in module MyData
+         * update myDataParams info if needed
+         */
+        getObjectCallback : function(result,remoteEvent)
+        {                    
+            var t = remoteEvent.getTransaction();
+            if (result && !result.error) {
+            	// set parameter into node
+            	var me = this;
+                myDesktopApp.getLoadedModule(this.tmpNode.get('moduleId'), true, function (module) {
+                	// myData
+                    if (me.tmpNode.get('nodeType') == amdaModel.MyDataParamNode.nodeType) {		       
+                            var linkedFile = Ext.create('amdaModel.MyDataNode', {leaf : true, text : me.tmpNode.get('text')});
+                            
+                            linkedFile.create(result.mask, result.description, result.maskDesc);
+                            linkedFile.updateMyDataParam(result.mask,result.maskDesc); 
+                            
+                            if (!linkedFile.get('id')) 
+                                linkedFile.set('id',me.tmpNode.get('text'));   
+                   
+                            var paramObj = Ext.create(linkedFile.get('objectDataModel'), result);
+                            linkedFile.set('object',paramObj);
+                            me.tmpNode.set('fileObject',paramObj);
+                    }
+                    else {
+                        // Time Table 
+                        var paramObj = Ext.create(me.tmpNode.get('objectDataModel'), result);
+                        
+                        paramObj.set('fromPlugin',true);
+                        if (result.intervals) {
+                        	paramObj.set('intervals',result.intervals);
+                        	paramObj.set('nbIntervals',result.intervals.length);
+                        }
+                        me.tmpNode.set('object',paramObj);
+                    }	
+                    if (module)
+                    {
+                    	module.setLinkedNode(me.tmpNode); 	      
+                    	module.linkedNode.editInModule();  
+                    }
+                }); 
+            } 
+            else {	   
+                // EXCEPTION : parameter not found !
+                myDesktopApp.errorMsg(t.action + "." + t.method + " : No parameter '"
+                    +this.tmpNode.get('text')+"' found!");	     
+            }
+            loadMask.hide();
+        },
+        
+    /*
+    *  form validation
+    *  TODO markInvalid()?
+    */
+        validate : function() 
+        {
+            var values = this.getForm().getValues();
+
+            if (values['filesrc'] == 'LOCAL') {
+                var locFile = this.isFile ? this.getForm().findField('localFileName').getValue() :
+                                            this.getForm().findField('localTTName').getValue();	 
+            
+                if (!locFile) {
+                myDesktopApp.warningMsg("Select File to Upload");
+                return false;
+                }
+            }
+            else {
+                if (!values['remoteFile'] && !values['remoteTT']) {
+                myDesktopApp.warningMsg("Select File to Upload");
+                return false;
+                }
+            }	     	     
+            return true;
+        },
+
+        
+        //TODO proper parsing
+        updateFormat: function(value) 
+        {    
+            var arrayOfStr = value.split('.');
+            //TODO use down method?	  
+            if (this.isFile) {
+                var radios = Ext.getCmp('filefrmt');
+                var user_format_obj = radios.getValue();	  
+                var user_format = user_format_obj.filefrmt;
+            }
+            else {
+                var radios = Ext.getCmp('ttfrmt');
+                var user_format_obj = radios.getValue();	  
+                var user_format = user_format_obj.ttfrmt;
+            }
+                    
+            var auto_format = user_format;
+            
+            //  auto define format in some special cases 
+            //TODO name without extention => ASCII?
+            if (arrayOfStr.length == 1) auto_format = 'ASCII'; 
+            else  {
+                var suffix = arrayOfStr[arrayOfStr.length - 1].toLowerCase();
+                if (suffix == 'gz') 
+                    suffix = arrayOfStr[arrayOfStr.length - 2].toLowerCase() + '.gz';
+
+                switch (suffix)
+                {
+                        case 'cdf' :  auto_format = 'CDF'; break;
+                        case 'cef.gz' :
+                        case 'cef' :  auto_format = 'CEF'; break;
+                        case 'xml' :  auto_format = 'VOT';
+                        case 'vot' :  auto_format = 'VOT'; break;
+                        case 'nc'  :  auto_format = 'NC'; break;
+                        case 'asc' :
+                        case 'txt' :			 
+                        default : auto_format = 'ASCII'; 			   
+                }
+            }
+ 
+            // set auto format : case when format was not set by user before   
+            if (this.isFile && user_format !== auto_format) {
+                user_format_obj.filefrmt = auto_format;    
+            } else  if (!this.isFile && user_format !== auto_format) {
+                user_format_obj.ttfrmt = auto_format;
+            }	
+                radios.setValue(user_format_obj);
+        },
+ 
+        /*
+         * 
+         */
+        forceUpload : function (url,format)
+        {
+                this.getForm().findField('filesrc').setValue('URL');	
+                
+                switch (format)
+                {
+                        case 'votable' :
+                                this.getForm().findField('filefrmt').setValue('VOT');
+                                break;
+                        case 'cdf' :
+                                this.getForm().findField('filefrmt').setValue('CDF');
+                                break;
+                        default :
+                                //ToDo Error - unknown format
+                                return;
+                }                
+                this.getForm().findField('remoteFile').setValue(url);
+                
+                this.postUpload();
+        },
+        
+        /*
+         * 
+         */
+        postUpload : function()
+        {
+            // 'global' form containing 'partial' forms				      
+            var form = this.getForm();
+            
+            // special validation 	            
+            if(this.validate()){						
+                form.submit({
+                    scope: this,
+                    url: 'php/uploadFile.php',
+                    waitMsg: 'Uploading your file...',
+                    success: function(form, o){                     
+                        this.tmpNode = Ext.create(this.nodeType,{leaf : true, text : o.result.file});
+                        loadMask.show();
+                        AmdaAction.getUploadedObject(o.result.file, o.result.format, this.tmpNode.get('nodeType'), this.getObjectCallback, this);
+                    },
+                    failure: function(form, o) {                    
+                        loadMask.hide();                       
+                        myDesktopApp.errorMsg('Error '+o.result.error); 
+                    }
+                    });
+                }		
+        },
+	
+        /*
+        *  panel config
+        */
+        init : function(config) 
+        {       
+            this.isFile = config.panelType == 'file'? true : false;
+            
+            // file/time table settings	  
+            if (this.isFile) {	    
+            var title = 'Upload File';
+            var  items  = [
+                            { boxLabel: 'ASCII', name: 'filefrmt', inputValue: 'ASCII', checked: true,
+                                    listeners: {
+                                        change: function (cb, nv, ov) {
+                                            if (nv) Ext.getCmp('tf').show();
+                                            else Ext.getCmp('tf').hide();	
+                                        }
+                                        } 
+                            }, 
+                            { boxLabel:  'netCDF&nbsp;<img amda_clicktip="ncTimeFormat" style="vertical-align:bottom" src="js/resources/images/16x16/info_mini.png"', name: 'filefrmt', inputValue: 'NC' },
+                            { boxLabel: 'CDF', name: 'filefrmt', inputValue: 'CDF' },
+                            { boxLabel: 'CEF[GZ]', name: 'filefrmt', inputValue: 'CEF' },
+                            { boxLabel: 'VOTable', name: 'filefrmt', inputValue: 'VOT' }			    
+                        ];
+            var timeFormatId = 'tf';
+            this.formatId = 'nsf';
+            this.localUploadId = 'form-uploadfile';
+            var localUploadName ='localFileName';
+            var remoteUploadName ='remoteFile';
+            this.remoteUploadId = 'form-uploadurl'; 	 
+            this.nodeType = 'amdaModel.MyDataParamNode';
+            //TODO load XML	   
+            var store = Ext.create('Ext.data.Store', {
+                fields: ['value', 'name'],
+                data : [
+                    {"value":"ftp://cdaweb.gsfc.nasa.gov/pub/data/", "name":"CDAWEB/FTP"},		   
+                    {"value":"ftp://ftp.ngdc.noaa.gov/STP/SOLAR_DATA/", "name":"Solar Data"}
+                ]
+            });	   
+            }
+            else {
+            
+            var title = 'Upload Time Table';
+            var  items  = [
+                            {boxLabel: 'ASCII', name: 'ttfrmt', inputValue: 'ASCII', checked: true,
+                                    listeners: {
+                                        change: function (cb, nv, ov) {
+                                            if (nv) Ext.getCmp('tf_tt').show(); 
+                                            else Ext.getCmp('tf_tt').hide();  							 						  
+                                        }
+                                        } 
+                                    },
+                            {boxLabel: 'VOTable', name: 'ttfrmt', inputValue: 'VOT'}			    
+                        ];
+                        
+            var timeFormatId = 'tf_tt'; 
+            this.formatId = 'nsf_tt';
+            this.localUploadId = 'form-uploadtt';
+            var localUploadName ='localTTName';
+            var remoteUploadName ='remoteTT';
+            this.remoteUploadId = 'form-uploadtturl'; 
+            this.nodeType = 'amdaModel.TimeTableNode';
+            //TODO load XML		    
+            var store = Ext.create('Ext.data.Store', {
+                fields: ['value', 'name'],
+                data : []
+                });
+            }  
+            
+            var combo = Ext.create('Ext.form.ComboBox', {
+                flex : 4, 
+                store: store,
+                emptyText: 'Enter Remote Site URL (ftp)',
+                queryMode: 'local',
+                displayField: 'name',
+                valueField: 'value' 
+            });
+	    	  
+            var fieldcontainer = { xtype: 'fieldcontainer', 
+                                fieldLabel: ' ', labelWidth: 0, labelSeparator : '', labelPad : 0,
+                                layout: 'hbox',		
+                                items: [
+                                    combo,
+                                    {
+                                    xtype : 'button',
+                                    flex : 1,
+                                    text: 'Browse It',								   
+                                        handler: function(){					      
+                                            var form = this.up('form').getForm(); 
+                                            var site = form.getFields().getAt(0).getValue(); 					    
+                                            if (site) 						   
+                                                this.up('form').ownerCt.fireEvent('open', site);
+                                            else 
+                                                myDesktopApp.warningMsg("Please Enter Remote Site URL");				 
+                                        } 
+                                    }                     
+                                ]
+            };
+            var radioId = this.isFile ? 'filefrmt' : 'ttfrmt';
+            var fileFormat =  Ext.create('Ext.form.FieldSet', { 			      
+                                title: 'File Format',			     		     
+                                items : [ { 
+                                            xtype: 'radiogroup',
+                                            id : radioId, 
+                                            columns: 3,
+                                            cls: 'x-check-group-alt',
+                                            items: items				
+                                        }
+                                        ]
+            });
+            
+            var Sampling = { xtype: 'radiogroup',	
+                            fieldLabel: 'Time Sampling',	
+                            labelWidth: 90,			  
+                            cls: 'x-check-group-alt',
+                            hidden : !this.isFile,
+                            defaults : {name : 'timesmpl'},
+                            items: [ 			
+                            {boxLabel: 'constant', inputValue: 'constant', checked: true},
+                            {boxLabel: 'variable&nbsp;<img amda_clicktip="variableSampling" style="vertical-align:bottom" src="js/resources/images/16x16/info_mini.png"', inputValue: 'variable'}	  
+                            ] 		
+            };
+	  
+            var dayStart = { xtype: 'checkbox',  
+                            name : 'doy',
+                            hidden : true,
+                            fieldLabel: 'DOY starts from 1',
+                            inputValue: '1'
+            };
+            
+            var nonStandardFormat = 
+            { 
+                                    xtype: 'fieldcontainer',
+                                    defaultType: 'textfield',
+                                    layout: 'anchor',
+                                    defaults: {
+                                        layout: '100%',
+                                        labelWidth : 150					
+                                    }, 
+                                    id : this.formatId, 
+                                    hidden : true,
+                                    items: [  
+                                    { 
+                                        fieldLabel : 'define time format',	
+                                        name : 'nonstd',				   
+                                        value: 'Y-m-d H:i:s',
+                                        enableKeyEvents: true,
+                                        listeners : {
+                                            keyUp : function() {
+                                                    if (this.getValue().indexOf('z') > 0) {
+                                                        this.nextSibling().show();
+                                                    }                                                 
+                                                    if (this.getValue().indexOf('d') > 0) {
+                                                        this.nextSibling().hide();
+                                                    }                                                 
+                                                }
+                                            }
+                                    },
+                                    dayStart,
+                                    { 
+                                        fieldLabel : 'define max time length',
+                                        name : 'timelength',
+                                        value: 'auto' 				    
+                                    }
+                                    ],
+                                    listeners : {                                        
+                                        hide : function() {
+                                                this.items.getAt(1).hide();                                                
+                                            }
+                                    }
+            };	 
+
+            var timeFormat = Ext.create('Ext.form.FieldSet', { 
+                        id: timeFormatId, 
+                        title: 'Time Settings',			     			       
+                        items : [{
+                            xtype: 'radiogroup',
+                            fieldLabel: 'Time Format',
+                            labelWidth: 90,				   
+                            cls: 'x-check-group-alt',
+                            defaults : { name : 'timefrmt'},
+                            items: [						 
+                            {boxLabel: 'standard&nbsp;<img amda_clicktip="standardTimeFormat" style="vertical-align:bottom" src="js/resources/images/16x16/info_mini.png"', inputValue: 'standard', checked: true},     			
+                            {boxLabel: 'no&nbsp;<img amda_clicktip="userTimeFormat" style="vertical-align:bottom" src="js/resources/images/16x16/info_mini.png"', inputValue: 'user', 
+                                listeners: {
+                                    scope : this,
+                                    change: function (cb, nv, ov) {							
+                                    if (nv) 
+                                        Ext.getCmp(this.formatId).show();
+                                    else    
+                                        Ext.getCmp(this.formatId).hide();	
+                                    }
+                                } 					      
+                                }													
+                            ] 				      			  	
+                            },
+                            nonStandardFormat,
+                            Sampling
+                        ]
+                });
+      
+                var localFile = Ext.create('Ext.form.Panel', {			      
+                            id: this.localUploadId,
+                            fileUpload: true,
+                            hideLabels: true,
+                            frame: true,			      
+                            items: [{
+                                    xtype: 'fileuploadfield',							     
+                                    emptyText: 'Select Your File',
+                                    width: 300,
+                                    name: localUploadName,  
+                                    buttonText: 'Browse',
+                                    listeners: {
+                                        scope : this,
+                                        change: function (field, value, e) {							
+                                                this.updateFormat(value);	
+                                        } 
+                                    }
+                                },
+                                {  
+                                    // it is common setting for Local and Remote files
+                                    xtype : 'hiddenfield',
+                                    name: 'MAX_FILE_SIZE',
+                                    value: myDesktopApp.MAX_UPLOADED_FILE_SIZE // 30MB	 			      
+                                }
+                                ] 
+                });      
+      
+                var remoteFile = Ext.create('Ext.form.Panel', {					 
+                                id: this.remoteUploadId,					 
+                                hideLabels: true,
+                                autoHeight: true,					 
+                                frame: true,
+                                hidden : true,
+                                items: [  fieldcontainer,
+                                        { xtype : 'textfield',
+                                            name : remoteUploadName, 
+                                            emptyText: 'Enter Remote File URL (http or ftp)',
+                                            width: 310,
+                                            listeners: {
+                                            scope : this,
+                                            change: function (field, value, e) {							
+                                                    this.updateFormat(value);	
+                                                } 
+                                            }
+                                        } 
+                                ]
+                });
+                                        
+                var uploadForm = Ext.create('Ext.form.FieldSet',{				    			    
+                            title: 'File Source',			     
+                            items : [{ xtype: 'radiogroup',					 
+                                cls: 'x-check-group-alt',
+                                items: [
+                                        {boxLabel: 'Local', name: 'filesrc', inputValue: 'LOCAL', checked: true,
+                                        listeners: {
+                                            scope : this,
+                                            change: function (cb, nv, ov) {
+                                                if (nv == ov) return;
+                                                var local = Ext.getCmp(this.localUploadId);
+                                                var remote = Ext.getCmp(this.remoteUploadId);
+                                                if (nv) {
+                                                    remote.hide();
+                                                    local.show();					
+                                                }
+                                                else  {
+                                                    local.hide();
+                                                    remote.show();									    
+                                                }   
+                                            }
+                                        } 
+                                        },
+                                        {boxLabel: 'URL', name: 'filesrc', inputValue: 'URL'},						 
+                                    ]}]
+                });		      
+                                            
+                var myConf = {
+                            title : title,  
+                            layout: {type: 'vbox', align: 'stretch'},
+                            bodyStyle: { background : '#dfe8f6'},
+                            items : [ 
+                                    uploadForm,
+                                    localFile, 
+                                    remoteFile, 			     
+                                    fileFormat,
+                                    timeFormat	
+                            ],
+                            buttons: [
+                                        {
+                                                text: 'Upload',
+                                                handler: function()
+                                                {
+                                                    this.postUpload();
+                                                },
+                                                scope : this
+                                        },
+                                        {
+                                                text: 'Reset',
+                                                handler: function(){				      
+                                                    this.up('form').getForm().reset();  
+                                                }
+                                        }
+                                    ], 
+                            plugins: [{ptype: 'remoteSearchPlugin'}],
+                            listeners: {
+                                click: {
+                                element: 'el',
+                                fn: function(e,t) {	 		 
+                                    var me = t,
+                                            text = me.getAttribute('amda_clicktip');
+                                        if (text) {
+                                                e.preventDefault();
+                                                AmdaAction.getInfo({name : text}, function(res,e) {					    					   
+                                                            if (res.success) myDesktopApp.infoMsg(res.result);
+                                                }); 
+                                        }
+                                    }
+                                }
+                            }
+                    };
+            
+                Ext.apply (this, Ext.apply(arguments, myConf));	 	  
+        }		 
+});
diff --git a/js/app/views/UploadUI.js b/js/app/views/UploadUI.js
new file mode 100644
index 0000000..6dd49a5
--- /dev/null
+++ b/js/app/views/UploadUI.js
@@ -0,0 +1,64 @@
+/**
+ * Project   : AMDA-NG
+ * Name      : UploadUI.js
+ * @class    amdaUI.UploadUI
+ * @extends  Ext.container.Container 
+ * @brief    Upload Module UI definition (View)
+ * @author 	 Elena
+ * @version  $Id: UploadUI.js 2831 2015-03-26 10:33:42Z elena $	            
+ */
+ 
+ 
+Ext.define('amdaUI.UploadUI', {
+	extend: 'Ext.container.Container',
+	alias: 'widget.panelTabUpload',
+
+	requires: [
+        'amdaUI.UploadPanelUI' 
+	],
+	
+	constructor: function(config) {	  
+		this.init(config);
+		this.callParent(arguments);			        
+	},
+	   	
+	init : function(config) { 
+	  
+	  var myConf = {
+		layout: 'border',		 
+		items: [ {
+			xtype: 'tabpanel',
+			region: 'center',  
+			activeTab : 0,   
+			items : 
+			[ 
+			  { xtype: 'panelUpload', panelType : 'file'},
+			  { xtype: 'panelUpload',  panelType : 'timetable'}
+			]
+		      },
+		      {
+			xtype: 'panel', 
+			region: 'south',
+			title: 'Information',
+			collapsible: true,
+			height: 100,
+			autoHide: false,
+			iconCls: 'icon-information',
+			html: 'Select local or remote file (time table) to upload<br/>File size is limited to <b><i>'
+				+ myDesktopApp.MAX_UPLOADED_FILE_SIZE/1000000+'MB</i></b><br/>Milliseconds are ignored for the moment',
+		        autoScroll : true,
+			loader: {}
+		      }
+		]
+	  	};
+        
+	  Ext.apply (this, Ext.apply(arguments, myConf));
+    },
+    
+    forceUpload : function(url,format) {
+    	//this.setDisabled(true);
+    	this.items.items[0].items.items[0].forceUpload(url,format);
+    	//this.setDisabled(false);
+    }
+	
+});
diff --git a/js/app/views/Viewport.js b/js/app/views/Viewport.js
new file mode 100644
index 0000000..276aba4
--- /dev/null
+++ b/js/app/views/Viewport.js
@@ -0,0 +1,94 @@
+/**
+ * @class AMDA-NG4.Viewport
+ * @extends Ext.Panel
+ * This is a default generated class which would usually be used to initialize your application's
+ * main viewport. By default this is simply a welcome screen that tells you that the app was 
+ * generated correctly.
+ */
+AMDA-NG4.Viewport = Ext.extend(Ext.Panel, {
+    id        : 'viewport',
+    layout    : 'card',
+    fullscreen: true,
+
+    initComponent: function() {
+        var store = new Ext.data.Store({
+            fields: ['text', 'href'],
+            data  : [
+                {
+                    text: 'Touch API',
+                    href: 'http://dev.sencha.com/deploy/touch/docs/'
+                },
+                {
+                    text: 'Touch Examples',
+                    href: 'http://dev.sencha.com/deploy/touch/examples/'
+                }
+            ]
+        });
+
+        Ext.apply(this, {
+            dockedItems: [
+                {
+                    dock : 'left',
+                    xtype: 'list',
+                    store: store,
+                    width: 250,
+
+                    tpl         : '<tpl for="."><div class="link"><strong>{text}</strong></div></tpl>',
+                    itemSelector: 'div.link',
+
+                    listeners: {
+                        itemtap: this.onListItemTap
+                    },
+
+                    dockedItems: [
+                        {
+                            xtype: 'toolbar',
+                            dock : 'top',
+                            ui   : 'light'
+                        }
+                    ]
+                }
+            ],
+
+            items: [
+                {
+                    xtype : 'panel',
+                    layout: 'fit',
+
+                    dockedItems: [
+                        {
+                            dock : 'top',
+                            xtype: 'toolbar',
+                            title: 'Welcome to Sencha Touch'
+                        }
+                    ],
+
+                    items: [
+                        {
+                            xtype: 'panel',
+                            style: 'background:#fff',
+
+                            styleHtmlContent: true,
+
+                            html : [
+                                '<h3>Getting Started</h3>',
+                                '<p>You have successfully generated the AMDA-NG4 application. Currently this app is a blank slate, ',
+                                'with just the minimum set of files and directories. The file creating this interface can be found ',
+                                'in app/views/Viewport.js</p>'
+                            ]
+                        }
+                    ]
+                }
+            ]
+        });
+
+        AMDA-NG4.Viewport.superclass.initComponent.apply(this, arguments);
+    },
+
+    onListItemTap: function(list, index, node, e) {
+        var record = list.getRecord(node);
+
+        window.open(record.get('href'));
+    }
+});
+
diff --git a/js/lib/JSBuilder/bin/Dispatch.js b/js/lib/JSBuilder/bin/Dispatch.js
new file mode 100644
index 0000000..69a987f
--- /dev/null
+++ b/js/lib/JSBuilder/bin/Dispatch.js
@@ -0,0 +1,37 @@
+var JSBuilderPath = system.cwd + '/lib/JSBuilder/';
+
+load(JSBuilderPath + 'src/Loader.js');
+Loader.setBasePath(JSBuilderPath + 'src');
+
+Loader.require([
+    'Ext', 'Cmd', 'Filesystem', 'Platform', 'Cli', 'Logger', 'Project', 'Target', 'Package', 'Build'
+]);
+
+/**
+ * @class Ext.CommandDispatcher
+ * @extends Object
+ * Dispaches to the relevant Cli subclass from the command line 'sencha' command. e.g.
+ * sencha generate xyz is dispatched to whichever Ext.Cli subclass registered itself to
+ * handler the 'generate' command (Ext.generator.Factory in this case).
+ */
+Ext.CommandDispatcher = {
+    types: {},
+    
+    dispatch: function(module, args) {
+        new this.types[module]({args: args});
+    }
+};
+
+Ext.regDispatchable = function(name, constructor) {
+    Ext.CommandDispatcher.types[name] = constructor;
+};
+
+load('src/Generator.js');
+load('src/generators/app/Application.js');
+load('src/generators/controller/Controller.js');
+load('src/generators/model/Model.js');
+
+var args   = system.arguments,
+    module = args[0];
+
+Ext.CommandDispatcher.dispatch(module, args.slice(1));
\ No newline at end of file
diff --git a/js/lib/JSBuilder/bin/Generator.js b/js/lib/JSBuilder/bin/Generator.js
new file mode 100644
index 0000000..55ae8e9
--- /dev/null
+++ b/js/lib/JSBuilder/bin/Generator.js
@@ -0,0 +1,6 @@
+load('src/Generator.js');
+load('src/generators/app/Application.js');
+load('src/generators/controller/Controller.js');
+load('src/generators/model/Model.js');
+
+new Ext.generator.Factory();
diff --git a/js/lib/JSBuilder/bin/JSBuilder.js b/js/lib/JSBuilder/bin/JSBuilder.js
new file mode 100644
index 0000000..e0973f2
--- /dev/null
+++ b/js/lib/JSBuilder/bin/JSBuilder.js
@@ -0,0 +1,2 @@
+load('src/JSBuilder.js');
+new JSBuilder();
diff --git a/js/lib/JSBuilder/jsdb b/js/lib/JSBuilder/jsdb
new file mode 100755
index 0000000..366ba45
Binary files /dev/null and b/js/lib/JSBuilder/jsdb differ
diff --git a/js/lib/JSBuilder/src/Build.js b/js/lib/JSBuilder/src/Build.js
new file mode 100644
index 0000000..3820742
--- /dev/null
+++ b/js/lib/JSBuilder/src/Build.js
@@ -0,0 +1,62 @@
+Loader.require('Parser');
+
+Build = Ext.extend(Target, {
+    getDefaultTarget : function() {
+        return (this.get('id') || this.get('name').replace(/ /g, '').toLowerCase()) + '.js';
+    },
+
+    onCreate: function(file) {
+        Build.superclass.onCreate.apply(this, arguments);
+
+        var project = this.project,
+            verbose = project.builder.get('verbose'),
+            packages = this.get('packages') || [];
+
+        if (verbose && packages.length) {
+            Logger.log('  - ' + packages.length + ' package(s) included in this target.');
+        }
+
+        // Loop over all file includes, read the contents, and write
+        // it to our target file
+        packages.forEach(function(id) {
+            var pkg = this.project.getPackageById(id),
+                content;
+
+            if (!pkg) {
+                return true;
+            }
+
+            if (verbose) {
+                Logger.log('    + ' + pkg.get('target'));
+            }
+
+            pkg = new Stream(pkg.get('targetPath'));
+            content = pkg.readFile();
+            pkg.close();
+
+            file.writeln(content);
+            return true;
+        }, this);
+    },
+
+    afterCreate : function() {
+        var params = Ext.apply({debug: this.get('debug'), debugLevel: 1}, this.get('options') || {});
+
+        Logger.log('  * Parse ' + this.get('target') + ' with options:');
+
+        Ext.iterate(params, function(n, v) {
+            Logger.log('    - ' + n + ": " + v);
+        });
+
+        Parser.setParams(params);
+
+        var filePath = this.get('targetPath');
+        var parsedContent = Parser.parse(filePath);
+
+        var file = new Stream(filePath, 'w');
+        file.writeln(parsedContent);
+        file.close();
+
+        Build.superclass.afterCreate.apply(this);
+    }
+});
diff --git a/js/lib/JSBuilder/src/Cli.js b/js/lib/JSBuilder/src/Cli.js
new file mode 100644
index 0000000..3ab7d0d
--- /dev/null
+++ b/js/lib/JSBuilder/src/Cli.js
@@ -0,0 +1,140 @@
+Cli = Ext.extend(Object, {
+    map: {
+        h: {
+            name: 'help',
+            desc: 'Prints this help display'
+        }
+    },
+
+    // Override this on a subclass of Cli.
+    // An array with a description on how to use this Cli.
+    // Each entry in the array is printed on a new line.
+    usage: [],
+    
+    constructor : function() {
+        if (this.map !== this.superproto.map) {
+            this.map = Ext.apply({}, this.map, this.superproto.map);
+        }
+        
+        this.initArguments();
+        
+        try {
+            this.run();
+        }
+        catch (e) {
+            Logger.log(e);
+            if (e.stack) {
+                Logger.log('\n' + 'Stack trace:\n' + e.stack);
+            }
+        }
+    },
+    
+    initArguments : function() {
+        var args = system.arguments,
+            ln = args.length,
+            parsedArgs = this.args = {},
+            curArg = null,
+            i, arg;
+
+        for (i = 0; i < ln; i++) {
+            arg = args[i];
+            if (arg[0] == '-') {
+                if (arg[1] == '-') {
+                    curArg = arg.substr(2);
+                }
+                else if (arg.length == 2) {
+                    curArg = this.map[arg[1]] ? this.map[arg[1]].name : arg[1];
+                }
+                else {
+                    continue;
+                }
+
+                if (args[i + 1] && args[i + 1][0] != '-') {
+                    parsedArgs[curArg] = args[i + 1] || true;
+                    i++;
+                }
+                else {
+                    parsedArgs[curArg] = true;
+                }
+            }
+        }
+    },
+    
+    printUsage : function(message) {
+        var map = this.map,
+            usage = [''],
+            i, mapping;
+        
+        if (!message) {
+            usage.push(this.name + ' version ' + this.version);
+            usage.push('Powered by Sencha Inc');
+            usage.push('');
+            usage.push('Available arguments:');
+            for (i in map) {
+                mapping = map[i];
+                usage.push(
+                    '    --' + mapping.name + '  -' + i
+                );
+                usage.push('      ' + (mapping.required ? '(required)' : '(optional)') + ' ' + (mapping.desc || ''));
+                usage.push('');
+            }
+        }
+        else {
+            usage.push(message);
+        }
+        
+        usage.push('');
+        usage = usage.concat(this.usage);
+        usage.push('');
+
+        for (i = 0; i < usage.length; i++) {
+            Logger.log(usage[i]);
+        }
+    },
+    
+    checkRequired : function() {
+        var args = this.args,
+            i, req;
+        
+        for (i in this.map) {
+            if (this.map[i].required && args[this.map[i].name] === undefined) {
+                return i;
+            }
+        }
+        
+        return true;
+    },
+    
+    run : function() {
+        if (this.get('help')) {
+            this.printUsage();
+            return false;            
+        }
+        
+        var required = this.checkRequired();
+        if (required !== true) {
+            this.error('The --' + this.map[required].name + ' or -' + required + ' argument is required');
+            this.printUsage();
+            return false;
+        }
+    },
+    
+    get : function(key) {
+        return this.args[key] || false;
+    },
+    
+    set : function(key, value, ifNotExists) {
+        if (ifNotExists && this.get(key) !== false) {
+            return;
+        }
+        this.args[key] = value;
+    },
+    
+    log : function(variable) {
+        Logger.log(variable);
+    },
+    
+    error : function(error) {
+        throw error;
+    }
+});
\ No newline at end of file
diff --git a/js/lib/JSBuilder/src/Cmd.js b/js/lib/JSBuilder/src/Cmd.js
new file mode 100644
index 0000000..f931619
--- /dev/null
+++ b/js/lib/JSBuilder/src/Cmd.js
@@ -0,0 +1,11 @@
+Cmd = {
+    execute: function(cmd) {
+        if (Platform.isWindows) {
+            var stream = new Stream('exec://' + cmd);
+            stream.close();   
+        }
+        else {
+            system.execute(cmd);
+        }
+    }
+};
\ No newline at end of file
diff --git a/js/lib/JSBuilder/src/Ext.js b/js/lib/JSBuilder/src/Ext.js
new file mode 100644
index 0000000..0a59501
--- /dev/null
+++ b/js/lib/JSBuilder/src/Ext.js
@@ -0,0 +1,267 @@
+Ext = {
+    /**
+     * Copies all the properties of config to obj.
+     * @param {Object} object The receiver of the properties
+     * @param {Object} config The source of the properties
+     * @param {Object} defaults A different object that will also be applied for default values
+     * @return {Object} returns obj
+     * @member Ext apply
+     */
+    apply : function(object, config, defaults) {
+        // no "this" reference for friendly out of scope calls
+        if (defaults) {
+            Ext.apply(object, defaults);
+        }
+        if (object && config && typeof config == 'object') {
+            for (var key in config) {
+                object[key] = config[key];
+            }
+        }
+        return object;
+    },
+
+    /**
+     * Copies all the properties of config to obj if they don't already exist.
+     * @param {Object} obj The receiver of the properties
+     * @param {Object} config The source of the properties
+     * @return {Object} returns obj
+     */
+    applyIf : function(object, config) {
+        var property, undefined;
+        if (object) {
+            for (property in config) {
+                if (object[property] === undefined) {
+                    object[property] = config[property];
+                }
+            }
+        }
+        return object;
+    },
+        
+    /**
+     * <p>Extends one class to create a subclass and optionally overrides members with the passed literal. This method
+     * also adds the function "override()" to the subclass that can be used to override members of the class.</p>
+     * @param {Function} superclass The constructor of class being extended.
+     * @param {Object} overrides <p>A literal with members which are copied into the subclass's
+     * prototype, and are therefore shared between all instances of the new class.</p>
+     * <p>This may contain a special member named <tt><b>constructor</b></tt>. This is used
+     * to define the constructor of the new class, and is returned. If this property is
+     * <i>not</i> specified, a constructor is generated and returned which just calls the
+     * superclass's constructor passing on its parameters.</p>
+     * <p><b>It is essential that you call the superclass constructor in any provided constructor. See example code.</b></p>
+     * @return {Function} The subclass constructor from the <code>overrides</code> parameter, or a generated one if not provided.
+     */
+    extend : function() {
+        // inline overrides
+        var inlineOverrides = function(o){
+            for(var m in o){
+                this[m] = o[m];
+            }
+        };
+
+        var objectConstructor = Object.prototype.constructor;
+
+        return function(subclass, superclass, overrides){
+            // First we check if the user passed in just the superClass with overrides
+            if(Ext.isObject(superclass)){
+                overrides = superclass;
+                superclass = subclass;
+                subclass = overrides.constructor != objectConstructor
+                ? overrides.constructor
+                : function(){
+                    superclass.apply(this, arguments);
+                };
+            }
+
+            // We create a new temporary class
+            var F = function(){},
+            subclassProto,
+            superclassProto = superclass.prototype;
+
+            F.prototype = superclassProto;
+            subclassProto = subclass.prototype = new F();
+            subclassProto.constructor = subclass;
+            subclass.superclass = superclassProto;
+
+            if(superclassProto.constructor == objectConstructor){
+                superclassProto.constructor = superclass;
+            }
+
+            subclass.override = function(overrides){
+                Ext.override(subclass, overrides);
+            };
+
+            subclassProto.superclass = subclassProto.supr = (function(){
+                return superclassProto;
+            });
+
+            subclassProto.override = inlineOverrides;
+            subclassProto.proto = subclassProto;
+            subclassProto.superproto = superclassProto;
+            
+            subclass.override(overrides);
+            subclass.extend = function(o){
+                return Ext.extend(subclass, o);
+            };
+
+            return subclass;
+        };
+    }(),
+    
+    /**
+     * Adds a list of functions to the prototype of an existing class, overwriting any existing methods with the same name.
+     * @param {Object} origclass The class to override
+     * @param {Object} overrides The list of functions to add to origClass.  This should be specified as an object literal
+     * containing one or more methods.
+     * @method override
+     */
+    override : function(origclass, overrides) {
+        if (overrides) {
+            Ext.apply(origclass.prototype, overrides);
+        }
+    },
+    
+    /**
+     * <p>Returns true if the passed value is empty.</p>
+     * <p>The value is deemed to be empty if it is<div class="mdetail-params"><ul>
+     * <li>null</li>
+     * <li>undefined</li>
+     * <li>an empty array</li>
+     * <li>a zero length string (Unless the <tt>allowBlank</tt> parameter is <tt>true</tt>)</li>
+     * </ul></div>
+     * @param {Mixed} value The value to test
+     * @param {Boolean} allowBlank (optional) true to allow empty strings (defaults to false)
+     * @return {Boolean}
+     */
+    isEmpty : function(v, allowBlank) {
+        return v == null || ((Ext.isArray(v) && !v.length)) || (!allowBlank ? v === '' : false);
+    },
+
+    /**
+     * Returns true if the passed value is a JavaScript array, otherwise false.
+     * @param {Mixed} value The value to test
+     * @return {Boolean}
+     */
+    isArray : function(v) {
+        return Object.prototype.toString.apply(v) === '[object Array]';
+    },
+
+    /**
+     * Returns true if the passed object is a JavaScript date object, otherwise false.
+     * @param {Object} object The object to test
+     * @return {Boolean}
+     */
+    isDate : function(v) {
+        return Object.prototype.toString.apply(v) === '[object Date]';
+    },
+
+    /**
+     * Returns true if the passed value is a JavaScript Object, otherwise false.
+     * @param {Mixed} value The value to test
+     * @return {Boolean}
+     */
+    isObject : function(v) {
+        return !!v && Object.prototype.toString.call(v) === '[object Object]';
+    },
+
+    /**
+     * Returns true if the passed value is a JavaScript 'primitive', a string, number or boolean.
+     * @param {Mixed} value The value to test
+     * @return {Boolean}
+     */
+    isPrimitive : function(v) {
+        return Ext.isString(v) || Ext.isNumber(v) || Ext.isBoolean(v);
+    },
+
+    /**
+     * Returns true if the passed value is a JavaScript Function, otherwise false.
+     * @param {Mixed} value The value to test
+     * @return {Boolean}
+     */
+    isFunction : function(v) {
+        return Object.prototype.toString.apply(v) === '[object Function]';
+    },
+
+    /**
+     * Returns true if the passed value is a number. Returns false for non-finite numbers.
+     * @param {Mixed} value The value to test
+     * @return {Boolean}
+     */
+    isNumber : function(v) {
+        return Object.prototype.toString.apply(v) === '[object Number]' && isFinite(v);
+    },
+
+    /**
+     * Returns true if the passed value is a string.
+     * @param {Mixed} value The value to test
+     * @return {Boolean}
+     */
+    isString : function(v) {
+        return Object.prototype.toString.apply(v) === '[object String]';
+    },
+
+    /**util
+     * Returns true if the passed value is a boolean.
+     * @param {Mixed} value The value to test
+     * @return {Boolean}
+     */
+    isBoolean : function(v) {
+        return Object.prototype.toString.apply(v) === '[object Boolean]';
+    },
+
+    /**
+     * Returns true if the passed value is not undefined.
+     * @param {Mixed} value The value to test
+     * @return {Boolean}
+     */
+    isDefined : function(v){
+        return typeof v !== 'undefined';
+    },
+
+    each : function(array, fn, scope) {
+        if (Ext.isEmpty(array, true)) {
+            return 0;
+        }
+        if (!Ext.isIterable(array) || Ext.isPrimitive(array)) {
+            array = [array];
+        }
+        for (var i = 0, len = array.length; i < len; i++) {
+            if (fn.call(scope || array[i], array[i], i, array) === false) {
+                return i;
+            }
+        }
+        return true;
+    },
+    
+    iterate : function(obj, fn, scope) {
+        if (Ext.isEmpty(obj)) {
+            return;
+        }
+        if (Ext.isIterable(obj)) {
+            Ext.each(obj, fn, scope);
+            return;
+        }
+        else if (Ext.isObject(obj)) {
+            for (var prop in obj) {
+                if (obj.hasOwnProperty(prop)) {
+                    if (fn.call(scope || obj, prop, obj[prop], obj) === false) {
+                        return;
+                    }
+                }
+            }
+        }
+    },
+    
+    isIterable : function(v) {
+        //check for array or arguments
+        if (Ext.isArray(v) || v.callee) {
+            return true;
+        }
+    },
+
+    $included: {},
+
+    require: function(className) {
+
+    }
+}
\ No newline at end of file
diff --git a/js/lib/JSBuilder/src/Filesystem.js b/js/lib/JSBuilder/src/Filesystem.js
new file mode 100644
index 0000000..1fe373a
--- /dev/null
+++ b/js/lib/JSBuilder/src/Filesystem.js
@@ -0,0 +1,111 @@
+Filesystem = {
+    exists : function(path) {
+        return system.exists(path);
+    },
+
+    getFullPath: function(path) {
+        var currentPath = system.setcwd(path);
+        return system.setcwd(currentPath);
+    },
+
+    getPath: function(path){
+        return path.replace(/\//g, Fs.sep);
+    },
+
+    mkdir: function(path) {
+        if (Platform.isWindows) {
+            system.mkdir(path);
+        }
+        else {
+            Cmd.execute('mkdir -p ' + path);
+        }
+        return this.getFullPath(path);
+    },
+
+    readFile : function(file) {
+        if (!Fs.exists(file)) {
+            return '';
+        }
+
+        file = new Stream(file);
+        var contents = file.readFile();
+        file.close();
+
+        return contents;
+    },
+
+    writeFile: function(file, contents) {
+        file = new Stream(file, 'w');
+        file.writeln(contents);
+        file.close();
+
+        return contents;
+    },
+
+    copy: function(src, dest) {
+        src = Fs.getPath(src);
+        dest = Fs.getPath(dest);
+
+        if (Platform.isWindows) {
+            if (Fs.endsWith(src, Fs.sep)) {
+                src = src.slice(0, -1); // cut off any trailing \
+            }
+
+            /**
+             * Check if we're copying a single file. This isn't bulletproof, however xcopy
+             * will prompt regarding if the item is a directory or file, with no way to
+             * suppress the prompt. As such, this will catch a majority of scenarios
+             * and actually make the build work!
+             */
+            var isFile = /\.[0-9a-z]{2,4}$/i;
+            if (isFile.test(src)) {
+                system.copy(src, dest);
+            } else {
+                Cmd.execute('xcopy ' + src + ' ' + dest + ' /E /Y /I');
+            }
+        }
+        else {
+            try {
+                // q: quiet
+                // r: recursive
+                // u: only update if newer
+                // p: keep permissions
+                // L: copy the contents of symlinks
+                Cmd.execute('rsync -qrupL ' + src + ' ' + dest);
+            }
+            catch(e) {
+                Cmd.execute('cp -Rpf ' + src + ' ' + dest);
+            }
+        }
+    },
+
+    endsWith: function(str, last){
+        return str.lastIndexOf(last) == str.length - 1;
+    },
+
+    split: function(file) {
+        var split = [];
+        if (!Fs.exists(file)) {
+            return split;
+        }
+        file = new Stream(file);
+        while (!file.eof) {
+            split.push(file.readln().trim());
+        }
+        return split;
+    },
+
+    remove: function(file) {
+        if (Platform.isWindows) {
+            Cmd.execute('del /f /q "' + file + '"');
+        } else {
+            Cmd.execute('rm -Rf "' + file + '"');
+        }
+    }
+};
+
+// Create short alias
+Fs = Filesystem;
+
+Fs.sep = (Fs.getFullPath('.')[0] == '/') ? '/': '\\';
+Fs.fileWorkingDir = Fs.getFullPath('.');
diff --git a/js/lib/JSBuilder/src/Generator.js b/js/lib/JSBuilder/src/Generator.js
new file mode 100644
index 0000000..54a72d5
--- /dev/null
+++ b/js/lib/JSBuilder/src/Generator.js
@@ -0,0 +1,203 @@
+load(JSBuilderPath + 'src/Template.js');
+load(JSBuilderPath + 'src/XTemplate.js');
+
+Ext.generator = {};
+
+/**
+ * @class Ext.generator.Base
+ * @extends Object
+ * Base class for all Generators
+ */
+Ext.generator.Base = Ext.extend(Object, {
+    /**
+     * @cfg {Boolean} pretend True to only output what the generator would do (e.g. which files would be created),
+     * without actually modifying anything on the filesystem.
+     */
+    pretend: false,
+    
+    basePath: '.',
+    
+    constructor: function(config) {
+        Ext.apply(this, config);
+        
+        if (this.args) {
+            this.decodeArgs(this.args);
+        }
+    },
+    
+    /**
+     * Creates an empty directory at the given location
+     * @param {String} path The directory path
+     */
+    mkdir: function() {
+        var length = arguments.length,
+            dirName, i;
+        
+        for (i = 0; i < length; i++) {
+            dirName = this.basePath + "/" + arguments[i];
+            Logger.log("    Creating dir: " + dirName);
+            
+            if (!this.pretend) {
+                Filesystem.mkdir(dirName);
+            }
+        }
+    },
+    
+    /**
+     * Applies data to an XTemplate, saving its output to the given file name
+     * @param {String} name The name of the template
+     */
+    template: function(name, data, filename) {
+        Logger.log("    Creating file: " + filename);
+        
+        // dirty hack to let <tpl> get through without being picked up
+        Ext.apply(data, {
+            tpl: 'tpl'
+        });
+        
+        var name        = 'src/generators/' + this.dirName + '/templates/' + name + '.js',
+            stream      = new Stream(name, 'rw'),
+            template    = new Ext.XTemplate(stream.readText()),
+            contents    = template.apply(data),
+            destination = this.basePath + '/' + filename,
+            newFile     = new Stream(destination, "w");
+        
+        newFile.writeLine(contents);
+        system.move(destination, filename, true);
+        newFile.close();
+    },
+    
+    /**
+     * Copies a file from the generator's files directory into the app
+     * @param {String} fileName The name of the file to copy
+     * @param {String} destination The destination path (defaults to the fileName)
+     * @param {Boolean} silent True to not log any messages (defaults to false)
+     */
+    file: function(fileName, destination, silent) {
+        Logger.log("    Copying " + fileName);
+        
+        destination = this.basePath + '/' + (destination || fileName);
+        fileName = 'src/generators/' + this.dirName + '/files/' + fileName;
+        
+        if (!this.pretend && this.silent !== true) {
+            Filesystem.copy(fileName, destination);
+        }
+    },
+    
+    /**
+     * Copies all contents of the given source directory to a destination
+     * @param {String} dirName The name of the directory to copy
+     * @param {String} destination The destination for the source files
+     */
+    copyDir: function(dirName, destination) {
+        destination = this.basePath + '/' + (destination || dirName);
+        
+        if (!this.pretend) {
+            Filesystem.copy(dirName, destination);
+        }
+    },
+    
+    /**
+     * Inserts a script tag to load the given src file inside the given div id
+     * @param {String} path The path to the script to be included
+     * @param {String} id The id of the div to include after
+     * @param {String} htmlFile Optional html file to update (defaults to index.html)
+     */
+    insertInclude: function(path, id, htmlFile) {
+        htmlFile = htmlFile || 'index.html';
+        
+        var stream = new Stream(htmlFile, 'rw'),
+            regex  = new RegExp('<div id="' + id + '">'),
+            lines  = [],
+            line;
+        
+        while (line = stream.readLine()) {
+            lines.push(line);
+            
+            if (regex.test(line)) {
+                lines.push('            <script type="text/javascript" src="' + path + '"></script>');
+            }
+        }
+        
+        var destination = htmlFile + "-modified",
+            newFile     = new Stream(destination, "w");
+        
+        newFile.writeLine(lines.join("\n"));
+        system.move(destination, htmlFile, true);
+        newFile.close();
+    },
+    
+    /**
+     * Convenience function for displaying a clear message to the user
+     * @param {String} message The message to display
+     */
+    headline: function(message) {
+        Logger.log("");
+        Logger.log("*********************************************");
+        Logger.log(message);
+        Logger.log("*********************************************");
+        Logger.log("");
+    },
+    
+    generate: function() {
+        
+    }
+});
+
+/**
+ * @class GeneratorHelper
+ * @extends Cli
+ * Generates files and folders based on a template
+ */
+Ext.generator.Factory = Ext.extend(Object, {
+    name: "Generator",
+    version: "0.0.1",
+    
+    constructor: function(config) {
+        Ext.apply(this, config);
+        
+        Cli.call(this);
+    },
+    
+    initArguments: function() {},
+    
+    usage: [
+        'Example usage:',
+        'Arguments in square brackets are optional',
+        '',
+        'Generating an application:',
+        '    ./generate app AppName [../path/to/app]',
+        '',
+        'Generating a model:',
+        '    ./generate model User id:int name:string active:boolean',
+        '',
+        'Generating a controller:',
+        '    ./generate controller users create update destroy',
+        ''
+    ],
+    
+    run: function() {
+        var args = this.args || system.arguments,
+            Gen  = Ext.generator.Factory.types[args[0]];
+        
+        if (Gen) {
+            new Gen({args: args.slice(1)}).generate();
+        } else {
+            this.printUsage();
+        }
+    }
+});
+
+Ext.generator.Factory.types = {};
+Ext.regGenerator = function(name, constructor) {
+    Ext.generator.Factory.types[name] = constructor;
+    
+    constructor.prototype.dirName = name;
+    constructor.templates = {};
+};
+
+Ext.regDispatchable('generate', Ext.generator.Factory);
+
+// generate app FB examples/facebook
+// generate model User id:int name:string email:string
+// generate controller users index build show new
\ No newline at end of file
diff --git a/js/lib/JSBuilder/src/JSBuilder.js b/js/lib/JSBuilder/src/JSBuilder.js
new file mode 100644
index 0000000..b10cdba
--- /dev/null
+++ b/js/lib/JSBuilder/src/JSBuilder.js
@@ -0,0 +1,77 @@
+var JSBuilderPath = system.script.replace(/bin(\/|\\)JSBuilder\.js/, '');
+
+load(JSBuilderPath + 'src/Loader.js');
+Loader.setBasePath(JSBuilderPath + 'src');
+
+Loader.require([
+    'Ext', 'Cmd', 'Filesystem', 'Platform', 'Cli', 'Logger', 'Project', 'Target', 'Package', 'Build'
+]);
+
+/**
+ * @class JSBuilder
+ */
+JSBuilder = Ext.extend(Cli, {
+    name: 'JSBuilder',
+    version: '3.0.0',
+    
+    map: {
+        p: {
+            name: 'projectFile',
+            required: true,
+            desc: 'Location of a jsb2 project file'
+        },
+        d: {
+            name: 'deployDir',
+            required: true,
+            desc: 'The directory to build the project to'
+        },
+        v: {
+            name: 'verbose',
+            desc: 'Output detailed information about what is being built'
+        },
+        s: {
+            name: 'debugSuffix',
+            desc: 'Suffix to append to JS debug targets, defaults to \'debug\''
+        },
+        c: {
+            name: 'nocompress',
+            desc: 'Dont compress the targets'
+        }     
+    },
+    
+    usage: [
+        'Example Usage:',
+        '',
+        'Windows:',
+        'JSBuilder.bat -p C:\\Apps\\www\\ext3svn\\ext.jsb2 -d C:\\Apps\\www\\deploy\\',
+        '',
+        'Linux and OS X:',
+        'JSBuilder.sh -p /home/tommy/www/trunk/ext.jsb2 -d /home/tommy/www/deploy/',
+        '',
+        'JSBuilder3 is a Sencha Project build tool.',
+        'For additional information, see http://www.sencha.com/products/jsbuilder/'
+    ],
+    
+    run : function() {
+        if (JSBuilder.superclass.run.call(this) === false) {
+            return;
+        }
+        
+        // true to only set if it is not defined
+        this.set('debugSuffix', '-debug', true); 
+
+        this.project = new Project(this.get('projectFile'), this);
+        
+        if (this.get('sourceFiles')) {
+            this.project.getSourceFiles();
+        } else if (this.get('specFiles')) {
+            this.project.getSpecFiles();
+        } else {
+            this.log('\nLoading the ' + this.project.get('name') + ' Project'); 
+            this.log('Loaded ' + this.project.get('packages').length + ' Packages');
+            this.log('Loaded ' + this.project.get('builds').length + ' Builds');
+
+            this.project.build();
+        }
+    }    
+});
\ No newline at end of file
diff --git a/js/lib/JSBuilder/src/Loader.js b/js/lib/JSBuilder/src/Loader.js
new file mode 100644
index 0000000..d8b773f
--- /dev/null
+++ b/js/lib/JSBuilder/src/Loader.js
@@ -0,0 +1,74 @@
+(function(ROOT) {
+
+var Loader = ROOT.Loader = {
+    paths: {
+        _base: "."
+    },
+
+    existing: {},
+
+    exists: function(name) {
+        var root = ROOT;
+        var chunks = name.split('.');
+
+        for (var i = 0; i < chunks.length; i++) {
+            if (!root.hasOwnProperty(chunks[i]))
+                return false;
+
+            root = root[chunks[i]];
+        }
+
+        return true;
+    },
+
+    setBasePath: function(name, path) {
+        if (!path) {
+            path = name;
+            name = "_base";
+        }
+
+        Loader.paths[name] = path;
+    },
+
+    getBasePath: function(name) {
+        // Start with the base path
+        var path = Loader.paths._base;
+
+        // Iterate through each specified name path ("Ext.layout.Layout" => "js/Ext/layout/Layout.js")
+        for (var stub in Loader.paths) {
+            if (stub === name.substring(0, stub.length)) {
+                path += "/" + Loader.paths[stub];
+                // Remove stub from name, as we've already pathed it
+                name = name.substring(stub.length + 1);
+                break;
+            }
+        }
+
+        return path + "/" + name.replace(/\./g, "/");
+    },
+
+    require: function(names, compulsory) {
+        if (compulsory == undefined)
+            compulsory = true;
+
+        if (typeof names == 'string')
+            names = [names];
+
+        names.forEach(function(name) {
+            if (!this.existing.hasOwnProperty(name)) {
+//                writeln(this.getBasePath(name) + '.js');
+                load(this.getBasePath(name) + '.js');
+
+                var loaded = this.exists(name);
+                this.existing[name] = loaded;
+            }
+
+            if (this.existing[name] == false && compulsory) {
+                throw new Error("[Loader] Failed loading '" + name + "'");
+            }
+        }, Loader);
+    }
+};
+
+})(this);
+
diff --git a/js/lib/JSBuilder/src/Logger.js b/js/lib/JSBuilder/src/Logger.js
new file mode 100644
index 0000000..291bf4a
--- /dev/null
+++ b/js/lib/JSBuilder/src/Logger.js
@@ -0,0 +1,8 @@
+Logger = {
+  /**
+    * Logs the variable to the command line
+    */
+    log: function(variable) {
+        writeln(variable);
+    }
+};
\ No newline at end of file
diff --git a/js/lib/JSBuilder/src/Package.js b/js/lib/JSBuilder/src/Package.js
new file mode 100644
index 0000000..e53ed20
--- /dev/null
+++ b/js/lib/JSBuilder/src/Package.js
@@ -0,0 +1,5 @@
+Package = Ext.extend(Target, {
+    getDefaultTarget : function() {
+        return 'pkgs' + Fs.sep + (this.get('id') || this.get('name').replace(/ /g, '').toLowerCase()) + '.js';
+    }
+});
\ No newline at end of file
diff --git a/js/lib/JSBuilder/src/Parser.js b/js/lib/JSBuilder/src/Parser.js
new file mode 100644
index 0000000..00ba569
--- /dev/null
+++ b/js/lib/JSBuilder/src/Parser.js
@@ -0,0 +1,156 @@
+// Singleton
+Parser = new(Ext.extend(Object, {
+    params: {},
+
+    parse: function(filename) {
+        var stream = new Stream(filename),
+            ret;
+
+        Loader.require('Parser.Statement');
+        ret = (new Parser.Statement()).parse(stream);
+        stream.close();
+
+        return ret;
+    },
+
+    evaluate: function(name, value) {
+        var modifier = null,
+            param = (this.params.hasOwnProperty(name)) ? this.params[name] : false,
+            match;
+
+        if (value === undefined) {
+            value = true;
+        }
+
+        if (Ext.isString(value)) {
+            match = value.match(/^(\!|<=|>=|<|>)/);
+
+            if (match) {
+                modifier = match[0];
+                value = value.slice(modifier.length);
+            }
+
+            // Boolean
+            if (value === 'true') {
+                value = true;
+            }
+            else if (value === 'false') {
+                value = false;
+            }
+            // Numeric
+            else if (!isNaN(value)) {
+                value = parseFloat(value);
+            }
+        }
+
+        switch (modifier) {
+            case '!':
+                return (param !== value);
+            case '>':
+                return (param > value);
+            case '<':
+                return (param < value);
+            case '<=':
+                return (param <= value);
+            case '>=':
+                return (param >= value);
+            default:
+                return (param === value);
+        }
+    },
+
+    setParams: function(params) {
+        this.params = params || {};
+    },
+
+    isCloseOf: function(str, statement) {
+        if (!statement.type) {
+            return false;
+        }
+
+        return str.trim().match(new RegExp("^\\/\\/(?:\\t|\\s)*<\\/" + ((statement.isInverted) ? "!" : "") + statement.type + ">$")) !== null;
+    },
+
+    isStatement: function(str) {
+        return this.parseStatementParts(str) !== null;
+    },
+
+    parseStatementParts: function(str) {
+        return str.trim().match(/^\/\/(?:\t|\s)*<([^\/]+)>$/);
+    },
+
+    parseStatementProperties: function(str) {
+        var properties = {},
+            expect = function(regexp) {
+                var result = str.match(regexp);
+
+                if (result !== null) {
+                    str = str.slice(result[0].length);
+                    return result[0];
+                }
+
+                return null;
+            },
+            name, equalSign, valueWrapper, valueCheck, value;
+
+        while (str.length > 0) {
+            expect(/^[^\w]+/i);
+            name = expect(/^[\w]+/i);
+
+            if (name === null) {
+                break;
+            }
+
+            equalSign = expect(/^=/);
+
+            if (equalSign === null) {
+                properties[name] = true;
+                continue;
+            }
+
+            valueWrapper = expect(/^('|")/i);
+            valueCheck = valueWrapper || "\\s";
+
+            value = expect(new RegExp('^[^' + valueCheck + ']+'));
+
+            if (valueWrapper !== null) {
+                expect(new RegExp(valueWrapper));
+            }
+
+            properties[name] = value;
+        }
+
+        return properties;
+    },
+
+    parseStatement: function(string) {
+        var str = string.trim(),
+            parts = this.parseStatementParts(str),
+            typeMatch, statement;
+
+        // Check if it's actually a valid statement
+        if (parts === null) {
+            return false;
+        }
+
+        str = parts[1];
+
+        typeMatch = str.match(/^(\!)?([\w]+)/i);
+
+        if (typeMatch === null) {
+            return false;
+        }
+
+        statement = {
+            properties: {}
+        };
+
+        statement.type = typeMatch[2];
+        statement.isInverted = (typeMatch[1] !== undefined);
+
+        str = str.substr(typeMatch[0].length, str.length).trim();
+        statement.properties = this.parseStatementProperties(str);
+
+        return statement;
+    }
+}));
diff --git a/js/lib/JSBuilder/src/Parser.old.js b/js/lib/JSBuilder/src/Parser.old.js
new file mode 100644
index 0000000..e036e75
--- /dev/null
+++ b/js/lib/JSBuilder/src/Parser.old.js
@@ -0,0 +1,116 @@
+Parser = {
+    isBuild: function(builds) {
+        return builds.split('|').indexOf(this.build) != -1;
+    },
+
+    parse: function(file, build) {
+        var line,
+            trimmed,
+            o = this.output = [];
+
+        this.build = build;
+
+        file = new Stream(file);
+        while (!file.eof) {
+            line = file.readLine();
+            trimmed = line.trim();
+            if (this.isStatement(trimmed)) {
+                this.handleStatement(this.parseStatement(trimmed), file);
+            }
+            else {
+                this.output.push(line);
+                this.checkExtraComma();
+            }
+        }
+        file.close();
+        return this.output.join('\n');
+    },
+
+    checkExtraComma: function() {
+        var output = this.output,
+            ln = output.length - 1,
+            line = output[ln],
+            trimmed = line.trim(),
+            prevLine;
+
+        if (trimmed[0] == '}') {
+            while (output[--ln].trim() == '') {
+                output.splice(ln, 1);
+            }
+            prevLine = output[ln];
+            if (prevLine.trim().slice( - 1) == ',') {
+                output[ln] = prevLine.slice(0, prevLine.lastIndexOf(','));
+            }
+        }
+    },
+
+    isStatement: function(line) {
+        return line.substr(0, 3) == '//[' && line.substr( - 1) == ']';
+    },
+
+    handleStatement: function(statement, file) {
+        switch (statement.type) {
+            case 'if':
+            case 'elseif':
+                this.handleIf(file, statement.condition);
+                break;
+
+            case 'else':
+                this.handleElse(file);
+                break;
+        }
+    },
+
+    parseStatement: function(statement) {
+        var parts = statement.substring(3, statement.length - 1).split(' ');
+        return {
+            type: parts[0],
+            condition: parts[1]
+        };
+    },
+
+    handleIf: function(file, condition) {
+        if (this.isBuild(condition)) {
+            var next = this.getNextStatement(file);
+            this.output.push(next.buffer);
+            this.toEndIf(file, next);
+        }
+        else {
+            this.handleStatement(this.getNextStatement(file), file);
+        }
+    },
+
+    handleElse: function(file) {
+        var next = this.toEndIf(file);
+        this.output.push(next.buffer);
+    },
+
+    toEndIf: function(file, next) {
+        next = next || this.getNextStatement(file);
+        while (next && next.type != 'endif') {
+            next = this.getNextStatement(file);
+        }
+        return next;
+    },
+
+    getNextStatement: function(file) {
+        var buffer = [],
+            line,
+            trimmed,
+            ret;
+
+        while (!file.eof) {
+            line = file.readLine();
+            trimmed = line.trim();
+            if (!this.isStatement(trimmed)) {
+                buffer.push(line);
+            }
+            else {
+                ret = this.parseStatement(trimmed);
+                ret.buffer = buffer.join('\n');
+                return ret;
+            }
+        }
+        return null;
+    }
+};
\ No newline at end of file
diff --git a/js/lib/JSBuilder/src/Parser/Statement.js b/js/lib/JSBuilder/src/Parser/Statement.js
new file mode 100644
index 0000000..9c327fa
--- /dev/null
+++ b/js/lib/JSBuilder/src/Parser/Statement.js
@@ -0,0 +1,103 @@
+Loader.require('Logger');
+
+Parser.Statement = Ext.extend(Object, {
+    isInverted: false,
+    properties: {},
+    buffer: '',
+    parent: null,
+
+    constructor: function(properties, isInverted) {
+        if (properties === undefined) {
+            properties = {};
+        }
+
+        if (isInverted === undefined) {
+            isInverted = false;
+        }
+
+        this.properties = properties;
+        this.isInverted = isInverted;
+    },
+
+    setProperty: function(name, value) {
+        this.properties[name] = value;
+    },
+
+    getProperty: function(name) {
+        return this.properties.hasOwnProperty(name) ? this.properties[name] : null;
+    },
+
+    removeProperty: function(name) {
+        delete this.properties[name];
+    },
+
+    isEnd: function(line, stream) {
+        return Parser.isCloseOf(line, this);
+    },
+
+    pushBuffer: function(content, withNewLine) {
+        if (withNewLine === undefined) {
+            withNewLine = false;
+        }
+
+        this.buffer += content + ((withNewLine) ? "\n" : "");
+    },
+
+    resetBuffer: function() {
+        this.buffer = '';
+    },
+
+    parse: function(stream) {
+        var line, subStatementData, subStatement;
+
+        while (!stream.eof) {
+            line = stream.readLine();
+
+            if (this.isEnd(line, stream)) {
+                break;
+            }
+
+            if ((subStatementData = Parser.parseStatement(line)) && (subStatement = Parser.Statement.factory(subStatementData))) {
+                subStatement.parent = this;
+                this.onSubStatement(subStatement, stream);
+            } else {
+                this.pushBuffer(line, !stream.eof);
+            }
+        }
+
+        return this.buffer;
+    },
+
+    onSubStatement: function(statement, stream) {
+        this.pushBuffer(statement.parse(stream));
+    }
+});
+
+Ext.apply(Parser.Statement, {
+    factory: function(type, properties, isInverted) {
+        var capitalizedType, statementClass, statement;
+
+        if (Ext.isObject(type)) {
+            properties = type.properties;
+            isInverted = type.isInverted;
+            type = type.type;
+        }
+
+        type = type.toLowerCase();
+        capitalizedType = type.charAt(0).toUpperCase() + type.slice(1);
+
+        Loader.require('Parser.Statement.' + capitalizedType, false);
+        statementClass = Parser.Statement[capitalizedType];
+
+        if (!statementClass) {
+            // Not supported
+            Logger.log("[NOTICE][Parser.Statement.factory] Statement type '" + type + "' is currently not supported, ignored");
+            return false;
+        }
+
+        statement = new statementClass(properties, isInverted);
+        statement.type = type;
+
+        return statement;
+    }
+});
diff --git a/js/lib/JSBuilder/src/Parser/Statement/Debug.js b/js/lib/JSBuilder/src/Parser/Statement/Debug.js
new file mode 100644
index 0000000..e58c32f
--- /dev/null
+++ b/js/lib/JSBuilder/src/Parser/Statement/Debug.js
@@ -0,0 +1,38 @@
+Loader.require('Parser.Statement.If');
+
+(function() {
+
+var priorities = {
+    error: 3,
+    warn: 2,
+    info: 1
+};
+
+var Debug = Parser.Statement.Debug = Ext.extend(Parser.Statement.If, {
+    constructor: function() {
+        var priority, name;
+
+        Debug.superclass.constructor.apply(this, arguments);
+
+        this.setProperty('debug', true);
+
+        for (name in priorities) {
+            if (priorities.hasOwnProperty(name)) {
+                if (this.getProperty(name)) {
+                    priority = priorities[name];
+                    this.removeProperty(name);
+                    break;
+                }
+            }
+        }
+
+        if (!priority) {
+            priority = 1;
+        }
+
+        this.setProperty('debugLevel', '<=' + priority);
+    }
+});
+
+
+})();
diff --git a/js/lib/JSBuilder/src/Parser/Statement/Deprecated.js b/js/lib/JSBuilder/src/Parser/Statement/Deprecated.js
new file mode 100644
index 0000000..5fc94b4
--- /dev/null
+++ b/js/lib/JSBuilder/src/Parser/Statement/Deprecated.js
@@ -0,0 +1,14 @@
+Loader.require('Parser.Statement.If');
+
+Parser.Statement.Deprecated = Ext.extend(Parser.Statement.If, {
+    constructor: function() {
+        Parser.Statement.Deprecated.superclass.constructor.apply(this, arguments);
+
+        if (this.getProperty('since') === null) {
+            throw new Error("[Parser.Statement.Deprecated] 'since' property is required for deprecated statement");
+        }
+
+        this.setProperty('minVersion', '<=' + this.getProperty('since'));
+        this.removeProperty('since');
+    }
+});
diff --git a/js/lib/JSBuilder/src/Parser/Statement/Else.js b/js/lib/JSBuilder/src/Parser/Statement/Else.js
new file mode 100644
index 0000000..ea27103
--- /dev/null
+++ b/js/lib/JSBuilder/src/Parser/Statement/Else.js
@@ -0,0 +1,10 @@
+Parser.Statement.Else = Ext.extend(Parser.Statement, {
+    isEnd: function(line, stream) {
+        if (this.parent.isEnd.apply(this.parent, arguments)) {
+            stream.goBack(line.length + 1);
+            return true;
+        }
+
+        return false;
+    }
+});
\ No newline at end of file
diff --git a/js/lib/JSBuilder/src/Parser/Statement/Elseif.js b/js/lib/JSBuilder/src/Parser/Statement/Elseif.js
new file mode 100644
index 0000000..c791121
--- /dev/null
+++ b/js/lib/JSBuilder/src/Parser/Statement/Elseif.js
@@ -0,0 +1,22 @@
+Parser.Statement.Elseif = Ext.extend(Parser.Statement.If, {
+    isEnd: function(line, stream) {
+        var statement,
+            isEnd = false;
+
+        statement = Parser.parseStatement(line);
+
+        if (statement) {
+            if (statement.type === 'elseif' || statement.type === 'else') {
+                isEnd = true;
+            }
+        } else if (this.parent.isEnd.apply(this.parent, arguments)) {
+            isEnd = true;
+        }
+
+        if (isEnd) {
+            stream.goBack(line.length + 1);
+        }
+
+        return isEnd;
+    }
+});
diff --git a/js/lib/JSBuilder/src/Parser/Statement/If.js b/js/lib/JSBuilder/src/Parser/Statement/If.js
new file mode 100644
index 0000000..544b52b
--- /dev/null
+++ b/js/lib/JSBuilder/src/Parser/Statement/If.js
@@ -0,0 +1,57 @@
+Parser.Statement.If = Ext.extend(Parser.Statement, {
+    satisfied: false,
+
+    evaluate: function() {
+        var ret = true, n;
+
+        for (n in this.properties) {
+            if (!Parser.evaluate(n, this.properties[n])) {
+                ret = false;
+                break;
+            }
+        }
+
+        return (this.isInverted ? !ret : ret);
+    },
+
+    parse: function(stream) {
+        if (this.evaluate()) {
+            this.satisfied = true;
+        }
+
+        Parser.Statement.If.superclass.parse.apply(this, arguments);
+
+        if (!this.satisfied) {
+            return '';
+        }
+
+        return this.buffer;
+    },
+
+    onSubStatement: function(statement, stream) {
+        var parsed = statement.parse(stream),
+            satisfied = false;
+
+        if (statement.type === 'elseif') {
+            if (!this.satisfied) {
+                if (statement.evaluate()) {
+                    this.satisfied = true;
+                    satisfied = true;
+                }
+            }
+        } else if (statement.type === 'else') {
+            if (!this.satisfied) {
+                this.satisfied = true;
+                satisfied = true;
+            }
+        } else {
+            this.pushBuffer(parsed);
+            return;
+        }
+
+        if (satisfied) {
+            this.resetBuffer();
+            this.pushBuffer(parsed);
+        }
+    }
+});
diff --git a/js/lib/JSBuilder/src/Parser/Statement/Uncomment.js b/js/lib/JSBuilder/src/Parser/Statement/Uncomment.js
new file mode 100644
index 0000000..fa222ac
--- /dev/null
+++ b/js/lib/JSBuilder/src/Parser/Statement/Uncomment.js
@@ -0,0 +1,17 @@
+Parser.Statement.Uncomment = Ext.extend(Parser.Statement, {
+    parse: function(stream) {
+        var line;
+
+        while (!stream.eof) {
+            line = stream.readLine();
+
+            if (this.isEnd(line, stream)) {
+                break;
+            }
+
+            this.pushBuffer(line.replace(/^([\s\t]*)\/\//, "$1"), !stream.eof);
+        }
+
+        return this.buffer;
+    }
+});
diff --git a/js/lib/JSBuilder/src/Platform.js b/js/lib/JSBuilder/src/Platform.js
new file mode 100644
index 0000000..4e569fd
--- /dev/null
+++ b/js/lib/JSBuilder/src/Platform.js
@@ -0,0 +1,4 @@
+Platform = {
+    isUnix: Fs.sep == '/',
+    isWindows: Fs.sep != '/'
+};
\ No newline at end of file
diff --git a/js/lib/JSBuilder/src/Project.js b/js/lib/JSBuilder/src/Project.js
new file mode 100644
index 0000000..c6dc4e1
--- /dev/null
+++ b/js/lib/JSBuilder/src/Project.js
@@ -0,0 +1,217 @@
+Project = Ext.extend(Object, {
+    constructor : function(projectFile, builder) {
+        var fileName = projectFile.split(/\\|\//i).pop(),
+            dir = projectFile.replace(fileName, ''),
+            contents, config;
+
+        if (!Fs.exists(projectFile)) {
+            throw 'Project file doesn\'t exist';
+        }
+
+        contents = Fs.readFile(projectFile);
+        try {
+            config = JSON.parse(contents);
+        }
+        catch (e) {
+            throw 'The JSB file is not valid JSON.\n' + e.toString();
+        }
+
+        Ext.apply(config, {
+            targets: config.targets || config.pkgs || [],
+            name: config.projectName,
+            license: config.licenseText,
+            jsbDir: Fs.getFullPath(dir),
+            jsbFile: fileName,
+            packages: config.packages || [],
+            builds: config.builds || [],
+            // If the JSB file contains a deployDir property, append that to the -d deployDir
+            deployDir: builder.get('deployDir') + Fs.sep + (config.deployDir || ''),
+            resources: config.resources || []
+        });
+
+        this.builder = builder;
+        this.config = config;
+
+        this.parseTargets();
+    },
+
+    parseTargets : function() {
+        // Split targets up into packages and builds for backwards compatibility
+        this.get('targets').forEach(function(item) {
+            if (item.packages) {
+                this.get('builds').push(item);
+            }
+            else {
+                this.get('packages').push(item);
+            }
+        }, this);
+
+        // Convert each package config object into an actual Package instance
+        this.set('packages', this.get('packages').map(function(item) {
+            return new Package(item, this);
+        }, this));
+
+        // Convert each build config object into an actual Build instance
+        this.set('builds', this.get('builds').map(function(item) {
+            return new Build(item, this);
+        }, this));
+    },
+
+    getPackageById : function(id) {
+        var ret = false;
+        this.get('packages').forEach(function(pkg) {
+            if (pkg.get('id') == id) {
+                ret = pkg;
+            }
+        });
+        return ret;
+    },
+
+    /**
+     * Creates the directory we are going to deploy to.
+     */
+    makeDeployDir: function() {
+        var project = this.project,
+            deployDir = Fs.mkdir(this.get('deployDir'));
+
+        this.set('deployDir', deployDir);
+
+        if (this.get('verbose')) {
+            this.log('Created the deploy directory ' + deployDir);
+        }
+    },
+
+    build : function() {
+        this.makeDeployDir();
+        this.createPackages();
+        this.createBuilds();
+        this.copyResources();
+
+        if (this.builder.get('verbose')) {
+            Logger.log('');
+        }
+        Logger.log('Done building!\n');
+    },
+
+    createPackages : function() {
+        this.get('packages').forEach(function(pkg) {
+            pkg.create();
+        });
+    },
+
+    createBuilds : function() {
+        this.get('builds').forEach(function(build) {
+            build.create();
+        });
+    },
+
+    copyResources : function() {
+        if (this.builder.get('verbose')) {
+            Logger.log('');
+        }
+
+        Logger.log('Copy resources...');
+
+        this.get('resources').forEach(function(resource) {
+            var filters = resource.filters,
+                srcDir = this.get('jsbDir') + Fs.sep + resource.src,
+                dest = resource.dest || resource.src;
+
+            dest = dest || '';
+            dest = this.get('deployDir') + Fs.sep + dest;
+
+            // TODO: Implement filters
+            if (this.builder.get('verbose')) {
+                Logger.log('  + ' + resource.src + ' -> ' + dest);
+            }
+
+            Fs.copy(srcDir, dest);
+        }, this);
+    },
+
+    get : function(key) {
+        return this.config[key] || false;
+    },
+
+    set : function(key, value, ifNotExists) {
+        if (ifNotExists && this.get(key) !== false) {
+            return;
+        }
+        this.config[key] = value;
+    },
+
+    compressTarget : function(target) {
+        if (this.builder.get('nocompress') || !target.get('compress')) {
+            return;
+        }
+
+        Logger.log('  * Compress and obfuscate ' + target.get('target') + '...');
+
+        var destination = target.get('targetPath'),
+            source = destination + '-temp-' + Date.now() * Math.random();
+            system.move(destination, source),
+            command = this.getCompressor() + '-o ' + destination + ' ' + source;
+
+        Cmd.execute(command);
+
+        Fs.remove(source);
+    },
+
+    getCompressor : function() {
+        return 'java -jar ' + system.script.replace(Fs.getPath('bin/JSBuilder.js'), '') + Fs.getPath('ycompressor/ycompressor.jar') + ' --type js ';
+    },
+
+    getSourceFiles: function() {
+        Logger.log('<!--');
+        Logger.log('    Source files');
+        Logger.log('-->');
+        Logger.log('');
+
+        this.get('builds').forEach(function(build) {
+            if (build.get('packages')) {
+                Logger.log('<!-- build: ' + build.get('name') + ' -->');
+
+                build.get('packages').forEach(function(pkg) {
+                    pkg = build.project.getPackageById(pkg);
+
+                    Logger.log('<!-- package: ' + pkg.get('name') + ' -->');
+
+                    pkg.get('files').forEach(function(file) {
+                        Logger.log('<script type="text/javascript" src="../../' + file.path + file.name + '"></script>');
+                    });
+
+                    Logger.log('');
+                });
+
+                Logger.log('');
+            };
+        });
+    },
+
+    getSpecFiles: function() {
+        Logger.log('<!--');
+        Logger.log('    Spec files');
+        Logger.log('-->');
+        Logger.log('');
+
+        this.get('builds').forEach(function(build) {
+            if (build.get('packages')) {
+                Logger.log('<!-- build: ' + build.get('name') + ' -->');
+
+                build.get('packages').forEach(function(pkg) {
+                    pkg = build.project.getPackageById(pkg);
+
+                    Logger.log('<!-- package: ' + pkg.get('name') + ' -->');
+
+                    pkg.get('files').forEach(function(file) {
+                        Logger.log('<script type="text/javascript" src="spec/' + file.path.replace('src/', '') + file.name + '"></script>');
+                    });
+
+                    Logger.log('');
+                });
+
+                Logger.log('');
+            };
+        });
+    }
+});
diff --git a/js/lib/JSBuilder/src/Target.js b/js/lib/JSBuilder/src/Target.js
new file mode 100644
index 0000000..1562b58
--- /dev/null
+++ b/js/lib/JSBuilder/src/Target.js
@@ -0,0 +1,216 @@
+Target = Ext.extend(Object, {
+    constructor: function(config, project) {
+        this.config = config || {};
+        this.project = project;
+    },
+
+    create: function() {
+        this.parseTarget();
+
+        var project = this.project,
+            builder = project.builder,
+            verbose = builder.get('verbose'),
+            file;
+
+        if (verbose) {
+            Logger.log('\nCreating the "' + this.get('name') + '" target as "' + this.get('target') + '"');
+        }
+
+        // Open the file stream
+        file = new Stream(this.get('targetPath'), 'w');
+
+        this.onCreate(file);
+        this.writeIncludes(file);
+        this.onAfterWriteIncludes(file);
+
+        // Close the target file
+        file.close();
+
+        this.afterCreate();
+    },
+
+    afterCreate: function() {
+        this.project.compressTarget(this);
+
+        var filePath = this.get('targetPath');
+        var license = (this.project.get('license')) ? "/*\n" + this.project.get('license') + "\n*/\n" : '';
+
+        if (license) {
+            var content = Fs.readFile(filePath);
+
+            if (content.substring(0, license.length) !== license) {
+                Fs.writeFile(filePath, license + content);
+            }
+        }
+    },
+
+    onAfterWriteIncludes: function(file) {
+        var namespaceRewrites = this.get('namespaceRewrites'),
+            settings = this.get('settings'),
+            suffix = '})(',
+            names = [];
+
+        if (namespaceRewrites) {
+            namespaceRewrites.forEach(function(rewrite) {
+                names.push('this.' + rewrite.to + ' || (this.' + rewrite.to + ' = {})');
+            });
+
+            suffix += names.join(', ');
+            suffix += ');';
+
+            file.writeln(suffix);
+        }
+    },
+
+    onCreate: function(file) {
+        var namespaceRewrites = this.get('namespaceRewrites'),
+            prefix = '(function(',
+            settings = this.get('settings'),
+            names = [];
+
+        if (namespaceRewrites) {
+            namespaceRewrites.forEach(function(rewrite) {
+                names.push(rewrite.from);
+            });
+
+            prefix += names.join(', ');
+            prefix += '){';
+
+            if (settings) {
+                prefix += "\n";
+                prefix +=  ["if (typeof Ext === 'undefined') {",
+                                "this.Ext = {};",
+                            "}",
+                            "",
+                            "Ext.buildSettings = " + JSON.stringify(settings) + ";"
+                           ].join("\n");
+            }
+
+
+            file.writeln(prefix);
+        }
+    },
+
+    parseTarget: function() {
+        if (this.parsed) {
+            return;
+        }
+
+        // Backwards compatibility with JSB2
+        var target = this.get('target') || this.get('file') || this.getDefaultTarget(),
+            basePath = this.project.get('deployDir') + Fs.sep,
+            dir;
+
+        target = target.replace(/\//g, Fs.sep);
+
+        if (target.indexOf('.js') !== -1) {
+            target = target.replace('.js', '');
+//            if (this.get('debug')) {
+//                target += this.project.builder.get('debugSuffix');
+//            }
+            target += '.js';
+        }
+
+        this.set('target', target);
+
+        // If the target is a path, then create the needed folders
+        if (target.indexOf(Fs.sep) !== -1) {
+            dir = target.substr(0, target.lastIndexOf(Fs.sep));
+            target = target.replace(dir, '').substr(1);
+            target = Fs.mkdir(basePath + dir) + Fs.sep + target;
+        }
+        else {
+            target = basePath + target;
+        }
+
+        this.set('targetPath', target);
+        this.parsed = true;
+    },
+
+    writeIncludes: function(file) {
+        var project = this.project,
+            verbose = project.builder.get('verbose'),
+            includes = this.get('files') || this.get('fileIncludes') || [],
+            jsbDir = project.get('jsbDir') + Fs.sep;
+
+        if (verbose && includes.length) {
+            Logger.log('  - ' + includes.length + ' file(s) included in this target.');
+        }
+
+        // Loop over all file includes, read the contents, and write
+        // it to our target file
+        includes.forEach(function(include) {
+            var path = this.getIncludePath(include),
+                content = '',
+                filesStream, files;
+
+            if (verbose) {
+                Logger.log('    + ' + path);
+            }
+
+
+            if (!Fs.exists(jsbDir + path)) {
+                if (Platform.isUnix) {
+                    filesStream = new Stream('exec://ls -a ' + jsbDir + path);
+                    files = filesStream.readFile().split('\n');
+                    filesStream.close();
+                    files.forEach(function(filePath) {
+                        if (!Ext.isEmpty(filePath)) {
+                            include = new Stream(filePath);
+                            content += include.readFile() + '\n';
+                            include.close();
+                        }
+                    });
+                }
+            }
+            else {
+                content = this.getContent(jsbDir + path);
+            }
+
+
+
+            file.writeln(content);
+        }, this);
+    },
+
+
+    getContent: function(file, callNum) {
+        /**
+         * This function should pretty much never fail since we already know the file exists.
+         * However in Windows it seems to randomly omit files when building because it can't
+         * open the stream, which causes the build to break. Since we know the file is there,
+         * we'll just re-request it until we get it. While stupid, this makes it reliable.
+         */
+
+        var content = '',
+            stream;
+
+        callNum = callNum || 0;
+        try {
+            stream = new Stream(file);
+            content = stream.readFile();
+            stream.close();
+        } catch (e) {
+            if (Platform.isWindows && callNum < 5) {
+                return this.getContent(file, callNum + 1);
+            }
+        }
+        return content;
+    },
+
+    getIncludePath : function(include) {
+        return include.path.replace(/\//g, Fs.sep) + (include.name || include.text || '');
+    },
+
+
+    get: function(key) {
+        return this.config[key] || false;
+    },
+
+    set: function(key, value, ifNotExists) {
+        if (ifNotExists && this.get(key) !== false) {
+            return;
+        }
+        this.config[key] = value;
+    }
+});
diff --git a/js/lib/JSBuilder/src/Template.js b/js/lib/JSBuilder/src/Template.js
new file mode 100644
index 0000000..9bb5ff1
--- /dev/null
+++ b/js/lib/JSBuilder/src/Template.js
@@ -0,0 +1,275 @@
+/**
+ * @class Ext.Template
+ * <p>Represents an HTML fragment template. Templates may be {@link #compile precompiled}
+ * for greater performance.</p>
+ * <p>For example usage {@link #Template see the constructor}.</p>
+ *
+ * @constructor
+ * An instance of this class may be created by passing to the constructor either
+ * a single argument, or multiple arguments:
+ * <div class="mdetail-params"><ul>
+ * <li><b>single argument</b> : String/Array
+ * <div class="sub-desc">
+ * The single argument may be either a String or an Array:<ul>
+ * <li><tt>String</tt> : </li><pre><code>
+var t = new Ext.Template("&lt;div>Hello {0}.&lt;/div>");
+t.{@link #append}('some-element', ['foo']);
+   </code></pre>
+ * <li><tt>Array</tt> : </li>
+ * An Array will be combined with <code>join('')</code>.
+<pre><code>
+var t = new Ext.Template([
+    '&lt;div name="{id}"&gt;',
+        '&lt;span class="{cls}"&gt;{name:trim} {value:ellipsis(10)}&lt;/span&gt;',
+    '&lt;/div&gt;',
+]);
+t.{@link #compile}();
+t.{@link #append}('some-element', {id: 'myid', cls: 'myclass', name: 'foo', value: 'bar'});
+   </code></pre>
+ * </ul></div></li>
+ * <li><b>multiple arguments</b> : String, Object, Array, ...
+ * <div class="sub-desc">
+ * Multiple arguments will be combined with <code>join('')</code>.
+ * <pre><code>
+var t = new Ext.Template(
+    '&lt;div name="{id}"&gt;',
+        '&lt;span class="{cls}"&gt;{name} {value}&lt;/span&gt;',
+    '&lt;/div&gt;',
+    // a configuration object:
+    {
+        compiled: true,      // {@link #compile} immediately
+    }
+);
+   </code></pre>
+ * <p><b>Notes</b>:</p>
+ * <div class="mdetail-params"><ul>
+ * <li>Formatting and <code>disableFormats</code> are not applicable for Sencha Touch.</li>
+ * </ul></div>
+ * </div></li>
+ * </ul></div>
+ * @param {Mixed} config
+ */
+Ext.Template = function(html) {
+    var me = this,
+        a = arguments,
+        buf = [];
+
+    if (Ext.isArray(html)) {
+        html = html.join("");
+    }
+    else if (a.length > 1) {
+        Ext.each(a, function(v) {
+            if (Ext.isObject(v)) {
+                Ext.apply(me, v);
+            } else {
+                buf.push(v);
+            }
+        });
+        html = buf.join('');
+    }
+
+    // @private
+    me.html = html;
+    
+    if (me.compiled) {
+        me.compile();
+    }
+};
+
+Ext.Template.prototype = {
+    isTemplate: true,
+    
+    re: /\{([\w-]+)(?:\:([\w\.]*)(?:\((.*?)?\))?)?\}/g,
+    argsRe: /^\s*['"](.*)["']\s*$/,
+    compileARe: /\\/g,
+    compileBRe: /(\r\n|\n)/g,
+    compileCRe: /'/g,
+    
+    /**
+     * @cfg {Boolean} disableFormats true to disable format functions in the template. If the template doesn't contain format functions, setting 
+     * disableFormats to true will reduce apply time (defaults to false)
+     */
+    disableFormats: false,
+    
+    /**
+     * Returns an HTML fragment of this template with the specified values applied.
+     * @param {Object/Array} values The template values. Can be an array if your params are numeric (i.e. {0}) or an object (i.e. {foo: 'bar'})
+     * @return {String} The HTML fragment
+     * @hide repeat doc
+     */
+    applyTemplate: function(values) {
+        var me = this,
+            useF = me.disableFormats !== true,
+            fm = Ext.util.Format,
+            tpl = me,
+            re,
+            i,
+            len;
+
+        if (me.compiled) {
+            return me.compiled(values);
+        }
+        function fn(m, name, format, args) {
+            if (format && useF) {
+                if (format.substr(0, 5) == "this.") {
+                    return tpl.call(format.substr(5), values[name], values);
+                }
+                else {
+                    if (args) {
+                        // quoted values are required for strings in compiled templates,
+                        // but for non compiled we need to strip them
+                        // quoted reversed for jsmin
+                        re = me.argsRe;
+                        args = args.split(',');
+                        for (i = 0, len = args.length; i < len; i++) {
+                            args[i] = args[i].replace(re, "$1");
+                        }
+                        args = [values[name]].concat(args);
+                    }
+                    else {
+                        args = [values[name]];
+                    }
+                    return fm[format].apply(fm, args);
+                }
+            }
+            else {
+                return values[name] !== undefined ? values[name] : "";
+            }
+        }
+        return me.html.replace(me.re, fn);
+    },
+
+    /**
+     * Sets the HTML used as the template and optionally compiles it.
+     * @param {String} html
+     * @param {Boolean} compile (optional) True to compile the template (defaults to undefined)
+     * @return {Ext.Template} this
+     */
+    set: function(html, compile) {
+        var me = this;
+        me.html = html;
+        me.compiled = null;
+        return compile ? me.compile() : me;
+    },
+
+    /**
+     * Compiles the template into an internal function, eliminating the RegEx overhead.
+     * @return {Ext.Template} this
+     * @hide repeat doc
+     */
+    compile: function() {
+        var me = this,
+            fm = Ext.util.Format,
+            useF = me.disableFormats !== true,
+            body;
+
+        function fn(m, name, format, args) {
+            if (format && useF) {
+                args = args ? ',' + args: "";
+                if (format.substr(0, 5) != "this.") {
+                    format = "fm." + format + '(';
+                }
+                else {
+                    format = 'this.call("' + format.substr(5) + '", ';
+                    args = ", values";
+                }
+            }
+            else {
+                args = '';
+                format = "(values['" + name + "'] == undefined ? '' : ";
+            }
+            return "'," + format + "values['" + name + "']" + args + ") ,'";
+        }
+
+
+        body = ["this.compiled = function(values){ return ['"];
+        body.push(me.html.replace(me.compileARe, '\\\\').replace(me.compileBRe, '\\n').replace(me.compileCRe, "\\'").replace(me.re, fn));
+        body.push("'].join('');};");
+        body = body.join('');
+        eval(body);
+        return me;
+    },
+
+    /**
+     * Applies the supplied values to the template and inserts the new node(s) as the first child of el.
+     * @param {Mixed} el The context element
+     * @param {Object/Array} values The template values. Can be an array if your params are numeric (i.e. {0}) or an object (i.e. {foo: 'bar'})
+     * @param {Boolean} returnElement (optional) true to return a Ext.Element (defaults to undefined)
+     * @return {HTMLElement/Ext.Element} The new node or Element
+     */
+    insertFirst: function(el, values, returnElement) {
+        return this.doInsert('afterBegin', el, values, returnElement);
+    },
+
+    /**
+     * Applies the supplied values to the template and inserts the new node(s) before el.
+     * @param {Mixed} el The context element
+     * @param {Object/Array} values The template values. Can be an array if your params are numeric (i.e. {0}) or an object (i.e. {foo: 'bar'})
+     * @param {Boolean} returnElement (optional) true to return a Ext.Element (defaults to undefined)
+     * @return {HTMLElement/Ext.Element} The new node or Element
+     */
+    insertBefore: function(el, values, returnElement) {
+        return this.doInsert('beforeBegin', el, values, returnElement);
+    },
+
+    /**
+     * Applies the supplied values to the template and inserts the new node(s) after el.
+     * @param {Mixed} el The context element
+     * @param {Object/Array} values The template values. Can be an array if your params are numeric (i.e. {0}) or an object (i.e. {foo: 'bar'})
+     * @param {Boolean} returnElement (optional) true to return a Ext.Element (defaults to undefined)
+     * @return {HTMLElement/Ext.Element} The new node or Element
+     */
+    insertAfter: function(el, values, returnElement) {
+        return this.doInsert('afterEnd', el, values, returnElement);
+    },
+
+    /**
+     * Applies the supplied <code>values</code> to the template and appends
+     * the new node(s) to the specified <code>el</code>.
+     * <p>For example usage {@link #Template see the constructor}.</p>
+     * @param {Mixed} el The context element
+     * @param {Object/Array} values
+     * The template values. Can be an array if the params are numeric (i.e. <code>{0}</code>)
+     * or an object (i.e. <code>{foo: 'bar'}</code>).
+     * @param {Boolean} returnElement (optional) true to return an Ext.Element (defaults to undefined)
+     * @return {HTMLElement/Ext.Element} The new node or Element
+     */
+    append: function(el, values, returnElement) {
+        return this.doInsert('beforeEnd', el, values, returnElement);
+    },
+
+    doInsert: function(where, el, values, returnEl) {
+        el = Ext.getDom(el);
+        var newNode = Ext.DomHelper.insertHtml(where, el, this.applyTemplate(values));
+        return returnEl ? Ext.get(newNode, true) : newNode;
+    },
+
+    /**
+     * Applies the supplied values to the template and overwrites the content of el with the new node(s).
+     * @param {Mixed} el The context element
+     * @param {Object/Array} values The template values. Can be an array if your params are numeric (i.e. {0}) or an object (i.e. {foo: 'bar'})
+     * @param {Boolean} returnElement (optional) true to return a Ext.Element (defaults to undefined)
+     * @return {HTMLElement/Ext.Element} The new node or Element
+     */
+    overwrite: function(el, values, returnElement) {
+        el = Ext.getDom(el);
+        el.innerHTML = this.applyTemplate(values);
+        return returnElement ? Ext.get(el.firstChild, true) : el.firstChild;
+    },
+
+    // private function used to call members
+    call: function(fnName, value, allValues) {
+        return this[fnName](value, allValues);
+    }
+};
+/**
+ * Alias for {@link #applyTemplate}
+ * Returns an HTML fragment of this template with the specified <code>values</code> applied.
+ * @param {Object/Array} values
+ * The template values. Can be an array if the params are numeric (i.e. <code>{0}</code>)
+ * or an object (i.e. <code>{foo: 'bar'}</code>).
+ * @return {String} The HTML fragment
+ * @member Ext.Template
+ * @method apply
+ */
+Ext.Template.prototype.apply = Ext.Template.prototype.applyTemplate;
\ No newline at end of file
diff --git a/js/lib/JSBuilder/src/XTemplate.js b/js/lib/JSBuilder/src/XTemplate.js
new file mode 100644
index 0000000..3846f76
--- /dev/null
+++ b/js/lib/JSBuilder/src/XTemplate.js
@@ -0,0 +1,469 @@
+/**
+ * @class Ext.XTemplate
+ * @extends Ext.Template
+ * <p>A template class that supports advanced functionality like:<div class="mdetail-params"><ul>
+ * <li>Autofilling arrays using templates and sub-templates</li>
+ * <li>Conditional processing with basic comparison operators</li>
+ * <li>Basic math function support</li>
+ * <li>Execute arbitrary inline code with special built-in template variables</li>
+ * <li>Custom member functions</li>
+ * <li>Many special tags and built-in operators that aren't defined as part of
+ * the API, but are supported in the templates that can be created</li>
+ * </ul></div></p>
+ * <p>XTemplate provides the templating mechanism built into:<div class="mdetail-params"><ul>
+ * <li>{@link Ext.view.View}</li>
+ * </ul></div></p>
+ *
+ * <p>For example usage {@link #XTemplate see the constructor}.</p>
+ *
+ * @constructor
+ * The {@link Ext.Template#Template Ext.Template constructor} describes
+ * the acceptable parameters to pass to the constructor. The following
+ * examples demonstrate all of the supported features.</p>
+ *
+ * <div class="mdetail-params"><ul>
+ *
+ * <li><b><u>Sample Data</u></b>
+ * <div class="sub-desc">
+ * <p>This is the data object used for reference in each code example:</p>
+ * <pre><code>
+var data = {
+    name: 'Tommy Maintz',
+    title: 'Lead Developer',
+    company: 'Sencha Inc.',
+    email: 'tommy@sencha.com',
+    address: '5 Cups Drive',
+    city: 'Palo Alto',
+    state: 'CA',
+    zip: '44102',
+    drinks: ['Coffee', 'Soda', 'Water'],
+    kids: [{
+        name: 'Joshua',
+        age:3
+    },{
+        name: 'Matthew',
+        age:2
+    },{
+        name: 'Solomon',
+        age:0
+    }]
+};
+   </code></pre>
+ * </div>
+ * </li>
+ *
+ *
+ * <li><b><u>Auto filling of arrays</u></b>
+ * <div class="sub-desc">
+ * <p>The <b><tt>tpl</tt></b> tag and the <b><tt>for</tt></b> operator are used
+ * to process the provided data object:
+ * <ul>
+ * <li>If the value specified in <tt>for</tt> is an array, it will auto-fill,
+ * repeating the template block inside the <tt>tpl</tt> tag for each item in the
+ * array.</li>
+ * <li>If <tt>for="."</tt> is specified, the data object provided is examined.</li>
+ * <li>While processing an array, the special variable <tt>{#}</tt>
+ * will provide the current array index + 1 (starts at 1, not 0).</li>
+ * </ul>
+ * </p>
+ * <pre><code>
+&lt;tpl <b>for</b>=".">...&lt;/tpl>       // loop through array at root node
+&lt;tpl <b>for</b>="foo">...&lt;/tpl>     // loop through array at foo node
+&lt;tpl <b>for</b>="foo.bar">...&lt;/tpl> // loop through array at foo.bar node
+   </code></pre>
+ * Using the sample data above:
+ * <pre><code>
+var tpl = new Ext.XTemplate(
+    '&lt;p>Kids: ',
+    '&lt;tpl <b>for</b>=".">',       // process the data.kids node
+        '&lt;p>{#}. {name}&lt;/p>',  // use current array index to autonumber
+    '&lt;/tpl>&lt;/p>'
+);
+tpl.overwrite(panel.body, data.kids); // pass the kids property of the data object
+   </code></pre>
+ * <p>An example illustrating how the <b><tt>for</tt></b> property can be leveraged
+ * to access specified members of the provided data object to populate the template:</p>
+ * <pre><code>
+var tpl = new Ext.XTemplate(
+    '&lt;p>Name: {name}&lt;/p>',
+    '&lt;p>Title: {title}&lt;/p>',
+    '&lt;p>Company: {company}&lt;/p>',
+    '&lt;p>Kids: ',
+    '&lt;tpl <b>for="kids"</b>>',     // interrogate the kids property within the data
+        '&lt;p>{name}&lt;/p>',
+    '&lt;/tpl>&lt;/p>'
+);
+tpl.overwrite(panel.body, data);  // pass the root node of the data object
+   </code></pre>
+ * <p>Flat arrays that contain values (and not objects) can be auto-rendered
+ * using the special <b><tt>{.}</tt></b> variable inside a loop.  This variable
+ * will represent the value of the array at the current index:</p>
+ * <pre><code>
+var tpl = new Ext.XTemplate(
+    '&lt;p>{name}\&#39;s favorite beverages:&lt;/p>',
+    '&lt;tpl for="drinks">',
+       '&lt;div> - {.}&lt;/div>',
+    '&lt;/tpl>'
+);
+tpl.overwrite(panel.body, data);
+   </code></pre>
+ * <p>When processing a sub-template, for example while looping through a child array,
+ * you can access the parent object's members via the <b><tt>parent</tt></b> object:</p>
+ * <pre><code>
+var tpl = new Ext.XTemplate(
+    '&lt;p>Name: {name}&lt;/p>',
+    '&lt;p>Kids: ',
+    '&lt;tpl for="kids">',
+        '&lt;tpl if="age &amp;gt; 1">',
+            '&lt;p>{name}&lt;/p>',
+            '&lt;p>Dad: {<b>parent</b>.name}&lt;/p>',
+        '&lt;/tpl>',
+    '&lt;/tpl>&lt;/p>'
+);
+tpl.overwrite(panel.body, data);
+   </code></pre>
+ * </div>
+ * </li>
+ *
+ *
+ * <li><b><u>Conditional processing with basic comparison operators</u></b>
+ * <div class="sub-desc">
+ * <p>The <b><tt>tpl</tt></b> tag and the <b><tt>if</tt></b> operator are used
+ * to provide conditional checks for deciding whether or not to render specific
+ * parts of the template. Notes:<div class="sub-desc"><ul>
+ * <li>Double quotes must be encoded if used within the conditional</li>
+ * <li>There is no <tt>else</tt> operator &mdash; if needed, two opposite
+ * <tt>if</tt> statements should be used.</li>
+ * </ul></div>
+ * <pre><code>
+&lt;tpl if="age &gt; 1 &amp;&amp; age &lt; 10">Child&lt;/tpl>
+&lt;tpl if="age >= 10 && age < 18">Teenager&lt;/tpl>
+&lt;tpl <b>if</b>="this.isGirl(name)">...&lt;/tpl>
+&lt;tpl <b>if</b>="id==\'download\'">...&lt;/tpl>
+&lt;tpl <b>if</b>="needsIcon">&lt;img src="{icon}" class="{iconCls}"/>&lt;/tpl>
+// no good:
+&lt;tpl if="name == "Tommy"">Hello&lt;/tpl>
+// encode &#34; if it is part of the condition, e.g.
+&lt;tpl if="name == &#38;quot;Tommy&#38;quot;">Hello&lt;/tpl>
+ * </code></pre>
+ * Using the sample data above:
+ * <pre><code>
+var tpl = new Ext.XTemplate(
+    '&lt;p>Name: {name}&lt;/p>',
+    '&lt;p>Kids: ',
+    '&lt;tpl for="kids">',
+        '&lt;tpl if="age &amp;gt; 1">',
+            '&lt;p>{name}&lt;/p>',
+        '&lt;/tpl>',
+    '&lt;/tpl>&lt;/p>'
+);
+tpl.overwrite(panel.body, data);
+   </code></pre>
+ * </div>
+ * </li>
+ *
+ *
+ * <li><b><u>Basic math support</u></b>
+ * <div class="sub-desc">
+ * <p>The following basic math operators may be applied directly on numeric
+ * data values:</p><pre>
+ * + - * /
+ * </pre>
+ * For example:
+ * <pre><code>
+var tpl = new Ext.XTemplate(
+    '&lt;p>Name: {name}&lt;/p>',
+    '&lt;p>Kids: ',
+    '&lt;tpl for="kids">',
+        '&lt;tpl if="age &amp;gt; 1">',  // <-- Note that the &gt; is encoded
+            '&lt;p>{#}: {name}&lt;/p>',  // <-- Auto-number each item
+            '&lt;p>In 5 Years: {age+5}&lt;/p>',  // <-- Basic math
+            '&lt;p>Dad: {[parent.name]}&lt;/p>',
+        '&lt;/tpl>',
+    '&lt;/tpl>&lt;/p>'
+);
+tpl.overwrite(panel.body, data);
+   </code></pre>
+ * </div>
+ * </li>
+ *
+ *
+ * <li><b><u>Execute arbitrary inline code with special built-in template variables</u></b>
+ * <div class="sub-desc">
+ * <p>Anything between <code>{[ ... ]}</code> is considered code to be executed
+ * in the scope of the template. There are some special variables available in that code:
+ * <ul>
+ * <li><b><tt>values</tt></b>: The values in the current scope. If you are using
+ * scope changing sub-templates, you can change what <tt>values</tt> is.</li>
+ * <li><b><tt>parent</tt></b>: The scope (values) of the ancestor template.</li>
+ * <li><b><tt>xindex</tt></b>: If you are in a looping template, the index of the
+ * loop you are in (1-based).</li>
+ * <li><b><tt>xcount</tt></b>: If you are in a looping template, the total length
+ * of the array you are looping.</li>
+ * </ul>
+ * This example demonstrates basic row striping using an inline code block and the
+ * <tt>xindex</tt> variable:</p>
+ * <pre><code>
+var tpl = new Ext.XTemplate(
+    '&lt;p>Name: {name}&lt;/p>',
+    '&lt;p>Company: {[values.company.toUpperCase() + ", " + values.title]}&lt;/p>',
+    '&lt;p>Kids: ',
+    '&lt;tpl for="kids">',
+       '&lt;div class="{[xindex % 2 === 0 ? "even" : "odd"]}">',
+        '{name}',
+        '&lt;/div>',
+    '&lt;/tpl>&lt;/p>'
+);
+tpl.overwrite(panel.body, data);
+   </code></pre>
+ * </div>
+ * </li>
+ *
+ * <li><b><u>Template member functions</u></b>
+ * <div class="sub-desc">
+ * <p>One or more member functions can be specified in a configuration
+ * object passed into the XTemplate constructor for more complex processing:</p>
+ * <pre><code>
+var tpl = new Ext.XTemplate(
+    '&lt;p>Name: {name}&lt;/p>',
+    '&lt;p>Kids: ',
+    '&lt;tpl for="kids">',
+        '&lt;tpl if="this.isGirl(name)">',
+            '&lt;p>Girl: {name} - {age}&lt;/p>',
+        '&lt;/tpl>',
+        // use opposite if statement to simulate 'else' processing:
+        '&lt;tpl if="this.isGirl(name) == false">',
+            '&lt;p>Boy: {name} - {age}&lt;/p>',
+        '&lt;/tpl>',
+        '&lt;tpl if="this.isBaby(age)">',
+            '&lt;p>{name} is a baby!&lt;/p>',
+        '&lt;/tpl>',
+    '&lt;/tpl>&lt;/p>',
+    {
+        // XTemplate configuration:
+        compiled: true,
+        // member functions:
+        isGirl: function(name){
+            return name == 'Sara Grace';
+        },
+        isBaby: function(age){
+            return age < 1;
+        }
+    }
+);
+tpl.overwrite(panel.body, data);
+   </code></pre>
+ * </div>
+ * </li>
+ *
+ * </ul></div>
+ *
+ * @param {Mixed} config
+ */
+Ext.XTemplate = function() {
+    Ext.XTemplate.superclass.constructor.apply(this, arguments);
+
+    var me = this,
+        s = me.html,
+        re = /<tpl\b[^>]*>((?:(?=([^<]+))\2|<(?!tpl\b[^>]*>))*?)<\/tpl>/,
+        nameRe = /^<tpl\b[^>]*?for="(.*?)"/,
+        ifRe = /^<tpl\b[^>]*?if="(.*?)"/,
+        execRe = /^<tpl\b[^>]*?exec="(.*?)"/,
+        id = 0,
+        tpls = [],
+        VALUES = 'values',
+        PARENT = 'parent',
+        XINDEX = 'xindex',
+        XCOUNT = 'xcount',
+        RETURN = 'return ',
+        WITHVALUES = 'with(values){ ',
+        m,
+        m2,
+        m3,
+        m4,
+        exp,
+        fn,
+        exec,
+        name,
+        i;
+
+    s = ['<tpl>', s, '</tpl>'].join('');
+
+    while ((m = s.match(re))) {
+        m2 = m[0].match(nameRe);
+        m3 = m[0].match(ifRe);
+        m4 = m[0].match(execRe);
+        exp = null;
+        fn = null;
+        exec = null;
+        name = m2 && m2[1] ? m2[1] : '';
+
+        if (m3) {
+            exp = m3 && m3[1] ? m3[1] : null;
+            if (exp) {
+                fn = new Function(VALUES, PARENT, XINDEX, XCOUNT, WITHVALUES + 'try{' + RETURN + (Ext.util.Format.htmlDecode(exp)) + ';}catch(e){return;}}');
+            }
+        }
+        if (m4) {
+            exp = m4 && m4[1] ? m4[1] : null;
+            if (exp) {
+                exec = new Function(VALUES, PARENT, XINDEX, XCOUNT, WITHVALUES + (Ext.util.Format.htmlDecode(exp)) + '; }');
+            }
+        }
+        if (name) {
+            switch (name) {
+            case '.':
+                name = new Function(VALUES, PARENT, WITHVALUES + RETURN + VALUES + '; }');
+                break;
+            case '..':
+                name = new Function(VALUES, PARENT, WITHVALUES + RETURN + PARENT + '; }');
+                break;
+            default:
+                name = new Function(VALUES, PARENT, WITHVALUES + RETURN + name + '; }');
+            }
+        }
+        tpls.push({
+            id: id,
+            target: name,
+            exec: exec,
+            test: fn,
+            body: m[1] || ''
+        });
+        s = s.replace(m[0], '{xtpl' + id + '}');
+        ++id;
+    }
+    for (i = tpls.length - 1; i >= 0; --i) {
+        me.compileTpl(tpls[i]);
+    }
+    me.master = tpls[tpls.length - 1];
+    me.tpls = tpls;
+};
+Ext.extend(Ext.XTemplate, Ext.Template, {
+    re: /\{([\w-\.\#]+)(?:\:([\w\.]*)(?:\((.*?)?\))?)?(\s?[\+\-\*\/]\s?[\d\.\+\-\*\/\(\)]+)?\}/g,
+    
+    /**
+     * @cfg {RegExp} codeRe The regular expression used to match code variables (default: matches <tt>{[expression]}</tt>).
+     */
+    codeRe: /\{\[((?:\\\]|.|\n)*?)\]\}/g,
+
+    // @private
+    applySubTemplate: function(id, values, parent, xindex, xcount) {
+        var me = this,
+            len,
+            t = me.tpls[id],
+            vs,
+            buf = [],
+            i;
+        if ((t.test && !t.test.call(me, values, parent, xindex, xcount)) ||
+        (t.exec && t.exec.call(me, values, parent, xindex, xcount))) {
+            return '';
+        }
+        vs = t.target ? t.target.call(me, values, parent) : values;
+        len = vs.length;
+        parent = t.target ? values: parent;
+        if (t.target && Ext.isArray(vs)) {
+            for (i = 0, len = vs.length; i < len; i++) {
+                buf[buf.length] = t.compiled.call(me, vs[i], parent, i + 1, len);
+            }
+            return buf.join('');
+        }
+        return t.compiled.call(me, vs, parent, xindex, xcount);
+    },
+
+    // @private
+    compileTpl: function(tpl) {
+        var fm = Ext.util.Format,
+            useF = this.disableFormats !== true,
+            body;
+
+        function fn(m, name, format, args, math) {
+            var v;
+            // name is what is inside the {}
+
+            // Name begins with xtpl, use a Sub Template
+            if (name.substr(0, 4) == 'xtpl') {
+                return "',this.applySubTemplate(" + name.substr(4) + ", values, parent, xindex, xcount),'";
+            }
+            // name = "." - Just use the values object.
+            if (name == '.') {
+                v = 'typeof values == "string" ? values : ""';
+            }
+
+            // name = "#" - Use the xindex
+            else if (name == '#') {
+                v = 'xindex';
+            }
+
+            // name has a . in it - Use object literal notation, starting from values
+            else if (name.indexOf('.') != -1) {
+                v = "values."+name;
+            }
+
+            // name is a property of values
+            else {
+                v = "values['" + name + "']";
+            }
+            if (math) {
+                v = '(' + v + math + ')';
+            }
+            if (format && useF) {
+                args = args ? ',' + args: "";
+                if (format.substr(0, 5) != "this.") {
+                    format = "fm." + format + '(';
+                }
+                else {
+                    format = 'this.call("' + format.substr(5) + '", ';
+                    args = ", values";
+                }
+            }
+            else {
+                args = '';
+                format = "(" + v + " === undefined ? '' : ";
+            }
+            return "'," + format + v + args + "),'";
+        }
+
+        function codeFn(m, code) {
+            // Single quotes get escaped when the template is compiled, however we want to undo this when running code.
+            return "',(" + code.replace(/\\'/g, "'") + "),'";
+        }
+        body = ["tpl.compiled = function(values, parent, xindex, xcount){return ['"];
+        body.push(tpl.body.replace(/(\r\n|\n)/g, '\\n').replace(/'/g, "\\'").replace(this.re, fn).replace(this.codeRe, codeFn));
+        body.push("'].join('');};");
+        body = body.join('');
+        eval(body);
+        return this;
+    },
+
+    /**
+      * Returns an HTML fragment of this template with the specified values applied.
+      * @param {Object} values The template values. Can be an array if your params are numeric (i.e. {0}) or an object (i.e. {foo: 'bar'})
+      * @return {String} The HTML fragment
+      */
+    applyTemplate: function(values) {
+        return this.master.compiled.call(this, values, {}, 1, 1);
+    },
+
+    /**
+      * Compile the template to a function for optimized performance.  Recommended if the template will be used frequently.
+      * @return {Function} The compiled function
+      */
+    compile: function() {
+        return this;
+    }
+});
+/**
+  * Alias for {@link #applyTemplate}
+  * Returns an HTML fragment of this template with the specified values applied.
+  * @param {Object/Array} values The template values. Can be an array if your params are numeric (i.e. {0}) or an object (i.e. {foo: 'bar'})
+  * @return {String} The HTML fragment
+  * @member Ext.XTemplate
+  * @method apply
+  */
+Ext.XTemplate.prototype.apply = Ext.XTemplate.prototype.applyTemplate;
+
+if (Ext.util == undefined) {
+    Ext.util = {
+        Format: {}
+    };
+}
diff --git a/js/lib/JSBuilder/src/generators/app/Application.js b/js/lib/JSBuilder/src/generators/app/Application.js
new file mode 100644
index 0000000..a552447
--- /dev/null
+++ b/js/lib/JSBuilder/src/generators/app/Application.js
@@ -0,0 +1,91 @@
+/**
+ * @class Ext.generator.Application
+ * @extends Ext.generator.Base
+ * Generates a full application
+ */
+Ext.generator.Application = Ext.extend(Ext.generator.Base, {
+    generate: function() {
+        this.headline('Generating the ' + this.name + ' application');
+        
+        this.createDirectoryStructure();
+        this.copyApplicationFiles();
+        this.copyJasmine();
+        this.copyJSBuilder();
+    },
+    
+    /**
+     * Copies all files required for jasmine to the lib directory
+     */
+    copyJasmine: function() {
+        Logger.log("Copying dependencies...");
+        
+        this.mkdir('lib/jasmine', 'lib/sencha-jasmine', 'lib/sencha-jasmine/matchers');
+        
+        this.file('lib/jasmine/jasmine.css');
+        this.file('lib/jasmine/jasmine-html.js');
+        this.file('lib/jasmine/jasmine.js');
+        this.file('lib/jasmine/MIT.LICENSE');
+        
+        this.file('lib/sencha-jasmine/sencha-jasmine.css');
+        this.file('lib/sencha-jasmine/sencha-jasmine.js');
+        this.file('lib/sencha-jasmine/matchers/Model.js');
+        this.file('lib/sencha-jasmine/matchers/Controller.js');
+    },
+    
+    /**
+     * Copies all static application files to their destination directories
+     */
+    copyApplicationFiles: function() {
+        Logger.log("Copying files...");
+        
+        this.file('index.html');
+        this.file('app/routes.js');
+        this.file('public/resources/css/application.css');
+        this.file('test/unit/index.html');
+        this.file('test/unit/SpecOptions.js');
+        this.file('test/unit/.htaccess');
+        
+        this.template('Application', this, "app/app.js");
+        this.template('Viewport', this, "app/views/Viewport.js");
+    },
+    
+    /**
+     * Creates all of the necessary directories for a new app
+     */
+    createDirectoryStructure: function() {
+        Logger.log("Creating directories...");
+        this.mkdir(
+            'app', 'app/models', 'app/controllers', 'app/views', 'lib', 
+            'public', 'public/resources/images', 'public/resources/css',
+            'test', 'test/acceptance', 'test/fixtures', 'test/unit',
+            'test/unit/models', 'test/unit/controllers', 'test/unit/views'
+        );
+    },
+    
+    /**
+     * Copies all files/folders required for JSBuilder into the lib directory
+     */
+    copyJSBuilder: function() {
+        Logger.log("Copying JSBuilder");
+        this.mkdir("lib/JSBuilder", "lib/JSBuilder/bin");
+        this.file("lib/JSBuilder/bin/Dispatch.js");
+        
+        var builderDirs = ['bin', 'jsdb', 'src', 'tests', 'ycompressor'],
+            length      = builderDirs.length,
+            i;
+        
+        for (i = 0; i < length; i++) {
+            this.copyDir(builderDirs[i], "lib/JSBuilder");
+        }
+        
+        Logger.log("    Copying JSBuilder files");
+        this.file("sencha.sh");
+    },
+    
+    decodeArgs: function(args) {
+        this.name = args[0];
+        this.basePath = args[1] || this.name;
+    }
+});
+
+Ext.regGenerator('app', Ext.generator.Application);
\ No newline at end of file
diff --git a/js/lib/JSBuilder/src/generators/app/files/app/routes.js b/js/lib/JSBuilder/src/generators/app/files/app/routes.js
new file mode 100644
index 0000000..a2e621c
--- /dev/null
+++ b/js/lib/JSBuilder/src/generators/app/files/app/routes.js
@@ -0,0 +1,18 @@
+/**
+ * The Router maps local urls to controller and action pairs. This is used primarily 
+ * for providing history support without reloading the page. Example usage:
+ * 
+ * Connects http://myapp.com/#home to the index controller's overview action
+ * map.connect("home", {controller: 'index', action: 'overview'});
+ * 
+ * Connects urls like "images/myImage.jpg" to the images controller's show action, passing
+ * "myImage.jpg" as the "url" property of the options object each controller action receives
+ * map.connect("images/:url", {controller: 'images', action: 'show'});
+ */
+Ext.Router.draw(function(map) {
+    
+    
+    //These are default fallback routes and can be removed if not needed
+    map.connect(':controller/:action');
+    map.connect(':controller/:action/:id');
+});
\ No newline at end of file
diff --git a/js/lib/JSBuilder/src/generators/app/files/index.html b/js/lib/JSBuilder/src/generators/app/files/index.html
new file mode 100644
index 0000000..2dbeb8d
--- /dev/null
+++ b/js/lib/JSBuilder/src/generators/app/files/index.html
@@ -0,0 +1,38 @@
+<!doctype html>
+<html>
+<head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">	
+    <title>Sencha Application</title>
+    
+    <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0; maximum-scale=1.0; user-scalable=0;" />
+    <meta name="apple-mobile-web-app-capable" content="yes" />
+    <link rel="apple-touch-icon" href="apple-touch-icon.png" />
+    
+    <link rel="stylesheet" href="lib/touch/resources/css/ext-touch.css" type="text/css">
+    <link rel="stylesheet" href="public/resources/css/application.css" type="text/css">
+</head>
+<body>
+    <script type="text/javascript" src="lib/touch/ext-touch-debug.js"></script>
+    <script type="text/javascript" src="lib/touch/pkgs/platform/mvc.js"></script>
+    
+    <div id="sencha-app">
+        <script type="text/javascript" src="app/routes.js"></script>
+        <script type="text/javascript" src="app/app.js"></script>
+        
+        <!-- Place your view files here -->
+        <div id="sencha-views">
+            <script type="text/javascript" src="app/views/Viewport.js"></script>
+        </div>
+        
+        <!-- Place your model files here -->
+        <div id="sencha-models">
+            
+        </div>
+        
+        <!-- Place your controller files here -->
+        <div id="sencha-controllers">
+            
+        </div>
+    </div>
+</body>
+</html>
\ No newline at end of file
diff --git a/js/lib/JSBuilder/src/generators/app/files/lib/JSBuilder/bin/Dispatch.js b/js/lib/JSBuilder/src/generators/app/files/lib/JSBuilder/bin/Dispatch.js
new file mode 100644
index 0000000..69a987f
--- /dev/null
+++ b/js/lib/JSBuilder/src/generators/app/files/lib/JSBuilder/bin/Dispatch.js
@@ -0,0 +1,37 @@
+var JSBuilderPath = system.cwd + '/lib/JSBuilder/';
+
+load(JSBuilderPath + 'src/Loader.js');
+Loader.setBasePath(JSBuilderPath + 'src');
+
+Loader.require([
+    'Ext', 'Cmd', 'Filesystem', 'Platform', 'Cli', 'Logger', 'Project', 'Target', 'Package', 'Build'
+]);
+
+/**
+ * @class Ext.CommandDispatcher
+ * @extends Object
+ * Dispaches to the relevant Cli subclass from the command line 'sencha' command. e.g.
+ * sencha generate xyz is dispatched to whichever Ext.Cli subclass registered itself to
+ * handler the 'generate' command (Ext.generator.Factory in this case).
+ */
+Ext.CommandDispatcher = {
+    types: {},
+    
+    dispatch: function(module, args) {
+        new this.types[module]({args: args});
+    }
+};
+
+Ext.regDispatchable = function(name, constructor) {
+    Ext.CommandDispatcher.types[name] = constructor;
+};
+
+load('src/Generator.js');
+load('src/generators/app/Application.js');
+load('src/generators/controller/Controller.js');
+load('src/generators/model/Model.js');
+
+var args   = system.arguments,
+    module = args[0];
+
+Ext.CommandDispatcher.dispatch(module, args.slice(1));
\ No newline at end of file
diff --git a/js/lib/JSBuilder/src/generators/app/files/lib/jasmine/MIT.LICENSE b/js/lib/JSBuilder/src/generators/app/files/lib/jasmine/MIT.LICENSE
new file mode 100644
index 0000000..1eb9b49
--- /dev/null
+++ b/js/lib/JSBuilder/src/generators/app/files/lib/jasmine/MIT.LICENSE
@@ -0,0 +1,20 @@
+Copyright (c) 2008-2010 Pivotal Labs
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/js/lib/JSBuilder/src/generators/app/files/lib/jasmine/jasmine-html.js b/js/lib/JSBuilder/src/generators/app/files/lib/jasmine/jasmine-html.js
new file mode 100644
index 0000000..c59f2de
--- /dev/null
+++ b/js/lib/JSBuilder/src/generators/app/files/lib/jasmine/jasmine-html.js
@@ -0,0 +1,182 @@
+jasmine.TrivialReporter = function(doc) {
+  this.document = doc || document;
+  this.suiteDivs = {};
+  this.logRunningSpecs = false;
+};
+
+jasmine.TrivialReporter.prototype.createDom = function(type, attrs, childrenVarArgs) {
+  var el = document.createElement(type);
+
+  for (var i = 2; i < arguments.length; i++) {
+    var child = arguments[i];
+
+    if (typeof child === 'string') {
+      el.appendChild(document.createTextNode(child));
+    } else {
+      if (child) { el.appendChild(child); }
+    }
+  }
+
+  for (var attr in attrs) {
+    if (attr == "className") {
+      el[attr] = attrs[attr];
+    } else {
+      el.setAttribute(attr, attrs[attr]);
+    }
+  }
+
+  return el;
+};
+
+jasmine.TrivialReporter.prototype.reportRunnerStarting = function(runner) {
+  var showPassed, showSkipped;
+
+  this.outerDiv = this.createDom('div', { className: 'jasmine_reporter' },
+      this.createDom('div', { className: 'banner' },
+        this.createDom('div', { className: 'logo' },
+            this.createDom('a', { href: 'http://pivotal.github.com/jasmine/', target: "_blank" }, "Jasmine"),
+            this.createDom('span', { className: 'version' }, runner.env.versionString())),
+        this.createDom('div', { className: 'options' },
+            "Show ",
+            showPassed = this.createDom('input', { id: "__jasmine_TrivialReporter_showPassed__", type: 'checkbox' }),
+            this.createDom('label', { "for": "__jasmine_TrivialReporter_showPassed__" }, " passed "),
+            showSkipped = this.createDom('input', { id: "__jasmine_TrivialReporter_showSkipped__", type: 'checkbox' }),
+            this.createDom('label', { "for": "__jasmine_TrivialReporter_showSkipped__" }, " skipped")
+            )
+          ),
+
+      this.runnerDiv = this.createDom('div', { className: 'runner running' },
+          this.createDom('a', { className: 'run_spec', href: '?' }, "run all"),
+          this.runnerMessageSpan = this.createDom('span', {}, "Running..."),
+          this.finishedAtSpan = this.createDom('span', { className: 'finished-at' }, ""))
+      );
+
+  this.document.body.appendChild(this.outerDiv);
+
+  var suites = runner.suites();
+  for (var i = 0; i < suites.length; i++) {
+    var suite = suites[i];
+    var suiteDiv = this.createDom('div', { className: 'suite' },
+        this.createDom('a', { className: 'run_spec', href: '?spec=' + encodeURIComponent(suite.getFullName()) }, "run"),
+        this.createDom('a', { className: 'description', href: '?spec=' + encodeURIComponent(suite.getFullName()) }, suite.description));
+    this.suiteDivs[suite.id] = suiteDiv;
+    var parentDiv = this.outerDiv;
+    if (suite.parentSuite) {
+      parentDiv = this.suiteDivs[suite.parentSuite.id];
+    }
+    parentDiv.appendChild(suiteDiv);
+  }
+
+  this.startedAt = new Date();
+
+  var self = this;
+  showPassed.onchange = function(evt) {
+    if (evt.target.checked) {
+      self.outerDiv.className += ' show-passed';
+    } else {
+      self.outerDiv.className = self.outerDiv.className.replace(/ show-passed/, '');
+    }
+  };
+
+  showSkipped.onchange = function(evt) {
+    if (evt.target.checked) {
+      self.outerDiv.className += ' show-skipped';
+    } else {
+      self.outerDiv.className = self.outerDiv.className.replace(/ show-skipped/, '');
+    }
+  };
+};
+
+jasmine.TrivialReporter.prototype.reportRunnerResults = function(runner) {
+  var results = runner.results();
+  var className = (results.failedCount > 0) ? "runner failed" : "runner passed";
+  this.runnerDiv.setAttribute("class", className);
+  //do it twice for IE
+  this.runnerDiv.setAttribute("className", className);
+  var specs = runner.specs();
+  var specCount = 0;
+  for (var i = 0; i < specs.length; i++) {
+    if (this.specFilter(specs[i])) {
+      specCount++;
+    }
+  }
+  var message = "" + specCount + " spec" + (specCount == 1 ? "" : "s" ) + ", " + results.failedCount + " failure" + ((results.failedCount == 1) ? "" : "s");
+  message += " in " + ((new Date().getTime() - this.startedAt.getTime()) / 1000) + "s";
+  this.runnerMessageSpan.replaceChild(this.createDom('a', { className: 'description', href: '?'}, message), this.runnerMessageSpan.firstChild);
+
+  this.finishedAtSpan.appendChild(document.createTextNode("Finished at " + new Date().toString()));
+};
+
+jasmine.TrivialReporter.prototype.reportSuiteResults = function(suite) {
+  var results = suite.results();
+  var status = results.passed() ? 'passed' : 'failed';
+  if (results.totalCount == 0) { // todo: change this to check results.skipped
+    status = 'skipped';
+  }
+  this.suiteDivs[suite.id].className += " " + status;
+};
+
+jasmine.TrivialReporter.prototype.reportSpecStarting = function(spec) {
+  if (this.logRunningSpecs) {
+    this.log('>> Jasmine Running ' + spec.suite.description + ' ' + spec.description + '...');
+  }
+};
+
+jasmine.TrivialReporter.prototype.reportSpecResults = function(spec) {
+  var results = spec.results();
+  var status = results.passed() ? 'passed' : 'failed';
+  if (results.skipped) {
+    status = 'skipped';
+  }
+  var specDiv = this.createDom('div', { className: 'spec '  + status },
+      this.createDom('a', { className: 'run_spec', href: '?spec=' + encodeURIComponent(spec.getFullName()) }, "run"),
+      this.createDom('a', {
+        className: 'description',
+        href: '?spec=' + encodeURIComponent(spec.getFullName()),
+        title: spec.getFullName()
+      }, spec.description));
+
+
+  var resultItems = results.getItems();
+  var messagesDiv = this.createDom('div', { className: 'messages' });
+  for (var i = 0; i < resultItems.length; i++) {
+    var result = resultItems[i];
+
+    if (result.type == 'log') {
+      messagesDiv.appendChild(this.createDom('div', {className: 'resultMessage log'}, result.toString()));
+    } else if (result.type == 'expect' && result.passed && !result.passed()) {
+      messagesDiv.appendChild(this.createDom('div', {className: 'resultMessage fail'}, result.message));
+
+      if (result.trace.stack) {
+        messagesDiv.appendChild(this.createDom('div', {className: 'stackTrace'}, result.trace.stack));
+      }
+    }
+  }
+
+  if (messagesDiv.childNodes.length > 0) {
+    specDiv.appendChild(messagesDiv);
+  }
+
+  this.suiteDivs[spec.suite.id].appendChild(specDiv);
+};
+
+jasmine.TrivialReporter.prototype.log = function() {
+  var console = jasmine.getGlobal().console;
+  if (console && console.log) console.log.apply(console, arguments);
+};
+
+jasmine.TrivialReporter.prototype.getLocation = function() {
+  return this.document.location;
+};
+
+jasmine.TrivialReporter.prototype.specFilter = function(spec) {
+  var paramMap = {};
+  var params = this.getLocation().search.substring(1).split('&');
+  for (var i = 0; i < params.length; i++) {
+    var p = params[i].split('=');
+    paramMap[decodeURIComponent(p[0])] = decodeURIComponent(p[1]);
+  }
+
+  if (!paramMap["spec"]) return true;
+  return spec.getFullName().indexOf(paramMap["spec"]) == 0;
+};
diff --git a/js/lib/JSBuilder/src/generators/app/files/lib/jasmine/jasmine.css b/js/lib/JSBuilder/src/generators/app/files/lib/jasmine/jasmine.css
new file mode 100644
index 0000000..6583fe7
--- /dev/null
+++ b/js/lib/JSBuilder/src/generators/app/files/lib/jasmine/jasmine.css
@@ -0,0 +1,166 @@
+body {
+  font-family: "Helvetica Neue Light", "Lucida Grande", "Calibri", "Arial", sans-serif;
+}
+
+
+.jasmine_reporter a:visited, .jasmine_reporter a {
+  color: #303; 
+}
+
+.jasmine_reporter a:hover, .jasmine_reporter a:active {
+  color: blue; 
+}
+
+.run_spec {
+  float:right;
+  padding-right: 5px;
+  font-size: .8em;
+  text-decoration: none;
+}
+
+.jasmine_reporter {
+  margin: 0 5px;
+}
+
+.banner {
+  color: #303;
+  background-color: #fef;
+  padding: 5px;
+}
+
+.logo {
+  float: left;
+  font-size: 1.1em;
+  padding-left: 5px;
+}
+
+.logo .version {
+  font-size: .6em;
+  padding-left: 1em;
+}
+
+.runner.running {
+  background-color: yellow;
+}
+
+
+.options {
+  text-align: right;
+  font-size: .8em;
+}
+
+
+
+
+.suite {
+  border: 1px outset gray;
+  margin: 5px 0;
+  padding-left: 1em;
+}
+
+.suite .suite {
+  margin: 5px; 
+}
+
+.suite.passed {
+  background-color: #dfd;
+}
+
+.suite.failed {
+  background-color: #fdd;
+}
+
+.spec {
+  margin: 5px;
+  padding-left: 1em;
+  clear: both;
+}
+
+.spec.failed, .spec.passed, .spec.skipped {
+  padding-bottom: 5px;
+  border: 1px solid gray;
+}
+
+.spec.failed {
+  background-color: #fbb;
+  border-color: red;
+}
+
+.spec.passed {
+  background-color: #bfb;
+  border-color: green;
+}
+
+.spec.skipped {
+  background-color: #bbb;
+}
+
+.messages {
+  border-left: 1px dashed gray;
+  padding-left: 1em;
+  padding-right: 1em;
+}
+
+.passed {
+  background-color: #cfc;
+  display: none;
+}
+
+.failed {
+  background-color: #fbb;
+}
+
+.skipped {
+  color: #777;
+  background-color: #eee;
+  display: none;
+}
+
+
+/*.resultMessage {*/
+  /*white-space: pre;*/
+/*}*/
+
+.resultMessage span.result {
+  display: block;
+  line-height: 2em;
+  color: black;
+}
+
+.resultMessage .mismatch {
+  color: black;
+}
+
+.stackTrace {
+  white-space: pre;
+  font-size: .8em;
+  margin-left: 10px;
+  max-height: 5em;
+  overflow: auto;
+  border: 1px inset red;
+  padding: 1em;
+  background: #eef;
+}
+
+.finished-at {
+  padding-left: 1em;
+  font-size: .6em;
+}
+
+.show-passed .passed,
+.show-skipped .skipped {
+  display: block;
+}
+
+
+#jasmine_content {
+  position:fixed;
+  right: 100%;
+}
+
+.runner {
+  border: 1px solid gray;
+  display: block;
+  margin: 5px 0;
+  padding: 2px 0 2px 10px;
+}
diff --git a/js/lib/JSBuilder/src/generators/app/files/lib/jasmine/jasmine.js b/js/lib/JSBuilder/src/generators/app/files/lib/jasmine/jasmine.js
new file mode 100644
index 0000000..68baf53
--- /dev/null
+++ b/js/lib/JSBuilder/src/generators/app/files/lib/jasmine/jasmine.js
@@ -0,0 +1,2421 @@
+/**
+ * Top level namespace for Jasmine, a lightweight JavaScript BDD/spec/testing framework.
+ *
+ * @namespace
+ */
+var jasmine = {};
+
+/**
+ * @private
+ */
+jasmine.unimplementedMethod_ = function() {
+  throw new Error("unimplemented method");
+};
+
+/**
+ * Use <code>jasmine.undefined</code> instead of <code>undefined</code>, since <code>undefined</code> is just
+ * a plain old variable and may be redefined by somebody else.
+ *
+ * @private
+ */
+jasmine.undefined = jasmine.___undefined___;
+
+/**
+ * Default interval in milliseconds for event loop yields (e.g. to allow network activity or to refresh the screen with the HTML-based runner). Small values here may result in slow test running. Zero means no updates until all tests have completed.
+ *
+ */
+jasmine.DEFAULT_UPDATE_INTERVAL = 250;
+
+/**
+ * Default timeout interval in milliseconds for waitsFor() blocks.
+ */
+jasmine.DEFAULT_TIMEOUT_INTERVAL = 5000;
+
+jasmine.getGlobal = function() {
+  function getGlobal() {
+    return this;
+  }
+
+  return getGlobal();
+};
+
+/**
+ * Allows for bound functions to be compared.  Internal use only.
+ *
+ * @ignore
+ * @private
+ * @param base {Object} bound 'this' for the function
+ * @param name {Function} function to find
+ */
+jasmine.bindOriginal_ = function(base, name) {
+  var original = base[name];
+  if (original.apply) {
+    return function() {
+      return original.apply(base, arguments);
+    };
+  } else {
+    // IE support
+    return jasmine.getGlobal()[name];
+  }
+};
+
+jasmine.setTimeout = jasmine.bindOriginal_(jasmine.getGlobal(), 'setTimeout');
+jasmine.clearTimeout = jasmine.bindOriginal_(jasmine.getGlobal(), 'clearTimeout');
+jasmine.setInterval = jasmine.bindOriginal_(jasmine.getGlobal(), 'setInterval');
+jasmine.clearInterval = jasmine.bindOriginal_(jasmine.getGlobal(), 'clearInterval');
+
+jasmine.MessageResult = function(values) {
+  this.type = 'log';
+  this.values = values;
+  this.trace = new Error(); // todo: test better
+};
+
+jasmine.MessageResult.prototype.toString = function() {
+  var text = "";
+  for(var i = 0; i < this.values.length; i++) {
+    if (i > 0) text += " ";
+    if (jasmine.isString_(this.values[i])) {
+      text += this.values[i];
+    } else {
+      text += jasmine.pp(this.values[i]);
+    }
+  }
+  return text;
+};
+
+jasmine.ExpectationResult = function(params) {
+  this.type = 'expect';
+  this.matcherName = params.matcherName;
+  this.passed_ = params.passed;
+  this.expected = params.expected;
+  this.actual = params.actual;
+
+  this.message = this.passed_ ? 'Passed.' : params.message;
+  this.trace = this.passed_ ? '' : new Error(this.message);
+};
+
+jasmine.ExpectationResult.prototype.toString = function () {
+  return this.message;
+};
+
+jasmine.ExpectationResult.prototype.passed = function () {
+  return this.passed_;
+};
+
+/**
+ * Getter for the Jasmine environment. Ensures one gets created
+ */
+jasmine.getEnv = function() {
+  return jasmine.currentEnv_ = jasmine.currentEnv_ || new jasmine.Env();
+};
+
+/**
+ * @ignore
+ * @private
+ * @param value
+ * @returns {Boolean}
+ */
+jasmine.isArray_ = function(value) {
+  return jasmine.isA_("Array", value);  
+};
+
+/**
+ * @ignore
+ * @private
+ * @param value
+ * @returns {Boolean}
+ */
+jasmine.isString_ = function(value) {
+  return jasmine.isA_("String", value);
+};
+
+/**
+ * @ignore
+ * @private
+ * @param value
+ * @returns {Boolean}
+ */
+jasmine.isNumber_ = function(value) {
+  return jasmine.isA_("Number", value);
+};
+
+/**
+ * @ignore
+ * @private
+ * @param {String} typeName
+ * @param value
+ * @returns {Boolean}
+ */
+jasmine.isA_ = function(typeName, value) {
+  return Object.prototype.toString.apply(value) === '[object ' + typeName + ']';
+};
+
+/**
+ * Pretty printer for expecations.  Takes any object and turns it into a human-readable string.
+ *
+ * @param value {Object} an object to be outputted
+ * @returns {String}
+ */
+jasmine.pp = function(value) {
+  var stringPrettyPrinter = new jasmine.StringPrettyPrinter();
+  stringPrettyPrinter.format(value);
+  return stringPrettyPrinter.string;
+};
+
+/**
+ * Returns true if the object is a DOM Node.
+ *
+ * @param {Object} obj object to check
+ * @returns {Boolean}
+ */
+jasmine.isDomNode = function(obj) {
+  return obj['nodeType'] > 0;
+};
+
+/**
+ * Returns a matchable 'generic' object of the class type.  For use in expecations of type when values don't matter.
+ *
+ * @example
+ * // don't care about which function is passed in, as long as it's a function
+ * expect(mySpy).toHaveBeenCalledWith(jasmine.any(Function));
+ *
+ * @param {Class} clazz
+ * @returns matchable object of the type clazz
+ */
+jasmine.any = function(clazz) {
+  return new jasmine.Matchers.Any(clazz);
+};
+
+/**
+ * Jasmine Spies are test doubles that can act as stubs, spies, fakes or when used in an expecation, mocks.
+ *
+ * Spies should be created in test setup, before expectations.  They can then be checked, using the standard Jasmine
+ * expectation syntax. Spies can be checked if they were called or not and what the calling params were.
+ *
+ * A Spy has the following fields: wasCalled, callCount, mostRecentCall, and argsForCall (see docs).
+ *
+ * Spies are torn down at the end of every spec.
+ *
+ * Note: Do <b>not</b> call new jasmine.Spy() directly - a spy must be created using spyOn, jasmine.createSpy or jasmine.createSpyObj.
+ *
+ * @example
+ * // a stub
+ * var myStub = jasmine.createSpy('myStub');  // can be used anywhere
+ *
+ * // spy example
+ * var foo = {
+ *   not: function(bool) { return !bool; }
+ * }
+ *
+ * // actual foo.not will not be called, execution stops
+ * spyOn(foo, 'not');
+
+ // foo.not spied upon, execution will continue to implementation
+ * spyOn(foo, 'not').andCallThrough();
+ *
+ * // fake example
+ * var foo = {
+ *   not: function(bool) { return !bool; }
+ * }
+ *
+ * // foo.not(val) will return val
+ * spyOn(foo, 'not').andCallFake(function(value) {return value;});
+ *
+ * // mock example
+ * foo.not(7 == 7);
+ * expect(foo.not).toHaveBeenCalled();
+ * expect(foo.not).toHaveBeenCalledWith(true);
+ *
+ * @constructor
+ * @see spyOn, jasmine.createSpy, jasmine.createSpyObj
+ * @param {String} name
+ */
+jasmine.Spy = function(name) {
+  /**
+   * The name of the spy, if provided.
+   */
+  this.identity = name || 'unknown';
+  /**
+   *  Is this Object a spy?
+   */
+  this.isSpy = true;
+  /**
+   * The actual function this spy stubs.
+   */
+  this.plan = function() {
+  };
+  /**
+   * Tracking of the most recent call to the spy.
+   * @example
+   * var mySpy = jasmine.createSpy('foo');
+   * mySpy(1, 2);
+   * mySpy.mostRecentCall.args = [1, 2];
+   */
+  this.mostRecentCall = {};
+
+  /**
+   * Holds arguments for each call to the spy, indexed by call count
+   * @example
+   * var mySpy = jasmine.createSpy('foo');
+   * mySpy(1, 2);
+   * mySpy(7, 8);
+   * mySpy.mostRecentCall.args = [7, 8];
+   * mySpy.argsForCall[0] = [1, 2];
+   * mySpy.argsForCall[1] = [7, 8];
+   */
+  this.argsForCall = [];
+  this.calls = [];
+};
+
+/**
+ * Tells a spy to call through to the actual implemenatation.
+ *
+ * @example
+ * var foo = {
+ *   bar: function() { // do some stuff }
+ * }
+ *
+ * // defining a spy on an existing property: foo.bar
+ * spyOn(foo, 'bar').andCallThrough();
+ */
+jasmine.Spy.prototype.andCallThrough = function() {
+  this.plan = this.originalValue;
+  return this;
+};
+
+/**
+ * For setting the return value of a spy.
+ *
+ * @example
+ * // defining a spy from scratch: foo() returns 'baz'
+ * var foo = jasmine.createSpy('spy on foo').andReturn('baz');
+ *
+ * // defining a spy on an existing property: foo.bar() returns 'baz'
+ * spyOn(foo, 'bar').andReturn('baz');
+ *
+ * @param {Object} value
+ */
+jasmine.Spy.prototype.andReturn = function(value) {
+  this.plan = function() {
+    return value;
+  };
+  return this;
+};
+
+/**
+ * For throwing an exception when a spy is called.
+ *
+ * @example
+ * // defining a spy from scratch: foo() throws an exception w/ message 'ouch'
+ * var foo = jasmine.createSpy('spy on foo').andThrow('baz');
+ *
+ * // defining a spy on an existing property: foo.bar() throws an exception w/ message 'ouch'
+ * spyOn(foo, 'bar').andThrow('baz');
+ *
+ * @param {String} exceptionMsg
+ */
+jasmine.Spy.prototype.andThrow = function(exceptionMsg) {
+  this.plan = function() {
+    throw exceptionMsg;
+  };
+  return this;
+};
+
+/**
+ * Calls an alternate implementation when a spy is called.
+ *
+ * @example
+ * var baz = function() {
+ *   // do some stuff, return something
+ * }
+ * // defining a spy from scratch: foo() calls the function baz
+ * var foo = jasmine.createSpy('spy on foo').andCall(baz);
+ *
+ * // defining a spy on an existing property: foo.bar() calls an anonymnous function
+ * spyOn(foo, 'bar').andCall(function() { return 'baz';} );
+ *
+ * @param {Function} fakeFunc
+ */
+jasmine.Spy.prototype.andCallFake = function(fakeFunc) {
+  this.plan = fakeFunc;
+  return this;
+};
+
+/**
+ * Resets all of a spy's the tracking variables so that it can be used again.
+ *
+ * @example
+ * spyOn(foo, 'bar');
+ *
+ * foo.bar();
+ *
+ * expect(foo.bar.callCount).toEqual(1);
+ *
+ * foo.bar.reset();
+ *
+ * expect(foo.bar.callCount).toEqual(0);
+ */
+jasmine.Spy.prototype.reset = function() {
+  this.wasCalled = false;
+  this.callCount = 0;
+  this.argsForCall = [];
+  this.calls = [];
+  this.mostRecentCall = {};
+};
+
+jasmine.createSpy = function(name) {
+
+  var spyObj = function() {
+    spyObj.wasCalled = true;
+    spyObj.callCount++;
+    var args = jasmine.util.argsToArray(arguments);
+    spyObj.mostRecentCall.object = this;
+    spyObj.mostRecentCall.args = args;
+    spyObj.argsForCall.push(args);
+    spyObj.calls.push({object: this, args: args});
+    return spyObj.plan.apply(this, arguments);
+  };
+
+  var spy = new jasmine.Spy(name);
+
+  for (var prop in spy) {
+    spyObj[prop] = spy[prop];
+  }
+
+  spyObj.reset();
+
+  return spyObj;
+};
+
+/**
+ * Determines whether an object is a spy.
+ *
+ * @param {jasmine.Spy|Object} putativeSpy
+ * @returns {Boolean}
+ */
+jasmine.isSpy = function(putativeSpy) {
+  return putativeSpy && putativeSpy.isSpy;
+};
+
+/**
+ * Creates a more complicated spy: an Object that has every property a function that is a spy.  Used for stubbing something
+ * large in one call.
+ *
+ * @param {String} baseName name of spy class
+ * @param {Array} methodNames array of names of methods to make spies
+ */
+jasmine.createSpyObj = function(baseName, methodNames) {
+  if (!jasmine.isArray_(methodNames) || methodNames.length == 0) {
+    throw new Error('createSpyObj requires a non-empty array of method names to create spies for');
+  }
+  var obj = {};
+  for (var i = 0; i < methodNames.length; i++) {
+    obj[methodNames[i]] = jasmine.createSpy(baseName + '.' + methodNames[i]);
+  }
+  return obj;
+};
+
+/**
+ * All parameters are pretty-printed and concatenated together, then written to the current spec's output.
+ *
+ * Be careful not to leave calls to <code>jasmine.log</code> in production code.
+ */
+jasmine.log = function() {
+  var spec = jasmine.getEnv().currentSpec;
+  spec.log.apply(spec, arguments);
+};
+
+/**
+ * Function that installs a spy on an existing object's method name.  Used within a Spec to create a spy.
+ *
+ * @example
+ * // spy example
+ * var foo = {
+ *   not: function(bool) { return !bool; }
+ * }
+ * spyOn(foo, 'not'); // actual foo.not will not be called, execution stops
+ *
+ * @see jasmine.createSpy
+ * @param obj
+ * @param methodName
+ * @returns a Jasmine spy that can be chained with all spy methods
+ */
+var spyOn = function(obj, methodName) {
+  return jasmine.getEnv().currentSpec.spyOn(obj, methodName);
+};
+
+/**
+ * Creates a Jasmine spec that will be added to the current suite.
+ *
+ * // TODO: pending tests
+ *
+ * @example
+ * it('should be true', function() {
+ *   expect(true).toEqual(true);
+ * });
+ *
+ * @param {String} desc description of this specification
+ * @param {Function} func defines the preconditions and expectations of the spec
+ */
+var it = function(desc, func) {
+  return jasmine.getEnv().it(desc, func);
+};
+
+/**
+ * Creates a <em>disabled</em> Jasmine spec.
+ *
+ * A convenience method that allows existing specs to be disabled temporarily during development.
+ *
+ * @param {String} desc description of this specification
+ * @param {Function} func defines the preconditions and expectations of the spec
+ */
+var xit = function(desc, func) {
+  return jasmine.getEnv().xit(desc, func);
+};
+
+/**
+ * Starts a chain for a Jasmine expectation.
+ *
+ * It is passed an Object that is the actual value and should chain to one of the many
+ * jasmine.Matchers functions.
+ *
+ * @param {Object} actual Actual value to test against and expected value
+ */
+var expect = function(actual) {
+  return jasmine.getEnv().currentSpec.expect(actual);
+};
+
+/**
+ * Defines part of a jasmine spec.  Used in cominbination with waits or waitsFor in asynchrnous specs.
+ *
+ * @param {Function} func Function that defines part of a jasmine spec.
+ */
+var runs = function(func) {
+  jasmine.getEnv().currentSpec.runs(func);
+};
+
+/**
+ * Waits a fixed time period before moving to the next block.
+ *
+ * @deprecated Use waitsFor() instead
+ * @param {Number} timeout milliseconds to wait
+ */
+var waits = function(timeout) {
+  jasmine.getEnv().currentSpec.waits(timeout);
+};
+
+/**
+ * Waits for the latchFunction to return true before proceeding to the next block.
+ *
+ * @param {Function} latchFunction
+ * @param {String} optional_timeoutMessage
+ * @param {Number} optional_timeout
+ */
+var waitsFor = function(latchFunction, optional_timeoutMessage, optional_timeout) {
+  jasmine.getEnv().currentSpec.waitsFor.apply(jasmine.getEnv().currentSpec, arguments);
+};
+
+/**
+ * A function that is called before each spec in a suite.
+ *
+ * Used for spec setup, including validating assumptions.
+ *
+ * @param {Function} beforeEachFunction
+ */
+var beforeEach = function(beforeEachFunction) {
+  jasmine.getEnv().beforeEach(beforeEachFunction);
+};
+
+/**
+ * A function that is called after each spec in a suite.
+ *
+ * Used for restoring any state that is hijacked during spec execution.
+ *
+ * @param {Function} afterEachFunction
+ */
+var afterEach = function(afterEachFunction) {
+  jasmine.getEnv().afterEach(afterEachFunction);
+};
+
+/**
+ * Defines a suite of specifications.
+ *
+ * Stores the description and all defined specs in the Jasmine environment as one suite of specs. Variables declared
+ * are accessible by calls to beforeEach, it, and afterEach. Describe blocks can be nested, allowing for specialization
+ * of setup in some tests.
+ *
+ * @example
+ * // TODO: a simple suite
+ *
+ * // TODO: a simple suite with a nested describe block
+ *
+ * @param {String} description A string, usually the class under test.
+ * @param {Function} specDefinitions function that defines several specs.
+ */
+var describe = function(description, specDefinitions) {
+  return jasmine.getEnv().describe(description, specDefinitions);
+};
+
+/**
+ * Disables a suite of specifications.  Used to disable some suites in a file, or files, temporarily during development.
+ *
+ * @param {String} description A string, usually the class under test.
+ * @param {Function} specDefinitions function that defines several specs.
+ */
+var xdescribe = function(description, specDefinitions) {
+  return jasmine.getEnv().xdescribe(description, specDefinitions);
+};
+
+
+// Provide the XMLHttpRequest class for IE 5.x-6.x:
+jasmine.XmlHttpRequest = (typeof XMLHttpRequest == "undefined") ? function() {
+  try {
+    return new ActiveXObject("Msxml2.XMLHTTP.6.0");
+  } catch(e) {
+  }
+  try {
+    return new ActiveXObject("Msxml2.XMLHTTP.3.0");
+  } catch(e) {
+  }
+  try {
+    return new ActiveXObject("Msxml2.XMLHTTP");
+  } catch(e) {
+  }
+  try {
+    return new ActiveXObject("Microsoft.XMLHTTP");
+  } catch(e) {
+  }
+  throw new Error("This browser does not support XMLHttpRequest.");
+} : XMLHttpRequest;
+/**
+ * @namespace
+ */
+jasmine.util = {};
+
+/**
+ * Declare that a child class inherit it's prototype from the parent class.
+ *
+ * @private
+ * @param {Function} childClass
+ * @param {Function} parentClass
+ */
+jasmine.util.inherit = function(childClass, parentClass) {
+  /**
+   * @private
+   */
+  var subclass = function() {
+  };
+  subclass.prototype = parentClass.prototype;
+  childClass.prototype = new subclass;
+};
+
+jasmine.util.formatException = function(e) {
+  var lineNumber;
+  if (e.line) {
+    lineNumber = e.line;
+  }
+  else if (e.lineNumber) {
+    lineNumber = e.lineNumber;
+  }
+
+  var file;
+
+  if (e.sourceURL) {
+    file = e.sourceURL;
+  }
+  else if (e.fileName) {
+    file = e.fileName;
+  }
+
+  var message = (e.name && e.message) ? (e.name + ': ' + e.message) : e.toString();
+
+  if (file && lineNumber) {
+    message += ' in ' + file + ' (line ' + lineNumber + ')';
+  }
+
+  return message;
+};
+
+jasmine.util.htmlEscape = function(str) {
+  if (!str) return str;
+  return str.replace(/&/g, '&amp;')
+    .replace(/</g, '&lt;')
+    .replace(/>/g, '&gt;');
+};
+
+jasmine.util.argsToArray = function(args) {
+  var arrayOfArgs = [];
+  for (var i = 0; i < args.length; i++) arrayOfArgs.push(args[i]);
+  return arrayOfArgs;
+};
+
+jasmine.util.extend = function(destination, source) {
+  for (var property in source) destination[property] = source[property];
+  return destination;
+};
+
+/**
+ * Environment for Jasmine
+ *
+ * @constructor
+ */
+jasmine.Env = function() {
+  this.currentSpec = null;
+  this.currentSuite = null;
+  this.currentRunner_ = new jasmine.Runner(this);
+
+  this.reporter = new jasmine.MultiReporter();
+
+  this.updateInterval = jasmine.DEFAULT_UPDATE_INTERVAL;
+  this.defaultTimeoutInterval = jasmine.DEFAULT_TIMEOUT_INTERVAL;
+  this.lastUpdate = 0;
+  this.specFilter = function() {
+    return true;
+  };
+
+  this.nextSpecId_ = 0;
+  this.nextSuiteId_ = 0;
+  this.equalityTesters_ = [];
+
+  // wrap matchers
+  this.matchersClass = function() {
+    jasmine.Matchers.apply(this, arguments);
+  };
+  jasmine.util.inherit(this.matchersClass, jasmine.Matchers);
+
+  jasmine.Matchers.wrapInto_(jasmine.Matchers.prototype, this.matchersClass);
+};
+
+
+jasmine.Env.prototype.setTimeout = jasmine.setTimeout;
+jasmine.Env.prototype.clearTimeout = jasmine.clearTimeout;
+jasmine.Env.prototype.setInterval = jasmine.setInterval;
+jasmine.Env.prototype.clearInterval = jasmine.clearInterval;
+
+/**
+ * @returns an object containing jasmine version build info, if set.
+ */
+jasmine.Env.prototype.version = function () {
+  if (jasmine.version_) {
+    return jasmine.version_;
+  } else {
+    throw new Error('Version not set');
+  }
+};
+
+/**
+ * @returns string containing jasmine version build info, if set.
+ */
+jasmine.Env.prototype.versionString = function() {
+  if (jasmine.version_) {
+    var version = this.version();
+    return version.major + "." + version.minor + "." + version.build + " revision " + version.revision;
+  } else {
+    return "version unknown";
+  }
+};
+
+/**
+ * @returns a sequential integer starting at 0
+ */
+jasmine.Env.prototype.nextSpecId = function () {
+  return this.nextSpecId_++;
+};
+
+/**
+ * @returns a sequential integer starting at 0
+ */
+jasmine.Env.prototype.nextSuiteId = function () {
+  return this.nextSuiteId_++;
+};
+
+/**
+ * Register a reporter to receive status updates from Jasmine.
+ * @param {jasmine.Reporter} reporter An object which will receive status updates.
+ */
+jasmine.Env.prototype.addReporter = function(reporter) {
+  this.reporter.addReporter(reporter);
+};
+
+jasmine.Env.prototype.execute = function() {
+  this.currentRunner_.execute();
+};
+
+jasmine.Env.prototype.describe = function(description, specDefinitions) {
+  var suite = new jasmine.Suite(this, description, specDefinitions, this.currentSuite);
+
+  var parentSuite = this.currentSuite;
+  if (parentSuite) {
+    parentSuite.add(suite);
+  } else {
+    this.currentRunner_.add(suite);
+  }
+
+  this.currentSuite = suite;
+
+  var declarationError = null;
+  try {
+    specDefinitions.call(suite);
+  } catch(e) {
+    declarationError = e;
+  }
+
+  this.currentSuite = parentSuite;
+
+  if (declarationError) {
+    this.it("encountered a declaration exception", function() {
+      throw declarationError;
+    });
+  }
+
+  return suite;
+};
+
+jasmine.Env.prototype.beforeEach = function(beforeEachFunction) {
+  if (this.currentSuite) {
+    this.currentSuite.beforeEach(beforeEachFunction);
+  } else {
+    this.currentRunner_.beforeEach(beforeEachFunction);
+  }
+};
+
+jasmine.Env.prototype.currentRunner = function () {
+  return this.currentRunner_;
+};
+
+jasmine.Env.prototype.afterEach = function(afterEachFunction) {
+  if (this.currentSuite) {
+    this.currentSuite.afterEach(afterEachFunction);
+  } else {
+    this.currentRunner_.afterEach(afterEachFunction);
+  }
+
+};
+
+jasmine.Env.prototype.xdescribe = function(desc, specDefinitions) {
+  return {
+    execute: function() {
+    }
+  };
+};
+
+jasmine.Env.prototype.it = function(description, func) {
+  var spec = new jasmine.Spec(this, this.currentSuite, description);
+  this.currentSuite.add(spec);
+  this.currentSpec = spec;
+
+  if (func) {
+    spec.runs(func);
+  }
+
+  return spec;
+};
+
+jasmine.Env.prototype.xit = function(desc, func) {
+  return {
+    id: this.nextSpecId(),
+    runs: function() {
+    }
+  };
+};
+
+jasmine.Env.prototype.compareObjects_ = function(a, b, mismatchKeys, mismatchValues) {
+  if (a.__Jasmine_been_here_before__ === b && b.__Jasmine_been_here_before__ === a) {
+    return true;
+  }
+
+  a.__Jasmine_been_here_before__ = b;
+  b.__Jasmine_been_here_before__ = a;
+
+  var hasKey = function(obj, keyName) {
+    return obj != null && obj[keyName] !== jasmine.undefined;
+  };
+
+  for (var property in b) {
+    if (!hasKey(a, property) && hasKey(b, property)) {
+      mismatchKeys.push("expected has key '" + property + "', but missing from actual.");
+    }
+  }
+  for (property in a) {
+    if (!hasKey(b, property) && hasKey(a, property)) {
+      mismatchKeys.push("expected missing key '" + property + "', but present in actual.");
+    }
+  }
+  for (property in b) {
+    if (property == '__Jasmine_been_here_before__') continue;
+    if (!this.equals_(a[property], b[property], mismatchKeys, mismatchValues)) {
+      mismatchValues.push("'" + property + "' was '" + (b[property] ? jasmine.util.htmlEscape(b[property].toString()) : b[property]) + "' in expected, but was '" + (a[property] ? jasmine.util.htmlEscape(a[property].toString()) : a[property]) + "' in actual.");
+    }
+  }
+
+  if (jasmine.isArray_(a) && jasmine.isArray_(b) && a.length != b.length) {
+    mismatchValues.push("arrays were not the same length");
+  }
+
+  delete a.__Jasmine_been_here_before__;
+  delete b.__Jasmine_been_here_before__;
+  return (mismatchKeys.length == 0 && mismatchValues.length == 0);
+};
+
+jasmine.Env.prototype.equals_ = function(a, b, mismatchKeys, mismatchValues) {
+  mismatchKeys = mismatchKeys || [];
+  mismatchValues = mismatchValues || [];
+
+  for (var i = 0; i < this.equalityTesters_.length; i++) {
+    var equalityTester = this.equalityTesters_[i];
+    var result = equalityTester(a, b, this, mismatchKeys, mismatchValues);
+    if (result !== jasmine.undefined) return result;
+  }
+
+  if (a === b) return true;
+
+  if (a === jasmine.undefined || a === null || b === jasmine.undefined || b === null) {
+    return (a == jasmine.undefined && b == jasmine.undefined);
+  }
+
+  if (jasmine.isDomNode(a) && jasmine.isDomNode(b)) {
+    return a === b;
+  }
+
+  if (a instanceof Date && b instanceof Date) {
+    return a.getTime() == b.getTime();
+  }
+
+  if (a instanceof jasmine.Matchers.Any) {
+    return a.matches(b);
+  }
+
+  if (b instanceof jasmine.Matchers.Any) {
+    return b.matches(a);
+  }
+
+  if (jasmine.isString_(a) && jasmine.isString_(b)) {
+    return (a == b);
+  }
+
+  if (jasmine.isNumber_(a) && jasmine.isNumber_(b)) {
+    return (a == b);
+  }
+
+  if (typeof a === "object" && typeof b === "object") {
+    return this.compareObjects_(a, b, mismatchKeys, mismatchValues);
+  }
+
+  //Straight check
+  return (a === b);
+};
+
+jasmine.Env.prototype.contains_ = function(haystack, needle) {
+  if (jasmine.isArray_(haystack)) {
+    for (var i = 0; i < haystack.length; i++) {
+      if (this.equals_(haystack[i], needle)) return true;
+    }
+    return false;
+  }
+  return haystack.indexOf(needle) >= 0;
+};
+
+jasmine.Env.prototype.addEqualityTester = function(equalityTester) {
+  this.equalityTesters_.push(equalityTester);
+};
+/** No-op base class for Jasmine reporters.
+ *
+ * @constructor
+ */
+jasmine.Reporter = function() {
+};
+
+//noinspection JSUnusedLocalSymbols
+jasmine.Reporter.prototype.reportRunnerStarting = function(runner) {
+};
+
+//noinspection JSUnusedLocalSymbols
+jasmine.Reporter.prototype.reportRunnerResults = function(runner) {
+};
+
+//noinspection JSUnusedLocalSymbols
+jasmine.Reporter.prototype.reportSuiteResults = function(suite) {
+};
+
+//noinspection JSUnusedLocalSymbols
+jasmine.Reporter.prototype.reportSpecStarting = function(spec) {
+};
+
+//noinspection JSUnusedLocalSymbols
+jasmine.Reporter.prototype.reportSpecResults = function(spec) {
+};
+
+//noinspection JSUnusedLocalSymbols
+jasmine.Reporter.prototype.log = function(str) {
+};
+
+/**
+ * Blocks are functions with executable code that make up a spec.
+ *
+ * @constructor
+ * @param {jasmine.Env} env
+ * @param {Function} func
+ * @param {jasmine.Spec} spec
+ */
+jasmine.Block = function(env, func, spec) {
+  this.env = env;
+  this.func = func;
+  this.spec = spec;
+};
+
+jasmine.Block.prototype.execute = function(onComplete) {  
+  try {
+    this.func.apply(this.spec);
+  } catch (e) {
+    this.spec.fail(e);
+  }
+  onComplete();
+};
+/** JavaScript API reporter.
+ *
+ * @constructor
+ */
+jasmine.JsApiReporter = function() {
+  this.started = false;
+  this.finished = false;
+  this.suites_ = [];
+  this.results_ = {};
+};
+
+jasmine.JsApiReporter.prototype.reportRunnerStarting = function(runner) {
+  this.started = true;
+  var suites = runner.topLevelSuites();
+  for (var i = 0; i < suites.length; i++) {
+    var suite = suites[i];
+    this.suites_.push(this.summarize_(suite));
+  }
+};
+
+jasmine.JsApiReporter.prototype.suites = function() {
+  return this.suites_;
+};
+
+jasmine.JsApiReporter.prototype.summarize_ = function(suiteOrSpec) {
+  var isSuite = suiteOrSpec instanceof jasmine.Suite;
+  var summary = {
+    id: suiteOrSpec.id,
+    name: suiteOrSpec.description,
+    type: isSuite ? 'suite' : 'spec',
+    children: []
+  };
+  
+  if (isSuite) {
+    var children = suiteOrSpec.children();
+    for (var i = 0; i < children.length; i++) {
+      summary.children.push(this.summarize_(children[i]));
+    }
+  }
+  return summary;
+};
+
+jasmine.JsApiReporter.prototype.results = function() {
+  return this.results_;
+};
+
+jasmine.JsApiReporter.prototype.resultsForSpec = function(specId) {
+  return this.results_[specId];
+};
+
+//noinspection JSUnusedLocalSymbols
+jasmine.JsApiReporter.prototype.reportRunnerResults = function(runner) {
+  this.finished = true;
+};
+
+//noinspection JSUnusedLocalSymbols
+jasmine.JsApiReporter.prototype.reportSuiteResults = function(suite) {
+};
+
+//noinspection JSUnusedLocalSymbols
+jasmine.JsApiReporter.prototype.reportSpecResults = function(spec) {
+  this.results_[spec.id] = {
+    messages: spec.results().getItems(),
+    result: spec.results().failedCount > 0 ? "failed" : "passed"
+  };
+};
+
+//noinspection JSUnusedLocalSymbols
+jasmine.JsApiReporter.prototype.log = function(str) {
+};
+
+jasmine.JsApiReporter.prototype.resultsForSpecs = function(specIds){
+  var results = {};
+  for (var i = 0; i < specIds.length; i++) {
+    var specId = specIds[i];
+    results[specId] = this.summarizeResult_(this.results_[specId]);
+  }
+  return results;
+};
+
+jasmine.JsApiReporter.prototype.summarizeResult_ = function(result){
+  var summaryMessages = [];
+  var messagesLength = result.messages.length;
+  for (var messageIndex = 0; messageIndex < messagesLength; messageIndex++) {
+    var resultMessage = result.messages[messageIndex];
+    summaryMessages.push({
+      text: resultMessage.type == 'log' ? resultMessage.toString() : jasmine.undefined,
+      passed: resultMessage.passed ? resultMessage.passed() : true,
+      type: resultMessage.type,
+      message: resultMessage.message,
+      trace: {
+        stack: resultMessage.passed && !resultMessage.passed() ? resultMessage.trace.stack : jasmine.undefined
+      }
+    });
+  }
+
+  return {
+    result : result.result,
+    messages : summaryMessages
+  };
+};
+
+/**
+ * @constructor
+ * @param {jasmine.Env} env
+ * @param actual
+ * @param {jasmine.Spec} spec
+ */
+jasmine.Matchers = function(env, actual, spec, opt_isNot) {
+  this.env = env;
+  this.actual = actual;
+  this.spec = spec;
+  this.isNot = opt_isNot || false;
+  this.reportWasCalled_ = false;
+};
+
+// todo: @deprecated as of Jasmine 0.11, remove soon [xw]
+jasmine.Matchers.pp = function(str) {
+  throw new Error("jasmine.Matchers.pp() is no longer supported, please use jasmine.pp() instead!");
+};
+
+// todo: @deprecated Deprecated as of Jasmine 0.10. Rewrite your custom matchers to return true or false. [xw]
+jasmine.Matchers.prototype.report = function(result, failing_message, details) {
+  throw new Error("As of jasmine 0.11, custom matchers must be implemented differently -- please see jasmine docs");
+};
+
+jasmine.Matchers.wrapInto_ = function(prototype, matchersClass) {
+  for (var methodName in prototype) {
+    if (methodName == 'report') continue;
+    var orig = prototype[methodName];
+    matchersClass.prototype[methodName] = jasmine.Matchers.matcherFn_(methodName, orig);
+  }
+};
+
+jasmine.Matchers.matcherFn_ = function(matcherName, matcherFunction) {
+  return function() {
+    var matcherArgs = jasmine.util.argsToArray(arguments);
+    var result = matcherFunction.apply(this, arguments);
+
+    if (this.isNot) {
+      result = !result;
+    }
+
+    if (this.reportWasCalled_) return result;
+
+    var message;
+    if (!result) {
+      if (this.message) {
+        message = this.message.apply(this, arguments);
+        if (jasmine.isArray_(message)) {
+          message = message[this.isNot ? 1 : 0];
+        }
+      } else {
+        var englishyPredicate = matcherName.replace(/[A-Z]/g, function(s) { return ' ' + s.toLowerCase(); });
+        message = "Expected " + jasmine.pp(this.actual) + (this.isNot ? " not " : " ") + englishyPredicate;
+        if (matcherArgs.length > 0) {
+          for (var i = 0; i < matcherArgs.length; i++) {
+            if (i > 0) message += ",";
+            message += " " + jasmine.pp(matcherArgs[i]);
+          }
+        }
+        message += ".";
+      }
+    }
+    var expectationResult = new jasmine.ExpectationResult({
+      matcherName: matcherName,
+      passed: result,
+      expected: matcherArgs.length > 1 ? matcherArgs : matcherArgs[0],
+      actual: this.actual,
+      message: message
+    });
+    this.spec.addMatcherResult(expectationResult);
+    return jasmine.undefined;
+  };
+};
+
+
+
+
+/**
+ * toBe: compares the actual to the expected using ===
+ * @param expected
+ */
+jasmine.Matchers.prototype.toBe = function(expected) {
+  return this.actual === expected;
+};
+
+/**
+ * toNotBe: compares the actual to the expected using !==
+ * @param expected
+ * @deprecated as of 1.0. Use not.toBe() instead.
+ */
+jasmine.Matchers.prototype.toNotBe = function(expected) {
+  return this.actual !== expected;
+};
+
+/**
+ * toEqual: compares the actual to the expected using common sense equality. Handles Objects, Arrays, etc.
+ *
+ * @param expected
+ */
+jasmine.Matchers.prototype.toEqual = function(expected) {
+  return this.env.equals_(this.actual, expected);
+};
+
+/**
+ * toNotEqual: compares the actual to the expected using the ! of jasmine.Matchers.toEqual
+ * @param expected
+ * @deprecated as of 1.0. Use not.toNotEqual() instead.
+ */
+jasmine.Matchers.prototype.toNotEqual = function(expected) {
+  return !this.env.equals_(this.actual, expected);
+};
+
+/**
+ * Matcher that compares the actual to the expected using a regular expression.  Constructs a RegExp, so takes
+ * a pattern or a String.
+ *
+ * @param expected
+ */
+jasmine.Matchers.prototype.toMatch = function(expected) {
+  return new RegExp(expected).test(this.actual);
+};
+
+/**
+ * Matcher that compares the actual to the expected using the boolean inverse of jasmine.Matchers.toMatch
+ * @param expected
+ * @deprecated as of 1.0. Use not.toMatch() instead.
+ */
+jasmine.Matchers.prototype.toNotMatch = function(expected) {
+  return !(new RegExp(expected).test(this.actual));
+};
+
+/**
+ * Matcher that compares the actual to jasmine.undefined.
+ */
+jasmine.Matchers.prototype.toBeDefined = function() {
+  return (this.actual !== jasmine.undefined);
+};
+
+/**
+ * Matcher that compares the actual to jasmine.undefined.
+ */
+jasmine.Matchers.prototype.toBeUndefined = function() {
+  return (this.actual === jasmine.undefined);
+};
+
+/**
+ * Matcher that compares the actual to null.
+ */
+jasmine.Matchers.prototype.toBeNull = function() {
+  return (this.actual === null);
+};
+
+/**
+ * Matcher that boolean not-nots the actual.
+ */
+jasmine.Matchers.prototype.toBeTruthy = function() {
+  return !!this.actual;
+};
+
+
+/**
+ * Matcher that boolean nots the actual.
+ */
+jasmine.Matchers.prototype.toBeFalsy = function() {
+  return !this.actual;
+};
+
+
+/**
+ * Matcher that checks to see if the actual, a Jasmine spy, was called.
+ */
+jasmine.Matchers.prototype.toHaveBeenCalled = function() {
+  if (arguments.length > 0) {
+    throw new Error('toHaveBeenCalled does not take arguments, use toHaveBeenCalledWith');
+  }
+
+  if (!jasmine.isSpy(this.actual)) {
+    throw new Error('Expected a spy, but got ' + jasmine.pp(this.actual) + '.');
+  }
+
+  this.message = function() {
+    return [
+      "Expected spy " + this.actual.identity + " to have been called.",
+      "Expected spy " + this.actual.identity + " not to have been called."
+    ];
+  };
+
+  return this.actual.wasCalled;
+};
+
+/** @deprecated Use expect(xxx).toHaveBeenCalled() instead */
+jasmine.Matchers.prototype.wasCalled = jasmine.Matchers.prototype.toHaveBeenCalled;
+
+/**
+ * Matcher that checks to see if the actual, a Jasmine spy, was not called.
+ *
+ * @deprecated Use expect(xxx).not.toHaveBeenCalled() instead
+ */
+jasmine.Matchers.prototype.wasNotCalled = function() {
+  if (arguments.length > 0) {
+    throw new Error('wasNotCalled does not take arguments');
+  }
+
+  if (!jasmine.isSpy(this.actual)) {
+    throw new Error('Expected a spy, but got ' + jasmine.pp(this.actual) + '.');
+  }
+
+  this.message = function() {
+    return [
+      "Expected spy " + this.actual.identity + " to not have been called.",
+      "Expected spy " + this.actual.identity + " to have been called."
+    ];
+  };
+
+  return !this.actual.wasCalled;
+};
+
+/**
+ * Matcher that checks to see if the actual, a Jasmine spy, was called with a set of parameters.
+ *
+ * @example
+ *
+ */
+jasmine.Matchers.prototype.toHaveBeenCalledWith = function() {
+  var expectedArgs = jasmine.util.argsToArray(arguments);
+  if (!jasmine.isSpy(this.actual)) {
+    throw new Error('Expected a spy, but got ' + jasmine.pp(this.actual) + '.');
+  }
+  this.message = function() {
+    if (this.actual.callCount == 0) {
+      // todo: what should the failure message for .not.toHaveBeenCalledWith() be? is this right? test better. [xw]
+      return [
+        "Expected spy to have been called with " + jasmine.pp(expectedArgs) + " but it was never called.",
+        "Expected spy not to have been called with " + jasmine.pp(expectedArgs) + " but it was."
+      ];
+    } else {
+      return [
+        "Expected spy to have been called with " + jasmine.pp(expectedArgs) + " but was called with " + jasmine.pp(this.actual.argsForCall),
+        "Expected spy not to have been called with " + jasmine.pp(expectedArgs) + " but was called with " + jasmine.pp(this.actual.argsForCall)
+      ];
+    }
+  };
+
+  return this.env.contains_(this.actual.argsForCall, expectedArgs);
+};
+
+/** @deprecated Use expect(xxx).toHaveBeenCalledWith() instead */
+jasmine.Matchers.prototype.wasCalledWith = jasmine.Matchers.prototype.toHaveBeenCalledWith;
+
+/** @deprecated Use expect(xxx).not.toHaveBeenCalledWith() instead */
+jasmine.Matchers.prototype.wasNotCalledWith = function() {
+  var expectedArgs = jasmine.util.argsToArray(arguments);
+  if (!jasmine.isSpy(this.actual)) {
+    throw new Error('Expected a spy, but got ' + jasmine.pp(this.actual) + '.');
+  }
+
+  this.message = function() {
+    return [
+      "Expected spy not to have been called with " + jasmine.pp(expectedArgs) + " but it was",
+      "Expected spy to have been called with " + jasmine.pp(expectedArgs) + " but it was"
+    ]
+  };
+
+  return !this.env.contains_(this.actual.argsForCall, expectedArgs);
+};
+
+/**
+ * Matcher that checks that the expected item is an element in the actual Array.
+ *
+ * @param {Object} expected
+ */
+jasmine.Matchers.prototype.toContain = function(expected) {
+  return this.env.contains_(this.actual, expected);
+};
+
+/**
+ * Matcher that checks that the expected item is NOT an element in the actual Array.
+ *
+ * @param {Object} expected
+ * @deprecated as of 1.0. Use not.toNotContain() instead.
+ */
+jasmine.Matchers.prototype.toNotContain = function(expected) {
+  return !this.env.contains_(this.actual, expected);
+};
+
+jasmine.Matchers.prototype.toBeLessThan = function(expected) {
+  return this.actual < expected;
+};
+
+jasmine.Matchers.prototype.toBeGreaterThan = function(expected) {
+  return this.actual > expected;
+};
+
+/**
+ * Matcher that checks that the expected exception was thrown by the actual.
+ *
+ * @param {String} expected
+ */
+jasmine.Matchers.prototype.toThrow = function(expected) {
+  var result = false;
+  var exception;
+  if (typeof this.actual != 'function') {
+    throw new Error('Actual is not a function');
+  }
+  try {
+    this.actual();
+  } catch (e) {
+    exception = e;
+  }
+  if (exception) {
+    result = (expected === jasmine.undefined || this.env.equals_(exception.message || exception, expected.message || expected));
+  }
+
+  var not = this.isNot ? "not " : "";
+
+  this.message = function() {
+    if (exception && (expected === jasmine.undefined || !this.env.equals_(exception.message || exception, expected.message || expected))) {
+      return ["Expected function " + not + "to throw", expected ? expected.message || expected : " an exception", ", but it threw", exception.message || exception].join(' ');
+    } else {
+      return "Expected function to throw an exception.";
+    }
+  };
+
+  return result;
+};
+
+jasmine.Matchers.Any = function(expectedClass) {
+  this.expectedClass = expectedClass;
+};
+
+jasmine.Matchers.Any.prototype.matches = function(other) {
+  if (this.expectedClass == String) {
+    return typeof other == 'string' || other instanceof String;
+  }
+
+  if (this.expectedClass == Number) {
+    return typeof other == 'number' || other instanceof Number;
+  }
+
+  if (this.expectedClass == Function) {
+    return typeof other == 'function' || other instanceof Function;
+  }
+
+  if (this.expectedClass == Object) {
+    return typeof other == 'object';
+  }
+
+  return other instanceof this.expectedClass;
+};
+
+jasmine.Matchers.Any.prototype.toString = function() {
+  return '<jasmine.any(' + this.expectedClass + ')>';
+};
+
+/**
+ * @constructor
+ */
+jasmine.MultiReporter = function() {
+  this.subReporters_ = [];
+};
+jasmine.util.inherit(jasmine.MultiReporter, jasmine.Reporter);
+
+jasmine.MultiReporter.prototype.addReporter = function(reporter) {
+  this.subReporters_.push(reporter);
+};
+
+(function() {
+  var functionNames = [
+    "reportRunnerStarting",
+    "reportRunnerResults",
+    "reportSuiteResults",
+    "reportSpecStarting",
+    "reportSpecResults",
+    "log"
+  ];
+  for (var i = 0; i < functionNames.length; i++) {
+    var functionName = functionNames[i];
+    jasmine.MultiReporter.prototype[functionName] = (function(functionName) {
+      return function() {
+        for (var j = 0; j < this.subReporters_.length; j++) {
+          var subReporter = this.subReporters_[j];
+          if (subReporter[functionName]) {
+            subReporter[functionName].apply(subReporter, arguments);
+          }
+        }
+      };
+    })(functionName);
+  }
+})();
+/**
+ * Holds results for a set of Jasmine spec. Allows for the results array to hold another jasmine.NestedResults
+ *
+ * @constructor
+ */
+jasmine.NestedResults = function() {
+  /**
+   * The total count of results
+   */
+  this.totalCount = 0;
+  /**
+   * Number of passed results
+   */
+  this.passedCount = 0;
+  /**
+   * Number of failed results
+   */
+  this.failedCount = 0;
+  /**
+   * Was this suite/spec skipped?
+   */
+  this.skipped = false;
+  /**
+   * @ignore
+   */
+  this.items_ = [];
+};
+
+/**
+ * Roll up the result counts.
+ *
+ * @param result
+ */
+jasmine.NestedResults.prototype.rollupCounts = function(result) {
+  this.totalCount += result.totalCount;
+  this.passedCount += result.passedCount;
+  this.failedCount += result.failedCount;
+};
+
+/**
+ * Adds a log message.
+ * @param values Array of message parts which will be concatenated later.
+ */
+jasmine.NestedResults.prototype.log = function(values) {
+  this.items_.push(new jasmine.MessageResult(values));
+};
+
+/**
+ * Getter for the results: message & results.
+ */
+jasmine.NestedResults.prototype.getItems = function() {
+  return this.items_;
+};
+
+/**
+ * Adds a result, tracking counts (total, passed, & failed)
+ * @param {jasmine.ExpectationResult|jasmine.NestedResults} result
+ */
+jasmine.NestedResults.prototype.addResult = function(result) {
+  if (result.type != 'log') {
+    if (result.items_) {
+      this.rollupCounts(result);
+    } else {
+      this.totalCount++;
+      if (result.passed()) {
+        this.passedCount++;
+      } else {
+        this.failedCount++;
+      }
+    }
+  }
+  this.items_.push(result);
+};
+
+/**
+ * @returns {Boolean} True if <b>everything</b> below passed
+ */
+jasmine.NestedResults.prototype.passed = function() {
+  return this.passedCount === this.totalCount;
+};
+/**
+ * Base class for pretty printing for expectation results.
+ */
+jasmine.PrettyPrinter = function() {
+  this.ppNestLevel_ = 0;
+};
+
+/**
+ * Formats a value in a nice, human-readable string.
+ *
+ * @param value
+ */
+jasmine.PrettyPrinter.prototype.format = function(value) {
+  if (this.ppNestLevel_ > 40) {
+    throw new Error('jasmine.PrettyPrinter: format() nested too deeply!');
+  }
+
+  this.ppNestLevel_++;
+  try {
+    if (value === jasmine.undefined) {
+      this.emitScalar('undefined');
+    } else if (value === null) {
+      this.emitScalar('null');
+    } else if (value === jasmine.getGlobal()) {
+      this.emitScalar('<global>');
+    } else if (value instanceof jasmine.Matchers.Any) {
+      this.emitScalar(value.toString());
+    } else if (typeof value === 'string') {
+      this.emitString(value);
+    } else if (jasmine.isSpy(value)) {
+      this.emitScalar("spy on " + value.identity);
+    } else if (value instanceof RegExp) {
+      this.emitScalar(value.toString());
+    } else if (typeof value === 'function') {
+      this.emitScalar('Function');
+    } else if (typeof value.nodeType === 'number') {
+      this.emitScalar('HTMLNode');
+    } else if (value instanceof Date) {
+      this.emitScalar('Date(' + value + ')');
+    } else if (value.__Jasmine_been_here_before__) {
+      this.emitScalar('<circular reference: ' + (jasmine.isArray_(value) ? 'Array' : 'Object') + '>');
+    } else if (jasmine.isArray_(value) || typeof value == 'object') {
+      value.__Jasmine_been_here_before__ = true;
+      if (jasmine.isArray_(value)) {
+        this.emitArray(value);
+      } else {
+        this.emitObject(value);
+      }
+      delete value.__Jasmine_been_here_before__;
+    } else {
+      this.emitScalar(value.toString());
+    }
+  } finally {
+    this.ppNestLevel_--;
+  }
+};
+
+jasmine.PrettyPrinter.prototype.iterateObject = function(obj, fn) {
+  for (var property in obj) {
+    if (property == '__Jasmine_been_here_before__') continue;
+    fn(property, obj.__lookupGetter__ ? (obj.__lookupGetter__(property) != null) : false);
+  }
+};
+
+jasmine.PrettyPrinter.prototype.emitArray = jasmine.unimplementedMethod_;
+jasmine.PrettyPrinter.prototype.emitObject = jasmine.unimplementedMethod_;
+jasmine.PrettyPrinter.prototype.emitScalar = jasmine.unimplementedMethod_;
+jasmine.PrettyPrinter.prototype.emitString = jasmine.unimplementedMethod_;
+
+jasmine.StringPrettyPrinter = function() {
+  jasmine.PrettyPrinter.call(this);
+
+  this.string = '';
+};
+jasmine.util.inherit(jasmine.StringPrettyPrinter, jasmine.PrettyPrinter);
+
+jasmine.StringPrettyPrinter.prototype.emitScalar = function(value) {
+  this.append(value);
+};
+
+jasmine.StringPrettyPrinter.prototype.emitString = function(value) {
+  this.append("'" + value + "'");
+};
+
+jasmine.StringPrettyPrinter.prototype.emitArray = function(array) {
+  this.append('[ ');
+  for (var i = 0; i < array.length; i++) {
+    if (i > 0) {
+      this.append(', ');
+    }
+    this.format(array[i]);
+  }
+  this.append(' ]');
+};
+
+jasmine.StringPrettyPrinter.prototype.emitObject = function(obj) {
+  var self = this;
+  this.append('{ ');
+  var first = true;
+
+  this.iterateObject(obj, function(property, isGetter) {
+    if (first) {
+      first = false;
+    } else {
+      self.append(', ');
+    }
+
+    self.append(property);
+    self.append(' : ');
+    if (isGetter) {
+      self.append('<getter>');
+    } else {
+      self.format(obj[property]);
+    }
+  });
+
+  this.append(' }');
+};
+
+jasmine.StringPrettyPrinter.prototype.append = function(value) {
+  this.string += value;
+};
+jasmine.Queue = function(env) {
+  this.env = env;
+  this.blocks = [];
+  this.running = false;
+  this.index = 0;
+  this.offset = 0;
+  this.abort = false;
+};
+
+jasmine.Queue.prototype.addBefore = function(block) {
+  this.blocks.unshift(block);
+};
+
+jasmine.Queue.prototype.add = function(block) {
+  this.blocks.push(block);
+};
+
+jasmine.Queue.prototype.insertNext = function(block) {
+  this.blocks.splice((this.index + this.offset + 1), 0, block);
+  this.offset++;
+};
+
+jasmine.Queue.prototype.start = function(onComplete) {
+  this.running = true;
+  this.onComplete = onComplete;
+  this.next_();
+};
+
+jasmine.Queue.prototype.isRunning = function() {
+  return this.running;
+};
+
+jasmine.Queue.LOOP_DONT_RECURSE = true;
+
+jasmine.Queue.prototype.next_ = function() {
+  var self = this;
+  var goAgain = true;
+
+  while (goAgain) {
+    goAgain = false;
+    
+    if (self.index < self.blocks.length && !this.abort) {
+      var calledSynchronously = true;
+      var completedSynchronously = false;
+
+      var onComplete = function () {
+        if (jasmine.Queue.LOOP_DONT_RECURSE && calledSynchronously) {
+          completedSynchronously = true;
+          return;
+        }
+
+        if (self.blocks[self.index].abort) {
+          self.abort = true;
+        }
+
+        self.offset = 0;
+        self.index++;
+
+        var now = new Date().getTime();
+        if (self.env.updateInterval && now - self.env.lastUpdate > self.env.updateInterval) {
+          self.env.lastUpdate = now;
+          self.env.setTimeout(function() {
+            self.next_();
+          }, 0);
+        } else {
+          if (jasmine.Queue.LOOP_DONT_RECURSE && completedSynchronously) {
+            goAgain = true;
+          } else {
+            self.next_();
+          }
+        }
+      };
+      self.blocks[self.index].execute(onComplete);
+
+      calledSynchronously = false;
+      if (completedSynchronously) {
+        onComplete();
+      }
+      
+    } else {
+      self.running = false;
+      if (self.onComplete) {
+        self.onComplete();
+      }
+    }
+  }
+};
+
+jasmine.Queue.prototype.results = function() {
+  var results = new jasmine.NestedResults();
+  for (var i = 0; i < this.blocks.length; i++) {
+    if (this.blocks[i].results) {
+      results.addResult(this.blocks[i].results());
+    }
+  }
+  return results;
+};
+
+
+/**
+ * Runner
+ *
+ * @constructor
+ * @param {jasmine.Env} env
+ */
+jasmine.Runner = function(env) {
+  var self = this;
+  self.env = env;
+  self.queue = new jasmine.Queue(env);
+  self.before_ = [];
+  self.after_ = [];
+  self.suites_ = [];
+};
+
+jasmine.Runner.prototype.execute = function() {
+  var self = this;
+  if (self.env.reporter.reportRunnerStarting) {
+    self.env.reporter.reportRunnerStarting(this);
+  }
+  self.queue.start(function () {
+    self.finishCallback();
+  });
+};
+
+jasmine.Runner.prototype.beforeEach = function(beforeEachFunction) {
+  beforeEachFunction.typeName = 'beforeEach';
+  this.before_.splice(0,0,beforeEachFunction);
+};
+
+jasmine.Runner.prototype.afterEach = function(afterEachFunction) {
+  afterEachFunction.typeName = 'afterEach';
+  this.after_.splice(0,0,afterEachFunction);
+};
+
+
+jasmine.Runner.prototype.finishCallback = function() {
+  this.env.reporter.reportRunnerResults(this);
+};
+
+jasmine.Runner.prototype.addSuite = function(suite) {
+  this.suites_.push(suite);
+};
+
+jasmine.Runner.prototype.add = function(block) {
+  if (block instanceof jasmine.Suite) {
+    this.addSuite(block);
+  }
+  this.queue.add(block);
+};
+
+jasmine.Runner.prototype.specs = function () {
+  var suites = this.suites();
+  var specs = [];
+  for (var i = 0; i < suites.length; i++) {
+    specs = specs.concat(suites[i].specs());
+  }
+  return specs;
+};
+
+jasmine.Runner.prototype.suites = function() {
+  return this.suites_;
+};
+
+jasmine.Runner.prototype.topLevelSuites = function() {
+  var topLevelSuites = [];
+  for (var i = 0; i < this.suites_.length; i++) {
+    if (!this.suites_[i].parentSuite) {
+      topLevelSuites.push(this.suites_[i]);
+    }
+  }
+  return topLevelSuites;
+};
+
+jasmine.Runner.prototype.results = function() {
+  return this.queue.results();
+};
+/**
+ * Internal representation of a Jasmine specification, or test.
+ *
+ * @constructor
+ * @param {jasmine.Env} env
+ * @param {jasmine.Suite} suite
+ * @param {String} description
+ */
+jasmine.Spec = function(env, suite, description) {
+  if (!env) {
+    throw new Error('jasmine.Env() required');
+  }
+  if (!suite) {
+    throw new Error('jasmine.Suite() required');
+  }
+  var spec = this;
+  spec.id = env.nextSpecId ? env.nextSpecId() : null;
+  spec.env = env;
+  spec.suite = suite;
+  spec.description = description;
+  spec.queue = new jasmine.Queue(env);
+
+  spec.afterCallbacks = [];
+  spec.spies_ = [];
+
+  spec.results_ = new jasmine.NestedResults();
+  spec.results_.description = description;
+  spec.matchersClass = null;
+};
+
+jasmine.Spec.prototype.getFullName = function() {
+  return this.suite.getFullName() + ' ' + this.description + '.';
+};
+
+
+jasmine.Spec.prototype.results = function() {
+  return this.results_;
+};
+
+/**
+ * All parameters are pretty-printed and concatenated together, then written to the spec's output.
+ *
+ * Be careful not to leave calls to <code>jasmine.log</code> in production code.
+ */
+jasmine.Spec.prototype.log = function() {
+  return this.results_.log(arguments);
+};
+
+jasmine.Spec.prototype.runs = function (func) {
+  var block = new jasmine.Block(this.env, func, this);
+  this.addToQueue(block);
+  return this;
+};
+
+jasmine.Spec.prototype.addToQueue = function (block) {
+  if (this.queue.isRunning()) {
+    this.queue.insertNext(block);
+  } else {
+    this.queue.add(block);
+  }
+};
+
+/**
+ * @param {jasmine.ExpectationResult} result
+ */
+jasmine.Spec.prototype.addMatcherResult = function(result) {
+  this.results_.addResult(result);
+};
+
+jasmine.Spec.prototype.expect = function(actual) {
+  var positive = new (this.getMatchersClass_())(this.env, actual, this);
+  positive.not = new (this.getMatchersClass_())(this.env, actual, this, true);
+  return positive;
+};
+
+/**
+ * Waits a fixed time period before moving to the next block.
+ *
+ * @deprecated Use waitsFor() instead
+ * @param {Number} timeout milliseconds to wait
+ */
+jasmine.Spec.prototype.waits = function(timeout) {
+  var waitsFunc = new jasmine.WaitsBlock(this.env, timeout, this);
+  this.addToQueue(waitsFunc);
+  return this;
+};
+
+/**
+ * Waits for the latchFunction to return true before proceeding to the next block.
+ *
+ * @param {Function} latchFunction
+ * @param {String} optional_timeoutMessage
+ * @param {Number} optional_timeout
+ */
+jasmine.Spec.prototype.waitsFor = function(latchFunction, optional_timeoutMessage, optional_timeout) {
+  var latchFunction_ = null;
+  var optional_timeoutMessage_ = null;
+  var optional_timeout_ = null;
+
+  for (var i = 0; i < arguments.length; i++) {
+    var arg = arguments[i];
+    switch (typeof arg) {
+      case 'function':
+        latchFunction_ = arg;
+        break;
+      case 'string':
+        optional_timeoutMessage_ = arg;
+        break;
+      case 'number':
+        optional_timeout_ = arg;
+        break;
+    }
+  }
+
+  var waitsForFunc = new jasmine.WaitsForBlock(this.env, optional_timeout_, latchFunction_, optional_timeoutMessage_, this);
+  this.addToQueue(waitsForFunc);
+  return this;
+};
+
+jasmine.Spec.prototype.fail = function (e) {
+  var expectationResult = new jasmine.ExpectationResult({
+    passed: false,
+    message: e ? jasmine.util.formatException(e) : 'Exception'
+  });
+  this.results_.addResult(expectationResult);
+};
+
+jasmine.Spec.prototype.getMatchersClass_ = function() {
+  return this.matchersClass || this.env.matchersClass;
+};
+
+jasmine.Spec.prototype.addMatchers = function(matchersPrototype) {
+  var parent = this.getMatchersClass_();
+  var newMatchersClass = function() {
+    parent.apply(this, arguments);
+  };
+  jasmine.util.inherit(newMatchersClass, parent);
+  jasmine.Matchers.wrapInto_(matchersPrototype, newMatchersClass);
+  this.matchersClass = newMatchersClass;
+};
+
+jasmine.Spec.prototype.finishCallback = function() {
+  this.env.reporter.reportSpecResults(this);
+};
+
+jasmine.Spec.prototype.finish = function(onComplete) {
+  this.removeAllSpies();
+  this.finishCallback();
+  if (onComplete) {
+    onComplete();
+  }
+};
+
+jasmine.Spec.prototype.after = function(doAfter) {
+  if (this.queue.isRunning()) {
+    this.queue.add(new jasmine.Block(this.env, doAfter, this));
+  } else {
+    this.afterCallbacks.unshift(doAfter);
+  }
+};
+
+jasmine.Spec.prototype.execute = function(onComplete) {
+  var spec = this;
+  if (!spec.env.specFilter(spec)) {
+    spec.results_.skipped = true;
+    spec.finish(onComplete);
+    return;
+  }
+
+  this.env.reporter.reportSpecStarting(this);
+
+  spec.env.currentSpec = spec;
+
+  spec.addBeforesAndAftersToQueue();
+
+  spec.queue.start(function () {
+    spec.finish(onComplete);
+  });
+};
+
+jasmine.Spec.prototype.addBeforesAndAftersToQueue = function() {
+  var runner = this.env.currentRunner();
+  var i;
+
+  for (var suite = this.suite; suite; suite = suite.parentSuite) {
+    for (i = 0; i < suite.before_.length; i++) {
+      this.queue.addBefore(new jasmine.Block(this.env, suite.before_[i], this));
+    }
+  }
+  for (i = 0; i < runner.before_.length; i++) {
+    this.queue.addBefore(new jasmine.Block(this.env, runner.before_[i], this));
+  }
+  for (i = 0; i < this.afterCallbacks.length; i++) {
+    this.queue.add(new jasmine.Block(this.env, this.afterCallbacks[i], this));
+  }
+  for (suite = this.suite; suite; suite = suite.parentSuite) {
+    for (i = 0; i < suite.after_.length; i++) {
+      this.queue.add(new jasmine.Block(this.env, suite.after_[i], this));
+    }
+  }
+  for (i = 0; i < runner.after_.length; i++) {
+    this.queue.add(new jasmine.Block(this.env, runner.after_[i], this));
+  }
+};
+
+jasmine.Spec.prototype.explodes = function() {
+  throw 'explodes function should not have been called';
+};
+
+jasmine.Spec.prototype.spyOn = function(obj, methodName, ignoreMethodDoesntExist) {
+  if (obj == jasmine.undefined) {
+    throw "spyOn could not find an object to spy upon for " + methodName + "()";
+  }
+
+  if (!ignoreMethodDoesntExist && obj[methodName] === jasmine.undefined) {
+    throw methodName + '() method does not exist';
+  }
+
+  if (!ignoreMethodDoesntExist && obj[methodName] && obj[methodName].isSpy) {
+    throw new Error(methodName + ' has already been spied upon');
+  }
+
+  var spyObj = jasmine.createSpy(methodName);
+
+  this.spies_.push(spyObj);
+  spyObj.baseObj = obj;
+  spyObj.methodName = methodName;
+  spyObj.originalValue = obj[methodName];
+
+  obj[methodName] = spyObj;
+
+  return spyObj;
+};
+
+jasmine.Spec.prototype.removeAllSpies = function() {
+  for (var i = 0; i < this.spies_.length; i++) {
+    var spy = this.spies_[i];
+    spy.baseObj[spy.methodName] = spy.originalValue;
+  }
+  this.spies_ = [];
+};
+
+/**
+ * Internal representation of a Jasmine suite.
+ *
+ * @constructor
+ * @param {jasmine.Env} env
+ * @param {String} description
+ * @param {Function} specDefinitions
+ * @param {jasmine.Suite} parentSuite
+ */
+jasmine.Suite = function(env, description, specDefinitions, parentSuite) {
+  var self = this;
+  self.id = env.nextSuiteId ? env.nextSuiteId() : null;
+  self.description = description;
+  self.queue = new jasmine.Queue(env);
+  self.parentSuite = parentSuite;
+  self.env = env;
+  self.before_ = [];
+  self.after_ = [];
+  self.children_ = [];
+  self.suites_ = [];
+  self.specs_ = [];
+};
+
+jasmine.Suite.prototype.getFullName = function() {
+  var fullName = this.description;
+  for (var parentSuite = this.parentSuite; parentSuite; parentSuite = parentSuite.parentSuite) {
+    fullName = parentSuite.description + ' ' + fullName;
+  }
+  return fullName;
+};
+
+jasmine.Suite.prototype.finish = function(onComplete) {
+  this.env.reporter.reportSuiteResults(this);
+  this.finished = true;
+  if (typeof(onComplete) == 'function') {
+    onComplete();
+  }
+};
+
+jasmine.Suite.prototype.beforeEach = function(beforeEachFunction) {
+  beforeEachFunction.typeName = 'beforeEach';
+  this.before_.unshift(beforeEachFunction);
+};
+
+jasmine.Suite.prototype.afterEach = function(afterEachFunction) {
+  afterEachFunction.typeName = 'afterEach';
+  this.after_.unshift(afterEachFunction);
+};
+
+jasmine.Suite.prototype.results = function() {
+  return this.queue.results();
+};
+
+jasmine.Suite.prototype.add = function(suiteOrSpec) {
+  this.children_.push(suiteOrSpec);
+  if (suiteOrSpec instanceof jasmine.Suite) {
+    this.suites_.push(suiteOrSpec);
+    this.env.currentRunner().addSuite(suiteOrSpec);
+  } else {
+    this.specs_.push(suiteOrSpec);
+  }
+  this.queue.add(suiteOrSpec);
+};
+
+jasmine.Suite.prototype.specs = function() {
+  return this.specs_;
+};
+
+jasmine.Suite.prototype.suites = function() {
+  return this.suites_;
+};
+
+jasmine.Suite.prototype.children = function() {
+  return this.children_;
+};
+
+jasmine.Suite.prototype.execute = function(onComplete) {
+  var self = this;
+  this.queue.start(function () {
+    self.finish(onComplete);
+  });
+};
+jasmine.WaitsBlock = function(env, timeout, spec) {
+  this.timeout = timeout;
+  jasmine.Block.call(this, env, null, spec);
+};
+
+jasmine.util.inherit(jasmine.WaitsBlock, jasmine.Block);
+
+jasmine.WaitsBlock.prototype.execute = function (onComplete) {
+  this.env.reporter.log('>> Jasmine waiting for ' + this.timeout + ' ms...');
+  this.env.setTimeout(function () {
+    onComplete();
+  }, this.timeout);
+};
+/**
+ * A block which waits for some condition to become true, with timeout.
+ *
+ * @constructor
+ * @extends jasmine.Block
+ * @param {jasmine.Env} env The Jasmine environment.
+ * @param {Number} timeout The maximum time in milliseconds to wait for the condition to become true.
+ * @param {Function} latchFunction A function which returns true when the desired condition has been met.
+ * @param {String} message The message to display if the desired condition hasn't been met within the given time period.
+ * @param {jasmine.Spec} spec The Jasmine spec.
+ */
+jasmine.WaitsForBlock = function(env, timeout, latchFunction, message, spec) {
+  this.timeout = timeout || env.defaultTimeoutInterval;
+  this.latchFunction = latchFunction;
+  this.message = message;
+  this.totalTimeSpentWaitingForLatch = 0;
+  jasmine.Block.call(this, env, null, spec);
+};
+jasmine.util.inherit(jasmine.WaitsForBlock, jasmine.Block);
+
+jasmine.WaitsForBlock.TIMEOUT_INCREMENT = 10;
+
+jasmine.WaitsForBlock.prototype.execute = function(onComplete) {
+  this.env.reporter.log('>> Jasmine waiting for ' + (this.message || 'something to happen'));
+  var latchFunctionResult;
+  try {
+    latchFunctionResult = this.latchFunction.apply(this.spec);
+  } catch (e) {
+    this.spec.fail(e);
+    onComplete();
+    return;
+  }
+
+  if (latchFunctionResult) {
+    onComplete();
+  } else if (this.totalTimeSpentWaitingForLatch >= this.timeout) {
+    var message = 'timed out after ' + this.timeout + ' msec waiting for ' + (this.message || 'something to happen');
+    this.spec.fail({
+      name: 'timeout',
+      message: message
+    });
+
+    this.abort = true;
+    onComplete();
+  } else {
+    this.totalTimeSpentWaitingForLatch += jasmine.WaitsForBlock.TIMEOUT_INCREMENT;
+    var self = this;
+    this.env.setTimeout(function() {
+      self.execute(onComplete);
+    }, jasmine.WaitsForBlock.TIMEOUT_INCREMENT);
+  }
+};
+// Mock setTimeout, clearTimeout
+// Contributed by Pivotal Computer Systems, www.pivotalsf.com
+
+jasmine.FakeTimer = function() {
+  this.reset();
+
+  var self = this;
+  self.setTimeout = function(funcToCall, millis) {
+    self.timeoutsMade++;
+    self.scheduleFunction(self.timeoutsMade, funcToCall, millis, false);
+    return self.timeoutsMade;
+  };
+
+  self.setInterval = function(funcToCall, millis) {
+    self.timeoutsMade++;
+    self.scheduleFunction(self.timeoutsMade, funcToCall, millis, true);
+    return self.timeoutsMade;
+  };
+
+  self.clearTimeout = function(timeoutKey) {
+    self.scheduledFunctions[timeoutKey] = jasmine.undefined;
+  };
+
+  self.clearInterval = function(timeoutKey) {
+    self.scheduledFunctions[timeoutKey] = jasmine.undefined;
+  };
+
+};
+
+jasmine.FakeTimer.prototype.reset = function() {
+  this.timeoutsMade = 0;
+  this.scheduledFunctions = {};
+  this.nowMillis = 0;
+};
+
+jasmine.FakeTimer.prototype.tick = function(millis) {
+  var oldMillis = this.nowMillis;
+  var newMillis = oldMillis + millis;
+  this.runFunctionsWithinRange(oldMillis, newMillis);
+  this.nowMillis = newMillis;
+};
+
+jasmine.FakeTimer.prototype.runFunctionsWithinRange = function(oldMillis, nowMillis) {
+  var scheduledFunc;
+  var funcsToRun = [];
+  for (var timeoutKey in this.scheduledFunctions) {
+    scheduledFunc = this.scheduledFunctions[timeoutKey];
+    if (scheduledFunc != jasmine.undefined &&
+        scheduledFunc.runAtMillis >= oldMillis &&
+        scheduledFunc.runAtMillis <= nowMillis) {
+      funcsToRun.push(scheduledFunc);
+      this.scheduledFunctions[timeoutKey] = jasmine.undefined;
+    }
+  }
+
+  if (funcsToRun.length > 0) {
+    funcsToRun.sort(function(a, b) {
+      return a.runAtMillis - b.runAtMillis;
+    });
+    for (var i = 0; i < funcsToRun.length; ++i) {
+      try {
+        var funcToRun = funcsToRun[i];
+        this.nowMillis = funcToRun.runAtMillis;
+        funcToRun.funcToCall();
+        if (funcToRun.recurring) {
+          this.scheduleFunction(funcToRun.timeoutKey,
+              funcToRun.funcToCall,
+              funcToRun.millis,
+              true);
+        }
+      } catch(e) {
+      }
+    }
+    this.runFunctionsWithinRange(oldMillis, nowMillis);
+  }
+};
+
+jasmine.FakeTimer.prototype.scheduleFunction = function(timeoutKey, funcToCall, millis, recurring) {
+  this.scheduledFunctions[timeoutKey] = {
+    runAtMillis: this.nowMillis + millis,
+    funcToCall: funcToCall,
+    recurring: recurring,
+    timeoutKey: timeoutKey,
+    millis: millis
+  };
+};
+
+/**
+ * @namespace
+ */
+jasmine.Clock = {
+  defaultFakeTimer: new jasmine.FakeTimer(),
+
+  reset: function() {
+    jasmine.Clock.assertInstalled();
+    jasmine.Clock.defaultFakeTimer.reset();
+  },
+
+  tick: function(millis) {
+    jasmine.Clock.assertInstalled();
+    jasmine.Clock.defaultFakeTimer.tick(millis);
+  },
+
+  runFunctionsWithinRange: function(oldMillis, nowMillis) {
+    jasmine.Clock.defaultFakeTimer.runFunctionsWithinRange(oldMillis, nowMillis);
+  },
+
+  scheduleFunction: function(timeoutKey, funcToCall, millis, recurring) {
+    jasmine.Clock.defaultFakeTimer.scheduleFunction(timeoutKey, funcToCall, millis, recurring);
+  },
+
+  useMock: function() {
+    if (!jasmine.Clock.isInstalled()) {
+      var spec = jasmine.getEnv().currentSpec;
+      spec.after(jasmine.Clock.uninstallMock);
+
+      jasmine.Clock.installMock();
+    }
+  },
+
+  installMock: function() {
+    jasmine.Clock.installed = jasmine.Clock.defaultFakeTimer;
+  },
+
+  uninstallMock: function() {
+    jasmine.Clock.assertInstalled();
+    jasmine.Clock.installed = jasmine.Clock.real;
+  },
+
+  real: {
+    setTimeout: jasmine.getGlobal().setTimeout,
+    clearTimeout: jasmine.getGlobal().clearTimeout,
+    setInterval: jasmine.getGlobal().setInterval,
+    clearInterval: jasmine.getGlobal().clearInterval
+  },
+
+  assertInstalled: function() {
+    if (!jasmine.Clock.isInstalled()) {
+      throw new Error("Mock clock is not installed, use jasmine.Clock.useMock()");
+    }
+  },
+
+  isInstalled: function() {
+    return jasmine.Clock.installed == jasmine.Clock.defaultFakeTimer;
+  },
+
+  installed: null
+};
+jasmine.Clock.installed = jasmine.Clock.real;
+
+//else for IE support
+jasmine.getGlobal().setTimeout = function(funcToCall, millis) {
+  if (jasmine.Clock.installed.setTimeout.apply) {
+    return jasmine.Clock.installed.setTimeout.apply(this, arguments);
+  } else {
+    return jasmine.Clock.installed.setTimeout(funcToCall, millis);
+  }
+};
+
+jasmine.getGlobal().setInterval = function(funcToCall, millis) {
+  if (jasmine.Clock.installed.setInterval.apply) {
+    return jasmine.Clock.installed.setInterval.apply(this, arguments);
+  } else {
+    return jasmine.Clock.installed.setInterval(funcToCall, millis);
+  }
+};
+
+jasmine.getGlobal().clearTimeout = function(timeoutKey) {
+  if (jasmine.Clock.installed.clearTimeout.apply) {
+    return jasmine.Clock.installed.clearTimeout.apply(this, arguments);
+  } else {
+    return jasmine.Clock.installed.clearTimeout(timeoutKey);
+  }
+};
+
+jasmine.getGlobal().clearInterval = function(timeoutKey) {
+  if (jasmine.Clock.installed.clearTimeout.apply) {
+    return jasmine.Clock.installed.clearInterval.apply(this, arguments);
+  } else {
+    return jasmine.Clock.installed.clearInterval(timeoutKey);
+  }
+};
+
+
+jasmine.version_= {
+  "major": 1,
+  "minor": 0,
+  "build": 0,
+  "revision": 1284494074
+};
diff --git a/js/lib/JSBuilder/src/generators/app/files/lib/sencha-jasmine/matchers/Controller.js b/js/lib/JSBuilder/src/generators/app/files/lib/sencha-jasmine/matchers/Controller.js
new file mode 100644
index 0000000..f26044b
--- /dev/null
+++ b/js/lib/JSBuilder/src/generators/app/files/lib/sencha-jasmine/matchers/Controller.js
@@ -0,0 +1,10 @@
+/**
+ * Sencha-specific matchers for convenient testing of Controller expectations
+ */
+beforeEach(function() {
+    this.addMatchers({
+        toHaveRendered: function(expected) {
+            
+        }
+    });
+});
\ No newline at end of file
diff --git a/js/lib/JSBuilder/src/generators/app/files/lib/sencha-jasmine/matchers/Model.js b/js/lib/JSBuilder/src/generators/app/files/lib/sencha-jasmine/matchers/Model.js
new file mode 100644
index 0000000..0c91149
--- /dev/null
+++ b/js/lib/JSBuilder/src/generators/app/files/lib/sencha-jasmine/matchers/Model.js
@@ -0,0 +1,54 @@
+/**
+ * Sencha-specific matchers for convenient testing of Model expectations
+ */
+beforeEach(function() {
+    this.addMatchers({
+        /**
+         * Sample usage:
+         * expect('User').toHaveMany('Product');
+         */
+        toHaveMany: function(expected) {
+            if (typeof this.actual == 'string') {
+                this.actual = Ext.ModelManager.types[this.actual].prototype;
+            }
+            
+            var associations = this.actual.associations.items,
+                length       = associations.length,
+                association, i;
+            
+            for (i = 0; i < length; i++) {
+                association = associations[i];
+                
+                if (association.associatedName == expected && association.type == 'hasMany') {
+                    return true;
+                }
+            }
+            
+            return false;
+        },
+        
+        /**
+         * Sample usage:
+         * expect('Product').toBelongTo('User')
+         */
+        toBelongTo: function(expected) {
+            if (typeof this.actual == 'string') {
+                this.actual = Ext.ModelManager.types[this.actual].prototype;
+            }
+            
+            var associations = this.actual.associations.items,
+                length       = associations.length,
+                association, i;
+            
+            for (i = 0; i < length; i++) {
+                association = associations[i];
+                
+                if (association.associatedName == expected && association.type == 'belongsTo') {
+                    return true;
+                }
+            }
+            
+            return false;
+        }
+    });
+});
\ No newline at end of file
diff --git a/js/lib/JSBuilder/src/generators/app/files/lib/sencha-jasmine/sencha-jasmine.css b/js/lib/JSBuilder/src/generators/app/files/lib/sencha-jasmine/sencha-jasmine.css
new file mode 100644
index 0000000..784d48f
--- /dev/null
+++ b/js/lib/JSBuilder/src/generators/app/files/lib/sencha-jasmine/sencha-jasmine.css
@@ -0,0 +1,226 @@
+body {
+    font-family:"Helvetica Neue Light", "Lucida Grande", "Calibri", "Arial", sans-serif;
+    margin:0;
+}
+
+.jasmine_reporter > * {
+    margin:10px;
+}
+
+.run_spec {
+    float:right;
+    font-size:10px;
+}
+
+/*banner*/
+.banner {
+    position:relative;
+    background:#fff;
+    -webkit-box-shadow:0 0 10px #ccc;
+    padding:4px 0 6px 6px;
+    margin:0 0 10px 0;
+}
+.banner .logo {
+    width:120px;
+    height:50px;
+
+    background:url(http://www.sencha.com/assets/images/logo-sencha-sm.png) no-repeat;
+}
+.banner .options {
+    position:absolute;
+    top:3px;
+    right:3px;
+    color:#666;
+    font-size:10px;
+}
+.banner .options .show {
+    text-align:right;
+}
+.banner .options .show > * {
+    display:inline-block;
+}
+.banner .options .show label {
+    margin-right:3px;
+}
+
+/*runner*/
+.runner,
+.suite {
+    display:block;
+
+    text-shadow:0 1px 0 #fff;
+
+    border:1px solid #bbb;
+    border-radius:5px;
+    -moz-border-radius:5px;
+    -webkit-border-radius:5px;
+
+    background:-webkit-gradient(linear, left top, left bottom, from(#eee), to(#d1d1d1));
+
+    -webkit-box-shadow:0 0 10px #ccc;
+
+    padding:6px;
+}
+.runner a,
+.suite a {
+    display:inline-block;
+
+    color:#eee;
+    font-size:11px;
+    text-decoration:none;
+    text-shadow:0 -1px 0 #000;
+
+    border:1px solid #111;
+    border-radius:5px;
+    -moz-border-radius:5px;
+    -webkit-border-radius:5px;
+
+    background:-webkit-gradient(linear, left top, left bottom, from(#555), to(#212121));
+
+    -webkit-background-clip: padding-box;
+
+    padding:1px 4px 2px 4px;
+}
+.runner .finished-at {
+    font-size:10px;
+
+    padding-top:1px;
+    padding-left:6px;
+}
+
+.runner.running {
+    text-shadow:0 1px 0 #EDECCA;
+
+    border-color:#D1CF84;
+
+    background:-webkit-gradient(linear, left top, left bottom, from(#EDE613), to(#DBD61F));
+}
+.runner.running a {
+    display:none;
+}
+
+.runner.failed a,
+.suite.failed a {
+    border-color:#660000;
+
+    background:-webkit-gradient(linear, left top, left bottom, from(#dd0000), to(#880000));
+}
+
+.runner.passed a,
+.suite.passed a {
+    border-color:#006600;
+
+    background:-webkit-gradient(linear, left top, left bottom, from(#00aa00), to(#006600));
+}
+
+/*suite*/
+.suite a.run_spec {
+    display:none;
+}
+.suite > a.description {
+    color:#000;
+    font-size:18px;
+    text-shadow:0 1px 0 #fff;
+
+    border:0;
+    background:transparent;
+}
+.suite .suite > a.description {
+    font-size:14px;
+}
+.suite.failed {
+    border-color:#E0C1C5;
+
+    background:-webkit-gradient(linear, left top, left bottom, from(#FFF7F8), to(#F0DADD));
+}
+.suite.failed a.description {
+    color:#440000;
+}
+.suite .suite {
+    margin:5px;
+}
+
+/*spec*/
+.spec {
+    margin: 5px;
+    padding-left: 1em;
+    clear: both;
+
+    border:1px solid #ccc;
+    border-radius:5px;
+    -moz-border-radius:5px;
+    -webkit-border-radius:5px;
+
+    background:#fff;
+
+    -webkit-box-shadow:inset 0 0 10px #ddd;
+
+    -webkit-background-clip:padding-box;
+
+    padding:10px;
+}
+.spec a.description {
+    display:block;
+
+    border:0;
+
+    background:transparent;
+
+    padding:0;
+
+    color:#000 !important;
+    font-size:16px;
+    text-shadow:none;
+}
+.spec .messages {
+    border:1px dashed #ccc;
+    border-radius:5px;
+    -moz-border-radius:5px;
+    -webkit-border-radius:5px;
+
+    background:#f1f1f1;
+
+    margin:10px 0 0 0;
+    padding:5px;
+
+    font-size:11px;
+    line-height:15px;
+}
+
+.passed,
+.skipped {
+    display:none;
+}
+
+.runner.passed,
+.runner.skipped {
+    display:block;
+}
+
+.suite.passed {
+    border-color:#AEBFA6;
+
+    background:-webkit-gradient(linear, left top, left bottom, from(#ECF2E9), to(#C8DBBF));
+}
+
+.show-passed .passed,
+.show-skipped .skipped {
+    display:block;
+}
+
+.stackTrace {
+  white-space: pre;
+  font-size: .8em;
+  margin-left: 10px;
+  max-height: 5em;
+  overflow: auto;
+  border: 1px inset red;
+  padding: 1em;
+  background: #eef;
+}
+
+
+#jasmine_content {
+  position:fixed;
+  right: 100%;
+}
\ No newline at end of file
diff --git a/js/lib/JSBuilder/src/generators/app/files/lib/sencha-jasmine/sencha-jasmine.js b/js/lib/JSBuilder/src/generators/app/files/lib/sencha-jasmine/sencha-jasmine.js
new file mode 100644
index 0000000..c670d5c
--- /dev/null
+++ b/js/lib/JSBuilder/src/generators/app/files/lib/sencha-jasmine/sencha-jasmine.js
@@ -0,0 +1,88 @@
+jasmine.TrivialReporter.prototype.reportRunnerStarting = function(runner) {
+  var showPassed, showSkipped;
+
+  this.outerDiv = this.createDom('div', { className: 'jasmine_reporter' },
+      this.createDom('div', { className: 'banner' },
+        this.createDom('div', { className: 'logo' }),
+        this.createDom('div', { className: 'options' },
+            this.createDom('div', { className: 'show' },
+                this.createDom('label', { "for": "__jasmine_TrivialReporter_showPassed__" }, " passed "),
+                showPassed = this.createDom('input', { id: "__jasmine_TrivialReporter_showPassed__", type: 'checkbox' })
+            ),
+            this.createDom('div', { className: 'show' },
+                this.createDom('label', { "for": "__jasmine_TrivialReporter_showSkipped__" }, " skipped"),
+                showSkipped = this.createDom('input', { id: "__jasmine_TrivialReporter_showSkipped__", type: 'checkbox' })
+            ),
+            this.createDom('div', { className: 'show' },
+                this.createDom('label', { "for": "__jasmine_TrivialReporter_automaticReload__" }," automatic reload"),
+                automaticReload = this.createDom('input',
+                    (window.location.hash == "#reload") ? {id: "__jasmine_TrivialReporter_automaticReload__", type: 'checkbox', checked: true } : {id: "__jasmine_TrivialReporter_automaticReload__", type: 'checkbox'}
+                )
+            )
+            )
+          ),
+
+      this.runnerDiv = this.createDom('div', { className: 'runner running' },
+          this.createDom('a', { className: 'run_spec', href: '?' }, "run all"),
+          this.runnerMessageSpan = this.createDom('span', {}, "Running..."),
+          this.finishedAtSpan = this.createDom('span', { className: 'finished-at' }, ""))
+      );
+
+  this.document.body.appendChild(this.outerDiv);
+
+  var suites = runner.suites();
+  for (var i = 0; i < suites.length; i++) {
+    var suite = suites[i];
+    var suiteDiv = this.createDom('div', { className: 'suite' },
+        this.createDom('a', { className: 'run_spec', href: '?spec=' + encodeURIComponent(suite.getFullName()) }, "run"),
+        this.createDom('a', { className: 'description', href: '?spec=' + encodeURIComponent(suite.getFullName()) }, suite.description));
+    this.suiteDivs[suite.id] = suiteDiv;
+    var parentDiv = this.outerDiv;
+    if (suite.parentSuite) {
+      parentDiv = this.suiteDivs[suite.parentSuite.id];
+    }
+    parentDiv.appendChild(suiteDiv);
+  }
+
+  this.startedAt = new Date();
+
+  var self = this;
+  showPassed.onchange = function(evt) {
+    if (evt.target.checked) {
+      self.outerDiv.className += ' show-passed';
+    } else {
+      self.outerDiv.className = self.outerDiv.className.replace(/ show-passed/, '');
+    }
+  };
+
+  showSkipped.onchange = function(evt) {
+    if (evt.target.checked) {
+      self.outerDiv.className += ' show-skipped';
+    } else {
+      self.outerDiv.className = self.outerDiv.className.replace(/ show-skipped/, '');
+    }
+  };
+
+  automaticReload.onchange = function(evt) {
+      if (evt.target.checked) {
+        window.location.hash = "#reload";
+        window.location.reload();
+      } else {
+        window.location.hash = "";
+        window.location.reload();
+      }
+    };
+};
+
+if (window.location.hash == "#reload") {
+    var interval = setInterval(function() {
+        var isRunning = jasmine.getEnv().currentRunner_.queue.isRunning();
+        if (!isRunning) {
+            clearInterval(interval);
+        
+            setTimeout(function() {
+                window.location.reload();
+            }, 5000);
+        };
+    }, 1500);
+};
\ No newline at end of file
diff --git a/js/lib/JSBuilder/src/generators/app/files/public/resources/css/application.css b/js/lib/JSBuilder/src/generators/app/files/public/resources/css/application.css
new file mode 100644
index 0000000..c0b4f5f
--- /dev/null
+++ b/js/lib/JSBuilder/src/generators/app/files/public/resources/css/application.css
@@ -0,0 +1,3 @@
+.x-tablet .x-list, .x-desktop .x-list {
+  border-right: 1px solid #000;
+}
\ No newline at end of file
diff --git a/js/lib/JSBuilder/src/generators/app/files/sencha.sh b/js/lib/JSBuilder/src/generators/app/files/sencha.sh
new file mode 100755
index 0000000..e422430
--- /dev/null
+++ b/js/lib/JSBuilder/src/generators/app/files/sencha.sh
@@ -0,0 +1,11 @@
+#!/bin/sh
+UNAME="$(uname)"
+ARGUMENTS=$*
+DIRNAME="$(dirname $0)/lib/JSBuilder"
+if [ $UNAME = "Darwin" ] ; then
+    OS="mac"
+else
+    OS="linux"
+fi
+CMD="$DIRNAME/jsdb/$OS/jsdb -path $DIRNAME $DIRNAME/bin/Dispatch.js $ARGUMENTS"
+$CMD
diff --git a/js/lib/JSBuilder/src/generators/app/files/test/unit/.htaccess b/js/lib/JSBuilder/src/generators/app/files/test/unit/.htaccess
new file mode 100644
index 0000000..832ea9b
--- /dev/null
+++ b/js/lib/JSBuilder/src/generators/app/files/test/unit/.htaccess
@@ -0,0 +1,2 @@
+ExpiresActive On
+ExpiresDefault "access"
\ No newline at end of file
diff --git a/js/lib/JSBuilder/src/generators/app/files/test/unit/SpecOptions.js b/js/lib/JSBuilder/src/generators/app/files/test/unit/SpecOptions.js
new file mode 100644
index 0000000..acf0c05
--- /dev/null
+++ b/js/lib/JSBuilder/src/generators/app/files/test/unit/SpecOptions.js
@@ -0,0 +1,9 @@
+/**
+ * This file is included by your test/unit/index.html file and is used to apply settings before 
+ * the tests are run.
+ */
+
+Ext.ns('fixtures');
+
+//Stops the Application from being booted up automatically
+Ext.Application.prototype.bindReady = Ext.emptyFn;
diff --git a/js/lib/JSBuilder/src/generators/app/files/test/unit/index.html b/js/lib/JSBuilder/src/generators/app/files/test/unit/index.html
new file mode 100644
index 0000000..d3ad4cc
--- /dev/null
+++ b/js/lib/JSBuilder/src/generators/app/files/test/unit/index.html
@@ -0,0 +1,69 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+  "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+    <title>Sencha - Jasmine Test Runner</title>
+    <link rel="stylesheet" type="text/css" href="../../lib/sencha-jasmine/sencha-jasmine.css" />
+    
+    <script type="text/javascript" src="../../lib/touch/ext-touch-debug.js"></script>
+    
+    <script type="text/javascript" src="../../lib/jasmine/jasmine.js"></script>
+    <script type="text/javascript" src="../../lib/jasmine/jasmine-html.js"></script>
+    <script type="text/javascript" src="../../lib/sencha-jasmine/sencha-jasmine.js"></script>
+    <script type="text/javascript" src="../../lib/sencha-jasmine/matchers/Model.js"></script>
+    <script type="text/javascript" src="../../lib/sencha-jasmine/matchers/Controller.js"></script>
+    
+    <script type="text/javascript" src="SpecOptions.js"></script>
+</head>
+<body>
+    
+    <!-- include source files here... -->
+    <div id="sourceFiles">
+        <script type="text/javascript" src="../../app/app.js"></script>
+        
+        <div id="app-models">
+                  
+        </div>
+        
+        <div id="app-controllers">
+            
+        </div>
+        
+        <div id="app-views">
+            
+        </div>
+        
+        <div id="app-stores">
+            
+        </div>
+    </div>
+    
+    <!-- include fixture files here -->
+    <div id="fixtures">
+        
+    </div>
+    
+    <!-- include spec files here... -->
+    <div id="specFiles">
+        <script type="text/javascript" src="app.js"></script>
+        
+        <div id="spec-models">
+            
+        </div>
+        
+        <div id="spec-controllers">
+            
+        </div>
+        
+        <div id="spec-views">
+            
+        </div>
+    </div>
+    
+    <script type="text/javascript">
+      jasmine.getEnv().addReporter(new jasmine.TrivialReporter());
+      jasmine.getEnv().execute();
+    </script>
+    
+</body>
+</html>
\ No newline at end of file
diff --git a/js/lib/JSBuilder/src/generators/app/templates/Application.js b/js/lib/JSBuilder/src/generators/app/templates/Application.js
new file mode 100644
index 0000000..4353412
--- /dev/null
+++ b/js/lib/JSBuilder/src/generators/app/templates/Application.js
@@ -0,0 +1,12 @@
+/**
+ * This file sets application-wide settings and launches the application when everything has
+ * been loaded onto the page. By default we just render the application\s Viewport inside the
+ * launch method (see app/views/Viewport.js).
+ */ 
+{name} = new Ext.Application({
+    defaultTarget: "viewport",
+    name: "{name}",
+    launch: function() {
+        this.viewport = new {name}.Viewport();
+    }
+});
\ No newline at end of file
diff --git a/js/lib/JSBuilder/src/generators/app/templates/Viewport.js b/js/lib/JSBuilder/src/generators/app/templates/Viewport.js
new file mode 100644
index 0000000..af3b57d
--- /dev/null
+++ b/js/lib/JSBuilder/src/generators/app/templates/Viewport.js
@@ -0,0 +1,93 @@
+/**
+ * @class {name}.Viewport
+ * @extends Ext.Panel
+ * This is a default generated class which would usually be used to initialize your application's
+ * main viewport. By default this is simply a welcome screen that tells you that the app was 
+ * generated correctly.
+ */
+{name}.Viewport = Ext.extend(Ext.Panel, {
+    id        : 'viewport',
+    layout    : 'card',
+    fullscreen: true,
+
+    initComponent: function() {
+        var store = new Ext.data.Store({
+            fields: ['text', 'href'],
+            data  : [
+                {
+                    text: 'Touch API',
+                    href: 'http://dev.sencha.com/deploy/touch/docs/'
+                },
+                {
+                    text: 'Touch Examples',
+                    href: 'http://dev.sencha.com/deploy/touch/examples/'
+                }
+            ]
+        });
+
+        Ext.apply(this, {
+            dockedItems: [
+                {
+                    dock : 'left',
+                    xtype: 'list',
+                    store: store,
+                    width: 250,
+
+                    tpl         : '<{tpl} for="."><div class="link"><strong>\{text\}</strong></div></{tpl}>',
+                    itemSelector: 'div.link',
+
+                    listeners: {
+                        itemtap: this.onListItemTap
+                    },
+
+                    dockedItems: [
+                        {
+                            xtype: 'toolbar',
+                            dock : 'top',
+                            ui   : 'light'
+                        }
+                    ]
+                }
+            ],
+
+            items: [
+                {
+                    xtype : 'panel',
+                    layout: 'fit',
+
+                    dockedItems: [
+                        {
+                            dock : 'top',
+                            xtype: 'toolbar',
+                            title: 'Welcome to Sencha Touch'
+                        }
+                    ],
+
+                    items: [
+                        {
+                            xtype: 'panel',
+                            style: 'background:#fff',
+
+                            styleHtmlContent: true,
+
+                            html : [
+                                '<h3>Getting Started</h3>',
+                                '<p>You have successfully generated the {name} application. Currently this app is a blank slate, ',
+                                'with just the minimum set of files and directories. The file creating this interface can be found ',
+                                'in app/views/Viewport.js</p>'
+                            ]
+                        }
+                    ]
+                }
+            ]
+        });
+
+        {name}.Viewport.superclass.initComponent.apply(this, arguments);
+    },
+
+    onListItemTap: function(list, index, node, e) {
+        var record = list.getRecord(node);
+
+        window.open(record.get('href'));
+    }
+});
diff --git a/js/lib/JSBuilder/src/generators/controller/Controller.js b/js/lib/JSBuilder/src/generators/controller/Controller.js
new file mode 100644
index 0000000..3482fe3
--- /dev/null
+++ b/js/lib/JSBuilder/src/generators/controller/Controller.js
@@ -0,0 +1,30 @@
+/**
+ * @class Ext.generator.Controller
+ * @extends Ext.generator.Base
+ * Generates a Controller file based on a template
+ */
+Ext.generator.Controller = Ext.extend(Ext.generator.Base, {
+
+    generate: function() {
+        var controllerFile = 'app/controllers/' + this.name + '.js';
+        
+        this.headline("Generating the " + this.name + " controller");
+        
+        this.template('Controller', this, controllerFile);
+        this.template('ControllerSpec', this, 'test/unit/controllers/' + this.name + '.js');
+        
+        this.insertInclude(controllerFile, 'sencha-controllers');
+        this.insertInclude('../../' + controllerFile, 'app-controllers', 'test/unit/index.html');
+        this.insertInclude('controllers/' + this.name + '.js', 'spec-controllers', 'test/unit/index.html');
+    },
+    
+    decodeArgs: function(args) {
+        this.name = args[0];
+        this.actions = args.slice(1);
+    }
+});
+
+Ext.regGenerator('controller', Ext.generator.Controller);
+
+load('src/generators/controller/templates/ControllerSpec.js');
+load('src/generators/controller/templates/Controller.js');
\ No newline at end of file
diff --git a/js/lib/JSBuilder/src/generators/controller/templates/Controller.js b/js/lib/JSBuilder/src/generators/controller/templates/Controller.js
new file mode 100644
index 0000000..ca509de
--- /dev/null
+++ b/js/lib/JSBuilder/src/generators/controller/templates/Controller.js
@@ -0,0 +1,9 @@
+Ext.generator.Controller.templates.Controller = new Ext.XTemplate(
+    'Ext.regController("{name}", {\n',
+    '<tpl for="actions">',
+    '    {.}: function() {\n',
+    '        \n',
+    '    }{[xindex != xcount ? ",\n\n" : ""]}',
+    '</tpl>',    
+    '\n});\n'
+);
\ No newline at end of file
diff --git a/js/lib/JSBuilder/src/generators/controller/templates/ControllerSpec.js b/js/lib/JSBuilder/src/generators/controller/templates/ControllerSpec.js
new file mode 100644
index 0000000..1b7e754
--- /dev/null
+++ b/js/lib/JSBuilder/src/generators/controller/templates/ControllerSpec.js
@@ -0,0 +1,12 @@
+Ext.generator.Controller.templates.ControllerSpec = new Ext.XTemplate(
+    'describe("The {name} controller", function() {\n',
+    '    var controller = Ext.ControllerManager.get("{name}");\n\n',
+    '<tpl for="actions">',
+    '    describe("the {.} action", function() {\n',
+    '        beforeEach(function() {\n',
+    '            \n',
+    '        });\n\n\n',
+    '    });\n\n',
+    '</tpl>',
+    '});\n'
+);
\ No newline at end of file
diff --git a/js/lib/JSBuilder/src/generators/model/Model.js b/js/lib/JSBuilder/src/generators/model/Model.js
new file mode 100644
index 0000000..0fbc515
--- /dev/null
+++ b/js/lib/JSBuilder/src/generators/model/Model.js
@@ -0,0 +1,47 @@
+/**
+ * @class Ext.generator.Model
+ * @extends Ext.generator.Base
+ * Generates a model file based on config
+ */
+Ext.generator.Model = Ext.extend(Ext.generator.Base, {
+
+    generate: function() {
+        var modelFile   = 'app/models/' + this.name + '.js',
+            specFile    = 'test/unit/models/' + this.name + '.js',
+            fixtureFile = 'test/fixtures/' + this.name + '.js';
+        
+        this.headline("Generating the " + this.name + " model");
+        this.template("Model", this, modelFile);
+        this.template("ModelSpec", this, specFile);
+        this.template("Fixture", this, fixtureFile);
+        
+        this.insertInclude(modelFile, 'sencha-models');
+        
+        this.insertInclude('../../' + modelFile, 'app-models', 'test/unit/index.html');
+        this.insertInclude('models/' + this.name + '.js',  'spec-models', 'test/unit/index.html');
+        this.insertInclude('../fixtures/' + this.name + '.js',  'fixtures', 'test/unit/index.html');
+    },
+    
+    decodeArgs: function(args) {
+        this.name = args[0];
+        this.fields = args.slice(1);
+        
+        var length = this.fields.length,
+            field, i;
+        
+        for (i = 0; i < length; i++) {
+            field = this.fields[i].split(':');
+            
+            this.fields[i] = {
+                name: field[0],
+                type: field[1]
+            };
+        }
+    }
+});
+
+Ext.regGenerator('model', Ext.generator.Model);
+
+load('src/generators/model/templates/ModelSpec.js');
+load('src/generators/model/templates/Model.js');
+load('src/generators/model/templates/Fixture.js');
\ No newline at end of file
diff --git a/js/lib/JSBuilder/src/generators/model/templates/Fixture.js b/js/lib/JSBuilder/src/generators/model/templates/Fixture.js
new file mode 100644
index 0000000..b1f92e3
--- /dev/null
+++ b/js/lib/JSBuilder/src/generators/model/templates/Fixture.js
@@ -0,0 +1,9 @@
+Ext.generator.Model.templates.Fixture = new Ext.XTemplate(
+    '(function() \{\n',
+    '    var {name} = Ext.ModelManager.getModel("{name}");\n',
+    '    \n',
+    '    fixtures.{name} = \{\n',
+    '        \n',
+    '    \};\n',
+    '\})();\n'
+);
\ No newline at end of file
diff --git a/js/lib/JSBuilder/src/generators/model/templates/Model.js b/js/lib/JSBuilder/src/generators/model/templates/Model.js
new file mode 100644
index 0000000..9df678d
--- /dev/null
+++ b/js/lib/JSBuilder/src/generators/model/templates/Model.js
@@ -0,0 +1,9 @@
+Ext.generator.Model.templates.Model = new Ext.XTemplate(
+    'Ext.regModel("{name}", {\n',
+    '    fields: [\n',
+    '<tpl for="fields">',
+    '        \{name: "{name}", type: "{type}"\}{[xindex != xcount ? "," : ""]}\n',
+    '</tpl>',
+    '    ]\n',
+    '});'
+);
\ No newline at end of file
diff --git a/js/lib/JSBuilder/src/generators/model/templates/ModelSpec.js b/js/lib/JSBuilder/src/generators/model/templates/ModelSpec.js
new file mode 100644
index 0000000..bacc8d8
--- /dev/null
+++ b/js/lib/JSBuilder/src/generators/model/templates/ModelSpec.js
@@ -0,0 +1,9 @@
+Ext.generator.Model.templates.ModelSpec = new Ext.XTemplate(
+    'describe("A {name}", function() {\n',
+    '    var {name} = Ext.ModelManager.getModel("{name}"),\n',
+    '        instance;\n\n',
+    '    beforeEach(function() {\n',
+    '        instance = new {name}({});\n',
+    '    });\n\n',
+    '});'
+);
\ No newline at end of file
diff --git a/js/lib/JSBuilder/tests/builder.js b/js/lib/JSBuilder/tests/builder.js
new file mode 100644
index 0000000..3089378
--- /dev/null
+++ b/js/lib/JSBuilder/tests/builder.js
@@ -0,0 +1,6 @@
+/* 
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+
+
diff --git a/js/lib/JSBuilder/tests/parser.js b/js/lib/JSBuilder/tests/parser.js
new file mode 100644
index 0000000..305068c
--- /dev/null
+++ b/js/lib/JSBuilder/tests/parser.js
@@ -0,0 +1,51 @@
+Loader.require('Parser');
+Loader.require('Filesystem');
+
+Parser.setParams({
+    browser: 'ie',
+    browserVersion: 6,
+    version: 3.1,
+    minVersion: 2.0,
+    debug: true
+});
+
+assertTrue("Browser is IE", Parser.evaluate('browser', 'ie'));
+assertTrue("Browser is not firefox", Parser.evaluate('browser', '!firefox'));
+assertTrue("Browser version is greater than 5", Parser.evaluate('browserVersion', '>5'));
+assertTrue("Browser version is less than 7", Parser.evaluate('browserVersion', '<7'));
+assertTrue("Browser version is greater or equal to 6", Parser.evaluate('browserVersion', '>=6'));
+assertFalse("Nonexistent", Parser.evaluate('nonexistent'));
+
+assertTrue("//<if browser=ie> is a valid statement", Parser.isStatement('//<if browser=ie>'));
+assertTrue("    //<if browser=ie> (tab in front) is a valid statement", Parser.isStatement('    //<if browser=ie>'));
+assertTrue("//<if browser=ie> (spaces at the end) is a valid statement", Parser.isStatement('//<if browser=ie>      '));
+
+assertFalse("//</if> is not a valid opening statement", Parser.isStatement('//</if>'));
+assertTrue("//</if> is valid close of if", Parser.isCloseOf('//</if>', { type: 'if', isInverted: false }));
+assertTrue("//</!if> is valid close of inverted if", Parser.isCloseOf('//</!if>', { type: 'if', isInverted: true }));
+
+assertEqual("Parser.parseStatementProperties('browser=ie debug')",
+    Parser.parseStatementProperties('browser=ie debug'), { browser: 'ie', debug: true });
+
+assertEqual("Parser.parseStatementProperties('browser=\"ie\" browserVersion='!7' debug=false')",
+    Parser.parseStatementProperties('browser="ie" browserVersion=\'!7\' debug=false'), { browser: 'ie', browserVersion: '!7', debug: "false" });
+
+assertEqual("Parser.parseStatement('//<deprecated since=\"3.0\">')",
+    Parser.parseStatement('//<deprecated since="3.0">'), { properties: { since: '3.0' }, type: 'deprecated', isInverted: false });
+
+assertEqual("Parser.parse before1.js and after1.js",
+    Parser.parse(PATH + 'tests/parser/before1.js'), Filesystem.readFile(PATH + 'tests/parser/after1.js'));
+
+assertEqual("Parser.parse before2.js and after2.js",
+    Parser.parse(PATH + 'tests/parser/before2.js'), Filesystem.readFile(PATH + 'tests/parser/after2.js'));
+
+Parser.setParams({
+    debug: true,
+    debugLevel: 2
+});
+
+assertEqual("Parser.parse before3.js and after3.js",
+    Parser.parse(PATH + 'tests/parser/before3.js'), Filesystem.readFile(PATH + 'tests/parser/after3.js'));
+
+assertEqual("Parser.parse before4.js and after4.js",
+    Parser.parse(PATH + 'tests/parser/before4.js'), Filesystem.readFile(PATH + 'tests/parser/after4.js'));
diff --git a/js/lib/JSBuilder/tests/parser/after1.js b/js/lib/JSBuilder/tests/parser/after1.js
new file mode 100644
index 0000000..f30c8c9
--- /dev/null
+++ b/js/lib/JSBuilder/tests/parser/after1.js
@@ -0,0 +1,9 @@
+// Normal comment here
+var lorem = {
+    ipsum: true,
+    // Nested if here
+    else_here: 'ok',
+    other: 'thing'
+};
+//<unknownTag>
+var testing = 123;
\ No newline at end of file
diff --git a/js/lib/JSBuilder/tests/parser/after2.js b/js/lib/JSBuilder/tests/parser/after2.js
new file mode 100644
index 0000000..b06e7af
--- /dev/null
+++ b/js/lib/JSBuilder/tests/parser/after2.js
@@ -0,0 +1,2 @@
+alert('Debug here');
+
diff --git a/js/lib/JSBuilder/tests/parser/after3.js b/js/lib/JSBuilder/tests/parser/after3.js
new file mode 100644
index 0000000..87430bb
--- /dev/null
+++ b/js/lib/JSBuilder/tests/parser/after3.js
@@ -0,0 +1,9 @@
+    if (someCondition) {
+        throw new Error("Some error");
+    }
+
+    if (someCondition) {
+        console.warn("Some warning");
+    }
+
+
diff --git a/js/lib/JSBuilder/tests/parser/after4.js b/js/lib/JSBuilder/tests/parser/after4.js
new file mode 100644
index 0000000..5029c1f
--- /dev/null
+++ b/js/lib/JSBuilder/tests/parser/after4.js
@@ -0,0 +1 @@
+var test = 1+1;
diff --git a/js/lib/JSBuilder/tests/parser/before1.js b/js/lib/JSBuilder/tests/parser/before1.js
new file mode 100644
index 0000000..b56fdef
--- /dev/null
+++ b/js/lib/JSBuilder/tests/parser/before1.js
@@ -0,0 +1,17 @@
+// Normal comment here
+//<if debug>
+var lorem = {
+    ipsum: true,
+    // Nested if here
+    //<if browser=ie browserVersion=7>
+    if_here: 'blah',
+    //<elseif browser="!ie">
+    elseif_here: 'tada',
+    //<else>
+    else_here: 'ok',
+    //</if>
+    other: 'thing'
+};
+//</if>
+//<unknownTag>
+var testing = 123;
\ No newline at end of file
diff --git a/js/lib/JSBuilder/tests/parser/before2.js b/js/lib/JSBuilder/tests/parser/before2.js
new file mode 100644
index 0000000..2e80e73
--- /dev/null
+++ b/js/lib/JSBuilder/tests/parser/before2.js
@@ -0,0 +1,9 @@
+//<debug>
+alert('Debug here');
+//<else>
+alert('Not debug here');
+//</debug>
+
+//<deprecated since="1.0">
+alert("Deprecated since 1.0")
+//</deprecated>
\ No newline at end of file
diff --git a/js/lib/JSBuilder/tests/parser/before3.js b/js/lib/JSBuilder/tests/parser/before3.js
new file mode 100644
index 0000000..3b3512c
--- /dev/null
+++ b/js/lib/JSBuilder/tests/parser/before3.js
@@ -0,0 +1,23 @@
+//<debug error>
+    if (someCondition) {
+        throw new Error("Some error");
+    }
+//</debug>
+
+//<debug warn>
+    if (someCondition) {
+        console.warn("Some warning");
+    }
+//</debug>
+
+//<debug info>
+    if (someCondition) {
+        console.log("Some info");
+    }
+//</debug>
+
+//<debug>
+    if (someCondition) {
+        console.log("Some other info");
+    }
+//</debug>
diff --git a/js/lib/JSBuilder/tests/parser/before4.js b/js/lib/JSBuilder/tests/parser/before4.js
new file mode 100644
index 0000000..aa133f8
--- /dev/null
+++ b/js/lib/JSBuilder/tests/parser/before4.js
@@ -0,0 +1,5 @@
+//<debug error>
+//<uncomment>
+//var test = 1+1;
+//</uncomment>
+//</debug>
diff --git a/js/lib/JSBuilder/tests/run.js b/js/lib/JSBuilder/tests/run.js
new file mode 100644
index 0000000..b8e1a0f
--- /dev/null
+++ b/js/lib/JSBuilder/tests/run.js
@@ -0,0 +1,50 @@
+var PATH = system.script.replace(/tests(\/|\\)run.js/, '');
+load(PATH + 'src/Loader.js');
+
+Loader.setBasePath(PATH + 'src');
+
+Loader.require([
+    'Ext',
+    'Cli',
+    'Logger'
+]);
+
+var assertTrue = function(message, a) {
+    assertEqual(message, a, true);
+};
+var assertFalse = function(message, a) {
+    assertEqual(message, a, false);
+};
+var assertEqual = function(message, a, b) {
+    if ((Ext.isArray(a) || Ext.isObject(a)) && (Ext.isArray(b) || Ext.isObject(b))) {
+        a = JSON.stringify(a);
+        b = JSON.stringify(b);
+    }
+    Logger.log("[" + ((a === b) ? "PASSED" : "FAILED") + "] " + message);
+};
+var assertNotEqual = function(message, a, b) {
+    assertEqual(message, a, !b);
+};
+
+var Tester = Ext.extend(Cli, {
+    name: "Super simple Unit Tester",
+    version: "1.0",
+
+    map: {
+        n: {
+            name: 'name',
+            required: true,
+            desc: 'Name of the test you want to run, e.g Parser'
+        }
+    },
+
+    run: function() {
+        if (Tester.superclass.run.call(this) === false)
+            return;
+
+        load(PATH + 'tests/'+this.get('name')+'.js');
+    }
+});
+
+var tester = new Tester();
+tester.run();
diff --git a/js/lib/JSBuilder/ycompressor/ycompressor.jar b/js/lib/JSBuilder/ycompressor/ycompressor.jar
new file mode 100644
index 0000000..c29470b
Binary files /dev/null and b/js/lib/JSBuilder/ycompressor/ycompressor.jar differ
diff --git a/js/lib/SAMP/jsamp/samp.js b/js/lib/SAMP/jsamp/samp.js
new file mode 100644
index 0000000..42572a1
--- /dev/null
+++ b/js/lib/SAMP/jsamp/samp.js
@@ -0,0 +1,1308 @@
+// samp
+// ----
+// Provides capabilities for using the SAMP Web Profile from JavaScript.
+// Exported tokens are in the samp.* namespace.
+// Inline documentation is somewhat patchy (partly because I don't know
+// what javascript documentation is supposed to look like) - it is
+// suggested to use it conjunction with the provided examples,
+// currently visible at http://astrojs.github.com/sampjs/
+// (gh-pages branch of github sources).
+
+var samp = (function() {
+
+    // Constants defining well-known location of SAMP Web Profile hub etc.
+    var WEBSAMP_PORT = 21012;
+    var WEBSAMP_PATH = "/";
+    var WEBSAMP_PREFIX = "samp.webhub.";
+    var WEBSAMP_CLIENT_PREFIX = "";
+
+    // Tokens representing permissible types in a SAMP object (e.g. a message)
+    TYPE_STRING = "string";
+    TYPE_LIST = "list";
+    TYPE_MAP = "map";
+
+    var heir = function(proto) {
+        function F() {};
+        F.prototype = proto;
+        return new F();
+    };
+
+    // Utility functions for navigating DOM etc.
+    // -----------------------------------------
+
+    var getSampType = function(obj) {
+        if (typeof obj === "string") {
+            return TYPE_STRING;
+        }
+        else if (obj instanceof Array) {
+            return TYPE_LIST;
+        }
+        else if (obj instanceof Object && obj !== null) {
+            return TYPE_MAP;
+        }
+        else {
+            throw new Error("Not legal SAMP object type: " + obj);
+        }
+    };
+    var getChildElements = function(el, childTagName) {
+        var children = el.childNodes;
+        var child;
+        var childEls = [];
+        var i;
+        for (i = 0; i < children.length; i++) {
+            child = children[i];
+            if (child.nodeType === 1) {  // Element
+                if (childTagName && (child.tagName !== childTagName)) {
+                    throw new Error("Child <" + children[i].tagName + ">"
+                                  + " of <" + el.tagName + ">"
+                                  + " is not a <" + childTagName + ">");
+                }
+                childEls.push(child);
+            }
+        }
+        return childEls;
+    };
+    var getSoleChild = function(el, childTagName) {
+        var children = getChildElements(el, childTagName);
+        if (children.length === 1 ) {
+            return children[0];
+        }
+        else {
+            throw new Error("No sole child of <" + el.tagName + ">");
+        }
+    };
+    var getTextContent = function(el) {
+        var txt = "";
+        var i;
+        var child;
+        for (i = 0; i < el.childNodes.length; i++ ) {
+            child = el.childNodes[i];
+            if (child.nodeType === 1) {           // Element 
+                throw new Error("Element found in text content");
+            }
+            else if (child.nodeType === 3 ||      // Text
+                     child.nodeType === 4 ) {     // CDATASection
+                txt += child.nodeValue;
+            }
+        }
+        return txt;
+    };
+    var stringify = function(obj) {
+        return typeof JSON === "undefined" ? "..." : JSON.stringify(obj);
+    };
+
+    // XmlRpc class:
+    // Utilities for packing and unpacking XML-RPC messages.
+    // See xml-rpc.com.
+
+    var XmlRpc = {};
+
+    // Takes text and turns it into something suitable for use as the content
+    // of an XML-RPC string - special characters are escaped.
+    XmlRpc.escapeXml = function(s) {
+        return s.replace(/&/g, "&amp;")
+                .replace(/</g, "&lt;")
+                .replace(/>/g, "&gt;");
+    };
+
+    // Asserts that the elements of paramList match the types given by typeList.
+    // TypeList must be an array containing only TYPE_STRING, TYPE_LIST
+    // and TYPE_MAP objects in some combination.  paramList must be the
+    // same length.
+    // In case of mismatch an error is thrown.
+    XmlRpc.checkParams = function(paramList, typeList) {
+        var i;
+        for (i = 0; i < typeList.length; i++) {
+            if (typeList[i] !== TYPE_STRING &&
+                typeList[i] !== TYPE_LIST &&
+                typeList[i] !== TYPE_MAP) {
+                throw new Error("Unknown type " + typeList[i]
+                              + " in check list");
+            }
+        }
+        var npar = paramList.length;
+        var actualTypeList = [];
+        var ok = true;
+        for (i = 0; i < npar; i++) {
+            actualTypeList.push(getSampType(paramList[i]));
+        }
+        ok = ok && (typeList.length === npar);
+        for (i = 0; ok && i < npar; i++ ) {
+            ok = ok && typeList[i] === actualTypeList[i];
+        }
+        if (!ok) {
+            throw new Error("Param type list mismatch: " 
+                          + "[" + typeList + "] != "
+                          + "[" + actualTypeList + "]");
+        }
+    };
+
+    // Turns a SAMP object (structure of strings, lists, maps) into an
+    // XML string suitable for use with XML-RPC.
+    XmlRpc.valueToXml = function v2x(obj, prefix) {
+        prefix = prefix || "";
+        var a;
+        var i;
+        var result;
+        var type = getSampType(obj);
+        if (type === TYPE_STRING) {
+            return prefix
+                 + "<value><string>"
+                 + XmlRpc.escapeXml(obj)
+                 + "</string></value>";
+        }
+        else if (type === TYPE_LIST) {
+            result = [];
+            result.push(prefix + "<value>",
+                        prefix + "  <array>",
+                        prefix + "    <data>");
+            for (i = 0; i < obj.length; i++) {
+                result.push(v2x(obj[i], prefix + "      "));
+            }
+            result.push(prefix + "    </data>",
+                        prefix + "  </array>",
+                        prefix + "</value>");
+          
+            return result.join("\n");
+        }
+        else if (type === TYPE_MAP) {
+            result = [];
+            result.push(prefix + "<value>");
+            result.push(prefix + "  <struct>");
+            for (i in obj) {
+                result.push(prefix + "    <member>");
+                result.push(prefix + "      <name>"
+                          + XmlRpc.escapeXml(i)
+                          + "</name>");
+                result.push(v2x(obj[i], prefix + "      "));
+                result.push(prefix + "    </member>");
+            }
+            result.push(prefix + "  </struct>");
+            result.push(prefix + "</value>");
+            return result.join("\n");
+        }
+        else {
+            throw new Error("bad type");  // shouldn't get here
+        }
+    };
+
+    // Turns an XML string from and XML-RPC message into a SAMP object
+    // (structure of strings, lists, maps).
+    XmlRpc.xmlToValue = function x2v(valueEl, allowInt) {
+        var childEls = getChildElements(valueEl);
+        var i;
+        var j;
+        var txt;
+        var node;
+        var childEl;
+        var elName;
+        if (childEls.length === 0) {
+            return getTextContent(valueEl);
+        }
+        else if (childEls.length === 1) {
+            childEl = childEls[0];
+            elName = childEl.tagName;
+            if (elName === "string") {
+                return getTextContent(childEl);
+            }
+            else if (elName === "array") {
+                var valueEls =
+                    getChildElements(getSoleChild(childEl, "data"), "value");
+                var list = [];
+                for (i = 0; i < valueEls.length; i++) {
+                    list.push(x2v(valueEls[i], allowInt));
+                }
+                return list;
+            }
+            else if (elName === "struct") {
+                var memberEls = getChildElements(childEl, "member");
+                var map = {};
+                var s_name;
+                var s_value;
+                var jc;
+                for (i = 0; i < memberEls.length; i++) {
+                    s_name = undefined;
+                    s_value = undefined;
+                    for (j = 0; j < memberEls[i].childNodes.length; j++) {
+                        jc = memberEls[i].childNodes[j];
+                        if (jc.nodeType == 1) {
+                            if (jc.tagName === "name") {
+                                s_name = getTextContent(jc);
+                            }
+                            else if (jc.tagName === "value") {
+                                s_value = x2v(jc, allowInt);
+                            }
+                        }
+                    }
+                    if (s_name !== undefined && s_value !== undefined) {
+                        map[s_name] = s_value;
+                    }
+                    else {
+                        throw new Error("No <name> and/or <value> "
+                                      + "in <member>?");
+                    }
+                }
+                return map;
+            }
+            else if (allowInt && (elName === "int" || elName === "i4")) {
+                return getTextContent(childEl);
+            }
+            else {
+                throw new Error("Non SAMP-friendly value content: "
+                              + "<" + elName + ">");
+            }
+        }
+        else {
+            throw new Error("Bad XML-RPC <value> content - multiple elements");
+        }
+    };
+
+    // Turns the content of an XML-RPC <params> element into an array of
+    // SAMP objects.
+    XmlRpc.decodeParams = function(paramsEl) {
+        var paramEls = getChildElements(paramsEl, "param");
+        var i;
+        var results = [];
+        for (i = 0; i < paramEls.length; i++) {
+            results.push(XmlRpc.xmlToValue(getSoleChild(paramEls[i], "value")));
+        }
+        return results;
+    };
+
+    // Turns the content of an XML-RPC <fault> element into an XmlRpc.Fault
+    // object.
+    XmlRpc.decodeFault = function(faultEl) {
+        var faultObj = XmlRpc.xmlToValue(getSoleChild(faultEl, "value"), true);
+        return new XmlRpc.Fault(faultObj.faultString, faultObj.faultCode);
+    };
+
+    // Turns an XML-RPC response element (should be <methodResponse>) into
+    // either a SAMP response object or an XmlRpc.Fault object.
+    // Note that a fault response does not throw an error, so check for
+    // the type of the result if you want to know whether a fault occurred.
+    // An error will however be thrown if the supplied XML does not
+    // correspond to a legal XML-RPC response.
+    XmlRpc.decodeResponse = function(xml) {
+        var mrEl = xml.documentElement;
+        if (mrEl.tagName !== "methodResponse") {
+            throw new Error("Response element is not <methodResponse>");
+        }
+        var contentEl = getSoleChild(mrEl);
+        if (contentEl.tagName === "fault") {
+            return XmlRpc.decodeFault(contentEl);
+        }
+        else if (contentEl.tagName === "params") {
+            return XmlRpc.decodeParams(contentEl)[0];
+        }
+        else {
+            throw new Error("Bad XML-RPC response - unknown element"
+                          + " <" + contentEl.tagName + ">");
+        }
+    };
+
+    // XmlRpc.Fault class:
+    // Represents an XML-RPC Fault response.
+    XmlRpc.Fault = function(faultString, faultCode) {
+        this.faultString = faultString;
+        this.faultCode = faultCode;
+    };
+    XmlRpc.Fault.prototype.toString = function() {
+        return "XML-RPC Fault (" + this.faultCode + "): " + this.faultString;
+    };
+
+    // XmlRpcRequest class:
+    // Represents an call which can be sent to an XML-RPC server.
+    var XmlRpcRequest = function(methodName, params) {
+        this.methodName = methodName;
+        this.params = params || [];
+    }
+    XmlRpcRequest.prototype.toString = function() {
+        return this.methodName + "(" + stringify(this.params) + ")";
+    };
+    XmlRpcRequest.prototype.addParam = function(param) {
+        this.params.push(param);
+        return this;
+    };
+    XmlRpcRequest.prototype.addParams = function(params) {
+        var i;
+        for (i = 0; i < params.length; i++) {
+            this.params.push(params[i]);
+        }
+        return this;
+    };
+    XmlRpcRequest.prototype.checkParams = function(typeList) {
+        XmlRpc.checkParams(this.params, typeList);
+    };
+    XmlRpcRequest.prototype.toXml = function() {
+        var lines = [];
+        lines.push(
+           "<?xml version='1.0'?>",
+           "<methodCall>",
+           "  <methodName>" + this.methodName + "</methodName>",
+           "  <params>");
+        for (var i = 0; i < this.params.length; i++) {
+            lines.push("    <param>",
+                       XmlRpc.valueToXml(this.params[i], "      "),
+                       "    </param>");
+        }
+        lines.push(
+           "  </params>",
+           "</methodCall>");
+        return lines.join("\n");
+    };
+
+    // XmlRpcClient class:
+    // Object capable of sending XML-RPC calls to an XML-RPC server.
+    // That server will typically reside on the host on which the
+    // javascript is running; it is not likely to reside on the host
+    // which served the javascript.  That means that sandboxing restrictions
+    // will be in effect.  Much of the work done here is therefore to
+    // do the client-side work required to potentially escape the sandbox.
+    // The endpoint parameter, if supplied, is the URL of the XML-RPC server.
+    // If absent, the default SAMP Web Profile server is used.
+    var XmlRpcClient = function(endpoint) {
+        this.endpoint = endpoint ||
+                        "http://localhost:" + WEBSAMP_PORT + WEBSAMP_PATH;
+    };
+
+    // Creates an XHR facade - an object that presents an interface
+    // resembling that of an XMLHttpRequest Level 2.
+    // This facade may be based on an actual XMLHttpRequest Level 2 object
+    // (on browsers that support it), or it may fake one using other
+    // available technology.
+    //
+    // The created facade in any case presents the following interface:
+    //
+    //    open(method, url)
+    //    send(body)
+    //    abort()
+    //    setContentType()
+    //    responseText
+    //    responseXML
+    //    onload
+    //    onerror(err)  - includes timeout; abort is ignored
+    //
+    // See the documentation at http://www.w3.org/TR/XMLHttpRequest/
+    // for semantics.
+    //
+    // XMLHttpRequest Level 2 supports Cross-Origin Resource Sharing (CORS)
+    // which makes sandbox evasion possible.  Faked XHRL2s returned by
+    // this method may use CORS or some other technology to evade the
+    // sandbox.  The SAMP hub itself may selectively allow some of these
+    // technologies and not others, according to configuration.
+    XmlRpcClient.createXHR = function() {
+
+        // Creates an XHR facade based on a genuine XMLHttpRequest Level 2.
+        var XhrL2 = function(xhr) {
+            this.xhr = xhr;
+            xhr.onreadystatechange = (function(l2) {
+                return function() {
+                    if (xhr.readyState !== 4) {
+                        return;
+                    }
+                    else if (!l2.completed) {
+                        if (+xhr.status === 200) {
+                            l2.completed = true;
+                            l2.responseText = xhr.responseText;
+                            l2.responseXML = xhr.responseXML;
+                            if (l2.onload) {
+                                l2.onload();
+                            }
+                        }
+                    }
+                };
+            })(this);
+            xhr.onerror = (function(l2) {
+                return function(event) {
+                    if (!l2.completed) {
+                        l2.completed = true;
+                        if (l2.onerror) {
+                            if (event) {
+                                event.toString = function() {return "No hub?";};
+                            }
+                            else {
+                                event = "No hub?";
+                            }
+                            l2.onerror(event);
+                        }
+                    }
+                };
+            })(this);
+            xhr.ontimeout = (function(l2) {
+                return function(event) {
+                    if (!l2.completed) {
+                        l2.completed = true;
+                        if (l2.onerror) {
+                            l2.onerror("timeout");
+                        }
+                    }
+                };
+            })(this);
+        };
+        XhrL2.prototype.open = function(method, url) {
+            this.xhr.open(method, url);
+        };
+        XhrL2.prototype.send = function(body) {
+            this.xhr.send(body);
+        };
+        XhrL2.prototype.abort = function() {
+            this.xhr.abort();
+        }
+        XhrL2.prototype.setContentType = function(mimeType) {
+            if ("setRequestHeader" in this.xhr) {
+                this.xhr.setRequestHeader("Content-Type", mimeType);
+            }
+        }
+
+        // Creates an XHR facade based on an XDomainRequest (IE8+ only).
+        var XdrL2 = function(xdr) {
+            this.xdr = xdr;
+            xdr.onload = (function(l2) {
+                return function() {
+                    var e;
+                    l2.responseText = xdr.responseText;
+                    if (xdr.contentType === "text/xml" ||
+                        xdr.contentType === "application/xml" ||
+                        /\/x-/.test(xdr.contentType)) {
+                        try {
+                            var xdoc = new ActiveXObject("Microsoft.XMLDOM");
+                            xdoc.loadXML(xdr.responseText);
+                            l2.responseXML = xdoc;
+                        }
+                        catch (e) {
+                            l2.responseXML = e;
+                        }
+                    }
+                    if (l2.onload) {
+                        l2.onload();
+                    }
+                };
+            })(this);
+            xdr.onerror = (function(l2) {
+                return function(event) {
+                    if (l2.onerror) {
+                        l2.onerror(event);
+                    }
+                };
+            })(this);
+            xdr.ontimeout = (function(l2) {
+                return function(event) {
+                    if (l2.onerror) {
+                        l2.onerror(event);
+                    }
+                };
+            })(this);
+        };
+        XdrL2.prototype.open = function(method, url) {
+            this.xdr.open(method, url);
+        };
+        XdrL2.prototype.send = function(body) {
+            this.xdr.send(body);
+        };
+        XdrL2.prototype.abort = function() {
+            this.xdr.abort();
+        };
+        XdrL2.prototype.setContentType = function(mimeType) {
+            // can't do it.
+        };
+
+        // Creates an XHR Facade based on available XMLHttpRequest-type
+        // capabilibities.
+        // If an actual XMLHttpRequest Level 2 is available, use that.
+        if (typeof XMLHttpRequest !== "undefined") {
+            var xhr = new XMLHttpRequest();
+            if ("withCredentials" in xhr) {
+                return new XhrL2(xhr);
+            }
+        }
+
+        // Else if an XDomainRequest is available, use that.
+        if (typeof XDomainRequest !== "undefined") {
+            return new XdrL2(new XDomainRequest());
+        }
+
+        // Else fake an XMLHttpRequest using Flash/flXHR, if available
+        // and use that.
+        if (typeof flensed.flXHR !== "undefined") {
+            return new XhrL2(new flensed.flXHR({instancePooling: true}));
+        }
+
+        // No luck.
+        throw new Error("no cross-origin mechanism available");
+    };
+
+    // Executes a request by passing it to the XML-RPC server.
+    // On success, the result is passed to the resultHandler.
+    // On failure, the errHandler is called with one of two possible
+    // arguments: an XmlRpc.Fault object, or an Error object.
+    XmlRpcClient.prototype.execute = function(req, resultHandler, errHandler) {
+        (function(xClient) {
+            var xhr;
+            var e;
+            try {
+                xhr = XmlRpcClient.createXHR();
+                xhr.open("POST", xClient.endpoint);
+                xhr.setContentType("text/xml");
+            }
+            catch (e) {
+                errHandler(e);
+                throw e;
+            }
+            xhr.onload = function() {
+                var xml = xhr.responseXML;
+                var result;
+                var e;
+                if (xml) {
+                    try {
+                        result = XmlRpc.decodeResponse(xml);
+                    }
+                    catch (e) {
+                        if (errHandler) {
+                            errHandler(e);
+                        }
+                        return;
+                    }
+                }
+                else {
+                    if (errHandler) {
+                        errHandler("no XML response");
+                    }
+                    return;
+                }
+                if (result instanceof XmlRpc.Fault) {
+                    if (errHandler) {
+                        errHandler(result);
+                    }
+                }
+                else {
+                    if (resultHandler) {
+                        resultHandler(result);
+                    }
+                }
+            };
+            xhr.onerror = function(event) {
+                if (event) {
+                    event.toString = function() {return "No hub?";}
+                }
+                else {
+                    event = "No hub";
+                }
+                if (errHandler) {
+                    errHandler(event);
+                }
+            };
+            xhr.send(req.toXml());
+            return xhr;
+        })(this);
+    };
+
+    // Message class:
+    // Aggregates an MType string and a params map.
+    var Message = function(mtype, params) {
+        this["samp.mtype"] = mtype;
+        this["samp.params"] = params;
+    };
+
+    // Connection class:
+    // this is what clients use to communicate with the hub.
+    //
+    // All the methods from the Hub Abstract API as described in the
+    // SAMP standard are available as methods of a Connection object.
+    // The initial private-key argument required by the Web Profile is
+    // handled internally by this object - you do not need to supply it
+    // when calling one of the methods.
+    //
+    // All these calls have the same form:
+    //
+    //    connection.method([method-args], resultHandler, errorHandler)
+    //
+    // the first argument is an array of the arguments (as per the SAMP
+    // abstract hub API), the second argument is a function which is
+    // called on successful completion with the result of the SAMP call
+    // as its argument, and the third argument is a function which is
+    // called on unsuccessful completion with an error object as its
+    // argument.  The resultHandler and errorHandler arguments are optional.
+    //
+    // So for instance if you have a Connection object conn,
+    // you can send a notify message to all other clients by doing, e.g.:
+    //
+    //    conn.notifyAll([new samp.Message(mtype, params)])
+    //
+    // Connection has other methods as well as the hub API ones
+    // as documented below.
+    var Connection = function(regInfo) {
+        this.regInfo = regInfo;
+        this.privateKey = regInfo["samp.private-key"];
+        if (! typeof(this.privateKey) === "string") {
+            throw new Error("Bad registration object");
+        }
+        this.xClient = new XmlRpcClient();
+    };
+    (function() {
+        var connMethods = {
+            call: [TYPE_STRING, TYPE_STRING, TYPE_MAP],
+            callAll: [TYPE_STRING, TYPE_MAP],
+            callAndWait: [TYPE_STRING, TYPE_MAP, TYPE_STRING],
+            declareMetadata: [TYPE_MAP],
+            declareSubscriptions: [TYPE_MAP],
+            getMetadata: [TYPE_STRING],
+            getRegisteredClients: [],
+            getSubscribedClients: [TYPE_STRING],
+            getSubscriptions: [TYPE_STRING],
+            notify: [TYPE_STRING, TYPE_MAP],
+            notifyAll: [TYPE_MAP],
+            ping: [],
+            reply: [TYPE_STRING, TYPE_MAP]
+        };
+        var fn;
+        var types;
+        for (fn in connMethods) {
+            (function(fname, types) {
+                // errHandler may be passed an XmlRpc.Fault or a thrown Error.
+                Connection.prototype[fname] =
+                        function(sampArgs, resultHandler, errHandler) {
+                    var closer =
+                        (function(c) {return function() {c.close()}})(this);
+                    errHandler = errHandler || closer
+                    XmlRpc.checkParams(sampArgs, types);
+                    var request = new XmlRpcRequest(WEBSAMP_PREFIX + fname);
+                    request.addParam(this.privateKey);
+                    request.addParams(sampArgs);
+                    return this.xClient.
+                           execute(request, resultHandler, errHandler);
+                };
+            })(fn, connMethods[fn]);
+        }
+    })();
+    Connection.prototype.unregister = function() {
+        var e;
+        if (this.callbackRequest) {
+            try {
+                this.callbackRequest.abort();
+            }
+            catch (e) {
+            }
+        }
+        var request = new XmlRpcRequest(WEBSAMP_PREFIX + "unregister");
+        request.addParam(this.privateKey);
+        try {
+            this.xClient.execute(request);
+        }
+        catch (e) {
+            // log unregister failed
+        }
+        delete this.regInfo;
+        delete this.privateKey;
+    };
+
+    // Closes this connection.  It unregisters from the hub if still
+    // registered, but may harmlessly be called multiple times.
+    Connection.prototype.close = function() {
+        var e;
+        if (this.closed) {
+            return;
+        }
+        this.closed = true;
+        try {
+            if (this.regInfo) {
+                this.unregister();
+            }
+        }
+        catch (e) {
+        }
+        if (this.onclose) {
+            oc = this.onclose;
+            delete this.onclose;
+            try {
+                oc();
+            }
+            catch (e) {
+            }
+        }
+    };
+
+    // Arranges for this connection to receive callbacks.
+    //
+    // The callableClient argument must be an object implementing the
+    // SAMP callable client API, i.e. it must have the following methods:
+    //
+    //     receiveNotification(string sender-id, map message)
+    //     receiveCall(string sender-id, string msg-id, map message)
+    //     receiveResponse(string responder-id, string msg-tag, map response)
+    // 
+    // The successHandler argument will be called with no arguments if the
+    // allowCallbacks hub method completes successfully - it is a suitable
+    // hook to use for declaring subscriptions.
+    //
+    // The CallableClient class provides a suitable implementation, see below.
+    Connection.prototype.setCallable = function(callableClient,
+                                                successHandler) {
+        var e;
+        if (this.callbackRequest) {
+            try {
+                this.callbackRequest.abort();
+            }
+            catch (e) {
+            }
+            finally {
+                delete this.callbackRequest;
+            }
+        }
+        if (!callableClient && !this.regInfo) {
+            return;
+        }
+        var request =
+            new XmlRpcRequest(WEBSAMP_PREFIX + "allowReverseCallbacks");
+        request.addParam(this.privateKey);
+        request.addParam(callableClient ? "1" : "0");
+        var closer = (function(c) {return function() {c.close()}})(this);
+        if (callableClient) {
+            (function(connection) {
+                var invokeCallback = function(callback) {
+                    var methodName = callback["samp.methodName"];
+                    var methodParams = callback["samp.params"];
+                    var handlerFunc = undefined;
+                    if (methodName === WEBSAMP_CLIENT_PREFIX
+                                     + "receiveNotification") {
+                        handlerFunc = callableClient.receiveNotification;
+                    }
+                    else if (methodName === WEBSAMP_CLIENT_PREFIX
+                                          + "receiveCall") {
+                        handlerFunc = callableClient.receiveCall;
+                    }
+                    else if (methodName === WEBSAMP_CLIENT_PREFIX
+                                          + "receiveResponse") {
+                        handlerFunc = callableClient.receiveResponse;
+                    }
+                    else {
+                        // unknown callback??
+                    }
+                    if (handlerFunc) {
+                        handlerFunc.apply(callableClient, methodParams);
+                    }
+                };
+                var startTime;
+                var resultHandler = function(result) {
+                    if (getSampType(result) != TYPE_LIST) {
+                        errHandler(new Error("pullCallbacks result not List"));
+                        return;
+                    }
+                    var i;
+                    var e;
+                    for (i = 0; i < result.length; i++) {
+                        try {
+                            invokeCallback(result[i]);
+                        }
+                        catch (e) {
+                            // log here?
+                        }
+                    }
+                    callWaiter();
+                };
+                var errHandler = function(error) {
+                    var elapsed = new Date().getTime() - startTime;
+                    if (elapsed < 1000) {
+                        connection.close()
+                    }
+                    else {
+                        // probably a timeout
+                        callWaiter();
+                    }
+                };
+                var callWaiter = function() {
+                    if (!connection.regInfo) {
+                        return;
+                    }
+                    var request =
+                        new XmlRpcRequest(WEBSAMP_PREFIX + "pullCallbacks");
+                    request.addParam(connection.privateKey);
+                    request.addParam("600");
+                    startTime = new Date().getTime();
+                    connection.callbackRequest =
+                        connection.xClient.
+                                   execute(request, resultHandler, errHandler);
+                };
+                var sHandler = function() {
+                    callWaiter();
+                    successHandler();
+                };
+                connection.xClient.execute(request, sHandler, closer);
+            })(this);
+        }
+        else {
+            this.xClient.execute(request, successHandler, closer);
+        }
+    };
+
+    // Takes a public URL and returns a URL that can be used from within
+    // this javascript context.  Some translation may be required, since
+    // a URL sent by an external application may be cross-domain, in which
+    // case browser sandboxing would typically disallow access to it.
+    Connection.prototype.translateUrl = function(url) {
+        var translator = this.regInfo["samp.url-translator"] || "";
+        return translator + url;
+    };
+    Connection.Action = function(actName, actArgs, resultKey) {
+        this.actName = actName;
+        this.actArgs = actArgs;
+        this.resultKey = resultKey;
+    };
+
+    // Suitable implementation for a callable client object which can
+    // be supplied to Connection.setCallable().
+    // Its callHandler and replyHandler members are string->function maps
+    // which can be used to provide handler functions for MTypes and
+    // message tags respectively.
+    //
+    // In more detail:
+    // The callHandler member maps a string representing an MType to
+    // a function with arguments (senderId, message, isCall).
+    // The replyHandler member maps a string representing a message tag to
+    // a function with arguments (responderId, msgTag, response).
+    var CallableClient = function(connection) {
+        this.callHandler = {};
+        this.replyHandler = {};
+    };
+    CallableClient.prototype.init = function(connection) {
+    };
+    CallableClient.prototype.receiveNotification = function(senderId, message) {
+        var mtype = message["samp.mtype"];
+        var handled = false;
+        var e;
+        if (mtype in this.callHandler) {
+            try {
+                this.callHandler[mtype](senderId, message, false);
+            }
+            catch (e) {
+            }
+            handled = true;
+        }
+        return handled;
+    };
+    CallableClient.prototype.receiveCall = function(senderId, msgId, message) {
+        var mtype = message["samp.mtype"];
+        var handled = false;
+        var response;
+        var result;
+        var e;
+        if (mtype in this.callHandler) {
+            try {
+                result = this.callHandler[mtype](senderId, message, true) || {};
+                response = {"samp.status": "samp.ok",
+                            "samp.result": result};
+                handled = true;
+            }
+            catch (e) {
+                response = {"samp.status": "samp.error",
+                            "samp.error": {"samp.errortxt": e.toString()}};
+            }
+        }
+        else {
+            response = {"samp.status": "samp.warning",
+                        "samp.result": {},
+                        "samp.error": {"samp.errortxt": "no action"}};
+        }
+        this.connection.reply([msgId, response]);
+        return handled;
+    };
+    CallableClient.prototype.receiveResponse = function(responderId, msgTag,
+                                                        response) {
+        var handled = false;
+        var e;
+        if (msgTag in this.replyHandler) {
+            try {
+                this.replyHandler[msgTag](responderId, msgTag, response);
+                handled = true;
+            }
+            catch (e) {
+            }
+        }
+        return handled;
+    };
+    CallableClient.prototype.calculateSubscriptions = function() {
+        var subs = {};
+        var mt;
+        for (mt in this.callHandler) {
+            subs[mt] = {};
+        }
+        return subs;
+    };
+
+    // ClientTracker is a CallableClient which also provides tracking of
+    // registered clients.
+    //
+    // Its onchange member, if defined, will be called with arguments
+    // (client-id, change-type, associated-data) whenever the list or
+    // characteristics of registered clients has changed.
+    var ClientTracker = function() {
+        var tracker = this;
+        this.ids = {};
+        this.metas = {};
+        this.subs = {};
+        this.replyHandler = {};
+        this.callHandler = {
+            "samp.hub.event.shutdown": function(senderId, message) {
+                tracker.connection.close();
+            },
+            "samp.hub.disconnect": function(senderId, message) {
+                tracker.connection.close();
+            },
+            "samp.hub.event.register": function(senderId, message) {
+                var id = message["samp.params"]["id"];
+                tracker.ids[id] = true;
+                tracker.changed(id, "register", null);
+            },
+            "samp.hub.event.unregister": function(senderId, message) {
+                var id = message["samp.params"]["id"];
+                delete tracker.ids[id];
+                delete tracker.metas[id];
+                delete tracker.subs[id];
+                tracker.changed(id, "unregister", null);
+            },
+            "samp.hub.event.metadata": function(senderId, message) {
+                var id = message["samp.params"]["id"];
+                var meta = message["samp.params"]["metadata"];
+                tracker.metas[id] = meta;
+                tracker.changed(id, "meta", meta);
+            },
+            "samp.hub.event.subscriptions": function(senderId, message) {
+                var id = message["samp.params"]["id"];
+                var subs = message["samp.params"]["subscriptions"];
+                tracker.subs[id] = subs;
+                tracker.changed(id, "subs", subs);
+            }
+        };
+    };
+    ClientTracker.prototype = heir(CallableClient.prototype);
+    ClientTracker.prototype.changed = function(id, type, data) {
+        if (this.onchange) {
+            this.onchange(id, type, data);
+        }
+    };
+    ClientTracker.prototype.init = function(connection) {
+        var tracker = this;
+        this.connection = connection;
+        var retrieveInfo = function(id, type, infoFuncName, infoArray) {
+            connection[infoFuncName]([id], function(info) {
+                infoArray[id] = info;
+                tracker.changed(id, type, info);
+            });
+        };
+        connection.getRegisteredClients([], function(idlist) {
+            var i;
+            var id;
+            tracker.ids = {};
+            for (i = 0; i < idlist.length; i++) {
+                id = idlist[i];
+                tracker.ids[id] = true;
+                retrieveInfo(id, "meta", "getMetadata", tracker.metas);
+                retrieveInfo(id, "subs", "getSubscriptions", tracker.subs);
+            }
+            tracker.changed(null, "ids", null);
+        });
+    };
+    ClientTracker.prototype.getName = function(id) {
+        var meta = this.metas[id];
+        return (meta && meta["samp.name"]) ? meta["samp.name"] : "[" + id + "]";
+    };
+
+    // Connector class:
+    // A higher level class which can manage transparent hub
+    // registration/unregistration and client tracking.
+    //
+    // On construction, the name argument is mandatory, and corresponds
+    // to the samp.name item submitted at registration time.
+    // The other arguments are optional.
+    // meta is a metadata map (if absent, no metadata is declared)
+    // callableClient is a callable client object for receiving callbacks
+    // (if absent, the client is not callable).
+    // subs is a subscriptions map (if absent, no subscriptions are declared)
+    var Connector = function(name, meta, callableClient, subs) {
+        this.name = name;
+        this.meta = meta;
+        this.callableClient = callableClient;
+        this.subs = subs;
+        this.regTextNodes = [];
+        this.whenRegs = [];
+        this.whenUnregs = [];
+        this.connection = undefined;
+        this.onreg = undefined;
+        this.onunreg = undefined;
+    };
+    var setRegText = function(connector, txt) {
+        var i;
+        var nodes = connector.regTextNodes;
+        var node;
+        for (i = 0; i < nodes.length; i++) {
+            node = nodes[i];
+            node.innerHTML = "";
+            node.appendChild(document.createTextNode(txt));
+        }
+    };
+    Connector.prototype.setConnection = function(conn) {
+        var connector = this;
+        var e;
+        if (this.connection) {
+            this.connection.close();
+            if (this.onunreg) {
+                try {
+                    this.onunreg();
+                }
+                catch (e) {
+                }
+            }
+        }
+        this.connection = conn;
+        if (conn) {
+            conn.onclose = function() {
+                connector.connection = null;
+                if (connector.onunreg) {
+                    try {
+                        connector.onunreg();
+                    }
+                    catch (e) {
+                    }
+                }
+                connector.update();
+            };
+            if (this.meta) {
+                conn.declareMetadata([this.meta]);
+            }
+            if (this.callableClient) {
+                if (this.callableClient.init) {
+                    this.callableClient.init(conn);
+                }
+                conn.setCallable(this.callableClient, function() {
+                    conn.declareSubscriptions([connector.subs]);
+                });
+            }
+            if (this.onreg) {
+                try {
+                    this.onreg(conn);
+                }
+                catch (e) {
+                }
+            }
+        }
+        this.update();
+    };
+    Connector.prototype.register = function() {
+        var connector = this;
+        var regErrHandler = function(err) {
+            setRegText(connector, "no (" + err.toString() + ")");
+            if (connector.onregerror)
+            	connector.onregerror(err.toString());
+        };
+        var regSuccessHandler = function(conn) {
+            connector.setConnection(conn);
+            setRegText(connector, conn ? "Yes" : "No");
+        };
+        register(this.name, regSuccessHandler, regErrHandler);
+    };
+    Connector.prototype.unregister = function() {
+        if (this.connection) {
+            this.connection.unregister([]);
+            this.setConnection(null);
+        }
+    };
+
+    // Returns a document fragment which contains Register/Unregister
+    // buttons for use by the user to attempt to connect/disconnect
+    // with the hub.  This is useful for models where explicit
+    // user registration is encouraged or required, but when using
+    // the register-on-demand model such buttons are not necessary.
+    Connector.prototype.createRegButtons = function() {
+        var connector = this;
+        var regButt = document.createElement("button");
+        regButt.setAttribute("type", "button");
+        regButt.appendChild(document.createTextNode("Register"));
+        regButt.onclick = function() {connector.register();};
+        this.whenUnregs.push(regButt);
+        var unregButt = document.createElement("button");
+        unregButt.setAttribute("type", "button");
+        unregButt.appendChild(document.createTextNode("Unregister"));
+        unregButt.onclick = function() {connector.unregister();};
+        this.whenRegs.push(unregButt);
+        var regText = document.createElement("span");
+        this.regTextNodes.push(regText);
+        var node = document.createDocumentFragment();
+        node.appendChild(regButt);
+        node.appendChild(document.createTextNode(" "));
+        node.appendChild(unregButt);
+        var label = document.createElement("span");
+        label.innerHTML = " <strong>Registered: </strong>";
+        node.appendChild(label);
+        node.appendChild(regText);
+        this.update();
+        return node;
+    };
+
+    Connector.prototype.update = function() {
+        var i;
+        var isConnected = !! this.connection;
+        var enableds = isConnected ? this.whenRegs : this.whenUnregs;
+        var disableds = isConnected ? this.whenUnregs : this.whenRegs;
+        for (i = 0; i < enableds.length; i++) {
+            enableds[i].removeAttribute("disabled");
+        }
+        for (i = 0; i < disableds.length; i++) {
+            disableds[i].setAttribute("disabled", "disabled");
+        }
+        setRegText(this, "No");
+    };
+
+    // Provides execution of a SAMP operation with register-on-demand.
+    // You can use this method to provide lightweight registration/use
+    // of web SAMP.  Simply provide a connHandler function which
+    // does something with a connection (e.g. sends a message) and
+    // Connector.runWithConnection on it.  This will connect if not
+    // already connected, and call the connHandler on with the connection.
+    // No explicit registration action is then required from the user.
+    //
+    // If the regErrorHandler argument is supplied, it is a function of
+    // one (error) argument called in the case that registration-on-demand
+    // fails.
+    //
+    // This is a more-or-less complete sampjs page:
+    //   <script>
+    //     var connector = new samp.Connector("pinger", {"samp.name": "Pinger"})
+    //     var pingFunc = function(connection) {
+    //       connection.notifyAll([new samp.Message("samp.app.ping", {})])
+    //     }
+    //   </script>
+    //   <button onclick="connector.runWithConnection(pingFunc)">Ping</button>
+    Connector.prototype.runWithConnection =
+            function(connHandler, regErrorHandler) {
+        var connector = this;
+        var regSuccessHandler = function(conn) {
+            connector.setConnection(conn);
+            connHandler(conn);
+        };
+        var regFailureHandler = function(e) {
+            connector.setConnection(undefined);
+            regErrorHandler(e);
+        };
+        var pingResultHandler = function(result) {
+            connHandler(connector.connection);
+        };
+        var pingErrorHandler = function(err) {
+            register(this.name, regSuccessHandler, regFailureHandler);
+        };
+        if (this.connection) {
+            // Use getRegisteredClients as the most lightweight check
+            // I can think of that this connection is still OK.
+            // Ping doesn't work because the server replies even if the
+            // private-key is incorrect/invalid.  Is that a bug or not?
+            this.connection.
+                 getRegisteredClients([], pingResultHandler, pingErrorHandler);
+        }
+        else {
+            register(this.name, regSuccessHandler, regFailureHandler);
+        }
+    };
+
+    // Sets up an interval timer to run at intervals and notify a callback
+    // about whether a hub is currently running.
+    // Every millis milliseconds, the supplied availHandler function is
+    // called with a boolean argument: true if a (web profile) hub is
+    // running, false if not.
+    // Returns the interval timer (can be passed to clearInterval()).
+    Connector.prototype.onHubAvailability = function(availHandler, millis) {
+        samp.ping(availHandler);
+
+        // Could use the W3C Page Visibility API to avoid making these
+        // checks when the page is not visible.
+        return setInterval(function() {samp.ping(availHandler);}, millis);
+    };
+
+    // Determines whether a given subscriptions map indicates subscription
+    // to a given mtype.
+    var isSubscribed = function(subs, mtype) {
+        var matching = function(pattern, mtype) {
+            if (pattern == mtype) {
+                return true;
+            }
+            else if (pattern === "*") {
+                return true;
+            }
+            else {
+                var prefix;
+                var split = /^(.*)\.\*$/.exec(pat);
+                if (split) {
+                    prefix = split[1];
+                    if (prefix === mtype.substring(0, prefix.length)) {
+                        return true;
+                    }
+                }
+            }
+            return false;
+        };
+        var pat;
+        for (pat in subs) {
+            if (matching(pat, mtype)) {
+                return true;
+            }
+        }
+        return false;
+    }
+
+    // Attempts registration with a SAMP hub.
+    // On success the supplied connectionHandler function is called
+    // with the connection as an argument, on failure the supplied
+    // errorHandler is called with an argument that may be an Error
+    // or an XmlRpc.Fault.
+    var register = function(appName, connectionHandler, errorHandler) {
+        var xClient = new XmlRpcClient();
+        var regRequest = new XmlRpcRequest(WEBSAMP_PREFIX + "register");
+        var securityInfo = {"samp.name": appName};
+        regRequest.addParam(securityInfo);
+        regRequest.checkParams([TYPE_MAP]);
+        var resultHandler = function(result) {
+            var conn;
+            var e;
+            try {
+                conn = new Connection(result, 1000);
+            }
+            catch (e) {
+                errorHandler(e);
+                return;
+            }
+            connectionHandler(conn);
+        };
+        xClient.execute(regRequest, resultHandler, errorHandler);
+    };
+
+    // Calls the hub ping method once.  It is not necessary to be
+    // registered to do this.
+    // The supplied pingHandler function is called with a boolean argument:
+    // true if a (web profile) hub is running, false if not.
+    var ping = function(pingHandler) {
+        var xClient = new XmlRpcClient();
+        var pingRequest = new XmlRpcRequest(WEBSAMP_PREFIX + "ping");
+        var resultHandler = function(result) {
+            pingHandler(true);
+        };
+        var errorHandler = function(error) {
+            pingHandler(false);
+        };
+        xClient.execute(pingRequest, resultHandler, errorHandler);
+    };
+
+
+    /* Exports. */
+    var jss = {};
+    jss.XmlRpcRequest = XmlRpcRequest;
+    jss.XmlRpcClient = XmlRpcClient;
+    jss.Message = Message;
+    jss.TYPE_STRING = TYPE_STRING;
+    jss.TYPE_LIST = TYPE_LIST;
+    jss.TYPE_MAP = TYPE_MAP;
+    jss.register = register;
+    jss.ping = ping;
+    jss.isSubscribed = isSubscribed;
+    jss.Connector = Connector;
+    jss.CallableClient = CallableClient;
+    jss.ClientTracker = ClientTracker;
+
+    return jss;
+})();
diff --git a/js/lib/compat/ext3-compat.css b/js/lib/compat/ext3-compat.css
new file mode 100644
index 0000000..288e5cc
--- /dev/null
+++ b/js/lib/compat/ext3-compat.css
@@ -0,0 +1,138 @@
+/*===============================================================================================
+ Creates rounded, raised boxes like on the Ext website - the markup isn't pretty:
+  <div class="x-box-blue">
+        <div class="x-box-tl"><div class="x-box-tr"><div class="x-box-tc"></div></div></div>
+        <div class="x-box-ml"><div class="x-box-mr"><div class="x-box-mc">
+            <h3>YOUR TITLE HERE (optional)</h3>
+            <div>YOUR CONTENT HERE</div>
+        </div></div></div>
+        <div class="x-box-bl"><div class="x-box-br"><div class="x-box-bc"></div></div></div>
+    </div>
+  These rules used to be part of ext-all.css but this markup is no longer 
+  officially supported as part of the framework.
+ */
+.x-box-tl {
+    background: transparent no-repeat 0 0;
+    zoom:1;
+}
+.x-box-tc {
+    height: 8px;
+    background: transparent repeat-x 0 0;
+    overflow: hidden;
+}
+.x-box-tr {
+    background: transparent no-repeat right -8px;
+}
+.x-box-ml {
+    background: transparent repeat-y 0;
+    padding-left: 4px;
+    overflow: hidden;
+    zoom:1;
+}
+.x-box-mc {
+    background: repeat-x 0 -16px;
+    padding: 4px 10px;
+}
+.x-box-mc h3 {
+    margin: 0 0 4px 0;
+    zoom:1;
+}
+.x-box-mr {
+    background: transparent repeat-y right;
+    padding-right: 4px;
+    overflow: hidden;
+}
+.x-box-bl {
+    background: transparent no-repeat 0 -16px;
+    zoom:1;
+}
+.x-box-bc {
+    background: transparent repeat-x 0 -8px;
+    height: 8px;
+    overflow: hidden;
+}
+.x-box-br {
+    background: transparent no-repeat right -24px;
+}
+.x-box-tl, .x-box-bl {
+    padding-left: 8px;
+    overflow: hidden;
+}
+.x-box-tr, .x-box-br {
+    padding-right: 8px;
+    overflow: hidden;
+}
+.x-box-tl {
+    background-image: url(images/box/corners.gif);
+}
+.x-box-tc {
+    background-image: url(images/box/tb.gif);
+}
+.x-box-tr {
+    background-image: url(images/box/corners.gif);
+}
+.x-box-ml {
+    background-image: url(images/box/l.gif);
+}
+.x-box-mc {
+    background-color: #eee;
+    background-image: url(images/box/tb.gif);
+    font-family: "Myriad Pro","Myriad Web","Tahoma","Helvetica","Arial",sans-serif;
+    color: #393939;
+    font-size: 12px;
+}
+.x-box-mc h3 {
+    font-size: 14px;
+    font-weight: bold;
+}
+.x-box-mr {
+    background-image: url(images/box/r.gif);
+}
+.x-box-bl {
+    background-image: url(images/box/corners.gif);
+}
+.x-box-bc {
+    background-image: url(images/box/tb.gif);
+}
+.x-box-br {
+    background-image: url(images/box/corners.gif);
+}
+.x-box-blue .x-box-bl, .x-box-blue .x-box-br, .x-box-blue .x-box-tl, .x-box-blue .x-box-tr {
+    background-image: url(images/box/corners-blue.gif);
+}
+.x-box-blue .x-box-bc, .x-box-blue .x-box-mc, .x-box-blue .x-box-tc {
+    background-image: url(images/box/tb-blue.gif);
+}
+.x-box-blue .x-box-mc {
+    background-color: #c3daf9;
+}
+.x-box-blue .x-box-mc h3 {
+    color: #17385b;
+}
+.x-box-blue .x-box-ml {
+    background-image: url(images/box/l-blue.gif);
+}
+.x-box-blue .x-box-mr {
+    background-image: url(images/box/r-blue.gif);
+}
+
+/*===============================================================================================
+ * Spotlight utility
+ */
+.x-spotlight {
+    z-index: 8999;
+    position: absolute;
+    top:0;
+    left:0;
+    -moz-opacity: 0.5;
+    opacity: .50;
+    filter: alpha(opacity=50);
+    width:0;
+    height:0;
+    zoom: 1;
+    background-color: #ccc;
+}
+
+/*===============================================================================================
+ * 
+ */
diff --git a/js/lib/compat/ext3-compat.js b/js/lib/compat/ext3-compat.js
new file mode 100644
index 0000000..cb8217d
--- /dev/null
+++ b/js/lib/compat/ext3-compat.js
@@ -0,0 +1,1808 @@
+//
+// TODO: Add GridPanel.getView() to the lib
+// TODO: Rename Ext.ux.PreviewPlugin -> Ext.grid.RowPreviewPlugin
+// TODO: Move CSS styles from paging.html into grid.css
+// TODO: Move JsonStore fix into the lib
+//
+/*========================================================================
+ * 
+ * This section contains stuff that should be in Ext4, or stuff that
+ * is up for discussion. It should be removed prior to Ext 4 final.
+ *
+ *========================================================================*/
+
+// This should be working as the alternateClassName but doesn't for some reason
+Ext.toolbar.Toolbar.SplitButton = Ext.button.Split;
+
+// DomHelper does not currently go through the ClassManager so there is no alternateClassName
+Ext.DomHelper = Ext.core.DomHelper;
+
+Ext.apply(Ext.panel.Panel.prototype, {
+    getToolbars : function(){
+        return this.getDockedItems('toolbar');
+    }
+});
+
+// Not sure if these are intended to be deprecated or they just haven't been moved over
+Ext.apply(Ext.menu.Menu.prototype, {
+    addSeparator : function() {
+        return this.add(Ext.create('Ext.menu.Separator'));
+    },
+    addElement : function(el) {
+        return this.add(Ext.create('Ext.menu.Item', {
+            el: el
+        }));
+    },
+    addItem : function(item) {
+        return this.add(item);
+    },
+    addMenuItem : function(config) {
+        return this.add(this.lookupComponent(config));
+    },
+    addText : function(text){
+        return this.add(Ext.create('Ext.menu.Item', {
+            plain: true,
+            text: text
+        }));
+    }
+});
+
+
+/*========================================================================
+ * 
+ * This section contains true compatibility overrides and should ship
+ * with Ext 4 as an optional compatibility layer for Ext 3 code.
+ * Ext.Compat is defined in ext3-core-compat.js.
+ *
+ *========================================================================*/
+
+(function(){
+    var compat = Ext.Compat,
+        deprecate = Ext.bind(compat.deprecate, compat),
+        notify = Ext.bind(compat.notify, compat),
+        breaking = Ext.bind(compat.breaking, compat);
+    
+    /*-------------------------------------------------------------
+     * Date (from the Ext.util folder in 3.x)
+     *-------------------------------------------------------------*/
+    (function(){
+        var nativeDate = window.Date,
+            utilDate = Ext.Date,
+            staticMappings = ['useStrict', 'formatCodeToRegex', 'parseFunctions', 'parseRegexes', 'formatFunctions', 'y2kYear', 
+                'MILLI', 'SECOND', 'MINUTE', 'HOUR', 'DAY', 'MONTH', 'YEAR', 'defaults', 'dayNames', 'monthNames', 
+                'monthNumbers', 'formatCodes', 'getFormatCode', 'createFormat', 'createParser', 'parseCodes'],
+            staticOverrides = ['getShortMonthName', 'getShortDayName', 'getMonthNumber', 'isValid', 'parseDate'],
+            proto = ['dateFormat', 'format', 'getTimezone', 'getGMTOffset', 'getDayOfYear', 'getWeekOfYear', 'isLeapYear', 
+                'getFirstDayOfMonth', 'getLastDayOfMonth', 'getFirstDateOfMonth', 'getLastDateOfMonth', 'getDaysInMonth', 
+                'getSuffix', 'clone', 'isDST', 'clearTime', 'add', 'between'];
+            
+        // Static direct mappings. These are either private methods or any members
+        // that cannot be aliased as methods to include a warning. These are documented
+        // in the migration guide as breaking changes to be fixed.
+        Ext.Array.forEach(staticMappings, function(member) {
+            nativeDate[member] = utilDate[member];
+        });
+        
+        // Static overrides. These are public static methods that can be overridden
+        // as methods to include console warnings.
+        Ext.Array.forEach(staticOverrides, function(member) {
+            nativeDate[member] = function(){
+                deprecate({pkg:'Date', member:member, alt:'Ext.Date.'+member});
+                return utilDate[member].apply(utilDate, arguments);
+            };
+        });
+        
+        // Prototype (instance) overrides
+        Ext.Array.forEach(proto, function(member) {
+            nativeDate.prototype[member] = function() {
+                if(member !== 'dateFormat'){
+                    // dateFormat is actually private, and it is aliased publicly as "format". It needs
+                    // to be included, but we can skip the warning as it would be a duplicate of the format
+                    // warning and would actually be misleading since it won't have been called directly.
+                    // All other methods in this array are public and should give a warning.
+                    deprecate({pkg:'Date', member:'<date>.'+member, alt:'Ext.Date.'+member,
+                        msg:'Note that this is now a static method, so the date instance will be the first argument to the new version.'});
+                }
+                return utilDate[member].apply(utilDate, [this].concat(Array.prototype.slice.call(arguments)));
+            };
+        });
+    })();
+
+    /*-------------------------------------------------------------
+     * XTypes
+     *-------------------------------------------------------------*/
+    if (Ext.ClassManager) {
+        Ext.apply(Ext.ClassManager, {
+            instantiateByAlias: Ext.Function.createInterceptor(Ext.ClassManager.instantiateByAlias, function() {
+                var args = Ext.Array.toArray(arguments),
+                    alias = args.shift();
+                //
+                // These are xtypes that are not currently aliased in the framework code.
+                // Not sure if these should really be deprecated or not...
+                //
+                if(alias == 'widget.tbsplit'){
+                    deprecate({pkg:'Core', member:'tbsplit', alt:'splitbutton', type:'xtype'});
+                    Ext.ClassManager.setAlias('Ext.button.Split', 'widget.tbsplit');
+                }
+                if(alias == 'widget.progress'){
+                    deprecate({pkg:'Core', member:'progress', alt:'progressbar', type:'xtype'});
+                    Ext.ClassManager.setAlias('Ext.ProgressBar', 'widget.progress');
+                }
+            })
+        });
+    }
+    
+    /*-------------------------------------------------------------
+     * MicedCollection
+     *-------------------------------------------------------------*/
+    if (Ext.util.AbstractMixedCollection) {
+        Ext.apply(Ext.util.AbstractMixedCollection.prototype, {
+            removeKey : function() {
+                deprecate({pkg:'Ext.util.MixedCollection', member:'removeKey', alt:'removeAtKey'});
+                return this.removeAtKey.apply(this, arguments);
+            },
+            item : function() {
+                deprecate({pkg:'Ext.util.MixedCollection', member:'item', alt:'get'});
+                return this.get.apply(this, arguments);
+            },
+            itemAt : function() {
+                deprecate({pkg:'Ext.util.MixedCollection', member:'itemAt', alt:'getAt'});
+                return this.getAt.apply(this, arguments);
+            },
+            key : function() {
+                deprecate({pkg:'Ext.util.MixedCollection', member:'key', alt:'getByKey'});
+                return this.getByKey.apply(this, arguments);
+            }
+        });
+    }
+    if (Ext.util.MixedCollection) {
+        Ext.apply(Ext.util.MixedCollection.prototype, {
+            constructor: Ext.Function.createInterceptor(Ext.util.MixedCollection.prototype.constructor, function() {
+                this._origSort = this.sort;
+                this.sort = function(dir, fn) {
+                    if (Ext.isFunction(fn)) {
+                        deprecate({pkg:'Ext.util.MixedCollection', member:'sort (with a comparator fn)', alt:'sortBy', 
+                            msg:'Calling MixedCollection.sort and passing a comparator function as the second parameter '+
+                                'is no longer supported. See the docs for MixedCollection.sort to see the current '+
+                                'valid parameter list. When passing a comparator function, use sortBy instead.'});
+                        
+                        return this.sortBy(fn);
+                    }
+                    return this._origSort(arguments);
+                }
+            }),
+            keySort : function() {
+                deprecate({pkg:'Ext.util.MixedCollection', member:'keySort', alt:'sortByKey'});
+                return this.sortByKey.apply(this, arguments);
+            }
+        });
+    }
+    
+    /*-------------------------------------------------------------
+     * AbstractComponent
+     *-------------------------------------------------------------*/
+    if (Ext.AbstractComponent) {
+        Ext.apply(Ext.AbstractComponent.prototype, {
+            addClass : function() {
+                deprecate({pkg:'Ext.Component', member:'addClass', alt:'addCls'});
+                return this.addCls.apply(this, arguments);
+            },
+            removeClass : function() {
+                deprecate({pkg:'Ext.Component', member:'removeClass', alt:'removeCls'});
+                return this.removeCls.apply(this, arguments);
+            }
+        });
+    }
+    
+    /*-------------------------------------------------------------
+     * Component
+     *-------------------------------------------------------------*/
+    if (Ext.Component) {
+        Ext.apply(Ext.Component.prototype, {
+            initComponent: Ext.Function.createInterceptor(Ext.Component.prototype.initComponent, function() {
+                if(Ext.isDefined(this.applyTo)){
+                    deprecate({pkg:'Ext.Component', member:'applyTo', type:'config', alt:'renderTo',
+                        msg:'Applying components to existing markup via "applyTo" is no longer supported.'});
+                    
+                    var replaced = false;
+                    try{
+                        var target = Ext.get(this.applyTo);
+                        if (target) {
+                            var parent = target.parent();
+                            if (parent) {
+                                this.renderTo = parent;
+                                target.remove();
+                                replaced = true;
+                                notify({pkg:'Ext.Component', member:'applyTo', msg:'This component will attempt to render to '+
+                                    'the applyTo target\'s parent node ("' + parent.id + '"). If this did not work as expected then '+
+                                    'you will have to replace the applyTo config manually before this component will render properly.'})
+                            }
+                        }
+                    } catch(ex) {}
+                    
+                    if (!replaced) {
+                        breaking({pkg:'Ext.Component', member:'applyTo', msg:'Attempted to render the component to the applyTo target\'s '+
+                            'parent node, but this failed. You must resolve this manually before the component can render.'})
+                    }
+                }
+            })
+        });
+
+        Ext.define('Ext.BoxComponent', {
+            extend: 'Ext.Component',
+            constructor: function() {
+                deprecate({member:'Ext.BoxComponent', alt:'Ext.Component', 
+                    msg:'All functionality from BoxComponent is now directly in Component. '+
+                        'Replace "BoxComponent" with "Component" and/or xtype "box" with "component".'});
+                
+                this.callParent(arguments);
+            }
+        });
+    }
+    
+    /*-------------------------------------------------------------
+     * ComponentManager
+     *-------------------------------------------------------------*/
+    if (Ext.ComponentManager) {
+        var regMsg = 'Calling a separate function to register custom types is no longer necessary. '+
+                     'Switch your class definition to use Ext.define with "{0}" as the alias config.';
+        
+        var checkClassRef = function(pkg, cls, member) {
+            if (!Ext.isString(cls)) {
+                breaking({pkg:pkg, member:member, msg:'You must either convert the passed class reference to a string -- e.g. ' + 
+                    pkg + '.' + member + '("myclass", "Ext.ux.MyClass") -- or change your class definition to use Ext.define. '+
+                    'See the section in the Migration Guide on registering xtypes for more info.'});
+            }
+        };
+        
+        Ext.ComponentManager.registerType = function(xtype, cls){
+            deprecate({pkg:'ComponentManager', member:'registerType', msg:Ext.String.format(regMsg, 'widget.'+xtype)});
+            checkClassRef('ComponentManager', cls, 'registerType');
+            Ext.ClassManager.setAlias(cls, 'widget.'+xtype);
+        };
+        Ext.reg = function(xtype, cls){
+            deprecate({pkg:'Ext', member:'reg', msg:Ext.String.format(regMsg, 'widget.'+xtype)});
+            checkClassRef('Ext', cls, 'reg');
+            Ext.ClassManager.setAlias(cls, 'widget.'+xtype);
+        };
+        Ext.ComponentManager.registerPlugin = function(ptype, cls){
+            deprecate({pkg:'ComponentManager', member:'registerPlugin', msg:Ext.String.format(regMsg, 'plugin.'+ptype)});
+            checkClassRef('ComponentManager', cls, 'registerPlugin');
+            Ext.ClassManager.setAlias(cls, 'plugin.'+ptype);
+        };
+        Ext.preg = function(ptype, cls){
+            deprecate({pkg:'Ext', member:'preg', msg:Ext.String.format(regMsg, 'plugin.'+ptype)});
+            checkClassRef('Ext', cls, 'preg');
+            Ext.ClassManager.setAlias(cls, 'plugin.'+ptype);
+        };
+    }
+    
+    /*-------------------------------------------------------------
+     * Container
+     *-------------------------------------------------------------*/
+    if (Ext.container.AbstractContainer) {
+        Ext.apply(Ext.container.AbstractContainer.prototype, {
+            get: function(comp) {
+                deprecate({pkg:'Ext.Container', member:'get', alt:'getComponent'});
+                return this.getComponent(comp);
+            },
+            findById: function(id) {
+                deprecate({pkg:'Ext.Container', member:'findById', alt:'query', msg:'Use the query method with the # id syntax, e.g. comp.query("#"+id).'});
+                return this.query('#'+id);
+            }
+        });
+    }
+    if (Ext.container.Container) {
+        Ext.apply(Ext.container.Container.prototype, {
+            initComponent: Ext.Function.createInterceptor(Ext.container.Container.prototype.initComponent, function() {
+                if (this.layout === 'form') {
+                    deprecate({pkg:'FormPanel', member:'form', type:'layout', 
+                        msg:'Form layout no longer exists, use a different container layout and allow each field\'s '+
+                            'Field layout to apply labels. Falling back to anchor layout.'});
+                    
+                    this.layout = 'anchor';
+                }
+            })
+        });
+    }
+
+    /*-------------------------------------------------------------
+     * Toolbar
+     *-------------------------------------------------------------*/
+    if (Ext.toolbar.Toolbar) {
+        Ext.apply(Ext.toolbar.Toolbar.prototype, {
+            addField : function(field){
+                deprecate({pkg:'Toolbar', member:'addField', alt:'add'});
+                return this.add(field);
+            }
+        });
+    }
+    
+    /*-------------------------------------------------------------
+     * PagingToolbar
+     *-------------------------------------------------------------*/
+    if (Ext.toolbar.Paging) {
+        Ext.apply(Ext.toolbar.Paging.prototype, {
+            constructor: Ext.Function.createInterceptor(Ext.toolbar.Paging.prototype.constructor, function(config) {
+                if (config.paramNames) {
+                    var msg = 'Instead of params specific to this toolbar you should set any needed options on the associated store/proxy. '+
+                        'See the header docs for Ext.data.Store for details. The defaults for PagingToolbar {start: \'start\', limit: \'limit\'} '+
+                        'would map to the store\'s proxy as {startParam: \'start\', limitParam: \'limit\'}.';
+                    
+                    if (config.store && config.store.proxy) {
+                        config.store.proxy.startParam = config.paramNames[start];
+                        config.store.proxy.limitParam = config.paramNames[limit];
+                        deprecate({pkg:'PagingToolbar', member:'paramNames', msg:msg});
+                    }
+                    else {
+                        breaking({pkg:'PagingToolbar', member:'paramNames', msg:msg + ' No proxy is available in the current PagingToolbar '+
+                            'configuration so this cannot be aliased automatically.'});
+                    }
+                    delete config.paramNames;
+                }
+                if (config.pageSize) {
+                    config.store.pageSize = config.pageSize;
+                    deprecate({pkg:'PagingToolbar', member:'pageSize', alt:'store.pageSize'});
+                }
+            }),
+            changePage : function(page){
+                deprecate({pkg:'PagingToolbar', member:'changePage', alt:'store.loadPage'});
+                this.store.loadPage(page);
+            }
+        });
+    }
+    
+    /*-------------------------------------------------------------
+     * Views
+     *-------------------------------------------------------------*/
+    if (Ext.view.AbstractView) {
+        Ext.apply(Ext.view.AbstractView.prototype, {
+            initComponent : function(){
+                var isDef = Ext.isDefined;
+                if (!isDef(this.tpl) || !isDef(this.store) || !isDef(this.itemSelector)) {
+                    throw "DataView requires tpl, store and itemSelector configurations to be defined.";
+                }
+                Ext.view.AbstractView.superclass.initComponent.call(this);
+                if(Ext.isString(this.tpl) || Ext.isArray(this.tpl)){
+                    this.tpl = new Ext.XTemplate(this.tpl);
+                }
+                
+                if (isDef(this.overClass)){
+                    deprecate({pkg:'DataView', member:'overClass', alt:'overItemCls', type:'config'});
+                    this.overItemCls = this.overClass;
+                    delete this.overClass;
+                }
+                if (isDef(this.overCls)){
+                    deprecate({pkg:'DataView', member:'overCls', alt:'overItemCls', type:'config'});
+                    this.overItemCls = this.overCls;
+                    delete this.overCls;
+                }
+                if (isDef(this.selectedClass)){
+                    deprecate({pkg:'DataView', member:'selectedClass', alt:'selectedItemCls', type:'config'});
+                    this.selectedItemCls = this.selectedClass;
+                    delete this.selectedClass;
+                }
+                if (isDef(this.selectedCls)){
+                    deprecate({pkg:'DataView', member:'selectedCls', alt:'selectedItemCls', type:'config'});
+                    this.selectedItemCls = this.selectedCls;
+                    delete this.selectedCls;
+                }
+                
+                this.addEvents(
+                    'beforerefresh',
+                    'refresh'
+                );
+                this.addCmpEvents();
+                this.store = Ext.data.StoreManager.lookup(this.store);
+                this.all = new Ext.CompositeElementLite();
+                this.getSelectionModel().bindComponent(this);
+            }
+        });
+    }
+    
+    /*-------------------------------------------------------------
+     * Panel
+     *-------------------------------------------------------------*/
+    if (Ext.panel.Panel) {
+        Ext.apply(Ext.panel.AbstractPanel.prototype, {
+            initComponent: Ext.Function.createInterceptor(Ext.panel.AbstractPanel.prototype.initComponent, function() {
+                if (this.bodyCssClass) {
+                    var me = this,
+                        msg = '',
+                        bodyCssClass = me.bodyCssClass;
+                        
+                    if (Ext.isFunction(bodyCssClass)) {
+                        me.bodyCls = bodyCssClass();
+                        msg = 'Note that passing a function reference as the config value is no longer supported.'
+                    }
+                    else {
+                        me.bodyCls = bodyCssClass;
+                    }
+                    delete me.bodyCssClass;
+                    deprecate({pkg:'Ext.panel.Panel', member:'bodyCssClass', type:'config', alt:'bodyCls', msg:msg});
+                }
+            })
+        });
+        
+        Ext.apply(Ext.panel.Panel.prototype, {
+            getTopToolbar: function(){
+                notify('Panel now supports an arbitrary number of toolbars, so getTopToolbar() will return the top toolbar at index 0 if multiple are found');
+                var items = this.getToolbars();
+                return items.length > 0 ? items[0] : null;
+            },
+            getBottomToolbar: function(){
+                notify('Panel now supports an arbitrary number of toolbars, so getBottomToolbar() will return the bottom toolbar at index 0 if multiple are found');
+                var items = this.getToolbars();
+                return items.length > 0 ? items[0] : null;
+            }
+        });
+    }
+
+    /*-------------------------------------------------------------
+     * Layouts
+     *-------------------------------------------------------------*/
+    if (Ext.layout.container.Accordion) {
+        Ext.apply(Ext.layout.container.Accordion.prototype, {
+            constructor: Ext.Function.createSequence(Ext.layout.container.Accordion.prototype.constructor, function() {
+                notify('AccordionLayout now defaults to animating expand/collapse. To revert to the 3.x default behavior set animate:false on the layout.')
+            })
+        });
+    }
+    
+    /*-------------------------------------------------------------
+     * TablePanel
+     *-------------------------------------------------------------*/
+    if (Ext.panel.Table) {
+        Ext.apply(Ext.panel.Table.prototype, {
+            initComponent: Ext.Function.createInterceptor(Ext.panel.Table.prototype.initComponent, function() {
+                if (Ext.isDefined(this.preventHeaders)) {
+                    deprecate({pkg:'Ext.grid.Panel', member:'preventHeaders', type:'config', alt:'hideHeaders'});
+                    this.hideHeaders = this.preventHeaders;
+                    delete this.preventHeaders;
+                }
+            })
+        });
+    }
+    
+    /*-------------------------------------------------------------
+     * Grid components
+     *-------------------------------------------------------------*/
+    if (Ext.grid.Panel) {
+        Ext.apply(Ext.grid.Panel.prototype, {
+            constructor: Ext.Function.createInterceptor(Ext.grid.Panel.prototype.constructor, function(config) {
+                if (config.trackMouseOver !== undefined) {
+                    deprecate({pkg:'Ext.GridPanel', member:'trackMouseOver', alt:'trackOver', type:'config',
+                        msg:'Specify this as an attribute of the "viewConfig" config (e.g. viewConfig: {trackOver: false}).'});
+                    
+                    config.viewConfig = config.viewConfig || {};
+                    config.viewConfig.trackOver = config.viewConfig.trackOver || config.trackMouseOver;
+                    delete config.trackMouseOver; 
+                }
+                if (config.stripeRows !== undefined) {
+                    deprecate({pkg:'Ext.GridPanel', member:'stripeRows', type:'config',
+                        msg:'The stripeRows option should now be passed as an attribute of the "viewConfig" config (e.g. viewConfig: {stripeRows: true}).'});
+                    
+                    config.viewConfig = config.viewConfig || {};
+                    config.viewConfig.stripeRows = config.viewConfig.stripeRows || config.stripeRows;
+                    delete config.stripeRows; 
+                }
+                if (config.cm || config.colModel) {
+                    deprecate({pkg:'Ext.GridPanel', member:'colModel/cm', type:'config',
+                        msg:'Grids no longer use a ColumnModel class. Just specify the columns array config instead.'});
+                    
+                    // the ColumnModel mock constructor below just returns the columns array
+                    config.columns = config.cm || config.colModel;
+                    delete config.cm;
+                    delete config.colModel;
+                }
+                var cols = config.columns || this.columns;
+                if (cols && Ext.isArray(cols)) {
+                    Ext.each(cols, function(col) {
+                        if (col.id && !col.dataIndex) {
+                            notify('Grid column "' + col.id + '" is defined with an id, but no dataIndex. In Ext 4 the id is used to reference the '+
+                                'columns as components, and dataIndex is used to map back to the data id. Please add dataIndex to all columns.');
+                            col.dataIndex = col.id;
+                        }
+                    });
+                }
+                if (config.store && config.store instanceof Ext.data.GroupingStore) {
+                    notify({pkg:'Ext.GridPanel', msg:'Attempting to convert a GroupingStore store config into a Grouping feature. See the '+
+                        'GroupingStore constructor warning for additional details.'});
+                        
+                    config.features = config.features || [];
+                    config.features.push(Ext.create('Ext.grid.feature.Grouping'));
+                }
+            }),
+            
+            initComponent: Ext.Function.createInterceptor(Ext.grid.Panel.prototype.initComponent, function() {
+                if (this.autoExpandColumn !== undefined) {
+                    deprecate({pkg:'Ext.grid.Panel', member:'autoExpandColumn', alt:'flex (header config)', type:'config',
+                        msg:'You can set "flex: 1" in a specific header config for behavior equivalent to autoExpandColumn.'});
+                        
+                    var id;
+                    Ext.Array.each(this.headers, function(header){
+                        id = header.id || header.dataIndex;
+                        if(id === this.autoExpandColumn){
+                            header.flex = 1;
+                            return false;
+                        }
+                    }, this);
+                }
+            })
+        });
+        
+        Ext.apply(Ext.grid.GridPanel.prototype, {
+            getColumnModel: function(){
+                if (!this.colModel && !this.cm) {
+                    this.cm = this.colModel = new Ext.grid.ColumnModel({
+                        columns: this.columns
+                    });
+                }
+                return this.cm;
+            }
+        });
+        
+        Ext.grid.EditorGridPanel = function(config) {
+            deprecate({pkg:'Ext.grid.EditorGridPanel', msg:'EditorGridPanel no longer exists as a separate class. Instead just '+
+                'create a standard GridPanel and include the CellEditing plugin, e.g. "plugins: Ext.create("Ext.grid.plugin.CellEditing", {...})'});
+            
+            return Ext.createWidget('grid', Ext.apply(config || {}, {
+                plugins: Ext.create('Ext.grid.plugin.CellEditing', {
+                    clicksToEdit: 1
+                })
+            }));
+        }
+    }
+    
+    if (Ext.grid.View) {
+        Ext.apply(Ext.grid.View.prototype, {
+            constructor: Ext.Function.createInterceptor(Ext.grid.View.prototype.constructor, function(config) {
+                if(Ext.isFunction(config.getRowClass)){
+                    var getRowClass = config.getRowClass;
+                    this.__getRowClass = Ext.bind(getRowClass, this);
+                    delete config.getRowClass;
+                    
+                    this.getRowClass = function(rec, rowIndex, rowParams, store){
+                        var result = this.__getRowClass(rec, rowIndex, rowParams, store);
+                        if (rowParams.body) {
+                            delete rowParams.body;
+                            breaking({pkg:'Ext.grid.View', member:'getRowClass.rowParams.body', single:true,
+                                msg:'To implement a custom row body you must add the RowBody feature (ftype:"rowbody") '+
+                                    'to the grid\'s viewConfig and override the "getAdditionalData" template method '+
+                                    '(or use the Ext.grid.RowBodyPlugin helper class). Unfortunately this cannot be '+
+                                    'inferred at design time so it must be fixed manually.'});
+                        }
+                        if (rowParams.bodyStyle) {
+                            delete rowParams.bodyStyle;
+                            deprecate({pkg:'Ext.grid.View', member:'getRowClass.rowParams.bodyStyle', single:true,
+                                msg:'To implement a custom row styles you must add the RowBody feature (ftype:"rowbody") '+
+                                    'to the grid\'s viewConfig and override the "getAdditionalData" template method '+
+                                    '(or use the Ext.grid.RowBodyPlugin helper class). Note that in 3.x this property '+
+                                    'was a CSS style spec, whereas now you specify "rowBodyCls" as a CSS classname instead. Ignoring for now.'});
+                        }
+                        if (rowParams.tstyle) {
+                            delete rowParams.tstyle;
+                            deprecate({pkg:'Ext.grid.View', member:'getRowClass.rowParams.tstyle', single:true,
+                                msg:'Grid row bodies no longer use a wrapping TABLE element, so the "tstyle" property '+
+                                    'no longer directly applies. If you have CSS styles that still need to be applied, you '+
+                                    'should add the RowBody feature (ftype:"rowbody") to the grid\'s viewConfig and override '+
+                                    'the "getAdditionalData" template method (or use the Ext.grid.RowBodyPlugin helper class). '+
+                                    'Note that in 3.x this property was a CSS style spec, whereas now you would use the "rowBodyCls" '+
+                                    'CSS classname instead (and adjust for the fact that there is no TABLE if needed). Ignoring for now.'});
+                        }
+                        return result;
+                    };
+                }
+            })
+        });
+        
+        Ext.grid.GroupingView = function(config) {
+            breaking({pkg:'Ext.grid.GroupingView', msg:'GroupingView no longer exists as a separate class, and grid views should '+
+                'not need to be instantiated directly. Instead just create a standard GridPanel and include the Grouping feature, '+
+                'e.g. "features: Ext.create("Ext.grid.feature.Grouping", {...}). Unfortunately there is no way to alias a call to this '+
+                'constructor properly, so you\'ll need to adjust your GridPanel constructor as noted to resolve this.'});
+        }
+    }
+    
+    if (Ext.grid.header.Container) {
+        Ext.apply(Ext.grid.header.Container.prototype, {
+            constructor: Ext.Function.createSequence(Ext.grid.header.Container.prototype.constructor, function() {
+                this.__prepareData = this.prepareData;
+                this.prepareData = function() {
+                    var obj = this.__prepareData.apply(this, arguments);
+                    if (obj.cssWarning) {
+                        delete obj.cssWarning;
+                        deprecate({pkg:'Ext.grid.Panel', single:true, msg:'Your grid column renderer is including the legacy "css" attribute '+
+                            'in the returned metaData object. This has been renamed to "tdCls" so you should change the attribute name in your renderer.'});
+                    }
+                    return obj;
+                }
+            })
+        });
+    }
+    
+    if (Ext.grid.Header) {
+        Ext.apply(Ext.grid.Header.prototype, {
+            initComponent: Ext.Function.createInterceptor(Ext.grid.Header.prototype.initComponent, function() {
+                if (Ext.isDefined(this.header)) {
+                    deprecate({pkg:'Ext.grid.Panel', member:'header', alt:'text', type:'config', single: true,
+                        msg:'In 3.x the grid had a "columns" array containing "header" configs for the title of each column. '+
+                            'In 4.0 the grid has a "headers" array and you should specify the "text" config for each header.'});
+                            
+                    this.text = this.header;
+                    delete this.header;
+                }
+            })
+        });
+    }
+    
+    Ext.grid.ColumnModel = function(config) {
+        return Ext.applyIf(config.columns ? config.columns : config, {
+            on: Ext.emptyFn,
+            addListener: Ext.emptyFn,
+            getColumnId: Ext.emptyFn,
+            getColumnAt: Ext.emptyFn,
+            setConfig: Ext.emptyFn,
+            getColumnById: Ext.emptyFn,
+            getIndexById: Ext.emptyFn,
+            moveColumn: Ext.emptyFn,
+            getColumnCount: Ext.emptyFn,
+            getColumnsBy: Ext.emptyFn,
+            isSortable: Ext.emptyFn,
+            isMenuDisabled: Ext.emptyFn,
+            getRenderer: Ext.emptyFn,
+            getRendererScope: Ext.emptyFn,
+            setRenderer: Ext.emptyFn,
+            getColumnWidth: Ext.emptyFn,
+            setColumnWidth: Ext.emptyFn,
+            getTotalWidth: Ext.emptyFn,
+            getColumnHeader: Ext.emptyFn,
+            setColumnHeader: Ext.emptyFn,
+            getColumnTooltip: Ext.emptyFn,
+            setColumnTooltip: Ext.emptyFn,
+            getDataIndex: Ext.emptyFn,
+            setDataIndex: Ext.emptyFn,
+            findColumnIndex: Ext.emptyFn,
+            isCellEditable: Ext.emptyFn,
+            getCellEditor: Ext.emptyFn,
+            setEditable: Ext.emptyFn,
+            isHidden: Ext.emptyFn,
+            isFixed: Ext.emptyFn,
+            isResizable: Ext.emptyFn,
+            setHidden: Ext.emptyFn,
+            setEditor: Ext.emptyFn,
+            destroy: Ext.emptyFn,
+            setState: Ext.emptyFn
+        });
+    };
+    
+    if (Ext.grid.Column) {
+        Ext.Compat.bindProperty({owner:Ext.grid.Column, name:'types', defaultValue:{},
+            getterMsg: function(){
+                deprecate({pkg:'Ext.grid.Column', member:'types', type:'property', alt:'alias (config)',
+                    msg:'The new approach to creating a custom column type is to specify the alias config '+
+                    'within your column\'s class definition (e.g., alias: ["widget.mycolumn"]). You could also '+
+                    'call the setAlias method after the class is defined.'});
+            }
+        });
+    }
+    
+    // temp aliases -- these will be added into Ext 4
+    Ext.apply(Ext.grid.Panel.prototype, {
+        getStore: function() {
+            return this.store;
+        }
+    });
+    
+    if (Ext.selection.Model) {
+        Ext.apply(Ext.selection.Model.prototype, {
+            selectRow: function(index){
+                deprecate({pkg:'Ext.grid.RowSelectionModel', member:'selectRow', alt:'Ext.selection.RowModel.selectRange', 
+                    msg:'Note that selectRange requires both start and end rows as its first two arguments (defaulting both to '+index+').'});
+                
+                return this.selectRange(index, index);
+            },
+            getSelections: function(){
+                deprecate({pkg:'Ext.grid.RowSelectionModel', member:'getSelections', alt:'Ext.selection.RowModel.getSelection'});
+                return this.getSelection();
+            }
+        });
+    }
+    
+    /*-------------------------------------------------------------
+     * Tree (removed classes)
+     *-------------------------------------------------------------*/
+    Ext.tree.TreeNode = function(config){
+        deprecate({pkg:'Ext.tree.TreeNode', msg:'This class is no longer needed. The Tree now uses standard Records that get decorated '+
+            'by the NodeInterface class in Ext 4.'});
+        Ext.apply(this, config);
+    };
+    Ext.tree.AsyncTreeNode = function(config){
+        deprecate({pkg:'Ext.tree.AsyncTreeNode', msg:'This class is no longer needed. Specify a TreeStore with an AjaxProxy instead.'});
+        Ext.apply(this, config);
+    };
+    Ext.tree.AsyncTreeNode.prototype = {
+        expand: function(){
+            if (this.store) {
+                this.store.load({
+                    url: this.url || this.dataUrl
+                });
+            }
+        }
+    };
+    
+    Ext.tree.TreeSorter = function(tree, config){
+        deprecate({pkg:'Ext.tree.TreeSorter', msg:'This class is no longer needed. Specify a TreeStore with standard "sorter" config options instead.'});
+        Ext.apply(this, config);
+    };
+    
+    Ext.tree.TreeLoader = function(config){
+        deprecate({pkg:'Ext.tree.TreeLoader', msg:'This class is no longer needed. Specify a TreeStore with standard store options to load the tree.'});
+        Ext.apply(this, config);
+    };
+    
+    /*-------------------------------------------------------------
+     * TreePanel
+     *-------------------------------------------------------------*/
+    if (Ext.tree.Panel) {
+        Ext.apply(Ext.tree.Panel.prototype, {
+            constructor: Ext.Function.createInterceptor(Ext.tree.Panel.prototype.constructor, function(config) {
+                if (config.hlDrop) {
+                    delete config.hlDrop;
+                    deprecate({pkg:'Ext.tree.TreePanel', member:'hlDrop', type:'config', 
+                        msg:'Highlighting tree nodes on drop is no longer supported. You can simply remove this config.'});
+                }
+                if (config.hlColor) {
+                    delete config.hlDrop;
+                    deprecate({pkg:'Ext.tree.TreePanel', member:'hlColor', type:'config',
+                        msg:'Highlighting tree nodes on drop is no longer supported. You can simply remove this config.'});
+                }
+                
+                var ddConfig = config.ddConfig || {};
+                if (Ext.isDefined(config.enableDrag)) {
+                    deprecate({pkg:'Ext.tree.TreePanel', member:'enableDrag', type:'config', alt:'ddConfig.enableDrag'});
+                    ddConfig.enableDrag = config.enableDrag;
+                    delete config.enableDrag;
+                }
+                if (Ext.isDefined(config.enableDrop)) {
+                    deprecate({pkg:'Ext.tree.TreePanel', member:'enableDrop', type:'config', alt:'ddConfig.enableDrop'});
+                    ddConfig.enableDrop = config.enableDrop;
+                    delete config.enableDrop;
+                }
+                if (Ext.isDefined(config.enableDD)) {
+                    var msg = config.enableDD ? 'Note that ddConfig defaults to enabling both drag and drop by default in Ext 4. Since you are '+
+                        'currently passing "enableDD: true", in this case the config can simply be ommitted entirely.' : '';
+                    
+                    ddConfig = {
+                        enableDrag: config.enableDD,
+                        enableDrop: config.enableDD
+                    };
+                    delete config.enableDD;
+                    deprecate({pkg:'Ext.tree.TreePanel', member:'enableDD', type:'config', alt:'ddConfig', msg:msg});
+                }
+                config.ddConfig = ddConfig;
+                
+                var url = config.dataUrl || this.dataUrl;
+                if (url) {
+                    deprecate({pkg:'Ext.tree.TreePanel', member:'dataUrl', type:'config', alt:'TreeStore',
+                        msg:'The TreePanel no longer supports loading data directly. Creating an implicit TreeStore using the url: '+url});
+                    
+                    this.loader = { dataUrl: url };
+                    delete config.dataUrl;
+                    delete this.dataUrl;
+                }
+                else if (config.loader) {
+                    this.loader = config.loader;
+                    delete config.loader;
+                    deprecate({pkg:'Ext.tree.TreePanel', member:'loader', type:'config', alt:'TreeStore',
+                        msg:'The TreeLoader class and TreePanel.loader config have been removed. Trees now use the TreeStore '+
+                            'which provides all standard Ext.data.Store loading capabilities.'});
+                }
+                
+                if (config.root && (config.root instanceof Ext.tree.AsyncTreeNode || config.root.nodeType == 'async')) {
+                    config.loader = this.loader;
+                }
+                this.applyCompatOptions();
+            }),
+            
+            initComponent: Ext.Function.createSequence(Ext.tree.Panel.prototype.initComponent, function() {
+                this.on('itemclick', function(view, model, el, idx, e){
+                    if (this.events['click']) {
+                        model.attributes = model.attributes || model.data;
+                        this.fireEvent('click', model, e);
+                        deprecate({pkg:'Ext.tree.TreePanel', member:'click', type:'event', alt:'itemclick', 
+                            msg:'Note that the argument order has changed, and that the data argument was a node in 3.x and is now '+
+                                'the selected model. Instead of node.attributes you can access the data via model.data.'})
+                    }
+                });
+            }),
+            
+            applyCompatOptions: function(){
+                var loader = this.loader;
+                if (loader && (loader.url || loader.dataUrl || loader.proxy)) {
+                    var urlProp = loader.url ? 'url' : 'dataUrl',
+                        proxy = loader.proxy || {
+                            type: 'ajax',
+                            url: loader[urlProp]
+                        },
+                        storeConfig = {
+                            proxy: proxy
+                        }
+                    
+                    if (this.root) {
+                        storeConfig.root = this.root;
+                        delete this.root;
+                    }
+                    this.store = new Ext.data.TreeStore(storeConfig);
+                    this.loader.store = this.store;
+                    
+                    notify({pkg:'Ext.tree.Panel', msg:'Using the TreeLoader.' + urlProp + 
+                        ' config to generate a default TreeStore + Proxy with the url: '+loader[urlProp]});
+                }
+            },
+            
+            // Aliased in TreePanel
+//            setRootNode: function(root){
+//                deprecate({pkg:'Ext.tree.Panel', member:'setRootNode', alt:'TreeStore.setRootNode', 
+//                    msg:'Alternately you could add a "root" option to your TreeStore config.'});
+//                
+//                if (this.store) {
+//                    this.store.setRootNode(root);
+//                }
+//                else {
+//                    this.root = root;
+//                    this.applyCompatOptions();
+//                }
+//            },
+            
+            // Aliased in TreePanel
+//            getRootNode : function(){
+//                deprecate({pkg:'Ext.tree.Panel', member:'getRootNode', alt:'TreeStore.getRootNode'});
+//                return this.store.getRootNode.apply(this.store, arguments);
+//            },
+            
+            getNodeById : function(){
+                deprecate({pkg:'Ext.tree.Panel', member:'getNodeById', alt:'TreeStore.getNodeById',
+                    msg:'If you have a TreePanel reference you can call treePanel.getStore().getNodeById("id").'});
+                
+                return this.store.getNodeById.apply(this.store, arguments);
+            },
+            
+            getChecked : function(){
+                deprecate({pkg:'Ext.tree.Panel', member:'getChecked', alt:'Ext.tree.View.getChecked',
+                    msg:'Note that in 3.x this method returned objects of type TreeNode. In 4.0 it returns standard Records, '+
+                        'so the code that processes the checked items will have to be adjusted accordingly. For compatibility '+
+                        'the record\'s data objects are being returned, as each record\'s data is now decorated with the node '+
+                        'interface so they should match the 3.x API. However your 4.0 code should expect full Record objects '+
+                        'instead and will access the node attributes via Record.get(\'attrName\') or Record.data.attrName.'});
+                
+                var recs = this.getView().getChecked(),
+                    nodes = [];
+                
+                Ext.each(recs, function(rec){
+                    nodes.push(rec.data);
+                });
+                
+                return nodes;
+            }
+        });
+    }
+    
+    if (Ext.data.TreeStore) {
+        Ext.override(Ext.data.TreeStore, {
+            fillNode: function(node, records) {
+                var me = this,
+                    ln = records ? records.length : 0,
+                    i = 0, sortCollection;
+        
+//                if (ln && me.sortOnLoad && !me.remoteSort && me.sorters && me.sorters.items) {
+//                    sortCollection = Ext.create('Ext.util.MixedCollection');
+//                    sortCollection.addAll(records);
+//                    sortCollection.sort(me.sorters.items);
+//                    records = sortCollection.items;
+//                }
+                
+                node.set('loaded', true);
+                for (; i < ln; i++) {
+                    node.appendChild(records[i], undefined, true);
+                }
+                
+                return records;
+            }
+        });
+    }
+    
+    /*-------------------------------------------------------------
+     * SelectionModel
+     *-------------------------------------------------------------*/
+    if (Ext.selection.RowModel) {
+        Ext.apply(Ext.selection.RowModel.prototype, {
+            constructor: Ext.Function.createSequence(Ext.selection.RowModel.prototype.constructor, function() {
+                this.on('select', function(sm, rec, idx){
+                    if (this.events['rowselect']) {
+                        this.fireEvent('rowselect', sm, idx, rec);
+                        deprecate({pkg:'Ext.grid.RowSelectionModel', member:'rowselect', type:'event', alt:'select', 
+                            msg:'Note that the argument order has changed (the index and record/model args have been switched).'})
+                    }
+                });
+                this.on('deselect', function(sm, rec, idx){
+                    if (this.events['rowdeselect']) {
+                        this.fireEvent('rowdeselect', sm, idx, rec);
+                        deprecate({pkg:'Ext.grid.RowSelectionModel', member:'rowdeselect', type:'event', alt:'deselect', 
+                            msg:'Note that the argument order has changed (the index and record/model args have been switched).'})
+                    }
+                });
+            })
+        });
+    }
+    
+    /*-------------------------------------------------------------
+     * Window
+     *-------------------------------------------------------------*/
+    if (Ext.window.Window) {
+        Ext.apply(Ext.window.Window.prototype, {
+            constructor: Ext.Function.createInterceptor(Ext.window.Window.prototype.constructor, function(config) {
+                if (config.closeAction === 'close') {
+                    deprecate({pkg:'Ext.Window', member:'closeAction', type:'config', 
+                        msg:'The default value of "close" is no longer valid. Use "destroy" instead.'});
+                        
+                    delete config.closeAction;
+                    this.closeAction = 'destroy';
+                }
+            })
+        });
+    }
+    
+    /*-------------------------------------------------------------
+     * Forms
+     *-------------------------------------------------------------*/
+    if (Ext.form.Basic) {
+        Ext.apply(Ext.form.Basic.prototype, {
+            add: function() {
+                deprecate({pkg:'Ext.form.Basic', member:'add'});
+                return this;
+            },
+            
+            remove: function(field) {
+                deprecate({pkg:'Ext.form.Basic', member:'remove'});
+                return this;
+            },
+            
+            cleanDestroyed: function() {
+                deprecate({pkg:'Ext.form.Basic', member:'cleanDestroyed'});
+            },
+            
+            render: function() {
+                deprecate({pkg:'Ext.form.Basic', member:'render'});
+                return this;
+            },
+            
+            getFieldValues: function(dirtyOnly) {
+                deprecate({pkg:'Ext.form.Basic', member:'getFieldValues', alt:'getValues'});
+                return this.getValues(false, dirtyOnly);
+            },
+    
+            callFieldMethod: function(fnName, args) {
+                deprecate({pkg:'Ext.form.Basic', member:'callFieldMethod'});
+    
+                args = args || [];
+                this.getFields().each(function(f) {
+                    if (Ext.isFunction(f[fnName])) {
+                        f[fnName].apply(f, args);
+                    }
+                });
+                return this;
+            }
+        });
+    }
+
+    if (Ext.form.Panel) {
+        Ext.apply(Ext.form.Panel.prototype, {
+            monitorValid: false,
+            monitorPoll: 200,
+            
+            initComponent: Ext.Function.createInterceptor(Ext.form.Panel.prototype.initComponent, function() {
+                var me = this,
+                    fieldDefaultsProps = {
+                        hideLabels: 'hideLabel',
+                        labelAlign: 'labelAlign',
+                        labelPad: 'labelPad',
+                        labelSeparator: 'labelSeparator',
+                        labelWidth: 'labelWidth'
+                    },
+                    fieldDefaults = me.fieldDefaults || (me.fieldDefaults = {});
+    
+                Ext.iterate(fieldDefaultsProps, function(from, to) {
+                    if (from in me) {
+                        deprecate({pkg:'Ext.form.Panel', member:from, type:'config', 
+                            msg:'Use the fieldDefaults config object with a "' + to + '" property instead.'});
+                            
+                        fieldDefaults[to] = me[from];
+                    }
+                });
+    
+                if (me.hasOwnProperty('monitorValid')) {
+                    deprecate({pkg:'Ext.form.Panel', member:'monitorValid', alt:'pollForChanges'});
+                }
+                if (me.hasOwnProperty('monitorPoll')) {
+                    deprecate({pkg:'Ext.form.Panel', member:'monitorPoll', alt:'pollInterval'});
+                }
+            }),
+            
+            startMonitoring: function() {
+                deprecate({pkg:'Ext.form.Panel', member:'startMonitoring', alt:'startPolling'});
+                this.startPolling(this.monitorPoll);
+            },
+            
+            stopMonitoring: function() {
+                deprecate({pkg:'Ext.form.Panel', member:'stopMonitoring', alt:'stopPolling'});
+                this.stopPolling();
+            }
+        });
+    }
+
+    if (Ext.form.field.Base) {
+        Ext.apply(Ext.form.field.Base.prototype, {
+            initComponent: Ext.Function.createInterceptor(Ext.form.field.Base.prototype.initComponent, function() {
+                // Many legacy examples modify the default msgTarget on the Ext.form.Field class's prototype; this doesn't
+                // work anymore since Field is a mixin. Copy to Ext.form.field.Base and inform about change and the new
+                // recommended FormPanel.fieldDefaults. Only do this once rather than for every field.
+                var msgTarget = Ext.form.Field.prototype.msgTarget;
+                if (msgTarget && msgTarget !== 'qtip') {
+                    deprecate({pkg:'Ext.form.Field', member:'msgTarget', type:'config', single: true,
+                        msg:'Found an overridden value for Ext.form.Field.prototype.msgTarget -- Ext.form.Field is ' +
+                            'now Ext.form.field.Base; either override msgTarget on Ext.form.field.Base\'s prototype ' +
+                            'or use the new recommended Ext.form.Panel#fieldDefaults object instead.'});
+                    
+                    Ext.form.field.Base.prototype.msgTarget = Ext.form.Field.prototype.msgTarget;
+                }
+            })
+        });
+    }
+
+    if (Ext.form.field.Checkbox) {
+        Ext.apply(Ext.form.field.Checkbox.prototype, {
+            initComponent: Ext.Function.createInterceptor(Ext.form.field.Checkbox.prototype.initComponent, function() {
+                this.addEvents(
+                    /**
+                     * @event check
+                     * Fires when the checkbox is checked or unchecked.
+                     * @deprecated Use the 'change' event instead.
+                     * @param {Ext.form.field.Checkbox} this This checkbox
+                     * @param {Boolean} checked The new checked value
+                     */
+                    'check'
+                );
+                // TODO is there a clean way to throw a deprecation warning when the user listens for the check event?
+            }),
+            
+            onChange: Ext.Function.createInterceptor(Ext.form.field.Checkbox.prototype.onChange, function(newVal, oldVal) {
+                this.fireEvent('check', this, this.checked);
+            })
+        });
+    }
+
+    if (Ext.form.CheckboxGroup) {
+        var cbgSetValue = Ext.form.CheckboxGroup.prototype.setValue;
+    
+        Ext.apply(Ext.form.CheckboxGroup.prototype, {
+    
+            initComponent: Ext.Function.createInterceptor(Ext.form.CheckboxGroup.prototype.initComponent, function() {
+                var me = this,
+                    items = me.items;
+    
+                // Handle the old structure where the 'items' could be a set of column configs
+                if (items && items[0] && 'columnWidth' in items[0] && me.layout !== 'column') {
+                    deprecate({pkg:'Ext.form.CheckboxGroup', type:'config',
+                        msg:'CheckboxGroup and RadioGroup no longer accept implicit column containers in the "items" ' +
+                            'config. If you wish to use a custom column arrangement, set layout:"column" and create ' +
+                            'a standard items structure with container xtypes.'});
+                    me.layout = 'column';
+                    Ext.Array.forEach(items, function(column) {
+                        column.xtype = 'container';
+                        column.defaultType = me.defaultType;
+                    });
+                }
+            }),
+            
+            setValue: function(id, value) {
+                var me = this,
+                    f;
+                if (arguments.length === 1) {
+                    value = id;
+                    if (Ext.isObject(value)) {
+                        cbgSetValue.call(me, value);
+                    }
+                    if (Ext.isString(value)) {
+                        deprecate({pkg:'Ext.form.CheckboxGroup', member:'setValue', 
+                            msg:'The setValue method no longer accepts a String argument. Use the new Object form instead.'});
+                            
+                        me.setValueForItem(value);
+                    }
+                    else if (Ext.isArray(value)) {
+                        deprecate({pkg:'Ext.form.CheckboxGroup', member:'setValue', 
+                            msg:'The setValue method no longer accepts an Array argument. Use the new Object form instead.'});
+                            
+                        me.batchChanges(function() {
+                            Ext.each(value, function(val, idx){
+                                if (Ext.isObject(val) && val.setValue) { // array of checkbox components to be checked
+                                    val.setValue(true);
+                                }
+                                else if (Ext.isString(val)) {
+                                    f = me.getBox(val);
+                                    if (f) {
+                                        f.setValue(true);
+                                    }
+                                }
+                                else { // an array of boolean values
+                                    var item = me.getBoxes()[idx];
+                                    if (item) {
+                                        item.setValue(val);
+                                    }
+                                }
+                            });
+                        });
+                    }
+                }
+                else {
+                    deprecate({pkg:'Ext.form.CheckboxGroup', member:'setValue', 
+                        msg:'The setValue method no longer accepts a two-argument form. Use the new single Object form instead.'});
+                        
+                    f = me.getBox(id);
+                    if (f) {
+                        f.setValue(value);
+                    }
+                }
+    
+                return me;
+            },
+    
+            // private
+            setValueForItem : function(val){
+                deprecate({pkg:'Ext.form.CheckboxGroup', member:'setValueForItem'});
+                var me = this;
+                val = String(val).split(',');
+                me.batchChanges(function() {
+                    me.eachBox(function(item) {
+                        if (val.indexOf(item.inputValue) > -1) {
+                            item.setValue(true);
+                        }
+                    });
+                });
+            },
+    
+            // private
+            getBox : function(id){
+                deprecate({pkg:'Ext.form.CheckboxGroup', member:'getBox'});
+                var box = null;
+                this.eachBox(function(f) {
+                    if (id == f || f.dataIndex == id || f.id == id || f.getName() == id) {
+                        box = f;
+                        return false;
+                    }
+                });
+                return box;
+            }
+        });
+    }
+
+
+    /*-------------------------------------------------------------
+     * CompositeField
+     *-------------------------------------------------------------*/
+    if (Ext.form.FieldContainer) {
+        Ext.define('Ext.form.CompositeField', {
+            extend: 'Ext.form.FieldContainer',
+            alias: 'widget.compositefield',
+            uses: ['Ext.layout.container.HBox'],
+    
+            isComposite: true,
+            combineErrors: true,
+    
+            layout: {
+                type: 'hbox',
+                defaultMargins: {top: 0, right: 5, bottom: 0, left: 0}
+            },
+            baseDefaults: {
+                hideLabel: true
+            },
+    
+            initComponent: function() {
+                deprecate({member:'Ext.form.CompositeField', alt:'Ext.form.FieldContainer',
+                    msg:'What used to be CompositeField has been replaced by the more flexible FieldContainer. '+
+                        'We will reintroduce a true Composite field in a future release.'});
+    
+                this.defaults = Ext.apply({}, this.defaults, this.baseDefaults);
+    
+                this.callParent(arguments);
+            }
+        });
+    }
+    
+    
+    /*-------------------------------------------------------------
+     * ComboBox
+     *-------------------------------------------------------------*/
+    if (Ext.form.field.ComboBox) {
+        Ext.apply(Ext.form.field.ComboBox.prototype, {
+            initComponent: Ext.Function.createInterceptor(Ext.form.field.ComboBox.prototype.initComponent, function() {
+                var me = this,
+                    isDef = Ext.isDefined;
+                
+                // shortcut for configs that just changed names:
+                var remap = function(cfg, alt){
+                    if(isDef(me[cfg])){
+                        deprecate({pkg:'Ext.form.field.ComboBox', member:cfg, type:'config', alt:alt});
+                        me[alt] = me[cfg];
+                        delete me[cfg];
+                    }
+                };
+                remap('listAlign', 'pickerAlign');
+                remap('mode', 'queryMode');
+                remap('triggerClass', 'triggerCls');
+    
+                // shortcut for configs that were moved into the listConfig object:
+                var listConfig = me.listConfig || (me.listConfig = {}),
+                remapToListConfig = function(cfg, alt) {
+                    if(isDef(me[cfg])){
+                        // the defaultListConfig has been applied at this point, so check that this 
+                        // option was not simply the default value applied by the superclass
+                        if(!isDef(me.defaultListConfig[cfg]) || me.defaultListConfig[cfg] !== me[cfg]) {
+                            deprecate({pkg:'Ext.form.field.ComboBox', member:cfg, type:'config', alt:'listConfig.' + alt});
+                            listConfig[alt] = me[cfg];
+                            delete me[cfg];
+                        }
+                    }
+                };
+                remapToListConfig('itemSelector', 'itemSelector');
+                remapToListConfig('listClass', 'cls');
+                remapToListConfig('listWidth', 'width');
+                remapToListConfig('loadingText', 'loadingText');
+                remapToListConfig('minHeight', 'minHeight');
+                remapToListConfig('minListWidth', 'minWidth');
+                remapToListConfig('maxHeight', 'maxHeight');
+                remapToListConfig('resizable', 'resizable');
+                remapToListConfig('selectedClass', 'selectedItemCls');
+                remapToListConfig('shadow', 'shadow');
+    
+                // shortcut for configs that were completely removed with no replacement:
+                var remove = function(cfg){
+                    if(isDef(me[cfg])){
+                        notify({pkg:'Ext.form.field.ComboBox', member:cfg,
+                            msg:'This config is no longer needed and has no replacement -- just remove it from your code.'});
+                        delete me[cfg];
+                    }
+                };
+                remove('autoCreate');
+                remove('clearFilterOnReset');
+                remove('handleHeight');
+                remove('hiddenId');
+                remove('hiddenName');
+                remove('lazyInit');
+                remove('lazyRender');
+                remove('title');
+                
+                // non-standard mappings:
+                if(isDef(me.tpl)){
+                    deprecate({pkg:'Ext.form.field.ComboBox', member:'tpl', type:'config', alt:'getInnerTpl (method)',
+                        msg:'There is no config for providing the combo\'s item template now. Instead, you should override '+
+                            'the "getInnerTpl" method to provide whatever logic is required and return the template string.'});
+                    
+                    // make sure we are returning a template string and not an XTemplate instance:
+                    var tpl = me.tpl.html ? me.tpl.html : me.tpl;
+                    
+                    me.getInnerTpl = function(){
+                        return tpl;
+                    };
+                    delete me.tpl;
+                }
+            })
+        });
+    }
+    
+    /*-------------------------------------------------------------
+     * Slider
+     *-------------------------------------------------------------*/
+    if (Ext.slider.Multi) {
+        Ext.apply(Ext.slider.Multi.prototype, {
+            initComponent: Ext.Function.createInterceptor(Ext.slider.Multi.prototype.initComponent, function() {
+                if (this.plugins) {
+                    Ext.each(this.plugins, function(p){
+                        if (p.getText) {
+                            deprecate({pkg:'Ext.Slider', msg:'In 3.x the Ext.slider.Tip plugin was required to provide custom slider tip text. '+
+                                'In 4.0 you should instead supply the tipText config directly.'});
+                                
+                            this.tipText = p.getText;
+                            Ext.Array.remove(this.plugins, p);
+                            return;
+                        }
+                    }, this); 
+                }
+            })
+        });
+    }
+
+    /*-------------------------------------------------------------
+     * Store
+     *-------------------------------------------------------------*/
+    if (Ext.data.Store) {
+        Ext.apply(Ext.data.AbstractStore.prototype, {
+            constructor: Ext.Function.createInterceptor(Ext.data.AbstractStore.prototype.constructor, function(config) {
+                if (this.$className == 'Ext.data.NodeStore') {
+                    return;
+                }
+                if (config.url) {
+                    deprecate({pkg:'Ext.data.Store', member:'url', type:'config', alt:'proxy.url',
+                        msg:'The store\'s "url" config should now be passed as a config to a valid remote-style proxy.'});
+                            
+                    if (!config.proxy) {
+                        deprecate({pkg:'Ext.data.Store', msg:'A store url was specified with no proxy config. Implcitily creating an AjaxProxy with that url. '+
+                            'Please see the header docs for Ext.data.Store for details on properly setting up your data components.'});
+                        
+                        config.proxy = {
+                            type: 'ajax',
+                            url: config.url
+                        };
+                        delete config.url;
+                        
+                        if (config.reader) {
+                            config.proxy.reader = config.reader;
+                            delete config.reader;
+                            deprecate({pkg:'Ext.data.Store', member:'reader', type:'config', msg:'As part of creating an implicit AjaxProxy for compatibility, '+
+                                'the store\'s existing reader config has also been moved to the proxy. Note that the reader config should no longer be passed '+
+                                'directly as a store config, but should be specified on the proxy instead.'});
+                        }
+                    }
+                }
+                else if (!this.model && !config.model){
+                    // there is no model set, so we need to try the various possible configurations supported by 3.x
+                    // and hopefully find something we can convert into an implicit model
+                    var fields;
+                    if (config.fields) {
+                        // shorthand store classes like ArrayStore and XmlStore support fields directly on the store config
+                        fields = config.fields;
+                        delete config.fields;
+                        // this is required to be done, but skip the warning. In some cases TreeStore internally adds this. The bigger picture
+                        // issue of configuring the store correctly will already be covered by other warnings.
+//                        deprecate({pkg:'Ext.data.Store', msg:'Passing a "fields" config directly on the store\'s config is no longer supported. '+
+//                            'Instead you should configure a model and pass it as the store\'s "model" config. ' +
+//                            'Please see the header docs for Ext.data.Store for details on properly setting up your data components.'});
+                    }
+                    else if (config.reader) {
+                        if (config.reader.model) {
+                            // the compat warning for this case is displayed below in the Ext.data.Reader override where
+                            // reader.model is set. This code is just here to make it work properly.
+                            config.model = config.reader.model;
+                            delete this.fields;
+                            this.implicitModel = true;
+                            return true;
+                        }
+                        else if (config.reader.fields) {
+                            // standard stores typically get fields from the reader config
+                            fields = config.reader.fields;
+                            delete config.reader.fields;
+                            deprecate({pkg:'Ext.data.Store', msg:'Passing a "fields" config via the store\'s reader config is no longer supported. '+
+                                'Instead you should configure a model and pass it as the store\'s "model" config. ' +
+                                'Please see the header docs for Ext.data.Store for details on properly setting up your data components.'});
+                        }
+                        else {
+                            breaking({pkg:'Ext.data.Store', msg:'No valid model or field configuration could be found '+
+                                'so this store could not be constructed. Please see the header docs for Ext.data.Store for '+
+                                'details on properly setting up your data components.'});
+                            
+                            return false;
+                        }
+                        if (config.proxy) {
+                            config.proxy.reader = config.reader;
+                            delete config.reader;
+                            deprecate({pkg:'Ext.data.Store', member:'reader', type:'config', msg:'The reader config should now be specified on the '+
+                                'configured proxy rather than directly on the store.'});
+                        }
+                    }
+                    else {
+                        // we should never get here, but just in case
+                        breaking({pkg:'Ext.data.Store', msg: 'A store was specified with no model, url, or fields configured. '+
+                            'Please see the header docs for Ext.data.Store for details on properly setting up your data components.'});
+                        
+                        return false;
+                    }
+    
+                    var pn = config.paramNames;                
+                    if (config.proxy && pn) {
+                        Ext.apply(config.proxy, {
+                            startParam: pn.start || 'start',
+                            limitParam: pn.limit || 'limit',
+                            sortParam : pn.sort || 'sort',
+                            directionParam  : pn.dir || 'dir'
+                        });
+                        deprecate({pkg:'Ext.data.Store', member:'paramNames', msg:'This is now split out into individual configs at the proxy '+
+                            'level (e.g., paramNames.start == proxy.startParam). Set each config directly on the proxy as needed.'})
+                    }
+                    
+                    var id = 'Ext.data.Store.ImplicitModel-' + (config.storeId || config.id || Ext.id());
+                    notify({pkg:'Ext.data.Store', msg:'Registering implicit model ' + id + '. Please update your code to create a model explicitly.'});
+                    
+                    config.model = Ext.define(id, {
+                        extend: 'Ext.data.Model',
+                        fields: fields,
+                        proxy: config.proxy
+                    });
+                    this.implicitModel = true;
+                }
+            })
+        });
+        
+        Ext.apply(Ext.data.Store.prototype, {
+            constructor: Ext.Function.createInterceptor(Ext.data.Store.prototype.constructor, function(config) {
+                if (config.data && Ext.isObject(config.data)) {
+                // Seems to be still supported officially for now
+//                    deprecate({pkg:'Ext.data.Store', member:'data<Object>', type:'config', alt:'data<Array>',
+//                        msg:'Passing inline data to store\'s constructor as an object is no longer supported. Pass a '+
+//                            'plain array of record data or use one of the standard proxy configurations for loading data.'});
+                    
+                    if(config.root){
+                        this.inlineData = config.data[config.root];
+                        delete config.data;
+                    }
+//                    else {
+//                        breaking({pkg:'Ext.data.Store', 
+//                            msg:'Passing inline data as an object to the Store constructor without specifying a root property is not supported.'});
+//                    }
+                }
+                if (config.sortInfo) {
+                    deprecate({pkg:'Ext.data.Store', member:'sortInfo', type:'config', alt:'sorters'});
+                    config.sorters = [{
+                        property: config.sortInfo.field,
+                        direction: config.sortInfo.direction
+                    }];
+                }
+                if (config.autoSave) {
+                    deprecate({pkg:'Ext.data.Store', member:'autoSave', type:'config', alt:'autoSync'});
+                    this.autoSync = config.autoSave;
+                    delete config.autoSave;
+                }
+            }),
+            
+            setDefaultSort : function(field, dir) {
+                deprecate({pkg:'Ext.data.Store', member:'setDefaultSort', alt:'sorters (config)',
+                    msg:'Either add the default sort via the "sorters" config or by adding it to the "sorters" property after the store is created. '+
+                        'See the Ext.data.Store header docs for details on configuring sorters.'});
+                
+                this.sorters = new Ext.util.MixedCollection();
+                this.sorters.add(new Ext.util.Sorter({
+                    property: field,
+                    direction: dir ? dir.toUpperCase() : 'ASC'
+                }));
+            },
+            
+            save: function() {
+                deprecate({pkg:'Ext.data.Store', member:'save', alt:'sync'});
+                return this.sync.apply(this, arguments);
+            }
+        });
+        
+        Ext.Compat.bindProperty({owner:Ext.data.Store, name:'recordType',
+            getter: function(){
+                return this.model;
+            },
+            getterMsg: function(){
+                deprecate({pkg:'Ext.data.Store', member:'recordType', type:'property', alt:'model'});
+            }
+        });
+    }
+    
+    if (Ext.data.JsonStore) {
+        // TODO: Move this override into the lib?
+        Ext.apply(Ext.data.JsonStore.prototype, {
+            constructor: function(config) {
+                config = config || {};
+                config.proxy = config.proxy || {};
+                
+                Ext.applyIf(config.proxy, {
+                    url   : config.url,
+                    type  : 'ajax',
+                    writer: 'json',
+                    reader: new Ext.data.JsonReader(config)
+                });
+                Ext.data.JsonStore.superclass.constructor.call(this, config);
+            }
+        });
+    }
+    
+    Ext.data.GroupingStore = function(config) {
+        deprecate({pkg:'Ext.data.GroupingStore', msg:'GroupingStore no longer exists as a separate class. Instead just '+
+            'create a standard GridPanel and include the Grouping feature, e.g. "features: Ext.create("Ext.grid.feature.Grouping", {...})'});
+        
+        return Ext.create('Ext.data.Store', config);
+    }
+    
+    /*-------------------------------------------------------------
+     * Record
+     *-------------------------------------------------------------*/
+    if (Ext.data.Record) {
+        Ext.data.Record.create = function(o){
+            deprecate({pkg:'Ext.data.Record', member:'create', msg:'There is no longer any need to statically define records. '+
+                'You can simply define a new Model configured with the necessary fields via Ext.define, extending Ext.data.Model.'});
+                
+            var f = Ext.extend(Ext.data.Record, {});
+            var p = f.prototype;
+            p.fields = new Ext.util.MixedCollection(false, function(field){
+                return field.name;
+            });
+            for(var i = 0, len = o.length; i < len; i++){
+                p.fields.add(new Ext.data.Field(o[i]));
+            }
+            f.getField = function(name){
+                return p.fields.get(name);
+            };
+            return f;
+        };
+    }
+    
+    /*-------------------------------------------------------------
+     * Readers
+     *-------------------------------------------------------------*/
+    if (Ext.data.JsonReader) {
+        Ext.data.JsonReader.override({
+            //TODO: seems to be a bug in the class system that this is required for the Reader override 
+            constructor: function(){
+                this.callParent(arguments);
+            }
+        });
+    }
+    
+    if (Ext.data.Reader) {
+        Ext.apply(Ext.data.Reader.prototype, {
+            constructor: function(config, recordType) {
+                Ext.apply(this, config || {});
+        
+                if (config.fields) {
+                    // this will get converted to an implicit model in the store constructor
+                    deprecate({pkg:'Ext.data.Reader', member:'fields', type:'config',
+                        msg:'The fields config is no longer supported. Please refer to the '+
+                            'Ext.data.Store header docs for the proper way to set up your data components.'});
+                }
+                if (recordType) {
+                    // this will get converted to an implicit model in the store constructor
+                    config.fields = recordType;
+                    deprecate({pkg:'Ext.data.Reader', member:'recordType', type:'arg',
+                        msg:'The recordType argument to the Reader constructor is no longer supported. Please refer to the '+
+                            'Ext.data.Store header docs for the proper way to set up your data components.'});
+                }
+                
+                if (config.model) {
+                    this.model = Ext.ModelManager.getModel(config.model);
+                }
+                else if (config.fields) {
+                    this.model = Ext.define('Ext.data.Store.ImplicitModel-' + Ext.id(), {
+                        extend: 'Ext.data.Model',
+                        fields: config.fields
+                    });
+                }
+                // This is not always true, e.g. with inline array data:
+//                else {
+//                    breaking({pkg:'Ext.data.Reader', 
+//                        msg:'No valid model or field configuration could be found so this reader could not be constructed.'});
+//                }
+                
+                if (this.model) {
+                    this.buildExtractors();
+                }
+            }
+        });
+    }
+    
+    if (Ext.data.XmlReader) {
+        Ext.apply(Ext.data.XmlReader.prototype, {
+            // FYI, this entire constructor is now deprecated because all behavior is now in the superclass constructor
+            constructor: function(config, recordType) {
+                config = config || {};
+                if (config.idPath) {
+                    config.idProperty = config.idPath;
+                    deprecate({pkg:'Ext.data.XmlReader', member:'idPath', type:'config', alt:'idProperty'});
+                }
+                if (config.id) {
+                    config.idProperty = config.id;
+                    deprecate({pkg:'Ext.data.XmlReader', member:'id', type:'config', alt:'idProperty'});
+                }
+                if (config.success) {
+                    config.successProperty = config.success;
+                    deprecate({pkg:'Ext.data.XmlReader', member:'success', type:'config', alt:'successProperty'});
+                }
+                // make sure we pass arguments in case the deprecated recordType arg is included
+                Ext.data.XmlReader.superclass.constructor.apply(this, arguments);
+            }
+        });
+    }
+    
+    /*-------------------------------------------------------------
+     * Proxies
+     *-------------------------------------------------------------*/
+    if (Ext.data.ServerProxy) {
+        Ext.apply(Ext.data.ServerProxy.prototype, {
+            getParams: Ext.Function.createInterceptor(Ext.data.ServerProxy.prototype.getParams, function(params, operation) {
+                if (this.sortParam && operation.sorters && operation.sorters.length > 0) {
+                    if (!this.simpleSortMode) {
+                        this.simpleSortMode = true;
+                        Ext.Compat.warn('ServerProxy now supports multiple sort, so if any sort options are specified '+
+                            'the sort params get JSON-encoded by default. Unless you have specifically coded for this on '+
+                            'the server it will not work and you should set "simpleSortMode = true" on the proxy. Since '+
+                            'this was not supported in Ext 3 and you are passing a sort param, simple sorting is assumed '+
+                            'and has been set automatically, but you should reexamine this code as you migrate to Ext 4. '+
+                            'For now just set "simpleSortMode: true" on your proxy to dismiss this warning.');
+                    }
+                }
+            })
+        });
+    }
+    
+    if (Ext.data.MemoryProxy) {
+        Ext.apply(Ext.data.MemoryProxy.prototype, {
+            read: Ext.Function.createInterceptor(Ext.data.MemoryProxy.prototype.read, function(op, cb, scope) {
+                if (this.doRequest) {
+                    deprecate({pkg:'Ext.data.MemoryProxy', member:'doRequest', alt: 'read',
+                        msg:'ClientProxy subclasses no longer implement doRequest.'});
+                        
+                    var params = {
+                        start: op.start, 
+                        limit: op.limit
+                    };
+                    if (op.sorters && op.sorters.length > 0) {
+                        var idx = op.sorters.length-1; // take the last sort if multiple
+                        params[this.sortParam || 'sort'] = op.sorters[idx].property;
+                        params[this.directionParam || 'dir'] = op.sorters[idx].direction;
+                    }
+                    if (op.filters && op.filters.length > 0) {
+                        // not sure if we can compat this
+                        //params[this.filterParam || 'filter'] = ??;
+                    }
+                    this.doRequest(op.action, op.getRecords(), params, this.getReader(), function(result, options){
+                        Ext.apply(op, {
+                            resultSet: result
+                        });
+                        op.setCompleted();
+                        op.setSuccessful();
+                        Ext.callback(cb, scope || this, [op]);
+                    }, scope);
+                    
+                    return false; // skip original read logic
+                }
+            })
+        });
+    }
+    
+    /*-------------------------------------------------------------
+     * Model
+     *-------------------------------------------------------------*/
+    if (Ext.data.Model) {
+        Ext.apply(Ext.data.Model.prototype, {
+            constructor: Ext.Function.createInterceptor(Ext.data.Model.prototype.constructor, function(data, id) {
+                var newData = {};
+                if (Ext.isArray(data)){
+                    // Support for loading an array, needed for calling loadData on an ArrayStore
+                    var fields = this.fields.items,
+                        length = fields.length,
+                        field, name, 
+                        i = 0, 
+                        newData = {};
+                        
+                    for (; i < length; i++) {
+                        field = fields[i];
+                        name  = field.name;
+                        newData[name] = data[i];
+                    }
+                    data = newData;
+                }
+            }),
+            
+            initComponent: Ext.Function.createInterceptor(Ext.data.Model.prototype.initComponent, function() {
+                // Needed to bootstrap 3.x stores that use id. Once converted to a model this will
+                // not be needed, so there's no need for a separate warning, just a temp shim.
+                this.id = this.internalId;
+            })
+        });
+    }
+    
+    /*-------------------------------------------------------------
+     * Other Ext.data.* stuff
+     *-------------------------------------------------------------*/
+    if (Ext.data.Operation) {
+        Ext.apply(Ext.data.Operation.prototype, {
+            markStarted: function() {
+                deprecate({pkg:'Ext.data.Operation', member:'markStarted', alt:'setStarted'});
+                return this.setStarted();
+            },
+            markCompleted: function() {
+                deprecate({pkg:'Ext.data.Operation', member:'markCompleted', alt:'setCompleted'});
+                return this.setCompleted();
+            },
+            markSuccessful: function() {
+                deprecate({pkg:'Ext.data.Operation', member:'markSuccessful', alt:'setSuccessful'});
+                return this.setSuccessful();
+            },
+            markException: function() {
+                deprecate({pkg:'Ext.data.Operation', member:'markException', alt:'setException'});
+                return this.setException();
+            }
+        });
+    }
+    
+    /*-------------------------------------------------------------
+     * Tooltip
+     *-------------------------------------------------------------*/
+    if (Ext.tip.ToolTip) {
+        Ext.apply(Ext.tip.ToolTip.prototype, {
+            initTarget: function(target) {
+                deprecate({pkg:'Ext.ToolTip', member:'initTarget', alt:'setTarget'});
+                return this.setTarget(target);
+            }
+        });
+    }
+    
+    if (Ext.TaskManager) {
+        Ext.TaskMgr = function() {
+            deprecate({pkg:'Ext.TaskMgr', alt:'Ext.TaskManager'});
+            return Ext.TaskManager;
+        }
+        Ext.TaskMgr.start = Ext.TaskManager.start;
+        Ext.TaskMgr.stop = Ext.TaskManager.stop;
+        Ext.TaskMgr.stopAll = Ext.TaskManager.stopAll;
+    }
+    
+})();
+
+//
+// TODO: Remove this once the plugin is integrated into the lib
+//
+Ext.define('Ext.ux.PreviewPlugin', {
+    extend: 'Ext.AbstractPlugin',
+    alias: 'plugin.preview',
+    requires: ['Ext.grid.feature.RowBody', 'Ext.grid.feature.RowWrap'],
+    
+    // private, css class to use to hide the body
+    hideBodyCls: 'x-grid-row-body-hidden',
+    
+    /**
+     * @cfg {String} bodyField
+     * Field to display in the preview. Must me a field within the Model definition
+     * that the store is using.
+     */
+    bodyField: '',
+    
+    /**
+     * @cfg {Boolean} previewExpanded
+     */
+    previewExpanded: true,
+    
+    constructor: function(config) {
+        this.callParent(arguments);
+        var bodyField   = this.bodyField,
+            hideBodyCls = this.hideBodyCls,
+            section     = this.getCmp();
+        
+        section.previewExpanded = this.previewExpanded;
+        section.features = [{
+            ftype: 'rowbody',
+            getAdditionalData: function(data, idx, record, orig, view) {
+                var o = Ext.grid.feature.RowBody.prototype.getAdditionalData.apply(this, arguments);
+                Ext.apply(o, {
+                    rowBody: data[bodyField],
+                    rowBodyCls: section.previewExpanded ? '' : hideBodyCls
+                });
+                return o;
+            }
+        },{
+            ftype: 'rowwrap'
+        }];
+    },
+    
+    /**
+     * Toggle between the preview being expanded/hidden
+     * @param {Boolean} expanded Pass true to expand the record and false to not show the preview.
+     */
+    toggleExpanded: function(expanded) {
+        var view = this.getCmp();
+        this.previewExpanded = view.previewExpanded = expanded;
+        view.refresh();
+    }
+});
diff --git a/js/lib/compat/ext3-core-compat.js b/js/lib/compat/ext3-core-compat.js
new file mode 100644
index 0000000..d18c799
--- /dev/null
+++ b/js/lib/compat/ext3-core-compat.js
@@ -0,0 +1,735 @@
+
+/*========================================================================
+ * 
+ * This section contains stuff that should be in Ext4, or stuff that
+ * is up for discussion. It should be removed prior to Ext 4 final.
+ *
+ *========================================================================*/
+
+// Beefed up getDockedItems to make it easier to find specific items like top toolbars only
+//Ext.apply(Ext.panel.AbstractPanel.prototype, {
+//    /**
+//     * Retrieve an array of all currently docked components, optionally matching a
+//     * specific docked side and/or component type.
+//     * @param {Array} options
+//     * @return {Array} An array of matching components
+//     */
+//    // ex: {dock: 'top', alias: 'widget.toolbar'}
+//    getDockedItems : function(options) {
+//        var me = this,
+//            items = [];
+//        
+//        if (me.dockedItems && me.dockedItems.items.length) {
+//            items = me.dockedItems.items.slice();
+//        }
+//        
+//        if (options && items.length > 0) {
+//            var i = 0,
+//                ln = items.length,
+//                matches = [],
+//                item;
+//            
+//            for (; i < ln; i++) {
+//                item = items[i];
+//                if (options.dock && options.dock !== item.dock){
+//                    continue;
+//                }
+//                if (options.alias && options.alias !== item.alias){
+//                    continue;
+//                }
+//                matches.push(item);
+//            }
+//            return matches;
+//        }
+//        return items;
+//    }
+//});
+
+
+/*========================================================================
+ * 
+ * This section contains the Ext.Compat object definition.
+ * Also shared by ext3-compat.js.
+ *
+ *========================================================================*/
+
+Ext.Compat = function(){
+    // private
+    var notificationCache = [],
+    
+    // private
+    getMsg = function(o, tag){
+        var version = o.version ? o.version : '4.0',
+            pkg = o.pkg ? '[' + o.pkg + ']': '',
+            member = o.member ? ' ' + o.member : '',
+            type = o.type ? ' (' + o.type + ')' : '',
+            use = o.type === 'event' ? ' Handle ' : ' Use ',
+            alt = o.alt ? use + o.alt + ' instead.' : '',
+            msg = o.msg ? ' ' + o.msg : '';
+            
+        return '[' + tag + '][' + version + ']' + pkg + member + type + ':' + alt + msg;
+    },
+    
+    // private    
+    showMsg = function(msg, method, single){
+        var isNew = Ext.Array.indexOf(notificationCache, msg) == -1;
+        if (isNew || !single) {
+            Ext.Compat[method](msg);
+            if (single) {
+                notificationCache.push(msg);
+            }
+        }
+    },
+    
+    // private
+    consoleOut = function(type, msg){
+        if (Ext.Compat.silent === true) {
+            return;
+        }
+        if (!Ext.isDefined(Ext.global.console)){
+            if (type === 'error' && Ext.Array.indexOf(notificationCache, '__consoleMsg') == -1) {
+                notificationCache.push('__consoleMsg');
+                alert('You have Ext compatibility errors that must be resolved. Please enable your browser\'s console '+
+                    '(or switch to a console-capable browser) to see complete error details.');
+            }
+            return;
+        }
+        var con = Ext.global.console;
+        
+        if(Ext.Array.indexOf(notificationCache, '__initMsg') == -1){
+            notificationCache.push('__initMsg');
+            con.info('#### Ext 3 compatibility mode active. See the Migration Guide included with the Ext 4 download for details.');
+            if(!Ext.Compat.showErrors){
+                var errMsg = '#### Set "Ext.Compat.showErrors = true;" in your code to include a stack trace with each warning.';
+                con.info(con.firebug ? errMsg : errMsg + ' (Firebug required)');
+            }
+            con.log(' ');
+        }
+        con[Ext.Compat.showErrors ? 'error' : type](msg);
+    };
+    
+    return {
+        /**
+         * False to display console messages (default), true to skip displaying console messages. Useful
+         * when running an app in compatibility mode for end users prior to completing full migration to Ext 4.
+         */
+        silent: false,
+        /**
+         * True to ignore informational messages and show only warnings, false to show all messages (default)
+         */
+        ignoreInfo: false,
+        /**
+         * True to display messages via console.error instead of console.warn/info (defaults to false). When 
+         * viewing the console in Firebug in particular this can be a useful option to enable as Firebug will
+         * capture the stack trace and include it in the displayed error object, which can make finding the 
+         * source of warnings much easier in most cases. In other browsers enabling this option will simply 
+         * display the message as an error cosmetically but won't provide any additional benefit. 
+         */
+        showErrors: false,
+        
+        /**
+         * Wrapper for the browser console.warn() method that checks for the existence of console
+         * and also honors the Ext.Compat.silent flag. Should be used for any breaking change
+         * or deprecation warnings.
+         * @param {String} msg The console message to log
+         */
+        warn: function(msg) {
+            consoleOut('warn', msg);
+        },
+        
+        /**
+         * Wrapper for the browser console.info() method that checks for the existence of console
+         * and also honors the Ext.Compat.silent flag. Should be used for informational
+         * messages or non-breaking changes that modify existing behavior.
+         * @param {String} msg The console message to log
+         */
+        info: function(msg){
+            if(this.ignoreInfo !== true){
+                consoleOut('info', msg);
+            }
+        },
+        
+        /**
+         * This method should generally be eschewed in favor of Ext.compat.deprecate. However it might be necessary
+         * to log a console error in certain cases, e.g. when backwards-compatibility is only conditionally possible.
+         * @param {String} msg The console message to log
+         */
+        error: function(msg){
+            consoleOut('error', msg);
+        },
+        
+        /**
+         * Display a standard deprecation message. The method takes a single object argument that contains
+         * properties as described below. All properties are optional, although typically the pkg and member would be 
+         * specified along with a descriptive message.
+         * @param {String} pkg (optional) The package ("Core") or component ("Ext.grid.Grid") being referenced (defaults to '')
+         * @param {String} member (optional) The member being deprecated (defaults to '')
+         * @param {String} alt (optional) An alternate member that is replacing the deprecated member (defaults to '')
+         * @param {String} type (optional) The member type (method, config, property, xtype, etc.) Defaults to 'method', 
+         * which does not get displayed -- any other specified type will be displayed in the output.
+         * @param {String} msg (optional) An additional message to provide more explanation about the change (defaults to '')
+         * @param {String} tag (optional) The first bracketed item in the output that describes the message type (defaults to 'DEPRECATED')
+         * @param {Boolean} single (optional) True to limit each unique message to being displayed only one time (defaults to false,
+         * meaning the same message can be displayed multiple times). Usually it's good to set single:true for logging issues 
+         * that can happen repetitively with the same root cause (e.g., the same issue within each row of a grid).
+         */
+        deprecate: function(o) {
+            var msg = getMsg(o, o.tag || 'DEPRECATED');
+            showMsg(msg, 'warn', o.single);
+        },
+        
+        /**
+         * Display a console error with the special tag "BREAKING" to signify a breaking change that cannot be
+         * resolved in the compatibility layer. These issues generally must be resolved immediately before the
+         * compatibility layer be successfully applied. The method takes a single object argument that contains
+         * properties as described below. All properties are optional, although typically the pkg and member would be 
+         * specified along with a descriptive message.
+         * @param {String} msg (optional) A message to provide more explanation about the breaking change (defaults to '')
+         * @param {String} pkg (optional) The package ("Core") or component ("Ext.grid.Grid") being referenced (defaults to '')
+         * @param {String} member (optional) The member being referenced in relation to the change (defaults to '')
+         * @param {String} type (optional) The member type (method, config, property, xtype, etc.) Defaults to 'method', 
+         * which does not get displayed -- any other specified type will be displayed in the output.
+         * @param {String} tag (optional) The first bracketed item in the output that describes the message type (defaults to 'BREAKING')
+         * @param {Boolean} single (optional) True to limit each unique message to being displayed only one time (defaults to false,
+         * meaning the same message can be displayed multiple times). Usually it's good to set single:true for logging issues 
+         * that can happen repetitively with the same root cause (e.g., the same issue within each row of a grid).
+         */
+        breaking: function(o){
+            o.msg = (o.msg || '') + ' This is a breaking change that cannot be resolved in the compatibility layer!';
+            var msg = getMsg(o, o.tag || 'BREAKING');
+            showMsg(msg, 'error', o.single);
+        },
+        
+        /**
+         * Display a freeform notification that a compatibility change exists. This would be used, for example,
+         * if an existing method has changed its default behavior, or has a different argument signature. 
+         * The method takes either a string message or an object argument that contains properties as described below.
+         * If a member is being deprecated you might consider using <tt>deprecate</tt> instead.
+         * @param {String} msg A message explaining the change
+         * @param {String} pkg (optional) The package ("Core") or component ("Ext.grid.Grid") being referenced (defaults to '')
+         * @param {String} member (optional) The member being referenced in relation to the change (defaults to '')
+         * @param {String} type (optional) The member type (method, config, property, xtype, etc.) Defaults to 'method', 
+         * which does not get displayed -- any other specified type will be displayed in the output.
+         * @param {String} tag (optional) The first bracketed item in the output that describes the message type (defaults to 'INFO')
+         * @param {Boolean} single (optional) True to limit each unique message to being displayed only one time (defaults to false,
+         * meaning the same message can be displayed multiple times). Usually it's good to set single:true for logging issues 
+         * that can happen repetitively with the same root cause (e.g., the same issue within each row of a grid).
+         */
+        notify: function(o) {
+            if(Ext.isString(o)){
+                o = {msg:o};
+            }
+            if(o.msg){
+                var msg = getMsg(o, o.tag || 'INFO'),
+                    single = Ext.isDefined(o.single) ? o.single : !this.showErrors;
+                
+                showMsg(msg, 'info', single);
+            }
+        },
+        
+        /*
+         * Currently experimental
+         */
+        bindProperty: function(options) {
+            var localValue,
+                o = options;
+            
+            if (o.owner.__defineGetter__) {
+                o.owner.__defineGetter__(o.name, function(){
+                    if (o.getterMsg) {
+                        o.getterMsg();
+                    }
+                    return localValue ? localValue : (o.getter ? o.getter() : o.defaultValue);
+                });
+                o.owner.__defineSetter__(o.name, function(val){
+                    if (o.setterMsg) {
+                        o.setterMsg();
+                    }
+                    if (o.setter) {
+                        o.setter(val);
+                    }
+                    else {
+                        o.owner[o.name] = val;
+                    }
+                    localValue = val;
+                });
+            }
+            else {
+                o.owner[o.name] = o.defaultValue;
+            }
+        }
+    };
+}();
+
+
+/*========================================================================
+ * 
+ * This section contains compatibility overrides for Ext Core
+ *
+ *========================================================================*/
+
+(function(){
+    var compat = Ext.Compat,
+        deprecate = Ext.bind(compat.deprecate, compat),
+        notify = Ext.bind(compat.notify, compat),
+        breaking = Ext.bind(compat.breaking, compat),
+        bindProperty = Ext.bind(compat.bindProperty, compat);
+    
+    /*-------------------------------------------------------------
+     * Ext
+     *-------------------------------------------------------------*/
+    Ext.apply(Ext, {
+        createDelegate: function() {
+            deprecate({pkg:'Ext', member:'createDelegate', alt:'Ext.bind'});
+            return Ext.Function.bind.apply(Ext.Function, arguments);
+        },
+        createCallback: function() {
+            deprecate({pkg:'Ext', member:'createCallback', alt:'Ext.pass'});
+            return Ext.Function.pass.apply(Ext.Function, arguments);
+        },
+        createInterceptor: function() {
+            deprecate({pkg:'Ext', member:'createInterceptor', alt:'Ext.Function.createInterceptor'});
+            return Ext.Function.createInterceptor.apply(Ext.Function, arguments);
+        },
+        createSequence: function() {
+            deprecate({pkg:'Ext', member:'createSequence', alt:'Ext.Function.createSequence'});
+            return Ext.Function.createSequence.apply(Ext.Function, arguments);
+        },
+        // This is still aliased in Ext.Array
+//        toArray: function() {
+//            deprecate({pkg:'Ext', member:'toArray', alt:'Ext.Array.toArray'});
+//            return Ext.Array.toArray.apply(Ext.Array, arguments);
+//        },
+        pluck: function(arr, prop) {
+            deprecate({pkg:'Ext', member:'pluck', alt:'Ext.Array.pluck'});
+            return Ext.Array.pluck.apply(Ext.Array, arguments);
+        }
+        
+        // TODO: Verify if this is really deprecated or not: 
+//        iterate: function() {
+//            Ext.each.apply(this, arguments);
+//            deprecate({pkg:'Ext', member:'iterate', alt:'each', 
+//                msg:'Ext.each is now a wrapper for both Ext.Array.forEach and Ext.Object.each.'});
+//        }
+    });
+    
+    /*-------------------------------------------------------------
+     * Ext properties
+     *-------------------------------------------------------------*/
+    var versionObj = Ext.getVersion('extjs');
+            
+    bindProperty({owner:Ext, name:'version', defaultValue:versionObj.version,
+        getterMsg: function(){
+            deprecate({pkg:'Ext', member:'version', type:'property', alt:'getVersion (method)',
+                msg:'Ext.getVersion() takes one argument which is the package name to look up. This will be defaulted '+
+                    'to "extjs" but could also be "core" or "touch". Note also that getVersion returns an object. For the '+
+                    'simple string representation use the Ext.getVersion("extjs").version property.'});
+        }
+    });
+    
+    // For no logical reason this one causes Firebug to go into an infinite loop. It makes no sense...
+//    bindProperty({owner:Ext, name:'versionDetail', defaultValue: {
+//            major: versionObj.major,
+//            minor: versionObj.minor,
+//            patch: versionObj.patch
+//        },
+//        getterMsg: function(){
+//            deprecate({pkg:'Ext', member:'versionDetail', type:'property', alt:'getVersion (method)',
+//                msg:'Ext.getVersion() takes one argument which is the package name to look up. This will be defaulted '+
+//                    'to "extjs" but could also be "core" or "touch". Note also that getVersion returns an object. For the '+
+//                    'version detail representation use Ext.getVersion("extjs") and inspect the properties major, minor and patch.'});
+//        }
+//    });
+    
+    /*-------------------------------------------------------------
+     * Ext.lib.Dom
+     *-------------------------------------------------------------*/
+    // Helper function for aliasing Ext.lib.Dom
+    var aliasDom = function(name, args){
+        deprecate({pkg:'Ext.lib.Dom', member:name, alt:'Ext.core.Element.'+name});
+        return Ext.core.Element[name].apply(Ext.core.Element, args);
+    };
+    Ext.lib = {};
+    Ext.lib.Dom = {
+        isAncestor : function(p, c) {
+            return aliasDom('isAncestor', arguments);
+        },
+        getViewWidth : function(full) {
+            return aliasDom('getViewWidth', arguments);
+        },
+        getViewHeight : function(full) {
+            return aliasDom('getViewHeight', arguments);
+        },
+        getDocumentHeight: function() {
+            return aliasDom('getDocumentHeight', arguments);
+        },
+        getDocumentWidth: function() {
+            return aliasDom('getDocumentWidth', arguments);
+        },
+        getViewportHeight: function(){
+            return aliasDom('getViewportHeight', arguments);
+        },
+        getViewportWidth : function() {
+            return aliasDom('getViewportWidth', arguments);
+        },
+        getY : function(el) {
+            return aliasDom('getY', arguments);
+        },
+        getX : function(el) {
+            return aliasDom('getX', arguments);
+        },
+        getXY : function(el) {
+            return aliasDom('getXY', arguments);
+        },
+        setXY : function(el, xy) {
+            aliasDom('setXY', arguments);
+        },
+        setX : function(el, x) {
+            aliasDom('setX', arguments);
+        },
+        setY : function(el, y) {
+            aliasDom('setY', arguments);
+        }
+    };
+    
+    /*-------------------------------------------------------------
+     * Ext.lib.Event
+     *-------------------------------------------------------------*/
+    // Helper function for aliasing Ext.lib.Event
+    var aliasEvent = function(e, name, args){
+        deprecate({pkg:'Ext.lib.Event', member:name, alt:'<event>.'+name});
+        return e[name].apply(e, args);
+    };
+    Ext.lib.Event = {
+        getTarget : function(e) {
+            return aliasEvent(e, 'getTarget', arguments);
+        },
+        getRelatedTarget : function(ev) {
+            return aliasEvent(e, 'getRelatedTarget', arguments);
+        },
+        getPageX : function(e) {
+            return aliasEvent(e, 'getPageX', arguments);
+        },
+        getPageY : function(e) {
+            return aliasEvent(e, 'getPageY', arguments);
+        },
+        getXY : function(e) {                             
+            return aliasEvent(e, 'getXY', arguments);
+        },
+        stopEvent : function(e) {                            
+            return aliasEvent(e, 'stopEvent', arguments);
+        },
+        stopPropagation : function(e) {
+            return aliasEvent(e, 'stopPropagation', arguments);
+        },
+        preventDefault : function(e) {
+            return aliasEvent(e, 'preventDefault', arguments);
+        },
+        getCharCode : function(e) {
+            return aliasEvent(e, 'getCharCode', arguments);
+        },
+        getEvent : function(e) {
+            deprecate({pkg:'Ext.lib.Event', member:'getEvent', alt:'<event>', msg:'Just use the event instance directly.'});
+            return e;
+        }
+    };
+    
+    /*-------------------------------------------------------------
+     * Ext.lib.Point
+     *-------------------------------------------------------------*/
+    Ext.lib.Point = function(x, y) {
+        deprecate({pkg:'Ext.lib.Point', alt:'Ext.util.Point'});
+        return new Ext.util.Point(x, y);
+    };
+    
+    /*-------------------------------------------------------------
+     * Ext.lib.Ajax
+     *-------------------------------------------------------------*/
+    Ext.lib.Ajax = {
+        request : function() {
+            deprecate({pkg:'Ext.lib.Ajax', member:'request', alt:'Ext.Ajax.request',
+                msg:'This method is not backwards-compatible and must be updated manually.'});
+        },
+        serializeForm : function(form) {
+            deprecate({pkg:'Ext.lib.Ajax', member:'serializeForm', alt:'Ext.core.Element.serializeForm'});
+            return Ext.core.Element.serializeForm(form);
+        },
+        abort : function() {
+            deprecate({pkg:'Ext.lib.Ajax', member:'abort', alt:'Ext.Ajax.abort',
+                msg:'This method is not backwards-compatible and must be updated manually.'});
+        },
+        isCallInProgress : function() {
+            deprecate({pkg:'Ext.lib.Ajax', member:'isCallInProgress', alt:'Ext.Ajax.isLoading',
+                msg:'This method is not backwards-compatible and must be updated manually.'});
+        }
+    };
+    
+    /*-------------------------------------------------------------
+     * Function prototype overrides
+     *-------------------------------------------------------------*/
+    Ext.apply(Function.prototype, {
+        createInterceptor : function(){
+            deprecate({pkg:'Function', member:'<fn>.createInterceptor', alt:'Ext.Function.createInterceptor',
+                msg:'Note that this is now a static method, so the function will be the first argument to the new version.'});
+            return Ext.Function.createInterceptor.apply(Ext.Function, [this].concat(Array.prototype.slice.call(arguments)));
+        },
+        
+        createSequence : function(){
+            deprecate({pkg:'Function', member:'<fn>.createSequence', alt:'Ext.Function.createSequence',
+                msg:'Note that this is now a static method, so the function will be the first argument to the new version.'});
+            return Ext.Function.createInterceptor.apply(Ext.Function, [this].concat(Array.prototype.slice.call(arguments)));
+        },
+    
+        createCallback : function(){
+            deprecate({pkg:'Function', member:'<fn>.createCallback', alt:'Ext.pass',
+                msg:'Note that this is now a static method, so the function will be the first argument to the new version.'});
+            return Ext.pass.apply(Ext.Function, [this].concat(Array.prototype.slice.call(arguments)));
+        },
+    
+        createDelegate : function(obj, args, appendArgs){
+            deprecate({pkg:'Function', member:'<fn>.createDelegate', alt:'Ext.bind',
+                msg:'Note that this is now a static method, so the function will be the first argument to the new version.'});
+            return Ext.bind.apply(Ext.Function, [this].concat(Array.prototype.slice.call(arguments)));
+        },
+        
+        defer : function(){
+            deprecate({pkg:'Function', member:'<fn>.defer', alt:'Ext.defer',
+                msg:'Note that this is now a static method, so the function will be the first argument to the new version.'});
+            return Ext.defer.apply(Ext.Function, [this].concat(Array.prototype.slice.call(arguments)));
+        }
+    });
+    
+    /*-------------------------------------------------------------
+     * String overrides
+     *-------------------------------------------------------------*/
+    // String static methods:
+    Ext.applyIf(String, {
+        format : function(){
+            deprecate({pkg:'String', member:'format', alt:'Ext.String.format'});
+            return Ext.String.format.apply(Ext.String, arguments);
+        },
+        escape : function(string) {
+            deprecate({pkg:'String', member:'escape', alt:'Ext.String.escape'});
+            return Ext.String.escape.apply(Ext.String, arguments);
+        },
+        leftPad : function (val, size, ch) {
+            deprecate({pkg:'String', member:'leftPad', alt:'Ext.String.leftPad'});
+            return Ext.String.leftPad.apply(Ext.String, arguments);
+        }
+    });
+    // String instance methods:
+    Ext.applyIf(String.prototype, {
+        toggle : function(value, other){
+            deprecate({pkg:'String', member:'<string>.toggle', alt:'Ext.String.toggle',
+                msg:'Note that this is now a static method, so the string instance will be the first argument to the new version.'});
+            return Ext.String.toggle.call(Ext.String, this, value, other);
+        },
+        trim : function(){
+            deprecate({pkg:'String', member:'<string>.trim', alt:'Ext.String.trim',
+                msg:'Note that this is now a static method, so the string instance will be the first argument to the new version.'});
+            return Ext.String.trim.call(Ext.String, this);
+        }
+    });
+    
+    /*-------------------------------------------------------------
+     * Array overrides
+     *-------------------------------------------------------------*/
+    Ext.applyIf(Array.prototype, {
+        indexOf : function(o){
+            deprecate({pkg:'Array', member:'<array>.indexOf', alt:'Ext.Array.indexOf',
+                msg:'Note that this is now a static method, so the array instance will be the first argument to the new version. '+
+                    'Also the new version adds an optional "from index" as the last argument.'});
+            return Ext.Array.indexOf.call(Ext.Array, this, o);
+        },
+        remove : function(o){
+            deprecate({pkg:'Array', member:'<array>.remove', alt:'Ext.Array.remove',
+                msg:'Note that this is now a static method, so the array instance will be the first argument to the new version.'});
+            return Ext.Array.remove.call(Ext.Array, this, o);
+        }
+    });
+    
+    /*-------------------------------------------------------------
+     * Number overrides
+     *-------------------------------------------------------------*/
+    Ext.applyIf(Number.prototype, {
+        constrain : function(min, max){
+            deprecate({pkg:'Number', member:'<number>.constrain', alt:'Ext.Number.constrain',
+                msg:'Note that this is now a static method, so the number instance will be the first argument to the new version.'});
+            return Ext.Number.constrain.call(Ext.Number, this, min, max);
+        }
+    });
+    
+    /*-------------------------------------------------------------
+     * Date overrides.
+     * NOTE: The methods from the Date class under Ext.util
+     * in 3.x are aliased separately in ext3-compat.js. 
+     *-------------------------------------------------------------*/
+    Ext.applyIf(Date.prototype, {
+        /**
+         Returns the number of milliseconds between this date and date
+         @param {Date} date (optional) Defaults to now
+         @return {Number} The diff in milliseconds
+         @member Date getElapsed
+         @deprecated
+         */
+        getElapsed : function(date) {
+            deprecate({pkg:'Core', member:'<date>.getElapsed', alt:'Ext.Date.getElapsed'});
+            return Ext.Date.getElapsed.call(Ext.Date, this, date);
+        }
+    });
+    
+    /*-------------------------------------------------------------
+     * Element
+     *-------------------------------------------------------------*/
+    Ext.apply(Ext.core.Element.prototype, {
+        getMargins : function(){
+            deprecate({pkg:'Ext.Element', member:'getMargins', alt:'getMargin'});
+            return this.getMargin.apply(this, arguments);
+        },
+        addClass : function(){
+            deprecate({pkg:'Ext.Element', member:'addClass', alt:'addCls'});
+            return this.addCls.apply(this, arguments);
+        },
+        addClassOnClick : function(){
+            deprecate({pkg:'Ext.Element', member:'addClassOnClick', alt:'addClsOnClick'});
+            return this.addClsOnClick.apply(this, arguments);
+        },
+        addClassOnFocus : function(){
+            deprecate({pkg:'Ext.Element', member:'addClassOnFocus', alt:'addClsOnFocus'});
+            return this.addClsOnFocus.apply(this, arguments);
+        },
+        addClassOnOver : function(){
+            deprecate({pkg:'Ext.Element', member:'addClassOnOver', alt:'addClsOnOver'});
+            return this.addClsOnOver.apply(this, arguments);
+        },
+        hasClass : function(){
+            deprecate({pkg:'Ext.Element', member:'hasClass', alt:'hasCls'});
+            return this.hasCls.apply(this, arguments);
+        },
+        radioClass : function(){
+            deprecate({pkg:'Ext.Element', member:'radioClass', alt:'radioCls'});
+            return this.radioCls.apply(this, arguments);
+        },
+        removeClass : function(){
+            deprecate({pkg:'Ext.Element', member:'removeClass', alt:'removeCls'});
+            return this.removeCls.apply(this, arguments);
+        },
+        replaceClass : function(){
+            deprecate({pkg:'Ext.Element', member:'replaceClass', alt:'replaceCls'});
+            return this.replaceCls.apply(this, arguments);
+        },
+        toggleClass : function(){
+            deprecate({pkg:'Ext.Element', member:'toggleClass', alt:'toggleCls'});
+            return this.toggleCls.apply(this, arguments);
+        },
+        
+// Can't do this since Ext internally uses these calls. Reverting them will break Ext 4 code, so have to doc as breaking changes.
+//        child : function(selector, returnDom){
+//            notify('Ext.Element.child now returns a single direct child in 4.0 (switched with Ext.Element.down). '+
+//                'Reverting to the 3.x behavior that matches at any depth -- please verify this call when migrating to Ext 4.');
+//                
+//            var n = Ext.DomQuery.selectNode(selector, this.dom);
+//            return returnDom ? n : Ext.get(n);
+//        },
+//        down : function(selector, returnDom){
+//            notify('Ext.Element.down now returns a single child at any depth in 4.0 (switched with Ext.Element.child). '+
+//                'Reverting to the 3.x behavior that matches a direct child only -- please verify this call when migrating to Ext 4.');
+//                
+//            var n = Ext.DomQuery.selectNode(" > " + selector, this.dom);
+//            return returnDom ? n : Ext.get(n);
+//        },
+        animate: function(args, duration, onComplete, easing) {
+            if (arguments.length > 1 || Ext.isEmpty(args)) {
+                deprecate({pkg:'Ext.Element', member:'animate', msg:'Ext.Element.animate should be called with a single configuration object. '+
+                    'See the header API docs for Ext.util.Animate for details on the supported config attribute syntax.'});
+            }
+            var me = this;
+            if (!me.id) {
+                me = Ext.get(me.dom);
+            }
+            if (Ext.fx.Manager.hasFxBlock(me.id)) {
+                return me;
+            }
+            args = args || {};
+            if (duration) {
+                args.duration = duration;
+            }
+            if (onComplete) {
+                args.callback = onComplete;
+            }
+            if (easing) {
+                args.easing = easing;
+            }
+            Ext.fx.Manager.queueFx(Ext.create('Ext.fx.Anim', me.anim(args)));
+            return this;
+        },
+        anim: Ext.Function.createInterceptor(Ext.core.Element.prototype.anim, function(config) {
+            if (Ext.isObject(config)) {
+                if (config.delay && config.delay < 10) {
+                    config.delay *= 1000;
+                    notify({pkg:'Ext.Element', member:'animate', msg:'Detected an extremely small animation delay, assuming the '+
+                        'deprecated unit seconds were used.  Please change to milliseconds.'});
+                }
+                if (config.duration && config.duration < 10) {
+                    config.duration *= 1000;
+                    notify({pkg:'Ext.Element', member:'animate', msg:'Detected an extremely small animation duration, assuming the '+
+                        'deprecated unit seconds were used.  Please change to milliseconds.'});
+                }
+                if (config.endOpacity) {
+                    config.opacity = config.endOpacity;
+                    delete config.endOpacity;
+                    deprecate({pkg:'Ext.Element', member:'animate', msg:'The endOpacity attribute of the animate config object is '+
+                        'no longer supported. Please use opacity instead.'});
+                }
+            }
+        })
+    });
+    
+    /*-------------------------------------------------------------
+     * Ajax
+     *-------------------------------------------------------------*/
+    Ext.Ajax.serializeForm = function(form) {
+        deprecate({pkg:'Ext.Ajax', member:'serializeForm', alt:'Ext.core.Element.serializeForm'});
+        return Ext.core.Element.serializeForm(form);
+    };
+    
+//    Ext.extend = function(subclass, superclass, members) {
+//        deprecate({pkg:'Ext', member:'extend', alt:'Ext.define', 
+//            msg:'Declare your class with Ext.define() and use the "extend" config to specify the superclass.'});
+//    
+//        if (arguments.length === 2 && Ext.isObject(superclass)) {
+//            members = superclass;
+//            superclass = subclass;
+//            subclass = null;
+//        }
+//
+//        var cls;
+//
+//        if (!superclass) {
+//            compat.error("Attempting to extend from a class which has not been loaded on the page.");
+//        }
+//        members = members || {};
+//        members.extend = superclass;
+//        members.preprocessors = ['extend', 'mixins', 'config', 'statics'];
+//        
+//        if (subclass) {
+//            if (!subclass.hasOwnProperty('constructor')) {
+//                subclass.constructor = Ext.apply({}, subclass);
+//            }
+//            cls = new Ext.Class(subclass, members);
+//        }
+//        else {
+//            cls = new Ext.Class(members);
+//        }
+//
+//        cls.prototype.override = function(o) {
+//            for (var m in o) {
+//                if (o.hasOwnProperty(m)) {
+//                    this[m] = o[m];
+//                }
+//            }
+//        };
+//
+//        return cls;
+//    };
+})();
diff --git a/js/lib/ext-override.js b/js/lib/ext-override.js
new file mode 100644
index 0000000..248faa9
--- /dev/null
+++ b/js/lib/ext-override.js
@@ -0,0 +1,130 @@
+/** 
+ * Project  : AMDA-NG4
+ * Name     : ext-override.js
+ * @file     ext-override.js
+  
+ * @brief   patches for extjs
+ * @author  elena (sencha support)
+ * @version $Id: ext-override.js 2345 2014-05-13 09:06:43Z elena $
+ *******************************************************************************
+ *    FT Id     :   Date   : Name - Description
+ *******************************************************************************
+ *  :           :16/06/2011 : elena  -  creation
+ * 
+ */
+
+Ext.onReady(function () {  
+    
+// for version 4.1.3 - corrected in 4.2.2    
+  /*Ext.override(Ext.grid.RowNumberer, {
+     renderer: function(value, metaData, record, rowIdx, colIdx, store) {
+        var rowspan = this.rowspan;
+        if (rowspan){
+            metaData.tdAttr = 'rowspan="' + rowspan + '"';
+        }
+
+        metaData.tdCls = Ext.baseCSSPrefix + 'grid-cell-special';        
+       
+        return store.indexOf(record) + 1;
+    }
+  });*/
+  
+//TODO check if needed for  version 4.1.3,  4.2.2   
+    /*Ext.override(Ext.view.Table, {
+      onUpdate : function(store, record, operation, changedFieldNames) {
+        var me = this,
+            index,
+            newRow, oldRow,
+            oldCells, newCells, len, i,
+            columns, overItemCls,
+            isHovered, row;
+            
+        if (me.rendered) {        
+            index = me.store.indexOf(record);
+            columns = me.headerCt.getGridColumns();
+            overItemCls = me.overItemCls;
+
+            // If we have columns which may *need* updating (think lockable grid child with all columns either locked or unlocked)
+            // and the changed record is within our view, then update the view
+	    
+            if (columns.length && index > -1) {
+                newRow = me.bufferRender([record], index)[0];
+                oldRow = me.all.item(index);
+		if (oldRow){
+                isHovered = oldRow.hasCls(overItemCls);
+                oldRow.dom.className = newRow.className;
+                if(isHovered) {
+                    oldRow.addCls(overItemCls);
+                }
+
+                // Replace changed cells in the existing row structure with the new version from the rendered row.
+                oldCells = oldRow.query(this.cellSelector);
+                newCells = Ext.fly(newRow).query(this.cellSelector);
+                len = newCells.length;
+                // row is the element that contains the cells.  This will be a different element from oldRow when using a rowwrap feature
+                row = oldCells[0].parentNode;
+                for (i = 0; i < len; i++) {
+                    // If the field at this column index was changed, replace the cell.
+                    if (me.shouldUpdateCell(columns[i], changedFieldNames)) {
+                        row.insertBefore(newCells[i], oldCells[i]);
+                        row.removeChild(oldCells[i]);
+                    }
+                }
+		}
+                // Maintain selection after update
+                // TODO: Move to approriate event handler.
+                me.selModel.refresh();
+                me.doStripeRows(index, index);
+                me.fireEvent('itemupdate', record, index, newRow);
+            }
+        }
+       }
+      });*/
+    
+//TODO check if needed for  version 4.1.3,  4.2.2     
+   /*Ext.override(Ext.ZIndexManager, {
+      tempHidden: [],
+      show: function() {
+	var comp, x, y;
+	
+	while (comp = this.tempHidden.shift()) {
+	  x = comp.x;
+	  y = comp.y;
+	  
+	  comp.show();
+	  comp.setPosition(x,y);
+      }
+    }      
+    });*/  
+	
+	Ext.override(Ext.selection.Model, {
+		storeHasSelected: function(record) {
+			var store = this.store,
+				records,
+				len, id, i;
+
+			if (record.hasId() && store.getById(record.getId())) {
+				return true;
+			} else {
+				if (store.buffered) {//on buffered stores the map holds the data items
+	                records = [];
+	                for (m in store.data.map) {
+	                    records = records.concat(store.data.map[m].value);
+	                }
+	            } else {
+	                records = store.data.items;
+	            }
+				len = records.length;
+				id = record.internalId;
+
+				for (i = 0; i < len; ++i) {
+					if (id === records[i].internalId) {
+						return true;
+					}
+				}
+			}
+			return false;
+		}
+	});
+}); 
+            
\ No newline at end of file
diff --git a/js/lib/jasmine/MIT.LICENSE b/js/lib/jasmine/MIT.LICENSE
new file mode 100644
index 0000000..1eb9b49
--- /dev/null
+++ b/js/lib/jasmine/MIT.LICENSE
@@ -0,0 +1,20 @@
+Copyright (c) 2008-2010 Pivotal Labs
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/js/lib/jasmine/jasmine-html.js b/js/lib/jasmine/jasmine-html.js
new file mode 100644
index 0000000..c59f2de
--- /dev/null
+++ b/js/lib/jasmine/jasmine-html.js
@@ -0,0 +1,182 @@
+jasmine.TrivialReporter = function(doc) {
+  this.document = doc || document;
+  this.suiteDivs = {};
+  this.logRunningSpecs = false;
+};
+
+jasmine.TrivialReporter.prototype.createDom = function(type, attrs, childrenVarArgs) {
+  var el = document.createElement(type);
+
+  for (var i = 2; i < arguments.length; i++) {
+    var child = arguments[i];
+
+    if (typeof child === 'string') {
+      el.appendChild(document.createTextNode(child));
+    } else {
+      if (child) { el.appendChild(child); }
+    }
+  }
+
+  for (var attr in attrs) {
+    if (attr == "className") {
+      el[attr] = attrs[attr];
+    } else {
+      el.setAttribute(attr, attrs[attr]);
+    }
+  }
+
+  return el;
+};
+
+jasmine.TrivialReporter.prototype.reportRunnerStarting = function(runner) {
+  var showPassed, showSkipped;
+
+  this.outerDiv = this.createDom('div', { className: 'jasmine_reporter' },
+      this.createDom('div', { className: 'banner' },
+        this.createDom('div', { className: 'logo' },
+            this.createDom('a', { href: 'http://pivotal.github.com/jasmine/', target: "_blank" }, "Jasmine"),
+            this.createDom('span', { className: 'version' }, runner.env.versionString())),
+        this.createDom('div', { className: 'options' },
+            "Show ",
+            showPassed = this.createDom('input', { id: "__jasmine_TrivialReporter_showPassed__", type: 'checkbox' }),
+            this.createDom('label', { "for": "__jasmine_TrivialReporter_showPassed__" }, " passed "),
+            showSkipped = this.createDom('input', { id: "__jasmine_TrivialReporter_showSkipped__", type: 'checkbox' }),
+            this.createDom('label', { "for": "__jasmine_TrivialReporter_showSkipped__" }, " skipped")
+            )
+          ),
+
+      this.runnerDiv = this.createDom('div', { className: 'runner running' },
+          this.createDom('a', { className: 'run_spec', href: '?' }, "run all"),
+          this.runnerMessageSpan = this.createDom('span', {}, "Running..."),
+          this.finishedAtSpan = this.createDom('span', { className: 'finished-at' }, ""))
+      );
+
+  this.document.body.appendChild(this.outerDiv);
+
+  var suites = runner.suites();
+  for (var i = 0; i < suites.length; i++) {
+    var suite = suites[i];
+    var suiteDiv = this.createDom('div', { className: 'suite' },
+        this.createDom('a', { className: 'run_spec', href: '?spec=' + encodeURIComponent(suite.getFullName()) }, "run"),
+        this.createDom('a', { className: 'description', href: '?spec=' + encodeURIComponent(suite.getFullName()) }, suite.description));
+    this.suiteDivs[suite.id] = suiteDiv;
+    var parentDiv = this.outerDiv;
+    if (suite.parentSuite) {
+      parentDiv = this.suiteDivs[suite.parentSuite.id];
+    }
+    parentDiv.appendChild(suiteDiv);
+  }
+
+  this.startedAt = new Date();
+
+  var self = this;
+  showPassed.onchange = function(evt) {
+    if (evt.target.checked) {
+      self.outerDiv.className += ' show-passed';
+    } else {
+      self.outerDiv.className = self.outerDiv.className.replace(/ show-passed/, '');
+    }
+  };
+
+  showSkipped.onchange = function(evt) {
+    if (evt.target.checked) {
+      self.outerDiv.className += ' show-skipped';
+    } else {
+      self.outerDiv.className = self.outerDiv.className.replace(/ show-skipped/, '');
+    }
+  };
+};
+
+jasmine.TrivialReporter.prototype.reportRunnerResults = function(runner) {
+  var results = runner.results();
+  var className = (results.failedCount > 0) ? "runner failed" : "runner passed";
+  this.runnerDiv.setAttribute("class", className);
+  //do it twice for IE
+  this.runnerDiv.setAttribute("className", className);
+  var specs = runner.specs();
+  var specCount = 0;
+  for (var i = 0; i < specs.length; i++) {
+    if (this.specFilter(specs[i])) {
+      specCount++;
+    }
+  }
+  var message = "" + specCount + " spec" + (specCount == 1 ? "" : "s" ) + ", " + results.failedCount + " failure" + ((results.failedCount == 1) ? "" : "s");
+  message += " in " + ((new Date().getTime() - this.startedAt.getTime()) / 1000) + "s";
+  this.runnerMessageSpan.replaceChild(this.createDom('a', { className: 'description', href: '?'}, message), this.runnerMessageSpan.firstChild);
+
+  this.finishedAtSpan.appendChild(document.createTextNode("Finished at " + new Date().toString()));
+};
+
+jasmine.TrivialReporter.prototype.reportSuiteResults = function(suite) {
+  var results = suite.results();
+  var status = results.passed() ? 'passed' : 'failed';
+  if (results.totalCount == 0) { // todo: change this to check results.skipped
+    status = 'skipped';
+  }
+  this.suiteDivs[suite.id].className += " " + status;
+};
+
+jasmine.TrivialReporter.prototype.reportSpecStarting = function(spec) {
+  if (this.logRunningSpecs) {
+    this.log('>> Jasmine Running ' + spec.suite.description + ' ' + spec.description + '...');
+  }
+};
+
+jasmine.TrivialReporter.prototype.reportSpecResults = function(spec) {
+  var results = spec.results();
+  var status = results.passed() ? 'passed' : 'failed';
+  if (results.skipped) {
+    status = 'skipped';
+  }
+  var specDiv = this.createDom('div', { className: 'spec '  + status },
+      this.createDom('a', { className: 'run_spec', href: '?spec=' + encodeURIComponent(spec.getFullName()) }, "run"),
+      this.createDom('a', {
+        className: 'description',
+        href: '?spec=' + encodeURIComponent(spec.getFullName()),
+        title: spec.getFullName()
+      }, spec.description));
+
+
+  var resultItems = results.getItems();
+  var messagesDiv = this.createDom('div', { className: 'messages' });
+  for (var i = 0; i < resultItems.length; i++) {
+    var result = resultItems[i];
+
+    if (result.type == 'log') {
+      messagesDiv.appendChild(this.createDom('div', {className: 'resultMessage log'}, result.toString()));
+    } else if (result.type == 'expect' && result.passed && !result.passed()) {
+      messagesDiv.appendChild(this.createDom('div', {className: 'resultMessage fail'}, result.message));
+
+      if (result.trace.stack) {
+        messagesDiv.appendChild(this.createDom('div', {className: 'stackTrace'}, result.trace.stack));
+      }
+    }
+  }
+
+  if (messagesDiv.childNodes.length > 0) {
+    specDiv.appendChild(messagesDiv);
+  }
+
+  this.suiteDivs[spec.suite.id].appendChild(specDiv);
+};
+
+jasmine.TrivialReporter.prototype.log = function() {
+  var console = jasmine.getGlobal().console;
+  if (console && console.log) console.log.apply(console, arguments);
+};
+
+jasmine.TrivialReporter.prototype.getLocation = function() {
+  return this.document.location;
+};
+
+jasmine.TrivialReporter.prototype.specFilter = function(spec) {
+  var paramMap = {};
+  var params = this.getLocation().search.substring(1).split('&');
+  for (var i = 0; i < params.length; i++) {
+    var p = params[i].split('=');
+    paramMap[decodeURIComponent(p[0])] = decodeURIComponent(p[1]);
+  }
+
+  if (!paramMap["spec"]) return true;
+  return spec.getFullName().indexOf(paramMap["spec"]) == 0;
+};
diff --git a/js/lib/jasmine/jasmine.css b/js/lib/jasmine/jasmine.css
new file mode 100644
index 0000000..6583fe7
--- /dev/null
+++ b/js/lib/jasmine/jasmine.css
@@ -0,0 +1,166 @@
+body {
+  font-family: "Helvetica Neue Light", "Lucida Grande", "Calibri", "Arial", sans-serif;
+}
+
+
+.jasmine_reporter a:visited, .jasmine_reporter a {
+  color: #303; 
+}
+
+.jasmine_reporter a:hover, .jasmine_reporter a:active {
+  color: blue; 
+}
+
+.run_spec {
+  float:right;
+  padding-right: 5px;
+  font-size: .8em;
+  text-decoration: none;
+}
+
+.jasmine_reporter {
+  margin: 0 5px;
+}
+
+.banner {
+  color: #303;
+  background-color: #fef;
+  padding: 5px;
+}
+
+.logo {
+  float: left;
+  font-size: 1.1em;
+  padding-left: 5px;
+}
+
+.logo .version {
+  font-size: .6em;
+  padding-left: 1em;
+}
+
+.runner.running {
+  background-color: yellow;
+}
+
+
+.options {
+  text-align: right;
+  font-size: .8em;
+}
+
+
+
+
+.suite {
+  border: 1px outset gray;
+  margin: 5px 0;
+  padding-left: 1em;
+}
+
+.suite .suite {
+  margin: 5px; 
+}
+
+.suite.passed {
+  background-color: #dfd;
+}
+
+.suite.failed {
+  background-color: #fdd;
+}
+
+.spec {
+  margin: 5px;
+  padding-left: 1em;
+  clear: both;
+}
+
+.spec.failed, .spec.passed, .spec.skipped {
+  padding-bottom: 5px;
+  border: 1px solid gray;
+}
+
+.spec.failed {
+  background-color: #fbb;
+  border-color: red;
+}
+
+.spec.passed {
+  background-color: #bfb;
+  border-color: green;
+}
+
+.spec.skipped {
+  background-color: #bbb;
+}
+
+.messages {
+  border-left: 1px dashed gray;
+  padding-left: 1em;
+  padding-right: 1em;
+}
+
+.passed {
+  background-color: #cfc;
+  display: none;
+}
+
+.failed {
+  background-color: #fbb;
+}
+
+.skipped {
+  color: #777;
+  background-color: #eee;
+  display: none;
+}
+
+
+/*.resultMessage {*/
+  /*white-space: pre;*/
+/*}*/
+
+.resultMessage span.result {
+  display: block;
+  line-height: 2em;
+  color: black;
+}
+
+.resultMessage .mismatch {
+  color: black;
+}
+
+.stackTrace {
+  white-space: pre;
+  font-size: .8em;
+  margin-left: 10px;
+  max-height: 5em;
+  overflow: auto;
+  border: 1px inset red;
+  padding: 1em;
+  background: #eef;
+}
+
+.finished-at {
+  padding-left: 1em;
+  font-size: .6em;
+}
+
+.show-passed .passed,
+.show-skipped .skipped {
+  display: block;
+}
+
+
+#jasmine_content {
+  position:fixed;
+  right: 100%;
+}
+
+.runner {
+  border: 1px solid gray;
+  display: block;
+  margin: 5px 0;
+  padding: 2px 0 2px 10px;
+}
diff --git a/js/lib/jasmine/jasmine.js b/js/lib/jasmine/jasmine.js
new file mode 100644
index 0000000..68baf53
--- /dev/null
+++ b/js/lib/jasmine/jasmine.js
@@ -0,0 +1,2421 @@
+/**
+ * Top level namespace for Jasmine, a lightweight JavaScript BDD/spec/testing framework.
+ *
+ * @namespace
+ */
+var jasmine = {};
+
+/**
+ * @private
+ */
+jasmine.unimplementedMethod_ = function() {
+  throw new Error("unimplemented method");
+};
+
+/**
+ * Use <code>jasmine.undefined</code> instead of <code>undefined</code>, since <code>undefined</code> is just
+ * a plain old variable and may be redefined by somebody else.
+ *
+ * @private
+ */
+jasmine.undefined = jasmine.___undefined___;
+
+/**
+ * Default interval in milliseconds for event loop yields (e.g. to allow network activity or to refresh the screen with the HTML-based runner). Small values here may result in slow test running. Zero means no updates until all tests have completed.
+ *
+ */
+jasmine.DEFAULT_UPDATE_INTERVAL = 250;
+
+/**
+ * Default timeout interval in milliseconds for waitsFor() blocks.
+ */
+jasmine.DEFAULT_TIMEOUT_INTERVAL = 5000;
+
+jasmine.getGlobal = function() {
+  function getGlobal() {
+    return this;
+  }
+
+  return getGlobal();
+};
+
+/**
+ * Allows for bound functions to be compared.  Internal use only.
+ *
+ * @ignore
+ * @private
+ * @param base {Object} bound 'this' for the function
+ * @param name {Function} function to find
+ */
+jasmine.bindOriginal_ = function(base, name) {
+  var original = base[name];
+  if (original.apply) {
+    return function() {
+      return original.apply(base, arguments);
+    };
+  } else {
+    // IE support
+    return jasmine.getGlobal()[name];
+  }
+};
+
+jasmine.setTimeout = jasmine.bindOriginal_(jasmine.getGlobal(), 'setTimeout');
+jasmine.clearTimeout = jasmine.bindOriginal_(jasmine.getGlobal(), 'clearTimeout');
+jasmine.setInterval = jasmine.bindOriginal_(jasmine.getGlobal(), 'setInterval');
+jasmine.clearInterval = jasmine.bindOriginal_(jasmine.getGlobal(), 'clearInterval');
+
+jasmine.MessageResult = function(values) {
+  this.type = 'log';
+  this.values = values;
+  this.trace = new Error(); // todo: test better
+};
+
+jasmine.MessageResult.prototype.toString = function() {
+  var text = "";
+  for(var i = 0; i < this.values.length; i++) {
+    if (i > 0) text += " ";
+    if (jasmine.isString_(this.values[i])) {
+      text += this.values[i];
+    } else {
+      text += jasmine.pp(this.values[i]);
+    }
+  }
+  return text;
+};
+
+jasmine.ExpectationResult = function(params) {
+  this.type = 'expect';
+  this.matcherName = params.matcherName;
+  this.passed_ = params.passed;
+  this.expected = params.expected;
+  this.actual = params.actual;
+
+  this.message = this.passed_ ? 'Passed.' : params.message;
+  this.trace = this.passed_ ? '' : new Error(this.message);
+};
+
+jasmine.ExpectationResult.prototype.toString = function () {
+  return this.message;
+};
+
+jasmine.ExpectationResult.prototype.passed = function () {
+  return this.passed_;
+};
+
+/**
+ * Getter for the Jasmine environment. Ensures one gets created
+ */
+jasmine.getEnv = function() {
+  return jasmine.currentEnv_ = jasmine.currentEnv_ || new jasmine.Env();
+};
+
+/**
+ * @ignore
+ * @private
+ * @param value
+ * @returns {Boolean}
+ */
+jasmine.isArray_ = function(value) {
+  return jasmine.isA_("Array", value);  
+};
+
+/**
+ * @ignore
+ * @private
+ * @param value
+ * @returns {Boolean}
+ */
+jasmine.isString_ = function(value) {
+  return jasmine.isA_("String", value);
+};
+
+/**
+ * @ignore
+ * @private
+ * @param value
+ * @returns {Boolean}
+ */
+jasmine.isNumber_ = function(value) {
+  return jasmine.isA_("Number", value);
+};
+
+/**
+ * @ignore
+ * @private
+ * @param {String} typeName
+ * @param value
+ * @returns {Boolean}
+ */
+jasmine.isA_ = function(typeName, value) {
+  return Object.prototype.toString.apply(value) === '[object ' + typeName + ']';
+};
+
+/**
+ * Pretty printer for expecations.  Takes any object and turns it into a human-readable string.
+ *
+ * @param value {Object} an object to be outputted
+ * @returns {String}
+ */
+jasmine.pp = function(value) {
+  var stringPrettyPrinter = new jasmine.StringPrettyPrinter();
+  stringPrettyPrinter.format(value);
+  return stringPrettyPrinter.string;
+};
+
+/**
+ * Returns true if the object is a DOM Node.
+ *
+ * @param {Object} obj object to check
+ * @returns {Boolean}
+ */
+jasmine.isDomNode = function(obj) {
+  return obj['nodeType'] > 0;
+};
+
+/**
+ * Returns a matchable 'generic' object of the class type.  For use in expecations of type when values don't matter.
+ *
+ * @example
+ * // don't care about which function is passed in, as long as it's a function
+ * expect(mySpy).toHaveBeenCalledWith(jasmine.any(Function));
+ *
+ * @param {Class} clazz
+ * @returns matchable object of the type clazz
+ */
+jasmine.any = function(clazz) {
+  return new jasmine.Matchers.Any(clazz);
+};
+
+/**
+ * Jasmine Spies are test doubles that can act as stubs, spies, fakes or when used in an expecation, mocks.
+ *
+ * Spies should be created in test setup, before expectations.  They can then be checked, using the standard Jasmine
+ * expectation syntax. Spies can be checked if they were called or not and what the calling params were.
+ *
+ * A Spy has the following fields: wasCalled, callCount, mostRecentCall, and argsForCall (see docs).
+ *
+ * Spies are torn down at the end of every spec.
+ *
+ * Note: Do <b>not</b> call new jasmine.Spy() directly - a spy must be created using spyOn, jasmine.createSpy or jasmine.createSpyObj.
+ *
+ * @example
+ * // a stub
+ * var myStub = jasmine.createSpy('myStub');  // can be used anywhere
+ *
+ * // spy example
+ * var foo = {
+ *   not: function(bool) { return !bool; }
+ * }
+ *
+ * // actual foo.not will not be called, execution stops
+ * spyOn(foo, 'not');
+
+ // foo.not spied upon, execution will continue to implementation
+ * spyOn(foo, 'not').andCallThrough();
+ *
+ * // fake example
+ * var foo = {
+ *   not: function(bool) { return !bool; }
+ * }
+ *
+ * // foo.not(val) will return val
+ * spyOn(foo, 'not').andCallFake(function(value) {return value;});
+ *
+ * // mock example
+ * foo.not(7 == 7);
+ * expect(foo.not).toHaveBeenCalled();
+ * expect(foo.not).toHaveBeenCalledWith(true);
+ *
+ * @constructor
+ * @see spyOn, jasmine.createSpy, jasmine.createSpyObj
+ * @param {String} name
+ */
+jasmine.Spy = function(name) {
+  /**
+   * The name of the spy, if provided.
+   */
+  this.identity = name || 'unknown';
+  /**
+   *  Is this Object a spy?
+   */
+  this.isSpy = true;
+  /**
+   * The actual function this spy stubs.
+   */
+  this.plan = function() {
+  };
+  /**
+   * Tracking of the most recent call to the spy.
+   * @example
+   * var mySpy = jasmine.createSpy('foo');
+   * mySpy(1, 2);
+   * mySpy.mostRecentCall.args = [1, 2];
+   */
+  this.mostRecentCall = {};
+
+  /**
+   * Holds arguments for each call to the spy, indexed by call count
+   * @example
+   * var mySpy = jasmine.createSpy('foo');
+   * mySpy(1, 2);
+   * mySpy(7, 8);
+   * mySpy.mostRecentCall.args = [7, 8];
+   * mySpy.argsForCall[0] = [1, 2];
+   * mySpy.argsForCall[1] = [7, 8];
+   */
+  this.argsForCall = [];
+  this.calls = [];
+};
+
+/**
+ * Tells a spy to call through to the actual implemenatation.
+ *
+ * @example
+ * var foo = {
+ *   bar: function() { // do some stuff }
+ * }
+ *
+ * // defining a spy on an existing property: foo.bar
+ * spyOn(foo, 'bar').andCallThrough();
+ */
+jasmine.Spy.prototype.andCallThrough = function() {
+  this.plan = this.originalValue;
+  return this;
+};
+
+/**
+ * For setting the return value of a spy.
+ *
+ * @example
+ * // defining a spy from scratch: foo() returns 'baz'
+ * var foo = jasmine.createSpy('spy on foo').andReturn('baz');
+ *
+ * // defining a spy on an existing property: foo.bar() returns 'baz'
+ * spyOn(foo, 'bar').andReturn('baz');
+ *
+ * @param {Object} value
+ */
+jasmine.Spy.prototype.andReturn = function(value) {
+  this.plan = function() {
+    return value;
+  };
+  return this;
+};
+
+/**
+ * For throwing an exception when a spy is called.
+ *
+ * @example
+ * // defining a spy from scratch: foo() throws an exception w/ message 'ouch'
+ * var foo = jasmine.createSpy('spy on foo').andThrow('baz');
+ *
+ * // defining a spy on an existing property: foo.bar() throws an exception w/ message 'ouch'
+ * spyOn(foo, 'bar').andThrow('baz');
+ *
+ * @param {String} exceptionMsg
+ */
+jasmine.Spy.prototype.andThrow = function(exceptionMsg) {
+  this.plan = function() {
+    throw exceptionMsg;
+  };
+  return this;
+};
+
+/**
+ * Calls an alternate implementation when a spy is called.
+ *
+ * @example
+ * var baz = function() {
+ *   // do some stuff, return something
+ * }
+ * // defining a spy from scratch: foo() calls the function baz
+ * var foo = jasmine.createSpy('spy on foo').andCall(baz);
+ *
+ * // defining a spy on an existing property: foo.bar() calls an anonymnous function
+ * spyOn(foo, 'bar').andCall(function() { return 'baz';} );
+ *
+ * @param {Function} fakeFunc
+ */
+jasmine.Spy.prototype.andCallFake = function(fakeFunc) {
+  this.plan = fakeFunc;
+  return this;
+};
+
+/**
+ * Resets all of a spy's the tracking variables so that it can be used again.
+ *
+ * @example
+ * spyOn(foo, 'bar');
+ *
+ * foo.bar();
+ *
+ * expect(foo.bar.callCount).toEqual(1);
+ *
+ * foo.bar.reset();
+ *
+ * expect(foo.bar.callCount).toEqual(0);
+ */
+jasmine.Spy.prototype.reset = function() {
+  this.wasCalled = false;
+  this.callCount = 0;
+  this.argsForCall = [];
+  this.calls = [];
+  this.mostRecentCall = {};
+};
+
+jasmine.createSpy = function(name) {
+
+  var spyObj = function() {
+    spyObj.wasCalled = true;
+    spyObj.callCount++;
+    var args = jasmine.util.argsToArray(arguments);
+    spyObj.mostRecentCall.object = this;
+    spyObj.mostRecentCall.args = args;
+    spyObj.argsForCall.push(args);
+    spyObj.calls.push({object: this, args: args});
+    return spyObj.plan.apply(this, arguments);
+  };
+
+  var spy = new jasmine.Spy(name);
+
+  for (var prop in spy) {
+    spyObj[prop] = spy[prop];
+  }
+
+  spyObj.reset();
+
+  return spyObj;
+};
+
+/**
+ * Determines whether an object is a spy.
+ *
+ * @param {jasmine.Spy|Object} putativeSpy
+ * @returns {Boolean}
+ */
+jasmine.isSpy = function(putativeSpy) {
+  return putativeSpy && putativeSpy.isSpy;
+};
+
+/**
+ * Creates a more complicated spy: an Object that has every property a function that is a spy.  Used for stubbing something
+ * large in one call.
+ *
+ * @param {String} baseName name of spy class
+ * @param {Array} methodNames array of names of methods to make spies
+ */
+jasmine.createSpyObj = function(baseName, methodNames) {
+  if (!jasmine.isArray_(methodNames) || methodNames.length == 0) {
+    throw new Error('createSpyObj requires a non-empty array of method names to create spies for');
+  }
+  var obj = {};
+  for (var i = 0; i < methodNames.length; i++) {
+    obj[methodNames[i]] = jasmine.createSpy(baseName + '.' + methodNames[i]);
+  }
+  return obj;
+};
+
+/**
+ * All parameters are pretty-printed and concatenated together, then written to the current spec's output.
+ *
+ * Be careful not to leave calls to <code>jasmine.log</code> in production code.
+ */
+jasmine.log = function() {
+  var spec = jasmine.getEnv().currentSpec;
+  spec.log.apply(spec, arguments);
+};
+
+/**
+ * Function that installs a spy on an existing object's method name.  Used within a Spec to create a spy.
+ *
+ * @example
+ * // spy example
+ * var foo = {
+ *   not: function(bool) { return !bool; }
+ * }
+ * spyOn(foo, 'not'); // actual foo.not will not be called, execution stops
+ *
+ * @see jasmine.createSpy
+ * @param obj
+ * @param methodName
+ * @returns a Jasmine spy that can be chained with all spy methods
+ */
+var spyOn = function(obj, methodName) {
+  return jasmine.getEnv().currentSpec.spyOn(obj, methodName);
+};
+
+/**
+ * Creates a Jasmine spec that will be added to the current suite.
+ *
+ * // TODO: pending tests
+ *
+ * @example
+ * it('should be true', function() {
+ *   expect(true).toEqual(true);
+ * });
+ *
+ * @param {String} desc description of this specification
+ * @param {Function} func defines the preconditions and expectations of the spec
+ */
+var it = function(desc, func) {
+  return jasmine.getEnv().it(desc, func);
+};
+
+/**
+ * Creates a <em>disabled</em> Jasmine spec.
+ *
+ * A convenience method that allows existing specs to be disabled temporarily during development.
+ *
+ * @param {String} desc description of this specification
+ * @param {Function} func defines the preconditions and expectations of the spec
+ */
+var xit = function(desc, func) {
+  return jasmine.getEnv().xit(desc, func);
+};
+
+/**
+ * Starts a chain for a Jasmine expectation.
+ *
+ * It is passed an Object that is the actual value and should chain to one of the many
+ * jasmine.Matchers functions.
+ *
+ * @param {Object} actual Actual value to test against and expected value
+ */
+var expect = function(actual) {
+  return jasmine.getEnv().currentSpec.expect(actual);
+};
+
+/**
+ * Defines part of a jasmine spec.  Used in cominbination with waits or waitsFor in asynchrnous specs.
+ *
+ * @param {Function} func Function that defines part of a jasmine spec.
+ */
+var runs = function(func) {
+  jasmine.getEnv().currentSpec.runs(func);
+};
+
+/**
+ * Waits a fixed time period before moving to the next block.
+ *
+ * @deprecated Use waitsFor() instead
+ * @param {Number} timeout milliseconds to wait
+ */
+var waits = function(timeout) {
+  jasmine.getEnv().currentSpec.waits(timeout);
+};
+
+/**
+ * Waits for the latchFunction to return true before proceeding to the next block.
+ *
+ * @param {Function} latchFunction
+ * @param {String} optional_timeoutMessage
+ * @param {Number} optional_timeout
+ */
+var waitsFor = function(latchFunction, optional_timeoutMessage, optional_timeout) {
+  jasmine.getEnv().currentSpec.waitsFor.apply(jasmine.getEnv().currentSpec, arguments);
+};
+
+/**
+ * A function that is called before each spec in a suite.
+ *
+ * Used for spec setup, including validating assumptions.
+ *
+ * @param {Function} beforeEachFunction
+ */
+var beforeEach = function(beforeEachFunction) {
+  jasmine.getEnv().beforeEach(beforeEachFunction);
+};
+
+/**
+ * A function that is called after each spec in a suite.
+ *
+ * Used for restoring any state that is hijacked during spec execution.
+ *
+ * @param {Function} afterEachFunction
+ */
+var afterEach = function(afterEachFunction) {
+  jasmine.getEnv().afterEach(afterEachFunction);
+};
+
+/**
+ * Defines a suite of specifications.
+ *
+ * Stores the description and all defined specs in the Jasmine environment as one suite of specs. Variables declared
+ * are accessible by calls to beforeEach, it, and afterEach. Describe blocks can be nested, allowing for specialization
+ * of setup in some tests.
+ *
+ * @example
+ * // TODO: a simple suite
+ *
+ * // TODO: a simple suite with a nested describe block
+ *
+ * @param {String} description A string, usually the class under test.
+ * @param {Function} specDefinitions function that defines several specs.
+ */
+var describe = function(description, specDefinitions) {
+  return jasmine.getEnv().describe(description, specDefinitions);
+};
+
+/**
+ * Disables a suite of specifications.  Used to disable some suites in a file, or files, temporarily during development.
+ *
+ * @param {String} description A string, usually the class under test.
+ * @param {Function} specDefinitions function that defines several specs.
+ */
+var xdescribe = function(description, specDefinitions) {
+  return jasmine.getEnv().xdescribe(description, specDefinitions);
+};
+
+
+// Provide the XMLHttpRequest class for IE 5.x-6.x:
+jasmine.XmlHttpRequest = (typeof XMLHttpRequest == "undefined") ? function() {
+  try {
+    return new ActiveXObject("Msxml2.XMLHTTP.6.0");
+  } catch(e) {
+  }
+  try {
+    return new ActiveXObject("Msxml2.XMLHTTP.3.0");
+  } catch(e) {
+  }
+  try {
+    return new ActiveXObject("Msxml2.XMLHTTP");
+  } catch(e) {
+  }
+  try {
+    return new ActiveXObject("Microsoft.XMLHTTP");
+  } catch(e) {
+  }
+  throw new Error("This browser does not support XMLHttpRequest.");
+} : XMLHttpRequest;
+/**
+ * @namespace
+ */
+jasmine.util = {};
+
+/**
+ * Declare that a child class inherit it's prototype from the parent class.
+ *
+ * @private
+ * @param {Function} childClass
+ * @param {Function} parentClass
+ */
+jasmine.util.inherit = function(childClass, parentClass) {
+  /**
+   * @private
+   */
+  var subclass = function() {
+  };
+  subclass.prototype = parentClass.prototype;
+  childClass.prototype = new subclass;
+};
+
+jasmine.util.formatException = function(e) {
+  var lineNumber;
+  if (e.line) {
+    lineNumber = e.line;
+  }
+  else if (e.lineNumber) {
+    lineNumber = e.lineNumber;
+  }
+
+  var file;
+
+  if (e.sourceURL) {
+    file = e.sourceURL;
+  }
+  else if (e.fileName) {
+    file = e.fileName;
+  }
+
+  var message = (e.name && e.message) ? (e.name + ': ' + e.message) : e.toString();
+
+  if (file && lineNumber) {
+    message += ' in ' + file + ' (line ' + lineNumber + ')';
+  }
+
+  return message;
+};
+
+jasmine.util.htmlEscape = function(str) {
+  if (!str) return str;
+  return str.replace(/&/g, '&amp;')
+    .replace(/</g, '&lt;')
+    .replace(/>/g, '&gt;');
+};
+
+jasmine.util.argsToArray = function(args) {
+  var arrayOfArgs = [];
+  for (var i = 0; i < args.length; i++) arrayOfArgs.push(args[i]);
+  return arrayOfArgs;
+};
+
+jasmine.util.extend = function(destination, source) {
+  for (var property in source) destination[property] = source[property];
+  return destination;
+};
+
+/**
+ * Environment for Jasmine
+ *
+ * @constructor
+ */
+jasmine.Env = function() {
+  this.currentSpec = null;
+  this.currentSuite = null;
+  this.currentRunner_ = new jasmine.Runner(this);
+
+  this.reporter = new jasmine.MultiReporter();
+
+  this.updateInterval = jasmine.DEFAULT_UPDATE_INTERVAL;
+  this.defaultTimeoutInterval = jasmine.DEFAULT_TIMEOUT_INTERVAL;
+  this.lastUpdate = 0;
+  this.specFilter = function() {
+    return true;
+  };
+
+  this.nextSpecId_ = 0;
+  this.nextSuiteId_ = 0;
+  this.equalityTesters_ = [];
+
+  // wrap matchers
+  this.matchersClass = function() {
+    jasmine.Matchers.apply(this, arguments);
+  };
+  jasmine.util.inherit(this.matchersClass, jasmine.Matchers);
+
+  jasmine.Matchers.wrapInto_(jasmine.Matchers.prototype, this.matchersClass);
+};
+
+
+jasmine.Env.prototype.setTimeout = jasmine.setTimeout;
+jasmine.Env.prototype.clearTimeout = jasmine.clearTimeout;
+jasmine.Env.prototype.setInterval = jasmine.setInterval;
+jasmine.Env.prototype.clearInterval = jasmine.clearInterval;
+
+/**
+ * @returns an object containing jasmine version build info, if set.
+ */
+jasmine.Env.prototype.version = function () {
+  if (jasmine.version_) {
+    return jasmine.version_;
+  } else {
+    throw new Error('Version not set');
+  }
+};
+
+/**
+ * @returns string containing jasmine version build info, if set.
+ */
+jasmine.Env.prototype.versionString = function() {
+  if (jasmine.version_) {
+    var version = this.version();
+    return version.major + "." + version.minor + "." + version.build + " revision " + version.revision;
+  } else {
+    return "version unknown";
+  }
+};
+
+/**
+ * @returns a sequential integer starting at 0
+ */
+jasmine.Env.prototype.nextSpecId = function () {
+  return this.nextSpecId_++;
+};
+
+/**
+ * @returns a sequential integer starting at 0
+ */
+jasmine.Env.prototype.nextSuiteId = function () {
+  return this.nextSuiteId_++;
+};
+
+/**
+ * Register a reporter to receive status updates from Jasmine.
+ * @param {jasmine.Reporter} reporter An object which will receive status updates.
+ */
+jasmine.Env.prototype.addReporter = function(reporter) {
+  this.reporter.addReporter(reporter);
+};
+
+jasmine.Env.prototype.execute = function() {
+  this.currentRunner_.execute();
+};
+
+jasmine.Env.prototype.describe = function(description, specDefinitions) {
+  var suite = new jasmine.Suite(this, description, specDefinitions, this.currentSuite);
+
+  var parentSuite = this.currentSuite;
+  if (parentSuite) {
+    parentSuite.add(suite);
+  } else {
+    this.currentRunner_.add(suite);
+  }
+
+  this.currentSuite = suite;
+
+  var declarationError = null;
+  try {
+    specDefinitions.call(suite);
+  } catch(e) {
+    declarationError = e;
+  }
+
+  this.currentSuite = parentSuite;
+
+  if (declarationError) {
+    this.it("encountered a declaration exception", function() {
+      throw declarationError;
+    });
+  }
+
+  return suite;
+};
+
+jasmine.Env.prototype.beforeEach = function(beforeEachFunction) {
+  if (this.currentSuite) {
+    this.currentSuite.beforeEach(beforeEachFunction);
+  } else {
+    this.currentRunner_.beforeEach(beforeEachFunction);
+  }
+};
+
+jasmine.Env.prototype.currentRunner = function () {
+  return this.currentRunner_;
+};
+
+jasmine.Env.prototype.afterEach = function(afterEachFunction) {
+  if (this.currentSuite) {
+    this.currentSuite.afterEach(afterEachFunction);
+  } else {
+    this.currentRunner_.afterEach(afterEachFunction);
+  }
+
+};
+
+jasmine.Env.prototype.xdescribe = function(desc, specDefinitions) {
+  return {
+    execute: function() {
+    }
+  };
+};
+
+jasmine.Env.prototype.it = function(description, func) {
+  var spec = new jasmine.Spec(this, this.currentSuite, description);
+  this.currentSuite.add(spec);
+  this.currentSpec = spec;
+
+  if (func) {
+    spec.runs(func);
+  }
+
+  return spec;
+};
+
+jasmine.Env.prototype.xit = function(desc, func) {
+  return {
+    id: this.nextSpecId(),
+    runs: function() {
+    }
+  };
+};
+
+jasmine.Env.prototype.compareObjects_ = function(a, b, mismatchKeys, mismatchValues) {
+  if (a.__Jasmine_been_here_before__ === b && b.__Jasmine_been_here_before__ === a) {
+    return true;
+  }
+
+  a.__Jasmine_been_here_before__ = b;
+  b.__Jasmine_been_here_before__ = a;
+
+  var hasKey = function(obj, keyName) {
+    return obj != null && obj[keyName] !== jasmine.undefined;
+  };
+
+  for (var property in b) {
+    if (!hasKey(a, property) && hasKey(b, property)) {
+      mismatchKeys.push("expected has key '" + property + "', but missing from actual.");
+    }
+  }
+  for (property in a) {
+    if (!hasKey(b, property) && hasKey(a, property)) {
+      mismatchKeys.push("expected missing key '" + property + "', but present in actual.");
+    }
+  }
+  for (property in b) {
+    if (property == '__Jasmine_been_here_before__') continue;
+    if (!this.equals_(a[property], b[property], mismatchKeys, mismatchValues)) {
+      mismatchValues.push("'" + property + "' was '" + (b[property] ? jasmine.util.htmlEscape(b[property].toString()) : b[property]) + "' in expected, but was '" + (a[property] ? jasmine.util.htmlEscape(a[property].toString()) : a[property]) + "' in actual.");
+    }
+  }
+
+  if (jasmine.isArray_(a) && jasmine.isArray_(b) && a.length != b.length) {
+    mismatchValues.push("arrays were not the same length");
+  }
+
+  delete a.__Jasmine_been_here_before__;
+  delete b.__Jasmine_been_here_before__;
+  return (mismatchKeys.length == 0 && mismatchValues.length == 0);
+};
+
+jasmine.Env.prototype.equals_ = function(a, b, mismatchKeys, mismatchValues) {
+  mismatchKeys = mismatchKeys || [];
+  mismatchValues = mismatchValues || [];
+
+  for (var i = 0; i < this.equalityTesters_.length; i++) {
+    var equalityTester = this.equalityTesters_[i];
+    var result = equalityTester(a, b, this, mismatchKeys, mismatchValues);
+    if (result !== jasmine.undefined) return result;
+  }
+
+  if (a === b) return true;
+
+  if (a === jasmine.undefined || a === null || b === jasmine.undefined || b === null) {
+    return (a == jasmine.undefined && b == jasmine.undefined);
+  }
+
+  if (jasmine.isDomNode(a) && jasmine.isDomNode(b)) {
+    return a === b;
+  }
+
+  if (a instanceof Date && b instanceof Date) {
+    return a.getTime() == b.getTime();
+  }
+
+  if (a instanceof jasmine.Matchers.Any) {
+    return a.matches(b);
+  }
+
+  if (b instanceof jasmine.Matchers.Any) {
+    return b.matches(a);
+  }
+
+  if (jasmine.isString_(a) && jasmine.isString_(b)) {
+    return (a == b);
+  }
+
+  if (jasmine.isNumber_(a) && jasmine.isNumber_(b)) {
+    return (a == b);
+  }
+
+  if (typeof a === "object" && typeof b === "object") {
+    return this.compareObjects_(a, b, mismatchKeys, mismatchValues);
+  }
+
+  //Straight check
+  return (a === b);
+};
+
+jasmine.Env.prototype.contains_ = function(haystack, needle) {
+  if (jasmine.isArray_(haystack)) {
+    for (var i = 0; i < haystack.length; i++) {
+      if (this.equals_(haystack[i], needle)) return true;
+    }
+    return false;
+  }
+  return haystack.indexOf(needle) >= 0;
+};
+
+jasmine.Env.prototype.addEqualityTester = function(equalityTester) {
+  this.equalityTesters_.push(equalityTester);
+};
+/** No-op base class for Jasmine reporters.
+ *
+ * @constructor
+ */
+jasmine.Reporter = function() {
+};
+
+//noinspection JSUnusedLocalSymbols
+jasmine.Reporter.prototype.reportRunnerStarting = function(runner) {
+};
+
+//noinspection JSUnusedLocalSymbols
+jasmine.Reporter.prototype.reportRunnerResults = function(runner) {
+};
+
+//noinspection JSUnusedLocalSymbols
+jasmine.Reporter.prototype.reportSuiteResults = function(suite) {
+};
+
+//noinspection JSUnusedLocalSymbols
+jasmine.Reporter.prototype.reportSpecStarting = function(spec) {
+};
+
+//noinspection JSUnusedLocalSymbols
+jasmine.Reporter.prototype.reportSpecResults = function(spec) {
+};
+
+//noinspection JSUnusedLocalSymbols
+jasmine.Reporter.prototype.log = function(str) {
+};
+
+/**
+ * Blocks are functions with executable code that make up a spec.
+ *
+ * @constructor
+ * @param {jasmine.Env} env
+ * @param {Function} func
+ * @param {jasmine.Spec} spec
+ */
+jasmine.Block = function(env, func, spec) {
+  this.env = env;
+  this.func = func;
+  this.spec = spec;
+};
+
+jasmine.Block.prototype.execute = function(onComplete) {  
+  try {
+    this.func.apply(this.spec);
+  } catch (e) {
+    this.spec.fail(e);
+  }
+  onComplete();
+};
+/** JavaScript API reporter.
+ *
+ * @constructor
+ */
+jasmine.JsApiReporter = function() {
+  this.started = false;
+  this.finished = false;
+  this.suites_ = [];
+  this.results_ = {};
+};
+
+jasmine.JsApiReporter.prototype.reportRunnerStarting = function(runner) {
+  this.started = true;
+  var suites = runner.topLevelSuites();
+  for (var i = 0; i < suites.length; i++) {
+    var suite = suites[i];
+    this.suites_.push(this.summarize_(suite));
+  }
+};
+
+jasmine.JsApiReporter.prototype.suites = function() {
+  return this.suites_;
+};
+
+jasmine.JsApiReporter.prototype.summarize_ = function(suiteOrSpec) {
+  var isSuite = suiteOrSpec instanceof jasmine.Suite;
+  var summary = {
+    id: suiteOrSpec.id,
+    name: suiteOrSpec.description,
+    type: isSuite ? 'suite' : 'spec',
+    children: []
+  };
+  
+  if (isSuite) {
+    var children = suiteOrSpec.children();
+    for (var i = 0; i < children.length; i++) {
+      summary.children.push(this.summarize_(children[i]));
+    }
+  }
+  return summary;
+};
+
+jasmine.JsApiReporter.prototype.results = function() {
+  return this.results_;
+};
+
+jasmine.JsApiReporter.prototype.resultsForSpec = function(specId) {
+  return this.results_[specId];
+};
+
+//noinspection JSUnusedLocalSymbols
+jasmine.JsApiReporter.prototype.reportRunnerResults = function(runner) {
+  this.finished = true;
+};
+
+//noinspection JSUnusedLocalSymbols
+jasmine.JsApiReporter.prototype.reportSuiteResults = function(suite) {
+};
+
+//noinspection JSUnusedLocalSymbols
+jasmine.JsApiReporter.prototype.reportSpecResults = function(spec) {
+  this.results_[spec.id] = {
+    messages: spec.results().getItems(),
+    result: spec.results().failedCount > 0 ? "failed" : "passed"
+  };
+};
+
+//noinspection JSUnusedLocalSymbols
+jasmine.JsApiReporter.prototype.log = function(str) {
+};
+
+jasmine.JsApiReporter.prototype.resultsForSpecs = function(specIds){
+  var results = {};
+  for (var i = 0; i < specIds.length; i++) {
+    var specId = specIds[i];
+    results[specId] = this.summarizeResult_(this.results_[specId]);
+  }
+  return results;
+};
+
+jasmine.JsApiReporter.prototype.summarizeResult_ = function(result){
+  var summaryMessages = [];
+  var messagesLength = result.messages.length;
+  for (var messageIndex = 0; messageIndex < messagesLength; messageIndex++) {
+    var resultMessage = result.messages[messageIndex];
+    summaryMessages.push({
+      text: resultMessage.type == 'log' ? resultMessage.toString() : jasmine.undefined,
+      passed: resultMessage.passed ? resultMessage.passed() : true,
+      type: resultMessage.type,
+      message: resultMessage.message,
+      trace: {
+        stack: resultMessage.passed && !resultMessage.passed() ? resultMessage.trace.stack : jasmine.undefined
+      }
+    });
+  }
+
+  return {
+    result : result.result,
+    messages : summaryMessages
+  };
+};
+
+/**
+ * @constructor
+ * @param {jasmine.Env} env
+ * @param actual
+ * @param {jasmine.Spec} spec
+ */
+jasmine.Matchers = function(env, actual, spec, opt_isNot) {
+  this.env = env;
+  this.actual = actual;
+  this.spec = spec;
+  this.isNot = opt_isNot || false;
+  this.reportWasCalled_ = false;
+};
+
+// todo: @deprecated as of Jasmine 0.11, remove soon [xw]
+jasmine.Matchers.pp = function(str) {
+  throw new Error("jasmine.Matchers.pp() is no longer supported, please use jasmine.pp() instead!");
+};
+
+// todo: @deprecated Deprecated as of Jasmine 0.10. Rewrite your custom matchers to return true or false. [xw]
+jasmine.Matchers.prototype.report = function(result, failing_message, details) {
+  throw new Error("As of jasmine 0.11, custom matchers must be implemented differently -- please see jasmine docs");
+};
+
+jasmine.Matchers.wrapInto_ = function(prototype, matchersClass) {
+  for (var methodName in prototype) {
+    if (methodName == 'report') continue;
+    var orig = prototype[methodName];
+    matchersClass.prototype[methodName] = jasmine.Matchers.matcherFn_(methodName, orig);
+  }
+};
+
+jasmine.Matchers.matcherFn_ = function(matcherName, matcherFunction) {
+  return function() {
+    var matcherArgs = jasmine.util.argsToArray(arguments);
+    var result = matcherFunction.apply(this, arguments);
+
+    if (this.isNot) {
+      result = !result;
+    }
+
+    if (this.reportWasCalled_) return result;
+
+    var message;
+    if (!result) {
+      if (this.message) {
+        message = this.message.apply(this, arguments);
+        if (jasmine.isArray_(message)) {
+          message = message[this.isNot ? 1 : 0];
+        }
+      } else {
+        var englishyPredicate = matcherName.replace(/[A-Z]/g, function(s) { return ' ' + s.toLowerCase(); });
+        message = "Expected " + jasmine.pp(this.actual) + (this.isNot ? " not " : " ") + englishyPredicate;
+        if (matcherArgs.length > 0) {
+          for (var i = 0; i < matcherArgs.length; i++) {
+            if (i > 0) message += ",";
+            message += " " + jasmine.pp(matcherArgs[i]);
+          }
+        }
+        message += ".";
+      }
+    }
+    var expectationResult = new jasmine.ExpectationResult({
+      matcherName: matcherName,
+      passed: result,
+      expected: matcherArgs.length > 1 ? matcherArgs : matcherArgs[0],
+      actual: this.actual,
+      message: message
+    });
+    this.spec.addMatcherResult(expectationResult);
+    return jasmine.undefined;
+  };
+};
+
+
+
+
+/**
+ * toBe: compares the actual to the expected using ===
+ * @param expected
+ */
+jasmine.Matchers.prototype.toBe = function(expected) {
+  return this.actual === expected;
+};
+
+/**
+ * toNotBe: compares the actual to the expected using !==
+ * @param expected
+ * @deprecated as of 1.0. Use not.toBe() instead.
+ */
+jasmine.Matchers.prototype.toNotBe = function(expected) {
+  return this.actual !== expected;
+};
+
+/**
+ * toEqual: compares the actual to the expected using common sense equality. Handles Objects, Arrays, etc.
+ *
+ * @param expected
+ */
+jasmine.Matchers.prototype.toEqual = function(expected) {
+  return this.env.equals_(this.actual, expected);
+};
+
+/**
+ * toNotEqual: compares the actual to the expected using the ! of jasmine.Matchers.toEqual
+ * @param expected
+ * @deprecated as of 1.0. Use not.toNotEqual() instead.
+ */
+jasmine.Matchers.prototype.toNotEqual = function(expected) {
+  return !this.env.equals_(this.actual, expected);
+};
+
+/**
+ * Matcher that compares the actual to the expected using a regular expression.  Constructs a RegExp, so takes
+ * a pattern or a String.
+ *
+ * @param expected
+ */
+jasmine.Matchers.prototype.toMatch = function(expected) {
+  return new RegExp(expected).test(this.actual);
+};
+
+/**
+ * Matcher that compares the actual to the expected using the boolean inverse of jasmine.Matchers.toMatch
+ * @param expected
+ * @deprecated as of 1.0. Use not.toMatch() instead.
+ */
+jasmine.Matchers.prototype.toNotMatch = function(expected) {
+  return !(new RegExp(expected).test(this.actual));
+};
+
+/**
+ * Matcher that compares the actual to jasmine.undefined.
+ */
+jasmine.Matchers.prototype.toBeDefined = function() {
+  return (this.actual !== jasmine.undefined);
+};
+
+/**
+ * Matcher that compares the actual to jasmine.undefined.
+ */
+jasmine.Matchers.prototype.toBeUndefined = function() {
+  return (this.actual === jasmine.undefined);
+};
+
+/**
+ * Matcher that compares the actual to null.
+ */
+jasmine.Matchers.prototype.toBeNull = function() {
+  return (this.actual === null);
+};
+
+/**
+ * Matcher that boolean not-nots the actual.
+ */
+jasmine.Matchers.prototype.toBeTruthy = function() {
+  return !!this.actual;
+};
+
+
+/**
+ * Matcher that boolean nots the actual.
+ */
+jasmine.Matchers.prototype.toBeFalsy = function() {
+  return !this.actual;
+};
+
+
+/**
+ * Matcher that checks to see if the actual, a Jasmine spy, was called.
+ */
+jasmine.Matchers.prototype.toHaveBeenCalled = function() {
+  if (arguments.length > 0) {
+    throw new Error('toHaveBeenCalled does not take arguments, use toHaveBeenCalledWith');
+  }
+
+  if (!jasmine.isSpy(this.actual)) {
+    throw new Error('Expected a spy, but got ' + jasmine.pp(this.actual) + '.');
+  }
+
+  this.message = function() {
+    return [
+      "Expected spy " + this.actual.identity + " to have been called.",
+      "Expected spy " + this.actual.identity + " not to have been called."
+    ];
+  };
+
+  return this.actual.wasCalled;
+};
+
+/** @deprecated Use expect(xxx).toHaveBeenCalled() instead */
+jasmine.Matchers.prototype.wasCalled = jasmine.Matchers.prototype.toHaveBeenCalled;
+
+/**
+ * Matcher that checks to see if the actual, a Jasmine spy, was not called.
+ *
+ * @deprecated Use expect(xxx).not.toHaveBeenCalled() instead
+ */
+jasmine.Matchers.prototype.wasNotCalled = function() {
+  if (arguments.length > 0) {
+    throw new Error('wasNotCalled does not take arguments');
+  }
+
+  if (!jasmine.isSpy(this.actual)) {
+    throw new Error('Expected a spy, but got ' + jasmine.pp(this.actual) + '.');
+  }
+
+  this.message = function() {
+    return [
+      "Expected spy " + this.actual.identity + " to not have been called.",
+      "Expected spy " + this.actual.identity + " to have been called."
+    ];
+  };
+
+  return !this.actual.wasCalled;
+};
+
+/**
+ * Matcher that checks to see if the actual, a Jasmine spy, was called with a set of parameters.
+ *
+ * @example
+ *
+ */
+jasmine.Matchers.prototype.toHaveBeenCalledWith = function() {
+  var expectedArgs = jasmine.util.argsToArray(arguments);
+  if (!jasmine.isSpy(this.actual)) {
+    throw new Error('Expected a spy, but got ' + jasmine.pp(this.actual) + '.');
+  }
+  this.message = function() {
+    if (this.actual.callCount == 0) {
+      // todo: what should the failure message for .not.toHaveBeenCalledWith() be? is this right? test better. [xw]
+      return [
+        "Expected spy to have been called with " + jasmine.pp(expectedArgs) + " but it was never called.",
+        "Expected spy not to have been called with " + jasmine.pp(expectedArgs) + " but it was."
+      ];
+    } else {
+      return [
+        "Expected spy to have been called with " + jasmine.pp(expectedArgs) + " but was called with " + jasmine.pp(this.actual.argsForCall),
+        "Expected spy not to have been called with " + jasmine.pp(expectedArgs) + " but was called with " + jasmine.pp(this.actual.argsForCall)
+      ];
+    }
+  };
+
+  return this.env.contains_(this.actual.argsForCall, expectedArgs);
+};
+
+/** @deprecated Use expect(xxx).toHaveBeenCalledWith() instead */
+jasmine.Matchers.prototype.wasCalledWith = jasmine.Matchers.prototype.toHaveBeenCalledWith;
+
+/** @deprecated Use expect(xxx).not.toHaveBeenCalledWith() instead */
+jasmine.Matchers.prototype.wasNotCalledWith = function() {
+  var expectedArgs = jasmine.util.argsToArray(arguments);
+  if (!jasmine.isSpy(this.actual)) {
+    throw new Error('Expected a spy, but got ' + jasmine.pp(this.actual) + '.');
+  }
+
+  this.message = function() {
+    return [
+      "Expected spy not to have been called with " + jasmine.pp(expectedArgs) + " but it was",
+      "Expected spy to have been called with " + jasmine.pp(expectedArgs) + " but it was"
+    ]
+  };
+
+  return !this.env.contains_(this.actual.argsForCall, expectedArgs);
+};
+
+/**
+ * Matcher that checks that the expected item is an element in the actual Array.
+ *
+ * @param {Object} expected
+ */
+jasmine.Matchers.prototype.toContain = function(expected) {
+  return this.env.contains_(this.actual, expected);
+};
+
+/**
+ * Matcher that checks that the expected item is NOT an element in the actual Array.
+ *
+ * @param {Object} expected
+ * @deprecated as of 1.0. Use not.toNotContain() instead.
+ */
+jasmine.Matchers.prototype.toNotContain = function(expected) {
+  return !this.env.contains_(this.actual, expected);
+};
+
+jasmine.Matchers.prototype.toBeLessThan = function(expected) {
+  return this.actual < expected;
+};
+
+jasmine.Matchers.prototype.toBeGreaterThan = function(expected) {
+  return this.actual > expected;
+};
+
+/**
+ * Matcher that checks that the expected exception was thrown by the actual.
+ *
+ * @param {String} expected
+ */
+jasmine.Matchers.prototype.toThrow = function(expected) {
+  var result = false;
+  var exception;
+  if (typeof this.actual != 'function') {
+    throw new Error('Actual is not a function');
+  }
+  try {
+    this.actual();
+  } catch (e) {
+    exception = e;
+  }
+  if (exception) {
+    result = (expected === jasmine.undefined || this.env.equals_(exception.message || exception, expected.message || expected));
+  }
+
+  var not = this.isNot ? "not " : "";
+
+  this.message = function() {
+    if (exception && (expected === jasmine.undefined || !this.env.equals_(exception.message || exception, expected.message || expected))) {
+      return ["Expected function " + not + "to throw", expected ? expected.message || expected : " an exception", ", but it threw", exception.message || exception].join(' ');
+    } else {
+      return "Expected function to throw an exception.";
+    }
+  };
+
+  return result;
+};
+
+jasmine.Matchers.Any = function(expectedClass) {
+  this.expectedClass = expectedClass;
+};
+
+jasmine.Matchers.Any.prototype.matches = function(other) {
+  if (this.expectedClass == String) {
+    return typeof other == 'string' || other instanceof String;
+  }
+
+  if (this.expectedClass == Number) {
+    return typeof other == 'number' || other instanceof Number;
+  }
+
+  if (this.expectedClass == Function) {
+    return typeof other == 'function' || other instanceof Function;
+  }
+
+  if (this.expectedClass == Object) {
+    return typeof other == 'object';
+  }
+
+  return other instanceof this.expectedClass;
+};
+
+jasmine.Matchers.Any.prototype.toString = function() {
+  return '<jasmine.any(' + this.expectedClass + ')>';
+};
+
+/**
+ * @constructor
+ */
+jasmine.MultiReporter = function() {
+  this.subReporters_ = [];
+};
+jasmine.util.inherit(jasmine.MultiReporter, jasmine.Reporter);
+
+jasmine.MultiReporter.prototype.addReporter = function(reporter) {
+  this.subReporters_.push(reporter);
+};
+
+(function() {
+  var functionNames = [
+    "reportRunnerStarting",
+    "reportRunnerResults",
+    "reportSuiteResults",
+    "reportSpecStarting",
+    "reportSpecResults",
+    "log"
+  ];
+  for (var i = 0; i < functionNames.length; i++) {
+    var functionName = functionNames[i];
+    jasmine.MultiReporter.prototype[functionName] = (function(functionName) {
+      return function() {
+        for (var j = 0; j < this.subReporters_.length; j++) {
+          var subReporter = this.subReporters_[j];
+          if (subReporter[functionName]) {
+            subReporter[functionName].apply(subReporter, arguments);
+          }
+        }
+      };
+    })(functionName);
+  }
+})();
+/**
+ * Holds results for a set of Jasmine spec. Allows for the results array to hold another jasmine.NestedResults
+ *
+ * @constructor
+ */
+jasmine.NestedResults = function() {
+  /**
+   * The total count of results
+   */
+  this.totalCount = 0;
+  /**
+   * Number of passed results
+   */
+  this.passedCount = 0;
+  /**
+   * Number of failed results
+   */
+  this.failedCount = 0;
+  /**
+   * Was this suite/spec skipped?
+   */
+  this.skipped = false;
+  /**
+   * @ignore
+   */
+  this.items_ = [];
+};
+
+/**
+ * Roll up the result counts.
+ *
+ * @param result
+ */
+jasmine.NestedResults.prototype.rollupCounts = function(result) {
+  this.totalCount += result.totalCount;
+  this.passedCount += result.passedCount;
+  this.failedCount += result.failedCount;
+};
+
+/**
+ * Adds a log message.
+ * @param values Array of message parts which will be concatenated later.
+ */
+jasmine.NestedResults.prototype.log = function(values) {
+  this.items_.push(new jasmine.MessageResult(values));
+};
+
+/**
+ * Getter for the results: message & results.
+ */
+jasmine.NestedResults.prototype.getItems = function() {
+  return this.items_;
+};
+
+/**
+ * Adds a result, tracking counts (total, passed, & failed)
+ * @param {jasmine.ExpectationResult|jasmine.NestedResults} result
+ */
+jasmine.NestedResults.prototype.addResult = function(result) {
+  if (result.type != 'log') {
+    if (result.items_) {
+      this.rollupCounts(result);
+    } else {
+      this.totalCount++;
+      if (result.passed()) {
+        this.passedCount++;
+      } else {
+        this.failedCount++;
+      }
+    }
+  }
+  this.items_.push(result);
+};
+
+/**
+ * @returns {Boolean} True if <b>everything</b> below passed
+ */
+jasmine.NestedResults.prototype.passed = function() {
+  return this.passedCount === this.totalCount;
+};
+/**
+ * Base class for pretty printing for expectation results.
+ */
+jasmine.PrettyPrinter = function() {
+  this.ppNestLevel_ = 0;
+};
+
+/**
+ * Formats a value in a nice, human-readable string.
+ *
+ * @param value
+ */
+jasmine.PrettyPrinter.prototype.format = function(value) {
+  if (this.ppNestLevel_ > 40) {
+    throw new Error('jasmine.PrettyPrinter: format() nested too deeply!');
+  }
+
+  this.ppNestLevel_++;
+  try {
+    if (value === jasmine.undefined) {
+      this.emitScalar('undefined');
+    } else if (value === null) {
+      this.emitScalar('null');
+    } else if (value === jasmine.getGlobal()) {
+      this.emitScalar('<global>');
+    } else if (value instanceof jasmine.Matchers.Any) {
+      this.emitScalar(value.toString());
+    } else if (typeof value === 'string') {
+      this.emitString(value);
+    } else if (jasmine.isSpy(value)) {
+      this.emitScalar("spy on " + value.identity);
+    } else if (value instanceof RegExp) {
+      this.emitScalar(value.toString());
+    } else if (typeof value === 'function') {
+      this.emitScalar('Function');
+    } else if (typeof value.nodeType === 'number') {
+      this.emitScalar('HTMLNode');
+    } else if (value instanceof Date) {
+      this.emitScalar('Date(' + value + ')');
+    } else if (value.__Jasmine_been_here_before__) {
+      this.emitScalar('<circular reference: ' + (jasmine.isArray_(value) ? 'Array' : 'Object') + '>');
+    } else if (jasmine.isArray_(value) || typeof value == 'object') {
+      value.__Jasmine_been_here_before__ = true;
+      if (jasmine.isArray_(value)) {
+        this.emitArray(value);
+      } else {
+        this.emitObject(value);
+      }
+      delete value.__Jasmine_been_here_before__;
+    } else {
+      this.emitScalar(value.toString());
+    }
+  } finally {
+    this.ppNestLevel_--;
+  }
+};
+
+jasmine.PrettyPrinter.prototype.iterateObject = function(obj, fn) {
+  for (var property in obj) {
+    if (property == '__Jasmine_been_here_before__') continue;
+    fn(property, obj.__lookupGetter__ ? (obj.__lookupGetter__(property) != null) : false);
+  }
+};
+
+jasmine.PrettyPrinter.prototype.emitArray = jasmine.unimplementedMethod_;
+jasmine.PrettyPrinter.prototype.emitObject = jasmine.unimplementedMethod_;
+jasmine.PrettyPrinter.prototype.emitScalar = jasmine.unimplementedMethod_;
+jasmine.PrettyPrinter.prototype.emitString = jasmine.unimplementedMethod_;
+
+jasmine.StringPrettyPrinter = function() {
+  jasmine.PrettyPrinter.call(this);
+
+  this.string = '';
+};
+jasmine.util.inherit(jasmine.StringPrettyPrinter, jasmine.PrettyPrinter);
+
+jasmine.StringPrettyPrinter.prototype.emitScalar = function(value) {
+  this.append(value);
+};
+
+jasmine.StringPrettyPrinter.prototype.emitString = function(value) {
+  this.append("'" + value + "'");
+};
+
+jasmine.StringPrettyPrinter.prototype.emitArray = function(array) {
+  this.append('[ ');
+  for (var i = 0; i < array.length; i++) {
+    if (i > 0) {
+      this.append(', ');
+    }
+    this.format(array[i]);
+  }
+  this.append(' ]');
+};
+
+jasmine.StringPrettyPrinter.prototype.emitObject = function(obj) {
+  var self = this;
+  this.append('{ ');
+  var first = true;
+
+  this.iterateObject(obj, function(property, isGetter) {
+    if (first) {
+      first = false;
+    } else {
+      self.append(', ');
+    }
+
+    self.append(property);
+    self.append(' : ');
+    if (isGetter) {
+      self.append('<getter>');
+    } else {
+      self.format(obj[property]);
+    }
+  });
+
+  this.append(' }');
+};
+
+jasmine.StringPrettyPrinter.prototype.append = function(value) {
+  this.string += value;
+};
+jasmine.Queue = function(env) {
+  this.env = env;
+  this.blocks = [];
+  this.running = false;
+  this.index = 0;
+  this.offset = 0;
+  this.abort = false;
+};
+
+jasmine.Queue.prototype.addBefore = function(block) {
+  this.blocks.unshift(block);
+};
+
+jasmine.Queue.prototype.add = function(block) {
+  this.blocks.push(block);
+};
+
+jasmine.Queue.prototype.insertNext = function(block) {
+  this.blocks.splice((this.index + this.offset + 1), 0, block);
+  this.offset++;
+};
+
+jasmine.Queue.prototype.start = function(onComplete) {
+  this.running = true;
+  this.onComplete = onComplete;
+  this.next_();
+};
+
+jasmine.Queue.prototype.isRunning = function() {
+  return this.running;
+};
+
+jasmine.Queue.LOOP_DONT_RECURSE = true;
+
+jasmine.Queue.prototype.next_ = function() {
+  var self = this;
+  var goAgain = true;
+
+  while (goAgain) {
+    goAgain = false;
+    
+    if (self.index < self.blocks.length && !this.abort) {
+      var calledSynchronously = true;
+      var completedSynchronously = false;
+
+      var onComplete = function () {
+        if (jasmine.Queue.LOOP_DONT_RECURSE && calledSynchronously) {
+          completedSynchronously = true;
+          return;
+        }
+
+        if (self.blocks[self.index].abort) {
+          self.abort = true;
+        }
+
+        self.offset = 0;
+        self.index++;
+
+        var now = new Date().getTime();
+        if (self.env.updateInterval && now - self.env.lastUpdate > self.env.updateInterval) {
+          self.env.lastUpdate = now;
+          self.env.setTimeout(function() {
+            self.next_();
+          }, 0);
+        } else {
+          if (jasmine.Queue.LOOP_DONT_RECURSE && completedSynchronously) {
+            goAgain = true;
+          } else {
+            self.next_();
+          }
+        }
+      };
+      self.blocks[self.index].execute(onComplete);
+
+      calledSynchronously = false;
+      if (completedSynchronously) {
+        onComplete();
+      }
+      
+    } else {
+      self.running = false;
+      if (self.onComplete) {
+        self.onComplete();
+      }
+    }
+  }
+};
+
+jasmine.Queue.prototype.results = function() {
+  var results = new jasmine.NestedResults();
+  for (var i = 0; i < this.blocks.length; i++) {
+    if (this.blocks[i].results) {
+      results.addResult(this.blocks[i].results());
+    }
+  }
+  return results;
+};
+
+
+/**
+ * Runner
+ *
+ * @constructor
+ * @param {jasmine.Env} env
+ */
+jasmine.Runner = function(env) {
+  var self = this;
+  self.env = env;
+  self.queue = new jasmine.Queue(env);
+  self.before_ = [];
+  self.after_ = [];
+  self.suites_ = [];
+};
+
+jasmine.Runner.prototype.execute = function() {
+  var self = this;
+  if (self.env.reporter.reportRunnerStarting) {
+    self.env.reporter.reportRunnerStarting(this);
+  }
+  self.queue.start(function () {
+    self.finishCallback();
+  });
+};
+
+jasmine.Runner.prototype.beforeEach = function(beforeEachFunction) {
+  beforeEachFunction.typeName = 'beforeEach';
+  this.before_.splice(0,0,beforeEachFunction);
+};
+
+jasmine.Runner.prototype.afterEach = function(afterEachFunction) {
+  afterEachFunction.typeName = 'afterEach';
+  this.after_.splice(0,0,afterEachFunction);
+};
+
+
+jasmine.Runner.prototype.finishCallback = function() {
+  this.env.reporter.reportRunnerResults(this);
+};
+
+jasmine.Runner.prototype.addSuite = function(suite) {
+  this.suites_.push(suite);
+};
+
+jasmine.Runner.prototype.add = function(block) {
+  if (block instanceof jasmine.Suite) {
+    this.addSuite(block);
+  }
+  this.queue.add(block);
+};
+
+jasmine.Runner.prototype.specs = function () {
+  var suites = this.suites();
+  var specs = [];
+  for (var i = 0; i < suites.length; i++) {
+    specs = specs.concat(suites[i].specs());
+  }
+  return specs;
+};
+
+jasmine.Runner.prototype.suites = function() {
+  return this.suites_;
+};
+
+jasmine.Runner.prototype.topLevelSuites = function() {
+  var topLevelSuites = [];
+  for (var i = 0; i < this.suites_.length; i++) {
+    if (!this.suites_[i].parentSuite) {
+      topLevelSuites.push(this.suites_[i]);
+    }
+  }
+  return topLevelSuites;
+};
+
+jasmine.Runner.prototype.results = function() {
+  return this.queue.results();
+};
+/**
+ * Internal representation of a Jasmine specification, or test.
+ *
+ * @constructor
+ * @param {jasmine.Env} env
+ * @param {jasmine.Suite} suite
+ * @param {String} description
+ */
+jasmine.Spec = function(env, suite, description) {
+  if (!env) {
+    throw new Error('jasmine.Env() required');
+  }
+  if (!suite) {
+    throw new Error('jasmine.Suite() required');
+  }
+  var spec = this;
+  spec.id = env.nextSpecId ? env.nextSpecId() : null;
+  spec.env = env;
+  spec.suite = suite;
+  spec.description = description;
+  spec.queue = new jasmine.Queue(env);
+
+  spec.afterCallbacks = [];
+  spec.spies_ = [];
+
+  spec.results_ = new jasmine.NestedResults();
+  spec.results_.description = description;
+  spec.matchersClass = null;
+};
+
+jasmine.Spec.prototype.getFullName = function() {
+  return this.suite.getFullName() + ' ' + this.description + '.';
+};
+
+
+jasmine.Spec.prototype.results = function() {
+  return this.results_;
+};
+
+/**
+ * All parameters are pretty-printed and concatenated together, then written to the spec's output.
+ *
+ * Be careful not to leave calls to <code>jasmine.log</code> in production code.
+ */
+jasmine.Spec.prototype.log = function() {
+  return this.results_.log(arguments);
+};
+
+jasmine.Spec.prototype.runs = function (func) {
+  var block = new jasmine.Block(this.env, func, this);
+  this.addToQueue(block);
+  return this;
+};
+
+jasmine.Spec.prototype.addToQueue = function (block) {
+  if (this.queue.isRunning()) {
+    this.queue.insertNext(block);
+  } else {
+    this.queue.add(block);
+  }
+};
+
+/**
+ * @param {jasmine.ExpectationResult} result
+ */
+jasmine.Spec.prototype.addMatcherResult = function(result) {
+  this.results_.addResult(result);
+};
+
+jasmine.Spec.prototype.expect = function(actual) {
+  var positive = new (this.getMatchersClass_())(this.env, actual, this);
+  positive.not = new (this.getMatchersClass_())(this.env, actual, this, true);
+  return positive;
+};
+
+/**
+ * Waits a fixed time period before moving to the next block.
+ *
+ * @deprecated Use waitsFor() instead
+ * @param {Number} timeout milliseconds to wait
+ */
+jasmine.Spec.prototype.waits = function(timeout) {
+  var waitsFunc = new jasmine.WaitsBlock(this.env, timeout, this);
+  this.addToQueue(waitsFunc);
+  return this;
+};
+
+/**
+ * Waits for the latchFunction to return true before proceeding to the next block.
+ *
+ * @param {Function} latchFunction
+ * @param {String} optional_timeoutMessage
+ * @param {Number} optional_timeout
+ */
+jasmine.Spec.prototype.waitsFor = function(latchFunction, optional_timeoutMessage, optional_timeout) {
+  var latchFunction_ = null;
+  var optional_timeoutMessage_ = null;
+  var optional_timeout_ = null;
+
+  for (var i = 0; i < arguments.length; i++) {
+    var arg = arguments[i];
+    switch (typeof arg) {
+      case 'function':
+        latchFunction_ = arg;
+        break;
+      case 'string':
+        optional_timeoutMessage_ = arg;
+        break;
+      case 'number':
+        optional_timeout_ = arg;
+        break;
+    }
+  }
+
+  var waitsForFunc = new jasmine.WaitsForBlock(this.env, optional_timeout_, latchFunction_, optional_timeoutMessage_, this);
+  this.addToQueue(waitsForFunc);
+  return this;
+};
+
+jasmine.Spec.prototype.fail = function (e) {
+  var expectationResult = new jasmine.ExpectationResult({
+    passed: false,
+    message: e ? jasmine.util.formatException(e) : 'Exception'
+  });
+  this.results_.addResult(expectationResult);
+};
+
+jasmine.Spec.prototype.getMatchersClass_ = function() {
+  return this.matchersClass || this.env.matchersClass;
+};
+
+jasmine.Spec.prototype.addMatchers = function(matchersPrototype) {
+  var parent = this.getMatchersClass_();
+  var newMatchersClass = function() {
+    parent.apply(this, arguments);
+  };
+  jasmine.util.inherit(newMatchersClass, parent);
+  jasmine.Matchers.wrapInto_(matchersPrototype, newMatchersClass);
+  this.matchersClass = newMatchersClass;
+};
+
+jasmine.Spec.prototype.finishCallback = function() {
+  this.env.reporter.reportSpecResults(this);
+};
+
+jasmine.Spec.prototype.finish = function(onComplete) {
+  this.removeAllSpies();
+  this.finishCallback();
+  if (onComplete) {
+    onComplete();
+  }
+};
+
+jasmine.Spec.prototype.after = function(doAfter) {
+  if (this.queue.isRunning()) {
+    this.queue.add(new jasmine.Block(this.env, doAfter, this));
+  } else {
+    this.afterCallbacks.unshift(doAfter);
+  }
+};
+
+jasmine.Spec.prototype.execute = function(onComplete) {
+  var spec = this;
+  if (!spec.env.specFilter(spec)) {
+    spec.results_.skipped = true;
+    spec.finish(onComplete);
+    return;
+  }
+
+  this.env.reporter.reportSpecStarting(this);
+
+  spec.env.currentSpec = spec;
+
+  spec.addBeforesAndAftersToQueue();
+
+  spec.queue.start(function () {
+    spec.finish(onComplete);
+  });
+};
+
+jasmine.Spec.prototype.addBeforesAndAftersToQueue = function() {
+  var runner = this.env.currentRunner();
+  var i;
+
+  for (var suite = this.suite; suite; suite = suite.parentSuite) {
+    for (i = 0; i < suite.before_.length; i++) {
+      this.queue.addBefore(new jasmine.Block(this.env, suite.before_[i], this));
+    }
+  }
+  for (i = 0; i < runner.before_.length; i++) {
+    this.queue.addBefore(new jasmine.Block(this.env, runner.before_[i], this));
+  }
+  for (i = 0; i < this.afterCallbacks.length; i++) {
+    this.queue.add(new jasmine.Block(this.env, this.afterCallbacks[i], this));
+  }
+  for (suite = this.suite; suite; suite = suite.parentSuite) {
+    for (i = 0; i < suite.after_.length; i++) {
+      this.queue.add(new jasmine.Block(this.env, suite.after_[i], this));
+    }
+  }
+  for (i = 0; i < runner.after_.length; i++) {
+    this.queue.add(new jasmine.Block(this.env, runner.after_[i], this));
+  }
+};
+
+jasmine.Spec.prototype.explodes = function() {
+  throw 'explodes function should not have been called';
+};
+
+jasmine.Spec.prototype.spyOn = function(obj, methodName, ignoreMethodDoesntExist) {
+  if (obj == jasmine.undefined) {
+    throw "spyOn could not find an object to spy upon for " + methodName + "()";
+  }
+
+  if (!ignoreMethodDoesntExist && obj[methodName] === jasmine.undefined) {
+    throw methodName + '() method does not exist';
+  }
+
+  if (!ignoreMethodDoesntExist && obj[methodName] && obj[methodName].isSpy) {
+    throw new Error(methodName + ' has already been spied upon');
+  }
+
+  var spyObj = jasmine.createSpy(methodName);
+
+  this.spies_.push(spyObj);
+  spyObj.baseObj = obj;
+  spyObj.methodName = methodName;
+  spyObj.originalValue = obj[methodName];
+
+  obj[methodName] = spyObj;
+
+  return spyObj;
+};
+
+jasmine.Spec.prototype.removeAllSpies = function() {
+  for (var i = 0; i < this.spies_.length; i++) {
+    var spy = this.spies_[i];
+    spy.baseObj[spy.methodName] = spy.originalValue;
+  }
+  this.spies_ = [];
+};
+
+/**
+ * Internal representation of a Jasmine suite.
+ *
+ * @constructor
+ * @param {jasmine.Env} env
+ * @param {String} description
+ * @param {Function} specDefinitions
+ * @param {jasmine.Suite} parentSuite
+ */
+jasmine.Suite = function(env, description, specDefinitions, parentSuite) {
+  var self = this;
+  self.id = env.nextSuiteId ? env.nextSuiteId() : null;
+  self.description = description;
+  self.queue = new jasmine.Queue(env);
+  self.parentSuite = parentSuite;
+  self.env = env;
+  self.before_ = [];
+  self.after_ = [];
+  self.children_ = [];
+  self.suites_ = [];
+  self.specs_ = [];
+};
+
+jasmine.Suite.prototype.getFullName = function() {
+  var fullName = this.description;
+  for (var parentSuite = this.parentSuite; parentSuite; parentSuite = parentSuite.parentSuite) {
+    fullName = parentSuite.description + ' ' + fullName;
+  }
+  return fullName;
+};
+
+jasmine.Suite.prototype.finish = function(onComplete) {
+  this.env.reporter.reportSuiteResults(this);
+  this.finished = true;
+  if (typeof(onComplete) == 'function') {
+    onComplete();
+  }
+};
+
+jasmine.Suite.prototype.beforeEach = function(beforeEachFunction) {
+  beforeEachFunction.typeName = 'beforeEach';
+  this.before_.unshift(beforeEachFunction);
+};
+
+jasmine.Suite.prototype.afterEach = function(afterEachFunction) {
+  afterEachFunction.typeName = 'afterEach';
+  this.after_.unshift(afterEachFunction);
+};
+
+jasmine.Suite.prototype.results = function() {
+  return this.queue.results();
+};
+
+jasmine.Suite.prototype.add = function(suiteOrSpec) {
+  this.children_.push(suiteOrSpec);
+  if (suiteOrSpec instanceof jasmine.Suite) {
+    this.suites_.push(suiteOrSpec);
+    this.env.currentRunner().addSuite(suiteOrSpec);
+  } else {
+    this.specs_.push(suiteOrSpec);
+  }
+  this.queue.add(suiteOrSpec);
+};
+
+jasmine.Suite.prototype.specs = function() {
+  return this.specs_;
+};
+
+jasmine.Suite.prototype.suites = function() {
+  return this.suites_;
+};
+
+jasmine.Suite.prototype.children = function() {
+  return this.children_;
+};
+
+jasmine.Suite.prototype.execute = function(onComplete) {
+  var self = this;
+  this.queue.start(function () {
+    self.finish(onComplete);
+  });
+};
+jasmine.WaitsBlock = function(env, timeout, spec) {
+  this.timeout = timeout;
+  jasmine.Block.call(this, env, null, spec);
+};
+
+jasmine.util.inherit(jasmine.WaitsBlock, jasmine.Block);
+
+jasmine.WaitsBlock.prototype.execute = function (onComplete) {
+  this.env.reporter.log('>> Jasmine waiting for ' + this.timeout + ' ms...');
+  this.env.setTimeout(function () {
+    onComplete();
+  }, this.timeout);
+};
+/**
+ * A block which waits for some condition to become true, with timeout.
+ *
+ * @constructor
+ * @extends jasmine.Block
+ * @param {jasmine.Env} env The Jasmine environment.
+ * @param {Number} timeout The maximum time in milliseconds to wait for the condition to become true.
+ * @param {Function} latchFunction A function which returns true when the desired condition has been met.
+ * @param {String} message The message to display if the desired condition hasn't been met within the given time period.
+ * @param {jasmine.Spec} spec The Jasmine spec.
+ */
+jasmine.WaitsForBlock = function(env, timeout, latchFunction, message, spec) {
+  this.timeout = timeout || env.defaultTimeoutInterval;
+  this.latchFunction = latchFunction;
+  this.message = message;
+  this.totalTimeSpentWaitingForLatch = 0;
+  jasmine.Block.call(this, env, null, spec);
+};
+jasmine.util.inherit(jasmine.WaitsForBlock, jasmine.Block);
+
+jasmine.WaitsForBlock.TIMEOUT_INCREMENT = 10;
+
+jasmine.WaitsForBlock.prototype.execute = function(onComplete) {
+  this.env.reporter.log('>> Jasmine waiting for ' + (this.message || 'something to happen'));
+  var latchFunctionResult;
+  try {
+    latchFunctionResult = this.latchFunction.apply(this.spec);
+  } catch (e) {
+    this.spec.fail(e);
+    onComplete();
+    return;
+  }
+
+  if (latchFunctionResult) {
+    onComplete();
+  } else if (this.totalTimeSpentWaitingForLatch >= this.timeout) {
+    var message = 'timed out after ' + this.timeout + ' msec waiting for ' + (this.message || 'something to happen');
+    this.spec.fail({
+      name: 'timeout',
+      message: message
+    });
+
+    this.abort = true;
+    onComplete();
+  } else {
+    this.totalTimeSpentWaitingForLatch += jasmine.WaitsForBlock.TIMEOUT_INCREMENT;
+    var self = this;
+    this.env.setTimeout(function() {
+      self.execute(onComplete);
+    }, jasmine.WaitsForBlock.TIMEOUT_INCREMENT);
+  }
+};
+// Mock setTimeout, clearTimeout
+// Contributed by Pivotal Computer Systems, www.pivotalsf.com
+
+jasmine.FakeTimer = function() {
+  this.reset();
+
+  var self = this;
+  self.setTimeout = function(funcToCall, millis) {
+    self.timeoutsMade++;
+    self.scheduleFunction(self.timeoutsMade, funcToCall, millis, false);
+    return self.timeoutsMade;
+  };
+
+  self.setInterval = function(funcToCall, millis) {
+    self.timeoutsMade++;
+    self.scheduleFunction(self.timeoutsMade, funcToCall, millis, true);
+    return self.timeoutsMade;
+  };
+
+  self.clearTimeout = function(timeoutKey) {
+    self.scheduledFunctions[timeoutKey] = jasmine.undefined;
+  };
+
+  self.clearInterval = function(timeoutKey) {
+    self.scheduledFunctions[timeoutKey] = jasmine.undefined;
+  };
+
+};
+
+jasmine.FakeTimer.prototype.reset = function() {
+  this.timeoutsMade = 0;
+  this.scheduledFunctions = {};
+  this.nowMillis = 0;
+};
+
+jasmine.FakeTimer.prototype.tick = function(millis) {
+  var oldMillis = this.nowMillis;
+  var newMillis = oldMillis + millis;
+  this.runFunctionsWithinRange(oldMillis, newMillis);
+  this.nowMillis = newMillis;
+};
+
+jasmine.FakeTimer.prototype.runFunctionsWithinRange = function(oldMillis, nowMillis) {
+  var scheduledFunc;
+  var funcsToRun = [];
+  for (var timeoutKey in this.scheduledFunctions) {
+    scheduledFunc = this.scheduledFunctions[timeoutKey];
+    if (scheduledFunc != jasmine.undefined &&
+        scheduledFunc.runAtMillis >= oldMillis &&
+        scheduledFunc.runAtMillis <= nowMillis) {
+      funcsToRun.push(scheduledFunc);
+      this.scheduledFunctions[timeoutKey] = jasmine.undefined;
+    }
+  }
+
+  if (funcsToRun.length > 0) {
+    funcsToRun.sort(function(a, b) {
+      return a.runAtMillis - b.runAtMillis;
+    });
+    for (var i = 0; i < funcsToRun.length; ++i) {
+      try {
+        var funcToRun = funcsToRun[i];
+        this.nowMillis = funcToRun.runAtMillis;
+        funcToRun.funcToCall();
+        if (funcToRun.recurring) {
+          this.scheduleFunction(funcToRun.timeoutKey,
+              funcToRun.funcToCall,
+              funcToRun.millis,
+              true);
+        }
+      } catch(e) {
+      }
+    }
+    this.runFunctionsWithinRange(oldMillis, nowMillis);
+  }
+};
+
+jasmine.FakeTimer.prototype.scheduleFunction = function(timeoutKey, funcToCall, millis, recurring) {
+  this.scheduledFunctions[timeoutKey] = {
+    runAtMillis: this.nowMillis + millis,
+    funcToCall: funcToCall,
+    recurring: recurring,
+    timeoutKey: timeoutKey,
+    millis: millis
+  };
+};
+
+/**
+ * @namespace
+ */
+jasmine.Clock = {
+  defaultFakeTimer: new jasmine.FakeTimer(),
+
+  reset: function() {
+    jasmine.Clock.assertInstalled();
+    jasmine.Clock.defaultFakeTimer.reset();
+  },
+
+  tick: function(millis) {
+    jasmine.Clock.assertInstalled();
+    jasmine.Clock.defaultFakeTimer.tick(millis);
+  },
+
+  runFunctionsWithinRange: function(oldMillis, nowMillis) {
+    jasmine.Clock.defaultFakeTimer.runFunctionsWithinRange(oldMillis, nowMillis);
+  },
+
+  scheduleFunction: function(timeoutKey, funcToCall, millis, recurring) {
+    jasmine.Clock.defaultFakeTimer.scheduleFunction(timeoutKey, funcToCall, millis, recurring);
+  },
+
+  useMock: function() {
+    if (!jasmine.Clock.isInstalled()) {
+      var spec = jasmine.getEnv().currentSpec;
+      spec.after(jasmine.Clock.uninstallMock);
+
+      jasmine.Clock.installMock();
+    }
+  },
+
+  installMock: function() {
+    jasmine.Clock.installed = jasmine.Clock.defaultFakeTimer;
+  },
+
+  uninstallMock: function() {
+    jasmine.Clock.assertInstalled();
+    jasmine.Clock.installed = jasmine.Clock.real;
+  },
+
+  real: {
+    setTimeout: jasmine.getGlobal().setTimeout,
+    clearTimeout: jasmine.getGlobal().clearTimeout,
+    setInterval: jasmine.getGlobal().setInterval,
+    clearInterval: jasmine.getGlobal().clearInterval
+  },
+
+  assertInstalled: function() {
+    if (!jasmine.Clock.isInstalled()) {
+      throw new Error("Mock clock is not installed, use jasmine.Clock.useMock()");
+    }
+  },
+
+  isInstalled: function() {
+    return jasmine.Clock.installed == jasmine.Clock.defaultFakeTimer;
+  },
+
+  installed: null
+};
+jasmine.Clock.installed = jasmine.Clock.real;
+
+//else for IE support
+jasmine.getGlobal().setTimeout = function(funcToCall, millis) {
+  if (jasmine.Clock.installed.setTimeout.apply) {
+    return jasmine.Clock.installed.setTimeout.apply(this, arguments);
+  } else {
+    return jasmine.Clock.installed.setTimeout(funcToCall, millis);
+  }
+};
+
+jasmine.getGlobal().setInterval = function(funcToCall, millis) {
+  if (jasmine.Clock.installed.setInterval.apply) {
+    return jasmine.Clock.installed.setInterval.apply(this, arguments);
+  } else {
+    return jasmine.Clock.installed.setInterval(funcToCall, millis);
+  }
+};
+
+jasmine.getGlobal().clearTimeout = function(timeoutKey) {
+  if (jasmine.Clock.installed.clearTimeout.apply) {
+    return jasmine.Clock.installed.clearTimeout.apply(this, arguments);
+  } else {
+    return jasmine.Clock.installed.clearTimeout(timeoutKey);
+  }
+};
+
+jasmine.getGlobal().clearInterval = function(timeoutKey) {
+  if (jasmine.Clock.installed.clearTimeout.apply) {
+    return jasmine.Clock.installed.clearInterval.apply(this, arguments);
+  } else {
+    return jasmine.Clock.installed.clearInterval(timeoutKey);
+  }
+};
+
+
+jasmine.version_= {
+  "major": 1,
+  "minor": 0,
+  "build": 0,
+  "revision": 1284494074
+};
diff --git a/js/lib/sencha-jasmine/matchers/Controller.js b/js/lib/sencha-jasmine/matchers/Controller.js
new file mode 100644
index 0000000..f26044b
--- /dev/null
+++ b/js/lib/sencha-jasmine/matchers/Controller.js
@@ -0,0 +1,10 @@
+/**
+ * Sencha-specific matchers for convenient testing of Controller expectations
+ */
+beforeEach(function() {
+    this.addMatchers({
+        toHaveRendered: function(expected) {
+            
+        }
+    });
+});
\ No newline at end of file
diff --git a/js/lib/sencha-jasmine/matchers/Model.js b/js/lib/sencha-jasmine/matchers/Model.js
new file mode 100644
index 0000000..0c91149
--- /dev/null
+++ b/js/lib/sencha-jasmine/matchers/Model.js
@@ -0,0 +1,54 @@
+/**
+ * Sencha-specific matchers for convenient testing of Model expectations
+ */
+beforeEach(function() {
+    this.addMatchers({
+        /**
+         * Sample usage:
+         * expect('User').toHaveMany('Product');
+         */
+        toHaveMany: function(expected) {
+            if (typeof this.actual == 'string') {
+                this.actual = Ext.ModelManager.types[this.actual].prototype;
+            }
+            
+            var associations = this.actual.associations.items,
+                length       = associations.length,
+                association, i;
+            
+            for (i = 0; i < length; i++) {
+                association = associations[i];
+                
+                if (association.associatedName == expected && association.type == 'hasMany') {
+                    return true;
+                }
+            }
+            
+            return false;
+        },
+        
+        /**
+         * Sample usage:
+         * expect('Product').toBelongTo('User')
+         */
+        toBelongTo: function(expected) {
+            if (typeof this.actual == 'string') {
+                this.actual = Ext.ModelManager.types[this.actual].prototype;
+            }
+            
+            var associations = this.actual.associations.items,
+                length       = associations.length,
+                association, i;
+            
+            for (i = 0; i < length; i++) {
+                association = associations[i];
+                
+                if (association.associatedName == expected && association.type == 'belongsTo') {
+                    return true;
+                }
+            }
+            
+            return false;
+        }
+    });
+});
\ No newline at end of file
diff --git a/js/lib/sencha-jasmine/sencha-jasmine.css b/js/lib/sencha-jasmine/sencha-jasmine.css
new file mode 100644
index 0000000..784d48f
--- /dev/null
+++ b/js/lib/sencha-jasmine/sencha-jasmine.css
@@ -0,0 +1,226 @@
+body {
+    font-family:"Helvetica Neue Light", "Lucida Grande", "Calibri", "Arial", sans-serif;
+    margin:0;
+}
+
+.jasmine_reporter > * {
+    margin:10px;
+}
+
+.run_spec {
+    float:right;
+    font-size:10px;
+}
+
+/*banner*/
+.banner {
+    position:relative;
+    background:#fff;
+    -webkit-box-shadow:0 0 10px #ccc;
+    padding:4px 0 6px 6px;
+    margin:0 0 10px 0;
+}
+.banner .logo {
+    width:120px;
+    height:50px;
+
+    background:url(http://www.sencha.com/assets/images/logo-sencha-sm.png) no-repeat;
+}
+.banner .options {
+    position:absolute;
+    top:3px;
+    right:3px;
+    color:#666;
+    font-size:10px;
+}
+.banner .options .show {
+    text-align:right;
+}
+.banner .options .show > * {
+    display:inline-block;
+}
+.banner .options .show label {
+    margin-right:3px;
+}
+
+/*runner*/
+.runner,
+.suite {
+    display:block;
+
+    text-shadow:0 1px 0 #fff;
+
+    border:1px solid #bbb;
+    border-radius:5px;
+    -moz-border-radius:5px;
+    -webkit-border-radius:5px;
+
+    background:-webkit-gradient(linear, left top, left bottom, from(#eee), to(#d1d1d1));
+
+    -webkit-box-shadow:0 0 10px #ccc;
+
+    padding:6px;
+}
+.runner a,
+.suite a {
+    display:inline-block;
+
+    color:#eee;
+    font-size:11px;
+    text-decoration:none;
+    text-shadow:0 -1px 0 #000;
+
+    border:1px solid #111;
+    border-radius:5px;
+    -moz-border-radius:5px;
+    -webkit-border-radius:5px;
+
+    background:-webkit-gradient(linear, left top, left bottom, from(#555), to(#212121));
+
+    -webkit-background-clip: padding-box;
+
+    padding:1px 4px 2px 4px;
+}
+.runner .finished-at {
+    font-size:10px;
+
+    padding-top:1px;
+    padding-left:6px;
+}
+
+.runner.running {
+    text-shadow:0 1px 0 #EDECCA;
+
+    border-color:#D1CF84;
+
+    background:-webkit-gradient(linear, left top, left bottom, from(#EDE613), to(#DBD61F));
+}
+.runner.running a {
+    display:none;
+}
+
+.runner.failed a,
+.suite.failed a {
+    border-color:#660000;
+
+    background:-webkit-gradient(linear, left top, left bottom, from(#dd0000), to(#880000));
+}
+
+.runner.passed a,
+.suite.passed a {
+    border-color:#006600;
+
+    background:-webkit-gradient(linear, left top, left bottom, from(#00aa00), to(#006600));
+}
+
+/*suite*/
+.suite a.run_spec {
+    display:none;
+}
+.suite > a.description {
+    color:#000;
+    font-size:18px;
+    text-shadow:0 1px 0 #fff;
+
+    border:0;
+    background:transparent;
+}
+.suite .suite > a.description {
+    font-size:14px;
+}
+.suite.failed {
+    border-color:#E0C1C5;
+
+    background:-webkit-gradient(linear, left top, left bottom, from(#FFF7F8), to(#F0DADD));
+}
+.suite.failed a.description {
+    color:#440000;
+}
+.suite .suite {
+    margin:5px;
+}
+
+/*spec*/
+.spec {
+    margin: 5px;
+    padding-left: 1em;
+    clear: both;
+
+    border:1px solid #ccc;
+    border-radius:5px;
+    -moz-border-radius:5px;
+    -webkit-border-radius:5px;
+
+    background:#fff;
+
+    -webkit-box-shadow:inset 0 0 10px #ddd;
+
+    -webkit-background-clip:padding-box;
+
+    padding:10px;
+}
+.spec a.description {
+    display:block;
+
+    border:0;
+
+    background:transparent;
+
+    padding:0;
+
+    color:#000 !important;
+    font-size:16px;
+    text-shadow:none;
+}
+.spec .messages {
+    border:1px dashed #ccc;
+    border-radius:5px;
+    -moz-border-radius:5px;
+    -webkit-border-radius:5px;
+
+    background:#f1f1f1;
+
+    margin:10px 0 0 0;
+    padding:5px;
+
+    font-size:11px;
+    line-height:15px;
+}
+
+.passed,
+.skipped {
+    display:none;
+}
+
+.runner.passed,
+.runner.skipped {
+    display:block;
+}
+
+.suite.passed {
+    border-color:#AEBFA6;
+
+    background:-webkit-gradient(linear, left top, left bottom, from(#ECF2E9), to(#C8DBBF));
+}
+
+.show-passed .passed,
+.show-skipped .skipped {
+    display:block;
+}
+
+.stackTrace {
+  white-space: pre;
+  font-size: .8em;
+  margin-left: 10px;
+  max-height: 5em;
+  overflow: auto;
+  border: 1px inset red;
+  padding: 1em;
+  background: #eef;
+}
+
+
+#jasmine_content {
+  position:fixed;
+  right: 100%;
+}
\ No newline at end of file
diff --git a/js/lib/sencha-jasmine/sencha-jasmine.js b/js/lib/sencha-jasmine/sencha-jasmine.js
new file mode 100644
index 0000000..c670d5c
--- /dev/null
+++ b/js/lib/sencha-jasmine/sencha-jasmine.js
@@ -0,0 +1,88 @@
+jasmine.TrivialReporter.prototype.reportRunnerStarting = function(runner) {
+  var showPassed, showSkipped;
+
+  this.outerDiv = this.createDom('div', { className: 'jasmine_reporter' },
+      this.createDom('div', { className: 'banner' },
+        this.createDom('div', { className: 'logo' }),
+        this.createDom('div', { className: 'options' },
+            this.createDom('div', { className: 'show' },
+                this.createDom('label', { "for": "__jasmine_TrivialReporter_showPassed__" }, " passed "),
+                showPassed = this.createDom('input', { id: "__jasmine_TrivialReporter_showPassed__", type: 'checkbox' })
+            ),
+            this.createDom('div', { className: 'show' },
+                this.createDom('label', { "for": "__jasmine_TrivialReporter_showSkipped__" }, " skipped"),
+                showSkipped = this.createDom('input', { id: "__jasmine_TrivialReporter_showSkipped__", type: 'checkbox' })
+            ),
+            this.createDom('div', { className: 'show' },
+                this.createDom('label', { "for": "__jasmine_TrivialReporter_automaticReload__" }," automatic reload"),
+                automaticReload = this.createDom('input',
+                    (window.location.hash == "#reload") ? {id: "__jasmine_TrivialReporter_automaticReload__", type: 'checkbox', checked: true } : {id: "__jasmine_TrivialReporter_automaticReload__", type: 'checkbox'}
+                )
+            )
+            )
+          ),
+
+      this.runnerDiv = this.createDom('div', { className: 'runner running' },
+          this.createDom('a', { className: 'run_spec', href: '?' }, "run all"),
+          this.runnerMessageSpan = this.createDom('span', {}, "Running..."),
+          this.finishedAtSpan = this.createDom('span', { className: 'finished-at' }, ""))
+      );
+
+  this.document.body.appendChild(this.outerDiv);
+
+  var suites = runner.suites();
+  for (var i = 0; i < suites.length; i++) {
+    var suite = suites[i];
+    var suiteDiv = this.createDom('div', { className: 'suite' },
+        this.createDom('a', { className: 'run_spec', href: '?spec=' + encodeURIComponent(suite.getFullName()) }, "run"),
+        this.createDom('a', { className: 'description', href: '?spec=' + encodeURIComponent(suite.getFullName()) }, suite.description));
+    this.suiteDivs[suite.id] = suiteDiv;
+    var parentDiv = this.outerDiv;
+    if (suite.parentSuite) {
+      parentDiv = this.suiteDivs[suite.parentSuite.id];
+    }
+    parentDiv.appendChild(suiteDiv);
+  }
+
+  this.startedAt = new Date();
+
+  var self = this;
+  showPassed.onchange = function(evt) {
+    if (evt.target.checked) {
+      self.outerDiv.className += ' show-passed';
+    } else {
+      self.outerDiv.className = self.outerDiv.className.replace(/ show-passed/, '');
+    }
+  };
+
+  showSkipped.onchange = function(evt) {
+    if (evt.target.checked) {
+      self.outerDiv.className += ' show-skipped';
+    } else {
+      self.outerDiv.className = self.outerDiv.className.replace(/ show-skipped/, '');
+    }
+  };
+
+  automaticReload.onchange = function(evt) {
+      if (evt.target.checked) {
+        window.location.hash = "#reload";
+        window.location.reload();
+      } else {
+        window.location.hash = "";
+        window.location.reload();
+      }
+    };
+};
+
+if (window.location.hash == "#reload") {
+    var interval = setInterval(function() {
+        var isRunning = jasmine.getEnv().currentRunner_.queue.isRunning();
+        if (!isRunning) {
+            clearInterval(interval);
+        
+            setTimeout(function() {
+                window.location.reload();
+            }, 5000);
+        };
+    }, 1500);
+};
\ No newline at end of file
diff --git a/js/lib/ux/Browser.js b/js/lib/ux/Browser.js
new file mode 100644
index 0000000..99dd02b
--- /dev/null
+++ b/js/lib/ux/Browser.js
@@ -0,0 +1,186 @@
+/**
+ * Provides useful information about the current browser.
+ * Should not be manually instantiated unless for unit-testing; access the global instance
+ * stored in {@link Ext#browser} instead. Example:
+ *
+ *     if (Ext.browser.is.IE) {
+ *          // IE specific code here
+ *     }
+ *
+ *     if (Ext.browser.is.WebKit) {
+ *          // WebKit specific code here
+ *     }
+ *
+ *     console.log("Version " + Ext.browser.version);
+ *
+ * For a full list of supported values, refer to: {@link Ext.env.Browser#is}
+ */
+Ext.define('Ext.env.Browser', {
+    statics: {
+        browserNames: {
+            ie: 'IE',
+            firefox: 'Firefox',
+            safari: 'Safari',
+            chrome: 'Chrome',
+            opera: 'Opera',
+            other: 'Other'
+        },
+        engineNames: {
+            webkit: 'WebKit',
+            gecko: 'Gecko',
+            presto: 'Presto',
+            trident: 'Trident',
+            other: 'Other'
+        },
+        enginePrefixes: {
+            webkit: 'AppleWebKit/',
+            gecko: 'Gecko/',
+            presto: 'Presto/',
+            trident: 'Trident/'
+        },
+        browserPrefixes: {
+            ie: 'MSIE ',
+            firefox: 'Firefox/',
+            chrome: 'Chrome/',
+            safari: 'Version/',
+            opera: 'Opera/'
+        }
+    },
+
+    /**
+     * @property {Boolean} isSecure
+     * True if the page is running over SSL
+     */
+    isSecure: false,
+
+    /**
+     * @property {Boolean} isStrict
+     * True if the document is in strict mode
+     */
+    isStrict: false,
+
+    /**
+     * A "hybrid" property, can be either accessed as a method call, i.e:
+     *
+     *     if (Ext.browser.is('IE')) { ... }
+     *
+     * or as an object with boolean properties, i.e:
+     *
+     *     if (Ext.browser.is.IE) { ... }
+     *
+     * Versions can be conveniently checked as well. For example:
+     *
+     *     if (Ext.browser.is.IE6) { ... } // Equivalent to (Ext.browser.is.IE && Ext.browser.version.equals(6))
+     *
+     * Note that only {@link Ext.Version#getMajor major component}  and {@link Ext.Version#getShortVersion shortVersion}
+     * value of the version are available via direct property checking.
+     *
+     * Supported values are: IE, Firefox, Safari, Chrome, Opera, WebKit, Gecko, Presto, Trident and Other
+     *
+     * @param {String} value The OS name to check
+     * @return {Boolean}
+     * @method
+     */
+    is: Ext.emptyFn,
+
+    /**
+     * @property {String} name
+     * The full name of the current browser
+     * Possible values are: IE, Firefox, Safari, Chrome, Opera and Other.
+     * @readonly
+     */
+    name: null,
+
+    /**
+     * @property {Ext.Version} version
+     * Refer to {@link Ext.Version}.
+     * @readonly
+     */
+    version: null,
+
+    /**
+     * @property {String} engineName
+     * The full name of the current browser's engine.
+     * Possible values are: WebKit, Gecko, Presto, Trident and Other.
+     * @readonly
+     */
+    engineName: null,
+
+    /**
+     * @property {String} engineVersion
+     * Refer to {@link Ext.Version}.
+     * @readonly
+     */
+    engineVersion: null,
+
+    constructor: function() {
+        var userAgent      = this.userAgent = Ext.global.navigator.userAgent,
+            selfClass      = this.statics(),
+            browserMatch   = userAgent.match(new RegExp('((?:' + Ext.Object.getValues(selfClass.browserPrefixes).join(')|(?:') + '))([\\d\\._]+)')),
+            engineMatch    = userAgent.match(new RegExp('((?:' + Ext.Object.getValues(selfClass.enginePrefixes).join(')|(?:') + '))([\\d\\._]+)')),
+            browserName    = selfClass.browserNames.other,
+            browserVersion = '',
+            engineName     = selfClass.engineNames.other,
+            engineVersion  = '',
+            key, value;
+
+        this.is = function(name) {
+            return this.is[name] === true;
+        };
+
+        if (browserMatch) {
+            browserName = selfClass.browserNames[Ext.Object.getKey(selfClass.browserPrefixes, browserMatch[1])];
+            browserVersion = browserMatch[2];
+        }
+
+        if (engineMatch) {
+            engineName = selfClass.engineNames[Ext.Object.getKey(selfClass.enginePrefixes, engineMatch[1])];
+            engineVersion = engineMatch[2];
+        }
+
+        Ext.apply(this, {
+            engineName: engineName,
+            engineVersion: new Ext.Version(engineVersion),
+            name: browserName,
+            version: new Ext.Version(browserVersion)
+        });
+
+        this.is[this.name] = true;
+        this.is[this.name + (this.version.getMajor() || '')] = true;
+        this.is[this.name + this.version.getShortVersion()] = true;
+
+        for (key in selfClass.browserNames) {
+            if (selfClass.browserNames.hasOwnProperty(key)) {
+                value = selfClass.browserNames[key];
+                this.is[value] = (this.name === value);
+            }
+        }
+
+        this.is[this.name] = true;
+        this.is[this.engineName + (this.engineVersion.getMajor() || '')] = true;
+        this.is[this.engineName + this.engineVersion.getShortVersion()] = true;
+
+        for (key in selfClass.engineNames) {
+            if (selfClass.engineNames.hasOwnProperty(key)) {
+                value = selfClass.engineNames[key];
+                this.is[value] = (this.engineNames === value);
+            }
+        }
+
+        this.isSecure = /^https/i.test(Ext.global.location.protocol);
+
+        this.isStrict = Ext.global.document.compatMode === "CSS1Compat";
+
+        return this;
+    }
+
+}, function() {
+
+    /**
+     * @property {Ext.env.Browser} browser
+     * @member Ext
+     * Global convenient instance of {@link Ext.env.Browser}.
+     */
+    Ext.browser = new Ext.env.Browser();
+
+});
diff --git a/js/lib/ux/ColorCombo.js b/js/lib/ux/ColorCombo.js
new file mode 100644
index 0000000..2945b3b
--- /dev/null
+++ b/js/lib/ux/ColorCombo.js
@@ -0,0 +1,115 @@
+Ext.define('extensions.ColorCombo', {
+    extend:'Ext.form.ComboBox',//'Ext.form.field.Picker',//'Ext.form.field.Date',
+    alias: 'widget.colorCombo',
+    requires: ['Ext.picker.Color'],
+    
+    
+    constructor: function(){
+        this.callParent(arguments);
+    },
+    
+//    createPicker: function() {
+//        var me = this;
+//        Ext.create('Ext.picker.Color', {
+//            pickerField: me,
+//            ownerCt: me.ownerCt,
+//            renderTo: document.body,
+//            style: {backgroundColor: "#fff"},
+//            floating: true,
+//            hidden: true,
+//            focusOnShow: true,
+//            listeners: {
+//                scope: me,
+//                select: me.onSelect
+//            },
+//            keyNavConfig: {
+//                esc: function() {
+//                    me.collapse();
+//                }
+//            }
+//        });
+//    }
+    
+    createPicker: function() {
+        var me = this,
+            picker,
+            menuCls = Ext.baseCSSPrefix + 'menu',
+            opts = Ext.apply({
+                pickerField: me,
+                selModel: {
+                    mode: me.multiSelect ? 'SIMPLE' : 'SINGLE'
+                },
+                floating: true,
+                hidden: true,
+                ownerCt: me.ownerCt,
+                cls: me.el.up('.' + menuCls) ? menuCls : '',
+                store: me.store,
+                displayField: me.displayField,
+                focusOnToFront: false,
+                pageSize: me.pageSize,
+                tpl: me.tpl
+            }, me.listConfig, me.defaultListConfig);
+
+        picker = me.picker = Ext.create('Ext.picker.Color', opts);
+        if (me.pageSize) {
+            picker.pagingToolbar.on('beforechange', me.onPageChange, me);
+        }
+
+        me.mon(picker, {
+            itemclick: me.onItemClick,
+            refresh: me.onListRefresh,
+            scope: me
+        });
+
+        me.mon(picker.getSelectionModel(), {
+            'beforeselect': me.onBeforeSelect,
+            'beforedeselect': me.onBeforeDeselect,
+            'selectionchange': me.onListSelectionChange,
+            scope: me
+        });
+
+        return picker;
+    },
+
+    /**
+     * @private
+     * Enables the key nav for the BoundList when it is expanded.
+     */
+    onExpand: function() {
+        var me = this,
+            keyNav = me.listKeyNav,
+            selectOnTab = me.selectOnTab,
+            picker = me.getPicker();
+
+        // Handle BoundList navigation from the input field. Insert a tab listener specially to enable selectOnTab.
+        if (keyNav) {
+            keyNav.enable();
+        } else {
+            keyNav = me.listKeyNav = Ext.create('Ext.picker.Color', this.inputEl, {
+                boundList: picker,
+                forceKeyDown: true,
+                tab: function(e) {
+                    if (selectOnTab) {
+                        this.selectHighlighted(e);
+                        me.triggerBlur();
+                    }
+                    // Tab key event is allowed to propagate to field
+                    return true;
+                }
+            });
+        }
+        // While list is expanded, stop tab monitoring from Ext.form.field.Trigger so it doesn't short-circuit selectOnTab
+        if (selectOnTab) {
+            me.ignoreMonitorTab = true;
+        }
+
+        Ext.defer(keyNav.enable, 1, keyNav); //wait a bit so it doesn't react to the down arrow opening the picker
+        me.inputEl.focus();
+    }
+        
+        
+        
+//    
+//    +me.getPicker???
+    
+});
\ No newline at end of file
diff --git a/js/lib/ux/FisheyeMenu.js b/js/lib/ux/FisheyeMenu.js
new file mode 100644
index 0000000..3669a0a
--- /dev/null
+++ b/js/lib/ux/FisheyeMenu.js
@@ -0,0 +1,379 @@
+/*
+The MIT License
+
+Copyright (c) 2009 Niko Ni (bluepspower@163.com)
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+*/
+
+// namespace
+Ext.ns('Ext.ux');
+
+/**
+ * @class Ext.ux.FisheyeMenu
+ * @extends Ext.util.Observable
+ * @author Niko Ni
+ * @version v0.3
+ * @create 2009-06-26
+ * @update 2009-06-28
+ */
+Ext.ux.FisheyeMenu = Ext.extend(/*Ext.Component, {*/Ext.util.Observable, {
+    //------------------------------------------------------------
+    // config options
+    //------------------------------------------------------------
+    /**
+     * @config {Array} array of fisheye menu config object items
+     *                 Example object item:
+     *                 {
+     *                     text: 'some text',
+     *                     imagePath: 'some image path',
+     *                     url: 'some url (optional)',
+     *                     tip: 'some tip (optional)',
+     *                     target: 'target element (optional)'
+     *                 }
+     */
+    items : [],
+
+	/**
+	 * @config {Mixed Element} container element
+	 */
+//	renderTo : document.body,
+    renderTo: 'fisheye-menu',//Ext.getBody(),
+
+    /**
+     * @config {Number} the minimum width for each menu item
+     */
+    itemWidth : 50,
+
+    /**
+     * @config {Number} the distance from element that make item interaction
+     */    
+    vicinity : 35,
+
+    /**
+     * @config {String} horizontal alignment (left|center|right)
+     */
+    hAlign : 'center',
+
+    /**
+     * @config {String} vertical alignment (top|bottom)
+     */
+    vAlign : 'bottom',
+
+	/**
+	 * @config {Boolean} show menu item title or not
+	 */
+	showTitle : true,
+
+    //------------------------------------------------------------
+    // class constructor
+    //------------------------------------------------------------
+    /**
+     * @constructor
+     * @param config
+     */
+    constructor : function(config) {
+        Ext.apply(this, config);
+        Ext.ux.FisheyeMenu.superclass.constructor.call(this, config);
+
+        // add custom event
+        this.addEvents('change');
+
+        // initialize
+		this.init();
+    },
+    
+
+    //------------------------------------------------------------
+    // public/private methods
+    //------------------------------------------------------------
+    /**
+     * @private
+     */
+    init : function() {
+        this.el = Ext.get(this.renderTo);		
+
+		// init markup
+        this.initMarkup();
+
+		// init events
+        this.initEvents();
+    },
+
+    /**
+     * @private
+     */
+    initMarkup : function() {
+		// set necessary css class
+		this.setClass();
+
+		// for wrap class
+//		this.el.addClass(this.wrapCls);
+		this.el.addCls(this.wrapCls);
+
+        // fisheye menu container
+        this.containerEl = this.el.createChild({
+            tag : 'div',
+            cls : 'ux-fisheye-menu-container ' + this.vAlignCls
+        });
+
+		var sId = this.el.getAttribute('id') || Ext.id();
+
+        // build fisheye menu items
+        Ext.each(this.items, function(item, index) {
+			var sTitle = this.showTitle === true ? (item.tip || item.text) : '';
+			var arr = [{
+                tag : 'span',
+                html : item.text
+            }, {
+                tag : 'img',
+                src : item.imagePath,
+                alt : sTitle
+            }];
+			if(this.vOrient === 'top') {
+				arr = arr.reverse();
+			}
+
+            this.containerEl.createChild({
+				tag : 'a',
+				id : sId + '-' + index,
+				cls : 'ux-fisheye-menu-item ' + this.vAlignCls,
+//				href : item.url || '#',
+				title : sTitle,
+				target : item.target || '_blank',
+				children : arr,
+				id : item.id,
+				idComponent : item.idComponent
+            });
+        }, this);
+		
+        this.menuItems = this.containerEl.select('a.ux-fisheye-menu-item');
+        this.itemCount = this.menuItems.getCount();
+
+		// render UI
+		this.onRender();
+    },
+    
+    /**
+     * @private
+     */
+    initEvents : function() {
+		// hover or not
+        this.menuItems.on('mouseover', this.onItemHover, this);
+        this.menuItems.on('mouseout', this.onItemOut, this);
+
+		// for viewport mousemove event
+		Ext.getBody().on('mousemove', this.onItemMove, this);
+
+		// for viewport resize event
+		Ext.EventManager.on(window, 'resize', this.onRender, this);
+
+		// for custom event
+        this.containerEl.on('click', 
+        		function(ev, t) {
+        			window.MyDesktop.getModule(t.id).createWindow();
+        		}, this, 
+        		{
+        			delegate : 'a'
+        		}
+        );
+    },
+
+	/**
+	 * @private
+	 */
+	setClass : function() {
+		this.vOrient = this.vAlign.toLowerCase();
+		this.wrapCls = 'menu-wrap-' + this.vOrient;
+		this.vAlignCls = 'menu-align-' + this.vOrient;
+	},
+
+    /**
+     * @private
+     */
+    onItemMove : function(ev, t) {
+		// pointer
+        var p = ev.getXY(),
+			posX,
+			posY,
+			increment = 0;
+		switch(this.hAlign.toLowerCase()) {
+			case 'left':
+				posX = p[0] - this.pos[0];
+				break;
+			case 'right':
+				posX = p[0] - this.pos[0] - this.el.getWidth() + this.itemWidth * this.itemCount;
+				break;
+			default:
+				posX = p[0] - this.pos[0] - (this.el.getWidth() - this.itemWidth * this.itemCount)/2 - this.itemWidth/2;
+				break;
+		}
+
+        posY = Math.pow(p[1] - this.pos[1] - this.el.getHeight()/2, 2);
+
+        this.menuItems.each(function(item, all, index) {
+			// distance mathematical calculation reference from http://interface.eyecon.ro
+            var d = Math.sqrt(Math.pow(posX - index * this.itemWidth, 2) + posY);
+            d -= this.itemWidth/2;
+            d = d < 0 ? 0 : d;
+            d = d > this.vicinity ? this.vicinity : d;
+            d = this.vicinity - d;
+            var extraWidth = this.itemWidth * d / this.vicinity;
+            item.setStyle({
+                left : this.itemWidth * index + increment + 'px',
+                width : this.itemWidth + extraWidth + 'px'
+            });
+            increment += extraWidth;
+        }, this);
+
+        this.setPosContainer(increment);
+    },
+
+    /**
+     * @private
+     */
+    onItemHover : function(ev, t) {
+        var target = Ext.get(t);
+        target = target.is('img') ? target.up('a') : target;
+		var itemText = target.child('span');
+        if(itemText) {
+			itemText.show();
+		}
+    },
+
+    /**
+     * @private
+     */
+    onItemOut : function(ev, t) {
+        var target = Ext.get(t);
+        target = target.is('img') ? target.up('a') : target;
+		var itemText = target.child('span');
+        if(itemText) {
+			itemText.hide();
+		}
+    },
+
+	/**
+	 * @private
+	 */
+	onRender : function() {
+		this.pos = this.el.getXY();
+        this.setPosContainer(0);
+        this.setPosMenuItems();
+	},
+
+	/**
+	 * @private
+	 */
+	doAlignment : function() {
+		var aWrapCls = ['menu-wrap-top', 'menu-wrap-bottom'],
+			aAlignCls = ['menu-align-top', 'menu-align-bottom'];
+
+		this.setClass();
+		this.el.removeClass(aWrapCls).addClass(this.wrapCls);
+		this.containerEl.removeClass(aAlignCls).addClass(this.vAlignCls);
+
+		this.menuItems.each(function(item, all, index) {
+			var itemText = item.child('span');
+			var itemTextCfg = {
+				tag : 'span',
+				html : itemText.dom.innerHTML
+			};
+			item.removeClass(aAlignCls).addClass(this.vAlignCls);
+
+			if(this.vAlign.toLowerCase() === 'top') {
+				if(!item.last().is('span')) {
+					item.createChild(itemTextCfg);
+					itemText.remove();
+				}
+			} else {
+				if(!item.first().is('span')) {
+					item.insertFirst(itemTextCfg);
+					itemText.remove();
+				}
+			}			
+		}, this);
+	},
+		
+	/**
+	 * @public
+	 */
+	setAlign : function(cfg) {
+		var isChange = false;
+		// for horizontal alignment
+		if(cfg.hAlign) {
+			var sHAlign = cfg.hAlign.toLowerCase();
+			if(sHAlign != this.hAlign) {
+				this.hAlign = sHAlign;
+				isChange = true;
+			}
+		}
+		// for vertical alignment
+		if(cfg.vAlign) {
+			var sVAlign = cfg.vAlign.toLowerCase();			
+			if(sVAlign != this.vAlign) {
+				this.vAlign = sVAlign;
+				isChange = true;
+			}
+		}
+
+		if(isChange) {
+			this.doAlignment();
+			this.onRender();
+		}
+
+
+	},
+
+    /**
+     * @private
+     */
+    setPosContainer : function(increment) {
+		var iLeft;
+		switch(this.hAlign.toLowerCase()) {
+			case 'left':
+				iLeft = - increment/this.itemCount;
+				break;
+			case 'right':
+				iLeft = (this.el.getWidth() - this.itemWidth * this.itemCount) - increment/2;
+				break;
+			default:
+				iLeft = (this.el.getWidth() - this.itemWidth * this.itemCount)/2 - increment/2;
+				break;
+		}
+
+		this.containerEl.setStyle({
+			left : iLeft + 'px',
+			width : this.itemWidth * this.itemCount + increment + 'px'
+		});
+    },
+
+    /**
+     * @private
+     */    
+    setPosMenuItems : function() {
+        this.menuItems.each(function(item, all, index) {
+            item.setStyle({
+                left : this.itemWidth * index + 'px',
+                width : this.itemWidth + 'px'
+            });
+        }, this);
+    }
+
+});  // end of Ext.ux.FisheyeMenu
\ No newline at end of file
diff --git a/js/lib/ux/SelectableTextArea.js b/js/lib/ux/SelectableTextArea.js
new file mode 100644
index 0000000..cfbccc0
--- /dev/null
+++ b/js/lib/ux/SelectableTextArea.js
@@ -0,0 +1,91 @@
+Ext.define('extensions.SelectableTextArea', {
+    extend:'Ext.form.field.TextArea',
+    alias: 'widget.selectableTextArea',
+
+    constructor: function(){
+    	this.callParent(arguments);
+    },
+		
+    getSelection : function() {
+//		var domElement = this.getEl().dom;
+    	var domElement = this.inputEl.dom;
+		
+		if (Ext.isIE) {
+		    //Works only if no other form field has been focused after this field
+		    domElement.focus();
+            var range = document.selection.createRange();
+            var selectedTxt = range.text;/// selected text OK
+            var bookmark = range.getBookmark();
+            var selection = domElement.createTextRange();
+            selection.moveToBookmark(bookmark);
+            var before = domElement.createTextRange();
+            before.collapse(true);//set start of selection to beginning
+            before.setEndPoint("EndToStart", selection);
+            
+            var after = domElement.createTextRange();
+            after.setEndPoint("StartToEnd", selection);
+            return {
+                selectionStart: before.text.length,
+                selectionEnd: before.text.length + selectedTxt.length,
+                beforeText: before.text,
+                text: selection.text,
+                afterText: after.text
+            };
+            
+		} else { // not IE
+			if (domElement.selectionEnd!=null && domElement.selectionStart!=null) {
+				if (domElement.selectionEnd >= domElement.selectionStart){ 
+					return {
+						selectionStart     : domElement.selectionStart,
+						selectionEnd    : domElement.selectionEnd,
+						beforeText         : domElement.value.substr(0, domElement.selectionStart),
+						text             : domElement.value.substr(domElement.selectionStart, domElement.selectionEnd - domElement.selectionStart),
+						afterText         : domElement.value.substr(domElement.selectionEnd)
+					};
+				} 
+			}
+		}
+		return null;
+    },
+
+	getSelectedText : function() {
+		var selection = this.getSelection();
+		return selection==null?null:selection.text;
+	},
+
+//Ext.form.TextField.prototype.getCaretPosition = function(ctrl) {
+//	var CaretPos = 0;	
+//	var domElement = this.getEl().dom;
+//	// IE Support
+//	if (document.selection) {
+//		domElement.focus ();
+//		var Sel = document.selection.createRange ();
+//		Sel.moveStart ('character', -domElement.value.length);
+//		CaretPos = Sel.text.length;
+//	}
+//	//	Firefox support
+//	else if (domElement.selectionStart || domElement.selectionStart === '0') {
+//		CaretPos = domElement.selectionStart;
+//	}
+//	return (CaretPos);
+//}
+
+	setCaretPosition : function(pos){
+
+        var domElement = this.inputEl.dom;
+	    
+		if(domElement.setSelectionRange)
+		{
+			domElement.focus();
+			domElement.setSelectionRange(pos,pos);
+		}
+		else if (domElement.createTextRange) {
+			var range = domElement.createTextRange();
+			range.collapse(true);
+			range.moveEnd('character', pos);
+			range.moveStart('character', pos);
+			range.select();
+		}
+	}
+	
+});
\ No newline at end of file
diff --git a/js/lib/ux/desktop/App.js b/js/lib/ux/desktop/App.js
new file mode 100755
index 0000000..d731bc8
--- /dev/null
+++ b/js/lib/ux/desktop/App.js
@@ -0,0 +1,175 @@
+/*
+
+This file is part of Ext JS 4
+
+Copyright (c) 2011 Sencha Inc
+
+Contact:  http://www.sencha.com/contact
+
+GNU General Public License Usage
+This file may be used under the terms of the GNU General Public License version 3.0 as published by the Free Software Foundation and appearing in the file LICENSE included in the packaging of this file.  Please review the following information to ensure the GNU General Public License version 3.0 requirements will be met: http://www.gnu.org/copyleft/gpl.html.
+
+If you are unsure which license is appropriate for your use, please contact the sales department at http://www.sencha.com/contact.
+
+*/
+/*!
+ * Ext JS Library 4.0
+ * Copyright(c) 2006-2011 Sencha Inc.
+ * licensing@sencha.com
+ * http://www.sencha.com/license
+ */
+
+Ext.define('Ext.ux.desktop.App', {
+    mixins: {
+        observable: 'Ext.util.Observable'
+    },
+
+    requires: [
+        'Ext.container.Viewport',
+
+        'Ext.ux.desktop.Desktop'
+    ],
+
+    isReady: false,
+    modules: null,
+    useQuickTips: true,
+
+    constructor: function (config) {
+        var me = this;
+        me.addEvents(
+            'ready',
+            'beforeunload'
+        );
+
+        me.mixins.observable.constructor.call(this, config);
+
+        if (Ext.isReady) {
+            Ext.Function.defer(me.init, 10, me);
+        } else {
+            Ext.onReady(me.init, me);
+        }
+    },
+
+    init: function() {
+        var me = this, desktopCfg;
+
+        if (me.useQuickTips) {
+            Ext.QuickTips.init();
+        }
+
+        me.modules = me.getModules();
+        if (me.modules) {
+            me.initModules(me.modules);
+        }
+
+        desktopCfg = me.getDesktopConfig();
+        me.desktop = new Ext.ux.desktop.Desktop(desktopCfg);
+
+        me.viewport = new Ext.container.Viewport({
+            layout: 'fit',
+            items: [ me.desktop ]
+        });
+
+        Ext.EventManager.on(window, 'beforeunload', me.onUnload, me);
+
+        me.isReady = true;
+        me.fireEvent('ready', me);
+        
+        // optionally show Module(s) at initialisation 
+        this.initProject();
+    },
+
+    /**
+     * This method returns the configuration object for the Desktop object. A derived
+     * class can override this method, call the base version to build the config and
+     * then modify the returned object before returning it.
+     */
+    getDesktopConfig: function () {
+        var me = this, cfg = {
+            app: me,
+            taskbarConfig: me.getTaskbarConfig()
+        };
+
+        Ext.apply(cfg, me.desktopConfig);
+        return cfg;
+    },
+
+    getModules: Ext.emptyFn,
+
+    /**
+     * This method returns the configuration object for the Start Button. A derived
+     * class can override this method, call the base version to build the config and
+     * then modify the returned object before returning it.
+     */
+    getStartConfig: function () {
+        var me = this, cfg = {
+            app: me,
+            menu: []
+        };
+
+        Ext.apply(cfg, me.startConfig);
+
+        Ext.each(me.modules, function (module) {
+            if (module.launcher) {
+                cfg.menu.push(module.launcher);
+            }
+        });
+
+        return cfg;
+    },
+
+    /**
+     * This method returns the configuration object for the TaskBar. A derived class
+     * can override this method, call the base version to build the config and then
+     * modify the returned object before returning it.
+     */
+    getTaskbarConfig: function () {
+        var me = this, cfg = {
+            app: me,
+            startConfig: me.getStartConfig()
+        };
+
+        Ext.apply(cfg, me.taskbarConfig);
+        return cfg;
+    },
+
+    initModules : function(modules) {
+        var me = this;
+        Ext.each(modules, function (module) {
+            module.app = me;
+        });
+    },
+
+    getModule : function(name) {
+    	var ms = this.modules;
+        for (var i = 0, len = ms.length; i < len; i++) {
+            var m = ms[i];
+            if (m.id == name || m.appType == name) {
+                return m;
+            }
+        }
+        return null;
+    },
+
+    onReady : function(fn, scope) {
+        if (this.isReady) {
+            fn.call(scope, this);
+        } else {
+            this.on({
+                ready: fn,
+                scope: scope,
+                single: true
+            });
+        }
+    },
+
+    getDesktop : function() {
+        return this.desktop;
+    },
+
+    onUnload : function(e) {
+        if (this.fireEvent('beforeunload', this) === false) {
+            e.stopEvent();
+        }
+    }
+});
diff --git a/js/lib/ux/desktop/Desktop.js b/js/lib/ux/desktop/Desktop.js
new file mode 100755
index 0000000..33a5945
--- /dev/null
+++ b/js/lib/ux/desktop/Desktop.js
@@ -0,0 +1,470 @@
+/*!
+ * Ext JS Library 4.0
+ * Copyright(c) 2006-2011 Sencha Inc.
+ * licensing@sencha.com
+ * http://www.sencha.com/license
+ */
+
+/**
+ * @class Ext.ux.desktop.Desktop
+ * @extends Ext.panel.Panel
+ * <p>This class manages the wallpaper, shortcuts and taskbar.</p>
+ */
+Ext.define('Ext.ux.desktop.Desktop', {
+    extend: 'Ext.panel.Panel',
+
+    alias: 'widget.desktop',
+
+    uses: [
+        'Ext.util.MixedCollection',
+        'Ext.menu.Menu',
+        'Ext.view.View', // dataview
+        'Ext.window.Window',
+
+        'Ext.ux.desktop.TaskBar',
+        'Ext.ux.desktop.Wallpaper'
+    ],
+
+    activeWindowCls: 'ux-desktop-active-win',
+    inactiveWindowCls: 'ux-desktop-inactive-win',
+    lastActiveWindow: null,
+
+    border: false,
+    html: '&#160;',
+    layout: 'fit',
+
+    xTickSize: 1,
+    yTickSize: 1,
+
+    app: null,
+
+    /**
+     * @cfg {Array|Store} shortcuts
+     * The items to add to the DataView. This can be a {@link Ext.data.Store Store} or a
+     * simple array. Items should minimally provide the fields in the
+     * {@link Ext.ux.desktop.ShorcutModel ShortcutModel}.
+     */
+    shortcuts: null,
+
+    /**
+     * @cfg {String} shortcutItemSelector
+     * This property is passed to the DataView for the desktop to select shortcut items.
+     * If the {@link #shortcutTpl} is modified, this will probably need to be modified as
+     * well.
+     */
+    shortcutItemSelector: 'td.ux-desktop-shortcut-item',
+
+    /**
+     * @cfg {String} shortcutTpl
+     * This XTemplate is used to render items in the DataView. If this is changed, the
+     * {@link shortcutItemSelect} will probably also need to changed.
+     */
+ /*  shortcutTpl: [
+        '<tpl for=".">',
+            '<div class="ux-desktop-shortcut" id="{name}-shortcut">',
+                '<div class="ux-desktop-shortcut-icon {iconCls}">',
+                    '<img src="',Ext.BLANK_IMAGE_URL,'" title="{name}">',
+                '</div>',
+                '<span class="ux-desktop-shortcut-text">{name}</span>',
+            '</div>',
+        '</tpl>',
+        '<div class="x-clear"></div>'
+    ],
+ */
+    /**
+     * @cfg {Object} taskbarConfig
+     * The config object for the TaskBar.
+     */
+    taskbarConfig: null,
+
+    windowMenu: null,
+
+    initComponent: function () {
+        var me = this;
+
+        me.windowMenu = new Ext.menu.Menu(me.createWindowMenu());
+
+        me.bbar = me.taskbar = new Ext.ux.desktop.TaskBar(me.taskbarConfig);
+        me.taskbar.windowMenu = me.windowMenu;
+
+        me.windows = new Ext.util.MixedCollection();
+
+        me.contextMenu = new Ext.menu.Menu(me.createDesktopMenu());
+ 
+        me.items = [
+            { xtype: 'wallpaper', id: me.id+'_wallpaper' },
+            me.createDataView()
+        ];
+ 
+        me.callParent();
+  
+        me.shortcutsView = me.items.getAt(1);
+	 
+        me.shortcutsView.on('itemclick', me.onShortcutItemClick, me);
+
+        var wallpaper = me.wallpaper;
+        me.wallpaper = me.items.getAt(0);
+        if (wallpaper) {
+            me.setWallpaper(wallpaper, me.wallpaperStretch);
+        }
+    },
+
+    afterRender: function () {
+        var me = this;
+        me.callParent();
+        me.el.on('contextmenu', me.onDesktopMenu, me);
+    },
+
+    //------------------------------------------------------
+    // Overrideable configuration creation methods    
+/*    
+    createDataView: function () {
+        var me = this;
+        return {
+            xtype: 'dataview',
+            overItemCls: 'x-view-over',
+            trackOver: true,
+            itemSelector: me.shortcutItemSelector,
+            store: me.shortcuts,
+            style: {
+                position: 'absolute'
+            },
+            x: 0, y: 0,
+            tpl: new Ext.XTemplate(me.shortcutTpl)
+        };
+    },
+  */    
+   createDataView: function () {
+         var me = this;
+         tpl =  new Ext.XTemplate (
+              '<table class="ux-desktop-shortcut">',
+                '<tr width="100%">',
+                '<td width="100%"/>',
+                 '<tpl for=".">',                            		            
+		  '<td class="ux-desktop-shortcut-item" " id="{name}-shortcut" >',
+                       '<span class="ux-desktop-shortcut-text">{name}</span>',
+                       '<br/>',
+		       '<img class="ux-desktop-shortcut-icon" src="js/resources/images/64x64/{iconCls}.png" />', 		       
+		   '</td>',													
+                 '</tpl>',
+		'</tr>', 
+             '</table>' 
+         );         
+        return {
+            xtype: 'dataview',
+            overItemCls: 'x-view-over',
+            trackOver: true,
+            itemSelector: me.shortcutItemSelector ,
+            store: me.shortcuts,  
+	    style: {
+                 position: 'absolute'
+            },        
+            tpl: tpl
+        };
+    },
+    
+    createDesktopMenu: function () {
+        var me = this, ret = {
+            items: me.contextMenuItems || []
+        };
+
+        if (ret.items.length) {
+            ret.items.push('-');
+        }
+
+        ret.items.push(
+                { text: 'Tile', handler: me.tileWindows, scope: me, minWindows: 1 },
+                { text: 'Cascade', handler: me.cascadeWindows, scope: me, minWindows: 1 })
+
+        return ret;
+    },
+
+    createWindowMenu: function () {
+        var me = this;
+        return {
+            defaultAlign: 'br-tr',
+            items: [
+                { text: 'Restore', handler: me.onWindowMenuRestore, scope: me },
+                { text: 'Minimize', handler: me.onWindowMenuMinimize, scope: me },
+                { text: 'Maximize', handler: me.onWindowMenuMaximize, scope: me },
+                '-',
+                { text: 'Close', handler: me.onWindowMenuClose, scope: me }
+            ],
+            listeners: {
+                beforeshow: me.onWindowMenuBeforeShow,
+                hide: me.onWindowMenuHide,
+                scope: me
+            }
+        };
+    },
+
+    //------------------------------------------------------
+    // Event handler methods
+
+    onDesktopMenu: function (e) {
+        var me = this, menu = me.contextMenu;
+        e.stopEvent();
+        if (!menu.rendered) {
+            menu.on('beforeshow', me.onDesktopMenuBeforeShow, me);
+        }
+        menu.showAt(e.getXY());
+        menu.doConstrain();
+    },
+
+    onDesktopMenuBeforeShow: function (menu) {
+        var me = this, count = me.windows.getCount();
+
+        menu.items.each(function (item) {
+            var min = item.minWindows || 0;
+            item.setDisabled(count < min);
+        });
+    },
+
+    onShortcutItemClick: function (dataView, record) {
+        var me = this, module = me.app.getModule(record.data.module),
+            win = module && module.createWindow();
+
+        if (win) {
+            me.restoreWindow(win);
+        }
+    },
+
+    onWindowClose: function(win) {
+        var me = this;
+        me.windows.remove(win);
+        me.taskbar.removeTaskButton(win.taskButton);
+        me.updateActiveWindow();
+    },
+
+    //------------------------------------------------------
+    // Window context menu handlers
+
+    onWindowMenuBeforeShow: function (menu) {
+        var items = menu.items.items, win = menu.theWin;
+        items[0].setDisabled(win.maximized !== true && win.hidden !== true); // Restore
+        items[1].setDisabled(win.minimized === true); // Minimize
+        items[2].setDisabled(win.maximized === true || win.hidden === true); // Maximize
+        
+        items[4].setDisabled(win.closable !== true); // Close //BRE
+        
+    },
+
+    onWindowMenuClose: function () {
+        var me = this, win = me.windowMenu.theWin;
+
+        win.close();
+    },
+
+    onWindowMenuHide: function (menu) {
+        menu.theWin = null;
+    },
+
+    onWindowMenuMaximize: function () {
+        var me = this, win = me.windowMenu.theWin;
+
+        win.maximize();
+        win.toFront();
+    },
+
+    onWindowMenuMinimize: function () {
+        var me = this, win = me.windowMenu.theWin;
+
+        win.minimize();
+    },
+
+    onWindowMenuRestore: function () {
+        var me = this, win = me.windowMenu.theWin;
+
+        me.restoreWindow(win);
+    },
+
+    //------------------------------------------------------
+    // Dynamic (re)configuration methods
+
+    getWallpaper: function () {
+        return this.wallpaper.wallpaper;
+    },
+
+    setTickSize: function(xTickSize, yTickSize) {
+        var me = this,
+            xt = me.xTickSize = xTickSize,
+            yt = me.yTickSize = (arguments.length > 1) ? yTickSize : xt;
+
+        me.windows.each(function(win) {
+            var dd = win.dd, resizer = win.resizer;
+            dd.xTickSize = xt;
+            dd.yTickSize = yt;
+            resizer.widthIncrement = xt;
+            resizer.heightIncrement = yt;
+        });
+    },
+
+    setWallpaper: function (wallpaper, stretch) {
+        this.wallpaper.setWallpaper(wallpaper, stretch);
+        return this;
+    },
+
+    //------------------------------------------------------
+    // Window management methods
+
+    cascadeWindows: function() {
+        var x = 0, y = 0,
+            zmgr = this.getDesktopZIndexManager();
+
+        zmgr.eachBottomUp(function(win) {
+            if (win.isWindow && win.isVisible() && !win.maximized) {
+                win.setPosition(x, y);
+                x += 20;
+                y += 20;
+            }
+        });
+    },
+
+    createWindow: function(config, cls) {
+        var me = this, win, cfg = Ext.applyIf(config || {}, {
+                stateful: false,
+                isWindow: true,
+                constrainHeader: true,
+                minimizable: true,
+                maximizable: true
+            });
+
+        cls = cls || Ext.window.Window;
+        win = me.add(new cls(cfg));
+
+        me.windows.add(win);
+
+        win.taskButton = me.taskbar.addTaskButton(win);
+        win.animateTarget = win.taskButton.el;
+
+        win.on({
+            activate: me.updateActiveWindow,
+            beforeshow: me.updateActiveWindow,
+            deactivate: me.updateActiveWindow,
+            minimize: me.minimizeWindow,
+            destroy: me.onWindowClose,
+            scope: me
+        });
+
+        win.on({
+            boxready: function () {
+                win.dd.xTickSize = me.xTickSize;
+                win.dd.yTickSize = me.yTickSize;
+
+                if (win.resizer) {
+                    win.resizer.widthIncrement = me.xTickSize;
+                    win.resizer.heightIncrement = me.yTickSize;
+                }
+            },
+            single: true
+        });
+
+        // replace normal window close w/fadeOut animation:
+        win.doClose = function ()  {
+            win.doClose = Ext.emptyFn; // dblclick can call again...
+            win.el.disableShadow();
+            win.el.fadeOut({
+                listeners: {
+                    afteranimate: function () {
+                        win.destroy();
+                    }
+                }
+            });
+        };
+
+        return win;
+    },
+
+    getActiveWindow: function () {
+        var win = null,
+            zmgr = this.getDesktopZIndexManager();
+
+        if (zmgr) {
+            // We cannot rely on activate/deactive because that fires against non-Window
+            // components in the stack.
+
+            zmgr.eachTopDown(function (comp) {
+                if (comp.isWindow && !comp.hidden) {
+                    win = comp;
+                    return false;
+                }
+                return true;
+            });
+        }
+
+        return win;
+    },
+
+    getDesktopZIndexManager: function () {
+        var windows = this.windows;
+        // TODO - there has to be a better way to get this...
+        return (windows.getCount() && windows.getAt(0).zIndexManager) || null;
+    },
+
+    getWindow: function(id) {
+        return this.windows.get(id);
+    },
+
+    minimizeWindow: function(win) {
+        win.minimized = true;
+        win.hide();
+    },
+
+    restoreWindow: function (win) {
+        if (win.isVisible()) {
+            win.restore();
+            win.toFront();
+        } else {
+            win.show();
+        }
+        return win;
+    },
+
+    tileWindows: function() {
+        var me = this, availWidth = me.body.getWidth(true);
+        var x = me.xTickSize, y = me.yTickSize, nextY = y;
+
+        me.windows.each(function(win) {
+            if (win.isVisible() && !win.maximized) {
+                var w = win.el.getWidth();
+
+                // Wrap to next row if we are not at the line start and this Window will
+                // go off the end
+                if (x > me.xTickSize && x + w > availWidth) {
+                    x = me.xTickSize;
+                    y = nextY;
+                }
+
+                win.setPosition(x, y);
+                x += w + me.xTickSize;
+                nextY = Math.max(nextY, y + win.el.getHeight() + me.yTickSize);
+            }
+        });
+    },
+
+    updateActiveWindow: function () {
+        var me = this, activeWindow = me.getActiveWindow(), last = me.lastActiveWindow;
+        if (activeWindow === last) {
+            return;
+        }
+
+        if (last) {
+            if (last.el.dom) {
+                last.addCls(me.inactiveWindowCls);
+                last.removeCls(me.activeWindowCls);
+            }
+            last.active = false;
+        }
+
+        me.lastActiveWindow = activeWindow;
+
+        if (activeWindow) {
+            activeWindow.addCls(me.activeWindowCls);
+            activeWindow.removeCls(me.inactiveWindowCls);
+            activeWindow.minimized = false;
+            activeWindow.active = true;
+        }
+
+        me.taskbar.setActiveButton(activeWindow && activeWindow.taskButton);
+    }
+});
diff --git a/js/lib/ux/desktop/FitAllLayout.js b/js/lib/ux/desktop/FitAllLayout.js
new file mode 100644
index 0000000..e14ffd5
--- /dev/null
+++ b/js/lib/ux/desktop/FitAllLayout.js
@@ -0,0 +1,63 @@
+/*
+
+This file is part of Ext JS 4
+
+Copyright (c) 2011 Sencha Inc
+
+Contact:  http://www.sencha.com/contact
+
+GNU General Public License Usage
+This file may be used under the terms of the GNU General Public License version 3.0 as published by the Free Software Foundation and appearing in the file LICENSE included in the packaging of this file.  Please review the following information to ensure the GNU General Public License version 3.0 requirements will be met: http://www.gnu.org/copyleft/gpl.html.
+
+If you are unsure which license is appropriate for your use, please contact the sales department at http://www.sencha.com/contact.
+
+*/
+/*!
+ * Ext JS Library 4.0
+ * Copyright(c) 2006-2011 Sencha Inc.
+ * licensing@sencha.com
+ * http://www.sencha.com/license
+ */
+
+/**
+ * @class Ext.ux.desktop.FitAllLayout
+ * @extends Ext.layout.container.AbstractFit
+ * <p>This layout applies a "fit" layout to all items, overlaying them on top of each
+ * other.</p>
+ */
+Ext.define('Ext.ux.desktop.FitAllLayout', {
+    extend: 'Ext.layout.container.AbstractFit',
+    alias: 'layout.fitall',
+
+    // @private
+    onLayout : function() {
+        var me = this;
+        me.callParent();
+
+        var size = me.getLayoutTargetSize();
+
+        me.owner.items.each(function (item) {
+            me.setItemBox(item, size);
+        });
+    },
+
+    getTargetBox : function() {
+        return this.getLayoutTargetSize();
+    },
+
+    setItemBox : function(item, box) {
+        var me = this;
+        if (item && box.height > 0) {
+            if (item.layoutManagedWidth == 2) {
+               box.width = undefined;
+            }
+            if (item.layoutManagedHeight == 2) {
+               box.height = undefined;
+            }
+
+            item.getEl().position('absolute', null, 0, 0);
+            me.setItemSize(item, box.width, box.height);
+        }
+    }
+});
+
diff --git a/js/lib/ux/desktop/Module.js b/js/lib/ux/desktop/Module.js
new file mode 100755
index 0000000..3e65c3f
--- /dev/null
+++ b/js/lib/ux/desktop/Module.js
@@ -0,0 +1,34 @@
+/*
+
+This file is part of Ext JS 4
+
+Copyright (c) 2011 Sencha Inc
+
+Contact:  http://www.sencha.com/contact
+
+GNU General Public License Usage
+This file may be used under the terms of the GNU General Public License version 3.0 as published by the Free Software Foundation and appearing in the file LICENSE included in the packaging of this file.  Please review the following information to ensure the GNU General Public License version 3.0 requirements will be met: http://www.gnu.org/copyleft/gpl.html.
+
+If you are unsure which license is appropriate for your use, please contact the sales department at http://www.sencha.com/contact.
+
+*/
+/*!
+ * Ext JS Library 4.0
+ * Copyright(c) 2006-2011 Sencha Inc.
+ * licensing@sencha.com
+ * http://www.sencha.com/license
+ */
+
+Ext.define('Ext.ux.desktop.Module', {
+    mixins: {
+        observable: 'Ext.util.Observable'
+    },
+
+    constructor: function (config) {
+        this.mixins.observable.constructor.call(this, config);
+        this.init();
+    },
+
+    init: Ext.emptyFn
+});
+
diff --git a/js/lib/ux/desktop/ShortcutModel.js b/js/lib/ux/desktop/ShortcutModel.js
new file mode 100644
index 0000000..b5fcc3d
--- /dev/null
+++ b/js/lib/ux/desktop/ShortcutModel.js
@@ -0,0 +1,20 @@
+/*!
+ * Ext JS Library 4.0
+ * Copyright(c) 2006-2011 Sencha Inc.
+ * licensing@sencha.com
+ * http://www.sencha.com/license
+ */
+
+/**
+ * @class Ext.ux.desktop.ShortcutModel
+ * @extends Ext.data.Model
+ * This model defines the minimal set of fields for desktop shortcuts.
+ */
+Ext.define('Ext.ux.desktop.ShortcutModel', {
+    extend: 'Ext.data.Model',
+    fields: [
+       { name: 'name' },
+       { name: 'iconCls' },
+       { name: 'module' }
+    ]
+});
diff --git a/js/lib/ux/desktop/StartMenu.js b/js/lib/ux/desktop/StartMenu.js
new file mode 100755
index 0000000..b6721c2
--- /dev/null
+++ b/js/lib/ux/desktop/StartMenu.js
@@ -0,0 +1,101 @@
+/*!
+ * Ext JS Library 4.0
+ * Copyright(c) 2006-2011 Sencha Inc.
+ * licensing@sencha.com
+ * http://www.sencha.com/license
+ */
+
+Ext.define('Ext.ux.desktop.StartMenu', {
+    extend: 'Ext.panel.Panel',
+
+    requires: [
+        'Ext.menu.Menu',
+        'Ext.toolbar.Toolbar'
+    ],
+
+    ariaRole: 'menu',
+
+    cls: 'x-menu ux-start-menu',
+
+    defaultAlign: 'bl-tl',
+
+    iconCls: 'user',
+
+    floating: true,
+
+    shadow: true,
+
+    // We have to hardcode a width because the internal Menu cannot drive our width.
+    // This is combined with changing the align property of the menu's layout from the
+    // typical 'stretchmax' to 'stretch' which allows the the items to fill the menu
+    // area.
+    width: 300,
+
+    initComponent: function() {
+        var me = this, menu = me.menu;
+
+        me.menu = new Ext.menu.Menu({
+            cls: 'ux-start-menu-body',
+            border: false,
+            floating: false,
+            items: menu
+        });
+        me.menu.layout.align = 'stretch';
+
+        me.items = [me.menu];
+        me.layout = 'fit';
+
+        Ext.menu.Manager.register(me);
+        me.callParent();
+        // TODO - relay menu events
+
+        me.toolbar = new Ext.toolbar.Toolbar(Ext.apply({
+            dock: 'right',
+            cls: 'ux-start-menu-toolbar',
+            vertical: true,
+            width: 100
+        }, me.toolConfig));
+
+        me.toolbar.layout.align = 'stretch';
+        me.addDocked(me.toolbar);
+
+        delete me.toolItems;
+
+        me.on('deactivate', function () {
+            me.hide();
+        });
+    },
+
+    addMenuItem: function() {
+        var cmp = this.menu;
+        cmp.add.apply(cmp, arguments);
+    },
+
+    addToolItem: function() {
+        var cmp = this.toolbar;
+        cmp.add.apply(cmp, arguments);
+    },
+
+    showBy: function(cmp, pos, off) {
+        var me = this;
+
+        if (me.floating && cmp) {
+            me.layout.autoSize = true;
+            me.show();
+
+            // Component or Element
+            cmp = cmp.el || cmp;
+
+            // Convert absolute to floatParent-relative coordinates if necessary.
+            var xy = me.el.getAlignToXY(cmp, pos || me.defaultAlign, off);
+            if (me.floatParent) {
+                var r = me.floatParent.getTargetEl().getViewRegion();
+                xy[0] -= r.x;
+                xy[1] -= r.y;
+            }
+            me.showAt(xy);
+            me.doConstrain();
+        }
+        return me;
+    }
+}); // StartMenu
diff --git a/js/lib/ux/desktop/TaskBar.js b/js/lib/ux/desktop/TaskBar.js
new file mode 100755
index 0000000..43addde
--- /dev/null
+++ b/js/lib/ux/desktop/TaskBar.js
@@ -0,0 +1,261 @@
+/*!
+ * Ext JS Library 4.0
+ * Copyright(c) 2006-2011 Sencha Inc.
+ * licensing@sencha.com
+ * http://www.sencha.com/license
+ */
+
+/**
+ * @class Ext.ux.desktop.TaskBar
+ * @extends Ext.toolbar.Toolbar
+ */
+Ext.define('Ext.ux.desktop.TaskBar', {
+    extend: 'Ext.toolbar.Toolbar', // TODO - make this a basic hbox panel...
+
+    requires: [
+        'Ext.button.Button',
+        'Ext.resizer.Splitter',
+        'Ext.menu.Menu',
+        'Ext.ux.desktop.StartMenu'
+    ],
+
+    alias: 'widget.taskbar',
+
+    cls: 'ux-taskbar',
+
+    /**
+     * @cfg {String} startBtnText
+     * The text for the Start Button.
+     */
+    startBtnText: 'Start',
+
+    initComponent: function () {
+        var me = this;
+
+        me.startMenu = new Ext.ux.desktop.StartMenu(me.startConfig);
+
+        me.quickStart = new Ext.toolbar.Toolbar(me.getQuickStart());
+
+        me.windowBar = new Ext.toolbar.Toolbar(me.getWindowBarConfig());
+
+        me.tray = new Ext.toolbar.Toolbar(me.getTrayConfig());
+
+        me.items = [
+            {
+                xtype: 'button',
+                cls: 'ux-start-button',
+                iconCls: 'ux-start-button-icon',
+                menu: me.startMenu,
+                menuAlign: 'bl-tl',
+                text: me.startBtnText
+            },
+            me.quickStart,
+            {
+                xtype: 'splitter', html: '&#160;',
+                height: 14, width: 2, // TODO - there should be a CSS way here
+                cls: 'x-toolbar-separator x-toolbar-separator-horizontal'
+            },
+            //'-',
+            me.windowBar,
+            '-',
+            me.tray
+        ];
+
+        me.callParent();
+    },
+
+    afterLayout: function () {
+        var me = this;
+        me.callParent();
+        me.windowBar.el.on('contextmenu', me.onButtonContextMenu, me);
+    },
+
+    /**
+     * This method returns the configuration object for the Quick Start toolbar. A derived
+     * class can override this method, call the base version to build the config and
+     * then modify the returned object before returning it.
+     */
+    getQuickStart: function () {
+        var me = this, ret = {
+            minWidth: 20,
+            width: 60,
+            items: [],
+            enableOverflow: true
+        };
+
+        Ext.each(this.quickStart, function (item) {
+            ret.items.push({
+                tooltip: { text: item.name, align: 'bl-tl' },
+                //tooltip: item.name,
+                overflowText: item.name,
+                iconCls: item.iconCls,
+                module: item.module,
+                handler: me.onQuickStartClick,
+                scope: me
+            });
+        });
+
+        return ret;
+    },
+
+    /**
+     * This method returns the configuration object for the Tray toolbar. A derived
+     * class can override this method, call the base version to build the config and
+     * then modify the returned object before returning it.
+     */
+    getTrayConfig: function () {
+        var ret = {
+            width: 80,
+            items: this.trayItems
+        };
+        delete this.trayItems;
+        return ret;
+    },
+
+    getWindowBarConfig: function () {
+        return {
+            flex: 1,
+            cls: 'ux-desktop-windowbar',
+            items: [ '&#160;' ],
+            layout: { overflowHandler: 'Scroller' }
+        };
+    },
+
+    getWindowBtnFromEl: function (el) {
+        var c = this.windowBar.getChildByElement(el);
+        return c || null;
+    },
+
+    onQuickStartClick: function (btn) {
+        var module = this.app.getModule(btn.module),
+            window;
+
+        if (module) {
+            window = module.createWindow();
+            window.show();
+        }
+    },
+    
+    onButtonContextMenu: function (e) {
+        var me = this, t = e.getTarget(), btn = me.getWindowBtnFromEl(t);
+        if (btn) {
+            e.stopEvent();
+            me.windowMenu.theWin = btn.win;
+            me.windowMenu.showBy(t);
+        }
+    },
+
+    onWindowBtnClick: function (btn) {
+        var win = btn.win;
+
+        if (win.minimized || win.hidden) {
+            win.show();
+        } else if (win.active) {
+            win.minimize();
+        } else {
+            win.toFront();
+        }
+    },
+
+    addTaskButton: function(win) {
+        var config = {
+            iconCls: win.iconCls,
+            enableToggle: true,
+            toggleGroup: 'all',
+            width: 140,
+            margins: '0 2 0 3',
+            text: Ext.util.Format.ellipsis(win.title, 20),
+            listeners: {
+                click: this.onWindowBtnClick,
+                scope: this
+            },
+            win: win
+        };
+
+        var cmp = this.windowBar.add(config);
+        cmp.toggle(true);
+        return cmp;
+    },
+
+    removeTaskButton: function (btn) {
+        var found, me = this;
+        me.windowBar.items.each(function (item) {
+            if (item === btn) {
+                found = item;
+            }
+            return !found;
+        });
+        if (found) {
+            me.windowBar.remove(found);
+        }
+        return found;
+    },
+
+    setActiveButton: function(btn) {
+        if (btn) {
+            btn.toggle(true);
+        } else {
+            this.windowBar.items.each(function (item) {
+                if (item.isButton) {
+                    item.toggle(false);
+                }
+            });
+        }
+    }
+});
+
+/**
+ * @class Ext.ux.desktop.TrayClock
+ * @extends Ext.toolbar.TextItem
+ * This class displays a clock on the toolbar.
+ */
+Ext.define('Ext.ux.desktop.TrayClock', {
+    extend: 'Ext.toolbar.TextItem',
+
+    alias: 'widget.trayclock',
+
+    cls: 'ux-desktop-trayclock',
+
+    html: '&#160;',
+
+    timeFormat: 'g:i A',
+
+    tpl: '{time}',
+
+    initComponent: function () {
+        var me = this;
+
+        me.callParent();
+
+        if (typeof(me.tpl) == 'string') {
+            me.tpl = new Ext.XTemplate(me.tpl);
+        }
+    },
+
+    afterRender: function () {
+        var me = this;
+        Ext.Function.defer(me.updateTime, 100, me);
+        me.callParent();
+    },
+
+    onDestroy: function () {
+        var me = this;
+
+        if (me.timer) {
+            window.clearTimeout(me.timer);
+            me.timer = null;
+        }
+
+        me.callParent();
+    },
+
+    updateTime: function () {
+        var me = this, time = Ext.Date.format(new Date(), me.timeFormat),
+            text = me.tpl.apply({ time: time });
+        if (me.lastText != text) {
+            me.setText(text);
+            me.lastText = text;
+        }
+        me.timer = Ext.Function.defer(me.updateTime, 10000, me);
+    }
+});
diff --git a/js/lib/ux/desktop/Video.js b/js/lib/ux/desktop/Video.js
new file mode 100755
index 0000000..324b816
--- /dev/null
+++ b/js/lib/ux/desktop/Video.js
@@ -0,0 +1,136 @@
+/*!
+* Ext JS Library 4.0
+* Copyright(c) 2006-2011 Sencha Inc.
+* licensing@sencha.com
+* http://www.sencha.com/license
+*/
+
+// From code originally written by David Davis (http://www.sencha.com/blog/html5-video-canvas-and-ext-js/)
+
+/* -NOTICE-
+ * For HTML5 video to work, your server must
+ * send the right content type, for more info see:
+ * http://developer.mozilla.org/En/HTML/Element/Video
+ */
+
+Ext.define('Ext.ux.desktop.Video', {
+    extend: 'Ext.panel.Panel',
+
+    alias: 'widget.video',
+    layout: 'fit',
+    autoplay: false,
+    controls: true,
+    bodyStyle: 'background-color:#000;color:#fff',
+    html: '',
+
+    initComponent: function () {
+        this.callParent();
+    },
+
+    afterRender: function () {
+        var fallback;
+
+        if (this.fallbackHTML) {
+            fallback = this.fallbackHTML;
+        } else {
+            fallback = "Your browser does not support HTML5 Video. ";
+
+            if (Ext.isChrome) {
+                fallback += 'Upgrade Chrome.';
+            } else if (Ext.isGecko) {
+                fallback += 'Upgrade to Firefox 3.5 or newer.';
+            } else {
+                var chrome = '<a href="http://www.google.com/chrome">Chrome</a>';
+                fallback += 'Please try <a href="http://www.mozilla.com">Firefox</a>';
+
+                if (Ext.isIE) {
+                    fallback += ', ' + chrome +
+                        ' or <a href="http://www.apple.com/safari/">Safari</a>.';
+                } else {
+                    fallback += ' or ' + chrome + '.';
+                }
+            }
+        }
+        this.fallbackHTML = fallback;
+
+        // match the video size to the panel dimensions
+        var size = this.getSize();
+
+        var cfg = Ext.copyTo({
+            tag   : 'video',
+            width : size.width,
+            height: size.height
+        },
+        this, 'poster,start,loopstart,loopend,playcount,autobuffer,loop');
+
+        // just having the params exist enables them
+        if (this.autoplay) {
+            cfg.autoplay = 1;
+        }
+        if (this.controls) {
+            cfg.controls = 1;
+        }
+
+        // handle multiple sources
+        if (Ext.isArray(this.src)) {
+            cfg.children = [];
+
+            for (var i = 0, len = this.src.length; i < len; i++) {
+                if (!Ext.isObject(this.src[i])) {
+                    Ext.Error.raise('The src list passed to "video" must be an array of objects');
+                }
+
+                cfg.children.push(
+                    Ext.applyIf({tag: 'source'}, this.src[i])
+                );
+            }
+
+            cfg.children.push(this.getFallback());
+
+        } else {
+            cfg.src  = this.src;
+            cfg.html = fallback;
+        }
+
+        this.video = this.body.createChild(cfg);
+        var el = this.video.dom;
+        this.video.on('error', this.onVideoError, this);
+        this.supported = (el && el.tagName.toLowerCase() == 'video');
+    },
+    
+    getFallback: function(){
+        return {
+            html: this.fallbackHTML,
+            style: 'padding: 10px;'
+        };
+    },
+
+    afterComponentLayout : function() {
+        var me = this;
+
+        me.callParent(arguments);
+
+        if (me.video) {
+            me.video.setSize(me.body.getSize());
+        }
+    },
+    
+    onVideoError: function(){
+        this.video.remove();
+        this.body.createChild(this.getFallback());
+    },
+
+    onDestroy: function () {
+        var video = this.video;
+        if (video) {
+            var videoDom = video.dom;
+            if (videoDom && videoDom.pause) {
+                videoDom.pause();
+            }
+            video.remove();
+            this.video = null;
+        }
+
+        this.callParent();
+    }
+});
diff --git a/js/lib/ux/desktop/Wallpaper.js b/js/lib/ux/desktop/Wallpaper.js
new file mode 100644
index 0000000..5673ea2
--- /dev/null
+++ b/js/lib/ux/desktop/Wallpaper.js
@@ -0,0 +1,79 @@
+/*!
+ * Ext JS Library 4.0
+ * Copyright(c) 2006-2011 Sencha Inc.
+ * licensing@sencha.com
+ * http://www.sencha.com/license
+ */
+
+/**
+ * @class Ext.ux.desktop.Wallpaper
+ * @extends Ext.Component
+ * <p>This component renders an image that stretches to fill the component.</p>
+ */
+Ext.define('Ext.ux.desktop.Wallpaper', {
+    extend: 'Ext.Component',
+
+    alias: 'widget.wallpaper',
+
+    cls: 'ux-wallpaper',
+    html: '<img src="'+Ext.BLANK_IMAGE_URL+'">',
+
+    stretch: false,
+    wallpaper: null,
+    stateful  : true,
+    stateId  : 'desk-wallpaper',
+
+    afterRender: function () {
+        var me = this;
+        me.callParent();
+        me.setWallpaper(me.wallpaper, me.stretch);
+    },
+
+    applyState: function () {
+        var me = this, old = me.wallpaper;
+        me.callParent(arguments);
+        if (old != me.wallpaper) {
+            me.setWallpaper(me.wallpaper);
+        }
+    },
+
+    getState: function () {
+        return this.wallpaper && { wallpaper: this.wallpaper };
+    },
+
+    setWallpaper: function (wallpaper, stretch) {
+        var me = this, imgEl, bkgnd;
+
+        me.stretch = (stretch !== false);
+        me.wallpaper = wallpaper;
+
+        if (me.rendered) {
+            imgEl = me.el.dom.firstChild;
+
+            if (!wallpaper || wallpaper == Ext.BLANK_IMAGE_URL) {
+                Ext.fly(imgEl).hide();
+            } else if (me.stretch) {
+                imgEl.src = wallpaper;
+
+                me.el.removeCls('ux-wallpaper-tiled');
+                Ext.fly(imgEl).setStyle({
+                    width: '100%',
+                    height: '100%'
+                }).show();
+            } else {
+                Ext.fly(imgEl).hide();
+
+                bkgnd = 'url('+wallpaper+')';
+                me.el.addCls('ux-wallpaper-tiled');
+            }
+
+            me.el.setStyle({
+                backgroundImage: bkgnd || ''
+            });
+            if(me.stateful) {
+                me.saveState();
+            }
+        }
+        return me;
+    }
+});
diff --git a/js/lib/ux/desktop/exampleModules/AccordionWindow.js b/js/lib/ux/desktop/exampleModules/AccordionWindow.js
new file mode 100755
index 0000000..25e50f1
--- /dev/null
+++ b/js/lib/ux/desktop/exampleModules/AccordionWindow.js
@@ -0,0 +1,142 @@
+/*!
+ * Ext JS Library 4.0
+ * Copyright(c) 2006-2011 Sencha Inc.
+ * licensing@sencha.com
+ * http://www.sencha.com/license
+ */
+
+Ext.define('MyDesktop.AccordionWindow', {
+    extend: 'Ext.ux.desktop.Module',
+
+    requires: [
+        'Ext.data.TreeStore',
+        'Ext.layout.container.Accordion',
+        'Ext.toolbar.Spacer',
+        'Ext.tree.Panel'
+    ],
+
+    id:'acc-win',
+
+    init : function(){
+        this.launcher = {
+            text: 'Accordion Window',
+            iconCls:'accordion',
+            handler : this.createWindow,
+            scope: this
+        };
+    },
+
+    createTree : function(){
+        var tree = Ext.create('Ext.tree.Panel', {
+            id:'im-tree',
+            title: 'Online Users',
+            rootVisible:false,
+            lines:false,
+            autoScroll:true,
+            tools:[{
+                type: 'refresh',
+                handler: function(c, t) {
+                    tree.setLoading(true, tree.body);
+                    var root = tree.getRootNode();
+                    root.collapseChildren(true, false);
+                    Ext.Function.defer(function() { // mimic a server call
+                        tree.setLoading(false);
+                        root.expand(true, true);
+                    }, 1000);
+                }
+            }],
+            store: Ext.create('Ext.data.TreeStore', {
+                root: {
+                    text:'Online',
+                    expanded: true,
+                    children:[{
+                        text:'Friends',
+                        expanded:true,
+                        children:[
+                            { text:'Brian', iconCls:'user', leaf:true },
+                            { text:'Kevin', iconCls:'user', leaf:true },
+                            { text:'Mark', iconCls:'user', leaf:true },
+                            { text:'Matt', iconCls:'user', leaf:true },
+                            { text:'Michael', iconCls:'user', leaf:true },
+                            { text:'Mike Jr', iconCls:'user', leaf:true },
+                            { text:'Mike Sr', iconCls:'user', leaf:true },
+                            { text:'JR', iconCls:'user', leaf:true },
+                            { text:'Rich', iconCls:'user', leaf:true },
+                            { text:'Nige', iconCls:'user', leaf:true },
+                            { text:'Zac', iconCls:'user', leaf:true }
+                        ]
+                    },{
+                        text:'Family',
+                        expanded:true,
+                        children:[
+                            { text:'Kiana', iconCls:'user-girl', leaf:true },
+                            { text:'Aubrey', iconCls:'user-girl', leaf:true },
+                            { text:'Cale', iconCls:'user-kid', leaf:true }
+                        ]
+                    }]
+                }
+            })
+        });
+
+        return tree;
+    },
+
+    createWindow : function(){
+        var desktop = this.app.getDesktop();
+        var win = desktop.getWindow('acc-win');
+
+        if (!win) {
+            win = desktop.createWindow({
+                id: 'acc-win',
+                title: 'Accordion Window',
+                width: 250,
+                height: 400,
+                iconCls: 'accordion',
+                animCollapse: false,
+                constrainHeader: true,
+                bodyBorder: true,
+                tbar: {
+                    xtype: 'toolbar',
+                    ui: 'plain',
+                    items: [{
+                        tooltip:{title:'Rich Tooltips', text:'Let your users know what they can do!'},
+                        iconCls:'connect'
+                    },
+                    '-',
+                    {
+                        tooltip:'Add a new user',
+                        iconCls:'user-add'
+                    },
+                    ' ',
+                    {
+                        tooltip:'Remove the selected user',
+                        iconCls:'user-delete'
+                    }]
+                },
+
+                layout: 'accordion',
+                border: false,
+
+                items: [
+                    this.createTree(),
+                    {
+                        title: 'Settings',
+                        html:'<p>Something useful would be in here.</p>',
+                        autoScroll:true
+                    },
+                    {
+                        title: 'Even More Stuff',
+                        html : '<p>Something useful would be in here.</p>'
+                    },
+                    {
+                        title: 'My Stuff',
+                        html : '<p>Something useful would be in here.</p>'
+                    }
+                ]
+            });
+        }
+
+        win.show();
+        return win;
+    }
+});
diff --git a/js/lib/ux/desktop/exampleModules/BogusMenuModule.js b/js/lib/ux/desktop/exampleModules/BogusMenuModule.js
new file mode 100644
index 0000000..3fc5dbe
--- /dev/null
+++ b/js/lib/ux/desktop/exampleModules/BogusMenuModule.js
@@ -0,0 +1,34 @@
+/*!
+* Ext JS Library 4.0
+* Copyright(c) 2006-2011 Sencha Inc.
+* licensing@sencha.com
+* http://www.sencha.com/license
+*/
+
+Ext.define('MyDesktop.BogusMenuModule', {
+    extend: 'MyDesktop.BogusModule',
+
+    init : function() {
+
+        this.launcher = {
+            text: 'More items',
+            iconCls: 'bogus',
+            handler: function() {
+                return false;
+            },
+            menu: {
+                items: []
+            }
+        };
+
+        for (var i = 0; i < 5; ++i) {
+            this.launcher.menu.items.push({
+                text: 'Window '+(++windowIndex),
+                iconCls:'bogus',
+                handler : this.createWindow,
+                scope: this,
+                windowId: windowIndex
+            });
+        }
+    }
+});
\ No newline at end of file
diff --git a/js/lib/ux/desktop/exampleModules/BogusModule.js b/js/lib/ux/desktop/exampleModules/BogusModule.js
new file mode 100644
index 0000000..20c5889
--- /dev/null
+++ b/js/lib/ux/desktop/exampleModules/BogusModule.js
@@ -0,0 +1,41 @@
+/*!
+* Ext JS Library 4.0
+* Copyright(c) 2006-2011 Sencha Inc.
+* licensing@sencha.com
+* http://www.sencha.com/license
+*/
+
+var windowIndex = 0;
+
+Ext.define('MyDesktop.BogusModule', {
+    extend: 'Ext.ux.desktop.Module',
+
+    init : function(){
+        this.launcher = {
+            text: 'Window '+(++windowIndex),
+            iconCls:'bogus',
+            handler : this.createWindow,
+            scope: this,
+            windowId:windowIndex
+        }
+    },
+
+    createWindow : function(src){
+        var desktop = this.app.getDesktop();
+        var win = desktop.getWindow('bogus'+src.windowId);
+        if(!win){
+            win = desktop.createWindow({
+                id: 'bogus'+src.windowId,
+                title:src.text,
+                width:640,
+                height:480,
+                html : '<p>Something useful would be in here.</p>',
+                iconCls: 'bogus',
+                animCollapse:false,
+                constrainHeader:true
+            });
+        }
+        win.show();
+        return win;
+    }
+});
\ No newline at end of file
diff --git a/js/lib/ux/desktop/exampleModules/GridWindow.js b/js/lib/ux/desktop/exampleModules/GridWindow.js
new file mode 100755
index 0000000..43a4492
--- /dev/null
+++ b/js/lib/ux/desktop/exampleModules/GridWindow.js
@@ -0,0 +1,131 @@
+/*!
+ * Ext JS Library 4.0
+ * Copyright(c) 2006-2011 Sencha Inc.
+ * licensing@sencha.com
+ * http://www.sencha.com/license
+ */
+
+Ext.define('MyDesktop.GridWindow', {
+    extend: 'Ext.ux.desktop.Module',
+
+    requires: [
+        'Ext.data.ArrayStore',
+        'Ext.util.Format',
+        'Ext.grid.Panel',
+        'Ext.grid.RowNumberer'
+    ],
+
+    id:'grid-win',
+
+    init : function(){
+        this.launcher = {
+            text: 'Grid Window',
+            iconCls:'icon-grid',
+            handler : this.createWindow,
+            scope: this
+        };
+    },
+
+    createWindow : function(){
+        var desktop = this.app.getDesktop();
+        var win = desktop.getWindow('grid-win');
+        if(!win){
+            win = desktop.createWindow({
+                id: 'grid-win',
+                title:'Grid Window',
+                width:740,
+                height:480,
+                iconCls: 'icon-grid',
+                animCollapse:false,
+                constrainHeader:true,
+                layout: 'fit',
+                items: [
+                    {
+                        border: false,
+                        xtype: 'grid',
+                        store: new Ext.data.ArrayStore({
+                            fields: [
+                               { name: 'company' },
+                               { name: 'price', type: 'float' },
+                               { name: 'change', type: 'float' },
+                               { name: 'pctChange', type: 'float' }
+                            ],
+                            data: MyDesktop.GridWindow.getDummyData()
+                        }),
+                        columns: [
+                            new Ext.grid.RowNumberer(),
+                            {
+                                text: "Company",
+                                flex: 1,
+                                sortable: true,
+                                dataIndex: 'company'
+                            },
+                            {
+                                text: "Price",
+                                width: 70,
+                                sortable: true,
+                                renderer: Ext.util.Format.usMoney,
+                                dataIndex: 'price'
+                            },
+                            {
+                                text: "Change",
+                                width: 70,
+                                sortable: true,
+                                dataIndex: 'change'
+                            },
+                            {
+                                text: "% Change",
+                                width: 70,
+                                sortable: true,
+                                dataIndex: 'pctChange'
+                            }
+                        ]
+                    }
+                ],
+                tbar:[{
+                    text:'Add Something',
+                    tooltip:'Add a new row',
+                    iconCls:'add'
+                }, '-', {
+                    text:'Options',
+                    tooltip:'Blah blah blah blaht',
+                    iconCls:'option'
+                },'-',{
+                    text:'Remove Something',
+                    tooltip:'Remove the selected item',
+                    iconCls:'remove'
+                }]
+            });
+        }
+        win.show();
+        return win;
+    },
+
+    statics: {
+        getDummyData: function () {
+            return [
+                ['3m Co',71.72,0.02,0.03,'9/1 12:00am'],
+                ['Alcoa Inc',29.01,0.42,1.47,'9/1 12:00am'],
+                ['American Express Company',52.55,0.01,0.02,'9/1 12:00am'],
+                ['American International Group, Inc.',64.13,0.31,0.49,'9/1 12:00am'],
+                ['AT&T Inc.',31.61,-0.48,-1.54,'9/1 12:00am'],
+                ['Caterpillar Inc.',67.27,0.92,1.39,'9/1 12:00am'],
+                ['Citigroup, Inc.',49.37,0.02,0.04,'9/1 12:00am'],
+                ['Exxon Mobil Corp',68.1,-0.43,-0.64,'9/1 12:00am'],
+                ['General Electric Company',34.14,-0.08,-0.23,'9/1 12:00am'],
+                ['General Motors Corporation',30.27,1.09,3.74,'9/1 12:00am'],
+                ['Hewlett-Packard Co.',36.53,-0.03,-0.08,'9/1 12:00am'],
+                ['Honeywell Intl Inc',38.77,0.05,0.13,'9/1 12:00am'],
+                ['Intel Corporation',19.88,0.31,1.58,'9/1 12:00am'],
+                ['Johnson & Johnson',64.72,0.06,0.09,'9/1 12:00am'],
+                ['Merck & Co., Inc.',40.96,0.41,1.01,'9/1 12:00am'],
+                ['Microsoft Corporation',25.84,0.14,0.54,'9/1 12:00am'],
+                ['The Coca-Cola Company',45.07,0.26,0.58,'9/1 12:00am'],
+                ['The Procter & Gamble Company',61.91,0.01,0.02,'9/1 12:00am'],
+                ['Wal-Mart Stores, Inc.',45.45,0.73,1.63,'9/1 12:00am'],
+                ['Walt Disney Company (The) (Holding Company)',29.89,0.24,0.81,'9/1 12:00am']
+            ];
+        }
+    }
+});
+
diff --git a/js/lib/ux/desktop/exampleModules/Notepad.js b/js/lib/ux/desktop/exampleModules/Notepad.js
new file mode 100755
index 0000000..3815bd7
--- /dev/null
+++ b/js/lib/ux/desktop/exampleModules/Notepad.js
@@ -0,0 +1,63 @@
+/*!
+ * Ext JS Library 4.0
+ * Copyright(c) 2006-2011 Sencha Inc.
+ * licensing@sencha.com
+ * http://www.sencha.com/license
+ */
+
+Ext.define('MyDesktop.Notepad', {
+    extend: 'Ext.ux.desktop.Module',
+
+    requires: [
+        'Ext.form.field.HtmlEditor'
+        //'Ext.form.field.TextArea'
+    ],
+
+    id:'notepad',
+
+    init : function(){
+        this.launcher = {
+            text: 'Notepad',
+            iconCls:'notepad',
+            handler : this.createWindow,
+            scope: this
+        }
+    },
+
+    createWindow : function(){
+        var desktop = this.app.getDesktop();
+        var win = desktop.getWindow('notepad');
+        if(!win){
+            win = desktop.createWindow({
+                id: 'notepad',
+                title:'Notepad',
+                width:600,
+                height:400,
+                iconCls: 'notepad',
+                animCollapse:false,
+                border: false,
+                //defaultFocus: 'notepad-editor', EXTJSIV-1300
+
+                // IE has a bug where it will keep the iframe's background visible when the window
+                // is set to visibility:hidden. Hiding the window via position offsets instead gets
+                // around this bug.
+                hideMode: 'offsets',
+
+                layout: 'fit',
+                items: [
+                    {
+                        xtype: 'htmleditor',
+                        //xtype: 'textarea',
+                        id: 'notepad-editor',
+                        value: [
+                            'Some <b>rich</b> <font color="red">text</font> goes <u>here</u><br>',
+                            'Give it a try!'
+                        ].join('')
+                    }
+                ]
+            });
+        }
+        win.show();
+        return win;
+    }
+});
diff --git a/js/lib/ux/desktop/exampleModules/Settings.js b/js/lib/ux/desktop/exampleModules/Settings.js
new file mode 100755
index 0000000..4c2ac2a
--- /dev/null
+++ b/js/lib/ux/desktop/exampleModules/Settings.js
@@ -0,0 +1,156 @@
+/*!
+ * Ext JS Library 4.0
+ * Copyright(c) 2006-2011 Sencha Inc.
+ * licensing@sencha.com
+ * http://www.sencha.com/license
+ */
+
+Ext.define('MyDesktop.Settings', {
+    extend: 'Ext.window.Window',
+
+    uses: [
+        'Ext.tree.Panel',
+        'Ext.tree.View',
+        'Ext.form.field.Checkbox',
+        'Ext.layout.container.Anchor',
+        'Ext.layout.container.Border',
+
+        'Ext.ux.desktop.Wallpaper',
+
+        'MyDesktop.WallpaperModel'
+    ],
+
+    layout: 'anchor',
+    title: 'Change Settings',
+    modal: true,
+    width: 640,
+    height: 480,
+    border: false,
+
+    initComponent: function () {
+        var me = this;
+
+        me.selected = me.desktop.getWallpaper();
+        me.stretch = me.desktop.wallpaper.stretch;
+
+        me.preview = Ext.create('widget.wallpaper');
+        me.preview.setWallpaper(me.selected);
+        me.tree = me.createTree();
+
+        me.buttons = [
+            { text: 'OK', handler: me.onOK, scope: me },
+            { text: 'Cancel', handler: me.close, scope: me }
+        ];
+
+        me.items = [
+            {
+                anchor: '0 -30',
+                border: false,
+                layout: 'border',
+                items: [
+                    me.tree,
+                    {
+                        xtype: 'panel',
+                        title: 'Preview',
+                        region: 'center',
+                        layout: 'fit',
+                        items: [ me.preview ]
+                    }
+                ]
+            },
+            {
+                xtype: 'checkbox',
+                boxLabel: 'Stretch to fit',
+                checked: me.stretch,
+                listeners: {
+                    change: function (comp) {
+                        me.stretch = comp.checked;
+                    }
+                }
+            }
+        ];
+
+        me.callParent();
+    },
+
+    createTree : function() {
+        var me = this;
+
+        function child (img) {
+            return { img: img, text: me.getTextOfWallpaper(img), iconCls: '', leaf: true };
+        }
+
+        var tree = new Ext.tree.Panel({
+            title: 'Desktop Background',
+            rootVisible: false,
+            lines: false,
+            autoScroll: true,
+            width: 150,
+            region: 'west',
+            split: true,
+            minWidth: 100,
+            listeners: {
+                afterrender: { fn: this.setInitialSelection, delay: 100 },
+                select: this.onSelect,
+                scope: this
+            },
+            store: new Ext.data.TreeStore({
+                model: 'MyDesktop.WallpaperModel',
+                root: {
+                    text:'Wallpaper',
+                    expanded: true,
+                    children:[
+                        { text: "None", iconCls: '', leaf: true },
+                        child('desk.jpg'),
+                        child('Cdpp.jpg'),
+                        child('Cdpp2.jpg'),
+                        child('sky.jpg'),
+                        child('rosetta.jpg'), 
+                        child('rosetta2.jpg')                   
+                    ]
+                }
+            })
+        });
+
+        return tree;
+    },
+
+    getTextOfWallpaper: function (path) {
+        var text = path, slash = path.lastIndexOf('/');
+        if (slash >= 0) {
+            text = text.substring(slash+1);
+        }
+        var dot = text.lastIndexOf('.');
+        text = Ext.String.capitalize(text.substring(0, dot));
+        text = text.replace(/[-]/g, ' ');
+        return text;
+    },
+
+    onOK: function () {
+        var me = this;
+        if (me.selected) {
+            me.desktop.setWallpaper(me.selected, me.stretch);
+        }
+        me.destroy();
+    },
+
+    onSelect: function (tree, record) {
+        var me = this;
+
+        if (record.data.img) {
+            me.selected = 'js/resources/images/desktop/wallpapers/' + record.data.img;
+        } else {
+            me.selected = Ext.BLANK_IMAGE_URL;
+        }
+
+        me.preview.setWallpaper(me.selected);
+    },
+
+    setInitialSelection: function () {
+        var s = this.desktop.getWallpaper();
+        if (s) {
+            var path = '/Wallpaper/' + this.getTextOfWallpaper(s);
+            this.tree.selectPath(path, 'text');
+        }
+    }
+});
diff --git a/js/lib/ux/desktop/exampleModules/SystemStatus.js b/js/lib/ux/desktop/exampleModules/SystemStatus.js
new file mode 100644
index 0000000..f1fe398
--- /dev/null
+++ b/js/lib/ux/desktop/exampleModules/SystemStatus.js
@@ -0,0 +1,425 @@
+/*!
+* Ext JS Library 4.0
+* Copyright(c) 2006-2011 Sencha Inc.
+* licensing@sencha.com
+* http://www.sencha.com/license
+*/
+
+Ext.define('MyDesktop.SystemStatus', {
+    extend: 'Ext.ux.desktop.Module',
+
+    requires: [
+        'Ext.chart.*'
+    ],
+
+    id: 'systemstatus',
+
+    init : function() {
+        // No launcher means we don't appear on the Start Menu...
+//        this.launcher = {
+//            text: 'SystemStatus',
+//            iconCls:'cpustats',
+//            handler : this.createWindow,
+//            scope: this
+//        };
+
+        Ext.chart.theme.Memory = Ext.extend(Ext.chart.theme.Base, {
+            constructor: function(config) {
+                Ext.chart.theme.Memory.superclass.constructor.call(this, Ext.apply({
+                    colors: [ 'rgb(244, 16, 0)',
+                              'rgb(248, 130, 1)',
+                              'rgb(0, 7, 255)',
+                              'rgb(84, 254, 0)']
+                }, config));
+            }
+        });
+    },
+
+    createNewWindow: function () {
+        var me = this,
+            desktop = me.app.getDesktop();
+
+        me.cpuLoadData = [];
+        me.cpuLoadStore = Ext.create('store.json', {
+            fields: ['core1', 'core2']
+        });
+
+        me.memoryArray = ['Wired', 'Active', 'Inactive', 'Free'];
+        me.memoryStore = Ext.create('store.json', {
+                fields: ['name', 'memory'],
+                data: me.generateData(me.memoryArray)
+            });
+
+        me.pass = 0;
+        me.processArray = ['explorer', 'monitor', 'charts', 'desktop', 'Ext3', 'Ext4'];
+        me.processesMemoryStore = Ext.create('store.json', {
+            fields: ['name', 'memory'],
+            data: me.generateData(me.processArray)
+        });
+
+        me.generateCpuLoad();
+
+        return desktop.createWindow({
+            id: 'systemstatus',
+            title: 'System Status',
+            width: 800,
+            height: 600,
+            animCollapse:false,
+            constrainHeader:true,
+            border: false,
+            layout: 'fit',
+            listeners: {
+                afterrender: {
+                    fn: me.updateCharts,
+                    delay: 100
+                },
+                destroy: function () {
+                    clearTimeout(me.updateTimer);
+                    me.updateTimer = null;
+                },
+                scope: me
+            },
+            items: [{
+                xtype: 'panel',
+                layout: {
+                    type: 'hbox',
+                    align: 'stretch'
+                },
+                items: [{
+                    flex: 1,
+                    height: 600,
+                    width: 400,
+                    xtype: 'container',
+                    layout: {
+                        type: 'vbox',
+                        align: 'stretch'
+                    },
+                    items: [
+                        me.createCpu1LoadChart(),
+                        me.createCpu2LoadChart()
+                    ]
+                }, {
+                    flex: 1,
+                    width: 400,
+                    height: 600,
+                    xtype: 'container',
+                    layout: {
+                        type: 'vbox',
+                        align: 'stretch'
+                    },
+                    items: [
+                        me.createMemoryPieChart(),
+                        me.createProcessChart()
+                    ]
+                }]
+            }]
+        });
+    },
+
+    createWindow : function() {
+        var win = this.app.getDesktop().getWindow(this.id);
+        if (!win) {
+            win = this.createNewWindow();
+        }
+        win.show();
+        return win;
+    },
+
+    createCpu1LoadChart: function () {
+        return {
+            flex: 1,
+            xtype: 'chart',
+            theme: 'Category1',
+            animate: false,
+            store: this.cpuLoadStore,
+            legend: {
+                position: 'bottom'
+            },
+            axes: [{
+                type: 'Numeric',
+                position: 'left',
+                minimum: 0,
+                maximum: 100,
+                fields: ['core1'],
+                title: 'CPU Load',
+                grid: true,
+                labelTitle: {
+                    font: '13px Arial'
+                },
+                label: {
+                    font: '11px Arial'
+                }
+            }],
+            series: [{
+                title: 'Core 1 (3.4GHz)',
+                type: 'line',
+                lineWidth: 4,
+                showMarkers: false,
+                fill: true,
+                axis: 'right',
+                xField: 'time',
+                yField: 'core1',
+                style: {
+                    'stroke-width': 1
+                }
+            }]
+        };
+    },
+
+    createCpu2LoadChart: function () {
+        return {
+            flex: 1,
+            xtype: 'chart',
+            theme: 'Category2',
+            animate: false,
+            store: this.cpuLoadStore,
+            legend: {
+                position: 'bottom'
+            },
+            axes: [{
+                type: 'Numeric',
+                position: 'left',
+                minimum: 0,
+                maximum: 100,
+                grid: true,
+                fields: ['core2'],
+                title: 'CPU Load',
+                labelTitle: {
+                    font: '13px Arial'
+                },
+                label: {
+                    font: '11px Arial'
+                }
+            }],
+            series: [{
+                title: 'Core 2 (3.4GHz)',
+                type: 'line',
+                lineWidth: 4,
+                showMarkers: false,
+                fill: true,
+                axis: 'right',
+                xField: 'time',
+                yField: 'core2',
+                style: {
+                    'stroke-width': 1
+                }
+            }]
+        };
+    },
+
+    createMemoryPieChart: function () {
+        var me = this;
+
+        return {
+            flex: 1,
+            xtype: 'chart',
+            animate: {
+                duration: 250
+            },
+            store: this.memoryStore,
+            shadow: true,
+
+            legend: {
+                position: 'right'
+            },
+            insetPadding: 40,
+            theme: 'Memory:gradients',
+            series: [{
+                donut: 30,
+                type: 'pie',
+                field: 'memory',
+                showInLegend: true,
+                tips: {
+                    trackMouse: true,
+                    width: 140,
+                    height: 28,
+                    renderer: function(storeItem, item) {
+                        //calculate percentage.
+                        var total = 0;
+                        me.memoryStore.each(function(rec) {
+                            total += rec.get('memory');
+                        });
+                        this.setTitle(storeItem.get('name') + ': ' +
+                            Math.round(storeItem.get('memory') / total * 100) + '%');
+                    }
+                },
+                highlight: {
+                    segment: {
+                        margin: 20
+                    }
+                },
+                labelTitle: {
+                    font: '13px Arial'
+                },
+                label: {
+                    field: 'name',
+                    display: 'rotate',
+                    contrast: true,
+                    font: '12px Arial'
+                }
+            }]
+        };
+    },
+
+    createProcessChart: function () {
+        return {
+            flex: 1,
+            xtype: 'chart',
+            theme: 'Category1',
+            store: this.processesMemoryStore,
+            animate: {
+                easing: 'ease-in-out',
+                duration: 750
+            },
+            axes: [{
+                type: 'Numeric',
+                position: 'left',
+                minimum: 0,
+                maximum: 10,
+                fields: ['memory'],
+                title: 'Memory',
+                labelTitle: {
+                    font: '13px Arial'
+                },
+                label: {
+                    font: '11px Arial'
+                }
+            },{
+                type: 'Category',
+                position: 'bottom',
+                fields: ['name'],
+                title: 'System Processes',
+                labelTitle: {
+                    font: 'bold 14px Arial'
+                },
+                label: {
+                    rotation: {
+                        degrees: 45
+                    }
+                }
+            },{
+                type: 'Numeric',
+                position: 'top',
+                fields: ['memory'],
+                title: 'Memory Usage',
+                labelTitle: {
+                    font: 'bold 14px Arial'
+                },
+                label: {
+                    fill: '#FFFFFF',
+                    stroke: '#FFFFFF'
+                },
+                axisStyle: {
+                    fill: '#FFFFFF',
+                    stroke: '#FFFFFF'
+                }
+            }],
+            series: [{
+                title: 'Processes',
+                type: 'column',
+                xField: 'name',
+                yField: 'memory',
+                renderer: function(sprite, record, attr, index, store) {
+                    var lowColor = Ext.draw.Color.fromString('#b1da5a'),
+                        value = record.get('memory'),
+                        color;
+
+                    if (value > 5) {
+                        color = lowColor.getDarker((value - 5) / 15).toString();
+                    } else {
+                        color = lowColor.getLighter(((5 - value) / 20)).toString();
+                    }
+
+                    if (value >= 8) {
+                        color = '#CD0000';
+                    }
+
+                    return Ext.apply(attr, {
+                        fill: color
+                    });
+                }
+            }]
+        };
+    },
+
+    generateCpuLoad: function () {
+        var me = this,
+            data = me.cpuLoadData;
+
+        function generate(factor) {
+            var value = factor + ((Math.floor(Math.random() * 2) % 2) ? -1 : 1) * Math.floor(Math.random() * 9);
+
+            if (value < 0 || value > 100) {
+                value = 50;
+            }
+
+            return value;
+        }
+
+        if (data.length === 0) {
+            data.push({
+                core1: 0,
+                core2: 0,
+                time: 0
+            });
+
+            for (var i = 1; i < 100; i++) {
+                data.push({
+                    core1: generate(data[i - 1].core1),
+                    core2: generate(data[i - 1].core2),
+                    time: i
+                });
+            }
+
+            me.cpuLoadStore.loadData(data);
+        } else {
+            me.cpuLoadStore.data.removeAt(0);
+            me.cpuLoadStore.data.each(function(item, key) {
+                item.data.time = key;
+            });
+
+            var lastData = me.cpuLoadStore.last().data;
+            me.cpuLoadStore.loadData([{
+                core1: generate(lastData.core1),
+                core2: generate(lastData.core2),
+                time: lastData.time + 1
+            }], true);
+        }
+
+    },
+
+    generateData: function (names) {
+        var data = [],
+            i,
+            rest = names.length, consume;
+
+        for (i = 0; i < names.length; i++) {
+            consume = Math.floor(Math.random() * rest * 100) / 100 + 2;
+            rest = rest - (consume - 5);
+            data.push({
+                name: names[i],
+                memory: consume
+            });
+        }
+
+        return data;
+    },
+
+    updateCharts: function () {
+        var me = this;
+        clearTimeout(me.updateTimer);
+        me.updateTimer = setTimeout(function() {
+            if (me.pass % 3 === 0) {
+                me.memoryStore.loadData(me.generateData(me.memoryArray));
+            }
+
+            if (me.pass % 5 === 0) {
+                me.processesMemoryStore.loadData(me.generateData(me.processArray));
+            }
+
+            me.generateCpuLoad();
+            me.updateCharts();
+            me.pass++;
+        }, 500);
+    }
+});
diff --git a/js/lib/ux/desktop/exampleModules/TabWindow.js b/js/lib/ux/desktop/exampleModules/TabWindow.js
new file mode 100755
index 0000000..082a1fa
--- /dev/null
+++ b/js/lib/ux/desktop/exampleModules/TabWindow.js
@@ -0,0 +1,75 @@
+/*!
+ * Ext JS Library 4.0
+ * Copyright(c) 2006-2011 Sencha Inc.
+ * licensing@sencha.com
+ * http://www.sencha.com/license
+ */
+
+Ext.define('MyDesktop.TabWindow', {
+    extend: 'Ext.ux.desktop.Module',
+
+    requires: [
+        'Ext.tab.Panel'
+    ],
+
+    id:'tab-win',
+
+    init : function(){
+        this.launcher = {
+            text: 'Tab Window',
+            iconCls:'tabs',
+            handler : this.createWindow,
+            scope: this
+        }
+    },
+
+    createWindow : function(){
+        var desktop = this.app.getDesktop();
+        var win = desktop.getWindow('tab-win');
+        if(!win){
+            win = desktop.createWindow({
+                id: 'tab-win',
+                title:'Tab Window',
+                width:740,
+                height:480,
+                iconCls: 'tabs',
+                animCollapse:false,
+                border:false,
+                constrainHeader:true,
+
+                layout: 'fit',
+                items: [
+                    {
+                        xtype: 'tabpanel',
+                        activeTab:0,
+                        bodyStyle: 'padding: 5px;',
+
+                        items: [{
+                            title: 'Tab Text 1',
+                            header:false,
+                            html : '<p>Something useful would be in here.</p>',
+                            border:false
+                        },{
+                            title: 'Tab Text 2',
+                            header:false,
+                            html : '<p>Something useful would be in here.</p>',
+                            border:false
+                        },{
+                            title: 'Tab Text 3',
+                            header:false,
+                            html : '<p>Something useful would be in here.</p>',
+                            border:false
+                        },{
+                            title: 'Tab Text 4',
+                            header:false,
+                            html : '<p>Something useful would be in here.</p>',
+                            border:false
+                        }]
+                    }
+                ]
+            });
+        }
+        win.show();
+        return win;
+    }
+});
diff --git a/js/lib/ux/desktop/exampleModules/VideoWindow.js b/js/lib/ux/desktop/exampleModules/VideoWindow.js
new file mode 100755
index 0000000..4d2570f
--- /dev/null
+++ b/js/lib/ux/desktop/exampleModules/VideoWindow.js
@@ -0,0 +1,128 @@
+/*!
+* Ext JS Library 4.0
+* Copyright(c) 2006-2011 Sencha Inc.
+* licensing@sencha.com
+* http://www.sencha.com/license
+*/
+
+// From code originally written by David Davis (http://www.sencha.com/blog/html5-video-canvas-and-ext-js/)
+
+Ext.define('MyDesktop.VideoWindow', {
+    extend: 'Ext.ux.desktop.Module',
+
+    uses: [
+        'Ext.ux.desktop.Video'
+    ],
+
+    id:'video',
+    windowId: 'video-window',
+
+    tipWidth: 160,
+    tipHeight: 96,
+
+    init : function(){
+        this.launcher = {
+            text: 'About Ext JS',
+            iconCls:'video',
+            handler : this.createWindow,
+            scope: this
+        }
+    },
+
+    createWindow : function(){
+        var me = this, desktop = me.app.getDesktop(),
+            win = desktop.getWindow(me.windowId);
+
+        if (!win) {
+            win = desktop.createWindow({
+                id: me.windowId,
+                title: 'About Ext JS',
+                width: 740,
+                height: 480,
+                iconCls: 'video',
+                animCollapse: false,
+                border: false,
+
+                layout: 'fit',
+                items: [
+                    {
+                        xtype: 'video',
+                        id: 'video-player',
+                        src: [
+                            // browser will pick the format it likes most:
+                            { src: 'http://dev.sencha.com/desktopvideo.mp4', type: 'video/mp4' },
+                            { src: 'http://dev.sencha.com/desktopvideo.ogv', type: 'video/ogg' },
+                            { src: 'http://dev.sencha.com/desktopvideo.mov', type: 'video/quicktime' }
+                        ],
+                        autobuffer: true,
+                        autoplay : true,
+                        controls : true,
+                        /* default */
+                        listeners: {
+                            afterrender: function(video) {
+                                me.videoEl = video.video.dom;
+
+                                if (video.supported) {
+                                    me.tip = new Ext.tip.ToolTip({
+                                        anchor   : 'bottom',
+                                        dismissDelay : 0,
+                                        height   : me.tipHeight,
+                                        width    : me.tipWidth,
+                                        renderTpl: [
+                                            '<canvas width="', me.tipWidth,
+                                                  '" height="', me.tipHeight, '">'
+                                        ],
+                                        renderSelectors: {
+                                            body: 'canvas'
+                                        },
+                                        listeners: {
+                                            afterrender: me.onTooltipRender,
+                                            show: me.renderPreview,
+                                            scope: me
+                                        }
+                                    }); // tip
+                                }
+                            }
+                        }
+                    }
+                ],
+                listeners: {
+                    beforedestroy: function() {
+                        me.tip = me.ctx = me.videoEl = null;
+                    }
+                }
+            });
+        }
+
+        win.show();
+
+        if (me.tip) {
+            me.tip.setTarget(win.taskButton.el);
+        }
+
+        return win;
+    },
+
+    onTooltipRender: function (tip) {
+        // get the canvas 2d context
+        var el = tip.body.dom, me = this;
+        me.ctx = el.getContext && el.getContext('2d');
+    },
+
+    renderPreview: function() {
+        var me = this;
+
+        if ((me.tip && !me.tip.isVisible()) || !me.videoEl) {
+            return;
+        }
+
+        if (me.ctx) {
+            try {
+                me.ctx.drawImage(me.videoEl, 0, 0, me.tipWidth, me.tipHeight);
+            } catch(e) {};
+        }
+
+        // 20ms to keep the tooltip video smooth
+        Ext.Function.defer(me.renderPreview, 20, me);
+    }
+});
diff --git a/js/lib/ux/desktop/exampleModules/WallpaperModel.js b/js/lib/ux/desktop/exampleModules/WallpaperModel.js
new file mode 100644
index 0000000..c5c4147
--- /dev/null
+++ b/js/lib/ux/desktop/exampleModules/WallpaperModel.js
@@ -0,0 +1,14 @@
+/*!
+ * Ext JS Library 4.0
+ * Copyright(c) 2006-2011 Sencha Inc.
+ * licensing@sencha.com
+ * http://www.sencha.com/license
+ */
+
+Ext.define('MyDesktop.WallpaperModel', {
+    extend: 'Ext.data.Model',
+    fields: [
+        { name: 'text' },
+        { name: 'img' }
+    ]
+});
diff --git a/js/lib/ux/desktop/exampleModules/app.jsb3 b/js/lib/ux/desktop/exampleModules/app.jsb3
new file mode 100644
index 0000000..9980480
--- /dev/null
+++ b/js/lib/ux/desktop/exampleModules/app.jsb3
@@ -0,0 +1,1050 @@
+{
+    "projectName": "Example - Desktop",
+    "licenseText": "Copyright(c) 2011 Sencha Inc.\nlicensing@sencha.com",
+    "builds": [
+        {
+            "name": "All Classes Needed",
+            "target": "classes.js",
+            "compress": true,
+            "files": [
+                {
+                    "path": "../../../platform/src/util/",
+                    "name": "Observable.js"
+                },
+                {
+                    "path": "js/",
+                    "name": "Module.js"
+                },
+                {
+                    "path": "../../../platform/src/chart/",
+                    "name": "Callout.js"
+                },
+                {
+                    "path": "../../../platform/src/chart/",
+                    "name": "Mask.js"
+                },
+                {
+                    "path": "../../../platform/src/chart/",
+                    "name": "Navigation.js"
+                },
+                {
+                    "path": "../../../platform/src/chart/",
+                    "name": "Shape.js"
+                },
+                {
+                    "path": "../../src/form/field/",
+                    "name": "VTypes.js"
+                },
+                {
+                    "path": "../../src/util/",
+                    "name": "ClickRepeater.js"
+                },
+                {
+                    "path": "../../src/util/",
+                    "name": "TextMetrics.js"
+                },
+                {
+                    "path": "../../src/util/",
+                    "name": "KeyMap.js"
+                },
+                {
+                    "path": "../../../platform/src/",
+                    "name": "Template.js"
+                },
+                {
+                    "path": "../../../platform/src/data/",
+                    "name": "Operation.js"
+                },
+                {
+                    "path": "../../../platform/src/data/",
+                    "name": "validations.js"
+                },
+                {
+                    "path": "../../../platform/src/draw/",
+                    "name": "Color.js"
+                },
+                {
+                    "path": "../../../platform/src/draw/",
+                    "name": "Draw.js"
+                },
+                {
+                    "path": "../../../platform/src/data/",
+                    "name": "Tree.js"
+                },
+                {
+                    "path": "../../src/form/field/",
+                    "name": "Field.js"
+                },
+                {
+                    "path": "../../src/dd/",
+                    "name": "DragTracker.js"
+                },
+                {
+                    "path": "../../../platform/src/util/",
+                    "name": "Offset.js"
+                },
+                {
+                    "path": "../../../platform/src/",
+                    "name": "ComponentQuery.js"
+                },
+                {
+                    "path": "../../../platform/src/util/",
+                    "name": "HashMap.js"
+                },
+                {
+                    "path": "../../src/util/",
+                    "name": "KeyNav.js"
+                },
+                {
+                    "path": "../../src/util/",
+                    "name": "Floating.js"
+                },
+                {
+                    "path": "../../src/layout/container/boxOverflow/",
+                    "name": "None.js"
+                },
+                {
+                    "path": "../../src/layout/container/boxOverflow/",
+                    "name": "Scroller.js"
+                },
+                {
+                    "path": "../../../platform/src/",
+                    "name": "AbstractManager.js"
+                },
+                {
+                    "path": "../../../platform/src/data/",
+                    "name": "Association.js"
+                },
+                {
+                    "path": "../../../platform/src/data/",
+                    "name": "SortTypes.js"
+                },
+                {
+                    "path": "../../../platform/src/fx/",
+                    "name": "CubicBezier.js"
+                },
+                {
+                    "path": "../../../platform/src/fx/",
+                    "name": "PropertyHandler.js"
+                },
+                {
+                    "path": "../../src/util/",
+                    "name": "Animate.js"
+                },
+                {
+                    "path": "../../../platform/src/util/",
+                    "name": "Filter.js"
+                },
+                {
+                    "path": "../../src/",
+                    "name": "ZIndexManager.js"
+                },
+                {
+                    "path": "../../src/panel/",
+                    "name": "Proxy.js"
+                },
+                {
+                    "path": "../../../platform/src/",
+                    "name": "PluginManager.js"
+                },
+                {
+                    "path": "../../../platform/src/layout/",
+                    "name": "Layout.js"
+                },
+                {
+                    "path": "../../../platform/src/data/",
+                    "name": "Connection.js"
+                },
+                {
+                    "path": "../../../platform/src/util/",
+                    "name": "Sorter.js"
+                },
+                {
+                    "path": "../../../platform/src/fx/",
+                    "name": "Queue.js"
+                },
+                {
+                    "path": "../../src/dd/",
+                    "name": "StatusProxy.js"
+                },
+                {
+                    "path": "../../../platform/src/",
+                    "name": "ElementLoader.js"
+                },
+                {
+                    "path": "../../../platform/src/fx/target/",
+                    "name": "Target.js"
+                },
+                {
+                    "path": "../../../platform/src/state/",
+                    "name": "Provider.js"
+                },
+                {
+                    "path": "../../../platform/src/data/writer/",
+                    "name": "Writer.js"
+                },
+                {
+                    "path": "../../../platform/src/data/",
+                    "name": "ResultSet.js"
+                },
+                {
+                    "path": "",
+                    "name": "VideoWindow.js"
+                },
+                {
+                    "path": "",
+                    "name": "BogusModule.js"
+                },
+                {
+                    "path": "",
+                    "name": "BogusMenuModule.js"
+                },
+                {
+                    "path": "../../../platform/src/chart/",
+                    "name": "Label.js"
+                },
+                {
+                    "path": "../../../platform/src/chart/theme/",
+                    "name": "Theme.js"
+                },
+                {
+                    "path": "../../../platform/src/chart/theme/",
+                    "name": "Base.js"
+                },
+                {
+                    "path": "../../src/util/",
+                    "name": "ComponentDragger.js"
+                },
+                {
+                    "path": "../../../platform/src/util/",
+                    "name": "Region.js"
+                },
+                {
+                    "path": "../../../platform/src/",
+                    "name": "XTemplate.js"
+                },
+                {
+                    "path": "../../../platform/src/",
+                    "name": "ModelManager.js"
+                },
+                {
+                    "path": "../../src/form/",
+                    "name": "Labelable.js"
+                },
+                {
+                    "path": "../../../platform/src/",
+                    "name": "ComponentManager.js"
+                },
+                {
+                    "path": "../../src/",
+                    "name": "FocusManager.js"
+                },
+                {
+                    "path": "../../../platform/src/layout/component/",
+                    "name": "Component.js"
+                },
+                {
+                    "path": "../../src/layout/component/",
+                    "name": "Button.js"
+                },
+                {
+                    "path": "../../src/layout/component/",
+                    "name": "ProgressBar.js"
+                },
+                {
+                    "path": "../../src/layout/component/field/",
+                    "name": "Field.js"
+                },
+                {
+                    "path": "../../src/layout/component/field/",
+                    "name": "Text.js"
+                },
+                {
+                    "path": "../../src/layout/component/field/",
+                    "name": "TextArea.js"
+                },
+                {
+                    "path": "../../src/layout/component/field/",
+                    "name": "HtmlEditor.js"
+                },
+                {
+                    "path": "../../../platform/src/layout/container/",
+                    "name": "AbstractContainer.js"
+                },
+                {
+                    "path": "../../src/layout/container/",
+                    "name": "Container.js"
+                },
+                {
+                    "path": "../../src/layout/container/",
+                    "name": "Anchor.js"
+                },
+                {
+                    "path": "../../src/dd/",
+                    "name": "DragDropManager.js"
+                },
+                {
+                    "path": "../../../platform/src/data/",
+                    "name": "Types.js"
+                },
+                {
+                    "path": "../../../platform/src/data/",
+                    "name": "Field.js"
+                },
+                {
+                    "path": "../../../platform/src/data/",
+                    "name": "NodeInterface.js"
+                },
+                {
+                    "path": "../../../platform/src/",
+                    "name": "Ajax.js"
+                },
+                {
+                    "path": "../../../platform/src/util/",
+                    "name": "AbstractMixedCollection.js"
+                },
+                {
+                    "path": "../../../platform/src/util/",
+                    "name": "Sortable.js"
+                },
+                {
+                    "path": "../../../platform/src/util/",
+                    "name": "MixedCollection.js"
+                },
+                {
+                    "path": "../../src/menu/",
+                    "name": "Manager.js"
+                },
+                {
+                    "path": "../../../platform/src/data/",
+                    "name": "Errors.js"
+                },
+                {
+                    "path": "../../../platform/src/data/",
+                    "name": "StoreManager.js"
+                },
+                {
+                    "path": "../../../platform/src/draw/",
+                    "name": "CompositeSprite.js"
+                },
+                {
+                    "path": "../../../platform/src/chart/",
+                    "name": "LegendItem.js"
+                },
+                {
+                    "path": "../../../platform/src/chart/",
+                    "name": "Legend.js"
+                },
+                {
+                    "path": "../../../platform/src/data/",
+                    "name": "AbstractStore.js"
+                },
+                {
+                    "path": "../../../platform/src/draw/",
+                    "name": "Surface.js"
+                },
+                {
+                    "path": "../../../platform/src/fx/",
+                    "name": "Easing.js"
+                },
+                {
+                    "path": "../../../platform/src/util/",
+                    "name": "Grouper.js"
+                },
+                {
+                    "path": "../../../platform/src/layout/container/",
+                    "name": "Auto.js"
+                },
+                {
+                    "path": "../../../platform/src/layout/component/",
+                    "name": "AbstractDock.js"
+                },
+                {
+                    "path": "../../src/layout/component/",
+                    "name": "Dock.js"
+                },
+                {
+                    "path": "../../../platform/src/",
+                    "name": "LoadMask.js"
+                },
+                {
+                    "path": "../../../platform/src/",
+                    "name": "ComponentLoader.js"
+                },
+                {
+                    "path": "../../../platform/src/layout/component/",
+                    "name": "Auto.js"
+                },
+                {
+                    "path": "../../../platform/src/layout/component/",
+                    "name": "Draw.js"
+                },
+                {
+                    "path": "../../../platform/src/fx/target/",
+                    "name": "Element.js"
+                },
+                {
+                    "path": "../../../platform/src/fx/target/",
+                    "name": "CompositeElement.js"
+                },
+                {
+                    "path": "../../../platform/src/fx/target/",
+                    "name": "Sprite.js"
+                },
+                {
+                    "path": "../../../platform/src/fx/target/",
+                    "name": "CompositeSprite.js"
+                },
+                {
+                    "path": "../../../platform/src/fx/target/",
+                    "name": "Component.js"
+                },
+                {
+                    "path": "../../../platform/src/fx/",
+                    "name": "Manager.js"
+                },
+                {
+                    "path": "../../../platform/src/fx/",
+                    "name": "Animator.js"
+                },
+                {
+                    "path": "../../../platform/src/fx/",
+                    "name": "Anim.js"
+                },
+                {
+                    "path": "../../../platform/src/chart/",
+                    "name": "Highlight.js"
+                },
+                {
+                    "path": "../../src/layout/component/",
+                    "name": "Tip.js"
+                },
+                {
+                    "path": "../../src/layout/component/",
+                    "name": "Tab.js"
+                },
+                {
+                    "path": "../../../platform/src/selection/",
+                    "name": "Model.js"
+                },
+                {
+                    "path": "../../src/selection/",
+                    "name": "RowModel.js"
+                },
+                {
+                    "path": "../../src/selection/",
+                    "name": "TreeModel.js"
+                },
+                {
+                    "path": "../../../platform/src/state/",
+                    "name": "Manager.js"
+                },
+                {
+                    "path": "../../../platform/src/state/",
+                    "name": "Stateful.js"
+                },
+                {
+                    "path": "../../../platform/src/",
+                    "name": "AbstractComponent.js"
+                },
+                {
+                    "path": "../../src/",
+                    "name": "Component.js"
+                },
+                {
+                    "path": "../../src/button/",
+                    "name": "Button.js"
+                },
+                {
+                    "path": "../../src/",
+                    "name": "ProgressBar.js"
+                },
+                {
+                    "path": "../../../platform/src/chart/",
+                    "name": "MaskLayer.js"
+                },
+                {
+                    "path": "../../src/toolbar/",
+                    "name": "Spacer.js"
+                },
+                {
+                    "path": "../../src/toolbar/",
+                    "name": "Fill.js"
+                },
+                {
+                    "path": "../../src/form/field/",
+                    "name": "Base.js"
+                },
+                {
+                    "path": "../../src/form/field/",
+                    "name": "Text.js"
+                },
+                {
+                    "path": "../../src/form/field/",
+                    "name": "TextArea.js"
+                },
+                {
+                    "path": "../../../platform/src/draw/",
+                    "name": "Component.js"
+                },
+                {
+                    "path": "../../../platform/src/chart/",
+                    "name": "Chart.js"
+                },
+                {
+                    "path": "../../../platform/src/chart/",
+                    "name": "TipSurface.js"
+                },
+                {
+                    "path": "../../../platform/src/chart/axis/",
+                    "name": "Abstract.js"
+                },
+                {
+                    "path": "../../../platform/src/chart/axis/",
+                    "name": "Axis.js"
+                },
+                {
+                    "path": "../../../platform/src/chart/axis/",
+                    "name": "Category.js"
+                },
+                {
+                    "path": "../../../platform/src/chart/axis/",
+                    "name": "Gauge.js"
+                },
+                {
+                    "path": "../../../platform/src/chart/axis/",
+                    "name": "Numeric.js"
+                },
+                {
+                    "path": "../../../platform/src/chart/axis/",
+                    "name": "Radial.js"
+                },
+                {
+                    "path": "../../src/picker/",
+                    "name": "Color.js"
+                },
+                {
+                    "path": "../../src/toolbar/",
+                    "name": "Item.js"
+                },
+                {
+                    "path": "../../../platform/src/container/",
+                    "name": "AbstractContainer.js"
+                },
+                {
+                    "path": "../../src/container/",
+                    "name": "Container.js"
+                },
+                {
+                    "path": "../../src/container/",
+                    "name": "Viewport.js"
+                },
+                {
+                    "path": "../../src/panel/",
+                    "name": "Header.js"
+                },
+                {
+                    "path": "../../src/grid/header/",
+                    "name": "Container.js"
+                },
+                {
+                    "path": "../../src/grid/column/",
+                    "name": "Column.js"
+                },
+                {
+                    "path": "../../src/grid/",
+                    "name": "RowNumberer.js"
+                },
+                {
+                    "path": "../../src/tree/",
+                    "name": "Column.js"
+                },
+                {
+                    "path": "../../src/tab/",
+                    "name": "Tab.js"
+                },
+                {
+                    "path": "../../src/tab/",
+                    "name": "Bar.js"
+                },
+                {
+                    "path": "../../src/toolbar/",
+                    "name": "Separator.js"
+                },
+                {
+                    "path": "../../src/layout/container/boxOverflow/",
+                    "name": "Menu.js"
+                },
+                {
+                    "path": "../../src/layout/container/",
+                    "name": "Box.js"
+                },
+                {
+                    "path": "../../src/layout/container/",
+                    "name": "HBox.js"
+                },
+                {
+                    "path": "../../src/layout/container/",
+                    "name": "VBox.js"
+                },
+                {
+                    "path": "../../src/toolbar/",
+                    "name": "Toolbar.js"
+                },
+                {
+                    "path": "../../src/layout/container/",
+                    "name": "Accordion.js"
+                },
+                {
+                    "path": "../../../platform/src/panel/",
+                    "name": "AbstractPanel.js"
+                },
+                {
+                    "path": "../../../platform/src/data/writer/",
+                    "name": "Json.js"
+                },
+                {
+                    "path": "../../../platform/src/layout/container/",
+                    "name": "AbstractFit.js"
+                },
+                {
+                    "path": "../../src/layout/container/",
+                    "name": "Fit.js"
+                },
+                {
+                    "path": "../../../platform/src/layout/container/",
+                    "name": "AbstractCard.js"
+                },
+                {
+                    "path": "../../src/layout/container/",
+                    "name": "Card.js"
+                },
+                {
+                    "path": "../../../platform/src/data/reader/",
+                    "name": "Reader.js"
+                },
+                {
+                    "path": "../../../platform/src/data/reader/",
+                    "name": "Json.js"
+                },
+                {
+                    "path": "../../../platform/src/data/proxy/",
+                    "name": "Proxy.js"
+                },
+                {
+                    "path": "../../../platform/src/data/proxy/",
+                    "name": "Server.js"
+                },
+                {
+                    "path": "../../../platform/src/data/proxy/",
+                    "name": "Ajax.js"
+                },
+                {
+                    "path": "../../../platform/src/data/",
+                    "name": "Model.js"
+                },
+                {
+                    "path": "js/",
+                    "name": "ShortcutModel.js"
+                },
+                {
+                    "path": "../../../platform/src/data/",
+                    "name": "Store.js"
+                },
+                {
+                    "path": "../../../platform/src/data/",
+                    "name": "ArrayStore.js"
+                },
+                {
+                    "path": "../../../platform/src/data/",
+                    "name": "JsonStore.js"
+                },
+                {
+                    "path": "../../../platform/src/chart/axis/",
+                    "name": "Time.js"
+                },
+                {
+                    "path": "../../../platform/src/data/",
+                    "name": "NodeStore.js"
+                },
+                {
+                    "path": "../../../platform/src/data/",
+                    "name": "TreeStore.js"
+                },
+                {
+                    "path": "../../../platform/src/selection/",
+                    "name": "DataViewModel.js"
+                },
+                {
+                    "path": "../../../platform/src/view/",
+                    "name": "AbstractView.js"
+                },
+                {
+                    "path": "../../src/view/",
+                    "name": "View.js"
+                },
+                {
+                    "path": "../../src/view/",
+                    "name": "Table.js"
+                },
+                {
+                    "path": "../../src/grid/",
+                    "name": "View.js"
+                },
+                {
+                    "path": "../../src/tree/",
+                    "name": "View.js"
+                },
+                {
+                    "path": "../../src/dd/",
+                    "name": "DragDrop.js"
+                },
+                {
+                    "path": "../../src/dd/",
+                    "name": "DD.js"
+                },
+                {
+                    "path": "../../src/dd/",
+                    "name": "DDProxy.js"
+                },
+                {
+                    "path": "../../src/dd/",
+                    "name": "DragSource.js"
+                },
+                {
+                    "path": "../../src/panel/",
+                    "name": "DD.js"
+                },
+                {
+                    "path": "../../src/panel/",
+                    "name": "Panel.js"
+                },
+                {
+                    "path": "js/",
+                    "name": "Desktop.js"
+                },
+                {
+                    "path": "js/",
+                    "name": "App.js"
+                },
+                {
+                    "path": "../../src/window/",
+                    "name": "Window.js"
+                },
+                {
+                    "path": "../../src/window/",
+                    "name": "MessageBox.js"
+                },
+                {
+                    "path": "",
+                    "name": "Settings.js"
+                },
+                {
+                    "path": "../../src/tab/",
+                    "name": "Panel.js"
+                },
+                {
+                    "path": "",
+                    "name": "TabWindow.js"
+                },
+                {
+                    "path": "../../src/panel/",
+                    "name": "Table.js"
+                },
+                {
+                    "path": "../../src/grid/",
+                    "name": "Panel.js"
+                },
+                {
+                    "path": "",
+                    "name": "GridWindow.js"
+                },
+                {
+                    "path": "../../src/tree/",
+                    "name": "Panel.js"
+                },
+                {
+                    "path": "",
+                    "name": "AccordionWindow.js"
+                },
+                {
+                    "path": "../../src/tip/",
+                    "name": "Tip.js"
+                },
+                {
+                    "path": "../../src/tip/",
+                    "name": "ToolTip.js"
+                },
+                {
+                    "path": "../../../platform/src/chart/",
+                    "name": "Tip.js"
+                },
+                {
+                    "path": "../../../platform/src/chart/series/",
+                    "name": "Series.js"
+                },
+                {
+                    "path": "../../../platform/src/chart/series/",
+                    "name": "Cartesian.js"
+                },
+                {
+                    "path": "../../../platform/src/chart/series/",
+                    "name": "Area.js"
+                },
+                {
+                    "path": "../../../platform/src/chart/series/",
+                    "name": "Bar.js"
+                },
+                {
+                    "path": "../../../platform/src/chart/series/",
+                    "name": "Column.js"
+                },
+                {
+                    "path": "../../../platform/src/chart/series/",
+                    "name": "Gauge.js"
+                },
+                {
+                    "path": "../../../platform/src/chart/series/",
+                    "name": "Line.js"
+                },
+                {
+                    "path": "../../../platform/src/chart/series/",
+                    "name": "Pie.js"
+                },
+                {
+                    "path": "../../../platform/src/chart/series/",
+                    "name": "Radar.js"
+                },
+                {
+                    "path": "../../../platform/src/chart/series/",
+                    "name": "Scatter.js"
+                },
+                {
+                    "path": "",
+                    "name": "SystemStatus.js"
+                },
+                {
+                    "path": "../../src/tip/",
+                    "name": "QuickTip.js"
+                },
+                {
+                    "path": "../../src/tip/",
+                    "name": "QuickTipManager.js"
+                },
+                {
+                    "path": "../../src/form/field/",
+                    "name": "HtmlEditor.js"
+                },
+                {
+                    "path": "",
+                    "name": "Notepad.js"
+                },
+                {
+                    "path": "",
+                    "name": "App.js"
+                },
+                {
+                    "path": "../../../platform/src/util/",
+                    "name": "Point.js"
+                },
+                {
+                    "path": "../../src/",
+                    "name": "Layer.js"
+                },
+                {
+                    "path": "js/",
+                    "name": "Video.js"
+                },
+                {
+                    "path": "../../src/resizer/",
+                    "name": "Resizer.js"
+                },
+                {
+                    "path": "../../src/panel/",
+                    "name": "Tool.js"
+                },
+                {
+                    "path": "../../src/util/",
+                    "name": "CSS.js"
+                },
+                {
+                    "path": "../../src/grid/",
+                    "name": "ColumnLayout.js"
+                },
+                {
+                    "path": "../../src/grid/plugin/",
+                    "name": "HeaderResizer.js"
+                },
+                {
+                    "path": "../../../platform/src/data/",
+                    "name": "Batch.js"
+                },
+                {
+                    "path": "../../../platform/src/data/",
+                    "name": "Request.js"
+                },
+                {
+                    "path": "../../../platform/src/data/reader/",
+                    "name": "Array.js"
+                },
+                {
+                    "path": "../../src/view/",
+                    "name": "TableChunker.js"
+                },
+                {
+                    "path": "js/",
+                    "name": "Wallpaper.js"
+                },
+                {
+                    "path": "js/",
+                    "name": "FitAllLayout.js"
+                },
+                {
+                    "path": "",
+                    "name": "WallpaperModel.js"
+                },
+                {
+                    "path": "../../src/grid/",
+                    "name": "Scroller.js"
+                },
+                {
+                    "path": "../../src/menu/",
+                    "name": "Item.js"
+                },
+                {
+                    "path": "../../src/menu/",
+                    "name": "KeyNav.js"
+                },
+                {
+                    "path": "../../../platform/src/draw/",
+                    "name": "Matrix.js"
+                },
+                {
+                    "path": "../../../platform/src/data/proxy/",
+                    "name": "Client.js"
+                },
+                {
+                    "path": "../../src/resizer/",
+                    "name": "Splitter.js"
+                },
+                {
+                    "path": "../../src/toolbar/",
+                    "name": "TextItem.js"
+                },
+                {
+                    "path": "../../src/form/",
+                    "name": "CheckboxManager.js"
+                },
+                {
+                    "path": "../../src/grid/",
+                    "name": "LockingView.js"
+                },
+                {
+                    "path": "../../../platform/src/draw/",
+                    "name": "SpriteDD.js"
+                },
+                {
+                    "path": "../../src/dd/",
+                    "name": "DragZone.js"
+                },
+                {
+                    "path": "../../src/dd/",
+                    "name": "Registry.js"
+                },
+                {
+                    "path": "../../src/dd/",
+                    "name": "DDTarget.js"
+                },
+                {
+                    "path": "../../src/dd/",
+                    "name": "ScrollManager.js"
+                },
+                {
+                    "path": "../../src/menu/",
+                    "name": "CheckItem.js"
+                },
+                {
+                    "path": "../../src/menu/",
+                    "name": "Separator.js"
+                },
+                {
+                    "path": "../../src/menu/",
+                    "name": "Menu.js"
+                },
+                {
+                    "path": "../../../platform/src/data/proxy/",
+                    "name": "Memory.js"
+                },
+                {
+                    "path": "../../src/form/field/",
+                    "name": "Checkbox.js"
+                },
+                {
+                    "path": "../../src/layout/container/",
+                    "name": "Border.js"
+                },
+                {
+                    "path": "../../src/grid/",
+                    "name": "Lockable.js"
+                },
+                {
+                    "path": "../../../platform/src/draw/",
+                    "name": "Sprite.js"
+                },
+                {
+                    "path": "../../../platform/src/draw/engine/",
+                    "name": "Svg.js"
+                },
+                {
+                    "path": "../../../platform/src/draw/engine/",
+                    "name": "Vml.js"
+                },
+                {
+                    "path": "../../src/grid/header/",
+                    "name": "DragZone.js"
+                },
+                {
+                    "path": "js/",
+                    "name": "StartMenu.js"
+                },
+                {
+                    "path": "js/",
+                    "name": "TaskBar.js"
+                },
+                {
+                    "path": "../../src/dd/",
+                    "name": "DropTarget.js"
+                },
+                {
+                    "path": "../../src/dd/",
+                    "name": "DropZone.js"
+                },
+                {
+                    "path": "../../src/grid/header/",
+                    "name": "DropZone.js"
+                },
+                {
+                    "path": "../../src/grid/plugin/",
+                    "name": "HeaderReorderer.js"
+                },
+                {
+                    "path": "../../src/resizer/",
+                    "name": "ResizeTracker.js"
+                },
+                {
+                    "path": "../../src/resizer/",
+                    "name": "SplitterTracker.js"
+                },
+                {
+                    "path": "../../src/",
+                    "name": "ShadowPool.js"
+                },
+                {
+                    "path": "../../src/",
+                    "name": "Shadow.js"
+                }
+            ]
+        }
+    ],
+    "resources": []
+}
\ No newline at end of file
diff --git a/js/lib/ux/grid/HeaderToolTip.js b/js/lib/ux/grid/HeaderToolTip.js
new file mode 100644
index 0000000..07d282e
--- /dev/null
+++ b/js/lib/ux/grid/HeaderToolTip.js
@@ -0,0 +1,43 @@
+/**
+ * Project   : AMDA-NG
+ * Name      : HeaderToolTip.js
+ * @class   Ext.ux.grid.HeaderToolTip
+ * @author SENCHA 
+ * @version  $
+ ******************************************************************************
+ *    FT Id     :   Date   : Name - Description
+ ******************************************************************************
+ *  :          
+ */
+Ext.define('Ext.ux.amdaGrid.HeaderToolTip', {
+  
+    alias: 'plugin.headertooltip',
+    
+    init : function(grid) {
+      
+	var headerCt = grid.headerCt;
+	
+	grid.headerCt.on("afterrender", function(g) {
+
+	  grid.tip = Ext.create('Ext.tip.ToolTip', {
+	  target: headerCt.el,
+	  delegate: ".x-column-header",
+	  trackMouse: false,
+	  renderTo: Ext.getBody(),
+	  listeners: {
+	      beforeshow: function(tip) {
+		  var c = headerCt.down('gridcolumn[id=' + tip.triggerElement.id  +']');
+		  if (c && c.tooltip) {
+                            tip.update(c.tooltip);
+                            return true;
+                        }
+		  else {
+		      tip.clearTimers();
+		      return false;
+		  }
+	      }
+	  }
+	});
+    });
+  }
+});
diff --git a/js/resources/css/AccueilAmda.css b/js/resources/css/AccueilAmda.css
new file mode 100644
index 0000000..f73ae60
--- /dev/null
+++ b/js/resources/css/AccueilAmda.css
@@ -0,0 +1 @@
+@charset "UTF-8";
@import url("../fonts/stylesheet.css");
/* CSS Document */
body{
		text-align: left;
		background-color: #FFF;
}
/*•••••••••••••• couvercle et trou ••••••••••••*/

#trou{
		position: relative;
		margin-right: 50%;
		margin-left: 50%;
		left: -1050px;
		top: -10px;
		width: 1920px;
		height: 1170px;
		z-index: 1;
		background-attachment: scroll;
		background-image: url(../images/trou.jpg);
		background-repeat: no-repeat;
}


#couvercle{
		position: relative;
		margin-right: auto;
		margin-left: auto;
		left: -276px;
		top: -130px;
		width: 676px;
		height: 676px;
		z-index: 1;
		background: url(../images/Couvercle_complet.png) 0 0 no-repeat scroll;
		background-repeat: no-repeat;
		background-image: url(../images/Couvercle_complet.png);
		-webkit-transition: all 0.5s ease-in-out;
		-moz-transition: all 0.5s ease-in-out;
		
		
	}
#couvercle:hover{
		left: -400px;
		top: -100px;
/*		-webkit-transform: rotate(-5deg)*/
		
		 }
		

		 
/*•••••••••••••• boutons ••••••••••••*/

#TousLesBoutons{
	left: 937px;
	top: -608px;
	z-index: 6;
	position: relative;
	width: 350px;
	height: 500px;
	}	 

#Btn_FirstVisit, #Btn_Rules, #Btn_Login, #Btn_Register, #Btn_Contact{
		background: url(../images/bouton_off.png) 0 0 no-repeat scroll;
		z-index: 6;
		position: relative;
		width: 40px;
		height: 40px;
	}
		
#Btn_FirstVisit:hover, #Btn_Rules:hover, #Btn_Login:hover, #Btn_Register:hover, #Btn_Contact:hover{
		background: url(../images/bouton_over.png) 0 0 no-repeat scroll;
	}
	
#Btn_EnterLogin, #Btn_EnterPassword{
	left: 90px;
	z-index: 6;
	position: relative;
	width: 230px;
	height: 25px;
	background-color: rgba(0, 0, 0, 1);
	border-radius:5px 0px 10px 5px;
	padding: 1px 0px 0px 15px;
	border:none;

	}
	#Btn_EnterLogin:hover, #Btn_EnterPassword:hover{
	background-color: rgba(66, 66, 66, 1);

	
	}




#Btn_EnterLogin, #Btn_EnterPassword{
		font-family: orbitronbold;
		font-size: 10px;
		text-align: left;
	}
	
.PlaceHolder {
	  color: #0CF; 
	}

/*••••••••••••••••••••••••••• positionnement des boutons ••••••••••••••••••*/

#Btn_FirstVisit{
		left: 83px;
		top: 0px;	
	}

#Btn_Rules{
		left: 92px;
		top: 13px;		
	}

#Btn_EnterLogin{
		top: 35px;
		
	}

#Btn_EnterPassword{
		
		top: 45px;
	}

#Btn_Login{
		left: 83px;
		top: 75px;
		border: none;
	}

#Btn_Register{
		left: 62px;
		top: 95px;
		display: block;
	}

#Btn_Contact{
		left: 30px;
		top: 112px;
		display: block;
	}
	


	
#Logo_CDPP{
	width: 209px;
	height: 144px;
	display: block;
	top: -70px;
	left:400px;
	z-index: 50;
	position: absolute;
	background: url(../images/Logo_CDPP_off.png) 0 0 no-repeat scroll;
	}
#Logo_CDPP:hover{
	background: url(../images/Logo_CDPP_over.png) 0 0 no-repeat scroll;
	z-index: 100;
}	

#Logos_partenaires{
	margin-right: auto;
	margin-left: auto;
	left:15%;
	right:10%;
	width: 1500px;
	height: 42px;
	bottom: 50px;
	z-index: 50;
	position: fixed;
	background: url(../images/LogosPartenaires.png) 0px 0px no-repeat scroll;				
}
#PaveGuest{
		font-family: orbitronbold;
		font-size: 15px;
		color: rgba(0, 0, 42, 0.3);
		left: 350px;
		top: -178px;
		width: 300px;
		height: 30px;
		z-index: 100;
		padding:20px 20px 20px 20px;
		position: relative;
		background-color: rgba(255, 255, 255, 0);
		border-radius:0px 30px 0px 30px;	
}
#TitrePaveGuest{
		font-family: orbitronlight;
		font-size: 17px;
		color: rgba(0, 0, 0, 0.3);
		background-color: rgba(255, 100, 255, 0);
		margin-top:20px;
}
#TextePaveGuest{
		font-family: orbitronlight;
		font-size: 14px;
		color: rgba(0, 0, 0, 0.5);
		background-color: rgba(255, 255, 255, 0.2);
		padding:5px 10px 2px 5px;
		border-radius:0px 0px 20px 0px;
}
/* •••••••••••••••••••••••••••••••• ANNOUCEMENTS••••••••••••••••••••••••••••••••••••*/

#PaveAnnoucements{
		font-family: orbitronbold;
		font-size: 30px;
		color: rgba(0, 0, 42, 0.3);
		left: 300px;
		top: -100px;
		width: 300px;
		height: 300px;
		z-index: 100;
		padding:20px 20px 20px 20px;
		position: relative;
		background-color: rgba(255, 255, 255, 0);
		border-radius:0px 30px 0px 30px;
}
#TitrePaveAnnoucement{
		font-family: orbitronlight;
		font-size: 35px;
		color: rgba(0, 0, 0, 0.2);
		background-color: rgba(255, 100, 255, 0);
		margin-top:20px;
}
#DateAnnoucement{
		font-family: orbitronbold;
		font-size: 12px;
		color: rgba(163, 224, 255, 1);
		background-color: rgba(0, 0, 0, 1);
		padding:4px 5px 2px 5px;
		border-radius:3px 3px 3px 3px;
		width: 100px;
}
#DateAnnoucementRed{
		font-family: orbitronbold;
		font-size: 12px;
		color: #F00;
		background-color: rgba(0, 0, 0, 1);
		padding:4px 5px 2px 5px;
		border-radius:3px 3px 3px 3px;
		width: 100px;
}
#TexteAnnoucement{
		font-family: orbitronlight;
		font-size: 14px;
		color: rgba(0, 0, 0, 0.5);
		background-color: rgba(255, 255, 255, 0.2);
		padding:5px 10px 5px 10px;
		border-top:1px solid rgba(255, 255, 255, 1);
		border-radius:0px 0px 20px 0px;
}
#TexteAnnoucementRed{
		font-family: orbitronbold;
		font-size: 14px;
		color: #F00;
		text-decoration: blink;
		background-color: rgba(255, 255, 255, 0.2);
		padding:5px 10px 5px 10px;
		border-top:1px solid rgba(255, 255, 255, 1);
		border-radius:0px 0px 20px 0px;
}
\ No newline at end of file
diff --git a/js/resources/css/FisheyeMenu.css b/js/resources/css/FisheyeMenu.css
new file mode 100644
index 0000000..8a73b34
--- /dev/null
+++ b/js/resources/css/FisheyeMenu.css
@@ -0,0 +1,62 @@
+/* styles for CSS Reset */
+body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,fieldset,input,textarea,p,blockquote{margin:0;padding:0;}fieldset,img{border:0;}address,caption,cite,code,dfn,em,strong,th,var{font-style:normal;font-weight:normal;}ol,ul {list-style:none;}caption,th{text-align:left;}h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:normal;}q:before,q:after{content:'';}abbr,acronym{border:0;}
+
+/* styles for examples */
+body {
+	background-color: #DFE8F6;
+}
+
+#fisheye-menu {
+	text-align: center;
+}
+
+/* styles for FisheyeMenu */
+.ux-fisheye-menu-container {
+	position: absolute;
+	height: 60px;
+}
+
+a.ux-fisheye-menu-item {
+	display: block;
+	font: bold 12px Arial, Helvetica, sans-serif;
+	width: 40px;
+	color: #000;
+	position: absolute;
+	text-align: center;
+	text-decoration: none;
+	border: none;
+}
+
+a.ux-fisheye-menu-item span {
+	margin-bottom: 5px;
+	border: none;
+	color: #FFF;
+	display: none;
+	text-align: center;
+	text-decoration: none;
+}
+
+a.ux-fisheye-menu-item img {
+	border: none;
+	margin-right: 10px;
+	width: 100%;
+	text-decoration: none;
+}
+
+.menu-wrap-top {
+	position: relative;
+}
+.menu-wrap-bottom {
+	position: absolute;
+	width: 100%;
+	bottom: 35px;
+}
+
+.menu-align-top {
+	top: 0;
+	bottom: auto;
+}
+.menu-align-bottom {
+	bottom: 0;
+	top: auto;
+}
\ No newline at end of file
diff --git a/js/resources/css/amda.css b/js/resources/css/amda.css
new file mode 100644
index 0000000..42fb0b1
--- /dev/null
+++ b/js/resources/css/amda.css
@@ -0,0 +1,387 @@
+/* This is amda specific stylesheet*/
+	
+.window-active .x-window-header {
+	background-color:#6c0985;
+}
+
+.window-active .x-window-header-text {
+	color: #08d5c9;
+}
+
+.icon-add-resources {
+    background-image:url( ../images/16x16/plus_Orange.png ) !important;
+}
+
+.icon-feedback {
+    background-image:url( ../images/16x16/mail.png ) !important;
+}
+
+.icon-manage-tt {
+    background-image:url( ../images/16x16/timeTable.png ) !important;
+}
+
+.icon-plot {
+    background-image:url( ../images/16x16/plot.png ) !important;
+}
+
+.icon-filter {
+    background-image:url( ../images/16x16/filter.png ) !important;
+}
+
+.icon-download {
+    background-image:url( ../images/16x16/download_manager.png ) !important;
+}
+
+.icon-mydata {
+    background-image:url( ../images/16x16/mydata.png ) !important;
+
+}
+
+.icon-catalog {
+    background-image:url( ../images/16x16/catalog.png ) !important;
+}
+
+.icon-tts {
+    background-image:url( ../images/16x16/operations.png ) !important;
+}
+
+.icon-parameters {
+    background-image:url( ../images/16x16/edit.png ) !important;
+}
+
+.icon-interop {
+	background-image:url( ../images/16x16/interop.png ) !important;
+}
+
+.icon-connected {
+	background-image:url( ../images/16x16/connected.png ) !important;
+}
+
+.icon-disconnected {
+	background-image:url( ../images/16x16/disconnected.png ) !important;
+}
+
+.icon-user { background-image:url(../images/16x16/user.png) !important; }
+
+.icon-elements {
+    background-image:url( ../images/16x16/view_tree.png ) !important;
+}
+
+.icon-results {
+    background-image:url( ../images/16x16/results.png ) !important;
+}
+
+.icon-calculator {
+    background-image:url( ../images/16x16/calculator.png ) !important;
+}
+
+.icon-search {
+    background-image:url( ../images/16x16/search.png ) !important;
+}
+
+.icon-manage-ws {
+    background-image:url( ../images/16x16/wsManager.png ) !important;
+}
+
+.icon-manage-resrc {
+	background-image:url( ../images/16x16/manageRsrc.png ) !important;
+}
+
+.icon-help {
+    background-image:url( ../images/16x16/help.png ) !important;
+}
+
+.icon-information {
+    background-image:url( ../images/16x16/info.png ) !important;
+}
+
+.icon-ws {
+    background-image:url( ../images/16x16/workspaces.png ) !important;
+}
+
+.icon-delete {
+    background-image:url( ../images/icons/fam/delete.gif ) !important;
+}
+
+.icon-add {
+     background-image:url( ../images/icons/fam/add.png ) !important;
+}
+
+.icon-remover {
+background-image: url(../images/small_cancel_centered.png);
+}
+
+.icon-small-remover {
+background-image: url(../images/small_cancel_centered.png);
+}
+
+/**
+ * RangeMenu Styles
+ **/
+
+.ux-rangemenu-icon {
+    display: block;
+    height: 16px;
+    background: no-repeat 5px center;
+}
+
+.ux-rangemenu-gt {
+    background-image: url(../images/16x16/greater_than.png) !important;
+}
+
+.ux-rangemenu-lt {
+    background-image: url(../images/16x16/less_than.png) !important;
+}
+
+.ux-rangemenu-eq {
+    background-image: url(../images/16x16//equals.png) !important;
+}
+/*
+.icon-kill {
+background-image: url(../images/16x16/process_stop.png);
+}
+
+.icon-done {
+background-image: url(../images/16x16/tick_circle.png);
+}
+
+ .icon_add {
+background-image: url(../images/16x16/plus_blue.png);
+}
+
+.icon_remove {
+background-image: url(../images/16x16/minus_blue.png);
+}*/
+
+/**
+ * Jobs classes
+ **/
+
+.icon-pend {
+background-image: url(../images/16x16/arrow_circle_double.png) !important;
+}
+
+.icon-new {
+background-image: url(../images/16x16/new.png) !important;
+}
+
+.icon-error {
+background-image: url(../images/16x16/error.png) !important;
+}
+
+.treenode-changed {
+	color: #08d5c9;
+}
+
+.icon-less {
+    background-image:url( ../images/less.png ) !important;
+    background-position: center;
+    background-repeat: no-repeat;
+}
+
+.icon-more {
+    background-image:url( ../images/more.png ) !important;
+    background-position: center;
+    background-repeat: no-repeat;
+}
+
+.icon-addRsrc {
+     background-image:url( ../images/32x32/1309360076_misc_22.png ) !important;
+}
+
+.icon-removeRsrc {
+     background-image:url( ../images/32x32/1309360153_misc_21.png ) !important;
+}
+
+.plotPanelBgColor  td {
+	color: black!important;
+	background-color: #f8f8f8!important; 	 
+}
+
+.plotPanelBgColor  td div {	 
+	padding: 0px!important;
+/*	margin: 0px!important;	 */
+}
+
+.plotParamBgColor td div {
+	color: #505050!important;	 
+	padding: 0px!important;
+/*	margin: 0px!important; */
+}
+
+
+.hide {
+  display: none;
+}
+
+.show {
+  display: inline;
+}
+
+.meow {
+    background-color: yellow !important;
+}
+
+
+.infoWindow  ul {
+	 	 padding-top: 3px;
+	 	 margin-left: 30px;
+	 	 list-style-type: circle;
+}
+
+.infoWindow  li {
+	 	 padding-top: 3px;
+	 	 list-style-type: circle;
+}
+ 
+.infoWindow h2 {  
+    padding-bottom: 3px; 
+    margin-bottom: 1em;
+    color: #555555;
+    color: #555555;
+	}
+	
+.infoMsg h2 {
+      padding-bottom: 3px;
+      color: #555555;   
+	}
+	
+.infoMsg  ul {
+      padding-top: 3px;
+      margin-left: 20px;
+}
+
+.infoMsg  li {
+	 list-style-type: circle;
+}
+
+.plotPanelBgColor  td div {	 
+	padding: 0px!important;
+/*	margin: 0px!important;	 */
+}
+
+.plotParamBgColor td div {
+	color: #505050!important;	 
+	padding: 0px!important;
+/*	margin: 0px!important; */
+}
+
+.icon-scalar {
+     background-image:url(../images/10x10/circle_grey.png) !important;
+     background-position: center;
+     background-repeat: no-repeat;
+}
+
+.icon-vector {
+     background-image:url(../images/12x12/circle_green_.png) !important;
+     background-position: center;
+     background-repeat: no-repeat;
+}
+
+.icon-spectra {
+     background-image:url(../images/12x12/circle_orange_.png) !important;
+     background-position: center;
+     background-repeat: no-repeat;
+}
+
+.icon-unknowntype {
+     background-image:url(../images/14x14/circle_grey.png) !important;
+     background-position: center;
+     background-repeat: no-repeat;
+}
+
+.icon-timetable {
+     background-image:url(../images/14x14/table.png) !important;
+     background-position: center;
+     background-repeat: no-repeat;
+}
+
+.icon-disabled {
+    opacity:0.5 !important;
+}
+
+.icon-mercury {
+     background-image:url(../images/icons/mercury.png) !important;
+     background-position: center;
+     background-repeat: no-repeat;
+}
+
+.icon-rosetta {
+     background-image:url(../images/icons/rosetta.png) !important;
+     background-position: center;
+     background-repeat: no-repeat;
+}
+.icon-venus {
+     background-image:url(../images/icons/venus.png) !important;
+     background-position: center;
+     background-repeat: no-repeat;
+}
+
+.icon-earth {
+     background-image:url(../images/icons/earth.png) !important;
+     background-position: center;
+     background-repeat: no-repeat;
+}
+
+.icon-mars {
+     background-image:url(../images/icons/mars.png) !important;
+     background-position: center;
+     background-repeat: no-repeat;
+}
+
+.icon-jupiter {
+     background-image:url(../images/icons/jupiter.png) !important;
+     background-position: center;
+     background-repeat: no-repeat;
+}
+
+.icon-saturn {
+     background-image:url(../images/icons/saturn.png) !important;
+     background-position: center;
+     background-repeat: no-repeat;
+}
+
+.icon-sun {
+     background-image:url(../images/icons/sun.png) !important;
+     background-position: center;
+     background-repeat: no-repeat;
+}
+
+.icon-comet {
+     background-image:url(../images/icons/comet.png) !important;
+     background-position: center;
+     background-repeat: no-repeat;
+}
+
+.icon-sw {
+     background-image:url(../images/icons/sw.png) !important;
+     background-position: center;
+     background-repeat: no-repeat;
+}
+
+.icon-solarsystem {
+     background-image:url(../images/icons/space.png) !important;
+     background-position: center;
+     background-repeat: no-repeat;
+}
+
+img.centered {
+    display: block;
+    margin-left: auto;
+    margin-right: auto }
+    
+.predicted {
+  font-style: italic !important;    
+}
+
+ p {
+  margin-bottom: 0}
+  
+p + p {
+/*  text-indent: 1.5em; */
+  margin-top: 0.5em}
+  
+.ux-filtered-column {
+  font-style: italic !important;
+  font-weight: bold !important;
+}
diff --git a/js/resources/css/application.css b/js/resources/css/application.css
new file mode 100644
index 0000000..c0b4f5f
--- /dev/null
+++ b/js/resources/css/application.css
@@ -0,0 +1,3 @@
+.x-tablet .x-list, .x-desktop .x-list {
+  border-right: 1px solid #000;
+}
\ No newline at end of file
diff --git a/js/resources/css/desktop.css b/js/resources/css/desktop.css
new file mode 100644
index 0000000..8cf0acf
--- /dev/null
+++ b/js/resources/css/desktop.css
@@ -0,0 +1,355 @@
+/*!
+* Ext JS Library 4.0
+* Copyright(c) 2006-2011 Sencha Inc.
+* licensing@sencha.com
+* http://www.sencha.com/license
+*/
+
+#poweredby {
+    position: absolute;
+    bottom: 40px;
+    right: 20px;
+    z-index: 15000;
+
+    /* IE 5-7 */
+    filter: alpha(opacity=70);
+    /* Netscape */
+    -moz-opacity: 0.7;
+    /* Safari 1.x */
+    -khtml-opacity: 0.7;
+    /* Good browsers */
+    opacity: 0.7;
+}
+
+#poweredby div {
+    position: relative;
+    width: 150px;
+    height: 25px;
+    background-image: url(../images/desktop/powered-by-ext-js.png);
+    background-repeat: no-repeat;
+}
+
+/* The simple background image PNG does not work in IE6-8, but does in IE9 */
+.x-ie6 #poweredby div,
+.x-ie7 #poweredby div,
+.x-ie8 #poweredby div {
+    background-image: none;
+    filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='../images/desktop/powered-by-ext-js.png', sizingMethod='scale');
+}
+
+/*----------------------------------------------------
+    Start Button
+*/
+
+.ux-start-button-icon {
+/*    background-image: url(../images/desktop/taskbar/sencha.gif) !important; */
+    background-image: url(../images/desktop/taskbar/fav_amda.png) !important;
+    background-color: transparent;
+}
+
+.ux-start-button .x-btn-arrow {
+    background-image: none;
+}
+
+.ux-start-button .x-btn-arrow-right {
+    padding-left: 10px;
+}
+
+.ux-taskbar {
+    padding-left: 4px !important;
+}
+
+/*
+    Start Button (Black)
+*/
+
+.ux-desktop-black .ux-start-button {
+    height: 28px;
+    padding: 0px;
+    display: block;
+}
+
+.ux-desktop-black .ux-start-button em {
+    margin-top: 5px;
+}
+
+.ux-desktop-black .ux-start-button .x-btn-inner {
+    color: black;
+    font-size:11px;
+    font-weight: bold;
+}
+
+.ux-desktop-black .ux-start-button {
+    background-image: -moz-linear-gradient(center top , #E4F3FF, #D9EDFF 48%, #C2D8F2 52%, #C6DCF6);
+    border-radius: 8px 8px 8px 8px;
+    border-color: #81A4D0;
+}
+
+/*----------------------------------------------------
+    Start Menu
+*/
+
+.ux-start-menu-toolbar .x-btn-inner {
+    text-align: left;
+}
+
+.ux-start-menu-toolbar {
+    padding: 4px !important;
+}
+
+.ux-desktop-black .ux-start-menu-toolbar {
+	background: #3c4148;
+	
+}
+
+/*----------------------------------------------------
+    TaskBar
+*/
+
+.ux-taskbar .x-toolbar {
+    background: transparent none;
+    border-color: transparent;
+}
+
+.x-ie6 .ux-taskbar .x-toolbar {
+    border-color: #d3e1f1;
+}
+
+.ux-desktop-windowbar .x-btn-inner,
+.x-nbr .ux-desktop-windowbar .x-btn-icon-text-left button {
+    text-align: left !important;
+}
+
+.ux-taskbar .x-toolbar {
+    height: 28px;
+}
+
+.ux-taskbar {
+    height: 28px;
+    padding: 0;
+}
+
+.x-toolbar .x-toolbar {
+    padding: 0;
+}
+
+/*
+    TaskBar (Black)
+*/
+
+.ux-desktop-black .ux-taskbar {
+    background: transparent url('../images/desktop/taskbar/black/taskbar-start-panel-bg.gif') repeat-x left top;
+    border-color: transparent;
+    /*height: 30px;*/
+}
+
+.ux-desktop-black .ux-taskbar .x-splitter {
+    background: transparent url(../images/desktop/taskbar/black/taskbar-split-h.gif) no-repeat scroll 0 -2px;
+}
+
+.ux-desktop-black .ux-taskbar .x-toolbar-text {
+    color: white !important;
+}
+
+.ux-desktop-black .ux-taskbar .x-btn-default-toolbar-small-over {
+    background-color: yellow;
+}
+
+.ux-desktop-black .ux-taskbar .x-btn-inner {
+    color: white;
+}
+
+.ux-desktop-black .ux-taskbar .x-btn-pressed .x-btn-inner, .ux-taskbar .x-btn-over .x-btn-inner {
+    color: black;
+}
+
+/*----------------------------------------------------
+    Tray Clock
+*/
+
+.ux-desktop-trayclock {
+    text-align: center;
+    vertical-align: middle;
+    padding-top: 0;
+    padding-bottom: 0;
+}
+
+/*----------------------------------------------------
+    Desktop DataView
+*/
+
+.ux-wallpaper {
+    background-color: #3d71b8;
+}
+
+.ux-wallpaper-tiled {
+    background-repeat: repeat;
+}
+
+.ux-desktop-shortcut { 
+    position: absolute;
+    left: 10px; 
+    bottom: 20px;   
+    cursor: pointer;   
+    text-align: center;    
+/*    z-index: 15000; */
+     
+}
+ 
+.ux-desktop-shortcut-item {       
+    padding: 6px;  
+  /*  margin: 8px;  */
+    width: 60px;  
+/*    height: 60px; */
+    
+ } 
+ 
+.ux-desktop-shortcut-icon {      
+    width: 48px; 
+    height: 48px;    
+}
+  
+.x-view-over .ux-desktop-shortcut-icon {      
+    width: 64px; 
+    height: 64px;
+    
+}  
+ 
+.ux-desktop-shortcut-text {
+    font: normal 10px tahoma,arial,verdana,sans-serif;
+    text-decoration: none;    
+ /*   display : none; */
+    visibility: hidden;
+}
+
+.x-view-over .ux-desktop-shortcut-text { 
+    font-weight: bold;
+    font-size:  12px;
+    text-decoration: underline;
+    color: white;
+ /*   display: block; */
+    visibility: visible;
+}
+
+/*----------------------------------------------------
+    Amda icon classes
+*/
+
+
+
+/*----------------------------------------------------
+    Various icon classes
+*/
+
+.accordion-shortcut {
+    background-image: url(../images/desktop/im48x48.png);
+}
+
+.cpu-shortcut {
+    background-image: url(../images/desktop/statusLarge.png);
+}
+
+.grid-shortcut {
+    background-image: url(../images/desktop/grid48x48.png);
+}
+
+.notepad-shortcut {
+    background-image: url(../images/desktop/notepadLarge.png);
+    width: 46px;
+    height: 46px;
+}
+
+.x-ie6 .accordion-shortcut {
+    background-image: none;
+    filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='../images/desktop/im48x48.png', sizingMethod='scale');
+}
+
+.x-ie6 .cpu-shortcut {
+    background-image: none;
+    filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='../images/desktop/statusLarge.png', sizingMethod='scale');
+}
+
+.x-ie6 .grid-shortcut {
+    background-image: none;
+    filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='../images/desktop/grid48x48.png', sizingMethod='scale');
+}
+
+.x-ie6 .notepad-shortcut {
+    background-image: none;
+    filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='../images/desktop/notepadLarge.png', sizingMethod='scale');
+}
+
+.video {
+    background-image: url(../images/desktop/gears.gif);
+}
+
+.bogus {
+    background-image: url( ../images/desktop/bogus.png ) !important;
+}
+
+.notepad {
+    background-image: url( ../images/desktop/bogus.png ) !important;
+}
+
+.logout {
+    background-image: url( ../images/desktop/logout.gif ) !important;
+}
+
+.settings {
+    background-image: url( ../images/desktop/gears.gif ) !important;
+}
+
+
+.icon-grid {
+    background-image:url( ../images/desktop/grid.png ) !important;
+}
+.add {
+    background-image:url(../images/icons/fam/add.gif) !important;
+}
+.option {
+    background-image:url(../images/icons/fam/plugin.gif) !important;
+}
+.remove {
+    background-image:url(../images/icons/fam/delete.gif) !important;
+}
+.save {
+    background-image:url(../images/icons/save.gif) !important;
+}
+.accordion {
+    background-image:url(../images/desktop/accordian.gif) !important;
+}
+.tabs {
+    background-image:url(../images/desktop/tabs.gif) !important;
+}
+
+/*----------------------------------------------------
+    IM window icons
+*/
+
+.user {
+    background-image:url( ../images/icons/fam/user.gif ) !important;
+}
+
+.user-add {
+    background-image:url(../images/icons/fam/user_add.gif) !important;
+}
+
+.user-delete {
+    background-image:url(../images/icons/fam/user_delete.gif) !important;
+}
+
+.connect {
+    background-image:url(../images/icons/fam/connect.gif) !important;
+}
+
+.user-girl {
+    background-image:url(../images/icons/fam/user_female.gif) !important;
+}
+
+.user-kid {
+    background-image:url(../images/icons/fam/user_green.gif) !important;
+}
+
+.user-suit {
+    background-image:url(../images/icons/fam/user_suit.gif) !important;
+}
diff --git a/js/resources/css/login.css b/js/resources/css/login.css
new file mode 100644
index 0000000..356b210
--- /dev/null
+++ b/js/resources/css/login.css
@@ -0,0 +1,24 @@
+body { background:#fff none; color:#000; font-family:verdana,tahoma,arial,verdana,sans-serif; font-size:11px; margin:0; }
+p { margin:12px 0; }
+a { color:#ffcc33; }
+img { border:0 none; }
+input, textarea { font-family:verdana,tahoma,arial,verdana,sans-serif; font-size:12px; padding:3px; }
+.qo-abs-position { position:absolute; }
+#qo-panel { background:transparent url(../images/login/bg-panel.jpg) no-repeat; height:521px; left:50%; margin-left:-404px; margin-top:-260px; position:absolute; top:50%; width:808px; }
+.qo-logo { background:transparent url(../images/login/logo-qwikioffice.png) no-repeat; height:130px; left:0px; top:0px; width:420px; }
+.qo-benefits { left:52px; top:140px; width:300px; }
+.qo-screenshot { background:transparent url(../images/login/screenshot.png) no-repeat; height:190px; left:37px; top:245px; width:329px; }
+.qo-extjs-logo { background:transparent url(../images/login/logo-extjs.gif) no-repeat; height:18px; left:52px; top:469px; width:85px;}
+.qo-library { left:54px; top:489px; }
+.qo-library a { color:#0000ff; }
+.qo-supported { color:#ffffff; left:618px; top:45px; }
+.qo-back-link { left:627px; top:478px; }
+.qo-signup-link { left:495px; top:478px; }
+.qo-signup-link a, .qo-forgot-link a, .qo-back-link a { color:#000; }
+.qo-forgot-link { left:625px; top:478px; }
+#field1-label { left:410px; top:300px; }
+#field1 { left:540px; top:298px; width:200px; }
+#field2-label { left:410px; top:335px; }
+#field2 { left:540px; top:333px; width:200px; }
+.qo-submit { background:transparent url(../images/login/login.gif) no-repeat 0 0; height:22px; left:705px; top:373px; width:43px; }
+.qo-submit-over { background:transparent url(../images/login/login.gif) no-repeat 0 -38px; height:22px; left:705px; top:373px; width:43px; }
\ No newline at end of file
diff --git a/js/resources/css/styles.css b/js/resources/css/styles.css
new file mode 100755
index 0000000..67af9d5
--- /dev/null
+++ b/js/resources/css/styles.css
@@ -0,0 +1,194 @@
+/*
+Design by Metamorphosis Design
+http://www.metamorphozis.com
+Released for free under a Creative Commons Attribution 2.5 License
+*/
+
+*
+{
+margin: 0px;
+padding: 0px;
+}
+
+a:link {
+	color: #A5A9B2;
+}
+
+a:hover {
+	text-decoration: none;
+	color: #FF0000;
+}
+
+a:visited {
+	color: #A5A9B2;
+}
+
+body {
+	
+	background: url(../images/ciel10.jpg) ;
+	font: 13px Arial, Helvetica, sans-serif;
+	color: #555555;
+	margin-top: 20px;
+}
+
+#content
+{
+	width: 738px;
+	margin: 0px auto;
+}
+
+#main
+{
+width: 710px;
+padding: 10px;
+padding-top: 20px;
+/*background: #ffffff; */
+background: #F6F3E7; 
+}
+
+#back
+{
+width: 738px;
+}
+ 
+#right
+{
+	width: 215px;
+	float: right;
+}
+
+#right H3
+{
+width: 210px;
+height: 29px;
+font-size: 14px;
+font-weight: bold;
+padding-left:  0px;
+padding-top: 10px;
+text-transform: uppercase;
+color: #555555;
+text-align: center;
+background: url(../images/right.png) no-repeat;
+}
+
+#right H4
+{
+        margin: 0;
+        padding: 0px;
+        font-size: 12px;
+        color:#555555;
+}
+
+#right ul {
+	list-style: none;
+	margin-bottom: 10px;
+	padding-top: 10px;
+}
+ 
+#right li  {
+	padding: 4px;
+	padding-left: 20px;
+        padding-right: 20px;
+       
+}
+ 
+
+#right a {
+	color: #6495ED;
+}
+
+#right a:hover {
+	color: #ff0000;
+}
+
+#right p
+{
+font-size: 10px;
+padding-left: 10px;
+}
+
+
+#left
+{
+width: 450px;
+margin-left: 20px;
+}
+
+#left H4
+{
+	margin: 0;
+	padding: 0px;
+	font-size: 12px;
+	color:#555555;
+}
+
+#left a
+{
+color: #6495ED;
+text-decoration: none;
+}
+
+#left a:hover
+{
+color: #FF0000;
+text-decoration: none;
+}
+
+#left p {
+	margin: 5px;
+	padding: 0;
+}
+
+#left h2 {
+	margin: 0;
+	padding: 0;
+	padding-top: 0px;
+	color: #555555;
+}
+
+#left ol, #left ul
+{
+margin-left: 30px;
+}
+
+.date {
+	text-align: left;
+	color: #555555; 
+	font-size: 10px;
+
+}
+
+.date a {
+	color: #6495ED;
+
+}
+
+
+#footer {
+	height: 50px;
+	clear: both;
+	padding-top: 1px;
+}
+
+#footer p {
+	margin: 0;
+	font-size: 10px;
+	text-align: center;
+	color: #666666;
+}
+
+#footer a {
+	color: #666666;
+}
+
+#left .news {
+
+    font-size: 13px;
+    color: #003366;
+}
+
+#left .warning {
+
+    font-size: 13px;
+    color: #880000;
+}
diff --git a/js/resources/css/styles2.css b/js/resources/css/styles2.css
new file mode 100755
index 0000000..b6effb8
--- /dev/null
+++ b/js/resources/css/styles2.css
@@ -0,0 +1,34 @@
+/*
+Design by Metamorphosis Design
+http://www.metamorphozis.com
+Released for free under a Creative Commons Attribution 2.5 License
+*/
+
+*
+{
+margin: 0px;
+padding: 0px;
+}
+
+body {
+	
+	background: url(../images/ciel10.jpg) ;
+	font: 13px Arial, Helvetica, sans-serif;
+	color: #555555;
+	margin-top: 20px;
+}
+
+#content
+{
+	width: 1438px;
+	margin: 0px auto;
+}
+
+#main
+{
+width: 1410px;
+padding: 10px;
+padding-top: 20px;
+/*background: #ffffff; */
+background: #F6F3E7; 
+}
diff --git a/js/resources/fonts/orbitron-bold.eot b/js/resources/fonts/orbitron-bold.eot
new file mode 100755
index 0000000..5dff684
Binary files /dev/null and b/js/resources/fonts/orbitron-bold.eot differ
diff --git a/js/resources/fonts/orbitron-bold.svg b/js/resources/fonts/orbitron-bold.svg
new file mode 100755
index 0000000..d9a0500
--- /dev/null
+++ b/js/resources/fonts/orbitron-bold.svg
@@ -0,0 +1,503 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
+<svg xmlns="http://www.w3.org/2000/svg">
+<metadata></metadata>
+<defs>
+<font id="orbitronbold" horiz-adv-x="828" >
+<font-face units-per-em="1000" ascent="750" descent="-250" />
+<missing-glyph horiz-adv-x="308" />
+<glyph unicode=" "  horiz-adv-x="308" />
+<glyph unicode="&#x09;" horiz-adv-x="308" />
+<glyph unicode="&#xa0;" horiz-adv-x="308" />
+<glyph unicode="!" horiz-adv-x="220" d="M189 0h-131v131h131v-131zM58 197v523h131v-523h-131z" />
+<glyph unicode="&#x22;" horiz-adv-x="372" d="M191 719v-182h-132v182h132zM350 719v-182h-131v182h131z" />
+<glyph unicode="#" horiz-adv-x="797" d="M757 566v-131h-117l-46 -144h134v-131h-175l-48 -160h-132l49 160h-176q-5 -16 -15 -50t-18 -61.5t-15 -48.5h-132l49 160h-83v131h123l46 144h-140v131h182l50 154h134l-52 -154h175l51 154h133l-52 -154h75zM287 291h175l46 144h-175z" />
+<glyph unicode="$" horiz-adv-x="788" d="M747 582v-54h-131v54q0 7 -7 7h-153v-163h153q57 0 97.5 -40.5t40.5 -97.5v-150q0 -57 -40.5 -97.5t-97.5 -40.5h-153v-103h-131v103h-153q-57 0 -97.5 40.5t-40.5 97.5v54h131v-54q0 -7 7 -7h153v164h-153q-57 0 -97.5 40.5t-40.5 97.5v149q0 57 40.5 97.5t97.5 40.5 h153v103h131v-103h153q57 0 97.5 -40.5t40.5 -97.5zM609 295h-153v-164h153q7 0 7 7v150q0 7 -7 7zM325 426v163h-153q-7 0 -7 -7v-149q0 -7 7 -7h153z" />
+<glyph unicode="%" horiz-adv-x="966" d="M808 720h33v-143l-680 -577h-33v143zM186 713h86q57 0 97.5 -40.5t40.5 -97.5v-76q0 -57 -40.5 -97.5t-97.5 -40.5h-86q-57 0 -97.5 40.5t-40.5 97.5v76q0 57 40.5 97.5t97.5 40.5zM167 474h124q6 0 6 6v114q0 7 -6 7h-124q-7 0 -7 -7v-114q0 -6 7 -6zM679 351h85 q57 0 97.5 -40.5t40.5 -97.5v-76q0 -57 -40.5 -97.5t-97.5 -40.5h-85q-57 0 -97.5 40.5t-40.5 97.5v76q0 57 40.5 97.5t97.5 40.5zM660 111h123q7 0 7 7v114q0 7 -7 7h-123q-7 0 -7 -7v-114q0 -7 7 -7z" />
+<glyph unicode="&#x26;" horiz-adv-x="938" d="M766 195l121 -71v-132l-138 78q-17 -32 -49.5 -51t-71.5 -19h-437q-57 0 -97.5 40.5t-40.5 97.5v194q0 22 13.5 47t36.5 35q-12 21 -12 62v106q0 57 40.5 97.5t97.5 40.5h371q50 0 89.5 -32.5t47.5 -81.5v-85h-131v60q0 7 -6 7h-371q-7 0 -7 -7v-124l413 -208v109h131 v-163zM191 131h417q-46 23 -188.5 95.5t-221.5 111.5h-7q-7 0 -7 -6v-194q0 -7 7 -7z" />
+<glyph unicode="'" horiz-adv-x="224" d="M190 719v-182h-131v182h131z" />
+<glyph unicode="(" horiz-adv-x="277" d="M189 131h55v-131h-55q-57 0 -97 40.5t-40 97.5v444q0 57 40 97.5t97 40.5h55v-131h-55q-6 0 -6 -7v-444q0 -7 6 -7z" />
+<glyph unicode=")" horiz-adv-x="278" d="M56 0v131h55q6 0 6 7v444q0 7 -6 7h-55v131h55q56 0 97 -40.5t41 -97.5v-444q0 -57 -41 -97.5t-97 -40.5h-55z" />
+<glyph unicode="*" horiz-adv-x="491" d="M439 632l41 -126l-122 -39l76 -103l-106 -77l-77 103l-74 -103l-106 77l75 103l-121 39l40 126l121 -41v128h132v-127z" />
+<glyph unicode="+" horiz-adv-x="433" d="M154 499h131v-138h141v-131h-141v-140h-131v140h-137v131h137v138z" />
+<glyph unicode="," horiz-adv-x="220" d="M54 119h131v-117q0 -51 -37.5 -90t-93.5 -49v256z" />
+<glyph unicode="-" horiz-adv-x="517" d="M468 361v-131h-409v131h409z" />
+<glyph unicode="." horiz-adv-x="214" d="M185 131v-131h-131v131h131z" />
+<glyph unicode="/" horiz-adv-x="521" d="M6 142l478 578h35v-141l-478 -579h-35v142z" />
+<glyph unicode="0" horiz-adv-x="834" d="M195 720h437q57 0 97.5 -42t40.5 -99v-437q0 -57 -40.5 -99.5t-97.5 -42.5h-437q-57 0 -97.5 42.5t-40.5 99.5v437q0 57 40.5 99t97.5 42zM580 586h-385q-7 0 -7 -7v-322zM247 135h385q7 0 7 7v322z" />
+<glyph unicode="1" horiz-adv-x="391" d="M1 461l217 259h145v-720h-131v529q-9 -11 -28.5 -33.5t-29.5 -34.5h-173z" />
+<glyph unicode="2" horiz-adv-x="830" d="M195 720h437q57 0 97.5 -40.5t40.5 -97.5v-160q0 -57 -40.5 -97.5t-97.5 -40.5h-437q-7 0 -7 -6v-140q0 -7 7 -7h575v-131h-713v278q0 57 40.5 97.5t97.5 40.5h437q7 0 7 6v160q0 7 -7 7h-437q-7 0 -7 -7v-54h-131v54q0 57 40.5 97.5t97.5 40.5z" />
+<glyph unicode="3" horiz-adv-x="826" d="M738 582v-144q0 -29 -10 -50q38 -40 38 -94v-156q0 -57 -40 -97.5t-97 -40.5h-438q-57 0 -97.5 40.5t-40.5 97.5v43h131v-43q0 -7 7 -7h438q6 0 6 7v156q0 7 -6 7h-452v131h423q7 0 7 6v144q0 7 -7 7h-409q-7 0 -7 -7v-52h-131v52q0 57 40.5 97.5t97.5 40.5h409 q57 0 97.5 -40.5t40.5 -97.5z" />
+<glyph unicode="4" horiz-adv-x="730" d="M590 312h101v-131h-101v-181h-131v181h-453v123l461 416h123v-408zM459 514l-249 -202h249v202z" />
+<glyph unicode="5" horiz-adv-x="830" d="M188 582v-141q0 -6 7 -6h437q57 0 97.5 -40.5t40.5 -97.5v-159q0 -57 -40.5 -97.5t-97.5 -40.5h-437q-57 0 -97.5 40.5t-40.5 97.5v54h131v-54q0 -7 7 -7h437q7 0 7 7v159q0 6 -7 6h-575v417h713v-131h-575q-7 0 -7 -7z" />
+<glyph unicode="6" horiz-adv-x="820" d="M195 435h437q57 0 97.5 -40.5t40.5 -97.5v-159q0 -57 -40.5 -97.5t-97.5 -40.5h-437q-57 0 -97.5 40.5t-40.5 97.5v444q0 57 40.5 97.5t97.5 40.5h461v-131h-461q-7 0 -7 -7v-141q0 -6 7 -6zM639 138v159q0 6 -7 6h-444v-165q0 -7 7 -7h437q7 0 7 7z" />
+<glyph unicode="7" horiz-adv-x="660" d="M3 720h461q57 0 97.5 -40.5t40.5 -97.5v-582h-131v582q0 7 -7 7h-461v131z" />
+<glyph unicode="8" horiz-adv-x="834" d="M770 606v-165q0 -42 -20 -72q20 -30 20 -72v-159q0 -57 -40.5 -97.5t-97.5 -40.5h-437q-57 0 -97.5 40.5t-40.5 97.5v159q0 40 20 72q-20 32 -20 72v141q0 57 40.5 97.5t97.5 40.5h437q51 0 90.5 -32.5t47.5 -81.5zM639 138v159q0 6 -7 6h-437q-7 0 -7 -6v-159q0 -7 7 -7 h437q7 0 7 7zM639 431v150q0 7 -7 7h-437q-7 0 -7 -7v-150q0 -7 7 -7h437q7 0 7 7z" />
+<glyph unicode="9" d="M628 288h-438q-57 0 -97.5 40.5t-40.5 97.5v156q0 57 40.5 97.5t97.5 40.5h438q57 0 97 -40.5t40 -97.5v-444q0 -57 -40 -97.5t-97 -40.5h-438q-51 0 -90 37.5t-49 93.5h577q6 0 6 7v144q0 6 -6 6zM184 582v-156q0 -6 6 -6h444v162q0 7 -6 7h-438q-6 0 -6 -7z" />
+<glyph unicode=":" horiz-adv-x="214" d="M54 131h131v-131h-131v131zM185 588v-132h-131v132h131z" />
+<glyph unicode=";" horiz-adv-x="217" d="M182 588v-132h-131v132h131zM51 119h131v-117q0 -51 -37.5 -90t-93.5 -49v256z" />
+<glyph unicode="&#x3c;" horiz-adv-x="473" d="M163 296l261 -151v-152l-419 244v118l419 242v-151z" />
+<glyph unicode="=" horiz-adv-x="638" d="M582 267v-131h-523v131h523zM582 448v-131h-523v131h523z" />
+<glyph unicode="&#x3e;" horiz-adv-x="475" d="M59 -9v152l260 151q-49 27 -140 80t-120 70v151l420 -242v-118z" />
+<glyph unicode="?" horiz-adv-x="678" d="M31 720h486q58 0 98 -40.5t40 -97.5v-175q0 -57 -40 -97.5t-98 -40.5h-246q-6 0 -6 -6v-67h-132v67q0 57 40.5 97.5t97.5 40.5h246q7 0 7 6v175q0 7 -7 7h-486v131zM265 0h-132v131h132v-131z" />
+<glyph unicode="@" horiz-adv-x="831" d="M381 529h66q57 0 97 -40t40 -97v-82h55v272q0 7 -7 7h-437q-7 0 -7 -7v-444q0 -7 7 -7h575v-131h-575q-57 0 -97.5 40.5t-40.5 97.5v444q0 57 40.5 97.5t97.5 40.5h437q57 0 97.5 -40.5t40.5 -97.5v-384h-389q-57 0 -97.5 40t-40.5 98v56q0 57 40.5 97t97.5 40zM352 310 h130v111q0 6 -6 6h-124q-7 0 -7 -6v-104q0 -7 7 -7z" />
+<glyph unicode="A" horiz-adv-x="836" d="M197 720h441q58 0 99 -40.5t41 -98.5v-581h-133v242h-455v-242h-132v581q0 58 40.5 98.5t98.5 40.5zM190 374h455v207q0 7 -7 7h-441q-7 0 -7 -7v-207z" />
+<glyph unicode="B" horiz-adv-x="832" d="M750 581v-141q0 -30 -10 -51q39 -41 39 -95v-155q0 -58 -41 -98.5t-99 -40.5h-580v720h552q57 0 98 -40.5t41 -98.5zM611 588h-413q-7 0 -7 -7v-141q0 -7 7 -7h413q6 0 6 7v141q0 7 -6 7zM646 139v155q0 6 -7 6h-441q-7 0 -7 -6v-155q0 -7 7 -7h441q7 0 7 7z" />
+<glyph unicode="C" horiz-adv-x="822" d="M774 588h-579q-7 0 -7 -7v-442q0 -7 7 -7h579v-132h-579q-58 0 -98.5 40.5t-40.5 98.5v442q0 58 40.5 98.5t98.5 40.5h579v-132z" />
+<glyph unicode="D" horiz-adv-x="834" d="M58 720h580q58 0 99 -40.5t41 -98.5v-442q0 -58 -41 -98.5t-99 -40.5h-580v720zM645 139v442q0 7 -7 7h-441q-7 0 -7 -7v-442q0 -7 7 -7h441q7 0 7 7z" />
+<glyph unicode="E" horiz-adv-x="766" d="M720 720v-132h-529v-162h426v-132h-426v-162h529v-132h-662v720h662z" />
+<glyph unicode="F" horiz-adv-x="723" d="M58 720h662v-132h-529v-162h426v-132h-426v-294h-133v720z" />
+<glyph unicode="G" horiz-adv-x="830" d="M776 581v-56h-133v56q0 7 -7 7h-441q-7 0 -7 -7v-442q0 -7 7 -7h441q7 0 7 7v136h-163v132h296v-268q0 -58 -41 -98.5t-99 -40.5h-441q-58 0 -98.5 40.5t-40.5 98.5v442q0 58 40.5 98.5t98.5 40.5h441q58 0 99 -40.5t41 -98.5z" />
+<glyph unicode="H" horiz-adv-x="851" d="M661 720h132v-720h-132v294h-472v-294h-132v720h132v-294h472v294z" />
+<glyph unicode="I" horiz-adv-x="220" d="M57 0v720h132v-720h-132z" />
+<glyph unicode="J" horiz-adv-x="780" d="M591 139v581h133v-581q0 -58 -41 -98.5t-98 -40.5h-442q-58 0 -98.5 40.5t-40.5 98.5v82h132v-82q0 -7 7 -7h442q6 0 6 7z" />
+<glyph unicode="K" horiz-adv-x="797" d="M606 720h145v-35l-272 -325l272 -325v-35h-145l-246 294h-170v-294h-133v720h133v-294h170q26 32 113.5 135.5t132.5 158.5z" />
+<glyph unicode="L" horiz-adv-x="779" d="M57 0v721h132v-589h588v-132h-720z" />
+<glyph unicode="M" horiz-adv-x="928" d="M462 408l261 312h145v-720h-133v528l-273 -325l-274 325v-528h-132v720h144z" />
+<glyph unicode="N" horiz-adv-x="832" d="M643 192v528h133v-720h-144l-444 528v-528h-132v720h144z" />
+<glyph unicode="O" d="M193 720h442q57 0 98 -40.5t41 -98.5v-442q0 -58 -41 -98.5t-98 -40.5h-442q-58 0 -98.5 40.5t-40.5 98.5v442q0 58 40.5 98.5t98.5 40.5zM193 132h442q6 0 6 7v442q0 7 -6 7h-442q-7 0 -7 -7v-442q0 -7 7 -7z" />
+<glyph unicode="P" horiz-adv-x="791" d="M56 719h580q58 0 99 -41t41 -98v-194q0 -57 -41 -98t-99 -41l-445 -1l-3 1v-247h-132v719zM643 386v194q0 7 -7 7h-441q-7 0 -7 -7v-194q0 -7 7 -7h441q7 0 7 7z" />
+<glyph unicode="Q" horiz-adv-x="884" d="M774 132h86v-132h-667q-58 0 -98.5 40.5t-40.5 98.5v442q0 58 40.5 98.5t98.5 40.5h441q58 0 99 -40.5t41 -98.5v-449zM193 132h441q7 0 7 7v442q0 7 -7 7h-441q-7 0 -7 -7v-442q0 -7 7 -7z" />
+<glyph unicode="R" horiz-adv-x="825" d="M775 580v-194q0 -57 -41 -98t-99 -41h-39l179 -213v-34h-144l-208 247h-233h-3v-247h-132v719h580q58 0 99 -41t41 -98zM194 379h441q7 0 7 7v194q0 7 -7 7h-441q-7 0 -7 -7v-194q0 -7 7 -7z" />
+<glyph unicode="S" horiz-adv-x="822" d="M771 581v-55h-133v55q0 7 -6 7h-442q-7 0 -7 -7v-148q0 -7 7 -7h442q57 0 98 -40.5t41 -98.5v-148q0 -58 -41 -98.5t-98 -40.5h-442q-58 0 -98.5 40.5t-40.5 98.5v55h132v-55q0 -7 7 -7h442q6 0 6 7v148q0 7 -6 7h-442q-58 0 -98.5 40.5t-40.5 98.5v148q0 58 40.5 98.5 t98.5 40.5h442q57 0 98 -40.5t41 -98.5z" />
+<glyph unicode="T" horiz-adv-x="759" d="M20 720h720v-132h-293v-588h-133v588h-294v132z" />
+<glyph unicode="U" d="M641 139v581h133v-581q0 -58 -41 -98.5t-98 -40.5h-442q-58 0 -98.5 40.5t-40.5 98.5v581h132v-581q0 -7 7 -7h442q6 0 6 7z" />
+<glyph unicode="V" horiz-adv-x="1003" d="M511 160l322 560h153l-416 -720h-119l-416 720h153z" />
+<glyph unicode="W" horiz-adv-x="1179" d="M1000 720h140l-262 -720h-104l-187 511q-25 -69 -89.5 -244t-97.5 -267h-103l-262 720h140l174 -475l174 475h129l174 -475z" />
+<glyph unicode="X" horiz-adv-x="812" d="M621 720h145v-35l-274 -325l274 -325v-35h-145l-215 255q-178 -210 -215 -255h-145v35l273 325l-273 325v35h145l215 -255q178 210 215 255z" />
+<glyph unicode="Y" horiz-adv-x="806" d="M657 720h158l-333 -451v-269h-132v269q-40 55 -157.5 213t-175.5 238h157l242 -306z" />
+<glyph unicode="Z" horiz-adv-x="821" d="M51 588v132h720v-144l-528 -444h528v-132h-720v144l528 444h-528z" />
+<glyph unicode="[" horiz-adv-x="275" d="M54 0v720h192v-131h-61v-458h61v-131h-192z" />
+<glyph unicode="\" horiz-adv-x="520" d="M5 720h35l478 -579v-141h-35l-478 579v141z" />
+<glyph unicode="]" horiz-adv-x="276" d="M51 589v131h192v-720h-192v131h60v458h-60z" />
+<glyph unicode="_" d="M767 0v-131h-713v131h713z" />
+<glyph unicode="`" horiz-adv-x="213" d="M165 969l46 -183h-133l-46 183h133z" />
+<glyph unicode="a" horiz-adv-x="694" d="M503 580q57 0 97.5 -40.5t40.5 -97.5v-442h-451q-57 0 -97.5 40.5t-40.5 97.5v218h458v86q0 7 -7 7h-451v131h451zM510 131v93h-327v-86q0 -7 7 -7h320z" />
+<glyph unicode="b" horiz-adv-x="667" d="M505 580q57 0 97.5 -40.5t40.5 -97.5v-304q0 -57 -40.5 -97.5t-97.5 -40.5h-451v770h131v-190h320zM512 138v304q0 7 -7 7h-313q-7 0 -7 -7v-304q0 -7 7 -7h313q7 0 7 7z" />
+<glyph unicode="c" horiz-adv-x="695" d="M189 131h451v-131h-451q-57 0 -97.5 40.5t-40.5 97.5v304q0 57 40.5 97.5t97.5 40.5h449v-131h-449q-7 0 -7 -7v-304q0 -7 7 -7z" />
+<glyph unicode="d" horiz-adv-x="667" d="M482 770h131v-770h-452q-57 0 -97.5 40.5t-40.5 97.5v304q0 57 40.5 97.5t97.5 40.5h321v190zM161 131h314q7 0 7 7v304q0 7 -7 7h-314q-6 0 -6 -7v-304q0 -7 6 -7z" />
+<glyph unicode="e" horiz-adv-x="692" d="M502 580q57 0 97.5 -40.5t40.5 -97.5v-218h-458v-86q0 -7 7 -7h451v-131h-451q-57 0 -97.5 40.5t-40.5 97.5v304q0 57 40.5 97.5t97.5 40.5h313zM182 356h327v86q0 7 -7 7h-313q-7 0 -7 -7v-86z" />
+<glyph unicode="f" horiz-adv-x="437" d="M191 638q-7 0 -7 -6v-52h226v-131h-226v-449h-131v632q0 57 40 97.5t98 40.5h219v-132h-219z" />
+<glyph unicode="g" horiz-adv-x="683" d="M630 -92q0 -57 -40 -97.5t-97 -40.5h-355v132h355q6 0 6 6v92h-320q-57 0 -97.5 40.5t-40.5 97.5v304q0 57 40.5 97.5t97.5 40.5h314q57 0 97 -40.5t40 -97.5v-534zM179 131h314q6 0 6 7v304q0 7 -6 7h-314q-7 0 -7 -7v-304q0 -7 7 -7z" />
+<glyph unicode="h" horiz-adv-x="668" d="M505 580q56 0 97 -40.5t41 -97.5v-442h-131v442q0 7 -7 7h-313q-7 0 -7 -7v-442h-131v770h131v-190h320z" />
+<glyph unicode="i" horiz-adv-x="233" d="M52 0v580h131v-580h-131zM52 770h131v-132h-131v132z" />
+<glyph unicode="j" horiz-adv-x="239" d="M70 770h131v-132h-131v132zM201 580v-661q0 -57 -40.5 -97.5t-97.5 -40.5h-250v132h250q7 0 7 6v661h131z" />
+<glyph unicode="k" horiz-adv-x="646" d="M495 580h141v-34l-232 -256l232 -256v-34h-141l-207 224h-103v-224h-131v770h131v-414h103z" />
+<glyph unicode="l" horiz-adv-x="344" d="M52 770h132v-632q0 -7 6 -7h117v-131h-117q-57 0 -97.5 40.5t-40.5 97.5v632z" />
+<glyph unicode="m" horiz-adv-x="978" d="M773 580q57 0 97.5 -40.5t40.5 -97.5v-442h-130v442q0 7 -8 7h-218q-6 0 -6 -7v-442h-132v442q0 7 -6 7h-219q-7 0 -7 -7v-442h-131v580h719z" />
+<glyph unicode="n" horiz-adv-x="696" d="M505 580q57 0 97.5 -40.5t40.5 -97.5v-442h-131v442q0 7 -7 7h-313q-7 0 -7 -7v-442h-131v580h451z" />
+<glyph unicode="o" horiz-adv-x="692" d="M189 580h313q57 0 97.5 -40.5t40.5 -97.5v-304q0 -57 -40.5 -97.5t-97.5 -40.5h-313q-57 0 -97.5 40.5t-40.5 97.5v304q0 57 40.5 97.5t97.5 40.5zM502 449h-313q-7 0 -7 -7v-304q0 -7 7 -7h313q7 0 7 7v304q0 7 -7 7z" />
+<glyph unicode="p" horiz-adv-x="664" d="M505 580q57 0 97.5 -40.5t40.5 -97.5v-304q0 -57 -40.5 -97.5t-97.5 -40.5h-320v-230h-131v810h451zM512 138v304q0 7 -7 7h-313q-7 0 -7 -7v-304q0 -7 7 -7h313q7 0 7 7z" />
+<glyph unicode="q" horiz-adv-x="664" d="M20 442q0 57 40.5 97.5t97.5 40.5h452v-810h-131v230h-321q-57 0 -97.5 40.5t-40.5 97.5v304zM152 442v-304q0 -7 6 -7h314q7 0 7 7v304q0 7 -7 7h-314q-6 0 -6 -7z" />
+<glyph unicode="r" horiz-adv-x="528" d="M190 580h322v-131h-322q-7 0 -7 -7v-442h-131v442q0 57 40.5 97.5t97.5 40.5z" />
+<glyph unicode="s" horiz-adv-x="686" d="M637 442v-25h-131v25q0 7 -7 7h-313q-7 0 -7 -7v-80q0 -6 7 -6h313q58 0 98 -40.5t40 -97.5v-80q0 -57 -40 -97.5t-98 -40.5h-313q-57 0 -97.5 40.5t-40.5 97.5v25h131v-25q0 -7 7 -7h313q7 0 7 7v80q0 6 -7 6h-313q-57 0 -97.5 40.5t-40.5 97.5v80q0 57 40.5 97.5 t97.5 40.5h313q58 0 98 -40.5t40 -97.5z" />
+<glyph unicode="t" horiz-adv-x="437" d="M410 449h-226v-311q0 -7 7 -7h219v-131h-219q-58 0 -98 40.5t-40 97.5v632h131v-190h226v-131z" />
+<glyph unicode="u" horiz-adv-x="695" d="M511 580h131v-442q0 -57 -40.5 -97.5t-97.5 -40.5h-313q-58 0 -98 40.5t-40 97.5v442h131v-442q0 -7 7 -7h313q7 0 7 7v442z" />
+<glyph unicode="v" horiz-adv-x="790" d="M629 580h151l-320 -580h-120l-319 580h151l228 -421z" />
+<glyph unicode="w" horiz-adv-x="1056" d="M888 580h139l-218 -580h-102l-175 388l-168 -388h-101l-228 580h139l140 -342q17 40 69.5 159t79.5 183h136l158 -344q54 139 131 344z" />
+<glyph unicode="x" horiz-adv-x="692" d="M502 580h143v-33l-215 -252q39 -48 113 -137.5t102 -124.5v-33h-143l-157 192l-156 -192h-143v33l214 262l-214 252v33h143l156 -184q107 123 157 184z" />
+<glyph unicode="y" horiz-adv-x="685" d="M631 -92q0 -57 -40 -97.5t-97 -40.5h-355v132h355q6 0 6 6v92h-320q-57 0 -97.5 40.5t-40.5 97.5v440h131v-440q0 -7 7 -7h314q6 0 6 7v440h131v-670z" />
+<glyph unicode="z" horiz-adv-x="698" d="M54 449v131h589v-143l-396 -306h396v-131h-589v143l396 306h-396z" />
+<glyph unicode="{" horiz-adv-x="289" d="M196 318v-180q0 -7 7 -7h54v-131h-54q-58 0 -98 40.5t-40 97.5v143q-8 4 -23 13.5t-19 11.5v119l42 23v134q0 57 40 97.5t98 40.5h54v-131h-54q-7 0 -7 -7v-171l-57 -46q8 -7 18 -15t21.5 -17.5t17.5 -14.5z" />
+<glyph unicode="|" horiz-adv-x="214" d="M54 -104v920h131v-920h-131z" />
+<glyph unicode="}" horiz-adv-x="289" d="M112 138v180l57 47l-57 46v171q0 7 -7 7h-54v131h54q57 0 97.5 -40.5t40.5 -97.5v-129q7 -4 21.5 -15t20.5 -14v-118l-42 -25v-143q0 -57 -40.5 -97.5t-97.5 -40.5h-54v131h54q7 0 7 7z" />
+<glyph unicode="~" horiz-adv-x="404" d="M301 312q48 0 87 26v-96q-50 -21 -89 -21q-36 0 -97.5 32t-98.5 32q-47 0 -79 -31v104q43 19 85 19q38 0 99 -30t93 -35z" />
+<glyph unicode="&#xa1;" horiz-adv-x="210" d="M184 720v-131h-131v131h131zM184 0h-131v523h131v-523z" />
+<glyph unicode="&#xa2;" horiz-adv-x="636" d="M621 458h-197v-327h197v-131h-197v-104h-132v104h-121q-57 0 -97.5 40.5t-40.5 97.5v314q0 57 40.5 97.5t97.5 40.5h121v121h132v-121h197v-132zM292 131v327h-121q-7 0 -7 -6v-314q0 -7 7 -7h121z" />
+<glyph unicode="&#xa3;" horiz-adv-x="734" d="M683 539h-131v43q0 7 -6 7h-274q-7 0 -7 -7v-160h318v-131h-318v-160h418v-131h-644v131h95v160h-95v131h95v160q0 57 40.5 97.5t97.5 40.5h274q57 0 97 -40.5t40 -97.5v-43z" />
+<glyph unicode="&#xa8;" horiz-adv-x="385" d="M357 918v-132h-132v132h132zM185 918v-132h-131v132h131z" />
+<glyph unicode="&#xb0;" horiz-adv-x="439" d="M183 713h85q57 0 97.5 -40.5t40.5 -97.5v-76q0 -57 -40.5 -97.5t-97.5 -40.5h-85q-57 0 -97.5 40.5t-40.5 97.5v76q0 57 40.5 97.5t97.5 40.5zM164 474h123q7 0 7 6v114q0 7 -7 7h-123q-7 0 -7 -7v-114q0 -6 7 -6z" />
+<glyph unicode="&#xb4;" horiz-adv-x="213" d="M33 786l46 183h133l-46 -183h-133z" />
+<glyph unicode="&#xb6;" horiz-adv-x="833" d="M56 574q0 56 40.5 97t97.5 41h575v-712h-131v244h-77v-244h-132v244h-235q-57 0 -97.5 41t-40.5 97v192zM561 581v-205h77v205h-77zM187 574v-192q0 -6 7 -6h235v205h-235q-7 0 -7 -7z" />
+<glyph unicode="&#xb8;" horiz-adv-x="213" d="M33 -154l46 183h133l-46 -183h-133z" />
+<glyph unicode="&#xbf;" horiz-adv-x="675" d="M644 0h-487q-57 0 -97.5 40.5t-40.5 97.5v175q0 57 40.5 97.5t97.5 40.5h246q7 0 7 6v73h131v-73q0 -57 -40.5 -97.5t-97.5 -40.5h-246q-7 0 -7 -6v-175q0 -7 7 -7h487v-131zM541 720v-131h-131v131h131z" />
+<glyph unicode="&#xc0;" horiz-adv-x="836" d="M197 720h441q58 0 99 -40.5t41 -98.5v-581h-133v242h-455v-242h-132v581q0 58 40.5 98.5t98.5 40.5zM190 374h455v207q0 7 -7 7h-441q-7 0 -7 -7v-207zM477 962l46 -183h-133l-46 183h133z" />
+<glyph unicode="&#xc1;" horiz-adv-x="836" d="M197 720h441q58 0 99 -40.5t41 -98.5v-581h-133v242h-455v-242h-132v581q0 58 40.5 98.5t98.5 40.5zM190 374h455v207q0 7 -7 7h-441q-7 0 -7 -7v-207zM344 778l46 183h133l-46 -183h-133z" />
+<glyph unicode="&#xc2;" horiz-adv-x="836" d="M197 720h441q58 0 99 -40.5t41 -98.5v-581h-133v242h-455v-242h-132v581q0 58 40.5 98.5t98.5 40.5zM190 374h455v207q0 7 -7 7h-441q-7 0 -7 -7v-207zM400 778h-104l98 163h87l98 -163h-106l-37 59q-6 -9 -18 -29.5t-18 -29.5z" />
+<glyph unicode="&#xc3;" horiz-adv-x="836" d="M197 720h441q58 0 99 -40.5t41 -98.5v-581h-133v242h-455v-242h-132v581q0 58 40.5 98.5t98.5 40.5zM190 374h455v207q0 7 -7 7h-441q-7 0 -7 -7v-207zM519 874q47 0 87 27v-96q-52 -22 -89 -22q-36 0 -96 32.5t-94 32.5h-12q-44 0 -73 -38v111q45 18 85 18 q39 0 99.5 -30.5t92.5 -34.5z" />
+<glyph unicode="&#xc4;" horiz-adv-x="836" d="M197 720h441q58 0 99 -40.5t41 -98.5v-581h-133v242h-455v-242h-132v581q0 58 40.5 98.5t98.5 40.5zM190 374h455v207q0 7 -7 7h-441q-7 0 -7 -7v-207zM582 901v-132h-132v132h132zM410 901v-132h-131v132h131z" />
+<glyph unicode="&#xc5;" horiz-adv-x="836" d="M197 720h441q58 0 99 -40.5t41 -98.5v-581h-133v242h-455v-242h-132v581q0 58 40.5 98.5t98.5 40.5zM190 374h455v207q0 7 -7 7h-441q-7 0 -7 -7v-207zM388 961h54q27 0 46 -19.5t19 -45.5v-51q0 -26 -19 -45.5t-46 -19.5h-54q-27 0 -46 19.5t-19 45.5v51q0 26 19 45.5 t46 19.5zM389 894v-47h52v47h-52z" />
+<glyph unicode="&#xc6;" horiz-adv-x="1375" d="M774 588v-162h426v-132h-426v-162h530v-132h-662v242h-455v-242h-133v581q0 58 41 98.5t98 40.5h1111v-132h-530zM642 374v207q0 7 -7 7h-442q-6 0 -6 -7v-207h455z" />
+<glyph unicode="&#xc7;" horiz-adv-x="822" d="M774 588h-579q-7 0 -7 -7v-442q0 -7 7 -7h579v-132h-266l-38 -154h-133l38 154h-180q-58 0 -98.5 40.5t-40.5 98.5v442q0 58 40.5 98.5t98.5 40.5h579v-132z" />
+<glyph unicode="&#xc8;" horiz-adv-x="766" d="M720 720v-132h-529v-162h426v-132h-426v-162h529v-132h-662v720h662zM442 962l46 -183h-133l-46 183h133z" />
+<glyph unicode="&#xc9;" horiz-adv-x="766" d="M720 720v-132h-529v-162h426v-132h-426v-162h529v-132h-662v720h662zM309 779l46 183h133l-46 -183h-133z" />
+<glyph unicode="&#xca;" horiz-adv-x="766" d="M720 720v-132h-529v-162h426v-132h-426v-162h529v-132h-662v720h662zM365 778h-104l98 163h87l98 -163h-106l-37 59q-6 -9 -18 -29.5t-18 -29.5z" />
+<glyph unicode="&#xcb;" horiz-adv-x="766" d="M720 720v-132h-529v-162h426v-132h-426v-162h529v-132h-662v720h662zM547 911v-132h-132v132h132zM375 911v-132h-131v132h131z" />
+<glyph unicode="&#xcc;" horiz-adv-x="220" d="M57 0v720h132v-720h-132zM169 962l46 -183h-133l-46 183h133z" />
+<glyph unicode="&#xcd;" horiz-adv-x="220" d="M57 0v720h132v-720h-132zM36 779l46 183h133l-46 -183h-133z" />
+<glyph unicode="&#xce;" horiz-adv-x="220" d="M57 0v720h132v-720h-132zM92 778h-104l98 163h87l98 -163h-106l-37 59q-6 -9 -18 -29.5t-18 -29.5z" />
+<glyph unicode="&#xcf;" horiz-adv-x="220" d="M57 0v720h132v-720h-132zM274 911v-132h-132v132h132zM102 911v-132h-131v132h131z" />
+<glyph unicode="&#xd1;" horiz-adv-x="832" d="M643 192v528h133v-720h-144l-444 528v-528h-132v720h144zM517 874q47 0 87 27v-96q-52 -22 -89 -22q-36 0 -96 32.5t-94 32.5h-12q-44 0 -73 -38v111q45 18 85 18q39 0 99.5 -30.5t92.5 -34.5z" />
+<glyph unicode="&#xd2;" d="M193 720h442q57 0 98 -40.5t41 -98.5v-442q0 -58 -41 -98.5t-98 -40.5h-442q-58 0 -98.5 40.5t-40.5 98.5v442q0 58 40.5 98.5t98.5 40.5zM193 132h442q6 0 6 7v442q0 7 -6 7h-442q-7 0 -7 -7v-442q0 -7 7 -7zM473 962l46 -183h-133l-46 183h133z" />
+<glyph unicode="&#xd3;" d="M193 720h442q57 0 98 -40.5t41 -98.5v-442q0 -58 -41 -98.5t-98 -40.5h-442q-58 0 -98.5 40.5t-40.5 98.5v442q0 58 40.5 98.5t98.5 40.5zM193 132h442q6 0 6 7v442q0 7 -6 7h-442q-7 0 -7 -7v-442q0 -7 7 -7zM340 779l46 183h133l-46 -183h-133z" />
+<glyph unicode="&#xd4;" d="M193 720h442q57 0 98 -40.5t41 -98.5v-442q0 -58 -41 -98.5t-98 -40.5h-442q-58 0 -98.5 40.5t-40.5 98.5v442q0 58 40.5 98.5t98.5 40.5zM193 132h442q6 0 6 7v442q0 7 -6 7h-442q-7 0 -7 -7v-442q0 -7 7 -7zM396 778h-104l98 163h87l98 -163h-106l-37 59 q-6 -9 -18 -29.5t-18 -29.5z" />
+<glyph unicode="&#xd5;" d="M193 720h442q57 0 98 -40.5t41 -98.5v-442q0 -58 -41 -98.5t-98 -40.5h-442q-58 0 -98.5 40.5t-40.5 98.5v442q0 58 40.5 98.5t98.5 40.5zM193 132h442q6 0 6 7v442q0 7 -6 7h-442q-7 0 -7 -7v-442q0 -7 7 -7zM515 874q47 0 87 27v-96q-52 -22 -89 -22q-36 0 -96 32.5 t-94 32.5h-12q-44 0 -73 -38v111q45 18 85 18q39 0 99.5 -30.5t92.5 -34.5z" />
+<glyph unicode="&#xd6;" d="M193 720h442q57 0 98 -40.5t41 -98.5v-442q0 -58 -41 -98.5t-98 -40.5h-442q-58 0 -98.5 40.5t-40.5 98.5v442q0 58 40.5 98.5t98.5 40.5zM193 132h442q6 0 6 7v442q0 7 -6 7h-442q-7 0 -7 -7v-442q0 -7 7 -7zM578 911v-132h-132v132h132zM406 911v-132h-131v132h131z " />
+<glyph unicode="&#xd7;" horiz-adv-x="546" d="M500 513v-33l-139 -180l139 -181v-33h-144l-80 109q-12 -16 -39.5 -53t-40.5 -56h-143v33l139 181q-15 20 -64 83t-75 97v33h143l80 -109q45 60 80 109h144z" />
+<glyph unicode="&#xd9;" d="M641 139v581h133v-581q0 -58 -41 -98.5t-98 -40.5h-442q-58 0 -98.5 40.5t-40.5 98.5v581h132v-581q0 -7 7 -7h442q6 0 6 7zM473 962l46 -183h-133l-46 183h133z" />
+<glyph unicode="&#xda;" d="M641 139v581h133v-581q0 -58 -41 -98.5t-98 -40.5h-442q-58 0 -98.5 40.5t-40.5 98.5v581h132v-581q0 -7 7 -7h442q6 0 6 7zM340 779l46 183h133l-46 -183h-133z" />
+<glyph unicode="&#xdb;" d="M641 139v581h133v-581q0 -58 -41 -98.5t-98 -40.5h-442q-58 0 -98.5 40.5t-40.5 98.5v581h132v-581q0 -7 7 -7h442q6 0 6 7zM396 778h-104l98 163h87l98 -163h-106l-37 59q-6 -9 -18 -29.5t-18 -29.5z" />
+<glyph unicode="&#xdc;" d="M641 139v581h133v-581q0 -58 -41 -98.5t-98 -40.5h-442q-58 0 -98.5 40.5t-40.5 98.5v581h132v-581q0 -7 7 -7h442q6 0 6 7zM578 911v-132h-132v132h132zM406 911v-132h-131v132h131z" />
+<glyph unicode="&#xdd;" horiz-adv-x="806" d="M657 720h158l-333 -451v-269h-132v269q-40 55 -157.5 213t-175.5 238h157l242 -306zM329 779l46 183h133l-46 -183h-133z" />
+<glyph unicode="&#xdf;" horiz-adv-x="833" d="M770 599v-161q0 -42 -20 -72q20 -30 20 -72v-156q0 -57 -40.5 -97.5t-97.5 -40.5h-359v131h359q7 0 7 7v156q0 6 -7 6h-359v121h359q7 0 7 7v146q0 7 -7 7h-437q-7 0 -7 -7v-574h-131v575q0 57 40.5 97.5t97.5 40.5h437q51 0 90.5 -32.5t47.5 -81.5z" />
+<glyph unicode="&#xe0;" horiz-adv-x="725" d="M503 580q57 0 97.5 -40.5t40.5 -97.5v-442h-451q-57 0 -97.5 40.5t-40.5 97.5v218h458v86q0 7 -7 7h-451v131h451zM510 131v93h-327v-86q0 -7 7 -7h320zM421 860l46 -183h-133l-46 183h133z" />
+<glyph unicode="&#xe1;" horiz-adv-x="725" d="M503 580q57 0 97.5 -40.5t40.5 -97.5v-442h-451q-57 0 -97.5 40.5t-40.5 97.5v218h458v86q0 7 -7 7h-451v131h451zM510 131v93h-327v-86q0 -7 7 -7h320zM288 677l46 183h133l-46 -183h-133z" />
+<glyph unicode="&#xe2;" horiz-adv-x="725" d="M503 580q57 0 97.5 -40.5t40.5 -97.5v-442h-451q-57 0 -97.5 40.5t-40.5 97.5v218h458v86q0 7 -7 7h-451v131h451zM510 131v93h-327v-86q0 -7 7 -7h320zM344 677h-104l98 163h87l98 -163h-106l-37 59q-6 -9 -18 -29.5t-18 -29.5z" />
+<glyph unicode="&#xe3;" horiz-adv-x="725" d="M503 580q57 0 97.5 -40.5t40.5 -97.5v-442h-451q-57 0 -97.5 40.5t-40.5 97.5v218h458v86q0 7 -7 7h-451v131h451zM510 131v93h-327v-86q0 -7 7 -7h320zM463 771q46 0 87 27v-96q-52 -22 -89 -22q-36 0 -96 32.5t-94 32.5h-12q-44 0 -73 -38v111q45 18 85 18 q39 0 99.5 -30.5t92.5 -34.5z" />
+<glyph unicode="&#xe4;" horiz-adv-x="725" d="M503 580q57 0 97.5 -40.5t40.5 -97.5v-442h-451q-57 0 -97.5 40.5t-40.5 97.5v218h458v86q0 7 -7 7h-451v131h451zM510 131v93h-327v-86q0 -7 7 -7h320zM526 809v-132h-132v132h132zM354 809v-132h-131v132h131z" />
+<glyph unicode="&#xe5;" horiz-adv-x="725" d="M503 580q57 0 97.5 -40.5t40.5 -97.5v-442h-451q-57 0 -97.5 40.5t-40.5 97.5v218h458v86q0 7 -7 7h-451v131h451zM510 131v93h-327v-86q0 -7 7 -7h320zM332 858h54q27 0 46 -19.5t19 -45.5v-51q0 -26 -19 -45.5t-46 -19.5h-54q-27 0 -46 19.5t-19 45.5v51q0 26 19 45.5 t46 19.5zM333 791v-47h52v47h-52z" />
+<glyph unicode="&#xe6;" horiz-adv-x="1178" d="M963 580q57 0 97 -40.5t40 -97.5v-218h-458v-88q0 -5 7 -5h451v-131h-910q-57 0 -97 40.5t-40 97.5v218h458v86q0 7 -7 7h-451v131h910zM511 131v93h-327v-86q0 -7 6 -7h321zM642 356h327v86q0 7 -6 7h-314q-7 0 -7 -7v-86z" />
+<glyph unicode="&#xe7;" horiz-adv-x="693" d="M189 131h451v-131h-207l-38 -154h-133l38 154h-111q-57 0 -97.5 40.5t-40.5 97.5v304q0 57 40.5 97.5t97.5 40.5h449v-131h-449q-7 0 -7 -7v-304q0 -7 7 -7z" />
+<glyph unicode="&#xe8;" horiz-adv-x="638" d="M502 580q57 0 97.5 -40.5t40.5 -97.5v-218h-458v-86q0 -7 7 -7h451v-131h-451q-57 0 -97.5 40.5t-40.5 97.5v304q0 57 40.5 97.5t97.5 40.5h313zM182 356h327v86q0 7 -7 7h-313q-7 0 -7 -7v-86zM378 860l46 -183h-133l-46 183h133z" />
+<glyph unicode="&#xe9;" horiz-adv-x="638" d="M502 580q57 0 97.5 -40.5t40.5 -97.5v-218h-458v-86q0 -7 7 -7h451v-131h-451q-57 0 -97.5 40.5t-40.5 97.5v304q0 57 40.5 97.5t97.5 40.5h313zM182 356h327v86q0 7 -7 7h-313q-7 0 -7 -7v-86zM245 678l46 183h133l-46 -183h-133z" />
+<glyph unicode="&#xea;" horiz-adv-x="638" d="M502 580q57 0 97.5 -40.5t40.5 -97.5v-218h-458v-86q0 -7 7 -7h451v-131h-451q-57 0 -97.5 40.5t-40.5 97.5v304q0 57 40.5 97.5t97.5 40.5h313zM182 356h327v86q0 7 -7 7h-313q-7 0 -7 -7v-86zM301 677h-104l98 163h87l98 -163h-106l-37 59q-6 -9 -18 -29.5t-18 -29.5z " />
+<glyph unicode="&#xeb;" horiz-adv-x="638" d="M502 580q57 0 97.5 -40.5t40.5 -97.5v-218h-458v-86q0 -7 7 -7h451v-131h-451q-57 0 -97.5 40.5t-40.5 97.5v304q0 57 40.5 97.5t97.5 40.5h313zM182 356h327v86q0 7 -7 7h-313q-7 0 -7 -7v-86zM483 809v-132h-132v132h132zM311 809v-132h-131v132h131z" />
+<glyph unicode="&#xec;" horiz-adv-x="214" d="M56 0v580h131v-580h-131zM149 861l46 -183h-133l-46 183h133z" />
+<glyph unicode="&#xed;" horiz-adv-x="214" d="M51 0v580h131v-580h-131zM49 677l46 183h133l-46 -183h-133z" />
+<glyph unicode="&#xee;" horiz-adv-x="214" d="M51 0v580h131v-580h-131zM89 677h-104l98 163h87l98 -163h-106l-37 59q-6 -9 -18 -29.5t-18 -29.5z" />
+<glyph unicode="&#xef;" horiz-adv-x="214" d="M55 0v580h131v-580h-131zM271 811v-132h-132v132h132zM99 811v-132h-131v132h131z" />
+<glyph unicode="&#xf1;" horiz-adv-x="708" d="M505 580q57 0 97.5 -40.5t40.5 -97.5v-442h-131v442q0 7 -7 7h-313q-7 0 -7 -7v-442h-131v580h451zM455 770q47 0 87 27v-96q-52 -22 -89 -22q-36 0 -96 32.5t-94 32.5h-12q-44 0 -73 -38v111q45 18 85 18q39 0 99.5 -30.5t92.5 -34.5z" />
+<glyph unicode="&#xf2;" horiz-adv-x="692" d="M189 580h313q57 0 97.5 -40.5t40.5 -97.5v-304q0 -57 -40.5 -97.5t-97.5 -40.5h-313q-57 0 -97.5 40.5t-40.5 97.5v304q0 57 40.5 97.5t97.5 40.5zM502 449h-313q-7 0 -7 -7v-304q0 -7 7 -7h313q7 0 7 7v304q0 7 -7 7zM405 861l46 -183h-133l-46 183h133z" />
+<glyph unicode="&#xf3;" horiz-adv-x="692" d="M189 580h313q57 0 97.5 -40.5t40.5 -97.5v-304q0 -57 -40.5 -97.5t-97.5 -40.5h-313q-57 0 -97.5 40.5t-40.5 97.5v304q0 57 40.5 97.5t97.5 40.5zM502 449h-313q-7 0 -7 -7v-304q0 -7 7 -7h313q7 0 7 7v304q0 7 -7 7zM272 678l46 183h133l-46 -183h-133z" />
+<glyph unicode="&#xf4;" horiz-adv-x="692" d="M189 580h313q57 0 97.5 -40.5t40.5 -97.5v-304q0 -57 -40.5 -97.5t-97.5 -40.5h-313q-57 0 -97.5 40.5t-40.5 97.5v304q0 57 40.5 97.5t97.5 40.5zM502 449h-313q-7 0 -7 -7v-304q0 -7 7 -7h313q7 0 7 7v304q0 7 -7 7zM328 677h-104l98 163h87l98 -163h-106l-37 59 q-6 -9 -18 -29.5t-18 -29.5z" />
+<glyph unicode="&#xf5;" horiz-adv-x="692" d="M189 580h313q57 0 97.5 -40.5t40.5 -97.5v-304q0 -57 -40.5 -97.5t-97.5 -40.5h-313q-57 0 -97.5 40.5t-40.5 97.5v304q0 57 40.5 97.5t97.5 40.5zM502 449h-313q-7 0 -7 -7v-304q0 -7 7 -7h313q7 0 7 7v304q0 7 -7 7zM447 770q47 0 87 27v-96q-52 -22 -89 -22 q-36 0 -96 32.5t-94 32.5h-12q-44 0 -73 -38v111q45 18 85 18q39 0 99.5 -30.5t92.5 -34.5z" />
+<glyph unicode="&#xf6;" horiz-adv-x="692" d="M189 580h313q57 0 97.5 -40.5t40.5 -97.5v-304q0 -57 -40.5 -97.5t-97.5 -40.5h-313q-57 0 -97.5 40.5t-40.5 97.5v304q0 57 40.5 97.5t97.5 40.5zM502 449h-313q-7 0 -7 -7v-304q0 -7 7 -7h313q7 0 7 7v304q0 7 -7 7zM510 811v-132h-132v132h132zM338 811v-132h-131v132 h131z" />
+<glyph unicode="&#xf7;" horiz-adv-x="502" d="M503 361v-131h-485v131h485zM201 132h131v-131h-131v131zM332 589v-132h-131v132h131z" />
+<glyph unicode="&#xf9;" horiz-adv-x="695" d="M511 580h131v-442q0 -57 -40.5 -97.5t-97.5 -40.5h-313q-58 0 -98 40.5t-40 97.5v442h131v-442q0 -7 7 -7h313q7 0 7 7v442zM406 861l46 -183h-133l-46 183h133z" />
+<glyph unicode="&#xfa;" horiz-adv-x="695" d="M511 580h131v-442q0 -57 -40.5 -97.5t-97.5 -40.5h-313q-58 0 -98 40.5t-40 97.5v442h131v-442q0 -7 7 -7h313q7 0 7 7v442zM273 678l46 183h133l-46 -183h-133z" />
+<glyph unicode="&#xfb;" horiz-adv-x="695" d="M511 580h131v-442q0 -57 -40.5 -97.5t-97.5 -40.5h-313q-58 0 -98 40.5t-40 97.5v442h131v-442q0 -7 7 -7h313q7 0 7 7v442zM329 678h-104l98 163h87l98 -163h-106l-37 59q-6 -9 -18 -29.5t-18 -29.5z" />
+<glyph unicode="&#xfc;" horiz-adv-x="695" d="M511 580h131v-442q0 -57 -40.5 -97.5t-97.5 -40.5h-313q-58 0 -98 40.5t-40 97.5v442h131v-442q0 -7 7 -7h313q7 0 7 7v442zM511 809v-132h-132v132h132zM339 809v-132h-131v132h131z" />
+<glyph unicode="&#xfd;" horiz-adv-x="688" d="M631 -92q0 -57 -40 -97.5t-97 -40.5h-355v132h355q6 0 6 6v92h-320q-57 0 -97.5 40.5t-40.5 97.5v440h131v-440q0 -7 7 -7h314q6 0 6 7v440h131v-670zM270 678l46 183h133l-46 -183h-133z" />
+<glyph unicode="&#xff;" horiz-adv-x="688" d="M631 -92q0 -57 -40 -97.5t-97 -40.5h-355v132h355q6 0 6 6v92h-320q-57 0 -97.5 40.5t-40.5 97.5v440h131v-440q0 -7 7 -7h314q6 0 6 7v440h131v-670zM508 811v-132h-132v132h132zM336 811v-132h-131v132h131z" />
+<glyph unicode="&#x131;" horiz-adv-x="214" d="M52 0v580h131v-580h-131z" />
+<glyph unicode="&#x152;" horiz-adv-x="1374" d="M773 588v-162h426v-132h-426v-162h530v-132h-1111q-57 0 -98 40.5t-41 98.5v442q0 58 41 98.5t98 40.5h1111v-132h-530zM634 132q7 0 7 7v442q0 7 -7 7h-442q-6 0 -6 -7v-442q0 -7 6 -7h442z" />
+<glyph unicode="&#x153;" horiz-adv-x="1177" d="M1099 224h-458v-86q0 -7 7 -7h451v-131h-909q-58 0 -98 40.5t-40 97.5v304q0 57 40 97.5t98 40.5h772q57 0 97 -40.5t40 -97.5v-218zM648 449q-7 0 -7 -7v-86h327v86q0 7 -6 7h-314zM503 131q7 0 7 7v304q0 7 -7 7h-313q-7 0 -7 -7v-304q0 -7 7 -7h313z" />
+<glyph unicode="&#x160;" horiz-adv-x="822" d="M771 581v-55h-133v55q0 7 -6 7h-442q-7 0 -7 -7v-148q0 -7 7 -7h442q57 0 98 -40.5t41 -98.5v-148q0 -58 -41 -98.5t-98 -40.5h-442q-58 0 -98.5 40.5t-40.5 98.5v55h132v-55q0 -7 7 -7h442q6 0 6 7v148q0 7 -6 7h-442q-58 0 -98.5 40.5t-40.5 98.5v148q0 58 40.5 98.5 t98.5 40.5h442q57 0 98 -40.5t41 -98.5zM289 941h103l37 -59l37 59h106l-98 -163h-87z" />
+<glyph unicode="&#x161;" horiz-adv-x="687" d="M637 442v-25h-131v25q0 7 -7 7h-313q-7 0 -7 -7v-80q0 -6 7 -6h313q58 0 98 -40.5t40 -97.5v-80q0 -57 -40 -97.5t-98 -40.5h-313q-57 0 -97.5 40.5t-40.5 97.5v25h131v-25q0 -7 7 -7h313q7 0 7 7v80q0 6 -7 6h-313q-57 0 -97.5 40.5t-40.5 97.5v80q0 57 40.5 97.5 t97.5 40.5h313q58 0 98 -40.5t40 -97.5zM221 840h103l37 -59l37 59h106l-98 -163h-87z" />
+<glyph unicode="&#x178;" horiz-adv-x="806" d="M657 720h158l-333 -451v-269h-132v269q-40 55 -157.5 213t-175.5 238h157l242 -306zM567 911v-132h-132v132h132zM395 911v-132h-131v132h131z" />
+<glyph unicode="&#x17d;" horiz-adv-x="821" d="M51 588v132h720v-144l-528 -444h528v-132h-720v144l528 444h-528zM288 941h103l37 -59l37 59h106l-98 -163h-87z" />
+<glyph unicode="&#x17e;" horiz-adv-x="698" d="M54 449v131h589v-143l-396 -306h396v-131h-589v143l396 306h-396zM227 843h103l37 -59l37 59h106l-98 -163h-87z" />
+<glyph unicode="&#x2c6;" horiz-adv-x="300" d="M132 785h-104l98 163h87l98 -163h-106l-37 59q-6 -9 -18 -29.5t-18 -29.5z" />
+<glyph unicode="&#x2c7;" horiz-adv-x="297" d="M27 948h103l37 -59l37 59h106l-98 -163h-87z" />
+<glyph unicode="&#x2d8;" horiz-adv-x="287" d="M189 895h76v-21q0 -37 -25 -62.5t-63 -25.5h-49q-38 0 -63 25.5t-25 62.5v21h77v-31h72v31z" />
+<glyph unicode="&#x2d9;" horiz-adv-x="233" d="M111 949h34q27 0 46.5 -19.5t19.5 -45.5v-32q0 -26 -19.5 -45.5t-46.5 -19.5h-34q-27 0 -46.5 19.5t-19.5 45.5v32q0 26 19.5 45.5t46.5 19.5z" />
+<glyph unicode="&#x2da;" horiz-adv-x="233" d="M87 968h54q27 0 46 -19.5t19 -45.5v-51q0 -26 -19 -45.5t-46 -19.5h-54q-27 0 -46 19.5t-19 45.5v51q0 26 19 45.5t46 19.5zM88 901v-47h52v47h-52z" />
+<glyph unicode="&#x2dc;" horiz-adv-x="403" d="M300 881q46 0 87 27v-96q-52 -22 -89 -22q-36 0 -96 32.5t-94 32.5h-12q-44 0 -73 -38v111q45 18 85 18q38 0 99 -30.5t93 -34.5z" />
+<glyph unicode="&#x2013;" horiz-adv-x="708" d="M653 360v-131h-599v131h599z" />
+<glyph unicode="&#x2014;" horiz-adv-x="822" d="M762 360v-131h-708v131h708z" />
+<glyph unicode="&#x2018;" horiz-adv-x="217" d="M165 467h-131v117q0 52 37.5 91t93.5 48v-256z" />
+<glyph unicode="&#x2019;" horiz-adv-x="216" d="M54 720h131v-117q0 -51 -37.5 -90t-93.5 -49v256z" />
+<glyph unicode="&#x201c;" horiz-adv-x="402" d="M176 467h-131v117q0 52 37.5 91t93.5 48v-256zM349 467h-131v117q0 52 37.5 91t93.5 48v-256z" />
+<glyph unicode="&#x201d;" horiz-adv-x="401" d="M226 720h132v-117q0 -51 -37.5 -90t-94.5 -49v256zM54 720h131v-117q0 -51 -37.5 -90t-93.5 -49v256z" />
+<glyph unicode="&#x2022;" horiz-adv-x="371" d="M172 420h22q55 0 55 -54v-19q0 -54 -55 -54h-22q-54 0 -54 54v19q0 54 54 54z" />
+<glyph unicode="&#x2026;" horiz-adv-x="574" d="M366 131v-131h-132v131h132zM546 131v-131h-131v131h131zM185 131v-131h-131v131h131z" />
+<glyph unicode="&#x20ac;" horiz-adv-x="799" d="M268 131h478v-131h-478q-57 0 -97.5 40.5t-40.5 97.5v59h-95v131h95v57h-95v131h95v66q0 57 40.5 97.5t97.5 40.5h478v-131h-478q-7 0 -7 -7v-66h382v-131h-382v-57h382v-131h-382v-59q0 -7 7 -7z" />
+<glyph unicode="&#x2212;" horiz-adv-x="517" d="M468 361v-131h-409v131h409z" />
+<glyph unicode="&#xe000;" horiz-adv-x="580" d="M0 580h580v-580h-580v580z" />
+<glyph unicode="&#xe002;" horiz-adv-x="771" d="M46 720h714v-33l-571 -687h-143v33l461 556h-461v131z" />
+<glyph unicode="&#xe003;" horiz-adv-x="784" d="M150 718h438q57 0 97 -40.5t40 -97.5v-580h-131v280q0 7 -6 7h-438q-57 0 -97.5 40t-40.5 97v156q0 57 40.5 97.5t97.5 40.5zM594 418v162q0 7 -6 7h-438q-6 0 -6 -7v-156q0 -6 6 -6h444z" />
+<glyph unicode="&#xe005;" horiz-adv-x="815" d="M761 464l-111 -57l-469 -251v-25h580v-131h-576q-48 0 -86 31t-49 77l-1 128l580 308v45h-442q-6 0 -6 -7v-66h-132v66q0 57 40.5 97.5t97.5 40.5h438q50 0 88.5 -32.5t47.5 -81.5v-142z" />
+<glyph unicode="&#xe006;" horiz-adv-x="667" d="M163 720h342q57 0 97.5 -40.5t40.5 -97.5v-175q0 -57 -40.5 -97.5t-97.5 -40.5h-181q-6 0 -6 -6v-102h-132v102q0 57 40.5 97.5t97.5 40.5h181q7 0 7 6v175q0 7 -7 7h-347v-103h-131v119q8 49 46.5 82t89.5 33zM318 0h-132v131h132v-131z" />
+<glyph unicode="&#xe007;" horiz-adv-x="723" d="M593 312h101v-131h-101v-181h-131v181h-453v122l356 417h123v-67l-309 -341h283v142h131v-142z" />
+<glyph unicode="&#xe00a;" horiz-adv-x="774" d="M54 720h131v-530q79 93 227 273t213 257h142v-40l-570 -680h-143v720z" />
+<glyph unicode="&#xe00b;" horiz-adv-x="774" d="M0 0v33l570 687h143v-720h-132v183h-285q-29 -35 -85 -101.5t-68 -81.5h-143zM581 523l-175 -209h175v209z" />
+<glyph unicode="&#xe00c;" horiz-adv-x="774" d="M54 720h143l570 -687v-33h-142l-154 183h-286v-183h-131v720zM185 521v-207h176q-33 40 -89.5 105.5t-86.5 101.5z" />
+<glyph horiz-adv-x="401" />
+<glyph horiz-adv-x="827" d="M864 0h-152l-96 168h-394q-14 -24 -48 -81.5t-50 -86.5h-152l386 720h121zM419 553l-123 -253h245z" />
+<glyph horiz-adv-x="822" d="M773 605v-121h-133v104h-449q-7 0 -7 -7v-442q0 -7 7 -7h449v104h130v-121q-9 -49 -47.5 -82t-89.5 -33h-442q-58 0 -98.5 40.5t-40.5 98.5v442q0 58 40.5 98.5t98.5 40.5h442q50 0 89 -32.5t51 -82.5z" />
+<glyph horiz-adv-x="818" d="M769 720v-132h-294v-456h294v-132h-720v132h294v456h-294v132h720z" />
+<glyph horiz-adv-x="645" d="M466 139v581h133v-581q0 -58 -41 -98.5t-99 -40.5h-456v132h456q7 0 7 7z" />
+<glyph horiz-adv-x="829" d="M642 430v290h133v-271q0 -27 -21.5 -52.5t-57.5 -39.5q36 -15 57 -40t21 -52v-265h-133v284q0 7 -6 7h-442q-7 0 -7 -7v-284h-132v720h132v-290q0 -7 7 -7h442q7 0 7 7z" />
+<glyph horiz-adv-x="1155" d="M950 720q57 0 98 -40.5t41 -98.5v-581h-133v581q0 7 -6 7h-324v-588h-132v581q0 7 -7 7h-301v-588h-132v720h896z" />
+<glyph horiz-adv-x="827" d="M186 0h-132v720h581q57 0 98 -40.5t41 -98.5v-581h-133v581q0 7 -6 7h-449v-588z" />
+<glyph horiz-adv-x="824" d="M191 720h442q57 0 98 -40.5t41 -98.5v-442q0 -58 -41 -98.5t-98 -40.5h-442q-58 0 -98.5 40.5t-40.5 98.5v442q0 58 40.5 98.5t98.5 40.5zM639 139v442q0 7 -6 7h-442q-7 0 -7 -7v-442q0 -7 7 -7h442q6 0 6 7zM478 294h-132v132h132v-132z" />
+<glyph horiz-adv-x="868" d="M635 720q57 0 98 -40.5t41 -98.5v-442q0 -58 -41 -98.5t-98 -40.5h-155v-104h-133v104h-154q-58 0 -98.5 40.5t-40.5 98.5v442q0 58 40.5 98.5t98.5 40.5h442zM641 139v442q0 7 -6 7h-442q-7 0 -7 -7v-442q0 -7 7 -7h442q6 0 6 7z" />
+<glyph horiz-adv-x="826" d="M774 580v-194q0 -51 -51 -73q51 -22 51 -73v-240h-133v240q0 7 -6 7h-442q-7 0 -7 -7v-240h-132v720l581 -1q57 0 98 -41t41 -98zM635 587h-442q-7 0 -7 -7v-194q0 -7 7 -7h442q6 0 6 7v194q0 7 -6 7z" />
+<glyph horiz-adv-x="812" d="M185 426h442q57 0 98 -40.5t41 -98.5v-148q0 -58 -41 -98.5t-98 -40.5h-581v132h581q6 0 6 7v148q0 7 -6 7h-442q-58 0 -98.5 40.5t-40.5 98.5v148q0 58 40.5 98.5t98.5 40.5h581v-132h-581q-7 0 -7 -7v-148q0 -7 7 -7z" />
+<glyph horiz-adv-x="774" d="M587 192v528h133v-720h-144l-576 686v34h144z" />
+<glyph horiz-adv-x="827" d="M640 720h133v-720h-581q-58 0 -98.5 40.5t-40.5 98.5v581h132v-581q0 -7 7 -7h448v588z" />
+<glyph horiz-adv-x="1149" d="M1004 720h144v-34l-576 -686h-144v262q-37 -43 -112 -133t-107 -129h-144v720h132v-528q36 42 197.5 234t246.5 294h144v-35l-224 -265v-228q405 483 443 528z" />
+<glyph horiz-adv-x="1131" d="M141 720l443 -528v228l-224 265v35h144l444 -528v528h132v-720h-144l-219 261v-261h-144l-576 686v34h144z" />
+<glyph horiz-adv-x="1028" d="M510 372l-312 -372h-144v720h132v-529q42 49 153.5 182.5t170.5 203.5l323 -385v528h133v-720h-144z" />
+<glyph horiz-adv-x="1155" d="M192 0q-58 0 -98.5 40.5t-40.5 98.5v581h132v-581q0 -7 7 -7h324v588h132v-581q0 -7 7 -7h300v588h133v-720h-896z" />
+<glyph horiz-adv-x="829" d="M642 720h133v-271q0 -30 -21.5 -54.5t-55.5 -37.5q34 -14 55 -38t21 -54v-265h-133v284q0 7 -6 7h-441q-7 0 -7 -7v-284h-132v265q0 62 75 92q-76 29 -76 92v271h132v-290q0 -7 7 -7h442q7 0 7 7v290z" />
+<glyph horiz-adv-x="824" d="M638 720h133v-581q0 -58 -41 -98.5t-98 -40.5h-581v132h581q6 0 6 7v148q0 7 -6 7h-442q-58 0 -98.5 40.5t-40.5 98.5v287h132v-287q0 -7 7 -7h448v294z" />
+<glyph horiz-adv-x="818" d="M188 426h442q6 0 6 7v148q0 7 -6 7h-581v132h581q57 0 98 -40.5t41 -98.5v-148q0 -58 -41 -98.5t-98 -40.5h-442q-7 0 -7 -7v-148q0 -7 7 -7h581v-132h-581q-58 0 -98.5 40.5t-40.5 98.5v148q0 58 40.5 98.5t98.5 40.5z" />
+<glyph horiz-adv-x="693" d="M502 580q57 0 97.5 -40.5t40.5 -97.5v-442h-451q-57 0 -97.5 40.5t-40.5 97.5v304q0 57 40.5 97.5t97.5 40.5h313zM189 131h320v311q0 7 -7 7h-313q-7 0 -7 -7v-304q0 -7 7 -7z" />
+<glyph horiz-adv-x="725" d="M191 580h342q57 0 97.5 -40.5t40.5 -97.5v-442h-131v145h-356v-145h-131v442q0 57 40.5 97.5t97.5 40.5zM184 276h356v166q0 7 -7 7h-342q-7 0 -7 -7v-166z" />
+<glyph horiz-adv-x="700" d="M624 443v-84q0 -27 -9 -50q38 -40 38 -94v-77q0 -57 -40.5 -97.5t-97.5 -40.5h-461v581h432q57 0 97.5 -40.5t40.5 -97.5zM486 450h-294q-7 0 -7 -7v-84q0 -6 7 -6h294q7 0 7 6v84q0 7 -7 7zM522 138v77q0 7 -7 7h-323q-7 0 -7 -7v-77q0 -7 7 -7h323q7 0 7 7z" />
+<glyph horiz-adv-x="693" d="M638 450h-449q-7 0 -7 -7v-305q0 -7 7 -7h449v-131h-449q-57 0 -97.5 40.5t-40.5 97.5v305q0 57 40.5 97.5t97.5 40.5h449v-131z" />
+<glyph horiz-adv-x="705" d="M54 581h461q57 0 97.5 -40.5t40.5 -97.5v-305q0 -57 -40.5 -97.5t-97.5 -40.5h-461v581zM522 138v305q0 7 -7 7h-323q-7 0 -7 -7v-305q0 -7 7 -7h323q7 0 7 7z" />
+<glyph horiz-adv-x="638" d="M586 581v-131h-401v-94h299v-132h-299v-93h401v-131h-532v581h532z" />
+<glyph horiz-adv-x="591" d="M54 581h532v-131h-401v-94h299v-132h-299v-224h-131v581z" />
+<glyph horiz-adv-x="690" d="M640 443v-31h-131v31q0 7 -7 7h-313q-7 0 -7 -7v-305q0 -7 7 -7h313q7 0 7 7v58h-162v131h293v-189q0 -57 -40.5 -97.5t-97.5 -40.5h-313q-57 0 -97.5 40.5t-40.5 97.5v305q0 57 40.5 97.5t97.5 40.5h313q57 0 97.5 -40.5t40.5 -97.5z" />
+<glyph horiz-adv-x="715" d="M528 580h132v-580h-132v224h-343v-224h-131v580h131v-224h343v224z" />
+<glyph horiz-adv-x="214" d="M54 0v580h131v-580h-131z" />
+<glyph horiz-adv-x="657" d="M473 138v442h131v-442q0 -57 -40.5 -97.5t-97.5 -40.5h-323q-57 0 -97.5 40.5t-40.5 97.5v71h131v-71q0 -7 7 -7h323q7 0 7 7z" />
+<glyph horiz-adv-x="669" d="M643 580v-218q0 -40 -20 -72q20 -32 20 -72v-218h-131v218q0 6 -7 6h-320v-224h-131v769h131v-413h320q7 0 7 6v218h131z" />
+<glyph horiz-adv-x="682" d="M495 580h141v-34l-232 -256l232 -256v-34h-141l-207 224h-103v-224h-131v580h131v-224h103z" />
+<glyph horiz-adv-x="659" d="M54 0v580h131v-449h468v-131h-599z" />
+<glyph horiz-adv-x="824" d="M409 279l210 302h145v-581h-132v393l-223 -319l-224 318v-392h-131v581h144z" />
+<glyph horiz-adv-x="708" d="M522 192v388h131v-580h-144l-324 390v-390h-131v580h143z" />
+<glyph horiz-adv-x="692" d="M189 580h313q57 0 97.5 -40.5t40.5 -97.5v-304q0 -57 -40.5 -97.5t-97.5 -40.5h-313q-57 0 -97.5 40.5t-40.5 97.5v304q0 57 40.5 97.5t97.5 40.5zM189 131h313q7 0 7 7v304q0 7 -7 7h-313q-7 0 -7 -7v-304q0 -7 7 -7z" />
+<glyph horiz-adv-x="660" d="M54 580h451q57 0 97.5 -41t40.5 -97v-117q0 -56 -40.5 -97t-97.5 -41l-317 -1l-3 1v-187h-131v580zM512 325v117q0 7 -7 7h-313q-7 0 -7 -7v-117q0 -6 7 -6h313q7 0 7 6z" />
+<glyph horiz-adv-x="770" d="M641 131h86v-131h-537q-57 0 -97.5 40.5t-40.5 97.5v304q0 57 40.5 97.5t97.5 40.5h313q58 0 98 -40.5t40 -97.5v-311zM190 131h313q7 0 7 7v304q0 7 -7 7h-313q-7 0 -7 -7v-304q0 -7 7 -7z" />
+<glyph horiz-adv-x="700" d="M643 442v-117q0 -56 -40.5 -97t-97.5 -41h-23l171 -152v-35h-142l-205 187h-121v-187h-131v580h451q57 0 97.5 -41t40.5 -97zM192 319h313q7 0 7 6v117q0 7 -7 7h-313q-7 0 -7 -7v-117q0 -6 7 -6z" />
+<glyph horiz-adv-x="687" d="M638 442v-35h-131v35q0 7 -7 7h-313q-7 0 -7 -7v-80q0 -6 7 -6h313q57 0 97.5 -40.5t40.5 -97.5v-80q0 -57 -40.5 -97.5t-97.5 -40.5h-313q-57 0 -97.5 40.5t-40.5 97.5v35h131v-35q0 -7 7 -7h313q7 0 7 7v80q0 6 -7 6h-313q-57 0 -97.5 40.5t-40.5 97.5v80 q0 57 40.5 97.5t97.5 40.5h313q57 0 97.5 -40.5t40.5 -97.5z" />
+<glyph horiz-adv-x="644" d="M22 580h599v-131h-234v-449h-132v449h-233v131z" />
+<glyph horiz-adv-x="695" d="M511 138v442h131v-442q0 -57 -40.5 -97.5t-97.5 -40.5h-313q-58 0 -98 40.5t-40 97.5v442h131v-442q0 -7 7 -7h313q7 0 7 7z" />
+<glyph horiz-adv-x="697" d="M511 580h131v-580h-451q-58 0 -98 40.5t-40 97.5v442h131v-442q0 -7 7 -7h320v449z" />
+<glyph horiz-adv-x="801" d="M406 159l234 421h150l-324 -580h-120l-325 580h151z" />
+<glyph horiz-adv-x="978" d="M191 0q-57 0 -97.5 40.5t-40.5 97.5v442h130v-442q0 -7 8 -7h218q6 0 6 7v442h132v-442q0 -7 6 -7h219q7 0 7 7v442h131v-580h-719z" />
+<glyph horiz-adv-x="1078" d="M895 580h140l-223 -580h-102l-175 379l-168 -379h-101l-232 580h139l145 -344l152 344h128l162 -344z" />
+<glyph horiz-adv-x="698" d="M643 580v-218q0 -40 -20 -72q20 -32 20 -72v-218h-131v218q0 6 -7 6h-313q-7 0 -7 -6v-218h-131v218q0 40 20 72q-20 32 -20 72v218h131v-218q0 -6 7 -6h313q7 0 7 6v218h131z" />
+<glyph horiz-adv-x="692" d="M502 580h143v-33l-215 -251l215 -263v-33h-143l-157 193l-156 -193h-143v33l213 263q-28 33 -213 251v33h143l156 -184z" />
+<glyph horiz-adv-x="688" d="M537 580h156l-272 -380v-200h-131v200l-272 380h155l183 -236z" />
+<glyph horiz-adv-x="692" d="M189 224q-7 0 -7 -6v-80q0 -7 7 -7h451v-131h-451q-57 0 -97.5 40.5t-40.5 97.5v80q0 57 40.5 97.5t97.5 40.5h313q7 0 7 6v80q0 7 -7 7h-451v131h451q57 0 97.5 -40.5t40.5 -97.5v-80q0 -57 -40.5 -97.5t-97.5 -40.5h-313z" />
+<glyph horiz-adv-x="698" d="M54 449v131h589v-143l-396 -306h396v-131h-589v143l396 306h-396z" />
+<hkern u1="A" u2="k" k="10" />
+<hkern u1="A" u2="Y" k="19" />
+<hkern u1="A" u2="W" k="37" />
+<hkern u1="B" u2="h" k="29" />
+<hkern u1="B" u2="Y" k="37" />
+<hkern u1="B" u2="V" k="55" />
+<hkern u1="C" u2="e" k="17" />
+<hkern u1="C" u2="a" k="10" />
+<hkern u1="D" u2="i" k="29" />
+<hkern u1="D" u2="Z" k="27" />
+<hkern u1="D" u2="V" k="35" />
+<hkern u1="E" u2="O" k="19" />
+<hkern u1="E" u2="M" k="21" />
+<hkern u1="F" u2="T" k="-20" />
+<hkern u1="F" u2="J" k="213" />
+<hkern u1="G" u2="Y" k="15" />
+<hkern u1="G" u2="W" k="33" />
+<hkern u1="J" u2="e" k="27" />
+<hkern u1="K" u2="y" k="27" />
+<hkern u1="K" u2="o" k="35" />
+<hkern u1="K" u2="a" k="37" />
+<hkern u1="K" u2="H" k="23" />
+<hkern u1="K" u2="A" k="25" />
+<hkern u1="L" u2="b" k="-11" />
+<hkern u1="L" u2="Y" k="163" />
+<hkern u1="L" u2="W" k="117" />
+<hkern u1="L" u2="V" k="209" />
+<hkern u1="L" u2="T" k="150" />
+<hkern u1="L" u2="I" k="-10" />
+<hkern u1="M" u2="c" k="10" />
+<hkern u1="N" u2="e" k="25" />
+<hkern u1="O" u2="z" k="29" />
+<hkern u1="O" u2="g" k="15" />
+<hkern u1="O" u2="c" k="16" />
+<hkern u1="O" u2="X" k="39" />
+<hkern u1="O" u2="W" k="43" />
+<hkern u1="O" u2="V" k="43" />
+<hkern u1="P" u2="J" k="167" />
+<hkern u1="R" u2="W" k="31" />
+<hkern u1="R" u2="V" k="31" />
+<hkern u1="S" u2="W" k="31" />
+<hkern u1="S" u2="N" k="29" />
+<hkern u1="T" u2="s" k="61" />
+<hkern u1="T" u2="o" k="63" />
+<hkern u1="U" u2="x" k="21" />
+<hkern u1="U" u2="s" k="23" />
+<hkern u1="V" u2="s" k="70" />
+<hkern u1="V" u2="o" k="81" />
+<hkern u1="V" u2="e" k="81" />
+<hkern u1="V" u2="A" k="21" />
+<hkern u1="W" u2="y" k="41" />
+<hkern u1="W" u2="u" k="51" />
+<hkern u1="W" u2="o" k="79" />
+<hkern u1="W" u2="i" k="11" />
+<hkern u1="W" u2="h" k="13" />
+<hkern u1="W" u2="e" k="79" />
+<hkern u1="W" u2="a" k="51" />
+<hkern u1="W" u2="O" k="39" />
+<hkern u1="W" u2="A" k="43" />
+<hkern u1="X" u2="e" k="35" />
+<hkern u1="X" u2="a" k="37" />
+<hkern u1="X" u2="B" k="25" />
+<hkern u1="Y" u2="u" k="43" />
+<hkern u1="Y" u2="s" k="69" />
+<hkern u1="Y" u2="p" k="45" />
+<hkern u1="Y" u2="o" k="71" />
+<hkern u1="Y" u2="e" k="71" />
+<hkern u1="Y" u2="a" k="43" />
+<hkern u1="Z" u2="e" k="19" />
+<hkern u1="a" u2="z" k="29" />
+<hkern u1="a" u2="x" k="21" />
+<hkern u1="a" u2="w" k="47" />
+<hkern u1="a" u2="v" k="25" />
+<hkern u1="a" u2="s" k="23" />
+<hkern u1="a" u2="r" k="17" />
+<hkern u1="a" u2="n" k="9" />
+<hkern u1="a" u2="m" k="15" />
+<hkern u1="a" u2="l" k="27" />
+<hkern u1="a" u2="k" k="29" />
+<hkern u1="a" u2="h" k="29" />
+<hkern u1="a" u2="g" k="15" />
+<hkern u1="a" u2="c" k="25" />
+<hkern u1="a" u2="b" k="19" />
+<hkern u1="b" u2="w" k="13" />
+<hkern u1="b" u2="o" k="-2" />
+<hkern u1="b" u2="j" k="-10" />
+<hkern u1="c" u2="z" k="27" />
+<hkern u1="c" u2="y" k="10" />
+<hkern u1="c" u2="v" k="15" />
+<hkern u1="c" u2="u" k="25" />
+<hkern u1="c" u2="t" k="15" />
+<hkern u1="c" u2="r" k="25" />
+<hkern u1="c" u2="o" k="23" />
+<hkern u1="c" u2="k" k="17" />
+<hkern u1="c" u2="h" k="27" />
+<hkern u1="c" u2="e" k="23" />
+<hkern u1="c" u2="c" k="33" />
+<hkern u1="c" u2="b" k="27" />
+<hkern u1="c" u2="a" k="15" />
+<hkern u1="d" u2="y" k="15" />
+<hkern u1="d" u2="u" k="25" />
+<hkern u1="d" u2="r" k="5" />
+<hkern u1="d" u2="o" k="23" />
+<hkern u1="d" u2="g" k="10" />
+<hkern u1="d" u2="e" k="23" />
+<hkern u1="e" u2="y" k="15" />
+<hkern u1="e" u2="x" k="19" />
+<hkern u1="e" u2="w" k="35" />
+<hkern u1="e" u2="v" k="21" />
+<hkern u1="e" u2="s" k="20" />
+<hkern u1="e" u2="r" k="25" />
+<hkern u1="e" u2="o" k="23" />
+<hkern u1="e" u2="l" k="25" />
+<hkern u1="e" u2="g" k="13" />
+<hkern u1="e" u2="e" k="23" />
+<hkern u1="e" u2="d" k="-20" />
+<hkern u1="e" u2="c" k="13" />
+<hkern u1="f" u2="y" k="-8" />
+<hkern u1="f" u2="t" k="-10" />
+<hkern u1="f" u2="b" k="-10" />
+<hkern u1="f" u2="&#x2c;" k="123" />
+<hkern u1="g" u2="z" k="27" />
+<hkern u1="g" u2="y" k="14" />
+<hkern u1="g" u2="w" k="27" />
+<hkern u1="g" u2="u" k="25" />
+<hkern u1="g" u2="s" k="21" />
+<hkern u1="g" u2="r" k="25" />
+<hkern u1="g" u2="o" k="23" />
+<hkern u1="g" u2="m" k="27" />
+<hkern u1="g" u2="j" k="-180" />
+<hkern u1="g" u2="g" k="13" />
+<hkern u1="g" u2="f" k="25" />
+<hkern u1="g" u2="e" k="23" />
+<hkern u1="g" u2="c" k="23" />
+<hkern u1="g" u2="a" k="25" />
+<hkern u1="j" u2="u" k="11" />
+<hkern u1="j" u2="e" k="4" />
+<hkern u1="j" u2="a" k="11" />
+<hkern u1="k" u2="e" k="24" />
+<hkern u1="l" u2="w" k="102" />
+<hkern u1="l" u2="v" k="30" />
+<hkern u1="l" u2="u" k="-10" />
+<hkern u1="l" u2="i" k="-11" />
+<hkern u1="m" u2="w" k="51" />
+<hkern u1="m" u2="p" k="43" />
+<hkern u1="m" u2="n" k="43" />
+<hkern u1="m" u2="m" k="43" />
+<hkern u1="m" u2="k" k="43" />
+<hkern u1="m" u2="g" k="29" />
+<hkern u1="m" u2="e" k="39" />
+<hkern u1="m" u2="b" k="43" />
+<hkern u1="m" u2="a" k="40" />
+<hkern u1="n" u2="x" k="21" />
+<hkern u1="n" u2="s" k="23" />
+<hkern u1="n" u2="p" k="29" />
+<hkern u1="n" u2="o" k="5" />
+<hkern u1="n" u2="g" k="10" />
+<hkern u1="n" u2="e" k="25" />
+<hkern u1="n" u2="c" k="25" />
+<hkern u1="n" u2="b" k="29" />
+<hkern u1="o" u2="x" k="29" />
+<hkern u1="o" u2="w" k="35" />
+<hkern u1="o" u2="v" k="41" />
+<hkern u1="o" u2="u" k="25" />
+<hkern u1="o" u2="t" k="25" />
+<hkern u1="o" u2="s" k="21" />
+<hkern u1="o" u2="r" k="15" />
+<hkern u1="o" u2="o" k="23" />
+<hkern u1="o" u2="n" k="27" />
+<hkern u1="o" u2="l" k="25" />
+<hkern u1="o" u2="c" k="10" />
+<hkern u1="o" u2="b" k="27" />
+<hkern u1="o" u2="a" k="25" />
+<hkern u1="q" u2="u" k="25" />
+<hkern u1="q" u2="j" k="-181" />
+<hkern u1="r" u2="u" k="-10" />
+<hkern u1="r" u2="k" k="-10" />
+<hkern u1="r" u2="a" k="-25" />
+<hkern u1="r" u2="&#x2c;" k="185" />
+<hkern u1="s" u2="z" k="25" />
+<hkern u1="s" u2="x" k="27" />
+<hkern u1="s" u2="w" k="33" />
+<hkern u1="s" u2="v" k="19" />
+<hkern u1="s" u2="u" k="10" />
+<hkern u1="s" u2="o" k="21" />
+<hkern u1="s" u2="n" k="25" />
+<hkern u1="s" u2="k" k="25" />
+<hkern u1="s" u2="g" k="11" />
+<hkern u1="s" u2="e" k="11" />
+<hkern u1="s" u2="c" k="21" />
+<hkern u1="t" u2="w" k="-8" />
+<hkern u1="u" u2="&#x2019;" k="25" />
+<hkern u1="u" u2="z" k="25" />
+<hkern u1="u" u2="x" k="17" />
+<hkern u1="u" u2="t" k="23" />
+<hkern u1="u" u2="s" k="5" />
+<hkern u1="u" u2="p" k="25" />
+<hkern u1="u" u2="o" k="23" />
+<hkern u1="u" u2="m" k="25" />
+<hkern u1="u" u2="k" k="25" />
+<hkern u1="u" u2="g" k="13" />
+<hkern u1="u" u2="f" k="23" />
+<hkern u1="u" u2="e" k="23" />
+<hkern u1="u" u2="c" k="23" />
+<hkern u1="u" u2="b" k="15" />
+<hkern u1="v" u2="s" k="31" />
+<hkern u1="v" u2="o" k="15" />
+<hkern u1="v" u2="e" k="11" />
+<hkern u1="w" u2="t" k="17" />
+<hkern u1="w" u2="s" k="43" />
+<hkern u1="w" u2="r" k="47" />
+<hkern u1="w" u2="o" k="45" />
+<hkern u1="w" u2="n" k="19" />
+<hkern u1="w" u2="l" k="27" />
+<hkern u1="w" u2="k" k="10" />
+<hkern u1="w" u2="i" k="17" />
+<hkern u1="w" u2="h" k="19" />
+<hkern u1="w" u2="g" k="27" />
+<hkern u1="w" u2="e" k="45" />
+<hkern u1="w" u2="c" k="45" />
+<hkern u1="w" u2="a" k="17" />
+<hkern u1="x" u2="u" k="21" />
+<hkern u1="x" u2="m" k="10" />
+<hkern u1="x" u2="e" k="29" />
+<hkern u1="y" u2="s" k="23" />
+<hkern u1="y" u2="r" k="15" />
+<hkern u1="y" u2="p" k="17" />
+<hkern u1="y" u2="o" k="25" />
+<hkern u1="y" u2="n" k="5" />
+<hkern u1="y" u2="l" k="15" />
+<hkern u1="y" u2="k" k="27" />
+<hkern u1="y" u2="j" k="-166" />
+<hkern u1="y" u2="e" k="25" />
+<hkern u1="y" u2="c" k="25" />
+<hkern u1="y" u2="a" k="25" />
+<hkern u1="z" u2="z" k="29" />
+<hkern u1="z" u2="t" k="27" />
+<hkern u1="z" u2="l" k="27" />
+<hkern u1="z" u2="h" k="29" />
+<hkern u1="z" u2="e" k="25" />
+<hkern u1="z" u2="a" k="27" />
+<hkern u1="&#xe00a;" u2="&#xe00b;" k="315" />
+<hkern u1="&#xe00c;" g2="W.alt2" k="315" />
+<hkern u1="&#xe00c;" g2="V.alt2" k="317" />
+</font>
+</defs></svg> 
\ No newline at end of file
diff --git a/js/resources/fonts/orbitron-bold.ttf b/js/resources/fonts/orbitron-bold.ttf
new file mode 100755
index 0000000..aefd580
Binary files /dev/null and b/js/resources/fonts/orbitron-bold.ttf differ
diff --git a/js/resources/fonts/orbitron-bold.woff b/js/resources/fonts/orbitron-bold.woff
new file mode 100755
index 0000000..f88d3cf
Binary files /dev/null and b/js/resources/fonts/orbitron-bold.woff differ
diff --git a/js/resources/fonts/orbitron-light.eot b/js/resources/fonts/orbitron-light.eot
new file mode 100755
index 0000000..e518a76
Binary files /dev/null and b/js/resources/fonts/orbitron-light.eot differ
diff --git a/js/resources/fonts/orbitron-light.svg b/js/resources/fonts/orbitron-light.svg
new file mode 100755
index 0000000..57c69d6
--- /dev/null
+++ b/js/resources/fonts/orbitron-light.svg
@@ -0,0 +1,453 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
+<svg xmlns="http://www.w3.org/2000/svg">
+<metadata></metadata>
+<defs>
+<font id="orbitronlight" horiz-adv-x="828" >
+<font-face units-per-em="1000" ascent="750" descent="-250" />
+<missing-glyph horiz-adv-x="272" />
+<glyph unicode=" "  horiz-adv-x="272" />
+<glyph unicode="&#x09;" horiz-adv-x="272" />
+<glyph unicode="&#xa0;" horiz-adv-x="272" />
+<glyph unicode="!" horiz-adv-x="220" d="M140 0h-82v82h82v-82zM58 203v517h82v-517h-82z" />
+<glyph unicode="&#x22;" horiz-adv-x="372" d="M141 720v-140h-82v140h82zM296 720v-140h-82v140h82z" />
+<glyph unicode="#" horiz-adv-x="797" d="M773 555v-82h-121l-71 -220h159v-82h-185q-9 -32 -30 -98t-23 -73h-82l54 171h-260q-9 -32 -30 -98t-23 -73h-82l54 171h-101v82h127l71 220h-166v82h192l56 164h81l-57 -164h261l56 164h81l-57 -164h96zM241 253h259l71 220h-260z" />
+<glyph unicode="$" horiz-adv-x="788" d="M762 599v-28h-83v28q0 16 -11.5 27.5t-27.5 11.5h-201v-236h201q51 0 86.5 -35.5t35.5 -85.5v-160q0 -50 -35.5 -85.5t-86.5 -35.5h-201v-114h-82v114h-202q-50 0 -85.5 35.5t-35.5 85.5v29h82v-29q0 -16 11.5 -27.5t27.5 -11.5h202v238h-202q-50 0 -85.5 35t-35.5 86 v158q0 51 35.5 86.5t85.5 35.5h202v114h82v-114h201q51 0 86.5 -35.5t35.5 -86.5zM640 320h-201v-238h201q16 0 27.5 11.5t11.5 27.5v160q0 16 -11.5 27.5t-27.5 11.5zM357 402v236h-202q-16 0 -27.5 -11.5t-11.5 -27.5v-158q0 -16 11.5 -27.5t27.5 -11.5h202z" />
+<glyph unicode="%" horiz-adv-x="966" d="M137 0v108l728 613v-107zM170 720h94q51 0 86.5 -35.5t35.5 -86.5v-84q0 -50 -35.5 -85.5t-86.5 -35.5h-94q-51 0 -86.5 35.5t-35.5 85.5v84q0 51 35.5 86.5t86.5 35.5zM148 454h138q16 0 27.5 11.5t11.5 27.5v126q0 16 -11.5 27.5t-27.5 11.5h-138q-16 0 -27.5 -11.5 t-11.5 -27.5v-126q0 -16 11.5 -27.5t27.5 -11.5zM716 326h95q50 0 85.5 -35.5t35.5 -85.5v-85q0 -50 -35.5 -85.5t-85.5 -35.5h-95q-51 0 -86 35.5t-35 85.5v85q0 50 35 85.5t86 35.5zM695 60h137q16 0 27.5 11.5t11.5 27.5v127q0 16 -11.5 27.5t-27.5 11.5h-137 q-16 0 -27.5 -11.5t-11.5 -27.5v-127q0 -16 11.5 -27.5t27.5 -11.5z" />
+<glyph unicode="&#x26;" horiz-adv-x="938" d="M780 167l134 -79v-72l-137 77q-17 -42 -48.5 -67.5t-69.5 -25.5h-485q-50 0 -85.5 35.5t-35.5 85.5v215q0 22 27 43.5t72 21.5q-57 43 -57 96v100q0 51 35.5 86.5t85.5 35.5h411q41 0 75.5 -30.5t46.5 -71.5v-55h-83v34q0 16 -11.5 27.5t-27.5 11.5h-411 q-16 0 -27.5 -11.5t-11.5 -27.5v-139l521 -263v139h82v-166zM174 82h485q11 0 22 10t18 26l-510 257h-15q-16 0 -27.5 -11.5t-11.5 -27.5v-215q0 -16 11.5 -27.5t27.5 -11.5z" />
+<glyph unicode="'" horiz-adv-x="224" d="M141 720v-140h-82v140h82z" />
+<glyph unicode="(" horiz-adv-x="277" d="M173 82h29v-82h-29q-50 0 -85.5 35.5t-35.5 85.5v477q0 51 35.5 86.5t85.5 35.5h29v-83h-29q-16 0 -27.5 -11.5t-11.5 -27.5v-477q0 -16 11.5 -27.5t27.5 -11.5z" />
+<glyph unicode=")" horiz-adv-x="278" d="M56 0v82h28q16 0 27.5 11.5t11.5 27.5v477q0 16 -11.5 27.5t-27.5 11.5h-28v83h28q50 0 86 -35.5t36 -86.5v-477q0 -50 -36 -85.5t-86 -35.5h-28z" />
+<glyph unicode="*" horiz-adv-x="491" d="M423 614l27 -79l-146 -47q28 -41 90 -125q-12 -9 -32.5 -24t-33.5 -24l-91 123l-90 -123q-15 11 -36 25.5t-31 21.5l90 126l-145 47l24 79l147 -49v154h82v-153z" />
+<glyph unicode="+" horiz-adv-x="433" d="M169 490h82v-153h156v-82h-156v-155h-82v155h-152v82h152v153z" />
+<glyph unicode="," horiz-adv-x="193" d="M54 82h82v-98q0 -40 -23 -71.5t-59 -43.5v213z" />
+<glyph unicode="-" horiz-adv-x="517" d="M449 337v-82h-390v82h390z" />
+<glyph unicode="." horiz-adv-x="214" d="M136 82v-82h-82v82h82z" />
+<glyph unicode="/" horiz-adv-x="521" d="M6 106l506 614v-104l-506 -616v106z" />
+<glyph unicode="0" horiz-adv-x="834" d="M178 720h485q50 0 85.5 -35.5t35.5 -86.5v-477q0 -50 -35.5 -85.5t-85.5 -35.5h-485q-51 0 -86 35.5t-35 85.5v477q0 51 35 86.5t86 35.5zM691 637h-513q-16 0 -27.5 -11.5t-11.5 -27.5v-417zM149 82h514q16 0 27.5 11.5t11.5 27.5v417z" />
+<glyph unicode="1" horiz-adv-x="391" d="M1 495l189 225h112v-720h-83v628q-14 -18 -55.5 -67t-55.5 -66h-107z" />
+<glyph unicode="2" horiz-adv-x="830" d="M178 721h485q50 0 85.5 -35.5t35.5 -86.5v-169q0 -50 -35.5 -85.5t-85.5 -35.5h-485q-16 0 -27.5 -11.5t-11.5 -27.5v-149q0 -16 11.5 -27.5t27.5 -11.5h606v-82h-727v270q0 51 35 86t86 35h485q16 0 27.5 11.5t11.5 27.5v169q0 16 -11.5 27.5t-27.5 11.5h-485 q-16 0 -27.5 -11.5t-11.5 -27.5v-28h-82v28q0 51 35 86.5t86 35.5z" />
+<glyph unicode="3" horiz-adv-x="826" d="M737 396l4 -18q40 -37 40 -90v-167q0 -50 -35.5 -85.5t-85.5 -35.5h-485q-51 0 -86.5 35.5t-35.5 85.5v16h83v-16q0 -16 11.5 -27.5t27.5 -11.5h485q16 0 27.5 11.5t11.5 27.5v167q0 16 -11.5 27.5t-27.5 11.5h-469v82h437q16 0 27.5 11.5t11.5 27.5v151q0 16 -11.5 27.5 t-27.5 11.5h-453q-16 0 -27.5 -11.5t-11.5 -27.5v-26h-83v26q0 51 35.5 86.5t86.5 35.5h453q51 0 86 -35.5t35 -86.5v-151q0 -26 -12 -52z" />
+<glyph unicode="4" horiz-adv-x="730" d="M590 268h112v-82h-112v-186h-82v186h-502v92q48 43 222.5 199.5t269.5 243.5h92v-453zM508 590l-397 -322h397v322z" />
+<glyph unicode="5" horiz-adv-x="830" d="M139 599v-147q0 -16 11.5 -28t27.5 -12h485q50 0 85.5 -35t35.5 -86v-170q0 -50 -35.5 -85.5t-85.5 -35.5h-485q-51 0 -86 35.5t-35 85.5v29h82v-29q0 -16 11.5 -27.5t27.5 -11.5h485q16 0 27.5 11.5t11.5 27.5v170q0 16 -11.5 27.5t-27.5 11.5h-606v391h727v-83h-606 q-16 0 -27.5 -11.5t-11.5 -27.5z" />
+<glyph unicode="6" horiz-adv-x="820" d="M178 415h485q50 0 85.5 -35t35.5 -86v-173q0 -50 -35.5 -85.5t-85.5 -35.5h-485q-51 0 -86 35.5t-35 85.5v478q0 51 35 86.5t86 35.5h480v-83h-480q-16 0 -27.5 -11.5t-11.5 -27.5v-144q0 -16 11.5 -28t27.5 -12zM702 121v173q0 16 -11.5 27.5t-27.5 11.5h-524v-212 q0 -16 11.5 -27.5t27.5 -11.5h485q16 0 27.5 11.5t11.5 27.5z" />
+<glyph unicode="7" horiz-adv-x="660" d="M483 638h-480v83h480q50 0 85.5 -35.5t35.5 -86.5v-599h-82v599q0 16 -11.5 27.5t-27.5 11.5z" />
+<glyph unicode="8" horiz-adv-x="834" d="M784 619v-167q0 -40 -30 -81q30 -39 30 -80v-170q0 -50 -35.5 -85.5t-85.5 -35.5h-485q-51 0 -86 35.5t-35 85.5v170q0 41 30 80q-30 41 -30 81v147q0 51 35 86.5t86 35.5h485q40 0 74.5 -30.5t46.5 -71.5zM702 121v170q0 16 -11.5 27.5t-27.5 11.5h-485 q-16 0 -27.5 -11.5t-11.5 -27.5v-170q0 -16 11.5 -27.5t27.5 -11.5h485q16 0 27.5 11.5t11.5 27.5zM702 440v158q0 16 -11.5 27.5t-27.5 11.5h-485q-16 0 -27.5 -11.5t-11.5 -27.5v-158q0 -16 11.5 -27.5t27.5 -11.5h485q16 0 27.5 11.5t11.5 27.5z" />
+<glyph unicode="9" d="M658 305h-485q-51 0 -86.5 35.5t-35.5 85.5v173q0 51 35.5 86.5t86.5 35.5h485q50 0 85.5 -35.5t35.5 -86.5v-478q0 -50 -35.5 -85.5t-85.5 -35.5h-485q-39 0 -71 23t-44 59h600q16 0 27.5 11.5t11.5 27.5v145q0 16 -11.5 27.5t-27.5 11.5zM134 599v-173 q0 -16 11.5 -27.5t27.5 -11.5h524v212q0 16 -11.5 27.5t-27.5 11.5h-485q-16 0 -27.5 -11.5t-11.5 -27.5z" />
+<glyph unicode=":" horiz-adv-x="214" d="M54 82h82v-82h-82v82zM136 588v-82h-82v82h82z" />
+<glyph unicode=";" horiz-adv-x="193" d="M133 588v-82h-82v82h82zM51 82h82v-98q0 -40 -23 -71.5t-59 -43.5v213z" />
+<glyph unicode="&#x3c;" horiz-adv-x="473" d="M87 296l320 -185v-95l-402 232v97l402 231v-95z" />
+<glyph unicode="=" horiz-adv-x="638" d="M576 233v-82h-517v82h517zM576 433v-82h-517v82h517z" />
+<glyph unicode="&#x3e;" horiz-adv-x="475" d="M59 14v95l320 185l-320 185v95l402 -231v-97q-82 -47 -232.5 -134t-169.5 -98z" />
+<glyph unicode="?" horiz-adv-x="678" d="M31 720l517 -1q50 0 85.5 -35.5t35.5 -86.5v-194q0 -50 -35.5 -85.5t-85.5 -35.5h-274q-16 0 -27.5 -11.5t-11.5 -27.5v-42h-82v42q0 51 35.5 86t85.5 35h274q16 0 27.5 11.5t11.5 27.5v194q0 16 -11.5 27.5t-27.5 11.5h-517v84zM235 0h-82v82h82v-82z" />
+<glyph unicode="@" horiz-adv-x="831" d="M373 519h95q50 0 85.5 -35.5t35.5 -85.5v-144h113v344q0 16 -11.5 27.5t-27.5 11.5h-485q-16 0 -27.5 -11.5t-11.5 -27.5v-477q0 -16 11.5 -27.5t27.5 -11.5h606v-82h-606q-51 0 -86 35.5t-35 85.5v477q0 51 35 86.5t86 35.5h485q50 0 85.5 -35.5t35.5 -86.5v-406h-411 q-51 0 -86 35.5t-35 86.5v84q0 50 35 85.5t86 35.5zM352 254h176v165q0 16 -11.5 27.5t-27.5 11.5h-137q-16 0 -27.5 -11.5t-11.5 -27.5v-126q0 -16 11.5 -27.5t27.5 -11.5z" />
+<glyph unicode="A" horiz-adv-x="836" d="M178 720h480q50 0 85 -35t35 -85v-600h-81v263h-558v-263h-81v600q0 50 35 85t85 35zM139 344h558v256q0 16 -11.5 27.5t-27.5 11.5h-480q-16 0 -27.5 -11.5t-11.5 -27.5v-256z" />
+<glyph unicode="B" horiz-adv-x="832" d="M735 394l4 -17q40 -37 40 -89v-168q0 -50 -35 -85t-85 -35h-600v720h569q50 0 85 -35t35 -85v-153q0 -27 -13 -53zM628 639h-449q-16 0 -27.5 -11.5t-11.5 -27.5v-153q0 -16 11.5 -27.5t27.5 -11.5h449q16 0 27 11.5t11 27.5v153q0 16 -11 27.5t-27 11.5zM698 120v168 q0 16 -11.5 27.5t-27.5 11.5h-480q-16 0 -27.5 -11.5t-11.5 -27.5v-168q0 -16 11.5 -27.5t27.5 -11.5h480q16 0 27.5 11.5t11.5 27.5z" />
+<glyph unicode="C" horiz-adv-x="822" d="M774 639h-598q-16 0 -27.5 -11.5t-11.5 -27.5v-480q0 -16 11.5 -27.5t27.5 -11.5h598v-81h-598q-50 0 -85 35t-35 85v480q0 50 35 85t85 35h598v-81z" />
+<glyph unicode="D" horiz-adv-x="834" d="M58 720h600q50 0 85 -35t35 -85v-480q0 -50 -35 -85t-85 -35h-600v720zM697 120v480q0 16 -11.5 27.5t-27.5 11.5h-480q-16 0 -27.5 -11.5t-11.5 -27.5v-480q0 -16 11.5 -27.5t27.5 -11.5h480q16 0 27.5 11.5t11.5 27.5z" />
+<glyph unicode="E" horiz-adv-x="766" d="M715 720v-81h-576v-238h463v-82h-463v-238h576v-81h-657v720h657z" />
+<glyph unicode="F" horiz-adv-x="723" d="M58 720h657v-81h-576v-238h463v-82h-463v-319h-81v720z" />
+<glyph unicode="G" horiz-adv-x="830" d="M776 600v-29h-81v29q0 16 -11.5 27.5t-27.5 11.5h-480q-16 0 -27.5 -11.5t-11.5 -27.5v-480q0 -16 11.5 -27.5t27.5 -11.5h480q16 0 27.5 11.5t11.5 27.5v178h-178v82h259v-260q0 -50 -35 -85t-85 -35h-480q-50 0 -85 35t-35 85v480q0 50 35 85t85 35h480q50 0 85 -35 t35 -85z" />
+<glyph unicode="H" horiz-adv-x="851" d="M713 720h82v-720h-82v319h-575v-319h-81v720h81v-319h575v319z" />
+<glyph unicode="I" horiz-adv-x="220" d="M57 0v720h81v-720h-81z" />
+<glyph unicode="J" horiz-adv-x="780" d="M643 120v600h81v-600q0 -50 -35 -85t-85 -35h-480q-50 0 -85 35t-35 85v57h81v-57q0 -16 11.5 -27.5t27.5 -11.5h480q16 0 27.5 11.5t11.5 27.5z" />
+<glyph unicode="K" horiz-adv-x="797" d="M639 720h104l-301 -360l302 -360h-105l-268 319h-232v-319h-82v720h82v-319h232q43 52 133.5 159.5t134.5 159.5z" />
+<glyph unicode="L" horiz-adv-x="779" d="M57 0v721h81v-640h639v-81h-720z" />
+<glyph unicode="M" horiz-adv-x="928" d="M466 364l299 356h111v-720h-81v628l-329 -391l-329 391v-628h-81v720h111z" />
+<glyph unicode="N" horiz-adv-x="832" d="M695 92v628h81v-720h-111l-528 628v-628h-81v720h111z" />
+<glyph unicode="O" d="M174 720h480q50 0 85 -35t35 -85v-480q0 -50 -35 -85t-85 -35h-480q-50 0 -85 35t-35 85v480q0 50 35 85t85 35zM174 81h480q16 0 27.5 11.5t11.5 27.5v480q0 16 -11.5 27.5t-27.5 11.5h-480q-16 0 -27.5 -11.5t-11.5 -27.5v-480q0 -16 11.5 -27.5t27.5 -11.5z" />
+<glyph unicode="P" horiz-adv-x="791" d="M56 719h600q50 0 85 -35t35 -85v-211q0 -50 -35 -85t-85 -35h-480q-9 0 -39 4v-272h-81v719zM695 388v211q0 16 -11.5 27.5t-27.5 11.5h-480q-16 0 -27.5 -11.5t-11.5 -27.5v-211q0 -16 11.5 -27t27.5 -11h480q16 0 27.5 11t11.5 27z" />
+<glyph unicode="Q" horiz-adv-x="884" d="M770 81h98v-81h-694q-50 0 -85 35t-35 85v480q0 50 35 85t85 35h480q50 0 85 -35t35 -85v-480q0 -9 -4 -39zM174 81h480q16 0 27.5 11.5t11.5 27.5v480q0 16 -11.5 27.5t-27.5 11.5h-480q-16 0 -27.5 -11.5t-11.5 -27.5v-480q0 -16 11.5 -27.5t27.5 -11.5z" />
+<glyph unicode="R" horiz-adv-x="825" d="M775 599v-211q0 -50 -35 -85t-85 -35h-110l226 -268h-107l-225 268h-264q-9 0 -39 4v-272h-81v719h600q50 0 85 -35t35 -85zM175 350h480q16 0 27 11t11 27v211q0 16 -11 27.5t-27 11.5h-480q-16 0 -27.5 -11.5t-11.5 -27.5v-211q0 -16 11.5 -27t27.5 -11z" />
+<glyph unicode="S" horiz-adv-x="822" d="M771 600v-28h-81v28q0 16 -11.5 27.5t-27.5 11.5h-480q-16 0 -27.5 -11.5t-11.5 -27.5v-161q0 -16 11.5 -27t27.5 -11h480q50 0 85 -35t35 -85v-161q0 -50 -35 -85t-85 -35h-480q-50 0 -85 35t-35 85v28h81v-28q0 -16 11.5 -27.5t27.5 -11.5h480q16 0 27.5 11.5 t11.5 27.5v161q0 16 -11.5 27t-27.5 11h-480q-50 0 -85 35t-35 85v161q0 50 35 85t85 35h480q50 0 85 -35t35 -85z" />
+<glyph unicode="T" horiz-adv-x="759" d="M20 720h720v-81h-319v-639h-81v639h-320v81z" />
+<glyph unicode="U" d="M693 120v600h81v-600q0 -50 -35 -85t-85 -35h-480q-50 0 -85 35t-35 85v600h81v-600q0 -16 11.5 -27.5t27.5 -11.5h480q16 0 27.5 11.5t11.5 27.5z" />
+<glyph unicode="V" horiz-adv-x="1003" d="M499 79l368 641h95q-80 -140 -221 -383t-195 -337h-94q-23 40 -179 308.5t-238 411.5h95z" />
+<glyph unicode="W" horiz-adv-x="1179" d="M1060 720h88l-262 -720h-71l-224 615l-224 -615h-70l-262 720h86l211 -578q38 104 117.5 323.5t92.5 254.5h98l211 -578q33 93 106 293.5t103 284.5z" />
+<glyph unicode="X" horiz-adv-x="812" d="M651 720h104l-302 -360q152 -183 303 -360h-105l-250 297l-251 -297h-104l302 360l-302 360h104l251 -297z" />
+<glyph unicode="Y" horiz-adv-x="806" d="M665 720h95l-331 -449v-271h-81v271q-103 142 -331 449h93l279 -352q50 64 276 352z" />
+<glyph unicode="Z" horiz-adv-x="821" d="M51 639v81h720v-111l-628 -528h628v-81h-720v111l628 528h-628z" />
+<glyph unicode="[" horiz-adv-x="275" d="M54 0v721h150v-83h-68v-556h68v-82h-150z" />
+<glyph unicode="\" horiz-adv-x="520" d="M511 107v-106l-506 620v104z" />
+<glyph unicode="]" horiz-adv-x="276" d="M51 638v83h150v-721h-150v82h67v556h-67z" />
+<glyph unicode="_" d="M782 0v-82h-728v82h728z" />
+<glyph unicode="`" horiz-adv-x="213" d="M113 1011l34 -139h-80q-7 30 -35 139h81z" />
+<glyph unicode="a" horiz-adv-x="694" d="M521 580q51 0 86.5 -35.5t35.5 -85.5v-459h-470q-50 0 -85.5 35.5t-35.5 85.5v210h508v128q0 16 -11.5 27.5t-27.5 11.5h-469v82h469zM560 82v167h-426v-128q0 -16 11.5 -27.5t27.5 -11.5h387z" />
+<glyph unicode="b" horiz-adv-x="667" d="M524 580q50 0 85.5 -35.5t35.5 -85.5v-338q0 -50 -35.5 -85.5t-85.5 -35.5h-470v770h82v-190h388zM563 121v338q0 16 -11.5 27.5t-27.5 11.5h-348q-16 0 -28 -11.5t-12 -27.5v-338q0 -16 12 -27.5t28 -11.5h348q16 0 27.5 11.5t11.5 27.5z" />
+<glyph unicode="c" horiz-adv-x="695" d="M172 82h470v-82h-470q-50 0 -85.5 35.5t-35.5 85.5v338q0 50 35.5 85.5t85.5 35.5h468v-82h-468q-16 0 -27.5 -11.5t-11.5 -27.5v-338q0 -16 11.5 -27.5t27.5 -11.5z" />
+<glyph unicode="d" horiz-adv-x="667" d="M532 770h82v-770h-469q-51 0 -86.5 35.5t-35.5 85.5v338q0 50 35.5 85.5t86.5 35.5h387v190zM145 82h348q16 0 27.5 11.5t11.5 27.5v338q0 16 -11.5 27.5t-27.5 11.5h-348q-16 0 -27.5 -11.5t-11.5 -27.5v-338q0 -16 11.5 -27.5t27.5 -11.5z" />
+<glyph unicode="e" horiz-adv-x="692" d="M520 580q51 0 86.5 -35.5t35.5 -85.5v-210h-509v-128q0 -16 11.5 -27.5t27.5 -11.5h470v-82h-470q-50 0 -85.5 35.5t-35.5 85.5v338q0 50 35.5 85.5t85.5 35.5h348zM133 331h426v128q0 16 -11.5 27.5t-27.5 11.5h-348q-16 0 -27.5 -11.5t-11.5 -27.5v-128z" />
+<glyph unicode="f" horiz-adv-x="407" d="M174 688q-16 0 -27.5 -11.5t-11.5 -27.5v-69h251v-82h-251v-498h-82v649q0 51 35 86t86 35h212v-82h-212z" />
+<glyph unicode="g" horiz-adv-x="683" d="M631 -107q0 -51 -35 -86.5t-86 -35.5h-362v83h362q16 0 27.5 11.5t11.5 27.5v107h-387q-50 0 -85.5 35.5t-35.5 85.5v338q0 50 35.5 85.5t85.5 35.5h348q51 0 86 -35.5t35 -85.5v-566zM162 82h348q16 0 27.5 11.5t11.5 27.5v338q0 16 -11.5 27.5t-27.5 11.5h-348 q-16 0 -27.5 -11.5t-11.5 -27.5v-338q0 -16 11.5 -27.5t27.5 -11.5z" />
+<glyph unicode="h" horiz-adv-x="668" d="M524 580q50 0 85.5 -35.5t35.5 -85.5v-459h-82v459q0 16 -11.5 27.5t-27.5 11.5h-348q-16 0 -28 -11.5t-12 -27.5v-459h-82v770h82v-190h388z" />
+<glyph unicode="i" horiz-adv-x="208" d="M52 0v580h82v-580h-82zM52 770h82v-82h-82v82z" />
+<glyph unicode="j" horiz-adv-x="239" d="M97 770h83v-82h-83v82zM180 580v-701q0 -51 -35.5 -86.5t-86.5 -35.5h-245v83h245q16 0 27.5 11.5t11.5 27.5v701h83z" />
+<glyph unicode="k" horiz-adv-x="646" d="M524 580h108l-263 -290l262 -290h-107l-228 249h-160v-249h-82v770h82v-439h160z" />
+<glyph unicode="l" horiz-adv-x="302" d="M52 770h82v-649q0 -16 11.5 -27.5t27.5 -11.5h98v-82h-98q-50 0 -85.5 35.5t-35.5 85.5v649z" />
+<glyph unicode="m" horiz-adv-x="978" d="M820 580q51 0 86 -35.5t35 -85.5v-459h-81v459q0 16 -12 27.5t-28 11.5h-241q-16 0 -27.5 -11.5t-11.5 -27.5v-459h-83v459q0 16 -11.5 27.5t-27.5 11.5h-242q-16 0 -27.5 -11.5t-11.5 -27.5v-459h-83v580h766z" />
+<glyph unicode="n" horiz-adv-x="696" d="M524 580q50 0 85.5 -35.5t35.5 -85.5v-459h-82v459q0 16 -11.5 27.5t-27.5 11.5h-348q-16 0 -28 -11.5t-12 -27.5v-459h-82v580h470z" />
+<glyph unicode="o" horiz-adv-x="692" d="M172 580h348q51 0 86.5 -35.5t35.5 -85.5v-338q0 -50 -35.5 -85.5t-86.5 -35.5h-348q-50 0 -85.5 35.5t-35.5 85.5v338q0 50 35.5 85.5t85.5 35.5zM520 498h-348q-16 0 -27.5 -11.5t-11.5 -27.5v-338q0 -16 11.5 -27.5t27.5 -11.5h348q16 0 27.5 11.5t11.5 27.5v338 q0 16 -11.5 27.5t-27.5 11.5z" />
+<glyph unicode="p" horiz-adv-x="664" d="M524 580q50 0 85.5 -35.5t35.5 -85.5v-338q0 -50 -35.5 -85.5t-85.5 -35.5h-388v-230h-82v810h470zM563 121v338q0 16 -11.5 27.5t-27.5 11.5h-348q-16 0 -28 -11.5t-12 -27.5v-338q0 -16 12 -27.5t28 -11.5h348q16 0 27.5 11.5t11.5 27.5z" />
+<glyph unicode="q" horiz-adv-x="664" d="M20 459q0 50 35.5 85.5t86.5 35.5h469v-810h-82v230h-387q-51 0 -86.5 35.5t-35.5 85.5v338zM103 459v-338q0 -16 11.5 -27.5t27.5 -11.5h348q16 0 27.5 11.5t11.5 27.5v338q0 16 -11.5 27.5t-27.5 11.5h-348q-16 0 -27.5 -11.5t-11.5 -27.5z" />
+<glyph unicode="r" horiz-adv-x="512" d="M173 580h326v-82h-326q-16 0 -27.5 -11.5t-11.5 -27.5v-459h-82v459q0 50 35.5 85.5t85.5 35.5z" />
+<glyph unicode="s" horiz-adv-x="686" d="M639 459v-8h-83v8q0 16 -11.5 27.5t-27.5 11.5h-348q-16 0 -27.5 -11.5t-11.5 -27.5v-89q0 -16 11.5 -27.5t27.5 -11.5h348q51 0 86.5 -35.5t35.5 -85.5v-89q0 -50 -35.5 -85.5t-86.5 -35.5h-348q-50 0 -85.5 35.5t-35.5 85.5v8h82v-8q0 -16 11.5 -27.5t27.5 -11.5h348 q16 0 27.5 11.5t11.5 27.5v89q0 16 -11.5 27.5t-27.5 11.5h-348q-50 0 -85.5 35.5t-35.5 85.5v89q0 50 35.5 85.5t85.5 35.5h348q51 0 86.5 -35.5t35.5 -85.5z" />
+<glyph unicode="t" horiz-adv-x="410" d="M386 498h-251v-377q0 -16 11.5 -27.5t27.5 -11.5h212v-82h-212q-51 0 -86 35.5t-35 85.5v649h82v-190h251v-82z" />
+<glyph unicode="u" horiz-adv-x="695" d="M562 580h82v-459q0 -50 -35.5 -85.5t-86.5 -35.5h-348q-50 0 -85.5 35.5t-35.5 85.5v459h82v-459q0 -16 11.5 -27.5t27.5 -11.5h348q16 0 28 11.5t12 27.5v459z" />
+<glyph unicode="v" horiz-adv-x="790" d="M661 580h96l-321 -580h-95q-56 104 -163.5 297.5t-156.5 282.5h96l272 -500z" />
+<glyph unicode="w" horiz-adv-x="1071" d="M957 580h89l-219 -580h-71l-216 479l-205 -479h-72q-18 46 -228 580h88l176 -432l187 432h108l199 -431z" />
+<glyph unicode="x" horiz-adv-x="692" d="M531 580h107l-242 -285l243 -295h-108l-189 232q-27 -33 -92 -113.5t-96 -118.5h-108l242 295l-242 285h108l188 -220q71 84 189 220z" />
+<glyph unicode="y" horiz-adv-x="685" d="M632 -108q0 -51 -35 -86.5t-86 -35.5h-362v83h362q16 0 27.5 11.5t11.5 27.5v108h-387q-50 0 -85.5 35.5t-35.5 85.5v457h82v-457q0 -16 11.5 -27.5t27.5 -11.5h348q16 0 27.5 11.5t11.5 27.5v457h82v-686z" />
+<glyph unicode="z" horiz-adv-x="698" d="M54 498v82h591v-112l-501 -386h501v-82h-591v112l501 386h-501z" />
+<glyph unicode="{" horiz-adv-x="289" d="M152 291v-170q0 -16 11.5 -27.5t27.5 -11.5h29v-82h-29q-50 0 -85.5 35.5t-35.5 85.5v163q-6 4 -23 14.5t-24 14.5v96l47 25v164q0 51 35.5 86.5t85.5 35.5h29v-83h-29q-16 0 -27.5 -11.5t-11.5 -27.5v-171l-84 -67z" />
+<glyph unicode="|" horiz-adv-x="214" d="M54 -115v957h82v-957h-82z" />
+<glyph unicode="}" horiz-adv-x="289" d="M119 121v169l84 69l-84 66v173q0 16 -11.5 27.5t-27.5 11.5h-29v83h29q50 0 85.5 -35.5t35.5 -86.5v-164q8 -4 25 -14.5t21 -12.5v-95l-46 -29v-162q0 -50 -35.5 -85.5t-85.5 -35.5h-29v82h29q16 0 27.5 11.5t11.5 27.5z" />
+<glyph unicode="~" horiz-adv-x="404" d="M295 283h2q32 0 66 16v-41q-35 -13 -66 -13q-35 0 -102.5 35.5t-108.5 35.5q-39 0 -62 -8v37q27 9 62 9q40 0 107 -33.5t102 -37.5z" />
+<glyph unicode="&#xa1;" horiz-adv-x="210" d="M135 728v-83h-82v83h82zM135 0h-82v517h82v-517z" />
+<glyph unicode="&#xa2;" horiz-adv-x="636" d="M621 508h-252v-426h252v-82h-252v-115h-82v115h-133q-51 0 -86 35.5t-35 85.5v348q0 51 35 86.5t86 35.5h133v135h82v-135h252v-83zM287 82v426h-133q-16 0 -27.5 -11.5t-11.5 -27.5v-348q0 -16 11.5 -27.5t27.5 -11.5h133z" />
+<glyph unicode="&#xa3;" horiz-adv-x="734" d="M691 583h-83v15q0 16 -11.5 27.5t-27.5 11.5h-303q-16 0 -27.5 -11.5t-11.5 -27.5v-193h352v-82h-352v-241h464v-82h-652v82h105v241h-105v82h105v193q0 51 35.5 86.5t86.5 35.5h303q51 0 86.5 -35.5t35.5 -86.5v-15z" />
+<glyph unicode="&#xa8;" horiz-adv-x="385" d="M316 954v-82h-82v82h82zM137 954v-82h-83v82h83z" />
+<glyph unicode="&#xb0;" horiz-adv-x="439" d="M167 728h94q51 0 86.5 -35.5t35.5 -86.5v-84q0 -50 -35.5 -85.5t-86.5 -35.5h-94q-51 0 -86.5 35.5t-35.5 85.5v84q0 51 35.5 86.5t86.5 35.5zM145 462h138q16 0 27.5 11.5t11.5 27.5v126q0 16 -11.5 27.5t-27.5 11.5h-138q-16 0 -27.5 -11.5t-11.5 -27.5v-126 q0 -16 11.5 -27.5t27.5 -11.5z" />
+<glyph unicode="&#xb4;" horiz-adv-x="213" d="M33 872l35 139h79l-34 -139h-80z" />
+<glyph unicode="&#xb6;" horiz-adv-x="833" d="M56 605q0 51 35 86.5t86 35.5h606v-727h-82v271h-138v-271h-82v271h-304q-51 0 -86 35.5t-35 85.5v213zM563 644v-291h138v291h-138zM138 605v-213q0 -16 11.5 -27.5t27.5 -11.5h304v291h-304q-16 0 -27.5 -11.5t-11.5 -27.5z" />
+<glyph unicode="&#xb8;" horiz-adv-x="213" d="M33 -171l35 139h79l-34 -139h-80z" />
+<glyph unicode="&#xbf;" horiz-adv-x="675" d="M656 -8l-516 8q-51 0 -86 35.5t-35 85.5v194q0 51 35 86.5t86 35.5h273q16 0 27.5 11.5t11.5 27.5v48h82v-48q0 -51 -35 -86.5t-86 -35.5h-273q-16 0 -27.5 -11.5t-11.5 -27.5v-194q0 -16 11.5 -27.5t27.5 -11.5h508q0 -29 2 -51.5t4 -30.5zM534 728v-83h-82v83h82z" />
+<glyph unicode="&#xc0;" horiz-adv-x="836" d="M178 720h480q50 0 85 -35t35 -85v-600h-81v263h-558v-263h-81v600q0 50 35 85t85 35zM139 344h558v256q0 16 -11.5 27.5t-27.5 11.5h-480q-16 0 -27.5 -11.5t-11.5 -27.5v-256zM425 1004l34 -139h-80q-7 30 -35 139h81z" />
+<glyph unicode="&#xc1;" horiz-adv-x="836" d="M178 720h480q50 0 85 -35t35 -85v-600h-81v263h-558v-263h-81v600q0 50 35 85t85 35zM139 344h558v256q0 16 -11.5 27.5t-27.5 11.5h-480q-16 0 -27.5 -11.5t-11.5 -27.5v-256zM344 864l35 139h79l-34 -139h-80z" />
+<glyph unicode="&#xc2;" horiz-adv-x="836" d="M178 720h480q50 0 85 -35t35 -85v-600h-81v263h-558v-263h-81v600q0 50 35 85t85 35zM139 344h558v256q0 16 -11.5 27.5t-27.5 11.5h-480q-16 0 -27.5 -11.5t-11.5 -27.5v-256zM337 864h-41l71 117h59l71 -117h-42l-58 85z" />
+<glyph unicode="&#xc3;" horiz-adv-x="836" d="M178 720h480q50 0 85 -35t35 -85v-600h-81v263h-558v-263h-81v600q0 50 35 85t85 35zM139 344h558v256q0 16 -11.5 27.5t-27.5 11.5h-480q-16 0 -27.5 -11.5t-11.5 -27.5v-256zM513 917h2q30 0 66 17v-51q-38 -14 -66 -14q-35 0 -102 36t-109 36q-39 0 -62 -8v47 q27 9 62 9q40 0 107 -33.5t102 -38.5z" />
+<glyph unicode="&#xc4;" horiz-adv-x="836" d="M178 720h480q50 0 85 -35t35 -85v-600h-81v263h-558v-263h-81v600q0 50 35 85t85 35zM139 344h558v256q0 16 -11.5 27.5t-27.5 11.5h-480q-16 0 -27.5 -11.5t-11.5 -27.5v-256zM541 937v-82h-82v82h82zM362 937v-82h-83v82h83z" />
+<glyph unicode="&#xc5;" horiz-adv-x="836" d="M178 720h480q50 0 85 -35t35 -85v-600h-81v263h-558v-263h-81v600q0 50 35 85t85 35zM139 344h558v256q0 16 -11.5 27.5t-27.5 11.5h-480q-16 0 -27.5 -11.5t-11.5 -27.5v-256zM390 981h56q22 0 38 -15.5t16 -37.5v-54q0 -22 -16 -37.5t-38 -15.5h-56q-22 0 -38 15.5 t-16 37.5v54q0 22 16 37.5t38 15.5zM385 861h66q9 0 9 10v60q0 10 -9 10h-66q-9 0 -9 -10v-60q0 -10 9 -10z" />
+<glyph unicode="&#xc6;" horiz-adv-x="1375" d="M774 639v-238h463v-82h-463v-238h576v-81h-657v263h-558v-263h-81v600q0 50 35 85t85 35h1176v-81h-576zM693 344v256q0 16 -11.5 27.5t-27.5 11.5h-480q-16 0 -27.5 -11.5t-11.5 -27.5v-256h558z" />
+<glyph unicode="&#xc7;" horiz-adv-x="822" d="M774 639h-598q-16 0 -27.5 -11.5t-11.5 -27.5v-480q0 -16 11.5 -27.5t27.5 -11.5h598v-81h-323l-34 -139h-80l35 139h-196q-50 0 -85 35t-35 85v480q0 50 35 85t85 35h598v-81z" />
+<glyph unicode="&#xc8;" horiz-adv-x="766" d="M715 720v-81h-576v-238h463v-82h-463v-238h576v-81h-657v720h657zM390 1004l34 -139h-80q-7 30 -35 139h81z" />
+<glyph unicode="&#xc9;" horiz-adv-x="766" d="M715 720v-81h-576v-238h463v-82h-463v-238h576v-81h-657v720h657zM309 865l35 139h79l-34 -139h-80z" />
+<glyph unicode="&#xca;" horiz-adv-x="766" d="M715 720v-81h-576v-238h463v-82h-463v-238h576v-81h-657v720h657zM302 864h-41l71 117h59l71 -117h-42l-58 85z" />
+<glyph unicode="&#xcb;" horiz-adv-x="766" d="M715 720v-81h-576v-238h463v-82h-463v-238h576v-81h-657v720h657zM506 947v-82h-82v82h82zM327 947v-82h-83v82h83z" />
+<glyph unicode="&#xcc;" horiz-adv-x="220" d="M57 0v720h81v-720h-81zM117 1004l34 -139h-80q-7 30 -35 139h81z" />
+<glyph unicode="&#xcd;" horiz-adv-x="220" d="M57 0v720h81v-720h-81zM36 865l35 139h79l-34 -139h-80z" />
+<glyph unicode="&#xce;" horiz-adv-x="220" d="M57 0v720h81v-720h-81zM29 864h-41l71 117h59l71 -117h-42l-58 85z" />
+<glyph unicode="&#xcf;" horiz-adv-x="220" d="M57 0v720h81v-720h-81zM233 947v-82h-82v82h82zM54 947v-82h-83v82h83z" />
+<glyph unicode="&#xd1;" horiz-adv-x="832" d="M695 92v628h81v-720h-111l-528 628v-628h-81v720h111zM511 917h2q30 0 66 17v-51q-38 -14 -66 -14q-35 0 -102 36t-109 36q-39 0 -62 -8v47q27 9 62 9q40 0 107 -33.5t102 -38.5z" />
+<glyph unicode="&#xd2;" d="M174 720h480q50 0 85 -35t35 -85v-480q0 -50 -35 -85t-85 -35h-480q-50 0 -85 35t-35 85v480q0 50 35 85t85 35zM174 81h480q16 0 27.5 11.5t11.5 27.5v480q0 16 -11.5 27.5t-27.5 11.5h-480q-16 0 -27.5 -11.5t-11.5 -27.5v-480q0 -16 11.5 -27.5t27.5 -11.5zM421 1004 l34 -139h-80q-7 30 -35 139h81z" />
+<glyph unicode="&#xd3;" d="M174 720h480q50 0 85 -35t35 -85v-480q0 -50 -35 -85t-85 -35h-480q-50 0 -85 35t-35 85v480q0 50 35 85t85 35zM174 81h480q16 0 27.5 11.5t11.5 27.5v480q0 16 -11.5 27.5t-27.5 11.5h-480q-16 0 -27.5 -11.5t-11.5 -27.5v-480q0 -16 11.5 -27.5t27.5 -11.5zM340 865 l35 139h79l-34 -139h-80z" />
+<glyph unicode="&#xd4;" d="M174 720h480q50 0 85 -35t35 -85v-480q0 -50 -35 -85t-85 -35h-480q-50 0 -85 35t-35 85v480q0 50 35 85t85 35zM174 81h480q16 0 27.5 11.5t11.5 27.5v480q0 16 -11.5 27.5t-27.5 11.5h-480q-16 0 -27.5 -11.5t-11.5 -27.5v-480q0 -16 11.5 -27.5t27.5 -11.5zM333 864 h-41l71 117h59l71 -117h-42l-58 85z" />
+<glyph unicode="&#xd5;" d="M174 720h480q50 0 85 -35t35 -85v-480q0 -50 -35 -85t-85 -35h-480q-50 0 -85 35t-35 85v480q0 50 35 85t85 35zM174 81h480q16 0 27.5 11.5t11.5 27.5v480q0 16 -11.5 27.5t-27.5 11.5h-480q-16 0 -27.5 -11.5t-11.5 -27.5v-480q0 -16 11.5 -27.5t27.5 -11.5zM509 917h2 q30 0 66 17v-51q-38 -14 -66 -14q-35 0 -102 36t-109 36q-39 0 -62 -8v47q27 9 62 9q40 0 107 -33.5t102 -38.5z" />
+<glyph unicode="&#xd6;" d="M174 720h480q50 0 85 -35t35 -85v-480q0 -50 -35 -85t-85 -35h-480q-50 0 -85 35t-35 85v480q0 50 35 85t85 35zM174 81h480q16 0 27.5 11.5t11.5 27.5v480q0 16 -11.5 27.5t-27.5 11.5h-480q-16 0 -27.5 -11.5t-11.5 -27.5v-480q0 -16 11.5 -27.5t27.5 -11.5zM537 947 v-82h-82v82h82zM358 947v-82h-83v82h83z" />
+<glyph unicode="&#xd7;" horiz-adv-x="546" d="M266 362q87 118 106 144h106l-158 -205l158 -206h-106l-106 144q-18 -25 -58 -79.5t-47 -64.5h-107l158 206q-27 36 -82.5 107t-76.5 98h108z" />
+<glyph unicode="&#xd9;" d="M693 120v600h81v-600q0 -50 -35 -85t-85 -35h-480q-50 0 -85 35t-35 85v600h81v-600q0 -16 11.5 -27.5t27.5 -11.5h480q16 0 27.5 11.5t11.5 27.5zM421 1004l34 -139h-80q-7 30 -35 139h81z" />
+<glyph unicode="&#xda;" d="M693 120v600h81v-600q0 -50 -35 -85t-85 -35h-480q-50 0 -85 35t-35 85v600h81v-600q0 -16 11.5 -27.5t27.5 -11.5h480q16 0 27.5 11.5t11.5 27.5zM340 865l35 139h79l-34 -139h-80z" />
+<glyph unicode="&#xdb;" d="M693 120v600h81v-600q0 -50 -35 -85t-85 -35h-480q-50 0 -85 35t-35 85v600h81v-600q0 -16 11.5 -27.5t27.5 -11.5h480q16 0 27.5 11.5t11.5 27.5zM333 864h-41l71 117h59l71 -117h-42l-58 85z" />
+<glyph unicode="&#xdc;" d="M693 120v600h81v-600q0 -50 -35 -85t-85 -35h-480q-50 0 -85 35t-35 85v600h81v-600q0 -16 11.5 -27.5t27.5 -11.5h480q16 0 27.5 11.5t11.5 27.5zM537 947v-82h-82v82h82zM358 947v-82h-83v82h83z" />
+<glyph unicode="&#xdd;" horiz-adv-x="806" d="M665 720h95l-331 -449v-271h-81v271q-103 142 -331 449h93l279 -352q50 64 276 352zM329 865l35 139h79l-34 -139h-80z" />
+<glyph unicode="&#xdf;" horiz-adv-x="833" d="M784 626v-171q0 -40 -30 -81q30 -39 30 -80v-173q0 -50 -35.5 -85.5t-85.5 -35.5h-379v82h379q16 0 27.5 11.5t11.5 27.5v173q0 16 -11.5 27.5t-27.5 11.5h-379v71h379q16 0 27.5 11.5t11.5 27.5v162q0 16 -11.5 27.5t-27.5 11.5h-485q-16 0 -27.5 -11.5t-11.5 -27.5 v-605h-82v606q0 51 35 86.5t86 35.5h485q40 0 74.5 -30.5t46.5 -71.5z" />
+<glyph unicode="&#xe0;" horiz-adv-x="725" d="M521 580q51 0 86.5 -35.5t35.5 -85.5v-459h-470q-50 0 -85.5 35.5t-35.5 85.5v210h508v128q0 16 -11.5 27.5t-27.5 11.5h-469v82h469zM560 82v167h-426v-128q0 -16 11.5 -27.5t27.5 -11.5h387zM369 902l34 -139h-80q-7 30 -35 139h81z" />
+<glyph unicode="&#xe1;" horiz-adv-x="725" d="M521 580q51 0 86.5 -35.5t35.5 -85.5v-459h-470q-50 0 -85.5 35.5t-35.5 85.5v210h508v128q0 16 -11.5 27.5t-27.5 11.5h-469v82h469zM560 82v167h-426v-128q0 -16 11.5 -27.5t27.5 -11.5h387zM288 763l35 139h79l-34 -139h-80z" />
+<glyph unicode="&#xe2;" horiz-adv-x="725" d="M521 580q51 0 86.5 -35.5t35.5 -85.5v-459h-470q-50 0 -85.5 35.5t-35.5 85.5v210h508v128q0 16 -11.5 27.5t-27.5 11.5h-469v82h469zM560 82v167h-426v-128q0 -16 11.5 -27.5t27.5 -11.5h387zM281 763h-41l71 117h59l71 -117h-42l-58 85z" />
+<glyph unicode="&#xe3;" horiz-adv-x="725" d="M521 580q51 0 86.5 -35.5t35.5 -85.5v-459h-470q-50 0 -85.5 35.5t-35.5 85.5v210h508v128q0 16 -11.5 27.5t-27.5 11.5h-469v82h469zM560 82v167h-426v-128q0 -16 11.5 -27.5t27.5 -11.5h387zM457 814h2q30 0 66 17v-51q-38 -14 -66 -14q-35 0 -102 36t-109 36 q-39 0 -62 -8v47q27 9 62 9q40 0 107 -33.5t102 -38.5z" />
+<glyph unicode="&#xe4;" horiz-adv-x="725" d="M521 580q51 0 86.5 -35.5t35.5 -85.5v-459h-470q-50 0 -85.5 35.5t-35.5 85.5v210h508v128q0 16 -11.5 27.5t-27.5 11.5h-469v82h469zM560 82v167h-426v-128q0 -16 11.5 -27.5t27.5 -11.5h387zM485 845v-82h-82v82h82zM306 845v-82h-83v82h83z" />
+<glyph unicode="&#xe5;" horiz-adv-x="725" d="M521 580q51 0 86.5 -35.5t35.5 -85.5v-459h-470q-50 0 -85.5 35.5t-35.5 85.5v210h508v128q0 16 -11.5 27.5t-27.5 11.5h-469v82h469zM560 82v167h-426v-128q0 -16 11.5 -27.5t27.5 -11.5h387zM334 878h56q22 0 38 -15.5t16 -37.5v-54q0 -22 -16 -37.5t-38 -15.5h-56 q-22 0 -38 15.5t-16 37.5v54q0 22 16 37.5t38 15.5zM329 758h66q9 0 9 10v60q0 10 -9 10h-66q-9 0 -9 -10v-60q0 -10 9 -10z" />
+<glyph unicode="&#xe6;" horiz-adv-x="1178" d="M1030 580q51 0 86 -35.5t35 -85.5v-210h-508v-132q1 -15 12.5 -25t26.5 -10h469v-82h-977q-51 0 -86 35.5t-35 85.5v210h508v128q0 16 -11.5 27.5t-27.5 11.5h-469v82h977zM561 82v167h-426v-128q0 -16 11.5 -27.5t27.5 -11.5h387zM643 331h426v128q0 16 -11.5 27.5 t-27.5 11.5h-348q-16 0 -27.5 -11.5t-11.5 -27.5v-128z" />
+<glyph unicode="&#xe7;" horiz-adv-x="693" d="M172 82h470v-82h-256l-34 -139h-80l35 139h-135q-50 0 -85.5 35.5t-35.5 85.5v338q0 50 35.5 85.5t85.5 35.5h468v-82h-468q-16 0 -27.5 -11.5t-11.5 -27.5v-338q0 -16 11.5 -27.5t27.5 -11.5z" />
+<glyph unicode="&#xe8;" horiz-adv-x="638" d="M520 580q51 0 86.5 -35.5t35.5 -85.5v-210h-509v-128q0 -16 11.5 -27.5t27.5 -11.5h470v-82h-470q-50 0 -85.5 35.5t-35.5 85.5v338q0 50 35.5 85.5t85.5 35.5h348zM133 331h426v128q0 16 -11.5 27.5t-27.5 11.5h-348q-16 0 -27.5 -11.5t-11.5 -27.5v-128zM326 902 l34 -139h-80q-7 30 -35 139h81z" />
+<glyph unicode="&#xe9;" horiz-adv-x="638" d="M520 580q51 0 86.5 -35.5t35.5 -85.5v-210h-509v-128q0 -16 11.5 -27.5t27.5 -11.5h470v-82h-470q-50 0 -85.5 35.5t-35.5 85.5v338q0 50 35.5 85.5t85.5 35.5h348zM133 331h426v128q0 16 -11.5 27.5t-27.5 11.5h-348q-16 0 -27.5 -11.5t-11.5 -27.5v-128zM245 764 l35 139h79l-34 -139h-80z" />
+<glyph unicode="&#xea;" horiz-adv-x="638" d="M520 580q51 0 86.5 -35.5t35.5 -85.5v-210h-509v-128q0 -16 11.5 -27.5t27.5 -11.5h470v-82h-470q-50 0 -85.5 35.5t-35.5 85.5v338q0 50 35.5 85.5t85.5 35.5h348zM133 331h426v128q0 16 -11.5 27.5t-27.5 11.5h-348q-16 0 -27.5 -11.5t-11.5 -27.5v-128zM238 763h-41 l71 117h59l71 -117h-42l-58 85z" />
+<glyph unicode="&#xeb;" horiz-adv-x="638" d="M520 580q51 0 86.5 -35.5t35.5 -85.5v-210h-509v-128q0 -16 11.5 -27.5t27.5 -11.5h470v-82h-470q-50 0 -85.5 35.5t-35.5 85.5v338q0 50 35.5 85.5t85.5 35.5h348zM133 331h426v128q0 16 -11.5 27.5t-27.5 11.5h-348q-16 0 -27.5 -11.5t-11.5 -27.5v-128zM442 845v-82 h-82v82h82zM263 845v-82h-83v82h83z" />
+<glyph unicode="&#xec;" horiz-adv-x="214" d="M56 0v580h82v-580h-82zM97 903l34 -139h-80q-7 30 -35 139h81z" />
+<glyph unicode="&#xed;" horiz-adv-x="214" d="M51 0v580h82v-580h-82zM49 763l35 139h79l-34 -139h-80z" />
+<glyph unicode="&#xee;" horiz-adv-x="214" d="M51 0v580h82v-580h-82zM26 763h-41l71 117h59l71 -117h-42l-58 85z" />
+<glyph unicode="&#xef;" horiz-adv-x="214" d="M55 0v580h82v-580h-82zM230 847v-82h-82v82h82zM51 847v-82h-83v82h83z" />
+<glyph unicode="&#xf1;" horiz-adv-x="708" d="M524 580q50 0 85.5 -35.5t35.5 -85.5v-459h-82v459q0 16 -11.5 27.5t-27.5 11.5h-348q-16 0 -28 -11.5t-12 -27.5v-459h-82v580h470zM449 813h2q30 0 66 17v-51q-38 -14 -66 -14q-35 0 -102 36t-109 36q-39 0 -62 -8v47q27 9 62 9q40 0 107 -33.5t102 -38.5z" />
+<glyph unicode="&#xf2;" horiz-adv-x="692" d="M172 580h348q51 0 86.5 -35.5t35.5 -85.5v-338q0 -50 -35.5 -85.5t-86.5 -35.5h-348q-50 0 -85.5 35.5t-35.5 85.5v338q0 50 35.5 85.5t85.5 35.5zM520 498h-348q-16 0 -27.5 -11.5t-11.5 -27.5v-338q0 -16 11.5 -27.5t27.5 -11.5h348q16 0 27.5 11.5t11.5 27.5v338 q0 16 -11.5 27.5t-27.5 11.5zM353 903l34 -139h-80q-7 30 -35 139h81z" />
+<glyph unicode="&#xf3;" horiz-adv-x="692" d="M172 580h348q51 0 86.5 -35.5t35.5 -85.5v-338q0 -50 -35.5 -85.5t-86.5 -35.5h-348q-50 0 -85.5 35.5t-35.5 85.5v338q0 50 35.5 85.5t85.5 35.5zM520 498h-348q-16 0 -27.5 -11.5t-11.5 -27.5v-338q0 -16 11.5 -27.5t27.5 -11.5h348q16 0 27.5 11.5t11.5 27.5v338 q0 16 -11.5 27.5t-27.5 11.5zM272 764l35 139h79l-34 -139h-80z" />
+<glyph unicode="&#xf4;" horiz-adv-x="692" d="M172 580h348q51 0 86.5 -35.5t35.5 -85.5v-338q0 -50 -35.5 -85.5t-86.5 -35.5h-348q-50 0 -85.5 35.5t-35.5 85.5v338q0 50 35.5 85.5t85.5 35.5zM520 498h-348q-16 0 -27.5 -11.5t-11.5 -27.5v-338q0 -16 11.5 -27.5t27.5 -11.5h348q16 0 27.5 11.5t11.5 27.5v338 q0 16 -11.5 27.5t-27.5 11.5zM265 763h-41l71 117h59l71 -117h-42l-58 85z" />
+<glyph unicode="&#xf5;" horiz-adv-x="692" d="M172 580h348q51 0 86.5 -35.5t35.5 -85.5v-338q0 -50 -35.5 -85.5t-86.5 -35.5h-348q-50 0 -85.5 35.5t-35.5 85.5v338q0 50 35.5 85.5t85.5 35.5zM520 498h-348q-16 0 -27.5 -11.5t-11.5 -27.5v-338q0 -16 11.5 -27.5t27.5 -11.5h348q16 0 27.5 11.5t11.5 27.5v338 q0 16 -11.5 27.5t-27.5 11.5zM441 813h2q30 0 66 17v-51q-38 -14 -66 -14q-35 0 -102 36t-109 36q-39 0 -62 -8v47q27 9 62 9q40 0 107 -33.5t102 -38.5z" />
+<glyph unicode="&#xf6;" horiz-adv-x="692" d="M172 580h348q51 0 86.5 -35.5t35.5 -85.5v-338q0 -50 -35.5 -85.5t-86.5 -35.5h-348q-50 0 -85.5 35.5t-35.5 85.5v338q0 50 35.5 85.5t85.5 35.5zM520 498h-348q-16 0 -27.5 -11.5t-11.5 -27.5v-338q0 -16 11.5 -27.5t27.5 -11.5h348q16 0 27.5 11.5t11.5 27.5v338 q0 16 -11.5 27.5t-27.5 11.5zM469 847v-82h-82v82h82zM290 847v-82h-83v82h83z" />
+<glyph unicode="&#xf7;" horiz-adv-x="508" d="M492 337v-82h-474v82h474zM215 83h82v-82h-82v82zM297 579v-82h-82v82h82z" />
+<glyph unicode="&#xf9;" horiz-adv-x="695" d="M562 580h82v-459q0 -50 -35.5 -85.5t-86.5 -35.5h-348q-50 0 -85.5 35.5t-35.5 85.5v459h82v-459q0 -16 11.5 -27.5t27.5 -11.5h348q16 0 28 11.5t12 27.5v459zM354 903l34 -139h-80q-7 30 -35 139h81z" />
+<glyph unicode="&#xfa;" horiz-adv-x="695" d="M562 580h82v-459q0 -50 -35.5 -85.5t-86.5 -35.5h-348q-50 0 -85.5 35.5t-35.5 85.5v459h82v-459q0 -16 11.5 -27.5t27.5 -11.5h348q16 0 28 11.5t12 27.5v459zM273 764l35 139h79l-34 -139h-80z" />
+<glyph unicode="&#xfb;" horiz-adv-x="695" d="M562 580h82v-459q0 -50 -35.5 -85.5t-86.5 -35.5h-348q-50 0 -85.5 35.5t-35.5 85.5v459h82v-459q0 -16 11.5 -27.5t27.5 -11.5h348q16 0 28 11.5t12 27.5v459zM266 764h-41l71 117h59l71 -117h-42l-58 85z" />
+<glyph unicode="&#xfc;" horiz-adv-x="695" d="M562 580h82v-459q0 -50 -35.5 -85.5t-86.5 -35.5h-348q-50 0 -85.5 35.5t-35.5 85.5v459h82v-459q0 -16 11.5 -27.5t27.5 -11.5h348q16 0 28 11.5t12 27.5v459zM470 845v-82h-82v82h82zM291 845v-82h-83v82h83z" />
+<glyph unicode="&#xfd;" horiz-adv-x="688" d="M632 -108q0 -51 -35 -86.5t-86 -35.5h-362v83h362q16 0 27.5 11.5t11.5 27.5v108h-387q-50 0 -85.5 35.5t-35.5 85.5v457h82v-457q0 -16 11.5 -27.5t27.5 -11.5h348q16 0 27.5 11.5t11.5 27.5v457h82v-686zM270 764l35 139h79l-34 -139h-80z" />
+<glyph unicode="&#xff;" horiz-adv-x="688" d="M632 -108q0 -51 -35 -86.5t-86 -35.5h-362v83h362q16 0 27.5 11.5t11.5 27.5v108h-387q-50 0 -85.5 35.5t-35.5 85.5v457h82v-457q0 -16 11.5 -27.5t27.5 -11.5h348q16 0 27.5 11.5t11.5 27.5v457h82v-686zM467 847v-82h-82v82h82zM288 847v-82h-83v82h83z" />
+<glyph unicode="&#x131;" horiz-adv-x="214" d="M52 0v580h82v-580h-82z" />
+<glyph unicode="&#x152;" horiz-adv-x="1374" d="M773 639v-238h463v-82h-463v-238h576v-81h-1176q-50 0 -85 35t-35 85v480q0 50 35 85t85 35h1176v-81h-576zM653 81q16 0 27.5 11.5t11.5 27.5v480q0 16 -11.5 27.5t-27.5 11.5h-480q-16 0 -27.5 -11.5t-11.5 -27.5v-480q0 -16 11.5 -27.5t27.5 -11.5h480z" />
+<glyph unicode="&#x153;" horiz-adv-x="1177" d="M1150 249h-508v-128q0 -16 11.5 -27.5t27.5 -11.5h469v-82h-977q-51 0 -86 35.5t-35 85.5v338q0 50 35 85.5t86 35.5h856q51 0 86 -35.5t35 -85.5v-210zM681 498q-16 0 -27.5 -11.5t-11.5 -27.5v-128h426v128q0 16 -11.5 27.5t-27.5 11.5h-348zM521 82q16 0 27.5 11.5 t11.5 27.5v338q0 16 -11.5 27.5t-27.5 11.5h-348q-16 0 -27.5 -11.5t-11.5 -27.5v-338q0 -16 11.5 -27.5t27.5 -11.5h348z" />
+<glyph unicode="&#x160;" horiz-adv-x="822" d="M771 600v-28h-81v28q0 16 -11.5 27.5t-27.5 11.5h-480q-16 0 -27.5 -11.5t-11.5 -27.5v-161q0 -16 11.5 -27t27.5 -11h480q50 0 85 -35t35 -85v-161q0 -50 -35 -85t-85 -35h-480q-50 0 -85 35t-35 85v28h81v-28q0 -16 11.5 -27.5t27.5 -11.5h480q16 0 27.5 11.5 t11.5 27.5v161q0 16 -11.5 27t-27.5 11h-480q-50 0 -85 35t-35 85v161q0 50 35 85t85 35h480q50 0 85 -35t35 -85zM289 981h42l60 -85l58 85h41l-70 -117h-59z" />
+<glyph unicode="&#x161;" horiz-adv-x="687" d="M639 459v-8h-83v8q0 16 -11.5 27.5t-27.5 11.5h-348q-16 0 -27.5 -11.5t-11.5 -27.5v-89q0 -16 11.5 -27.5t27.5 -11.5h348q51 0 86.5 -35.5t35.5 -85.5v-89q0 -50 -35.5 -85.5t-86.5 -35.5h-348q-50 0 -85.5 35.5t-35.5 85.5v8h82v-8q0 -16 11.5 -27.5t27.5 -11.5h348 q16 0 27.5 11.5t11.5 27.5v89q0 16 -11.5 27.5t-27.5 11.5h-348q-50 0 -85.5 35.5t-35.5 85.5v89q0 50 35.5 85.5t85.5 35.5h348q51 0 86.5 -35.5t35.5 -85.5zM221 880h42l60 -85l58 85h41l-70 -117h-59z" />
+<glyph unicode="&#x178;" horiz-adv-x="806" d="M665 720h95l-331 -449v-271h-81v271q-103 142 -331 449h93l279 -352q50 64 276 352zM526 947v-82h-82v82h82zM347 947v-82h-83v82h83z" />
+<glyph unicode="&#x17d;" horiz-adv-x="821" d="M51 639v81h720v-111l-628 -528h628v-81h-720v111l628 528h-628zM288 981h42l60 -85l58 85h41l-70 -117h-59z" />
+<glyph unicode="&#x17e;" horiz-adv-x="698" d="M54 498v82h591v-112l-501 -386h501v-82h-591v112l501 386h-501zM227 883h42l60 -85l58 85h41l-70 -117h-59z" />
+<glyph unicode="&#x2c6;" horiz-adv-x="300" d="M69 871h-41l71 117h59l71 -117h-42l-58 85z" />
+<glyph unicode="&#x2c7;" horiz-adv-x="297" d="M27 988h42l60 -85l58 85h41l-70 -117h-59z" />
+<glyph unicode="&#x2d8;" horiz-adv-x="287" d="M194 939h31q-1 -27 -17.5 -47t-47.5 -20h-55q-30 0 -47 20t-18 47h32q0 -34 21 -34h80q21 0 21 28v6z" />
+<glyph unicode="&#x2d9;" horiz-adv-x="233" d="M86 989h38q17 0 29 -11.5t12 -28.5v-36q0 -17 -12 -28.5t-29 -11.5h-38q-17 0 -29 11.5t-12 28.5v36q0 17 12 28.5t29 11.5z" />
+<glyph unicode="&#x2da;" horiz-adv-x="233" d="M89 988h56q22 0 38 -15.5t16 -37.5v-54q0 -22 -16 -37.5t-38 -15.5h-56q-22 0 -38 15.5t-16 37.5v54q0 22 16 37.5t38 15.5zM84 868h66q9 0 9 10v60q0 10 -9 10h-66q-9 0 -9 -10v-60q0 -10 9 -10z" />
+<glyph unicode="&#x2dc;" horiz-adv-x="403" d="M294 924h2q30 0 66 17v-51q-38 -14 -66 -14q-35 0 -102 36t-109 36q-39 0 -62 -8v47q27 9 62 9q40 0 107 -33.5t102 -38.5z" />
+<glyph unicode="&#x2013;" horiz-adv-x="708" d="M655 336v-82h-601v82h601z" />
+<glyph unicode="&#x2014;" horiz-adv-x="822" d="M775 336v-82h-721v82h721z" />
+<glyph unicode="&#x2018;" horiz-adv-x="168" d="M116 503h-83v98q0 40 23 72t60 43v-213z" />
+<glyph unicode="&#x2019;" horiz-adv-x="166" d="M54 721h82v-98q0 -40 -23 -72t-59 -43v213z" />
+<glyph unicode="&#x201c;" horiz-adv-x="363" d="M130 502h-83v98q0 40 23 72t60 43v-213zM310 502h-82v98q0 40 22.5 72t59.5 43v-213z" />
+<glyph unicode="&#x201d;" horiz-adv-x="363" d="M235 721h82v-98q0 -40 -23 -72t-59 -43v213zM54 721h83v-98q0 -40 -23 -72t-60 -43v213z" />
+<glyph unicode="&#x2022;" horiz-adv-x="371" d="M172 403h25q29 0 29 -29v-21q0 -28 -29 -28h-25q-28 0 -28 28v21q0 29 28 29z" />
+<glyph unicode="&#x2026;" horiz-adv-x="574" d="M136 82v-82h-82v82h82zM514 82v-82h-83v82h83zM325 82v-82h-82v82h82z" />
+<glyph unicode="&#x20ac;" horiz-adv-x="799" d="M262 82h499v-82h-499q-51 0 -86.5 35.5t-35.5 85.5v109h-105v82h105v103h-105v83h105v101q0 51 35.5 86.5t86.5 35.5h499v-83h-499q-16 0 -27.5 -11.5t-11.5 -27.5v-101h424v-83h-424v-103h424v-82h-424v-109q0 -16 11.5 -27.5t27.5 -11.5z" />
+<glyph unicode="&#x2212;" horiz-adv-x="517" d="M449 337v-82h-390v82h390z" />
+<glyph unicode="&#xe000;" horiz-adv-x="580" d="M0 580h580v-580h-580v580z" />
+<glyph unicode="&#xe002;" horiz-adv-x="771" d="M46 -11l4 11h4zM50 721h723l-611 -721h-108l543 638h-547v83z" />
+<glyph unicode="&#xe003;" horiz-adv-x="784" d="M134 719h485q50 0 85.5 -35.5t35.5 -86.5v-597h-82v264q0 16 -11.5 27.5t-27.5 11.5h-485q-51 0 -86.5 35.5t-35.5 85.5v173q0 51 35.5 86.5t86.5 35.5zM658 385v212q0 16 -11.5 27.5t-27.5 11.5h-485q-16 0 -27.5 -11.5t-11.5 -27.5v-173q0 -16 11.5 -27.5t27.5 -11.5 h524z" />
+<glyph unicode="&#xe005;" horiz-adv-x="815" d="M775 488l-106 -55l-537 -273v-78h643v-82h-606q-42 0 -75.5 27.5t-43.5 67.5q0 19 -0.5 57.5t-0.5 58.5l644 327v100h-522q-16 0 -27.5 -11.5t-11.5 -27.5v-42h-83v42q0 51 35.5 86.5t86.5 35.5h485q40 0 73.5 -30.5t45.5 -71.5v-131z" />
+<glyph unicode="&#xe006;" horiz-adv-x="667" d="M146 720h380q50 0 85.5 -35.5t35.5 -86.5v-194q0 -50 -35.5 -85.5t-85.5 -35.5h-200q-16 0 -27.5 -11.5t-11.5 -27.5v-93h-83v93q0 51 35.5 86t86.5 35h200q16 0 27.5 11.5t11.5 27.5v194q0 16 -11.5 27.5t-27.5 11.5h-417v-114h-82v96q11 41 44.5 71t74.5 30zM287 0h-83 v82h83v-82z" />
+<glyph unicode="&#xe007;" horiz-adv-x="723" d="M593 268h112v-82h-112v-186h-82v186h-502v93l377 442h91v-31l-382 -422h416v157h82v-157z" />
+<glyph unicode="&#xe008;" horiz-adv-x="1168" d="M612 0l-612 720h108l533 -627v349l-240 278h106l534 -627v627h82v-720h-111l-288 343v-343h-112z" />
+<glyph unicode="&#xe009;" horiz-adv-x="1171" d="M1065 720h106l-610 -720h-112v343l-288 -343h-112v720h82v-627q80 95 263 308.5t271 318.5h105l-239 -278v-349q80 95 263 308.5t271 318.5z" />
+<glyph unicode="&#xe00a;" horiz-adv-x="774" d="M54 721h83v-628q80 96 263 309.5t270 318.5h107l-611 -721h-112v721z" />
+<glyph unicode="&#xe00b;" horiz-adv-x="774" d="M111 0h-107l612 721h112v-721h-83v202h-364zM645 629l-294 -344h294v344z" />
+<glyph unicode="&#xe00c;" horiz-adv-x="774" d="M54 721h112l612 -721h-108l-171 202h-362v-202h-83v721zM137 629v-344h295z" />
+<glyph horiz-adv-x="401" />
+<glyph horiz-adv-x="827" d="M837 0h-95l-105 183h-464q-18 -32 -55.5 -96.5t-50.5 -86.5h-95q17 32 386 720h94q65 -121 193 -359.5t192 -360.5zM405 644l-185 -380h368z" />
+<glyph horiz-adv-x="822" d="M770 620l3 -94h-81v113h-520q-16 0 -27.5 -11.5t-11.5 -27.5v-480q0 -16 11.5 -27.5t27.5 -11.5h520v113h78v-94q-12 -40 -45.5 -70t-72.5 -30h-480q-50 0 -85 35t-35 85v480q0 50 35 85t85 35h480q39 0 72.5 -30t45.5 -70z" />
+<glyph horiz-adv-x="818" d="M769 720v-81h-319v-558h319v-81h-720v81h319v558h-319v81h720z" />
+<glyph horiz-adv-x="645" d="M506 120v600h82v-600q0 -50 -35 -85t-85 -35h-465v81h465q16 0 27 11.5t11 27.5z" />
+<glyph horiz-adv-x="829" d="M694 436v284h81v-263q0 -35 -40.5 -67.5t-98.5 -32.5q58 0 98 -33t40 -67v-257h-81v278q0 15 -11.5 26.5t-27.5 11.5h-480q-16 0 -27.5 -11.5t-11.5 -26.5v-278h-81v720h81v-284q0 -16 11.5 -27t27.5 -11h481q16 0 27.5 11t11.5 27z" />
+<glyph horiz-adv-x="1155" d="M997 720q50 0 85 -35t35 -85v-600h-82v600q0 16 -11 27.5t-27 11.5h-383v-639h-82v600q0 16 -11 27.5t-27 11.5h-358v-639h-82v720h943z" />
+<glyph horiz-adv-x="827" d="M135 0h-81v720h600q50 0 85 -35t35 -85v-600h-81v600q0 16 -11.5 27.5t-27.5 11.5h-519v-639z" />
+<glyph horiz-adv-x="824" d="M172 720h480q50 0 85 -35t35 -85v-480q0 -50 -35 -85t-85 -35h-480q-50 0 -85 35t-35 85v480q0 50 35 85t85 35zM691 120v480q0 16 -11.5 27.5t-27.5 11.5h-480q-16 0 -27.5 -11.5t-11.5 -27.5v-480q0 -16 11.5 -27.5t27.5 -11.5h480q16 0 27.5 11.5t11.5 27.5zM453 319 h-82v82h82v-82z" />
+<glyph horiz-adv-x="868" d="M654 720q50 0 85 -35t35 -85v-480q0 -50 -35 -85t-85 -35h-199v-113h-82v113h-199q-50 0 -85 35t-35 85v480q0 50 35 85t85 35h480zM693 120v480q0 16 -11.5 27.5t-27.5 11.5h-480q-16 0 -27.5 -11.5t-11.5 -27.5v-480q0 -16 11.5 -27.5t27.5 -11.5h480q16 0 27.5 11.5 t11.5 27.5z" />
+<glyph horiz-adv-x="826" d="M774 599v-211q0 -26 -21.5 -45t-45 -26.5t-40.5 -7.5q31 0 69 -20.5t38 -58.5v-230h-81v230q0 15 -11.5 26.5t-27.5 11.5h-480q-16 0 -27.5 -11.5t-11.5 -26.5v-230h-81v720l600 -1q50 0 85 -35t35 -85zM654 638h-480q-16 0 -27.5 -11.5t-11.5 -27.5v-211q0 -16 11.5 -27 t27.5 -11h480q16 0 27.5 11t11.5 27v211q0 16 -11.5 27.5t-27.5 11.5z" />
+<glyph horiz-adv-x="812" d="M166 401h480q50 0 85 -35t35 -85v-161q0 -50 -35 -85t-85 -35h-600v81h600q16 0 27 11.5t11 27.5v161q0 16 -11 27t-27 11h-480q-50 0 -85 35t-35 85v161q0 50 35 85t85 35h600v-81h-600q-16 0 -27.5 -11.5t-11.5 -27.5v-161q0 -16 11.5 -27t27.5 -11z" />
+<glyph horiz-adv-x="774" d="M635 92v628h81v-720h-111l-605 720h107z" />
+<glyph horiz-adv-x="827" d="M692 720h81v-720h-600q-50 0 -85 35t-35 85v600h81v-600q0 -16 11.5 -27.5t27.5 -11.5h519v639z" />
+<glyph horiz-adv-x="1028" d="M518 421l-354 -421h-110v720h81v-628l383 457l383 -457v628h82v-720h-111z" />
+<glyph horiz-adv-x="1155" d="M173 0q-50 0 -85 35t-35 85v600h82v-600q0 -16 11.5 -27.5t26.5 -11.5h383v639h82v-600q0 -16 11 -27.5t27 -11.5h358v639h82v-720h-943z" />
+<glyph horiz-adv-x="829" d="M694 720h81v-263q0 -38 -42.5 -69t-96.5 -31q54 0 96 -31t42 -69v-257h-81v278q0 15 -11.5 26.5t-27.5 11.5h-479q-16 0 -27.5 -11.5t-11.5 -26.5v-278h-81v257q0 39 42 69.5t96 30.5q-54 0 -96.5 30.5t-42.5 69.5v263h81v-284q0 -16 11.5 -27t27.5 -11h481q16 0 27.5 11 t11.5 27v284z" />
+<glyph horiz-adv-x="824" d="M690 720h81v-600q0 -50 -35 -85t-85 -35h-600v81h600q16 0 27.5 11.5t11.5 27.5v161q0 16 -11.5 27t-27.5 11h-480q-50 0 -85 35t-35 85v281h81v-281q0 -16 11.5 -27t27.5 -11h519v319z" />
+<glyph horiz-adv-x="818" d="M169 401h480q16 0 27 11t11 27v161q0 16 -11 27.5t-27 11.5h-600v81h600q50 0 85 -35t35 -85v-161q0 -50 -35 -85t-85 -35h-480q-16 0 -27.5 -11t-11.5 -27v-161q0 -16 11.5 -27.5t27.5 -11.5h600v-81h-600q-50 0 -85 35t-35 85v161q0 50 35 85t85 35z" />
+<glyph horiz-adv-x="693" d="M520 580q51 0 86.5 -35.5t35.5 -85.5v-459h-470q-50 0 -85.5 35.5t-35.5 85.5v338q0 50 35.5 85.5t85.5 35.5h348zM172 82h387v377q0 16 -11.5 27.5t-27.5 11.5h-348q-16 0 -27.5 -11.5t-11.5 -27.5v-338q0 -16 11.5 -27.5t27.5 -11.5z" />
+<glyph horiz-adv-x="725" d="M174 580h380q50 0 85.5 -35.5t35.5 -85.5v-459h-82v160h-458v-160h-82v459q0 50 35.5 85.5t85.5 35.5zM135 243h458v216q0 16 -11.5 27.5t-27.5 11.5h-380q-16 0 -27.5 -11.5t-11.5 -27.5v-216z" />
+<glyph horiz-adv-x="700" d="M611 314l4 -18q40 -37 40 -89v-86q0 -50 -35.5 -85.5t-85.5 -35.5h-480v581h448q51 0 86.5 -35.5t35.5 -85.5v-93q0 -23 -13 -53zM502 499h-327q-16 0 -27.5 -11.5t-11.5 -27.5v-93q0 -16 11.5 -27.5t27.5 -11.5h327q16 0 27.5 11.5t11.5 27.5v93q0 16 -11.5 27.5 t-27.5 11.5zM573 121v86q0 16 -11.5 27.5t-27.5 11.5h-359q-16 0 -27.5 -11.5t-11.5 -27.5v-86q0 -16 11.5 -27.5t27.5 -11.5h359q16 0 27.5 11.5t11.5 27.5z" />
+<glyph horiz-adv-x="693" d="M640 499h-468q-16 0 -27.5 -11.5t-11.5 -27.5v-339q0 -16 11.5 -27.5t27.5 -11.5h468v-82h-468q-50 0 -85.5 35.5t-35.5 85.5v339q0 50 35.5 85.5t85.5 35.5h468v-82z" />
+<glyph horiz-adv-x="705" d="M54 581h480q50 0 85.5 -35.5t35.5 -85.5v-339q0 -50 -35.5 -85.5t-85.5 -35.5h-480v581zM573 121v339q0 16 -11.5 27.5t-27.5 11.5h-359q-16 0 -27.5 -11.5t-11.5 -27.5v-339q0 -16 11.5 -27.5t27.5 -11.5h359q16 0 27.5 11.5t11.5 27.5z" />
+<glyph horiz-adv-x="638" d="M581 581v-82h-445v-168h331v-82h-331v-167h445v-82h-527v581h527z" />
+<glyph horiz-adv-x="591" d="M54 581h527v-82h-445v-168h331v-82h-331v-249h-82v581z" />
+<glyph horiz-adv-x="690" d="M642 460v-14h-83v14q0 16 -11.5 27.5t-27.5 11.5h-348q-16 0 -27.5 -11.5t-11.5 -27.5v-339q0 -16 11.5 -27.5t27.5 -11.5h348q16 0 27.5 11.5t11.5 27.5v96h-179v82h262v-178q0 -50 -35.5 -85.5t-86.5 -35.5h-348q-50 0 -85.5 35.5t-35.5 85.5v339q0 50 35.5 85.5 t85.5 35.5h348q51 0 86.5 -35.5t35.5 -85.5z" />
+<glyph horiz-adv-x="715" d="M580 580h82v-580h-82v249h-444v-249h-82v580h82v-249h444v249z" />
+<glyph horiz-adv-x="214" d="M54 0v580h82v-580h-82z" />
+<glyph horiz-adv-x="657" d="M524 121v459h82v-459q0 -50 -35.5 -85.5t-85.5 -35.5h-359q-50 0 -85.5 35.5t-35.5 85.5v48h82v-48q0 -16 11.5 -27.5t27.5 -11.5h359q16 0 27.5 11.5t11.5 27.5z" />
+<glyph horiz-adv-x="669" d="M645 580v-210q0 -40 -29 -80q29 -40 29 -80v-210h-82v210q0 16 -11.5 27.5t-27.5 11.5h-388v-249h-82v770h82v-439h388q16 0 27.5 11.5t11.5 27.5v210h82z" />
+<glyph horiz-adv-x="682" d="M524 580h108l-263 -290l262 -290h-107l-228 249h-160v-249h-82v580h82v-249h160z" />
+<glyph horiz-adv-x="659" d="M54 0v580h82v-498h519v-82h-601z" />
+<glyph horiz-adv-x="824" d="M415 223l249 358h113v-581h-82v505q-220 -313 -280 -398l-279 398v-505h-82v581h110z" />
+<glyph horiz-adv-x="708" d="M573 92v488h82v-580h-111l-408 489v-489h-82v580h111z" />
+<glyph horiz-adv-x="692" d="M172 580h348q51 0 86.5 -35.5t35.5 -85.5v-338q0 -50 -35.5 -85.5t-86.5 -35.5h-348q-50 0 -85.5 35.5t-35.5 85.5v338q0 50 35.5 85.5t85.5 35.5zM172 82h348q16 0 27.5 11.5t11.5 27.5v338q0 16 -11.5 27.5t-27.5 11.5h-348q-16 0 -27.5 -11.5t-11.5 -27.5v-338 q0 -16 11.5 -27.5t27.5 -11.5z" />
+<glyph horiz-adv-x="660" d="M54 580h470q50 0 85.5 -35.5t35.5 -85.5v-130q0 -50 -35.5 -85.5t-85.5 -35.5h-348q-10 0 -40 4v-212h-82v580zM563 329v130q0 16 -11.5 27.5t-27.5 11.5h-348q-16 0 -28 -11.5t-12 -27.5v-130q0 -16 12 -27.5t28 -11.5h348q16 0 27.5 11.5t11.5 27.5z" />
+<glyph horiz-adv-x="770" d="M638 82h99v-82h-564q-50 0 -85.5 35.5t-35.5 85.5v338q0 50 35.5 85.5t85.5 35.5h348q51 0 86.5 -35.5t35.5 -85.5v-338q0 -1 -5 -39zM173 82h348q16 0 27.5 11.5t11.5 27.5v338q0 16 -11.5 27.5t-27.5 11.5h-348q-16 0 -27.5 -11.5t-11.5 -27.5v-338q0 -16 11.5 -27.5 t27.5 -11.5z" />
+<glyph horiz-adv-x="700" d="M644 459v-130q0 -50 -35 -85.5t-86 -35.5h-107l231 -208h-105l-228 208h-178v-208h-82v580h469q51 0 86 -35.5t35 -85.5zM175 290h348q16 0 27.5 11.5t11.5 27.5v130q0 16 -11.5 27.5t-27.5 11.5h-348q-16 0 -27.5 -11.5t-11.5 -27.5v-130q0 -16 11.5 -27.5t27.5 -11.5z " />
+<glyph horiz-adv-x="687" d="M640 459v-18h-83v18q0 16 -11.5 27.5t-27.5 11.5h-348q-16 0 -27.5 -11.5t-11.5 -27.5v-89q0 -16 11.5 -27.5t27.5 -11.5h348q51 0 86.5 -35.5t35.5 -85.5v-89q0 -50 -35.5 -85.5t-86.5 -35.5h-348q-50 0 -85.5 35.5t-35.5 85.5v18h82v-18q0 -16 11.5 -27.5t27.5 -11.5 h348q16 0 27.5 11.5t11.5 27.5v89q0 16 -11.5 27.5t-27.5 11.5h-348q-50 0 -85.5 35.5t-35.5 85.5v89q0 50 35.5 85.5t85.5 35.5h348q51 0 86.5 -35.5t35.5 -85.5z" />
+<glyph horiz-adv-x="644" d="M22 580h601v-82h-259v-498h-82v498h-260v82z" />
+<glyph horiz-adv-x="695" d="M562 121v459h82v-459q0 -50 -35.5 -85.5t-86.5 -35.5h-348q-50 0 -85.5 35.5t-35.5 85.5v459h82v-459q0 -16 11.5 -27.5t27.5 -11.5h348q16 0 28 11.5t12 27.5z" />
+<glyph horiz-adv-x="697" d="M562 580h82v-580h-470q-50 0 -85.5 35.5t-35.5 85.5v459h82v-459q0 -16 11.5 -27.5t27.5 -11.5h388v498z" />
+<glyph horiz-adv-x="801" d="M395 81l277 499h96l-326 -580h-94q-51 91 -160.5 284.5t-166.5 295.5h97z" />
+<glyph horiz-adv-x="978" d="M175 0q-51 0 -86.5 35.5t-35.5 85.5v459h82v-459q0 -16 12 -27.5t28 -11.5h241q16 0 27.5 11.5t11.5 27.5v459h82v-459q0 -16 11.5 -27.5t27.5 -11.5h243q16 0 27.5 11.5t11.5 27.5v459h82v-580h-765z" />
+<glyph horiz-adv-x="1078" d="M964 580h88q-36 -93 -108 -284t-113 -296h-72l-216 467l-205 -467h-72q-140 348 -232 580h88l179 -431l192 431h100l203 -430q20 53 80 204.5t88 225.5z" />
+<glyph horiz-adv-x="698" d="M645 580v-210q0 -40 -29 -80q29 -40 29 -80v-210h-82v210q0 16 -11.5 27.5t-27.5 11.5h-348q-16 0 -28 -11.5t-12 -27.5v-210h-82v210q0 40 29 80q-29 40 -29 80v210h82v-210q0 -16 12 -27.5t28 -11.5h348q16 0 27.5 11.5t11.5 27.5v210h82z" />
+<glyph horiz-adv-x="692" d="M530 580h108l-242 -284l243 -296h-108l-189 233q-34 -42 -104 -129t-84 -104h-108l242 296l-242 284h108l188 -219z" />
+<glyph horiz-adv-x="688" d="M548 580h97l-272 -380v-200h-83v200l-272 380h96l217 -283z" />
+<glyph horiz-adv-x="692" d="M172 249q-16 0 -27.5 -11.5t-11.5 -27.5v-89q0 -16 11.5 -27.5t27.5 -11.5h470v-82h-470q-50 0 -85.5 35.5t-35.5 85.5v89q0 50 35.5 85.5t85.5 35.5h348q16 0 27.5 11.5t11.5 27.5v89q0 16 -11.5 27.5t-27.5 11.5h-469v82h469q51 0 86.5 -35.5t35.5 -85.5v-89 q0 -50 -35.5 -85.5t-86.5 -35.5h-348z" />
+<glyph horiz-adv-x="698" d="M54 498v82h591v-112l-501 -386h501v-82h-591v112l501 386h-501z" />
+<hkern u1="&#x3f;" u2="v" k="1" />
+<hkern u1="A" u2="Y" k="13" />
+<hkern u1="A" u2="W" k="31" />
+<hkern u1="B" u2="Y" k="31" />
+<hkern u1="B" u2="V" k="49" />
+<hkern u1="D" u2="Z" k="27" />
+<hkern u1="D" u2="V" k="29" />
+<hkern u1="E" u2="O" k="31" />
+<hkern u1="E" u2="M" k="29" />
+<hkern u1="F" u2="y" k="20" />
+<hkern u1="F" u2="T" k="-10" />
+<hkern u1="F" u2="R" k="-5" />
+<hkern u1="F" u2="J" k="240" />
+<hkern u1="G" u2="W" k="27" />
+<hkern u1="K" u2="H" k="29" />
+<hkern u1="K" u2="A" k="30" />
+<hkern u1="L" u2="Y" k="179" />
+<hkern u1="L" u2="W" k="129" />
+<hkern u1="L" u2="V" k="231" />
+<hkern u1="M" u2="c" k="10" />
+<hkern u1="O" u2="X" k="39" />
+<hkern u1="O" u2="W" k="27" />
+<hkern u1="O" u2="V" k="27" />
+<hkern u1="P" u2="v" k="-1" />
+<hkern u1="P" u2="d" k="-10" />
+<hkern u1="P" u2="J" k="187" />
+<hkern u1="P" u2="A" k="-10" />
+<hkern u1="R" u2="W" k="19" />
+<hkern u1="R" u2="V" k="19" />
+<hkern u1="S" u2="Y" k="10" />
+<hkern u1="S" u2="W" k="25" />
+<hkern u1="S" u2="N" k="19" />
+<hkern u1="T" u2="z" k="103" />
+<hkern u1="T" u2="y" k="91" />
+<hkern u1="T" u2="w" k="83" />
+<hkern u1="T" u2="u" k="101" />
+<hkern u1="T" u2="s" k="121" />
+<hkern u1="T" u2="o" k="123" />
+<hkern u1="V" u2="s" k="40" />
+<hkern u1="V" u2="o" k="30" />
+<hkern u1="V" u2="S" k="20" />
+<hkern u1="V" u2="O" k="33" />
+<hkern u1="V" u2="A" k="37" />
+<hkern u1="W" u2="u" k="20" />
+<hkern u1="W" u2="o" k="25" />
+<hkern u1="W" u2="i" k="10" />
+<hkern u1="W" u2="e" k="35" />
+<hkern u1="W" u2="a" k="15" />
+<hkern u1="W" u2="O" k="23" />
+<hkern u1="W" u2="A" k="27" />
+<hkern u1="X" u2="B" k="35" />
+<hkern u1="Y" u2="u" k="97" />
+<hkern u1="Y" u2="s" k="117" />
+<hkern u1="Y" u2="p" k="99" />
+<hkern u1="Y" u2="o" k="119" />
+<hkern u1="Y" u2="i" k="19" />
+<hkern u1="Y" u2="e" k="119" />
+<hkern u1="Y" u2="a" k="97" />
+<hkern u1="Y" u2="S" k="35" />
+<hkern u1="Z" u2="Y" k="10" />
+<hkern u1="a" u2="z" k="25" />
+<hkern u1="a" u2="x" k="15" />
+<hkern u1="a" u2="w" k="30" />
+<hkern u1="a" u2="v" k="20" />
+<hkern u1="a" u2="s" k="20" />
+<hkern u1="a" u2="r" k="5" />
+<hkern u1="a" u2="n" k="15" />
+<hkern u1="a" u2="m" k="20" />
+<hkern u1="a" u2="l" k="10" />
+<hkern u1="a" u2="c" k="10" />
+<hkern u1="a" u2="b" k="25" />
+<hkern u1="b" u2="d" k="-30" />
+<hkern u1="c" u2="z" k="20" />
+<hkern u1="c" u2="u" k="20" />
+<hkern u1="c" u2="t" k="25" />
+<hkern u1="c" u2="k" k="20" />
+<hkern u1="c" u2="h" k="15" />
+<hkern u1="c" u2="e" k="25" />
+<hkern u1="d" u2="u" k="23" />
+<hkern u1="d" u2="o" k="22" />
+<hkern u1="d" u2="e" k="20" />
+<hkern u1="e" u2="x" k="17" />
+<hkern u1="e" u2="w" k="30" />
+<hkern u1="e" u2="v" k="20" />
+<hkern u1="e" u2="r" k="5" />
+<hkern u1="e" u2="l" k="20" />
+<hkern u1="e" u2="e" k="15" />
+<hkern u1="e" u2="c" k="20" />
+<hkern u1="f" u2="u" k="-10" />
+<hkern u1="f" u2="t" k="-5" />
+<hkern u1="f" u2="&#x2c;" k="181" />
+<hkern u1="g" u2="w" k="20" />
+<hkern u1="g" u2="u" k="25" />
+<hkern u1="g" u2="s" k="21" />
+<hkern u1="g" u2="r" k="15" />
+<hkern u1="g" u2="o" k="20" />
+<hkern u1="g" u2="e" k="15" />
+<hkern u1="g" u2="c" k="15" />
+<hkern u1="g" u2="a" k="15" />
+<hkern u1="h" u2="i" k="-5" />
+<hkern u1="h" u2="f" k="-10" />
+<hkern u1="h" u2="a" k="-5" />
+<hkern u1="i" u2="x" k="41" />
+<hkern u1="i" u2="v" k="5" />
+<hkern u1="i" u2="q" k="15" />
+<hkern u1="i" u2="p" k="25" />
+<hkern u1="i" u2="n" k="15" />
+<hkern u1="i" u2="f" k="47" />
+<hkern u1="i" u2="c" k="15" />
+<hkern u1="i" u2="a" k="35" />
+<hkern u1="j" u2="e" k="20" />
+<hkern u1="k" u2="e" k="5" />
+<hkern u1="l" u2="&#x2019;" k="87" />
+<hkern u1="l" u2="w" k="65" />
+<hkern u1="l" u2="v" k="59" />
+<hkern u1="l" u2="o" k="10" />
+<hkern u1="l" u2="m" k="10" />
+<hkern u1="l" u2="e" k="15" />
+<hkern u1="l" u2="d" k="-5" />
+<hkern u1="l" u2="a" k="10" />
+<hkern u1="m" u2="w" k="25" />
+<hkern u1="m" u2="m" k="13" />
+<hkern u1="m" u2="k" k="13" />
+<hkern u1="n" u2="x" k="25" />
+<hkern u1="n" u2="p" k="10" />
+<hkern u1="n" u2="o" k="15" />
+<hkern u1="n" u2="c" k="20" />
+<hkern u1="n" u2="b" k="20" />
+<hkern u1="o" u2="x" k="35" />
+<hkern u1="o" u2="w" k="35" />
+<hkern u1="o" u2="v" k="13" />
+<hkern u1="o" u2="u" k="23" />
+<hkern u1="o" u2="t" k="23" />
+<hkern u1="o" u2="s" k="20" />
+<hkern u1="o" u2="r" k="10" />
+<hkern u1="o" u2="o" k="20" />
+<hkern u1="o" u2="n" k="15" />
+<hkern u1="o" u2="l" k="20" />
+<hkern u1="o" u2="a" k="10" />
+<hkern u1="p" u2="s" k="-10" />
+<hkern u1="p" u2="i" k="-15" />
+<hkern u1="p" u2="d" k="-25" />
+<hkern u1="q" u2="u" k="25" />
+<hkern u1="r" u2="o" k="5" />
+<hkern u1="r" u2="&#x2e;" k="20" />
+<hkern u1="r" u2="&#x2c;" k="243" />
+<hkern u1="s" u2="z" k="23" />
+<hkern u1="s" u2="x" k="37" />
+<hkern u1="s" u2="v" k="20" />
+<hkern u1="s" u2="u" k="20" />
+<hkern u1="s" u2="n" k="23" />
+<hkern u1="s" u2="k" k="15" />
+<hkern u1="s" u2="e" k="15" />
+<hkern u1="s" u2="c" k="19" />
+<hkern u1="t" u2="z" k="-5" />
+<hkern u1="t" u2="i" k="-5" />
+<hkern u1="t" u2="h" k="-5" />
+<hkern u1="t" u2="d" k="-20" />
+<hkern u1="t" u2="b" k="-5" />
+<hkern u1="u" u2="z" k="15" />
+<hkern u1="u" u2="x" k="15" />
+<hkern u1="u" u2="t" k="15" />
+<hkern u1="u" u2="s" k="15" />
+<hkern u1="u" u2="p" k="15" />
+<hkern u1="u" u2="n" k="-5" />
+<hkern u1="u" u2="m" k="20" />
+<hkern u1="u" u2="f" k="10" />
+<hkern u1="u" u2="e" k="15" />
+<hkern u1="u" u2="d" k="-10" />
+<hkern u1="u" u2="c" k="20" />
+<hkern u1="u" u2="b" k="15" />
+<hkern u1="v" u2="s" k="25" />
+<hkern u1="v" u2="o" k="29" />
+<hkern u1="v" u2="e" k="30" />
+<hkern u1="w" u2="s" k="15" />
+<hkern u1="w" u2="r" k="20" />
+<hkern u1="w" u2="o" k="20" />
+<hkern u1="w" u2="e" k="20" />
+<hkern u1="x" u2="e" k="49" />
+<hkern u1="y" u2="o" k="23" />
+<hkern u1="y" u2="n" k="15" />
+<hkern u1="y" u2="l" k="-10" />
+<hkern u1="y" u2="e" k="20" />
+<hkern u1="y" u2="c" k="20" />
+<hkern u1="y" u2="a" k="23" />
+<hkern u1="z" u2="z" k="20" />
+<hkern u1="z" u2="t" k="20" />
+<hkern u1="z" u2="l" k="20" />
+<hkern u1="z" u2="e" k="25" />
+<hkern u1="z" u2="a" k="25" />
+<hkern u1="&#xe009;" u2="&#xe00b;" k="341" />
+<hkern u1="&#xe00a;" u2="&#xe00b;" k="361" />
+<hkern u1="&#xe00c;" g2="V.alt2" k="339" />
+<hkern u1="&#xe00c;" u2="&#xe008;" k="345" />
+</font>
+</defs></svg> 
\ No newline at end of file
diff --git a/js/resources/fonts/orbitron-light.ttf b/js/resources/fonts/orbitron-light.ttf
new file mode 100755
index 0000000..324d8c9
Binary files /dev/null and b/js/resources/fonts/orbitron-light.ttf differ
diff --git a/js/resources/fonts/orbitron-light.woff b/js/resources/fonts/orbitron-light.woff
new file mode 100755
index 0000000..984beef
Binary files /dev/null and b/js/resources/fonts/orbitron-light.woff differ
diff --git a/js/resources/fonts/orbitron-medium.eot b/js/resources/fonts/orbitron-medium.eot
new file mode 100755
index 0000000..5628921
Binary files /dev/null and b/js/resources/fonts/orbitron-medium.eot differ
diff --git a/js/resources/fonts/orbitron-medium.svg b/js/resources/fonts/orbitron-medium.svg
new file mode 100755
index 0000000..23f69ee
--- /dev/null
+++ b/js/resources/fonts/orbitron-medium.svg
@@ -0,0 +1,473 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
+<svg xmlns="http://www.w3.org/2000/svg">
+<metadata></metadata>
+<defs>
+<font id="orbitronregular" horiz-adv-x="828" >
+<font-face units-per-em="1000" ascent="750" descent="-250" />
+<missing-glyph horiz-adv-x="290" />
+<glyph unicode=" "  horiz-adv-x="290" />
+<glyph unicode="&#x09;" horiz-adv-x="290" />
+<glyph unicode="&#xa0;" horiz-adv-x="290" />
+<glyph unicode="!" horiz-adv-x="220" d="M166 0h-108v108h108v-108zM58 200v520h108v-520h-108z" />
+<glyph unicode="&#x22;" horiz-adv-x="372" d="M167 719v-162h-108v162h108zM314 719v-162h-108v162h108z" />
+<glyph unicode="#" horiz-adv-x="797" d="M765 558v-108h-119l-58 -178h146v-108h-180l-50 -164h-108l50 164h-215l-50 -164h-108l50 164h-91v108h125l58 178h-152v108h186l54 159h108l-54 -159h215l54 159h108l-54 -159h85zM265 272h215l58 178h-215z" />
+<glyph unicode="$" horiz-adv-x="788" d="M754 590v-42h-108v42q0 9 -6.5 15.5t-15.5 6.5h-176v-198h176q54 0 92 -38t38 -92v-154q0 -54 -38 -92t-92 -38h-176v-108h-108v108h-176q-54 0 -92 38t-38 92v42h108v-42q0 -9 6.5 -15.5t15.5 -6.5h176v198h-176q-54 0 -92 38t-38 92v154q0 54 38 92t92 38h176v108h108 v-108h176q54 0 92 -38t38 -92zM624 306h-176v-198h176q9 0 15.5 6.5t6.5 15.5v154q0 9 -6.5 15.5t-15.5 6.5zM261 414h79v198h-176q-9 0 -15.5 -6.5t-6.5 -15.5v-154q0 -9 6.5 -15.5t15.5 -6.5h97z" />
+<glyph unicode="%" horiz-adv-x="966" d="M837 720h15v-128l-705 -592h-15v128zM178 720h90q54 0 92 -38t38 -92v-80q0 -54 -38 -92t-92 -38h-90q-54 0 -92 38t-38 92v80q0 54 38 92t92 38zM158 468h130q9 0 15.5 6.5t6.5 15.5v120q0 9 -6.5 15.5t-15.5 6.5h-130q-9 0 -15.5 -6.5t-6.5 -15.5v-120q0 -9 6.5 -15.5 t15.5 -6.5zM696 339h90q54 0 92 -38t38 -92v-80q0 -54 -38 -92t-92 -38h-90q-54 0 -92 38t-38 92v80q0 54 38 92t92 38zM676 87h130q9 0 15.5 6.5t6.5 15.5v120q0 9 -6.5 15.5t-15.5 6.5h-130q-9 0 -15.5 -6.5t-6.5 -15.5v-120q0 -9 6.5 -15.5t15.5 -6.5z" />
+<glyph unicode="&#x26;" horiz-adv-x="938" d="M773 181l127 -74v-104l-137 78q-14 -36 -46.5 -58.5t-73.5 -22.5h-460q-54 0 -92 38t-38 92v204q0 25 18 50.5t47 25.5q-25 19 -25 76v104q0 54 38 92t92 38h390q48 0 85 -31t45 -77v-71h-108v48q0 9 -6.5 15.5t-15.5 6.5h-390q-9 0 -15.5 -6.5t-6.5 -15.5v-132l464 -234 v123h108v-165zM183 108h460q14 0 19 12l-468 236h-11q-9 0 -15.5 -6.5t-6.5 -15.5v-204q0 -9 6.5 -15.5t15.5 -6.5z" />
+<glyph unicode="'" horiz-adv-x="224" d="M167 719v-162h-108v162h108z" />
+<glyph unicode="(" horiz-adv-x="277" d="M182 108h42v-108h-42q-54 0 -92 38t-38 92v460q0 54 38 92t92 38h42v-108h-42q-9 0 -15.5 -6.5t-6.5 -15.5v-460q0 -9 6.5 -15.5t15.5 -6.5z" />
+<glyph unicode=")" horiz-adv-x="278" d="M56 0v108h42q9 0 15.5 6.5t6.5 15.5v460q0 9 -6.5 15.5t-15.5 6.5h-42v108h42q53 0 91.5 -38t38.5 -92v-460q0 -54 -38.5 -92t-91.5 -38h-42z" />
+<glyph unicode="*" horiz-adv-x="491" d="M432 623l34 -103l-133 -43l82 -114l-87 -63l-83 113l-82 -113l-87 63l82 114l-133 43l33 103l133 -44v140h108v-140z" />
+<glyph unicode="+" horiz-adv-x="433" d="M161 495h108v-145h148v-108h-148v-147h-108v147h-144v108h144v145z" />
+<glyph unicode="," horiz-adv-x="193" d="M54 108h108v-108q0 -48 -31 -84t-77 -44v236z" />
+<glyph unicode="-" horiz-adv-x="517" d="M459 350v-108h-400v108h400z" />
+<glyph unicode="." horiz-adv-x="214" d="M162 108v-108h-108v108h108z" />
+<glyph unicode="/" horiz-adv-x="521" d="M6 128l495 592h15v-128l-495 -592h-15v128z" />
+<glyph unicode="0" horiz-adv-x="834" d="M187 720h460q54 0 92 -38t38 -92v-460q0 -54 -38 -92t-92 -38h-460q-54 0 -92 38t-38 92v460q0 54 38 92t92 38zM633 612h-446q-9 0 -15.5 -6.5t-6.5 -15.5v-371zM201 108h446q9 0 15.5 6.5t6.5 15.5v371z" />
+<glyph unicode="1" horiz-adv-x="391" d="M1 477l203 243h129v-720h-108v576l-83 -99h-141z" />
+<glyph unicode="2" horiz-adv-x="830" d="M187 720h460q54 0 92 -38t38 -92v-164q0 -54 -38 -92t-92 -38h-460q-9 0 -15.5 -6.5t-6.5 -15.5v-144q0 -9 6.5 -15.5t15.5 -6.5h590v-108h-720v274q0 54 38 92t92 38h460q9 0 15.5 6.5t6.5 15.5v164q0 9 -6.5 15.5t-15.5 6.5h-460q-9 0 -15.5 -6.5t-6.5 -15.5v-42h-108 v42q0 54 38 92t92 38z" />
+<glyph unicode="3" horiz-adv-x="826" d="M730 387q43 -38 43 -96v-161q0 -54 -38 -92t-92 -38h-460q-54 0 -92 38t-38 92v30h108v-30q0 -9 6.5 -15.5t15.5 -6.5h460q9 0 15.5 6.5t6.5 15.5v161q0 9 -6.5 15.5t-15.5 6.5h-460v108h430q9 0 15.5 6.5t6.5 15.5v147q0 9 -6.5 15.5t-15.5 6.5h-430q-9 0 -15.5 -6.5 t-6.5 -15.5v-40h-108v40q0 54 38 92t92 38h430q54 0 92 -38t38 -92v-147q0 -28 -13 -56z" />
+<glyph unicode="4" horiz-adv-x="730" d="M590 291h106v-108h-106v-183h-108v183h-476v108l476 429h108v-429zM482 550l-319 -259h319v259z" />
+<glyph unicode="5" horiz-adv-x="830" d="M165 590v-144q0 -9 6.5 -15.5t15.5 -6.5h460q54 0 92 -38t38 -92v-164q0 -54 -38 -92t-92 -38h-460q-54 0 -92 38t-38 92v42h108v-42q0 -9 6.5 -15.5t15.5 -6.5h460q9 0 15.5 6.5t6.5 15.5v164q0 9 -6.5 15.5t-15.5 6.5h-590v108h2q-2 14 -2 22v274h720v-108h-590 q-9 0 -15.5 -6.5t-6.5 -15.5z" />
+<glyph unicode="6" horiz-adv-x="820" d="M527 424h120q54 0 92 -38t38 -92v-164q0 -54 -38 -92t-92 -38h-460q-54 0 -92 38t-38 92v460q0 54 38 92t92 38h470v-108h-470q-9 0 -15.5 -6.5t-6.5 -15.5v-144q0 -9 6.5 -15.5t15.5 -6.5h340zM669 130v164q0 9 -6.5 15.5t-15.5 6.5h-482v-186q0 -9 6.5 -15.5t15.5 -6.5 h460q9 0 15.5 6.5t6.5 15.5z" />
+<glyph unicode="7" horiz-adv-x="660" d="M13 720h460q54 0 92 -38t38 -92v-590h-108v590q0 9 -6.5 15.5t-15.5 6.5h-470v108h10z" />
+<glyph unicode="8" horiz-adv-x="834" d="M777 612v-166q0 -43 -25 -76q25 -33 25 -76v-164q0 -54 -38 -92t-92 -38h-460q-54 0 -92 38t-38 92v164q0 43 25 76q-25 33 -25 76v144q0 54 38 92t92 38h460q48 0 85 -31t45 -77zM669 130v164q0 9 -6.5 15.5t-15.5 6.5h-460q-9 0 -15.5 -6.5t-6.5 -15.5v-164 q0 -9 6.5 -15.5t15.5 -6.5h460q9 0 15.5 6.5t6.5 15.5zM669 435v154q0 9 -6.5 15.5t-15.5 6.5h-460q-9 0 -15.5 -6.5t-6.5 -15.5v-154q0 -9 6.5 -15.5t15.5 -6.5h460q9 0 15.5 6.5t6.5 15.5z" />
+<glyph unicode="9" d="M301 296h-120q-54 0 -92 38t-38 92v164q0 54 38 92t92 38h460q54 0 92 -38t38 -92v-460q0 -54 -38 -92t-92 -38h-460q-48 0 -84 31t-44 77h588q9 0 15.5 6.5t6.5 15.5v144q0 9 -6.5 15.5t-15.5 6.5h-340zM159 590v-164q0 -9 6.5 -15.5t15.5 -6.5h482v186q0 9 -6.5 15.5 t-15.5 6.5h-460q-9 0 -15.5 -6.5t-6.5 -15.5z" />
+<glyph unicode=":" horiz-adv-x="214" d="M54 108h108v-108h-108v108zM162 588v-108h-108v108h108z" />
+<glyph unicode=";" horiz-adv-x="193" d="M159 588v-108h-108v108h108zM51 108h108v-108q0 -48 -31 -84t-77 -44v236z" />
+<glyph unicode="&#x3c;" horiz-adv-x="473" d="M127 296l289 -167v-125l-411 238v108l411 237v-125z" />
+<glyph unicode="=" horiz-adv-x="638" d="M579 251v-108h-520v108h520zM579 441v-108h-520v108h520z" />
+<glyph unicode="&#x3e;" horiz-adv-x="475" d="M59 2v125l289 167l-289 166v125l411 -237v-108z" />
+<glyph unicode="?" horiz-adv-x="678" d="M31 720h497q54 0 92 -38t38 -92v-184q0 -54 -38 -92t-92 -38h-259q-9 0 -15.5 -6.5t-6.5 -15.5v-55h-108v55q0 54 38 92t92 38h259q9 0 15.5 6.5t6.5 15.5v184q0 9 -6.5 15.5t-15.5 6.5h-497v108zM247 0h-108v108h108v-108z" />
+<glyph unicode="@" horiz-adv-x="831" d="M372 530h90q54 0 92 -38t38 -92v-122h77v312q0 9 -6.5 15.5t-15.5 6.5h-460q-9 0 -15.5 -6.5t-6.5 -15.5v-460q0 -9 6.5 -15.5t15.5 -6.5h590v-108h-590q-54 0 -92 38t-38 92v460q0 54 38 92t92 38h460q54 0 92 -38t38 -92v-400h-405q-54 0 -92 38t-38 92v80q0 54 38 92 t92 38zM352 278h152v142q0 9 -6.5 15.5t-15.5 6.5h-130q-9 0 -15.5 -6.5t-6.5 -15.5v-120q0 -9 6.5 -15.5t15.5 -6.5z" />
+<glyph unicode="A" horiz-adv-x="836" d="M188 720h460q54 0 92 -38t38 -92v-590h-108v252h-504v-252h-108v590q0 54 38 92t92 38zM166 360h504v230q0 9 -6.5 15.5t-15.5 6.5h-460q-9 0 -15.5 -6.5t-6.5 -15.5v-230z" />
+<glyph unicode="B" horiz-adv-x="832" d="M736 387q43 -38 43 -96v-161q0 -54 -38 -92t-92 -38h-590v720h560q54 0 92 -38t38 -92v-147q0 -28 -13 -56zM619 612h-430q-9 0 -15.5 -6.5t-6.5 -15.5v-147q0 -9 6.5 -15.5t15.5 -6.5h430q9 0 15.5 6.5t6.5 15.5v147q0 9 -6.5 15.5t-15.5 6.5zM671 130v161 q0 9 -6.5 15.5t-15.5 6.5h-460q-9 0 -15.5 -6.5t-6.5 -15.5v-161q0 -9 6.5 -15.5t15.5 -6.5h460q9 0 15.5 6.5t6.5 15.5z" />
+<glyph unicode="C" horiz-adv-x="822" d="M774 612h-588q-9 0 -15.5 -6.5t-6.5 -15.5v-460q0 -9 6.5 -15.5t15.5 -6.5h588v-108h-588q-54 0 -92 38t-38 92v460q0 54 38 92t92 38h588v-108z" />
+<glyph unicode="D" horiz-adv-x="834" d="M58 720h590q54 0 92 -38t38 -92v-460q0 -54 -38 -92t-92 -38h-590v720zM670 130v460q0 9 -6.5 15.5t-15.5 6.5h-460q-9 0 -15.5 -6.5t-6.5 -15.5v-460q0 -9 6.5 -15.5t15.5 -6.5h460q9 0 15.5 6.5t6.5 15.5z" />
+<glyph unicode="E" horiz-adv-x="766" d="M718 720v-108h-552v-198h444v-108h-444v-198h552v-108h-660v720h660z" />
+<glyph unicode="F" horiz-adv-x="723" d="M58 720h660v-108h-552v-198h444v-108h-444v-306h-108v720z" />
+<glyph unicode="G" horiz-adv-x="830" d="M776 590v-43h-108v43q0 9 -6.5 15.5t-15.5 6.5h-460q-9 0 -15.5 -6.5t-6.5 -15.5v-460q0 -9 6.5 -15.5t15.5 -6.5h460q9 0 15.5 6.5t6.5 15.5v156h-170v108h278v-264q0 -54 -38 -92t-92 -38h-460q-54 0 -92 38t-38 92v460q0 54 38 92t92 38h460q54 0 92 -38t38 -92z" />
+<glyph unicode="H" horiz-adv-x="851" d="M686 720h108v-720h-108v306h-521v-306h-108v720h108v-306h521v306z" />
+<glyph unicode="I" horiz-adv-x="220" d="M57 0v720h108v-720h-108z" />
+<glyph unicode="J" horiz-adv-x="780" d="M616 130v590h108v-590q0 -54 -38 -92t-92 -38h-460q-54 0 -92 38t-38 92v70h108v-70q0 -9 6.5 -15.5t15.5 -6.5h460q9 0 15.5 6.5t6.5 15.5z" />
+<glyph unicode="K" horiz-adv-x="797" d="M622 720h128v-15l-289 -345l289 -345v-15h-128l-257 306h-200v-306h-108v720h108v-306h200z" />
+<glyph unicode="L" horiz-adv-x="779" d="M57 0v721h108v-613h612v-108h-720z" />
+<glyph unicode="M" horiz-adv-x="928" d="M464 387l279 333h129v-720h-108v576l-300 -357l-300 357v-576h-108v720h128z" />
+<glyph unicode="N" horiz-adv-x="832" d="M668 144v576h108v-720h-128l-484 576v-576h-108v720h128z" />
+<glyph unicode="O" d="M184 720h460q54 0 92 -38t38 -92v-460q0 -54 -38 -92t-92 -38h-460q-54 0 -92 38t-38 92v460q0 54 38 92t92 38zM184 108h460q9 0 15.5 6.5t6.5 15.5v460q0 9 -6.5 15.5t-15.5 6.5h-460q-9 0 -15.5 -6.5t-6.5 -15.5v-460q0 -9 6.5 -15.5t15.5 -6.5z" />
+<glyph unicode="P" horiz-adv-x="791" d="M56 719h590q54 0 92 -38.5t38 -91.5v-202q0 -53 -38 -91.5t-92 -38.5h-460q-8 0 -22 2v-259h-108v719zM668 387v202q0 9 -6.5 15.5t-15.5 6.5h-460q-9 0 -15.5 -6.5t-6.5 -15.5v-202q0 -9 6.5 -15.5t15.5 -6.5h460q9 0 15.5 6.5t6.5 15.5z" />
+<glyph unicode="Q" horiz-adv-x="884" d="M772 108h92v-108h-680q-54 0 -92 38t-38 92v460q0 54 38 92t92 38h460q54 0 92 -38t38 -92v-460q0 -8 -2 -22zM184 108h460q9 0 15.5 6.5t6.5 15.5v460q0 9 -6.5 15.5t-15.5 6.5h-460q-9 0 -15.5 -6.5t-6.5 -15.5v-460q0 -9 6.5 -15.5t15.5 -6.5z" />
+<glyph unicode="R" horiz-adv-x="825" d="M775 589v-202q0 -53 -38 -91.5t-92 -38.5h-73l203 -242v-15h-128l-216 257h-246q-8 0 -22 2v-259h-108v719h590q54 0 92 -38.5t38 -91.5zM185 365h460q9 0 15.5 6.5t6.5 15.5v202q0 9 -6.5 15.5t-15.5 6.5h-460q-9 0 -15.5 -6.5t-6.5 -15.5v-202q0 -9 6.5 -15.5 t15.5 -6.5z" />
+<glyph unicode="S" horiz-adv-x="822" d="M771 590v-42h-108v42q0 9 -6.5 15.5t-15.5 6.5h-460q-9 0 -15.5 -6.5t-6.5 -15.5v-154q0 -9 6.5 -15.5t15.5 -6.5h460q54 0 92 -38t38 -92v-154q0 -54 -38 -92t-92 -38h-460q-54 0 -92 38t-38 92v42h108v-42q0 -9 6.5 -15.5t15.5 -6.5h460q9 0 15.5 6.5t6.5 15.5v154 q0 9 -6.5 15.5t-15.5 6.5h-460q-54 0 -92 38t-38 92v154q0 54 38 92t92 38h460q54 0 92 -38t38 -92z" />
+<glyph unicode="T" horiz-adv-x="759" d="M20 720h720v-108h-306v-612h-108v612h-306v108z" />
+<glyph unicode="U" d="M666 130v590h108v-590q0 -54 -38 -92t-92 -38h-460q-54 0 -92 38t-38 92v590h108v-590q0 -9 6.5 -15.5t15.5 -6.5h460q9 0 15.5 6.5t6.5 15.5z" />
+<glyph unicode="V" horiz-adv-x="1003" d="M505 122l345 598h124l-415 -720h-108l-416 720h125z" />
+<glyph unicode="W" horiz-adv-x="1179" d="M1029 720h115l-262 -720h-88l-205 561l-204 -561l-2 1l1 -1h-87l-262 720h115l191 -525l191 525h115l191 -525z" />
+<glyph unicode="X" horiz-adv-x="812" d="M638 720h128v-15l-290 -345l290 -345v-15h-128l-232 276l-232 -276h-128v15l289 345l-289 345v15h128l232 -276z" />
+<glyph unicode="Y" horiz-adv-x="806" d="M661 720h128l-332 -450v-270h-108v270l-332 450h127l259 -328z" />
+<glyph unicode="Z" horiz-adv-x="821" d="M51 612v108h720v-128l-576 -484h576v-108h-720v128l576 484h-576z" />
+<glyph unicode="[" horiz-adv-x="275" d="M54 0v720h172v-108h-64v-504h64v-108h-172z" />
+<glyph unicode="\" horiz-adv-x="520" d="M5 720h15l495 -592v-128h-15l-495 592v128z" />
+<glyph unicode="]" horiz-adv-x="276" d="M51 612v108h172v-720h-172v108h64v504h-64z" />
+<glyph unicode="_" d="M774 0v-108h-720v108h720z" />
+<glyph unicode="`" horiz-adv-x="213" d="M140 989l40 -162h-108l-40 162h108z" />
+<glyph unicode="a" horiz-adv-x="694" d="M512 580q54 0 92 -38t38 -92v-450h-460q-54 0 -92 38t-38 92v214h482v106q0 9 -6.5 15.5t-15.5 6.5h-460v108h460zM534 108v128h-374v-106q0 -9 6.5 -15.5t15.5 -6.5h352z" />
+<glyph unicode="b" horiz-adv-x="667" d="M514 580q54 0 92 -38t38 -92v-320q0 -54 -38 -92t-92 -38h-460v770h108v-190h352zM536 130v320q0 9 -6.5 15.5t-15.5 6.5h-330q-9 0 -15.5 -6.5t-6.5 -15.5v-320q0 -9 6.5 -15.5t15.5 -6.5h330q9 0 15.5 6.5t6.5 15.5z" />
+<glyph unicode="c" horiz-adv-x="695" d="M181 108h460v-108h-460q-54 0 -92 38t-38 92v320q0 54 38 92t92 38h458v-108h-458q-9 0 -15.5 -6.5t-6.5 -15.5v-320q0 -9 6.5 -15.5t15.5 -6.5z" />
+<glyph unicode="d" horiz-adv-x="667" d="M505 770h108v-770h-460q-54 0 -92 38t-38 92v320q0 54 38 92t92 38h352v190zM153 108h330q9 0 15.5 6.5t6.5 15.5v320q0 9 -6.5 15.5t-15.5 6.5h-330q-9 0 -15.5 -6.5t-6.5 -15.5v-320q0 -9 6.5 -15.5t15.5 -6.5z" />
+<glyph unicode="e" horiz-adv-x="692" d="M511 580q54 0 92 -38t38 -92v-214h-482v-106q0 -9 6.5 -15.5t15.5 -6.5h460v-108h-460q-54 0 -92 38t-38 92v320q0 54 38 92t92 38h330zM159 344h374v106q0 9 -6.5 15.5t-15.5 6.5h-330q-9 0 -15.5 -6.5t-6.5 -15.5v-106z" />
+<glyph unicode="f" horiz-adv-x="407" d="M183 662q-9 0 -15.5 -6.5t-6.5 -15.5v-60h238v-108h-238v-472h-108v320v320q0 54 38 92t92 38h216v-108h-216z" />
+<glyph unicode="g" horiz-adv-x="683" d="M631 221v-1v-320q0 -54 -38 -92t-92 -38h-358v108h358q9 0 15.5 6.5t6.5 15.5v100h-352q-54 0 -92 38t-38 92v320q0 54 38 92t92 38h330q54 0 92 -38t38 -92v-229zM171 108h330q9 0 15.5 6.5t6.5 15.5v320q0 9 -6.5 15.5t-15.5 6.5h-330q-9 0 -15.5 -6.5t-6.5 -15.5v-320 q0 -9 6.5 -15.5t15.5 -6.5z" />
+<glyph unicode="h" horiz-adv-x="668" d="M514 580q53 0 91.5 -38t38.5 -92v-450h-108v450q0 9 -6.5 15.5t-15.5 6.5h-330q-9 0 -15.5 -6.5t-6.5 -15.5v-450h-108v770h108v-190h352z" />
+<glyph unicode="i" horiz-adv-x="208" d="M52 0v580h108v-580h-108zM52 770h108v-108h-108v108z" />
+<glyph unicode="j" horiz-adv-x="239" d="M83 770h108v-108h-108v108zM191 578v-358v-320q0 -54 -38 -92t-92 -38h-248v108h248q9 0 15.5 6.5t6.5 15.5v678h108z" />
+<glyph unicode="k" horiz-adv-x="646" d="M509 580h128v-15l-249 -275l249 -275v-15h-128l-217 236h-130v-236h-108v770h108v-426h130z" />
+<glyph unicode="l" horiz-adv-x="302" d="M52 450v320h108v-640q0 -9 6.5 -15.5t15.5 -6.5h108v-108h-108q-54 0 -92 38t-38 92v320z" />
+<glyph unicode="m" horiz-adv-x="978" d="M795 580q54 0 92 -38t38 -92v-450h-107v450q0 9 -6.5 15.5t-16.5 6.5h-229q-9 0 -15.5 -6.5t-6.5 -15.5v-450h-108v450q0 9 -6.5 15.5t-15.5 6.5h-230q-9 0 -15.5 -6.5t-6.5 -15.5v-450h-108v580h741z" />
+<glyph unicode="n" horiz-adv-x="696" d="M514 580q54 0 92 -38t38 -92v-450h-108v450q0 9 -6.5 15.5t-15.5 6.5h-330q-9 0 -15.5 -6.5t-6.5 -15.5v-450h-108v580h460z" />
+<glyph unicode="o" horiz-adv-x="692" d="M181 580h330q54 0 92 -38t38 -92v-320q0 -54 -38 -92t-92 -38h-330q-54 0 -92 38t-38 92v320q0 54 38 92t92 38zM511 472h-330q-9 0 -15.5 -6.5t-6.5 -15.5v-320q0 -9 6.5 -15.5t15.5 -6.5h330q9 0 15.5 6.5t6.5 15.5v320q0 9 -6.5 15.5t-15.5 6.5z" />
+<glyph unicode="p" horiz-adv-x="664" d="M514 580q54 0 92 -38t38 -92v-320q0 -54 -38 -92t-92 -38h-352v-230h-108v810h460zM536 130v320q0 9 -6.5 15.5t-15.5 6.5h-330q-9 0 -15.5 -6.5t-6.5 -15.5v-320q0 -9 6.5 -15.5t15.5 -6.5h330q9 0 15.5 6.5t6.5 15.5z" />
+<glyph unicode="q" horiz-adv-x="664" d="M20 450q0 54 38 92t92 38h460v-810h-108v230h-352q-54 0 -92 38t-38 92v320zM128 450v-320q0 -9 6.5 -15.5t15.5 -6.5h330q9 0 15.5 6.5t6.5 15.5v320q0 9 -6.5 15.5t-15.5 6.5h-330q-9 0 -15.5 -6.5t-6.5 -15.5z" />
+<glyph unicode="r" horiz-adv-x="512" d="M182 580h324v-108h-324q-9 0 -15.5 -6.5t-6.5 -15.5v-450h-108v130v320q0 54 38 92t92 38z" />
+<glyph unicode="s" horiz-adv-x="686" d="M638 450v-22h-108v22q0 9 -6.5 15.5t-15.5 6.5h-330q-9 0 -15.5 -6.5t-6.5 -15.5v-84q0 -9 6.5 -15.5t15.5 -6.5h330q54 0 92 -38t38 -92v-84q0 -54 -38 -92t-92 -38h-330q-54 0 -92 38t-38 92v22h108v-22q0 -9 6.5 -15.5t15.5 -6.5h330q9 0 15.5 6.5t6.5 15.5v84 q0 9 -6.5 15.5t-15.5 6.5h-330q-54 0 -92 38t-38 92v84q0 54 38 92t92 38h330q54 0 92 -38t38 -92z" />
+<glyph unicode="t" horiz-adv-x="410" d="M399 472h-238v-342q0 -9 6.5 -15.5t15.5 -6.5h216v-108h-216q-54 0 -92 38t-38 92v320v320h108v-190h238v-108z" />
+<glyph unicode="u" horiz-adv-x="695" d="M535 580h108v-450q0 -54 -38 -92t-92 -38h-330q-54 0 -92 38t-38 92v450h108v-450q0 -9 6.5 -15.5t15.5 -6.5h330q9 0 15.5 6.5t6.5 15.5v450z" />
+<glyph unicode="v" horiz-adv-x="790" d="M645 580h124l-320 -580h-108l-320 580h125l249 -458z" />
+<glyph unicode="w" horiz-adv-x="1060" d="M921 580h115l-218 -580h-88l-195 431l-184 -431l-2 1l1 -1h-87l-228 580h115l157 -385l167 385h123l177 -385z" />
+<glyph unicode="x" horiz-adv-x="692" d="M518 580h128v-15l-230 -270l230 -280v-15h-128l-172 211l-172 -211h-128v15l229 280l-229 270v15h128l172 -201z" />
+<glyph unicode="y" horiz-adv-x="685" d="M632 222v-2v-320q0 -54 -38 -92t-92 -38h-358v108h358q9 0 15.5 6.5t6.5 15.5v100h-352q-54 0 -92 38t-38 92v448h108v-448q0 -9 6.5 -15.5t15.5 -6.5h330q9 0 15.5 6.5t6.5 15.5v448h108v-356z" />
+<glyph unicode="z" horiz-adv-x="698" d="M54 472v108h590v-128l-446 -344h446v-108h-590v128l446 344h-446z" />
+<glyph unicode="{" horiz-adv-x="289" d="M175 308v-178q0 -9 6.5 -15.5t15.5 -6.5h42v-108h-42q-54 0 -92 38t-38 92v156l-44 26v108l44 25v145q0 54 38 92t92 38h42v-108h-42q-9 0 -15.5 -6.5t-6.5 -15.5v-169l-70 -55z" />
+<glyph unicode="|" horiz-adv-x="214" d="M54 -109v937h108v-937h-108z" />
+<glyph unicode="}" horiz-adv-x="289" d="M115 130v178l70 58l-70 55v169q0 9 -6.5 15.5t-15.5 6.5h-42v108h42q54 0 92 -38t38 -92v-145l44 -25v-108l-44 -26v-156q0 -54 -38 -92t-92 -38h-42v108h42q9 0 15.5 6.5t6.5 15.5z" />
+<glyph unicode="~" horiz-adv-x="404" d="M298 298q39 0 78 26v-74q-42 -18 -78 -18q-35 0 -98 34t-102 34q-60 0 -74 -23v75q33 14 74 14q39 0 102.5 -32t97.5 -36z" />
+<glyph unicode="&#xa1;" horiz-adv-x="210" d="M161 720v-108h-108v108h108zM161 0h-108v520h108v-520z" />
+<glyph unicode="&#xa2;" horiz-adv-x="636" d="M621 482h-239v-374h239v-108h-239v-109h-108v109h-111q-54 0 -92 38t-38 92v330q0 54 38 92t92 38h111v128h108v-128h239v-108zM274 108v374h-111q-9 0 -15.5 -6.5t-6.5 -15.5v-330q0 -9 6.5 -15.5t15.5 -6.5h111z" />
+<glyph unicode="&#xa3;" horiz-adv-x="734" d="M687 560h-108v30q0 9 -6.5 15.5t-15.5 6.5h-288q-9 0 -15.5 -6.5t-6.5 -15.5v-176h334v-108h-334v-198h440v-108h-648v108h100v198h-100v108h100v176q0 54 38 92t92 38h288q54 0 92 -38t38 -92v-30z" />
+<glyph unicode="&#xa8;" horiz-adv-x="385" d="M332 935v-108h-108v108h108zM162 935v-108h-108v108h108z" />
+<glyph unicode="&#xb0;" horiz-adv-x="439" d="M175 720h90q54 0 92 -38t38 -92v-80q0 -54 -38 -92t-92 -38h-90q-54 0 -92 38t-38 92v80q0 54 38 92t92 38zM155 468h130q9 0 15.5 6.5t6.5 15.5v120q0 9 -6.5 15.5t-15.5 6.5h-130q-9 0 -15.5 -6.5t-6.5 -15.5v-120q0 -9 6.5 -15.5t15.5 -6.5z" />
+<glyph unicode="&#xb4;" horiz-adv-x="213" d="M33 827l40 162h108l-40 -162h-108z" />
+<glyph unicode="&#xb6;" horiz-adv-x="833" d="M56 589q0 53 38 91.5t92 38.5h590v-719h-108v257h-101v-257h-108v257h-273q-54 0 -92 38.5t-38 91.5v202zM567 611v-246h101v246h-101zM164 589v-202q0 -9 6.5 -15.5t15.5 -6.5h273v246h-273q-9 0 -15.5 -6.5t-6.5 -15.5z" />
+<glyph unicode="&#xb8;" horiz-adv-x="213" d="M33 -162l40 162h108l-40 -162h-108z" />
+<glyph unicode="&#xbf;" horiz-adv-x="675" d="M646 0h-497q-54 0 -92 38t-38 92v184q0 54 38 92t92 38h259q9 0 15.5 6.5t6.5 15.5v61h108v-61q0 -54 -38 -92t-92 -38h-259q-9 0 -15.5 -6.5t-6.5 -15.5v-184q0 -9 6.5 -15.5t15.5 -6.5h497v-108zM538 720v-108h-108v108h108z" />
+<glyph unicode="&#xc0;" horiz-adv-x="836" d="M188 720h460q54 0 92 -38t38 -92v-590h-108v252h-504v-252h-108v590q0 54 38 92t92 38zM166 360h504v230q0 9 -6.5 15.5t-15.5 6.5h-460q-9 0 -15.5 -6.5t-6.5 -15.5v-230zM452 982l40 -162h-108l-40 162h108z" />
+<glyph unicode="&#xc1;" horiz-adv-x="836" d="M188 720h460q54 0 92 -38t38 -92v-590h-108v252h-504v-252h-108v590q0 54 38 92t92 38zM166 360h504v230q0 9 -6.5 15.5t-15.5 6.5h-460q-9 0 -15.5 -6.5t-6.5 -15.5v-230zM344 819l40 162h108l-40 -162h-108z" />
+<glyph unicode="&#xc2;" horiz-adv-x="836" d="M188 720h460q54 0 92 -38t38 -92v-590h-108v252h-504v-252h-108v590q0 54 38 92t92 38zM166 360h504v230q0 9 -6.5 15.5t-15.5 6.5h-460q-9 0 -15.5 -6.5t-6.5 -15.5v-230zM370 819h-74l85 141h74l85 -141h-75l-47 76z" />
+<glyph unicode="&#xc3;" horiz-adv-x="836" d="M188 720h460q54 0 92 -38t38 -92v-590h-108v252h-504v-252h-108v590q0 54 38 92t92 38zM166 360h504v230q0 9 -6.5 15.5t-15.5 6.5h-460q-9 0 -15.5 -6.5t-6.5 -15.5v-230zM516 890q39 0 78 26v-74q-42 -18 -78 -18q-35 0 -98 34t-102 34q-60 0 -74 -23v75q33 14 74 14 q39 0 102.5 -32t97.5 -36z" />
+<glyph unicode="&#xc4;" horiz-adv-x="836" d="M188 720h460q54 0 92 -38t38 -92v-590h-108v252h-504v-252h-108v590q0 54 38 92t92 38zM166 360h504v230q0 9 -6.5 15.5t-15.5 6.5h-460q-9 0 -15.5 -6.5t-6.5 -15.5v-230zM557 918v-108h-108v108h108zM387 918v-108h-108v108h108z" />
+<glyph unicode="&#xc5;" horiz-adv-x="836" d="M188 720h460q54 0 92 -38t38 -92v-590h-108v252h-504v-252h-108v590q0 54 38 92t92 38zM166 360h504v230q0 9 -6.5 15.5t-15.5 6.5h-460q-9 0 -15.5 -6.5t-6.5 -15.5v-230zM390 981h56q22 0 38 -15.5t16 -37.5v-54q0 -22 -16 -37.5t-38 -15.5h-56q-22 0 -38 15.5 t-16 37.5v54q0 22 16 37.5t38 15.5zM385 861h66q9 0 9 10v60q0 10 -9 10h-66q-9 0 -9 -10v-60q0 -10 9 -10z" />
+<glyph unicode="&#xc6;" horiz-adv-x="1375" d="M774 612v-198h444v-108h-444v-198h552v-108h-660v252h-504v-252h-108v590q0 54 38 92t92 38h1142v-108h-552zM666 360v230q0 9 -6.5 15.5t-15.5 6.5h-460q-9 0 -15.5 -6.5t-6.5 -15.5v-230h504z" />
+<glyph unicode="&#xc7;" horiz-adv-x="822" d="M774 612h-588q-9 0 -15.5 -6.5t-6.5 -15.5v-460q0 -9 6.5 -15.5t15.5 -6.5h588v-108h-289l-40 -162h-108l40 162h-191q-54 0 -92 38t-38 92v460q0 54 38 92t92 38h588v-108z" />
+<glyph unicode="&#xc8;" horiz-adv-x="766" d="M718 720v-108h-552v-198h444v-108h-444v-198h552v-108h-660v720h660zM417 982l40 -162h-108l-40 162h108z" />
+<glyph unicode="&#xc9;" horiz-adv-x="766" d="M718 720v-108h-552v-198h444v-108h-444v-198h552v-108h-660v720h660zM309 820l40 162h108l-40 -162h-108z" />
+<glyph unicode="&#xca;" horiz-adv-x="766" d="M718 720v-108h-552v-198h444v-108h-444v-198h552v-108h-660v720h660zM335 819h-74l85 141h74l85 -141h-75l-47 76z" />
+<glyph unicode="&#xcb;" horiz-adv-x="766" d="M718 720v-108h-552v-198h444v-108h-444v-198h552v-108h-660v720h660zM522 928v-108h-108v108h108zM352 928v-108h-108v108h108z" />
+<glyph unicode="&#xcc;" horiz-adv-x="220" d="M57 0v720h108v-720h-108zM144 982l40 -162h-108l-40 162h108z" />
+<glyph unicode="&#xcd;" horiz-adv-x="220" d="M57 0v720h108v-720h-108zM36 820l40 162h108l-40 -162h-108z" />
+<glyph unicode="&#xce;" horiz-adv-x="220" d="M57 0v720h108v-720h-108zM62 819h-74l85 141h74l85 -141h-75l-47 76z" />
+<glyph unicode="&#xcf;" horiz-adv-x="220" d="M57 0v720h108v-720h-108zM249 928v-108h-108v108h108zM79 928v-108h-108v108h108z" />
+<glyph unicode="&#xd1;" horiz-adv-x="832" d="M668 144v576h108v-720h-128l-484 576v-576h-108v720h128zM514 890q39 0 78 26v-74q-42 -18 -78 -18q-35 0 -98 34t-102 34q-60 0 -74 -23v75q33 14 74 14q39 0 102.5 -32t97.5 -36z" />
+<glyph unicode="&#xd2;" d="M184 720h460q54 0 92 -38t38 -92v-460q0 -54 -38 -92t-92 -38h-460q-54 0 -92 38t-38 92v460q0 54 38 92t92 38zM184 108h460q9 0 15.5 6.5t6.5 15.5v460q0 9 -6.5 15.5t-15.5 6.5h-460q-9 0 -15.5 -6.5t-6.5 -15.5v-460q0 -9 6.5 -15.5t15.5 -6.5zM448 982l40 -162h-108 l-40 162h108z" />
+<glyph unicode="&#xd3;" d="M184 720h460q54 0 92 -38t38 -92v-460q0 -54 -38 -92t-92 -38h-460q-54 0 -92 38t-38 92v460q0 54 38 92t92 38zM184 108h460q9 0 15.5 6.5t6.5 15.5v460q0 9 -6.5 15.5t-15.5 6.5h-460q-9 0 -15.5 -6.5t-6.5 -15.5v-460q0 -9 6.5 -15.5t15.5 -6.5zM340 820l40 162h108 l-40 -162h-108z" />
+<glyph unicode="&#xd4;" d="M184 720h460q54 0 92 -38t38 -92v-460q0 -54 -38 -92t-92 -38h-460q-54 0 -92 38t-38 92v460q0 54 38 92t92 38zM184 108h460q9 0 15.5 6.5t6.5 15.5v460q0 9 -6.5 15.5t-15.5 6.5h-460q-9 0 -15.5 -6.5t-6.5 -15.5v-460q0 -9 6.5 -15.5t15.5 -6.5zM366 819h-74l85 141 h74l85 -141h-75l-47 76z" />
+<glyph unicode="&#xd5;" d="M184 720h460q54 0 92 -38t38 -92v-460q0 -54 -38 -92t-92 -38h-460q-54 0 -92 38t-38 92v460q0 54 38 92t92 38zM184 108h460q9 0 15.5 6.5t6.5 15.5v460q0 9 -6.5 15.5t-15.5 6.5h-460q-9 0 -15.5 -6.5t-6.5 -15.5v-460q0 -9 6.5 -15.5t15.5 -6.5zM512 890q39 0 78 26 v-74q-42 -18 -78 -18q-35 0 -98 34t-102 34q-60 0 -74 -23v75q33 14 74 14q39 0 102.5 -32t97.5 -36z" />
+<glyph unicode="&#xd6;" d="M184 720h460q54 0 92 -38t38 -92v-460q0 -54 -38 -92t-92 -38h-460q-54 0 -92 38t-38 92v460q0 54 38 92t92 38zM184 108h460q9 0 15.5 6.5t6.5 15.5v460q0 9 -6.5 15.5t-15.5 6.5h-460q-9 0 -15.5 -6.5t-6.5 -15.5v-460q0 -9 6.5 -15.5t15.5 -6.5zM553 928v-108h-108 v108h108zM383 928v-108h-108v108h108z" />
+<glyph unicode="&#xd7;" horiz-adv-x="546" d="M493 510v-15l-150 -195l150 -195v-15h-128l-92 126l-92 -126h-128v15l149 195l-149 195v15h128l92 -126l92 126h128z" />
+<glyph unicode="&#xd9;" d="M666 130v590h108v-590q0 -54 -38 -92t-92 -38h-460q-54 0 -92 38t-38 92v590h108v-590q0 -9 6.5 -15.5t15.5 -6.5h460q9 0 15.5 6.5t6.5 15.5zM448 982l40 -162h-108l-40 162h108z" />
+<glyph unicode="&#xda;" d="M666 130v590h108v-590q0 -54 -38 -92t-92 -38h-460q-54 0 -92 38t-38 92v590h108v-590q0 -9 6.5 -15.5t15.5 -6.5h460q9 0 15.5 6.5t6.5 15.5zM340 820l40 162h108l-40 -162h-108z" />
+<glyph unicode="&#xdb;" d="M666 130v590h108v-590q0 -54 -38 -92t-92 -38h-460q-54 0 -92 38t-38 92v590h108v-590q0 -9 6.5 -15.5t15.5 -6.5h460q9 0 15.5 6.5t6.5 15.5zM366 819h-74l85 141h74l85 -141h-75l-47 76z" />
+<glyph unicode="&#xdc;" d="M666 130v590h108v-590q0 -54 -38 -92t-92 -38h-460q-54 0 -92 38t-38 92v590h108v-590q0 -9 6.5 -15.5t15.5 -6.5h460q9 0 15.5 6.5t6.5 15.5zM553 928v-108h-108v108h108zM383 928v-108h-108v108h108z" />
+<glyph unicode="&#xdd;" horiz-adv-x="806" d="M661 720h128l-332 -450v-270h-108v270l-332 450h127l259 -328zM329 820l40 162h108l-40 -162h-108z" />
+<glyph unicode="&#xdf;" horiz-adv-x="833" d="M777 612v-166q0 -43 -25 -76q25 -33 25 -76v-164q0 -54 -38 -92t-92 -38h-374v108h374q9 0 15.5 6.5t6.5 15.5v164q0 9 -6.5 15.5t-15.5 6.5h-374v97h374q9 0 15.5 6.5t6.5 15.5v154q0 9 -6.5 15.5t-15.5 6.5h-460q-9 0 -15.5 -6.5t-6.5 -15.5v-589h-108v590q0 54 38 92 t92 38h460q48 0 85 -31t45 -77z" />
+<glyph unicode="&#xe0;" horiz-adv-x="725" d="M512 580q54 0 92 -38t38 -92v-450h-460q-54 0 -92 38t-38 92v214h482v106q0 9 -6.5 15.5t-15.5 6.5h-460v108h460zM534 108v128h-374v-106q0 -9 6.5 -15.5t15.5 -6.5h352zM396 880l40 -162h-108l-40 162h108z" />
+<glyph unicode="&#xe1;" horiz-adv-x="725" d="M512 580q54 0 92 -38t38 -92v-450h-460q-54 0 -92 38t-38 92v214h482v106q0 9 -6.5 15.5t-15.5 6.5h-460v108h460zM534 108v128h-374v-106q0 -9 6.5 -15.5t15.5 -6.5h352zM288 718l40 162h108l-40 -162h-108z" />
+<glyph unicode="&#xe2;" horiz-adv-x="725" d="M512 580q54 0 92 -38t38 -92v-450h-460q-54 0 -92 38t-38 92v214h482v106q0 9 -6.5 15.5t-15.5 6.5h-460v108h460zM534 108v128h-374v-106q0 -9 6.5 -15.5t15.5 -6.5h352zM314 718h-74l85 141h74l85 -141h-75l-47 76z" />
+<glyph unicode="&#xe3;" horiz-adv-x="725" d="M512 580q54 0 92 -38t38 -92v-450h-460q-54 0 -92 38t-38 92v214h482v106q0 9 -6.5 15.5t-15.5 6.5h-460v108h460zM534 108v128h-374v-106q0 -9 6.5 -15.5t15.5 -6.5h352zM460 787q39 0 78 26v-74q-42 -18 -78 -18q-35 0 -98 34t-102 34q-60 0 -74 -23v75q33 14 74 14 q39 0 102.5 -32t97.5 -36z" />
+<glyph unicode="&#xe4;" horiz-adv-x="725" d="M512 580q54 0 92 -38t38 -92v-450h-460q-54 0 -92 38t-38 92v214h482v106q0 9 -6.5 15.5t-15.5 6.5h-460v108h460zM534 108v128h-374v-106q0 -9 6.5 -15.5t15.5 -6.5h352zM501 826v-108h-108v108h108zM331 826v-108h-108v108h108z" />
+<glyph unicode="&#xe5;" horiz-adv-x="725" d="M512 580q54 0 92 -38t38 -92v-450h-460q-54 0 -92 38t-38 92v214h482v106q0 9 -6.5 15.5t-15.5 6.5h-460v108h460zM534 108v128h-374v-106q0 -9 6.5 -15.5t15.5 -6.5h352zM334 878h56q22 0 38 -15.5t16 -37.5v-54q0 -22 -16 -37.5t-38 -15.5h-56q-22 0 -38 15.5t-16 37.5 v54q0 22 16 37.5t38 15.5zM329 758h66q9 0 9 10v60q0 10 -9 10h-66q-9 0 -9 -10v-60q0 -10 9 -10z" />
+<glyph unicode="&#xe6;" horiz-adv-x="1178" d="M995 580q54 0 92 -38t38 -92v-214h-482v-109q2 -19 22 -19h460v-108h-942q-54 0 -92 38t-38 92v214h482v106q0 9 -6.5 15.5t-15.5 6.5h-460v108h942zM535 108v128h-374v-106q0 -9 6.5 -15.5t15.5 -6.5h352zM643 344h374v106q0 9 -6.5 15.5t-15.5 6.5h-330 q-9 0 -15.5 -6.5t-6.5 -15.5v-106z" />
+<glyph unicode="&#xe7;" horiz-adv-x="693" d="M181 108h460v-108h-460q-54 0 -92 38t-38 92v320q0 54 38 92t92 38h458v-108h-458q-9 0 -15.5 -6.5t-6.5 -15.5v-320q0 -9 6.5 -15.5t15.5 -6.5zM272 -162l40 162h108l-40 -162h-108z" />
+<glyph unicode="&#xe8;" horiz-adv-x="638" d="M511 580q54 0 92 -38t38 -92v-214h-482v-106q0 -9 6.5 -15.5t15.5 -6.5h460v-108h-460q-54 0 -92 38t-38 92v320q0 54 38 92t92 38h330zM159 344h374v106q0 9 -6.5 15.5t-15.5 6.5h-330q-9 0 -15.5 -6.5t-6.5 -15.5v-106zM353 880l40 -162h-108l-40 162h108z" />
+<glyph unicode="&#xe9;" horiz-adv-x="638" d="M511 580q54 0 92 -38t38 -92v-214h-482v-106q0 -9 6.5 -15.5t15.5 -6.5h460v-108h-460q-54 0 -92 38t-38 92v320q0 54 38 92t92 38h330zM159 344h374v106q0 9 -6.5 15.5t-15.5 6.5h-330q-9 0 -15.5 -6.5t-6.5 -15.5v-106zM245 719l40 162h108l-40 -162h-108z" />
+<glyph unicode="&#xea;" horiz-adv-x="638" d="M511 580q54 0 92 -38t38 -92v-214h-482v-106q0 -9 6.5 -15.5t15.5 -6.5h460v-108h-460q-54 0 -92 38t-38 92v320q0 54 38 92t92 38h330zM159 344h374v106q0 9 -6.5 15.5t-15.5 6.5h-330q-9 0 -15.5 -6.5t-6.5 -15.5v-106zM271 718h-74l85 141h74l85 -141h-75l-47 76z" />
+<glyph unicode="&#xeb;" horiz-adv-x="638" d="M511 580q54 0 92 -38t38 -92v-214h-482v-106q0 -9 6.5 -15.5t15.5 -6.5h460v-108h-460q-54 0 -92 38t-38 92v320q0 54 38 92t92 38h330zM159 344h374v106q0 9 -6.5 15.5t-15.5 6.5h-330q-9 0 -15.5 -6.5t-6.5 -15.5v-106zM458 826v-108h-108v108h108zM288 826v-108h-108 v108h108z" />
+<glyph unicode="&#xec;" horiz-adv-x="214" d="M56 0v580h108v-580h-108zM124 881l40 -162h-108l-40 162h108z" />
+<glyph unicode="&#xed;" horiz-adv-x="214" d="M51 0v580h108v-580h-108zM49 718l40 162h108l-40 -162h-108z" />
+<glyph unicode="&#xee;" horiz-adv-x="214" d="M51 0v580h108v-580h-108zM59 718h-74l85 141h74l85 -141h-75l-47 76z" />
+<glyph unicode="&#xef;" horiz-adv-x="214" d="M55 0v580h108v-580h-108zM246 828v-108h-108v108h108zM76 828v-108h-108v108h108z" />
+<glyph unicode="&#xf1;" horiz-adv-x="708" d="M514 580q54 0 92 -38t38 -92v-450h-108v450q0 9 -6.5 15.5t-15.5 6.5h-330q-9 0 -15.5 -6.5t-6.5 -15.5v-450h-108v580h460zM452 786q39 0 78 26v-74q-42 -18 -78 -18q-35 0 -98 34t-102 34q-60 0 -74 -23v75q33 14 74 14q39 0 102.5 -32t97.5 -36z" />
+<glyph unicode="&#xf2;" horiz-adv-x="692" d="M181 580h330q54 0 92 -38t38 -92v-320q0 -54 -38 -92t-92 -38h-330q-54 0 -92 38t-38 92v320q0 54 38 92t92 38zM511 472h-330q-9 0 -15.5 -6.5t-6.5 -15.5v-320q0 -9 6.5 -15.5t15.5 -6.5h330q9 0 15.5 6.5t6.5 15.5v320q0 9 -6.5 15.5t-15.5 6.5zM380 881l40 -162h-108 l-40 162h108z" />
+<glyph unicode="&#xf3;" horiz-adv-x="692" d="M181 580h330q54 0 92 -38t38 -92v-320q0 -54 -38 -92t-92 -38h-330q-54 0 -92 38t-38 92v320q0 54 38 92t92 38zM511 472h-330q-9 0 -15.5 -6.5t-6.5 -15.5v-320q0 -9 6.5 -15.5t15.5 -6.5h330q9 0 15.5 6.5t6.5 15.5v320q0 9 -6.5 15.5t-15.5 6.5zM272 719l40 162h108 l-40 -162h-108z" />
+<glyph unicode="&#xf4;" horiz-adv-x="692" d="M181 580h330q54 0 92 -38t38 -92v-320q0 -54 -38 -92t-92 -38h-330q-54 0 -92 38t-38 92v320q0 54 38 92t92 38zM511 472h-330q-9 0 -15.5 -6.5t-6.5 -15.5v-320q0 -9 6.5 -15.5t15.5 -6.5h330q9 0 15.5 6.5t6.5 15.5v320q0 9 -6.5 15.5t-15.5 6.5zM298 718h-74l85 141 h74l85 -141h-75l-47 76z" />
+<glyph unicode="&#xf5;" horiz-adv-x="692" d="M181 580h330q54 0 92 -38t38 -92v-320q0 -54 -38 -92t-92 -38h-330q-54 0 -92 38t-38 92v320q0 54 38 92t92 38zM511 472h-330q-9 0 -15.5 -6.5t-6.5 -15.5v-320q0 -9 6.5 -15.5t15.5 -6.5h330q9 0 15.5 6.5t6.5 15.5v320q0 9 -6.5 15.5t-15.5 6.5zM444 786q39 0 78 26 v-74q-42 -18 -78 -18q-35 0 -98 34t-102 34q-60 0 -74 -23v75q33 14 74 14q39 0 102.5 -32t97.5 -36z" />
+<glyph unicode="&#xf6;" horiz-adv-x="692" d="M181 580h330q54 0 92 -38t38 -92v-320q0 -54 -38 -92t-92 -38h-330q-54 0 -92 38t-38 92v320q0 54 38 92t92 38zM511 472h-330q-9 0 -15.5 -6.5t-6.5 -15.5v-320q0 -9 6.5 -15.5t15.5 -6.5h330q9 0 15.5 6.5t6.5 15.5v320q0 9 -6.5 15.5t-15.5 6.5zM485 828v-108h-108 v108h108zM315 828v-108h-108v108h108z" />
+<glyph unicode="&#xf7;" horiz-adv-x="502" d="M498 350v-108h-480v108h480zM201 108h108v-108h-108v108zM309 588v-108h-108v108h108z" />
+<glyph unicode="&#xf9;" horiz-adv-x="695" d="M535 580h108v-450q0 -54 -38 -92t-92 -38h-330q-54 0 -92 38t-38 92v450h108v-450q0 -9 6.5 -15.5t15.5 -6.5h330q9 0 15.5 6.5t6.5 15.5v450zM381 881l40 -162h-108l-40 162h108z" />
+<glyph unicode="&#xfa;" horiz-adv-x="695" d="M535 580h108v-450q0 -54 -38 -92t-92 -38h-330q-54 0 -92 38t-38 92v450h108v-450q0 -9 6.5 -15.5t15.5 -6.5h330q9 0 15.5 6.5t6.5 15.5v450zM273 719l40 162h108l-40 -162h-108z" />
+<glyph unicode="&#xfb;" horiz-adv-x="695" d="M535 580h108v-450q0 -54 -38 -92t-92 -38h-330q-54 0 -92 38t-38 92v450h108v-450q0 -9 6.5 -15.5t15.5 -6.5h330q9 0 15.5 6.5t6.5 15.5v450zM299 719h-74l85 141h74l85 -141h-75l-47 76z" />
+<glyph unicode="&#xfc;" horiz-adv-x="695" d="M535 580h108v-450q0 -54 -38 -92t-92 -38h-330q-54 0 -92 38t-38 92v450h108v-450q0 -9 6.5 -15.5t15.5 -6.5h330q9 0 15.5 6.5t6.5 15.5v450zM486 826v-108h-108v108h108zM316 826v-108h-108v108h108z" />
+<glyph unicode="&#xfd;" horiz-adv-x="688" d="M632 222v-2v-320q0 -54 -38 -92t-92 -38h-358v108h358q9 0 15.5 6.5t6.5 15.5v100h-352q-54 0 -92 38t-38 92v448h108v-448q0 -9 6.5 -15.5t15.5 -6.5h330q9 0 15.5 6.5t6.5 15.5v448h108v-356zM270 719l40 162h108l-40 -162h-108z" />
+<glyph unicode="&#xff;" horiz-adv-x="688" d="M632 222v-2v-320q0 -54 -38 -92t-92 -38h-358v108h358q9 0 15.5 6.5t6.5 15.5v100h-352q-54 0 -92 38t-38 92v448h108v-448q0 -9 6.5 -15.5t15.5 -6.5h330q9 0 15.5 6.5t6.5 15.5v448h108v-356zM483 828v-108h-108v108h108zM313 828v-108h-108v108h108z" />
+<glyph unicode="&#x131;" horiz-adv-x="214" d="M52 0v580h108v-580h-108z" />
+<glyph unicode="&#x152;" horiz-adv-x="1374" d="M773 612v-198h444v-108h-444v-198h552v-108h-1142q-54 0 -92 38t-38 92v460q0 54 38 92t92 38h1142v-108h-552zM643 108q9 0 15.5 6.5t6.5 15.5v460q0 9 -6.5 15.5t-15.5 6.5h-460q-9 0 -15.5 -6.5t-6.5 -15.5v-460q0 -9 6.5 -15.5t15.5 -6.5h460z" />
+<glyph unicode="&#x153;" horiz-adv-x="1177" d="M1124 236h-482v-106q0 -9 6.5 -15.5t15.5 -6.5h460v-108h-942q-54 0 -92 38t-38 92v320q0 54 38 92t92 38h812q54 0 92 -38t38 -92v-214zM664 472q-9 0 -15.5 -6.5t-6.5 -15.5v-106h374v106q0 9 -6.5 15.5t-15.5 6.5h-330zM512 108q9 0 15.5 6.5t6.5 15.5v320 q0 9 -6.5 15.5t-15.5 6.5h-330q-9 0 -15.5 -6.5t-6.5 -15.5v-320q0 -9 6.5 -15.5t15.5 -6.5h330z" />
+<glyph unicode="&#x160;" horiz-adv-x="822" d="M771 590v-42h-108v42q0 9 -6.5 15.5t-15.5 6.5h-460q-9 0 -15.5 -6.5t-6.5 -15.5v-154q0 -9 6.5 -15.5t15.5 -6.5h460q54 0 92 -38t38 -92v-154q0 -54 -38 -92t-92 -38h-460q-54 0 -92 38t-38 92v42h108v-42q0 -9 6.5 -15.5t15.5 -6.5h460q9 0 15.5 6.5t6.5 15.5v154 q0 9 -6.5 15.5t-15.5 6.5h-460q-54 0 -92 38t-38 92v154q0 54 38 92t92 38h460q54 0 92 -38t38 -92zM289 960h74l48 -76l47 76h75l-85 -141h-74z" />
+<glyph unicode="&#x161;" horiz-adv-x="687" d="M638 450v-22h-108v22q0 9 -6.5 15.5t-15.5 6.5h-330q-9 0 -15.5 -6.5t-6.5 -15.5v-84q0 -9 6.5 -15.5t15.5 -6.5h330q54 0 92 -38t38 -92v-84q0 -54 -38 -92t-92 -38h-330q-54 0 -92 38t-38 92v22h108v-22q0 -9 6.5 -15.5t15.5 -6.5h330q9 0 15.5 6.5t6.5 15.5v84 q0 9 -6.5 15.5t-15.5 6.5h-330q-54 0 -92 38t-38 92v84q0 54 38 92t92 38h330q54 0 92 -38t38 -92zM221 859h74l48 -76l47 76h75l-85 -141h-74z" />
+<glyph unicode="&#x178;" horiz-adv-x="806" d="M661 720h128l-332 -450v-270h-108v270l-332 450h127l259 -328zM542 928v-108h-108v108h108zM372 928v-108h-108v108h108z" />
+<glyph unicode="&#x17d;" horiz-adv-x="821" d="M51 612v108h720v-128l-576 -484h576v-108h-720v128l576 484h-576zM288 960h74l48 -76l47 76h75l-85 -141h-74z" />
+<glyph unicode="&#x17e;" horiz-adv-x="698" d="M54 472v108h590v-128l-446 -344h446v-108h-590v128l446 344h-446zM227 862h74l48 -76l47 76h75l-85 -141h-74z" />
+<glyph unicode="&#x2c6;" horiz-adv-x="300" d="M102 826h-74l85 141h74l85 -141h-75l-47 76z" />
+<glyph unicode="&#x2c7;" horiz-adv-x="297" d="M27 967h74l48 -76l47 76h75l-85 -141h-74z" />
+<glyph unicode="&#x2d8;" horiz-adv-x="287" d="M195 911h51v-7q0 -32 -22 -54.5t-55 -22.5h-52q-33 0 -55 22.5t-22 54.5v7h51v-18q0 -14 14 -14h76q14 0 14 14v18z" />
+<glyph unicode="&#x2d9;" horiz-adv-x="233" d="M99 968h36q22 0 38 -15.5t16 -37.5v-34q0 -22 -16 -37.5t-38 -15.5h-36q-22 0 -38 15.5t-16 37.5v34q0 22 16 37.5t38 15.5z" />
+<glyph unicode="&#x2da;" horiz-adv-x="233" d="M89 988h56q22 0 38 -15.5t16 -37.5v-54q0 -22 -16 -37.5t-38 -15.5h-56q-22 0 -38 15.5t-16 37.5v54q0 22 16 37.5t38 15.5zM84 868h66q9 0 9 10v60q0 10 -9 10h-66q-9 0 -9 -10v-60q0 -10 9 -10z" />
+<glyph unicode="&#x2dc;" horiz-adv-x="403" d="M297 897q39 0 78 26v-74q-42 -18 -78 -18q-35 0 -98 34t-102 34q-60 0 -74 -23v75q33 14 74 14q39 0 102.5 -32t97.5 -36z" />
+<glyph unicode="&#x2013;" horiz-adv-x="708" d="M654 349v-108h-600v108h600z" />
+<glyph unicode="&#x2014;" horiz-adv-x="822" d="M768 349v-108h-714v108h714z" />
+<glyph unicode="&#x2018;" horiz-adv-x="194" d="M142 484h-108v108q0 48 31 84t77 44v-236z" />
+<glyph unicode="&#x2019;" horiz-adv-x="193" d="M54 720h108v-108q0 -48 -31 -84t-77 -44v236z" />
+<glyph unicode="&#x201c;" horiz-adv-x="378" d="M154 484h-108v108q0 48 31 84t77 44v-236zM325 484h-108v108q0 48 31 84t77 44v-236z" />
+<glyph unicode="&#x201d;" horiz-adv-x="378" d="M225 720h108v-108q0 -48 -31 -84t-77 -44v236zM54 720h108v-108q0 -48 -31 -84t-77 -44v236z" />
+<glyph unicode="&#x2022;" horiz-adv-x="371" d="M173 412h23q43 0 43 -42v-20q0 -42 -43 -42h-23q-42 0 -42 42v20q0 42 42 42z" />
+<glyph unicode="&#x2026;" horiz-adv-x="574" d="M162 108v-108h-108v108h108zM520 108v-108h-108v108h108zM341 108v-108h-108v108h108z" />
+<glyph unicode="&#x20ac;" horiz-adv-x="799" d="M265 108h488v-108h-488q-54 0 -92 38t-38 92v88h-100v108h100v68h-100v108h100v88q0 54 38 92t92 38h488v-108h-488q-9 0 -15.5 -6.5t-6.5 -15.5v-88h402v-108h-402v-68h402v-108h-402v-88q0 -9 6.5 -15.5t15.5 -6.5z" />
+<glyph unicode="&#x2212;" horiz-adv-x="517" d="M459 350v-108h-400v108h400z" />
+<glyph unicode="&#xe000;" horiz-adv-x="580" d="M0 580h580v-580h-580v580z" />
+<glyph unicode="&#xe002;" horiz-adv-x="771" d="M46 720h592h128v-15l-592 -705h-128v15l501 597h-501v108z" />
+<glyph unicode="&#xe003;" horiz-adv-x="784" d="M142 718h460q54 0 92 -38t38 -92v-588h-108v272q0 9 -6.5 15.5t-15.5 6.5h-460q-54 0 -92 38t-38 92v164q0 54 38 92t92 38zM437 402h187v186q0 9 -6.5 15.5t-15.5 6.5h-460q-9 0 -15.5 -6.5t-6.5 -15.5v-164q0 -9 6.5 -15.5t15.5 -6.5h295z" />
+<glyph unicode="&#xe005;" horiz-adv-x="815" d="M767 475l-108 -56l-502 -261v-50h610v-108h-590q-46 0 -81.5 29t-45.5 73l-1 122l610 317v71h-480q-9 0 -15.5 -6.5t-6.5 -15.5v-55h-108v55q0 54 38 92t92 38h460q48 0 84 -31t44 -77v-137z" />
+<glyph unicode="&#xe006;" horiz-adv-x="667" d="M435 384h-7h7zM155 720h360q54 0 92 -38t38 -92v-184q0 -54 -38 -92t-92 -38h-190q-9 0 -15.5 -6.5t-6.5 -15.5v-103h-108v103q0 54 38 92t92 38h190q9 0 15.5 6.5t6.5 15.5v184q0 9 -6.5 15.5t-15.5 6.5h-380v-108h-108v108q8 46 44 77t84 31zM303 0h-108v108h108v-108z " />
+<glyph unicode="&#xe007;" horiz-adv-x="723" d="M593 291h106v-108h-106v-183h-108v183h-476v108l366 429h108v-50l-343 -379h345v149h108v-149z" />
+<glyph unicode="&#xe008;" horiz-adv-x="1131" d="M0 720h128l484 -576v284l-233 277v15h128l484 -576v576h108v-720h-128l-251 299v-299h-128l-592 705v15z" />
+<glyph unicode="&#xe009;" horiz-adv-x="1149" d="M1018 720h128v-15l-592 -705h-128v299l-251 -299h-128v720h108v-576l484 576h128v-15l-233 -277v-284z" />
+<glyph unicode="&#xe00a;" horiz-adv-x="774" d="M54 720h108v-576l484 576h128v-15l-592 -705h-128v720z" />
+<glyph unicode="&#xe00b;" horiz-adv-x="774" d="M0 0v15l592 705h128v-720h-108v192h-323l-161 -192h-128zM612 576l-232 -276h232v276z" />
+<glyph unicode="&#xe00c;" horiz-adv-x="774" d="M54 720h128l592 -705v-15h-128l-162 192h-322v-192h-108v720zM162 576v-276h232z" />
+<glyph horiz-adv-x="401" />
+<glyph horiz-adv-x="827" d="M851 0h-124l-102 175h-427l-101 -175h-125l386 720h108zM412 597l-152 -314h303z" />
+<glyph horiz-adv-x="822" d="M773 612v-108h-108v108h-483q-9 0 -15.5 -6.5t-6.5 -15.5v-460q0 -9 6.5 -15.5t15.5 -6.5h483v108h105v-108q-8 -46 -44 -77t-84 -31h-460q-54 0 -92 38t-38 92v460q0 54 38 92t92 38h460q48 0 84 -31t44 -77h3z" />
+<glyph horiz-adv-x="818" d="M769 720v-108h-306v-504h306v-108h-720v108h306v504h-306v108h720z" />
+<glyph horiz-adv-x="645" d="M485 130v590h108v-590q0 -54 -38 -92t-92 -38h-460v108h460q9 0 15.5 6.5t6.5 15.5z" />
+<glyph horiz-adv-x="829" d="M667 433v287h108v-267q0 -37 -42.5 -66.5t-105.5 -29.5q63 0 105 -29t42 -67v-261h-108v281q0 9 -6.5 15.5t-15.5 6.5h-460q-9 0 -15.5 -6.5t-6.5 -15.5v-281h-108v720h108v-287q0 -9 6.5 -15.5t15.5 -6.5h461q9 0 15.5 6.5t6.5 15.5z" />
+<glyph horiz-adv-x="1155" d="M972 720q54 0 92 -38t38 -92v-590h-108v590q0 9 -6.5 15.5t-15.5 6.5h-352v-612h-108v590q0 9 -6.5 15.5t-15.5 6.5h-328v-612h-108v720h918z" />
+<glyph horiz-adv-x="827" d="M162 0h-108v720h590q54 0 92 -38t38 -92v-590h-108v590q0 9 -6.5 15.5t-15.5 6.5h-482v-612z" />
+<glyph horiz-adv-x="824" d="M182 720h460q54 0 92 -38t38 -92v-460q0 -54 -38 -92t-92 -38h-460q-54 0 -92 38t-38 92v460q0 54 38 92t92 38zM664 130v460q0 9 -6.5 15.5t-15.5 6.5h-460q-9 0 -15.5 -6.5t-6.5 -15.5v-460q0 -9 6.5 -15.5t15.5 -6.5h460q9 0 15.5 6.5t6.5 15.5zM466 306h-108v108h108 v-108z" />
+<glyph horiz-adv-x="868" d="M644 720q54 0 92 -38t38 -92v-460q0 -54 -38 -92t-92 -38h-176v-108h-108v108h-176q-54 0 -92 38t-38 92v460q0 54 38 92t92 38h460zM666 130v460q0 9 -6.5 15.5t-15.5 6.5h-460q-9 0 -15.5 -6.5t-6.5 -15.5v-460q0 -9 6.5 -15.5t15.5 -6.5h460q9 0 15.5 6.5t6.5 15.5z " />
+<glyph horiz-adv-x="826" d="M774 589v-202q0 -24 -13.5 -40.5t-34.5 -23.5t-37.5 -9.5t-32.5 -2.5q16 0 32.5 -2.5t38 -9.5t34.5 -23.5t13 -40.5v-235h-108v235q0 9 -6.5 15.5t-15.5 6.5h-460q-9 0 -15.5 -6.5t-6.5 -15.5v-235h-108v720l590 -1q54 0 92 -38.5t38 -91.5zM644 611h-460 q-9 0 -15.5 -6.5t-6.5 -15.5v-202q0 -9 6.5 -15.5t15.5 -6.5h460q9 0 15.5 6.5t6.5 15.5v202q0 9 -6.5 15.5t-15.5 6.5z" />
+<glyph horiz-adv-x="812" d="M516 414h120q54 0 92 -38t38 -92v-154q0 -54 -38 -92t-92 -38h-590v108h590q9 0 15.5 6.5t6.5 15.5v154q0 9 -6.5 15.5t-15.5 6.5h-460q-54 0 -92 38t-38 92v154q0 54 38 92t92 38h590v-108h-590q-9 0 -15.5 -6.5t-6.5 -15.5v-154q0 -9 6.5 -15.5t15.5 -6.5h340z" />
+<glyph horiz-adv-x="774" d="M612 144v576h108v-720h-128l-592 705v15h128z" />
+<glyph horiz-adv-x="827" d="M665 720h108v-720h-590q-54 0 -92 38t-38 92v590h108v-590q0 -9 6.5 -15.5t15.5 -6.5h482v612z" />
+<glyph horiz-adv-x="1028" d="M514 395l-332 -395h-128v720h108v-576l352 419l352 -419v576h108v-720h-128z" />
+<glyph horiz-adv-x="1155" d="M183 0q-54 0 -92 38t-38 92v590h108v-590q0 -9 6.5 -15.5t15.5 -6.5h352v612h108v-590q0 -9 6.5 -15.5t15.5 -6.5h328v612h108v-720h-918z" />
+<glyph horiz-adv-x="829" d="M667 720h108v-267q0 -42 -44 -69t-104 -27q60 0 103.5 -27t43.5 -69v-261h-108v281q0 9 -6.5 15.5t-15.5 6.5h-459q-9 0 -15.5 -6.5t-6.5 -15.5v-281h-108v261q0 42 43.5 69t103.5 27q-61 0 -104.5 27t-43.5 69v267h108v-287q0 -9 6.5 -15.5t15.5 -6.5h461q9 0 15.5 6.5 t6.5 15.5v287z" />
+<glyph horiz-adv-x="824" d="M663 720h108v-590q0 -54 -38 -92t-92 -38h-590v108h590q9 0 15.5 6.5t6.5 15.5v154q0 9 -6.5 15.5t-15.5 6.5h-460q-54 0 -92 38t-38 92v284h108v-284q0 -9 6.5 -15.5t15.5 -6.5h482v306z" />
+<glyph horiz-adv-x="818" d="M179 414h120h340q9 0 15.5 6.5t6.5 15.5v154q0 9 -6.5 15.5t-15.5 6.5h-590v108h590q54 0 92 -38t38 -92v-154q0 -54 -38 -92t-92 -38h-460q-9 0 -15.5 -6.5t-6.5 -15.5v-154q0 -9 6.5 -15.5t15.5 -6.5h590v-108h-590q-54 0 -92 38t-38 92v154q0 54 38 92t92 38z" />
+<glyph horiz-adv-x="693" d="M511 580q54 0 92 -38t38 -92v-450h-460q-54 0 -92 38t-38 92v320q0 54 38 92t92 38h330zM181 108h352v342q0 9 -6.5 15.5t-15.5 6.5h-330q-9 0 -15.5 -6.5t-6.5 -15.5v-320q0 -9 6.5 -15.5t15.5 -6.5z" />
+<glyph horiz-adv-x="725" d="M183 580h360q54 0 92 -38t38 -92v-450h-108v152h-404v-152h-108v450q0 54 38 92t92 38zM161 260h404v190q0 9 -6.5 15.5t-15.5 6.5h-360q-9 0 -15.5 -6.5t-6.5 -15.5v-190z" />
+<glyph horiz-adv-x="700" d="M611 307q43 -38 43 -96v-81q0 -54 -38 -92t-92 -38h-470v581h440q54 0 92 -38t38 -92v-88q0 -28 -13 -56zM494 473h-310q-9 0 -15.5 -6.5t-6.5 -15.5v-88q0 -9 6.5 -15.5t15.5 -6.5h310q9 0 15.5 6.5t6.5 15.5v88q0 9 -6.5 15.5t-15.5 6.5zM546 130v81q0 9 -6.5 15.5 t-15.5 6.5h-340q-9 0 -15.5 -6.5t-6.5 -15.5v-81q0 -9 6.5 -15.5t15.5 -6.5h340q9 0 15.5 6.5t6.5 15.5z" />
+<glyph horiz-adv-x="693" d="M639 473h-458q-9 0 -15.5 -6.5t-6.5 -15.5v-321q0 -9 6.5 -15.5t15.5 -6.5h458v-108h-458q-54 0 -92 38t-38 92v321q0 54 38 92t92 38h458v-108z" />
+<glyph horiz-adv-x="705" d="M54 581h470q54 0 92 -38t38 -92v-321q0 -54 -38 -92t-92 -38h-470v581zM546 130v321q0 9 -6.5 15.5t-15.5 6.5h-340q-9 0 -15.5 -6.5t-6.5 -15.5v-321q0 -9 6.5 -15.5t15.5 -6.5h340q9 0 15.5 6.5t6.5 15.5z" />
+<glyph horiz-adv-x="638" d="M584 581v-108h-422v-129h314v-108h-314v-128h422v-108h-530v581h530z" />
+<glyph horiz-adv-x="591" d="M54 581h530v-108h-422v-129h314v-108h-314v-236h-108v581z" />
+<glyph horiz-adv-x="690" d="M641 451v-28h-108v28q0 9 -6.5 15.5t-15.5 6.5h-330q-9 0 -15.5 -6.5t-6.5 -15.5v-321q0 -9 6.5 -15.5t15.5 -6.5h330q9 0 15.5 6.5t6.5 15.5v76h-170v108h278v-184q0 -54 -38 -92t-92 -38h-330q-54 0 -92 38t-38 92v321q0 54 38 92t92 38h330q54 0 92 -38t38 -92z" />
+<glyph horiz-adv-x="715" d="M553 580h108v-580h-108v236h-391v-236h-108v580h108v-236h391v236z" />
+<glyph horiz-adv-x="214" d="M54 0v580h108v-580h-108z" />
+<glyph horiz-adv-x="657" d="M497 130v450h108v-450q0 -54 -38 -92t-92 -38h-340q-54 0 -92 38t-38 92v60h108v-60q0 -9 6.5 -15.5t15.5 -6.5h340q9 0 15.5 6.5t6.5 15.5z" />
+<glyph horiz-adv-x="669" d="M644 580v-214q0 -42 -24 -76q24 -34 24 -76v-214h-108v214q0 9 -6.5 15.5t-15.5 6.5h-352v-236h-108v770h108v-426h352q9 0 15.5 6.5t6.5 15.5v214h108z" />
+<glyph horiz-adv-x="682" d="M509 580h128v-15l-249 -275l249 -275v-15h-128l-217 236h-130v-236h-108v580h108v-236h130z" />
+<glyph horiz-adv-x="659" d="M54 0v580h108v-472h492v-108h-600z" />
+<glyph horiz-adv-x="824" d="M412 252l229 329h129v-581h-108v446l-250 -357l-250 357v-446h-108v581h128z" />
+<glyph horiz-adv-x="708" d="M546 144v436h108v-580h-128l-364 437v-437h-108v580h128z" />
+<glyph horiz-adv-x="692" d="M181 580h330q54 0 92 -38t38 -92v-320q0 -54 -38 -92t-92 -38h-330q-54 0 -92 38t-38 92v320q0 54 38 92t92 38zM181 108h330q9 0 15.5 6.5t6.5 15.5v320q0 9 -6.5 15.5t-15.5 6.5h-330q-9 0 -15.5 -6.5t-6.5 -15.5v-320q0 -9 6.5 -15.5t15.5 -6.5z" />
+<glyph horiz-adv-x="660" d="M54 580h460q54 0 92 -38.5t38 -91.5v-123q0 -53 -38 -91.5t-92 -38.5h-330q-8 0 -22 2v-199h-108v580zM536 327v123q0 9 -6.5 15.5t-15.5 6.5h-330q-9 0 -15.5 -6.5t-6.5 -15.5v-123q0 -9 6.5 -15.5t15.5 -6.5h330q9 0 15.5 6.5t6.5 15.5z" />
+<glyph horiz-adv-x="770" d="M640 108h92v-108h-550q-54 0 -92 38t-38 92v320q0 54 38 92t92 38h330q54 0 92 -38t38 -92v-320q0 -8 -2 -22zM182 108h330q9 0 15.5 6.5t6.5 15.5v320q0 9 -6.5 15.5t-15.5 6.5h-330q-9 0 -15.5 -6.5t-6.5 -15.5v-320q0 -9 6.5 -15.5t15.5 -6.5z" />
+<glyph horiz-adv-x="700" d="M644 450v-123q0 -53 -38 -91.5t-92 -38.5h-63l203 -182v-15h-128l-216 197h-148v-197h-108v580h460q54 0 92 -38.5t38 -91.5zM184 305h330q9 0 15.5 6.5t6.5 15.5v123q0 9 -6.5 15.5t-15.5 6.5h-330q-9 0 -15.5 -6.5t-6.5 -15.5v-123q0 -9 6.5 -15.5t15.5 -6.5z" />
+<glyph horiz-adv-x="687" d="M639 450v-32h-108v32q0 9 -6.5 15.5t-15.5 6.5h-330q-9 0 -15.5 -6.5t-6.5 -15.5v-84q0 -9 6.5 -15.5t15.5 -6.5h330q54 0 92 -38t38 -92v-84q0 -54 -38 -92t-92 -38h-330q-54 0 -92 38t-38 92v32h108v-32q0 -9 6.5 -15.5t15.5 -6.5h330q9 0 15.5 6.5t6.5 15.5v84 q0 9 -6.5 15.5t-15.5 6.5h-330q-54 0 -92 38t-38 92v84q0 54 38 92t92 38h330q54 0 92 -38t38 -92z" />
+<glyph horiz-adv-x="644" d="M22 580h600v-108h-246v-472h-108v472h-246v108z" />
+<glyph horiz-adv-x="695" d="M535 130v450h108v-450q0 -54 -38 -92t-92 -38h-330q-54 0 -92 38t-38 92v450h108v-450q0 -9 6.5 -15.5t15.5 -6.5h330q9 0 15.5 6.5t6.5 15.5z" />
+<glyph horiz-adv-x="697" d="M535 580h108v-580h-460q-54 0 -92 38t-38 92v450h108v-450q0 -9 6.5 -15.5t15.5 -6.5h352v472z" />
+<glyph horiz-adv-x="801" d="M401 122l255 458h124l-325 -580h-108l-326 580h125z" />
+<glyph horiz-adv-x="978" d="M183 0q-54 0 -92 38t-38 92v450h107v-450q0 -9 6.5 -15.5t16.5 -6.5h229q9 0 15.5 6.5t6.5 15.5v450h108v-450q0 -9 6.5 -15.5t15.5 -6.5h230q9 0 15.5 6.5t6.5 15.5v450h108v-580h-741z" />
+<glyph horiz-adv-x="1078" d="M928 580h115l-222 -580h-88l-195 421l-184 -421l-2 1l1 -1h-87l-232 580h115l161 -385l171 385h115l181 -385z" />
+<glyph horiz-adv-x="698" d="M644 580v-214q0 -42 -24 -76q24 -34 24 -76v-214h-108v214q0 9 -6.5 15.5t-15.5 6.5h-330q-9 0 -15.5 -6.5t-6.5 -15.5v-214h-108v214q0 42 24 76q-24 34 -24 76v214h108v-214q0 -9 6.5 -15.5t15.5 -6.5h330q9 0 15.5 6.5t6.5 15.5v214h108z" />
+<glyph horiz-adv-x="692" d="M518 580h128v-15l-230 -269l230 -281v-15h-128l-172 212l-172 -212h-128v15l229 281l-229 269v15h128l172 -200z" />
+<glyph horiz-adv-x="688" d="M542 580h128l-272 -380v-200h-108v200l-272 380h127l199 -258z" />
+<glyph horiz-adv-x="692" d="M181 236q-9 0 -15.5 -6.5t-6.5 -15.5v-84q0 -9 6.5 -15.5t15.5 -6.5h460v-108h-460q-54 0 -92 38t-38 92v84q0 54 38 92t92 38h330q9 0 15.5 6.5t6.5 15.5v84q0 9 -6.5 15.5t-15.5 6.5h-460v108h460q54 0 92 -38t38 -92v-84q0 -54 -38 -92t-92 -38h-330z" />
+<glyph horiz-adv-x="698" d="M54 472v108h590v-128l-446 -344h446v-108h-590v128l446 344h-446z" />
+<hkern u1="&#x20;" u2="a" k="-39" />
+<hkern u1="A" u2="Y" k="10" />
+<hkern u1="A" u2="W" k="5" />
+<hkern u1="B" u2="Y" k="35" />
+<hkern u1="B" u2="V" k="50" />
+<hkern u1="C" u2="Y" k="-4" />
+<hkern u1="D" u2="Z" k="2" />
+<hkern u1="D" u2="V" k="16" />
+<hkern u1="E" u2="O" k="3" />
+<hkern u1="E" u2="M" k="3" />
+<hkern u1="F" u2="T" k="-40" />
+<hkern u1="F" u2="J" k="90" />
+<hkern u1="F" u2="G" k="-10" />
+<hkern u1="G" u2="Y" k="4" />
+<hkern u1="G" u2="W" k="20" />
+<hkern u1="K" u2="H" k="20" />
+<hkern u1="K" u2="A" k="5" />
+<hkern u1="L" u2="Z" k="-10" />
+<hkern u1="L" u2="Y" k="130" />
+<hkern u1="L" u2="W" k="150" />
+<hkern u1="L" u2="V" k="152" />
+<hkern u1="L" u2="M" k="-4" />
+<hkern u1="L" u2="E" k="-10" />
+<hkern u1="M" u2="c" k="10" />
+<hkern u1="O" u2="X" k="9" />
+<hkern u1="O" u2="W" k="40" />
+<hkern u1="O" u2="V" k="37" />
+<hkern u1="P" u2="J" k="80" />
+<hkern u1="R" u2="W" k="4" />
+<hkern u1="R" u2="V" k="30" />
+<hkern u1="S" u2="q" k="-10" />
+<hkern u1="S" u2="W" k="10" />
+<hkern u1="S" u2="N" k="-4" />
+<hkern u1="T" u2="z" k="10" />
+<hkern u1="T" u2="y" k="10" />
+<hkern u1="T" u2="w" k="10" />
+<hkern u1="T" u2="u" k="20" />
+<hkern u1="T" u2="s" k="30" />
+<hkern u1="T" u2="o" k="20" />
+<hkern u1="T" u2="Y" k="-7" />
+<hkern u1="T" u2="T" k="-6" />
+<hkern u1="T" u2="H" k="-10" />
+<hkern u1="V" u2="s" k="20" />
+<hkern u1="V" u2="O" k="12" />
+<hkern u1="V" u2="A" k="20" />
+<hkern u1="W" u2="u" k="55" />
+<hkern u1="W" u2="o" k="65" />
+<hkern u1="W" u2="i" k="5" />
+<hkern u1="W" u2="e" k="70" />
+<hkern u1="W" u2="a" k="50" />
+<hkern u1="W" u2="O" k="4" />
+<hkern u1="W" u2="A" k="10" />
+<hkern u1="X" u2="B" k="2" />
+<hkern u1="Y" u2="u" k="20" />
+<hkern u1="Y" u2="s" k="50" />
+<hkern u1="Y" u2="p" k="20" />
+<hkern u1="Y" u2="o" k="50" />
+<hkern u1="Y" u2="i" k="20" />
+<hkern u1="Y" u2="e" k="40" />
+<hkern u1="Y" u2="a" k="30" />
+<hkern u1="Y" u2="S" k="10" />
+<hkern u1="Z" u2="Y" k="3" />
+<hkern u1="a" u2="z" k="8" />
+<hkern u1="a" u2="x" k="5" />
+<hkern u1="a" u2="w" k="40" />
+<hkern u1="a" u2="v" k="40" />
+<hkern u1="a" u2="s" k="24" />
+<hkern u1="a" u2="r" k="20" />
+<hkern u1="a" u2="n" k="20" />
+<hkern u1="a" u2="m" k="27" />
+<hkern u1="a" u2="l" k="20" />
+<hkern u1="a" u2="j" k="5" />
+<hkern u1="a" u2="c" k="15" />
+<hkern u1="a" u2="b" k="18" />
+<hkern u1="b" u2="w" k="15" />
+<hkern u1="b" u2="v" k="23" />
+<hkern u1="b" u2="o" k="5" />
+<hkern u1="b" u2="d" k="-20" />
+<hkern u1="c" u2="z" k="20" />
+<hkern u1="c" u2="v" k="15" />
+<hkern u1="c" u2="u" k="16" />
+<hkern u1="c" u2="t" k="20" />
+<hkern u1="c" u2="k" k="15" />
+<hkern u1="c" u2="h" k="15" />
+<hkern u1="c" u2="e" k="15" />
+<hkern u1="d" u2="v" k="5" />
+<hkern u1="d" u2="u" k="24" />
+<hkern u1="d" u2="o" k="24" />
+<hkern u1="d" u2="e" k="15" />
+<hkern u1="e" u2="x" k="15" />
+<hkern u1="e" u2="w" k="40" />
+<hkern u1="e" u2="v" k="47" />
+<hkern u1="e" u2="r" k="20" />
+<hkern u1="e" u2="l" k="5" />
+<hkern u1="e" u2="j" k="3" />
+<hkern u1="e" u2="e" k="20" />
+<hkern u1="e" u2="c" k="10" />
+<hkern u1="f" u2="y" k="-8" />
+<hkern u1="f" u2="r" k="-3" />
+<hkern u1="f" u2="i" k="-5" />
+<hkern u1="f" u2="g" k="-3" />
+<hkern u1="f" u2="b" k="-14" />
+<hkern u1="f" u2="&#x2c;" k="69" />
+<hkern u1="g" u2="w" k="55" />
+<hkern u1="g" u2="u" k="16" />
+<hkern u1="g" u2="s" k="16" />
+<hkern u1="g" u2="r" k="16" />
+<hkern u1="g" u2="o" k="10" />
+<hkern u1="g" u2="j" k="-180" />
+<hkern u1="g" u2="e" k="8" />
+<hkern u1="g" u2="c" k="16" />
+<hkern u1="g" u2="a" k="5" />
+<hkern u1="i" u2="x" k="-2" />
+<hkern u1="i" u2="q" k="-20" />
+<hkern u1="i" u2="p" k="16" />
+<hkern u1="i" u2="n" k="15" />
+<hkern u1="i" u2="f" k="-1" />
+<hkern u1="i" u2="a" k="-2" />
+<hkern u1="j" u2="j" k="-172" />
+<hkern u1="j" u2="e" k="10" />
+<hkern u1="k" u2="v" k="-2" />
+<hkern u1="k" u2="l" k="-1" />
+<hkern u1="k" u2="e" k="25" />
+<hkern u1="l" u2="&#x2019;" k="10" />
+<hkern u1="l" u2="y" k="15" />
+<hkern u1="l" u2="w" k="102" />
+<hkern u1="l" u2="v" k="20" />
+<hkern u1="l" u2="u" k="-14" />
+<hkern u1="l" u2="i" k="-10" />
+<hkern u1="l" u2="d" k="-5" />
+<hkern u1="m" u2="w" k="5" />
+<hkern u1="m" u2="p" k="10" />
+<hkern u1="m" u2="m" k="31" />
+<hkern u1="m" u2="k" k="23" />
+<hkern u1="m" u2="g" k="15" />
+<hkern u1="m" u2="c" k="5" />
+<hkern u1="m" u2="a" k="10" />
+<hkern u1="n" u2="x" k="32" />
+<hkern u1="n" u2="o" k="10" />
+<hkern u1="n" u2="c" k="16" />
+<hkern u1="n" u2="b" k="8" />
+<hkern u1="o" u2="x" k="39" />
+<hkern u1="o" u2="w" k="60" />
+<hkern u1="o" u2="v" k="35" />
+<hkern u1="o" u2="u" k="15" />
+<hkern u1="o" u2="t" k="25" />
+<hkern u1="o" u2="s" k="25" />
+<hkern u1="o" u2="r" k="20" />
+<hkern u1="o" u2="o" k="30" />
+<hkern u1="o" u2="n" k="15" />
+<hkern u1="o" u2="l" k="20" />
+<hkern u1="o" u2="j" k="5" />
+<hkern u1="o" u2="a" k="16" />
+<hkern u1="p" u2="r" k="-10" />
+<hkern u1="p" u2="l" k="-5" />
+<hkern u1="q" u2="j" k="-181" />
+<hkern u1="r" u2="d" k="-30" />
+<hkern u1="r" u2="a" k="-5" />
+<hkern u1="r" u2="&#x2e;" k="20" />
+<hkern u1="r" u2="&#x2c;" k="69" />
+<hkern u1="s" u2="z" k="32" />
+<hkern u1="s" u2="x" k="47" />
+<hkern u1="s" u2="v" k="50" />
+<hkern u1="s" u2="u" k="15" />
+<hkern u1="s" u2="n" k="23" />
+<hkern u1="s" u2="k" k="23" />
+<hkern u1="s" u2="g" k="15" />
+<hkern u1="s" u2="e" k="5" />
+<hkern u1="s" u2="c" k="2" />
+<hkern u1="t" u2="z" k="-10" />
+<hkern u1="t" u2="y" k="-15" />
+<hkern u1="t" u2="w" k="-8" />
+<hkern u1="t" u2="h" k="-5" />
+<hkern u1="t" u2="d" k="-15" />
+<hkern u1="t" u2="&#x2e;" k="-10" />
+<hkern u1="u" u2="z" k="15" />
+<hkern u1="u" u2="x" k="15" />
+<hkern u1="u" u2="t" k="15" />
+<hkern u1="u" u2="s" k="10" />
+<hkern u1="u" u2="p" k="7" />
+<hkern u1="u" u2="m" k="20" />
+<hkern u1="u" u2="f" k="23" />
+<hkern u1="u" u2="e" k="25" />
+<hkern u1="u" u2="c" k="24" />
+<hkern u1="u" u2="b" k="5" />
+<hkern u1="v" u2="t" k="-5" />
+<hkern u1="v" u2="s" k="31" />
+<hkern u1="v" u2="o" k="35" />
+<hkern u1="v" u2="i" k="8" />
+<hkern u1="v" u2="e" k="63" />
+<hkern u1="w" u2="y" k="8" />
+<hkern u1="w" u2="s" k="25" />
+<hkern u1="w" u2="r" k="32" />
+<hkern u1="w" u2="o" k="35" />
+<hkern u1="w" u2="n" k="25" />
+<hkern u1="w" u2="g" k="24" />
+<hkern u1="w" u2="e" k="40" />
+<hkern u1="w" u2="a" k="25" />
+<hkern u1="x" u2="e" k="5" />
+<hkern u1="y" u2="o" k="15" />
+<hkern u1="y" u2="n" k="24" />
+<hkern u1="y" u2="j" k="-166" />
+<hkern u1="y" u2="e" k="15" />
+<hkern u1="y" u2="c" k="8" />
+<hkern u1="y" u2="a" k="5" />
+<hkern u1="z" u2="z" k="23" />
+<hkern u1="z" u2="t" k="16" />
+<hkern u1="z" u2="l" k="8" />
+<hkern u1="z" u2="e" k="20" />
+<hkern u1="z" u2="a" k="25" />
+<hkern u1="&#xe009;" u2="&#xe00b;" k="430" />
+<hkern u1="&#xe00a;" u2="&#xe00b;" k="431" />
+<hkern u1="&#xe00c;" g2="V.alt2" k="389" />
+<hkern u1="&#xe00c;" u2="&#xe008;" k="403" />
+</font>
+</defs></svg> 
\ No newline at end of file
diff --git a/js/resources/fonts/orbitron-medium.ttf b/js/resources/fonts/orbitron-medium.ttf
new file mode 100755
index 0000000..0ae4bc9
Binary files /dev/null and b/js/resources/fonts/orbitron-medium.ttf differ
diff --git a/js/resources/fonts/orbitron-medium.woff b/js/resources/fonts/orbitron-medium.woff
new file mode 100755
index 0000000..f0f388e
Binary files /dev/null and b/js/resources/fonts/orbitron-medium.woff differ
diff --git a/js/resources/fonts/stylesheet.css b/js/resources/fonts/stylesheet.css
new file mode 100755
index 0000000..c0d3843
--- /dev/null
+++ b/js/resources/fonts/stylesheet.css
@@ -0,0 +1,45 @@
+/* Generated by Font Squirrel (http://www.fontsquirrel.com) on February 26, 2013 */
+
+
+
+@font-face {
+    font-family: 'orbitronbold';
+    src: url('orbitron-bold.eot');
+    src: url('orbitron-bold.eot?#iefix') format('embedded-opentype'),
+         url('orbitron-bold.woff') format('woff'),
+         url('orbitron-bold.ttf') format('truetype'),
+         url('orbitron-bold.svg#orbitronbold') format('svg');
+    font-weight: normal;
+    font-style: normal;
+
+}
+
+
+
+
+@font-face {
+    font-family: 'orbitronlight';
+    src: url('orbitron-light.eot');
+    src: url('orbitron-light.eot?#iefix') format('embedded-opentype'),
+         url('orbitron-light.woff') format('woff'),
+         url('orbitron-light.ttf') format('truetype'),
+         url('orbitron-light.svg#orbitronlight') format('svg');
+    font-weight: normal;
+    font-style: normal;
+
+}
+
+
+
+
+@font-face {
+    font-family: 'orbitronregular';
+    src: url('orbitron-medium.eot');
+    src: url('orbitron-medium.eot?#iefix') format('embedded-opentype'),
+         url('orbitron-medium.woff') format('woff'),
+         url('orbitron-medium.ttf') format('truetype'),
+         url('orbitron-medium.svg#orbitronregular') format('svg');
+    font-weight: normal;
+    font-style: normal;
+
+}
\ No newline at end of file
diff --git a/js/resources/images/10x10/circle_blue.png b/js/resources/images/10x10/circle_blue.png
new file mode 100644
index 0000000..73013c1
Binary files /dev/null and b/js/resources/images/10x10/circle_blue.png differ
diff --git a/js/resources/images/10x10/circle_green.png b/js/resources/images/10x10/circle_green.png
new file mode 100644
index 0000000..54f44a3
Binary files /dev/null and b/js/resources/images/10x10/circle_green.png differ
diff --git a/js/resources/images/10x10/circle_grey.png b/js/resources/images/10x10/circle_grey.png
new file mode 100644
index 0000000..c57bad2
Binary files /dev/null and b/js/resources/images/10x10/circle_grey.png differ
diff --git a/js/resources/images/10x10/circle_orange.png b/js/resources/images/10x10/circle_orange.png
new file mode 100644
index 0000000..a5f768a
Binary files /dev/null and b/js/resources/images/10x10/circle_orange.png differ
diff --git a/js/resources/images/10x10/circle_red.png b/js/resources/images/10x10/circle_red.png
new file mode 100644
index 0000000..136f0bc
Binary files /dev/null and b/js/resources/images/10x10/circle_red.png differ
diff --git a/js/resources/images/10x10/circle_yellow.png b/js/resources/images/10x10/circle_yellow.png
new file mode 100644
index 0000000..057e330
Binary files /dev/null and b/js/resources/images/10x10/circle_yellow.png differ
diff --git a/js/resources/images/12x12/circle_blue.png b/js/resources/images/12x12/circle_blue.png
new file mode 100644
index 0000000..56590aa
Binary files /dev/null and b/js/resources/images/12x12/circle_blue.png differ
diff --git a/js/resources/images/12x12/circle_blue_.png b/js/resources/images/12x12/circle_blue_.png
new file mode 100644
index 0000000..56c47ca
Binary files /dev/null and b/js/resources/images/12x12/circle_blue_.png differ
diff --git a/js/resources/images/12x12/circle_green.png b/js/resources/images/12x12/circle_green.png
new file mode 100644
index 0000000..977f71f
Binary files /dev/null and b/js/resources/images/12x12/circle_green.png differ
diff --git a/js/resources/images/12x12/circle_green_.png b/js/resources/images/12x12/circle_green_.png
new file mode 100644
index 0000000..69f0139
Binary files /dev/null and b/js/resources/images/12x12/circle_green_.png differ
diff --git a/js/resources/images/12x12/circle_grey.png b/js/resources/images/12x12/circle_grey.png
new file mode 100644
index 0000000..453154d
Binary files /dev/null and b/js/resources/images/12x12/circle_grey.png differ
diff --git a/js/resources/images/12x12/circle_orange.png b/js/resources/images/12x12/circle_orange.png
new file mode 100644
index 0000000..4d0457e
Binary files /dev/null and b/js/resources/images/12x12/circle_orange.png differ
diff --git a/js/resources/images/12x12/circle_orange_.png b/js/resources/images/12x12/circle_orange_.png
new file mode 100644
index 0000000..38131cd
Binary files /dev/null and b/js/resources/images/12x12/circle_orange_.png differ
diff --git a/js/resources/images/12x12/circle_red.png b/js/resources/images/12x12/circle_red.png
new file mode 100644
index 0000000..e6fdcc6
Binary files /dev/null and b/js/resources/images/12x12/circle_red.png differ
diff --git a/js/resources/images/12x12/circle_yellow.png b/js/resources/images/12x12/circle_yellow.png
new file mode 100644
index 0000000..1109106
Binary files /dev/null and b/js/resources/images/12x12/circle_yellow.png differ
diff --git a/js/resources/images/12x12/table.png b/js/resources/images/12x12/table.png
new file mode 100644
index 0000000..0218f9b
Binary files /dev/null and b/js/resources/images/12x12/table.png differ
diff --git a/js/resources/images/14x14/circle_grey.png b/js/resources/images/14x14/circle_grey.png
new file mode 100644
index 0000000..f062d06
Binary files /dev/null and b/js/resources/images/14x14/circle_grey.png differ
diff --git a/js/resources/images/14x14/table.png b/js/resources/images/14x14/table.png
new file mode 100644
index 0000000..f65d888
Binary files /dev/null and b/js/resources/images/14x14/table.png differ
diff --git a/js/resources/images/16x16/arrow_circle_double.png b/js/resources/images/16x16/arrow_circle_double.png
new file mode 100644
index 0000000..5f84138
Binary files /dev/null and b/js/resources/images/16x16/arrow_circle_double.png differ
diff --git a/js/resources/images/16x16/button_cancel.png b/js/resources/images/16x16/button_cancel.png
new file mode 100644
index 0000000..e9920bf
Binary files /dev/null and b/js/resources/images/16x16/button_cancel.png differ
diff --git a/js/resources/images/16x16/calculator.png b/js/resources/images/16x16/calculator.png
new file mode 100755
index 0000000..d9cf34f
Binary files /dev/null and b/js/resources/images/16x16/calculator.png differ
diff --git a/js/resources/images/16x16/catalog.png b/js/resources/images/16x16/catalog.png
new file mode 100644
index 0000000..51667e0
Binary files /dev/null and b/js/resources/images/16x16/catalog.png differ
diff --git a/js/resources/images/16x16/circle_blue.png b/js/resources/images/16x16/circle_blue.png
new file mode 100644
index 0000000..f9a3a21
Binary files /dev/null and b/js/resources/images/16x16/circle_blue.png differ
diff --git a/js/resources/images/16x16/circle_green.png b/js/resources/images/16x16/circle_green.png
new file mode 100644
index 0000000..5fd0bad
Binary files /dev/null and b/js/resources/images/16x16/circle_green.png differ
diff --git a/js/resources/images/16x16/circle_grey.png b/js/resources/images/16x16/circle_grey.png
new file mode 100644
index 0000000..03d064f
Binary files /dev/null and b/js/resources/images/16x16/circle_grey.png differ
diff --git a/js/resources/images/16x16/circle_orange.png b/js/resources/images/16x16/circle_orange.png
new file mode 100644
index 0000000..41e6960
Binary files /dev/null and b/js/resources/images/16x16/circle_orange.png differ
diff --git a/js/resources/images/16x16/circle_red.png b/js/resources/images/16x16/circle_red.png
new file mode 100644
index 0000000..fe85dc0
Binary files /dev/null and b/js/resources/images/16x16/circle_red.png differ
diff --git a/js/resources/images/16x16/circle_yellow.png b/js/resources/images/16x16/circle_yellow.png
new file mode 100644
index 0000000..31d7bba
Binary files /dev/null and b/js/resources/images/16x16/circle_yellow.png differ
diff --git a/js/resources/images/16x16/connected.png b/js/resources/images/16x16/connected.png
new file mode 100644
index 0000000..ef66bba
Binary files /dev/null and b/js/resources/images/16x16/connected.png differ
diff --git a/js/resources/images/16x16/disconnected.png b/js/resources/images/16x16/disconnected.png
new file mode 100644
index 0000000..fc22e3d
Binary files /dev/null and b/js/resources/images/16x16/disconnected.png differ
diff --git a/js/resources/images/16x16/download_manager.png b/js/resources/images/16x16/download_manager.png
new file mode 100755
index 0000000..18ab592
Binary files /dev/null and b/js/resources/images/16x16/download_manager.png differ
diff --git a/js/resources/images/16x16/edit.png b/js/resources/images/16x16/edit.png
new file mode 100755
index 0000000..cd77c30
Binary files /dev/null and b/js/resources/images/16x16/edit.png differ
diff --git a/js/resources/images/16x16/equals.png b/js/resources/images/16x16/equals.png
new file mode 100644
index 0000000..ea1dffb
Binary files /dev/null and b/js/resources/images/16x16/equals.png differ
diff --git a/js/resources/images/16x16/error.png b/js/resources/images/16x16/error.png
new file mode 100644
index 0000000..e4eba26
Binary files /dev/null and b/js/resources/images/16x16/error.png differ
diff --git a/js/resources/images/16x16/filter.png b/js/resources/images/16x16/filter.png
new file mode 100644
index 0000000..ef7bafd
Binary files /dev/null and b/js/resources/images/16x16/filter.png differ
diff --git a/js/resources/images/16x16/greater_than.png b/js/resources/images/16x16/greater_than.png
new file mode 100644
index 0000000..edbf2fe
Binary files /dev/null and b/js/resources/images/16x16/greater_than.png differ
diff --git a/js/resources/images/16x16/help.png b/js/resources/images/16x16/help.png
new file mode 100755
index 0000000..94c40cd
Binary files /dev/null and b/js/resources/images/16x16/help.png differ
diff --git a/js/resources/images/16x16/info.png b/js/resources/images/16x16/info.png
new file mode 100755
index 0000000..9b38f8e
Binary files /dev/null and b/js/resources/images/16x16/info.png differ
diff --git a/js/resources/images/16x16/info_mini.png b/js/resources/images/16x16/info_mini.png
new file mode 100755
index 0000000..00bc70b
Binary files /dev/null and b/js/resources/images/16x16/info_mini.png differ
diff --git a/js/resources/images/16x16/interop.png b/js/resources/images/16x16/interop.png
new file mode 100755
index 0000000..4c73eb4
Binary files /dev/null and b/js/resources/images/16x16/interop.png differ
diff --git a/js/resources/images/16x16/ivoa.png b/js/resources/images/16x16/ivoa.png
new file mode 100755
index 0000000..826bae9
Binary files /dev/null and b/js/resources/images/16x16/ivoa.png differ
diff --git a/js/resources/images/16x16/less_than.png b/js/resources/images/16x16/less_than.png
new file mode 100644
index 0000000..5eda3a5
Binary files /dev/null and b/js/resources/images/16x16/less_than.png differ
diff --git a/js/resources/images/16x16/mail.png b/js/resources/images/16x16/mail.png
new file mode 100755
index 0000000..3e47541
Binary files /dev/null and b/js/resources/images/16x16/mail.png differ
diff --git a/js/resources/images/16x16/manageRsrc.png b/js/resources/images/16x16/manageRsrc.png
new file mode 100644
index 0000000..42547cd
Binary files /dev/null and b/js/resources/images/16x16/manageRsrc.png differ
diff --git a/js/resources/images/16x16/mydata.png b/js/resources/images/16x16/mydata.png
new file mode 100644
index 0000000..71975b7
Binary files /dev/null and b/js/resources/images/16x16/mydata.png differ
diff --git a/js/resources/images/16x16/new.png b/js/resources/images/16x16/new.png
new file mode 100644
index 0000000..f90b15e
Binary files /dev/null and b/js/resources/images/16x16/new.png differ
diff --git a/js/resources/images/16x16/operations.png b/js/resources/images/16x16/operations.png
new file mode 100644
index 0000000..dc447b4
Binary files /dev/null and b/js/resources/images/16x16/operations.png differ
diff --git a/js/resources/images/16x16/plot.png b/js/resources/images/16x16/plot.png
new file mode 100755
index 0000000..f3b0244
Binary files /dev/null and b/js/resources/images/16x16/plot.png differ
diff --git a/js/resources/images/16x16/plus_Orange.png b/js/resources/images/16x16/plus_Orange.png
new file mode 100755
index 0000000..d671bb5
Binary files /dev/null and b/js/resources/images/16x16/plus_Orange.png differ
diff --git a/js/resources/images/16x16/results.png b/js/resources/images/16x16/results.png
new file mode 100644
index 0000000..c5f3ce3
Binary files /dev/null and b/js/resources/images/16x16/results.png differ
diff --git a/js/resources/images/16x16/search.png b/js/resources/images/16x16/search.png
new file mode 100755
index 0000000..67829d0
Binary files /dev/null and b/js/resources/images/16x16/search.png differ
diff --git a/js/resources/images/16x16/table.png b/js/resources/images/16x16/table.png
new file mode 100644
index 0000000..e4cc915
Binary files /dev/null and b/js/resources/images/16x16/table.png differ
diff --git a/js/resources/images/16x16/timeTable.png b/js/resources/images/16x16/timeTable.png
new file mode 100755
index 0000000..9985987
Binary files /dev/null and b/js/resources/images/16x16/timeTable.png differ
diff --git a/js/resources/images/16x16/user.png b/js/resources/images/16x16/user.png
new file mode 100644
index 0000000..99224da
Binary files /dev/null and b/js/resources/images/16x16/user.png differ
diff --git a/js/resources/images/16x16/view_tree.png b/js/resources/images/16x16/view_tree.png
new file mode 100755
index 0000000..1287e2b
Binary files /dev/null and b/js/resources/images/16x16/view_tree.png differ
diff --git a/js/resources/images/16x16/workspaces.png b/js/resources/images/16x16/workspaces.png
new file mode 100755
index 0000000..a247609
Binary files /dev/null and b/js/resources/images/16x16/workspaces.png differ
diff --git a/js/resources/images/16x16/wsManager.png b/js/resources/images/16x16/wsManager.png
new file mode 100755
index 0000000..d44d55f
Binary files /dev/null and b/js/resources/images/16x16/wsManager.png differ
diff --git a/js/resources/images/32x32/fav_amda.png b/js/resources/images/32x32/fav_amda.png
new file mode 100644
index 0000000..453ba34
Binary files /dev/null and b/js/resources/images/32x32/fav_amda.png differ
diff --git a/js/resources/images/32x32/new.png b/js/resources/images/32x32/new.png
new file mode 100644
index 0000000..556d2b4
Binary files /dev/null and b/js/resources/images/32x32/new.png differ
diff --git a/js/resources/images/64x64/catalog.png b/js/resources/images/64x64/catalog.png
new file mode 100644
index 0000000..d1168de
Binary files /dev/null and b/js/resources/images/64x64/catalog.png differ
diff --git a/js/resources/images/64x64/download_manager.png b/js/resources/images/64x64/download_manager.png
new file mode 100644
index 0000000..9166dcb
Binary files /dev/null and b/js/resources/images/64x64/download_manager.png differ
diff --git a/js/resources/images/64x64/edit.png b/js/resources/images/64x64/edit.png
new file mode 100644
index 0000000..918e729
Binary files /dev/null and b/js/resources/images/64x64/edit.png differ
diff --git a/js/resources/images/64x64/help.png b/js/resources/images/64x64/help.png
new file mode 100644
index 0000000..ef478a5
Binary files /dev/null and b/js/resources/images/64x64/help.png differ
diff --git a/js/resources/images/64x64/interop.png b/js/resources/images/64x64/interop.png
new file mode 100755
index 0000000..e6e5045
Binary files /dev/null and b/js/resources/images/64x64/interop.png differ
diff --git a/js/resources/images/64x64/ivoa.png b/js/resources/images/64x64/ivoa.png
new file mode 100755
index 0000000..c7942ad
Binary files /dev/null and b/js/resources/images/64x64/ivoa.png differ
diff --git a/js/resources/images/64x64/mydata.png b/js/resources/images/64x64/mydata.png
new file mode 100644
index 0000000..2caf812
Binary files /dev/null and b/js/resources/images/64x64/mydata.png differ
diff --git a/js/resources/images/64x64/operations.png b/js/resources/images/64x64/operations.png
new file mode 100644
index 0000000..be4e2e5
Binary files /dev/null and b/js/resources/images/64x64/operations.png differ
diff --git a/js/resources/images/64x64/picto_amda.png b/js/resources/images/64x64/picto_amda.png
new file mode 100644
index 0000000..e5cc150
Binary files /dev/null and b/js/resources/images/64x64/picto_amda.png differ
diff --git a/js/resources/images/64x64/plot.png b/js/resources/images/64x64/plot.png
new file mode 100644
index 0000000..01646ba
Binary files /dev/null and b/js/resources/images/64x64/plot.png differ
diff --git a/js/resources/images/64x64/search.png b/js/resources/images/64x64/search.png
new file mode 100644
index 0000000..f1d32ad
Binary files /dev/null and b/js/resources/images/64x64/search.png differ
diff --git a/js/resources/images/64x64/timeTable.png b/js/resources/images/64x64/timeTable.png
new file mode 100644
index 0000000..a8808fa
Binary files /dev/null and b/js/resources/images/64x64/timeTable.png differ
diff --git a/js/resources/images/Couvercle_complet.png b/js/resources/images/Couvercle_complet.png
new file mode 100644
index 0000000..c8b4c95
Binary files /dev/null and b/js/resources/images/Couvercle_complet.png differ
diff --git a/js/resources/images/Logo_CDPP_off.png b/js/resources/images/Logo_CDPP_off.png
new file mode 100644
index 0000000..d597c09
Binary files /dev/null and b/js/resources/images/Logo_CDPP_off.png differ
diff --git a/js/resources/images/Logo_CDPP_over.png b/js/resources/images/Logo_CDPP_over.png
new file mode 100644
index 0000000..449975e
Binary files /dev/null and b/js/resources/images/Logo_CDPP_over.png differ
diff --git a/js/resources/images/LogosPartenaires.png b/js/resources/images/LogosPartenaires.png
new file mode 100644
index 0000000..acc33c8
Binary files /dev/null and b/js/resources/images/LogosPartenaires.png differ
diff --git a/js/resources/images/_notes/bouton_off.png.mno b/js/resources/images/_notes/bouton_off.png.mno
new file mode 100644
index 0000000..2bd28c2
--- /dev/null
+++ b/js/resources/images/_notes/bouton_off.png.mno
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="utf-8" ?>
<info>
	<infoitem key="fw_source" value="file:///Snow Léopard/Users/patriceamoyel/Travaux Patrice/CDPP/Recherches  CDPP/CDPP def/Web amda exe/web220x1200.png" />
	<infoitem key="fw_slice_info" value="54290720 898 4b0 486 43 28 28 0" />
</info>
\ No newline at end of file
diff --git a/js/resources/images/_notes/bouton_over.png.mno b/js/resources/images/_notes/bouton_over.png.mno
new file mode 100644
index 0000000..f2ea91a
--- /dev/null
+++ b/js/resources/images/_notes/bouton_over.png.mno
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="utf-8" ?>
<info>
	<infoitem key="fw_source" value="file:///Snow Léopard/Users/patriceamoyel/Travaux Patrice/CDPP/Recherches  CDPP/CDPP def/Web amda exe/web220x1200.png" />
	<infoitem key="fw_slice_info" value="54290720 898 4b0 486 43 28 28 1" />
</info>
\ No newline at end of file
diff --git a/js/resources/images/_notes/couvercle.png.mno b/js/resources/images/_notes/couvercle.png.mno
new file mode 100644
index 0000000..13d95ac
--- /dev/null
+++ b/js/resources/images/_notes/couvercle.png.mno
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="utf-8" ?>
<info>
	<infoitem key="fw_source" value="file:///Snow Léopard/Users/patriceamoyel/Travaux Patrice/CDPP/Recherches  CDPP/CDPP def/Web amda exe/web220x1200.png" />
	<infoitem key="fw_slice_info" value="77fdf903 898 4b0 1d1 0 2bf 224 0" />
</info>
\ No newline at end of file
diff --git a/js/resources/images/_notes/fondvide.jpg.mno b/js/resources/images/_notes/fondvide.jpg.mno
new file mode 100644
index 0000000..653ae04
--- /dev/null
+++ b/js/resources/images/_notes/fondvide.jpg.mno
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="utf-8" ?>
<info>
	<infoitem key="fw_source" value="file:///Snow Léopard/Users/patriceamoyel/Travaux Patrice/CDPP/Recherches  CDPP/CDPP def/Web amda exe/web220x1200.png" />
	<infoitem key="fw_slice_info" value="31446b25 898 4b0 0 0 898 4b0 0" />
</info>
\ No newline at end of file
diff --git a/js/resources/images/amda_samp.jpg b/js/resources/images/amda_samp.jpg
new file mode 100644
index 0000000..1f8fc38
Binary files /dev/null and b/js/resources/images/amda_samp.jpg differ
diff --git a/js/resources/images/bouton_off.png b/js/resources/images/bouton_off.png
new file mode 100644
index 0000000..07f1397
Binary files /dev/null and b/js/resources/images/bouton_off.png differ
diff --git a/js/resources/images/bouton_over.png b/js/resources/images/bouton_over.png
new file mode 100644
index 0000000..84c5297
Binary files /dev/null and b/js/resources/images/bouton_over.png differ
diff --git a/js/resources/images/ciel10.jpg b/js/resources/images/ciel10.jpg
new file mode 100644
index 0000000..0982281
Binary files /dev/null and b/js/resources/images/ciel10.jpg differ
diff --git a/js/resources/images/desktop/accordian.gif b/js/resources/images/desktop/accordian.gif
new file mode 100644
index 0000000..8846b0f
Binary files /dev/null and b/js/resources/images/desktop/accordian.gif differ
diff --git a/js/resources/images/desktop/accordionLarge.png b/js/resources/images/desktop/accordionLarge.png
new file mode 100644
index 0000000..eb38c39
Binary files /dev/null and b/js/resources/images/desktop/accordionLarge.png differ
diff --git a/js/resources/images/desktop/bogus.png b/js/resources/images/desktop/bogus.png
new file mode 100644
index 0000000..f0945cf
Binary files /dev/null and b/js/resources/images/desktop/bogus.png differ
diff --git a/js/resources/images/desktop/chart48x48.png b/js/resources/images/desktop/chart48x48.png
new file mode 100644
index 0000000..4cddd7d
Binary files /dev/null and b/js/resources/images/desktop/chart48x48.png differ
diff --git a/js/resources/images/desktop/desktop.gif b/js/resources/images/desktop/desktop.gif
new file mode 100644
index 0000000..f305cb6
Binary files /dev/null and b/js/resources/images/desktop/desktop.gif differ
diff --git a/js/resources/images/desktop/desktop3.jpg b/js/resources/images/desktop/desktop3.jpg
new file mode 100644
index 0000000..daca8bc
Binary files /dev/null and b/js/resources/images/desktop/desktop3.jpg differ
diff --git a/js/resources/images/desktop/gears.gif b/js/resources/images/desktop/gears.gif
new file mode 100644
index 0000000..2bf6bd7
Binary files /dev/null and b/js/resources/images/desktop/gears.gif differ
diff --git a/js/resources/images/desktop/gears.png b/js/resources/images/desktop/gears.png
new file mode 100644
index 0000000..6acdc98
Binary files /dev/null and b/js/resources/images/desktop/gears.png differ
diff --git a/js/resources/images/desktop/grid.png b/js/resources/images/desktop/grid.png
new file mode 100644
index 0000000..c4da495
Binary files /dev/null and b/js/resources/images/desktop/grid.png differ
diff --git a/js/resources/images/desktop/grid32x32.gif b/js/resources/images/desktop/grid32x32.gif
new file mode 100644
index 0000000..c674cc8
Binary files /dev/null and b/js/resources/images/desktop/grid32x32.gif differ
diff --git a/js/resources/images/desktop/grid48x48.gif b/js/resources/images/desktop/grid48x48.gif
new file mode 100644
index 0000000..c23762f
Binary files /dev/null and b/js/resources/images/desktop/grid48x48.gif differ
diff --git a/js/resources/images/desktop/grid48x48.png b/js/resources/images/desktop/grid48x48.png
new file mode 100644
index 0000000..7907cbf
Binary files /dev/null and b/js/resources/images/desktop/grid48x48.png differ
diff --git a/js/resources/images/desktop/gridLarge.png b/js/resources/images/desktop/gridLarge.png
new file mode 100644
index 0000000..add55fe
Binary files /dev/null and b/js/resources/images/desktop/gridLarge.png differ
diff --git a/js/resources/images/desktop/hatch.gif b/js/resources/images/desktop/hatch.gif
new file mode 100644
index 0000000..6a044a8
Binary files /dev/null and b/js/resources/images/desktop/hatch.gif differ
diff --git a/js/resources/images/desktop/hd-bg.gif b/js/resources/images/desktop/hd-bg.gif
new file mode 100644
index 0000000..f35a53f
Binary files /dev/null and b/js/resources/images/desktop/hd-bg.gif differ
diff --git a/js/resources/images/desktop/hd-tb-bg.gif b/js/resources/images/desktop/hd-tb-bg.gif
new file mode 100644
index 0000000..f800edb
Binary files /dev/null and b/js/resources/images/desktop/hd-tb-bg.gif differ
diff --git a/js/resources/images/desktop/icon_padlock.png b/js/resources/images/desktop/icon_padlock.png
new file mode 100644
index 0000000..92625ff
Binary files /dev/null and b/js/resources/images/desktop/icon_padlock.png differ
diff --git a/js/resources/images/desktop/icons-bg.png b/js/resources/images/desktop/icons-bg.png
new file mode 100644
index 0000000..6557cbb
Binary files /dev/null and b/js/resources/images/desktop/icons-bg.png differ
diff --git a/js/resources/images/desktop/im32x32.gif b/js/resources/images/desktop/im32x32.gif
new file mode 100644
index 0000000..2d7704f
Binary files /dev/null and b/js/resources/images/desktop/im32x32.gif differ
diff --git a/js/resources/images/desktop/im48x48.gif b/js/resources/images/desktop/im48x48.gif
new file mode 100644
index 0000000..ca86cc2
Binary files /dev/null and b/js/resources/images/desktop/im48x48.gif differ
diff --git a/js/resources/images/desktop/im48x48.png b/js/resources/images/desktop/im48x48.png
new file mode 100644
index 0000000..3da7410
Binary files /dev/null and b/js/resources/images/desktop/im48x48.png differ
diff --git a/js/resources/images/desktop/launcher-bg.gif b/js/resources/images/desktop/launcher-bg.gif
new file mode 100644
index 0000000..c7cfd83
Binary files /dev/null and b/js/resources/images/desktop/launcher-bg.gif differ
diff --git a/js/resources/images/desktop/launcher-btn.gif b/js/resources/images/desktop/launcher-btn.gif
new file mode 100644
index 0000000..a9a72d7
Binary files /dev/null and b/js/resources/images/desktop/launcher-btn.gif differ
diff --git a/js/resources/images/desktop/logout.gif b/js/resources/images/desktop/logout.gif
new file mode 100644
index 0000000..b48bb84
Binary files /dev/null and b/js/resources/images/desktop/logout.gif differ
diff --git a/js/resources/images/desktop/logout.png b/js/resources/images/desktop/logout.png
new file mode 100644
index 0000000..1fcb386
Binary files /dev/null and b/js/resources/images/desktop/logout.png differ
diff --git a/js/resources/images/desktop/member.gif b/js/resources/images/desktop/member.gif
new file mode 100644
index 0000000..216c839
Binary files /dev/null and b/js/resources/images/desktop/member.gif differ
diff --git a/js/resources/images/desktop/member.png b/js/resources/images/desktop/member.png
new file mode 100644
index 0000000..0f3657f
Binary files /dev/null and b/js/resources/images/desktop/member.png differ
diff --git a/js/resources/images/desktop/notepadLarge.png b/js/resources/images/desktop/notepadLarge.png
new file mode 100644
index 0000000..e0a59db
Binary files /dev/null and b/js/resources/images/desktop/notepadLarge.png differ
diff --git a/js/resources/images/desktop/powered-by-ext-js.png b/js/resources/images/desktop/powered-by-ext-js.png
new file mode 100644
index 0000000..0cfc253
Binary files /dev/null and b/js/resources/images/desktop/powered-by-ext-js.png differ
diff --git a/js/resources/images/desktop/s.gif b/js/resources/images/desktop/s.gif
new file mode 100644
index 0000000..1d11fa9
Binary files /dev/null and b/js/resources/images/desktop/s.gif differ
diff --git a/js/resources/images/desktop/statusLarge.png b/js/resources/images/desktop/statusLarge.png
new file mode 100644
index 0000000..79c5f63
Binary files /dev/null and b/js/resources/images/desktop/statusLarge.png differ
diff --git a/js/resources/images/desktop/tabs.gif b/js/resources/images/desktop/tabs.gif
new file mode 100644
index 0000000..759de0f
Binary files /dev/null and b/js/resources/images/desktop/tabs.gif differ
diff --git a/js/resources/images/desktop/taskbar/black/item-over.gif b/js/resources/images/desktop/taskbar/black/item-over.gif
new file mode 100644
index 0000000..26c1fc2
Binary files /dev/null and b/js/resources/images/desktop/taskbar/black/item-over.gif differ
diff --git a/js/resources/images/desktop/taskbar/black/scroll-left.gif b/js/resources/images/desktop/taskbar/black/scroll-left.gif
new file mode 100644
index 0000000..94fea48
Binary files /dev/null and b/js/resources/images/desktop/taskbar/black/scroll-left.gif differ
diff --git a/js/resources/images/desktop/taskbar/black/scroll-right.gif b/js/resources/images/desktop/taskbar/black/scroll-right.gif
new file mode 100644
index 0000000..94b5669
Binary files /dev/null and b/js/resources/images/desktop/taskbar/black/scroll-right.gif differ
diff --git a/js/resources/images/desktop/taskbar/black/start-menu-left-corners.png b/js/resources/images/desktop/taskbar/black/start-menu-left-corners.png
new file mode 100644
index 0000000..d6e5196
Binary files /dev/null and b/js/resources/images/desktop/taskbar/black/start-menu-left-corners.png differ
diff --git a/js/resources/images/desktop/taskbar/black/start-menu-left-right.png b/js/resources/images/desktop/taskbar/black/start-menu-left-right.png
new file mode 100644
index 0000000..a577d1b
Binary files /dev/null and b/js/resources/images/desktop/taskbar/black/start-menu-left-right.png differ
diff --git a/js/resources/images/desktop/taskbar/black/start-menu-right-corners.png b/js/resources/images/desktop/taskbar/black/start-menu-right-corners.png
new file mode 100644
index 0000000..b683301
Binary files /dev/null and b/js/resources/images/desktop/taskbar/black/start-menu-right-corners.png differ
diff --git a/js/resources/images/desktop/taskbar/black/start-menu-right.png b/js/resources/images/desktop/taskbar/black/start-menu-right.png
new file mode 100644
index 0000000..e5fa2b8
Binary files /dev/null and b/js/resources/images/desktop/taskbar/black/start-menu-right.png differ
diff --git a/js/resources/images/desktop/taskbar/black/start-menu-top-bottom.png b/js/resources/images/desktop/taskbar/black/start-menu-top-bottom.png
new file mode 100644
index 0000000..fbea3cb
Binary files /dev/null and b/js/resources/images/desktop/taskbar/black/start-menu-top-bottom.png differ
diff --git a/js/resources/images/desktop/taskbar/black/startbutton-icon.gif b/js/resources/images/desktop/taskbar/black/startbutton-icon.gif
new file mode 100644
index 0000000..8dcd2d1
Binary files /dev/null and b/js/resources/images/desktop/taskbar/black/startbutton-icon.gif differ
diff --git a/js/resources/images/desktop/taskbar/black/startbutton.gif b/js/resources/images/desktop/taskbar/black/startbutton.gif
new file mode 100644
index 0000000..683313e
Binary files /dev/null and b/js/resources/images/desktop/taskbar/black/startbutton.gif differ
diff --git a/js/resources/images/desktop/taskbar/black/taskbar-split-h.gif b/js/resources/images/desktop/taskbar/black/taskbar-split-h.gif
new file mode 100644
index 0000000..13564ad
Binary files /dev/null and b/js/resources/images/desktop/taskbar/black/taskbar-split-h.gif differ
diff --git a/js/resources/images/desktop/taskbar/black/taskbar-start-panel-bg.gif b/js/resources/images/desktop/taskbar/black/taskbar-start-panel-bg.gif
new file mode 100644
index 0000000..9794880
Binary files /dev/null and b/js/resources/images/desktop/taskbar/black/taskbar-start-panel-bg.gif differ
diff --git a/js/resources/images/desktop/taskbar/black/taskbutton.gif b/js/resources/images/desktop/taskbar/black/taskbutton.gif
new file mode 100644
index 0000000..df13974
Binary files /dev/null and b/js/resources/images/desktop/taskbar/black/taskbutton.gif differ
diff --git a/js/resources/images/desktop/taskbar/black/taskbuttons-panel-bg.gif b/js/resources/images/desktop/taskbar/black/taskbuttons-panel-bg.gif
new file mode 100644
index 0000000..0865c45
Binary files /dev/null and b/js/resources/images/desktop/taskbar/black/taskbuttons-panel-bg.gif differ
diff --git a/js/resources/images/desktop/taskbar/fav_amda.png b/js/resources/images/desktop/taskbar/fav_amda.png
new file mode 100755
index 0000000..453ba34
Binary files /dev/null and b/js/resources/images/desktop/taskbar/fav_amda.png differ
diff --git a/js/resources/images/desktop/taskbar/sencha.gif b/js/resources/images/desktop/taskbar/sencha.gif
new file mode 100644
index 0000000..6bc8198
Binary files /dev/null and b/js/resources/images/desktop/taskbar/sencha.gif differ
diff --git a/js/resources/images/desktop/taskbar/sencha.ico b/js/resources/images/desktop/taskbar/sencha.ico
new file mode 100644
index 0000000..ea8c545
Binary files /dev/null and b/js/resources/images/desktop/taskbar/sencha.ico differ
diff --git a/js/resources/images/desktop/wallpapers/Blue-Sencha.jpg b/js/resources/images/desktop/wallpapers/Blue-Sencha.jpg
new file mode 100644
index 0000000..b81a543
Binary files /dev/null and b/js/resources/images/desktop/wallpapers/Blue-Sencha.jpg differ
diff --git a/js/resources/images/desktop/wallpapers/Cdpp.jpg b/js/resources/images/desktop/wallpapers/Cdpp.jpg
new file mode 100644
index 0000000..0982281
Binary files /dev/null and b/js/resources/images/desktop/wallpapers/Cdpp.jpg differ
diff --git a/js/resources/images/desktop/wallpapers/Cdpp2.jpg b/js/resources/images/desktop/wallpapers/Cdpp2.jpg
new file mode 100755
index 0000000..b1c6bd9
Binary files /dev/null and b/js/resources/images/desktop/wallpapers/Cdpp2.jpg differ
diff --git a/js/resources/images/desktop/wallpapers/Dark-Sencha.jpg b/js/resources/images/desktop/wallpapers/Dark-Sencha.jpg
new file mode 100644
index 0000000..9b6fdb2
Binary files /dev/null and b/js/resources/images/desktop/wallpapers/Dark-Sencha.jpg differ
diff --git a/js/resources/images/desktop/wallpapers/Wood-Sencha.jpg b/js/resources/images/desktop/wallpapers/Wood-Sencha.jpg
new file mode 100644
index 0000000..04acc6b
Binary files /dev/null and b/js/resources/images/desktop/wallpapers/Wood-Sencha.jpg differ
diff --git a/js/resources/images/desktop/wallpapers/blue.jpg b/js/resources/images/desktop/wallpapers/blue.jpg
new file mode 100644
index 0000000..b412b5a
Binary files /dev/null and b/js/resources/images/desktop/wallpapers/blue.jpg differ
diff --git a/js/resources/images/desktop/wallpapers/desk.jpg b/js/resources/images/desktop/wallpapers/desk.jpg
new file mode 100644
index 0000000..3543dc2
Binary files /dev/null and b/js/resources/images/desktop/wallpapers/desk.jpg differ
diff --git a/js/resources/images/desktop/wallpapers/desktop.jpg b/js/resources/images/desktop/wallpapers/desktop.jpg
new file mode 100644
index 0000000..8e1fcb0
Binary files /dev/null and b/js/resources/images/desktop/wallpapers/desktop.jpg differ
diff --git a/js/resources/images/desktop/wallpapers/desktop2.jpg b/js/resources/images/desktop/wallpapers/desktop2.jpg
new file mode 100644
index 0000000..6bcaf49
Binary files /dev/null and b/js/resources/images/desktop/wallpapers/desktop2.jpg differ
diff --git a/js/resources/images/desktop/wallpapers/ext.gif b/js/resources/images/desktop/wallpapers/ext.gif
new file mode 100644
index 0000000..35e143b
Binary files /dev/null and b/js/resources/images/desktop/wallpapers/ext.gif differ
diff --git a/js/resources/images/desktop/wallpapers/rosetta.jpg b/js/resources/images/desktop/wallpapers/rosetta.jpg
new file mode 100644
index 0000000..840a479
Binary files /dev/null and b/js/resources/images/desktop/wallpapers/rosetta.jpg differ
diff --git a/js/resources/images/desktop/wallpapers/rosetta2.jpg b/js/resources/images/desktop/wallpapers/rosetta2.jpg
new file mode 100644
index 0000000..98d2939
Binary files /dev/null and b/js/resources/images/desktop/wallpapers/rosetta2.jpg differ
diff --git a/js/resources/images/desktop/wallpapers/shiny.gif b/js/resources/images/desktop/wallpapers/shiny.gif
new file mode 100644
index 0000000..8f633bf
Binary files /dev/null and b/js/resources/images/desktop/wallpapers/shiny.gif differ
diff --git a/js/resources/images/desktop/wallpapers/sky.jpg b/js/resources/images/desktop/wallpapers/sky.jpg
new file mode 100644
index 0000000..380b210
Binary files /dev/null and b/js/resources/images/desktop/wallpapers/sky.jpg differ
diff --git a/js/resources/images/desktop/winbar-bg.gif b/js/resources/images/desktop/winbar-bg.gif
new file mode 100644
index 0000000..45295a6
Binary files /dev/null and b/js/resources/images/desktop/winbar-bg.gif differ
diff --git a/js/resources/images/desktop/winbar-btn.gif b/js/resources/images/desktop/winbar-btn.gif
new file mode 100644
index 0000000..2c8c024
Binary files /dev/null and b/js/resources/images/desktop/winbar-btn.gif differ
diff --git a/js/resources/images/desktop/windows-bg.gif b/js/resources/images/desktop/windows-bg.gif
new file mode 100644
index 0000000..396471e
Binary files /dev/null and b/js/resources/images/desktop/windows-bg.gif differ
diff --git a/js/resources/images/icons/comet.png b/js/resources/images/icons/comet.png
new file mode 100644
index 0000000..7e2700a
Binary files /dev/null and b/js/resources/images/icons/comet.png differ
diff --git a/js/resources/images/icons/earth.png b/js/resources/images/icons/earth.png
new file mode 100644
index 0000000..436d7c8
Binary files /dev/null and b/js/resources/images/icons/earth.png differ
diff --git a/js/resources/images/icons/fam/SILK.txt b/js/resources/images/icons/fam/SILK.txt
new file mode 100644
index 0000000..a71cfc4
--- /dev/null
+++ b/js/resources/images/icons/fam/SILK.txt
@@ -0,0 +1,3 @@
+The icons in this folder are direct gif conversions of the fam fam fam silk icons.
+
+Please see http://www.famfamfam.com/lab/icons/silk/ for more details.
\ No newline at end of file
diff --git a/js/resources/images/icons/fam/accept.gif b/js/resources/images/icons/fam/accept.gif
new file mode 100644
index 0000000..216a895
Binary files /dev/null and b/js/resources/images/icons/fam/accept.gif differ
diff --git a/js/resources/images/icons/fam/accept.png b/js/resources/images/icons/fam/accept.png
new file mode 100644
index 0000000..89c8129
Binary files /dev/null and b/js/resources/images/icons/fam/accept.png differ
diff --git a/js/resources/images/icons/fam/add.gif b/js/resources/images/icons/fam/add.gif
new file mode 100644
index 0000000..9319525
Binary files /dev/null and b/js/resources/images/icons/fam/add.gif differ
diff --git a/js/resources/images/icons/fam/add.png b/js/resources/images/icons/fam/add.png
new file mode 100644
index 0000000..6332fef
Binary files /dev/null and b/js/resources/images/icons/fam/add.png differ
diff --git a/js/resources/images/icons/fam/application_go.png b/js/resources/images/icons/fam/application_go.png
new file mode 100644
index 0000000..5cc2b0d
Binary files /dev/null and b/js/resources/images/icons/fam/application_go.png differ
diff --git a/js/resources/images/icons/fam/application_view_list.png b/js/resources/images/icons/fam/application_view_list.png
new file mode 100644
index 0000000..acc30b8
Binary files /dev/null and b/js/resources/images/icons/fam/application_view_list.png differ
diff --git a/js/resources/images/icons/fam/book.png b/js/resources/images/icons/fam/book.png
new file mode 100644
index 0000000..b0f4dd7
Binary files /dev/null and b/js/resources/images/icons/fam/book.png differ
diff --git a/js/resources/images/icons/fam/cog.gif b/js/resources/images/icons/fam/cog.gif
new file mode 100644
index 0000000..8e854ed
Binary files /dev/null and b/js/resources/images/icons/fam/cog.gif differ
diff --git a/js/resources/images/icons/fam/cog.png b/js/resources/images/icons/fam/cog.png
new file mode 100644
index 0000000..67de2c6
Binary files /dev/null and b/js/resources/images/icons/fam/cog.png differ
diff --git a/js/resources/images/icons/fam/cog_edit.png b/js/resources/images/icons/fam/cog_edit.png
new file mode 100644
index 0000000..47b75a4
Binary files /dev/null and b/js/resources/images/icons/fam/cog_edit.png differ
diff --git a/js/resources/images/icons/fam/connect.gif b/js/resources/images/icons/fam/connect.gif
new file mode 100644
index 0000000..1aa16ab
Binary files /dev/null and b/js/resources/images/icons/fam/connect.gif differ
diff --git a/js/resources/images/icons/fam/connect.png b/js/resources/images/icons/fam/connect.png
new file mode 100644
index 0000000..024138e
Binary files /dev/null and b/js/resources/images/icons/fam/connect.png differ
diff --git a/js/resources/images/icons/fam/control_rewind.png b/js/resources/images/icons/fam/control_rewind.png
new file mode 100644
index 0000000..c029447
Binary files /dev/null and b/js/resources/images/icons/fam/control_rewind.png differ
diff --git a/js/resources/images/icons/fam/cross.gif b/js/resources/images/icons/fam/cross.gif
new file mode 100644
index 0000000..2eb2865
Binary files /dev/null and b/js/resources/images/icons/fam/cross.gif differ
diff --git a/js/resources/images/icons/fam/delete.gif b/js/resources/images/icons/fam/delete.gif
new file mode 100644
index 0000000..5e2a3b1
Binary files /dev/null and b/js/resources/images/icons/fam/delete.gif differ
diff --git a/js/resources/images/icons/fam/error.gif b/js/resources/images/icons/fam/error.gif
new file mode 100644
index 0000000..0d3387c
Binary files /dev/null and b/js/resources/images/icons/fam/error.gif differ
diff --git a/js/resources/images/icons/fam/error.png b/js/resources/images/icons/fam/error.png
new file mode 100644
index 0000000..628cf2d
Binary files /dev/null and b/js/resources/images/icons/fam/error.png differ
diff --git a/js/resources/images/icons/fam/feed_add.png b/js/resources/images/icons/fam/feed_add.png
new file mode 100644
index 0000000..e77d46e
Binary files /dev/null and b/js/resources/images/icons/fam/feed_add.png differ
diff --git a/js/resources/images/icons/fam/feed_delete.png b/js/resources/images/icons/fam/feed_delete.png
new file mode 100644
index 0000000..5e332b4
Binary files /dev/null and b/js/resources/images/icons/fam/feed_delete.png differ
diff --git a/js/resources/images/icons/fam/feed_error.png b/js/resources/images/icons/fam/feed_error.png
new file mode 100644
index 0000000..c0a801c
Binary files /dev/null and b/js/resources/images/icons/fam/feed_error.png differ
diff --git a/js/resources/images/icons/fam/folder_go.gif b/js/resources/images/icons/fam/folder_go.gif
new file mode 100644
index 0000000..444898e
Binary files /dev/null and b/js/resources/images/icons/fam/folder_go.gif differ
diff --git a/js/resources/images/icons/fam/folder_go.png b/js/resources/images/icons/fam/folder_go.png
new file mode 100644
index 0000000..34a736f
Binary files /dev/null and b/js/resources/images/icons/fam/folder_go.png differ
diff --git a/js/resources/images/icons/fam/folder_wrench.png b/js/resources/images/icons/fam/folder_wrench.png
new file mode 100644
index 0000000..ea3404e
Binary files /dev/null and b/js/resources/images/icons/fam/folder_wrench.png differ
diff --git a/js/resources/images/icons/fam/grid.png b/js/resources/images/icons/fam/grid.png
new file mode 100644
index 0000000..c4da495
Binary files /dev/null and b/js/resources/images/icons/fam/grid.png differ
diff --git a/js/resources/images/icons/fam/image_add.png b/js/resources/images/icons/fam/image_add.png
new file mode 100644
index 0000000..fc5d613
Binary files /dev/null and b/js/resources/images/icons/fam/image_add.png differ
diff --git a/js/resources/images/icons/fam/information.png b/js/resources/images/icons/fam/information.png
new file mode 100644
index 0000000..12cd1ae
Binary files /dev/null and b/js/resources/images/icons/fam/information.png differ
diff --git a/js/resources/images/icons/fam/plugin.gif b/js/resources/images/icons/fam/plugin.gif
new file mode 100644
index 0000000..209c121
Binary files /dev/null and b/js/resources/images/icons/fam/plugin.gif differ
diff --git a/js/resources/images/icons/fam/plugin_add.gif b/js/resources/images/icons/fam/plugin_add.gif
new file mode 100644
index 0000000..5c95312
Binary files /dev/null and b/js/resources/images/icons/fam/plugin_add.gif differ
diff --git a/js/resources/images/icons/fam/rss_go.png b/js/resources/images/icons/fam/rss_go.png
new file mode 100644
index 0000000..43a86bf
Binary files /dev/null and b/js/resources/images/icons/fam/rss_go.png differ
diff --git a/js/resources/images/icons/fam/table_refresh.png b/js/resources/images/icons/fam/table_refresh.png
new file mode 100644
index 0000000..ab92010
Binary files /dev/null and b/js/resources/images/icons/fam/table_refresh.png differ
diff --git a/js/resources/images/icons/fam/user.gif b/js/resources/images/icons/fam/user.gif
new file mode 100644
index 0000000..d75bd1e
Binary files /dev/null and b/js/resources/images/icons/fam/user.gif differ
diff --git a/js/resources/images/icons/fam/user.png b/js/resources/images/icons/fam/user.png
new file mode 100644
index 0000000..79f35cc
Binary files /dev/null and b/js/resources/images/icons/fam/user.png differ
diff --git a/js/resources/images/icons/fam/user_add.gif b/js/resources/images/icons/fam/user_add.gif
new file mode 100644
index 0000000..c822319
Binary files /dev/null and b/js/resources/images/icons/fam/user_add.gif differ
diff --git a/js/resources/images/icons/fam/user_add.png b/js/resources/images/icons/fam/user_add.png
new file mode 100644
index 0000000..deae99b
Binary files /dev/null and b/js/resources/images/icons/fam/user_add.png differ
diff --git a/js/resources/images/icons/fam/user_comment.png b/js/resources/images/icons/fam/user_comment.png
new file mode 100644
index 0000000..e54ebeb
Binary files /dev/null and b/js/resources/images/icons/fam/user_comment.png differ
diff --git a/js/resources/images/icons/fam/user_delete.gif b/js/resources/images/icons/fam/user_delete.gif
new file mode 100644
index 0000000..2769aa2
Binary files /dev/null and b/js/resources/images/icons/fam/user_delete.gif differ
diff --git a/js/resources/images/icons/fam/user_delete.png b/js/resources/images/icons/fam/user_delete.png
new file mode 100644
index 0000000..acbb563
Binary files /dev/null and b/js/resources/images/icons/fam/user_delete.png differ
diff --git a/js/resources/images/icons/fam/user_edit.png b/js/resources/images/icons/fam/user_edit.png
new file mode 100644
index 0000000..c1974cd
Binary files /dev/null and b/js/resources/images/icons/fam/user_edit.png differ
diff --git a/js/resources/images/icons/fam/user_female.gif b/js/resources/images/icons/fam/user_female.gif
new file mode 100644
index 0000000..d2c913a
Binary files /dev/null and b/js/resources/images/icons/fam/user_female.gif differ
diff --git a/js/resources/images/icons/fam/user_female.png b/js/resources/images/icons/fam/user_female.png
new file mode 100644
index 0000000..7c71de0
Binary files /dev/null and b/js/resources/images/icons/fam/user_female.png differ
diff --git a/js/resources/images/icons/fam/user_gray.png b/js/resources/images/icons/fam/user_gray.png
new file mode 100644
index 0000000..8fd539e
Binary files /dev/null and b/js/resources/images/icons/fam/user_gray.png differ
diff --git a/js/resources/images/icons/fam/user_green.gif b/js/resources/images/icons/fam/user_green.gif
new file mode 100644
index 0000000..6644957
Binary files /dev/null and b/js/resources/images/icons/fam/user_green.gif differ
diff --git a/js/resources/images/icons/fam/user_green.png b/js/resources/images/icons/fam/user_green.png
new file mode 100644
index 0000000..30383c2
Binary files /dev/null and b/js/resources/images/icons/fam/user_green.png differ
diff --git a/js/resources/images/icons/fam/user_orange.png b/js/resources/images/icons/fam/user_orange.png
new file mode 100644
index 0000000..b818127
Binary files /dev/null and b/js/resources/images/icons/fam/user_orange.png differ
diff --git a/js/resources/images/icons/fam/user_red.png b/js/resources/images/icons/fam/user_red.png
new file mode 100644
index 0000000..c6f66e8
Binary files /dev/null and b/js/resources/images/icons/fam/user_red.png differ
diff --git a/js/resources/images/icons/fam/user_suit.gif b/js/resources/images/icons/fam/user_suit.gif
new file mode 100644
index 0000000..3c04d2d
Binary files /dev/null and b/js/resources/images/icons/fam/user_suit.gif differ
diff --git a/js/resources/images/icons/fam/user_suit.png b/js/resources/images/icons/fam/user_suit.png
new file mode 100644
index 0000000..b3454e1
Binary files /dev/null and b/js/resources/images/icons/fam/user_suit.png differ
diff --git a/js/resources/images/icons/jupiter.png b/js/resources/images/icons/jupiter.png
new file mode 100644
index 0000000..f156eeb
Binary files /dev/null and b/js/resources/images/icons/jupiter.png differ
diff --git a/js/resources/images/icons/mars.png b/js/resources/images/icons/mars.png
new file mode 100644
index 0000000..defd920
Binary files /dev/null and b/js/resources/images/icons/mars.png differ
diff --git a/js/resources/images/icons/mercury.png b/js/resources/images/icons/mercury.png
new file mode 100644
index 0000000..dce9f27
Binary files /dev/null and b/js/resources/images/icons/mercury.png differ
diff --git a/js/resources/images/icons/moon.png b/js/resources/images/icons/moon.png
new file mode 100644
index 0000000..478e8c3
Binary files /dev/null and b/js/resources/images/icons/moon.png differ
diff --git a/js/resources/images/icons/neptune.png b/js/resources/images/icons/neptune.png
new file mode 100644
index 0000000..14d7acc
Binary files /dev/null and b/js/resources/images/icons/neptune.png differ
diff --git a/js/resources/images/icons/rosetta.png b/js/resources/images/icons/rosetta.png
new file mode 100755
index 0000000..f51e159
Binary files /dev/null and b/js/resources/images/icons/rosetta.png differ
diff --git a/js/resources/images/icons/saturn.png b/js/resources/images/icons/saturn.png
new file mode 100644
index 0000000..14a94f5
Binary files /dev/null and b/js/resources/images/icons/saturn.png differ
diff --git a/js/resources/images/icons/space.png b/js/resources/images/icons/space.png
new file mode 100644
index 0000000..100bbd3
Binary files /dev/null and b/js/resources/images/icons/space.png differ
diff --git a/js/resources/images/icons/sun.png b/js/resources/images/icons/sun.png
new file mode 100644
index 0000000..b5dc7c8
Binary files /dev/null and b/js/resources/images/icons/sun.png differ
diff --git a/js/resources/images/icons/sw.png b/js/resources/images/icons/sw.png
new file mode 100644
index 0000000..5bb09b8
Binary files /dev/null and b/js/resources/images/icons/sw.png differ
diff --git a/js/resources/images/icons/uranus.png b/js/resources/images/icons/uranus.png
new file mode 100644
index 0000000..ba6c1b6
Binary files /dev/null and b/js/resources/images/icons/uranus.png differ
diff --git a/js/resources/images/icons/venus.png b/js/resources/images/icons/venus.png
new file mode 100644
index 0000000..2b09d9b
Binary files /dev/null and b/js/resources/images/icons/venus.png differ
diff --git a/js/resources/images/less.png b/js/resources/images/less.png
new file mode 100644
index 0000000..a485810
Binary files /dev/null and b/js/resources/images/less.png differ
diff --git a/js/resources/images/login/bg-panel.jpg b/js/resources/images/login/bg-panel.jpg
new file mode 100644
index 0000000..1c5784a
Binary files /dev/null and b/js/resources/images/login/bg-panel.jpg differ
diff --git a/js/resources/images/login/install.gif b/js/resources/images/login/install.gif
new file mode 100644
index 0000000..8f60534
Binary files /dev/null and b/js/resources/images/login/install.gif differ
diff --git a/js/resources/images/login/login.gif b/js/resources/images/login/login.gif
new file mode 100644
index 0000000..238a9d5
Binary files /dev/null and b/js/resources/images/login/login.gif differ
diff --git a/js/resources/images/login/logo-extjs.gif b/js/resources/images/login/logo-extjs.gif
new file mode 100644
index 0000000..b3891b0
Binary files /dev/null and b/js/resources/images/login/logo-extjs.gif differ
diff --git a/js/resources/images/login/logo-qwikioffice.png b/js/resources/images/login/logo-qwikioffice.png
new file mode 100644
index 0000000..b4513ee
Binary files /dev/null and b/js/resources/images/login/logo-qwikioffice.png differ
diff --git a/js/resources/images/login/screenshot.png b/js/resources/images/login/screenshot.png
new file mode 100644
index 0000000..646e883
Binary files /dev/null and b/js/resources/images/login/screenshot.png differ
diff --git a/js/resources/images/login/send.gif b/js/resources/images/login/send.gif
new file mode 100644
index 0000000..bd10b07
Binary files /dev/null and b/js/resources/images/login/send.gif differ
diff --git a/js/resources/images/more.png b/js/resources/images/more.png
new file mode 100644
index 0000000..2009959
Binary files /dev/null and b/js/resources/images/more.png differ
diff --git a/js/resources/images/redLine.png b/js/resources/images/redLine.png
new file mode 100644
index 0000000..853ae54
Binary files /dev/null and b/js/resources/images/redLine.png differ
diff --git a/js/resources/images/right.png b/js/resources/images/right.png
new file mode 100644
index 0000000..1a90517
Binary files /dev/null and b/js/resources/images/right.png differ
diff --git a/js/resources/images/s.gif b/js/resources/images/s.gif
new file mode 100644
index 0000000..1d11fa9
Binary files /dev/null and b/js/resources/images/s.gif differ
diff --git a/js/resources/images/small_cancel.png b/js/resources/images/small_cancel.png
new file mode 100644
index 0000000..97b1a13
Binary files /dev/null and b/js/resources/images/small_cancel.png differ
diff --git a/js/resources/images/small_cancel_centered.png b/js/resources/images/small_cancel_centered.png
new file mode 100644
index 0000000..a5216d9
Binary files /dev/null and b/js/resources/images/small_cancel_centered.png differ
diff --git a/js/resources/images/trou.jpg b/js/resources/images/trou.jpg
new file mode 100644
index 0000000..0446d03
Binary files /dev/null and b/js/resources/images/trou.jpg differ
diff --git a/js/test/unit/.htaccess b/js/test/unit/.htaccess
new file mode 100644
index 0000000..832ea9b
--- /dev/null
+++ b/js/test/unit/.htaccess
@@ -0,0 +1,2 @@
+ExpiresActive On
+ExpiresDefault "access"
\ No newline at end of file
diff --git a/js/test/unit/SpecOptions.js b/js/test/unit/SpecOptions.js
new file mode 100644
index 0000000..acf0c05
--- /dev/null
+++ b/js/test/unit/SpecOptions.js
@@ -0,0 +1,9 @@
+/**
+ * This file is included by your test/unit/index.html file and is used to apply settings before 
+ * the tests are run.
+ */
+
+Ext.ns('fixtures');
+
+//Stops the Application from being booted up automatically
+Ext.Application.prototype.bindReady = Ext.emptyFn;
diff --git a/js/test/unit/index.html b/js/test/unit/index.html
new file mode 100644
index 0000000..d3ad4cc
--- /dev/null
+++ b/js/test/unit/index.html
@@ -0,0 +1,69 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+  "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+    <title>Sencha - Jasmine Test Runner</title>
+    <link rel="stylesheet" type="text/css" href="../../lib/sencha-jasmine/sencha-jasmine.css" />
+    
+    <script type="text/javascript" src="../../lib/touch/ext-touch-debug.js"></script>
+    
+    <script type="text/javascript" src="../../lib/jasmine/jasmine.js"></script>
+    <script type="text/javascript" src="../../lib/jasmine/jasmine-html.js"></script>
+    <script type="text/javascript" src="../../lib/sencha-jasmine/sencha-jasmine.js"></script>
+    <script type="text/javascript" src="../../lib/sencha-jasmine/matchers/Model.js"></script>
+    <script type="text/javascript" src="../../lib/sencha-jasmine/matchers/Controller.js"></script>
+    
+    <script type="text/javascript" src="SpecOptions.js"></script>
+</head>
+<body>
+    
+    <!-- include source files here... -->
+    <div id="sourceFiles">
+        <script type="text/javascript" src="../../app/app.js"></script>
+        
+        <div id="app-models">
+                  
+        </div>
+        
+        <div id="app-controllers">
+            
+        </div>
+        
+        <div id="app-views">
+            
+        </div>
+        
+        <div id="app-stores">
+            
+        </div>
+    </div>
+    
+    <!-- include fixture files here -->
+    <div id="fixtures">
+        
+    </div>
+    
+    <!-- include spec files here... -->
+    <div id="specFiles">
+        <script type="text/javascript" src="app.js"></script>
+        
+        <div id="spec-models">
+            
+        </div>
+        
+        <div id="spec-controllers">
+            
+        </div>
+        
+        <div id="spec-views">
+            
+        </div>
+    </div>
+    
+    <script type="text/javascript">
+      jasmine.getEnv().addReporter(new jasmine.TrivialReporter());
+      jasmine.getEnv().execute();
+    </script>
+    
+</body>
+</html>
\ No newline at end of file
diff --git a/php/AMDA_METHODS_WSDL.php b/php/AMDA_METHODS_WSDL.php
new file mode 100644
index 0000000..9393d09
--- /dev/null
+++ b/php/AMDA_METHODS_WSDL.php
@@ -0,0 +1,18 @@
+<?php
+
+/** 
+*   @file AMDA_METHODS_WSDL.php
+*   @brief PHP SoapServer for IMPEx WebServices
+*
+*   @version  $Id: $
+*   
+*/
+ 
+  require_once 'config.php';
+
+  ini_set("soap.wsdl_cache_enabled", "0"); // desactive le cache WSDL
+  $server = new SoapServer('../public/wsdl/Methods_AMDA.wsdl');  
+  $server->setClass('WebServer');
+  $server->handle();
+
+?>
\ No newline at end of file
diff --git a/php/AmdaUpdate.php b/php/AmdaUpdate.php
new file mode 100644
index 0000000..0757b75
--- /dev/null
+++ b/php/AmdaUpdate.php
@@ -0,0 +1,164 @@
+<?php
+/**
+*   @file AmdaUpdate.php
+*   @version $Id: AmdaUpdate.php 2855 2015-04-18 09:34:45Z elena $ 
+*   @brief Amda Update/Install Info by DD Server WebServices
+*/
+
+   ini_set("soap.wsdl_cache_enabled", "0");
+
+  require_once "config.php"; 
+ //  error_reporting(E_ALL);
+// if 'install' argument => then system installation!!!! otherwise => updating (without copy)
+
+  $updateOnly = true;
+  if (isset($argv[1]))
+  {
+  	  if ($argv[1] != 'install')
+     {
+  	    $msg = "Error: Unknown argument ".$argv[1]."!".PHP_EOL;
+  	    print_r($msg);
+  	    exit(1);
+     }
+     $updateOnly = false;
+  }
+    
+  
+   $amda = new AmdaClient($updateOnly);
+
+/*
+*      Get Shared TT id SHAREDTT dir doesn't exist
+*/
+   if (!$updateOnly) {              
+            if (!is_dir(SHAREDPATH)) {
+                    system("svn export ".SVN_DDMISSIONSINFO."SHAREDTT ".SHAREDPATH); 
+                    $amda->fsmodifyr(SHAREDPATH); 
+            }     
+        }       
+
+
+  $locBases = $amda->getAvailableMissions();
+
+    if(is_string($locBases)) {
+      $msg = "Warning: No Local Amda Data info exists!".PHP_EOL;
+      print_r($msg); 
+     }
+    else  {
+
+/*
+*  update DD_*.xml files for local bases. If 'updateOnly', we keep DD_*.xml that already exists to not erase current user modifications.
+*/ 
+    $amda->getDDLocalParamsFiles($locBases);
+    
+/*
+*  Update Start Stop for AMDA local data
+*/ 
+    $ok =   $amda->updateStartStop($locBases);  
+
+/*
+ *  Create EPNResource files
+ */
+    $epnMgr = new EPNResourcesManager($amda);
+    $epnMgr->createResources();
+    }
+/*
+ *  Create/update Orbites.xml file
+ */ 
+  if (!$updateOnly) { 
+      $postProcessing = new PostProcessing();
+      $postProcessing->createOrbites();
+      $postProcessing->createOrbites(LocalDataParam.'InternalParams.xml');
+      $postProcessing->createOrbitesInfoFiles($locBases);
+    }
+
+/*
+*  Get available external bases if exist 
+*/
+   
+   $extBases = $amda->getAvailableExternalBases();
+ 
+/*
+*  Update Start Stop for AMDA remote data
+*/
+   if(is_string($extBases)) {
+      $msg = "Warning: No Remote Amda Data info exists!".PHP_EOL;
+      print_r($msg); 
+     }
+
+   else  {
+      $paramMgr = new ParamMgr();
+      foreach ($extBases as $extBase) { 
+// check connection 
+	    if (!$amda->checkRemoteConnection($extBase->nodeValue)) {
+		  $msg = "Warning: No connection for ".$extBase->nodeValue.PHP_EOL;  
+		  print_r($msg); 
+	    } 
+	    if ($updateOnly)  { 
+		if (!($extBase->hasAttribute('group') && $extBase->getAttribute('group') == 'IMPEX')) {
+                    $ok =   $amda->updateRemoteStartStop($extBase->nodeValue);	
+                }	   
+	    }
+// if install - copy base.xml for all Bases
+	    else {
+		$ok = $amda->getAvailableExternalData($extBase->nodeValue);
+ 
+		if (!$ok) {
+		    $msg = "Warning: cannot copy base.xml for ".$extBase->nodeValue.PHP_EOL;
+		    print_r($msg);   
+		}
+// Copy all default datasets descriptions and create default parameters   
+                else {
+                    if ($extBase->hasAttribute('default') &&  
+                             (!($extBase->hasAttribute('group') && $extBase->getAttribute('group') == 'IMPEX'))) {
+                              $baseXML = new DomDocument("1.0");
+                              $baseId = $extBase->nodeValue;
+                              $baseXML->load(RemoteData.$baseId.'/base.xml');
+                              $datasets = $baseXML->getElementsByTagName('dataset');
+                              $paramMgr->baseId = $baseId;
+ 
+                            foreach ($datasets as $dataset){     
+                                if ($baseId !== 'THEMIS') {                   
+                                        $infoFileName = $paramMgr->getInfoName($dataset->getAttribute('name'));
+                                        $paramMgr->localInfo = RemoteData.$baseId.'/'.$infoFileName;
+
+                                        if (!file_exists($paramMgr->localInfo)) {
+                                            $remoteInfo = INFOSITE.'INFO/'.$baseId.'/DATASETS/'.$infoFileName;       
+                  // call to DD Server to create new VI
+                                            $viId = $dataset->getAttribute('name');
+
+                                            $command = OLD_CLASSPATH.'AddVI '.$paramMgr->dataset2dd($viId).' '.$viId.' '.$baseId;                
+                                            system($command, $err);
+                  // no data set description; skip this data set  
+                                            if(!copy($remoteInfo, $paramMgr->localInfo)) continue;
+                                        }
+
+                                        $params = $dataset->getElementsByTagName('parameter');
+                                        $paramMgr->remoteViId = $dataset->getAttribute('name');
+                                        foreach ($params as $param) {
+                                            $paramMgr->paramId = $param->getAttribute('name');
+                                            $paramGlobalId =  $param->getAttribute('xml:id');                           
+                                            $paramMgr->paramXML = RemoteData.'PARAMS/'.$paramGlobalId.'.xml';                          
+
+                                            $info = $paramMgr->getParamInfo();                                  
+                                            if (!file_exists($paramMgr->paramXML) && !$paramMgr->createParamXml($info)) continue;
+                                    }
+                                }                       
+                            }
+                        }
+                }
+            }
+        }
+      }
+     echo 'Start IMPEx user initialisation'.PHP_EOL;
+
+ 
+   // update IMPEx workspace
+    $userID = 'impex'; $userPWD = 'impexfp7'; $sessionID = 'impex';
+    $wsUserMgr = new WSUserMgr();
+    $wsUserMgr->init($userID, $userPWD, $sessionID);
+    $wsUserMgr->makeUserWS();
+   
+    echo 'IMPEx user was inited'.PHP_EOL;
+
+   echo PHP_EOL.'CHECK LOG IN '.log.PHP_EOL;
+?>
\ No newline at end of file
diff --git a/php/MultiRequestMgr.php b/php/MultiRequestMgr.php
new file mode 100644
index 0000000..f5670e8
--- /dev/null
+++ b/php/MultiRequestMgr.php
@@ -0,0 +1,240 @@
+<?
+/**
+  *  MultiRequestMgr.php
+  *   
+  *  @version $Id: MultiRequestMgr.php 2886 2015-04-29 15:15:46Z myriam $
+  */
+      
+   require 'config.php';
+   $userDirs = array('USERWSDIR' => 'WS', 'USERREQDIR' => 'REQ', 'USERDATADIR' => 'DATA',
+		     'USERWORKINGDIR' =>'RES', 'USERTTDIR' => 'TT', 'USERJOBDIR' => 'JOBS');	
+
+     
+  $request = json_decode($argv[1]);	
+  $tempname = $argv[2];
+  $user = $argv[3];
+  $IP = $argv[4];
+  $newname = $argv[5];
+
+   define ("USERDIR", USERPATH."$user/");
+ 
+  foreach ($userDirs as $key => $val) {
+	$dir = USERDIR.$val;
+	define("$key","$dir/");
+    } 
+    
+   $reqMgr = new RequestMgr();
+   $ttMgr = new TimeTableMgr();
+
+    if ($request->nodeType == 'request') copy(USERWORKINGDIR.$tempname.'_/'.$tempname,USERWORKINGDIR.$tempname.'_/request_.list'); 
+    
+ 
+   $timeTables = $request->timeTables;
+   $i = 0;
+   $badIntervals = 0;
+
+// check output file size for download
+   $fileSize = 0.0;
+
+   foreach ($timeTables as $timeTable)  { 
+ 
+          $ttType = (substr($timeTable->id,0,6) == 'shared') ?  'sharedtimeTable' : 'timeTable'; 
+  
+          $tt = $ttMgr->loadIntervalsFromTT($timeTable->id, $ttType);
+          $intervals = $tt['intervals'];
+ 
+//Everything is already  ready => just loop over Time Intervals    
+          foreach ($intervals as $interval) {
+	      switch ($request->nodeType) {
+		    case 'condition' : 
+
+				if ((strtotime($interval['stop']) - strtotime($interval['start'])) >= $request->sampling * 2.0) { 
+
+				  $reqMgr->createSearchRequestTime2($interval);			  
+		  // Run command
+				  $cmd = DDBIN."DD_Search ".$user." ".$IP." ".DDPROJECT." ".DDPROJLIB;  
+				  $cmdResult = system($cmd);
+		    //              if ($cmdResult === false) 
+  //TODO   processError
+		      
+				  if (file_exists(USERTTDIR.$tempname.'.xml'))
+						rename(USERTTDIR.$tempname.'.xml', USERTTDIR.$tempname.'_'.sprintf("%03d",$i).'.xml');
+				  if (file_exists(USERTTDIR.'Gaps_'.$tempname.'.xml'))
+						rename(USERTTDIR.'Gaps_'.$tempname.'.xml', USERTTDIR.'Gaps_'.$tempname.'_'.sprintf("%03d",$i).'.xml');
+				} 
+				else {
+//TODO create XML file with bad intervals to add to GAPS 
+				if (!$badIntervalsXml) {
+				    $badIntervalsXml  = new DomDocument("1.0");
+				    $badRootElement = $badIntervalsXml->createElement("TimeTable");
+				    $badIntervalsXml->appendChild($badRootElement);
+				 }
+				  $badInt = $badIntervalsXml->createElement('Interval');
+				  $badInt->setAttribute('flag', 'less than 2*samplings');
+				  $badInt->appendChild($badIntervalsXml->createElement('Start',$interval['start']));
+				  $badInt->appendChild($badIntervalsXml->createElement('Stop',$interval['stop']));
+				  $badRootElement->appendChild($badInt);
+ 
+				  $badIntervals++;
+				}
+			      break;
+                    case 'request' : 				
+				$resultDir = USERWORKINGDIR.$tempname.'_/';
+				copy($resultDir.'request_.list', $resultDir.$tempname);
+				$reqMgr->updateTime($resultDir.$tempname, $interval);
+				$cmd = DDBIN."DD_PS ".$tempname." ".$user." ".$IP." ".DDPROJECT." ".DDPROJLIB;
+				$cmdResult = system($cmd);
+ 			 
+				if (file_exists($resultDir.'idl.ps')) {					    
+					     rename($resultDir.'idl.ps', $resultDir.$tempname.sprintf("_%03d",$i).'.ps');
+				 }
+                              break;
+		    case 'download' :
+				$resultDir = USERWORKINGDIR.$tempname.'_/';
+				$reqMgr->updatePrintRequestTime($resultDir, $interval);
+                                $deltaT = strtotime($interval['stop']) - strtotime($interval['start']);
+                                if ($deltaT < $request->sampling) { 
+                                    $newSampling = $deltaT/2.0;
+                                    $reqMgr->updatePrintSampling($resultDir, $newSampling);
+                                }
+
+                                $outputFileSize = $reqMgr->estimateOutputFileSize($request, $deltaT);
+                                if ( $outputFileSize + $fileSize <  DISK_QUOTA ) { 
+				    set_time_limit(3000);
+                                    $cmd = DDBIN."DD_Print ".$user." ".$IP." ".DDPROJECT." ".DDPROJLIB;
+                                    $cmdResult = system($cmd);
+                                    foreach (glob($resultDir."*.txt") as $filename)
+                                        if ($filename != $resultDir."header.txt") { 
+                                            if ($deltaT < $request->sampling*2.0) { 
+                                                $new_name = str_replace(".txt", "_NONSTANDARD_SAMPLING_".str_replace(".","_",$newSampling)."_".sprintf("%04d",$i).".asc", $filename);
+                                            //sampling info
+                                                $str = "Sampling Time : ".$newSampling;
+                                                system("sed -i '1i\\#".$str."' '".$filename."'");
+                                            }
+                                            else {
+                                                $new_name = str_replace(".txt", "_".sprintf("%04d",$i).".asc", $filename);
+                                            }
+
+                                            rename($filename, $new_name);
+                                            $fileSize += filesize($new_name);
+                                    }
+                                }
+                                else {
+                                       $new_name = "DISK_QUOTA_EXCEEDED_".sprintf("%04d",$i).".asc";
+                                       $error = 'Interval '.$i.': '.$interval['start'].' - '.$interval['stop'].' '.' cannot be downloaded'.PHP_EOL.
+                                                 'You\'ve exceded the user disk quota'.PHP_EOL.'Decrease time interval OR put it into another Time Table'.PHP_EOL.
+                                                 'And don\'t forget to clean up your workspace from time to time';
+                                       file_put_contents($resultDir.$new_name, $error);
+                                }
+			      break;
+		    default :
+		  }                   
+              $i++;      
+          }
+      }  
+//Postprocessing
+       
+	      switch ($request->nodeType) {
+		    case 'download' :
+			$resultDir = USERWORKINGDIR.$tempname.'_/';
+			
+			//get options
+			$opts = $reqMgr->getPrintOptions($resultDir);
+			
+			//[['0','All In One File'], ['1','One File Per Time Interval'], ['2','One File Per Param/Interval']],
+			if ($opts['structure'] == '0')
+			{
+				 //all in one file
+				 exec("cat *.asc > ALL.txt");
+				 //remove asc files
+				foreach (glob($resultDir."*.asc") as $filename)
+				       unlink($filename);
+			}
+			else
+			{
+					//rename *.asc files by *.txt
+					foreach (glob($resultDir."*.asc") as $filename)
+					{
+                                            $new_name = str_replace(".asc", ".txt", $filename);
+					    rename($filename, $new_name); 
+                                        }
+			}
+			
+		      break;
+		    case 'condition' : 
+		       $resultDir = USERTTDIR;
+		       $prefix = '';
+		       $buffer = new DomDocument("1.0");
+		       for ($i = 0; $i < 2; $i++) {
+			$resultTT = new DomDocument("1.0");
+			$rootElement = $resultTT->createElement("TimeTable");
+			$rootElement->setAttribute("Name","");
+			  
+			$rootElement->appendChild($resultTT->createElement("Created", date('F j Y H:i:s')));
+			
+			$history = '';
+			foreach ($timeTables as $timeTable)  {
+				$history = $history." ".$timeTable->timeTableName;
+			} 
+			$rootElement->appendChild($resultTT->createElement("History", $history));				
+			
+  /*			
+			  $rootElement->appendChild($tempXml->createElement("Chain",  htmlentities($_POST['SearchCondition'])));
+			  $csection =  htmlentities("AMDA Search: Time_Step ".$_POST['TimeAver'].
+			  " s; Data_absence_is_gap_for_gaps > ".$_POST['Thresh'].
+			  " Data_Sampling_Times; Start_Time: ".$ddStart." Time_Interval: ".$time_int);
+			  $rootElement->appendChild($tempXml->createElement("Source", $csection));
+  */                                   		     
+			 
+			foreach (glob($resultDir.$prefix.$tempname.'_*.xml') as $xml) {
+			      $buffer->load($xml);
+			      $intervals_pp = $buffer->getElementsByTagName('Interval');
+			      foreach ($intervals_pp as $interval_pp) {
+				  $rootElement->appendChild($resultTT->importNode($interval_pp,true));			      
+				}
+			      unlink($xml);
+			  }
+			  $resultTT->appendChild($rootElement);
+			  $resultTT->save($resultDir.$prefix.$tempname.'.xml');
+			  $prefix = 'Gaps_';
+		       }
+//add bad intervals to GAPS
+ 
+			if ($badIntervals > 0) {
+			      $resultTT->load($resultDir.'Gaps_'.$tempname.'.xml');
+			      $rootElement = $resultTT->getElementsByTagName('TimeTable')->item(0);
+			      $intervals_bad = $badRootElement->getElementsByTagName('Interval');
+ 
+			      foreach ($intervals_bad as $interval_bad) {
+				  $rootElement->appendChild($resultTT->importNode($interval_bad,true));			      
+				}
+			      $resultTT->save($resultDir.'Gaps_'.$tempname.'.xml');
+			}
+		      break;
+		    case 'request' :  
+		      $resultDir = USERWORKINGDIR.$tempname.'_/';
+		      switch ($request->format) {                            
+			      case 'PS' :
+				  $cmd =  "gs -dBATCH -sPAPERSIZE=a4 -dNOPAUSE -q -sDEVICE=pswrite -sOutputFile=".$resultDir."idl.ps ";
+				  foreach (glob($resultDir.$tempname."_*.ps") as $aPS) $cmd .=  $aPS." ";
+				  exec($cmd);   		     
+				  exec("gzip ".$resultDir."idl.ps"); 
+                                  rename($resultDir."idl.ps.gz",$resultDir.$newname.".ps.gz");
+				break;
+			      case 'PDF' : 
+				  foreach (glob($resultDir.$tempname."_*.ps") as $aPS) { 
+					exec("ps2pdf -sPAPERSIZE=a4 ".$aPS);
+					unlink($aPS);
+				  }
+				  $cmd =  "gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -sOutputFile=".$resultDir."idl.pdf ";
+				  foreach (glob($resultDir.$tempname."_*.pdf") as $aPDF) $cmd .=  $aPDF." ";
+				  exec($cmd);    			 
+				break;
+			      default : 
+			  } 
+
+		      break;
+		    default :
+               }
+
+?>
diff --git a/php/TTCacheDump.php b/php/TTCacheDump.php
new file mode 100644
index 0000000..80e4473
--- /dev/null
+++ b/php/TTCacheDump.php
@@ -0,0 +1,12 @@
+<?php
+define ("USERTTDIR", "/home/benjamin/AMDA-GIT/AMDA/AMDA_IHM/data/testKernel/TT/");
+
+require_once("classes/AmdaObjectMgr.php");
+require_once("classes/TimeTableMgr.php");
+require_once("classes/TimeTableCacheMgr.php");
+
+$cacheMgr = new TimeTableCacheMgr();
+
+$cacheMgr->dump();
+
+?>
diff --git a/php/XML/VOTable-1.0.xsd b/php/XML/VOTable-1.0.xsd
new file mode 100644
index 0000000..ffef350
--- /dev/null
+++ b/php/XML/VOTable-1.0.xsd
@@ -0,0 +1,430 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--W3C Schema for VOTable  = Virtual Observatory Tabular Format
+     See History at      http://vizier.u-strasbg.fr/doc/VOTable
+     See Discussions at  http://archives.us-vo.org/VOTable
+  This XML schema can be referenced by
+       http://us-vo.org/xml/VOTable.xsd
+   or  http://cdsweb.u-strasbg.fr/xml/VOTable.xsd 
+  The DTD is available from
+       http://us-vo.org/xml/VOTable.dtd
+   or  http://cdsweb.u-strasbg.fr/xml/VOTable.dtd 
+.Version 1.0 : 15-Apr-2002
+.Version 1.0a: 27-Sep-2001 in MIN MAX STREAM
+.Version 1.0b: 09-Nov-2002 from Steve Lowe, slowe@head-cfa.harvard.edu:
+	       in DEFINITIONS, use 'xs:sequence' rather than 'xs:all'
+.Version 1.0c: 12-Nov-2002 from Steve Lowe, use xs:choice in DEFINITIONS
+.Version 1.0d: 10-Dec-2002 Allow several INFO TABLE
+-->
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://www.ivoa.net/xml/VOTable/v1.0" xmlns:vot="http://www.ivoa.net/xml/VOTable/v1.0">
+
+<!-- Here we define some interesting new datatypes:
+     - anyTEXT   may have embedded XHTML (conforming HTML)
+     - astroYear is an epoch in Besselian or Julian year, e.g. J2000
+     - arrayDEF  specifies an array size e.g. 12x23x*
+     - dataType  defines the acceptable datatypes
+     - precType  defines the acceptable precisions
+     - yesno     defines just the 2 alternatives
+-->
+
+<xs:complexType name="anyTEXT" mixed="true">
+      <xs:sequence>
+        <xs:any minOccurs="0" maxOccurs="unbounded" processContents="skip"/>
+      </xs:sequence>
+</xs:complexType>
+
+<xs:simpleType name="astroYear">
+  <xs:restriction base="xs:token">
+    <xs:pattern value="[JB][0-9]+([.][0-9]*)?"/>
+  </xs:restriction>
+</xs:simpleType>
+
+<xs:simpleType name="arrayDEF">
+  <xs:restriction base="xs:token">
+    <xs:pattern value="([0-9]+x)*[0-9]*[*]?"/>
+  </xs:restriction>
+</xs:simpleType>
+
+<xs:simpleType name="dataType">
+  <xs:restriction base="xs:NMTOKEN">
+    <xs:enumeration value="boolean"/>
+    <xs:enumeration value="bit"/>
+    <xs:enumeration value="unsignedByte"/>
+    <xs:enumeration value="short"/>
+    <xs:enumeration value="int"/>
+    <xs:enumeration value="long"/>
+    <xs:enumeration value="char"/>
+    <xs:enumeration value="unicodeChar"/>
+    <xs:enumeration value="float"/>
+    <xs:enumeration value="double"/>
+    <xs:enumeration value="floatComplex"/>
+    <xs:enumeration value="doubleComplex"/>
+  </xs:restriction>
+</xs:simpleType>
+
+<xs:simpleType name="precType">
+  <xs:restriction base="xs:token">
+    <xs:pattern value="[EF]?[1-9][0-9]*"/>
+  </xs:restriction>
+</xs:simpleType>
+
+<xs:simpleType name="yesno">
+  <xs:restriction base="xs:NMTOKEN">
+    <xs:enumeration value="yes"/>
+    <xs:enumeration value="no"/>
+  </xs:restriction>
+</xs:simpleType>
+
+<!-- VOTable is the root element -->
+  <xs:element name="VOTABLE">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element ref="vot:DESCRIPTION" minOccurs="0"/>
+        <xs:element ref="vot:DEFINITIONS" minOccurs="0"/>
+        <xs:element ref="vot:INFO" minOccurs="0" maxOccurs="unbounded"/>
+        <xs:element ref="vot:RESOURCE" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+      <xs:attribute name="ID" type="xs:ID"/>
+      <xs:attribute name="version">
+        <xs:simpleType>
+          <xs:restriction base="xs:NMTOKEN">
+            <xs:enumeration value="1.0"/>
+          </xs:restriction>
+        </xs:simpleType>
+      </xs:attribute>
+    </xs:complexType>
+  </xs:element>
+
+<!-- RESOURCES can contain DESCRIPTION, (INFO|PARM|LINK), (TABLE|RESOURCE) -->
+  <xs:element name="RESOURCE">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element ref="vot:DESCRIPTION" minOccurs="0"/>
+        <xs:element ref="vot:INFO" minOccurs="0" maxOccurs="unbounded"/>
+        <xs:element ref="vot:COOSYS" minOccurs="0" maxOccurs="unbounded"/>
+        <xs:element ref="vot:PARAM" minOccurs="0" maxOccurs="unbounded"/>
+        <xs:element ref="vot:LINK" minOccurs="0" maxOccurs="unbounded"/>
+        <xs:element ref="vot:TABLE" minOccurs="0" maxOccurs="unbounded"/>
+        <xs:element ref="vot:RESOURCE" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+      <xs:attribute name="name" type="xs:token"/>
+      <xs:attribute name="ID" type="xs:ID"/>
+      <xs:attribute name="type" default="results">
+        <xs:simpleType>
+          <xs:restriction base="xs:NMTOKEN">
+            <xs:enumeration value="results"/>
+            <xs:enumeration value="meta"/>
+          </xs:restriction>
+        </xs:simpleType>
+      </xs:attribute>
+    </xs:complexType>
+  </xs:element>
+
+  <xs:element name="DESCRIPTION" type="vot:anyTEXT"/>
+
+  <xs:element name="DEFINITIONS">
+    <xs:complexType>
+      <xs:choice minOccurs="0" maxOccurs="unbounded">
+        <xs:element ref="vot:COOSYS"/>
+        <xs:element ref="vot:PARAM"/>
+      </xs:choice>
+    </xs:complexType>
+  </xs:element>
+
+<!-- INFO is a name-value pair -->
+  <xs:element name="INFO">
+    <xs:complexType mixed="true"><xs:complexContent>
+      <xs:extension base="vot:anyTEXT">
+        <xs:attribute name="ID" type="xs:ID"/>
+        <xs:attribute name="name" type="xs:token" use="required"/>
+        <xs:attribute name="value" type="xs:string" use="required"/>
+      </xs:extension>
+    </xs:complexContent></xs:complexType>
+  </xs:element>
+
+<!-- A PARAM is similar to a FIELD, but it also has a "value" attribute -->
+  <xs:element name="PARAM">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element ref="vot:DESCRIPTION" minOccurs="0"/>
+        <xs:element ref="vot:VALUES" minOccurs="0"/>
+        <xs:element ref="vot:LINK" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+      <xs:attribute name="ID" type="xs:ID"/>
+      <xs:attribute name="unit" type="xs:token"/>
+      <xs:attribute name="datatype" type="vot:dataType"/>
+      <xs:attribute name="precision" type="vot:precType"/>
+      <xs:attribute name="width" type="xs:positiveInteger"/>
+      <xs:attribute name="ref" type="xs:IDREF"/>
+      <xs:attribute name="name" type="xs:token" use="required"/>
+      <xs:attribute name="ucd" type="xs:token"/>
+      <xs:attribute name="value" type="xs:string"/>
+      <xs:attribute name="arraysize" type="vot:arrayDEF"/>
+    </xs:complexType>
+  </xs:element>
+
+<!-- A TABLE is a sequence of FIELDS and LINKS and DESCRIPTION, 
+     possibly followed by a DATA section 
+-->
+  <xs:element name="TABLE">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element ref="vot:DESCRIPTION" minOccurs="0"/>
+        <xs:element ref="vot:FIELD" minOccurs="0" maxOccurs="unbounded"/>
+        <xs:element ref="vot:LINK" minOccurs="0" maxOccurs="unbounded"/>
+        <xs:element ref="vot:DATA" minOccurs="0"/>
+      </xs:sequence>
+      <xs:attribute name="ID" type="xs:ID"/>
+      <xs:attribute name="name" type="xs:token"/>
+      <xs:attribute name="ref" type="xs:IDREF"/>
+    </xs:complexType>
+  </xs:element>
+
+<!-- FIELD is the definition of what is in a column of the table -->
+  <xs:element name="FIELD">
+    <xs:complexType>
+      <xs:sequence minOccurs="0" maxOccurs="unbounded">
+        <xs:element ref="vot:DESCRIPTION" minOccurs="0"/>
+        <xs:element ref="vot:VALUES" minOccurs="0" maxOccurs="2"/>
+        <xs:element ref="vot:LINK" minOccurs="0"/>
+      </xs:sequence>
+      <xs:attribute name="ID" type="xs:ID"/>
+      <xs:attribute name="unit" type="xs:token"/>
+      <xs:attribute name="datatype" type="vot:dataType" use="required"/>
+      <xs:attribute name="precision" type="vot:precType"/>
+      <xs:attribute name="width" type="xs:positiveInteger"/>
+      <xs:attribute name="ref" type="xs:IDREF"/>
+      <xs:attribute name="name" type="xs:token" use="required"/>
+      <xs:attribute name="ucd" type="xs:string"/>
+      <xs:attribute name="arraysize" type="xs:string"/>
+      <xs:attribute name="type">
+        <xs:simpleType>
+          <xs:restriction base="xs:NMTOKEN">
+            <xs:enumeration value="hidden"/>
+            <xs:enumeration value="no_query"/>
+            <xs:enumeration value="trigger"/>
+          </xs:restriction>
+        </xs:simpleType>
+      </xs:attribute>
+    </xs:complexType>
+  </xs:element>
+
+<!-- VALUES expresses the values that can be taken by the data 
+     in a column or by a parameter
+-->
+  <xs:element name="VALUES">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element ref="vot:MIN" minOccurs="0"/>
+        <xs:element ref="vot:MAX" minOccurs="0"/>
+        <xs:element ref="vot:OPTION" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+      <xs:attribute name="ID" type="xs:ID"/>
+      <xs:attribute name="type" default="legal">
+        <xs:simpleType>
+          <xs:restriction base="xs:NMTOKEN">
+            <xs:enumeration value="legal"/>
+            <xs:enumeration value="actual"/>
+          </xs:restriction>
+        </xs:simpleType>
+      </xs:attribute>
+      <xs:attribute name="null" type="xs:token"/>
+      <xs:attribute name="invalid" type="vot:yesno" default="no"/>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="MIN">
+    <xs:complexType>
+      <xs:simpleContent><xs:extension base="xs:string">
+        <xs:attribute name="value" type="xs:string" use="required"/>
+        <xs:attribute name="inclusive" type="vot:yesno" default="yes"/>
+      </xs:extension></xs:simpleContent>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="MAX">
+    <xs:complexType>
+      <xs:simpleContent><xs:extension base="xs:string">
+        <xs:attribute name="value" type="xs:string" use="required"/>
+        <xs:attribute name="inclusive" type="vot:yesno" default="yes"/>
+      </xs:extension></xs:simpleContent>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="OPTION">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element ref="vot:OPTION" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+      <xs:attribute name="name" type="xs:token"/>
+      <xs:attribute name="value" type="xs:string" use="required"/>
+    </xs:complexType>
+  </xs:element>
+
+<!-- The LINK is a URL (href) or some other kind of reference (gref) -->
+  <xs:element name="LINK">
+    <xs:complexType><xs:simpleContent><xs:extension base="xs:string">
+    <xs:attribute name="ID" type="xs:ID"/>
+      <xs:attribute name="content-role">
+        <xs:simpleType>
+          <xs:restriction base="xs:NMTOKEN">
+            <xs:enumeration value="query"/>
+            <xs:enumeration value="hints"/>
+            <xs:enumeration value="doc"/>
+          </xs:restriction>
+        </xs:simpleType>
+      </xs:attribute>
+      <xs:attribute name="content-type" type="xs:token"/>
+      <xs:attribute name="title" type="xs:string"/>
+      <xs:attribute name="value" type="xs:string"/>
+      <xs:attribute name="href" type="xs:anyURI"/>
+      <xs:attribute name="gref" type="xs:token"/>
+      <xs:attribute name="action" type="xs:anyURI"/>
+  </xs:extension></xs:simpleContent></xs:complexType>
+  </xs:element>
+
+<!-- DATA is the actual table data, in one of three formats -->
+  <xs:element name="DATA">
+    <xs:complexType>
+      <xs:sequence>
+         <xs:element ref="vot:TABLEFORMAT"/>
+      </xs:sequence>
+<!--
+      <xs:choice>
+        <xs:element ref="vot:TABLEDATA"/>
+        <xs:element ref="vot:BINARY"/>
+        <xs:element ref="vot:FITS"/>
+      </xs:choice>
+  -->
+    </xs:complexType>
+  </xs:element>
+
+  <xs:element name="TABLEFORMAT" type="vot:TABLEFORMATType" abstract="true">
+    <xs:annotation>
+      <xs:documentation>
+        an abstract representation of the tables storage form.  
+      </xs:documentation>
+    </xs:annotation>
+  </xs:element>
+
+  <xs:complexType name="TABLEFORMATType">
+    <xs:sequence/>
+  </xs:complexType>
+
+  <xs:complexType name="StreamTABLEFORMATType">
+    <xs:complexContent>
+      <xs:extension base="vot:TABLEFORMATType">
+        <xs:sequence>
+          <xs:element ref="vot:STREAM"/>
+        </xs:sequence>
+      </xs:extension>    
+    </xs:complexContent>
+  </xs:complexType>
+
+<!-- Pure XML data -->
+  <xs:element name="TABLEDATA" substitutionGroup="vot:TABLEFORMAT">
+    <xs:complexType>
+      <xs:complexContent>
+        <xs:extension base="vot:TABLEFORMATType">
+      	  <xs:sequence>
+      	    <xs:element ref="vot:TR" minOccurs="0" maxOccurs="unbounded"/>
+      	  </xs:sequence>
+        </xs:extension>    
+      </xs:complexContent>
+    </xs:complexType>
+  </xs:element>
+
+  <xs:element name="TD">
+    <xs:complexType mixed="true"><xs:complexContent>
+      <xs:extension base="vot:anyTEXT">
+        <xs:attribute name="ref" type="xs:IDREF"/>
+      </xs:extension>
+    </xs:complexContent></xs:complexType>
+  </xs:element>
+
+  <xs:element name="TR">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element ref="vot:TD" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+
+<!-- FITS file, perhaps with specification of which extension to seek to -->
+  <xs:element name="FITS" substitutionGroup="vot:TABLEFORMAT">
+    <xs:complexType>
+      <xs:complexContent>
+        <xs:extension base="vot:StreamTABLEFORMATType">
+          <xs:attribute name="extnum" type="xs:positiveInteger"/>
+        </xs:extension>    
+      </xs:complexContent>
+    </xs:complexType>
+  </xs:element>
+
+<!-- BINARY data format -->
+  <xs:element name="BINARY" type="vot:StreamTABLEFORMATType" substitutionGroup="vot:TABLEFORMAT"/>
+
+<!-- STREAM can be local or remote, encoded or not -->
+  <xs:element name="STREAM">
+    <xs:complexType>
+      <xs:simpleContent>
+        <xs:extension base="xs:string">
+          <xs:attribute name="type" default="locator">
+            <xs:simpleType>
+              <xs:restriction base="xs:NMTOKEN">
+                <xs:enumeration value="locator"/>
+                <xs:enumeration value="other"/>
+              </xs:restriction>
+            </xs:simpleType>
+          </xs:attribute>
+          <xs:attribute name="href" type="xs:anyURI"/>
+          <xs:attribute name="actuate" default="onRequest">
+            <xs:simpleType>
+              <xs:restriction base="xs:NMTOKEN">
+                <xs:enumeration value="onLoad"/>
+                <xs:enumeration value="onRequest"/>
+                <xs:enumeration value="other"/>
+                <xs:enumeration value="none"/>
+              </xs:restriction>
+            </xs:simpleType>
+          </xs:attribute>
+          <xs:attribute name="encoding" default="none">
+            <xs:simpleType>
+              <xs:restriction base="xs:NMTOKEN">
+                <xs:enumeration value="gzip"/>
+                <xs:enumeration value="base64"/>
+                <xs:enumeration value="dynamic"/>
+                <xs:enumeration value="none"/>
+              </xs:restriction>
+            </xs:simpleType>
+          </xs:attribute>
+          <xs:attribute name="expires" type="xs:dateTime"/>
+          <xs:attribute name="rights" type="xs:token"/>
+        </xs:extension>
+      </xs:simpleContent>
+    </xs:complexType>
+  </xs:element>
+
+<!-- Expresses the coordinate system we are using -->
+  <xs:element name="COOSYS">
+    <xs:complexType mixed="true"><xs:complexContent>
+      <xs:extension base="vot:anyTEXT">
+        <xs:attribute name="ID" type="xs:ID"/>
+        <xs:attribute name="equinox" type="vot:astroYear"/>
+        <xs:attribute name="epoch" type="vot:astroYear"/>
+        <xs:attribute name="system" default="eq_FK5">
+          <xs:simpleType>
+            <xs:restriction base="xs:NMTOKEN">
+              <xs:enumeration value="eq_FK4"/>
+              <xs:enumeration value="eq_FK5"/>
+              <xs:enumeration value="ICRS"/>
+              <xs:enumeration value="ecl_FK4"/>
+              <xs:enumeration value="ecl_FK5"/>
+              <xs:enumeration value="galactic"/>
+              <xs:enumeration value="supergalactic"/>
+              <xs:enumeration value="xy"/>
+              <xs:enumeration value="barycentric"/>
+              <xs:enumeration value="geo_app"/>
+            </xs:restriction>
+          </xs:simpleType>
+        </xs:attribute>
+      </xs:extension></xs:complexContent></xs:complexType>
+  </xs:element>
+
+</xs:schema>
\ No newline at end of file
diff --git a/php/XML/VOTable-1.1.xsd b/php/XML/VOTable-1.1.xsd
new file mode 100644
index 0000000..49bff9b
--- /dev/null
+++ b/php/XML/VOTable-1.1.xsd
@@ -0,0 +1,466 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--W3C Schema for VOTable  = Virtual Observatory Tabular Format
+.Version 1.0 : 15-Apr-2002
+.Version 1.09: 23-Jan-2004 Version 1.09
+.Version 1.09: 30-Jan-2004 Version 1.091
+.Version 1.09: 22-Mar-2004 Version 1.092
+.Version 1.094: 02-Jun-2004 GROUP does not contain FIELD
+.Version 1.1 :  10-Jun-2004 remove the complexContent
+-->
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://www.ivoa.net/xml/VOTable/v1.1" xmlns="http://www.ivoa.net/xml/VOTable/v1.1">
+
+<!-- Here we define some interesting new datatypes:
+     - anyTEXT   may have embedded XHTML (conforming HTML)
+     - astroYear is an epoch in Besselian or Julian year, e.g. J2000
+     - arrayDEF  specifies an array size e.g. 12x23x*
+     - dataType  defines the acceptable datatypes
+     - ucdType   defines the acceptable UCDs (UCD1+)
+     - precType  defines the acceptable precisions
+     - yesno     defines just the 2 alternatives
+-->
+
+<xs:complexType name="anyTEXT" mixed="true">
+      <xs:sequence>
+        <xs:any minOccurs="0" maxOccurs="unbounded" processContents="skip"/>
+      </xs:sequence>
+</xs:complexType>
+
+<xs:simpleType name="astroYear">
+  <xs:restriction base="xs:token">
+    <xs:pattern value="[JB]?[0-9]+([.][0-9]*)?"/>
+  </xs:restriction>
+</xs:simpleType>
+
+<xs:simpleType name="ucdType">
+  <xs:restriction base="xs:token">
+    <xs:pattern value="[A-Za-z0-9_.;\-]*"/><!-- UCD1 use also / + % -->
+  </xs:restriction>
+</xs:simpleType>
+
+<xs:simpleType name="arrayDEF">
+  <xs:restriction base="xs:token">
+    <xs:pattern value="([0-9]+x)*[0-9]*[*]?(s\W)?"/>
+  </xs:restriction>
+</xs:simpleType>
+
+<xs:simpleType name="encodingType">
+  <xs:restriction base="xs:NMTOKEN">
+    <xs:enumeration value="gzip"/>
+    <xs:enumeration value="base64"/>
+    <xs:enumeration value="dynamic"/>
+    <xs:enumeration value="none"/>
+  </xs:restriction>
+</xs:simpleType>
+
+<xs:simpleType name="dataType">
+  <xs:restriction base="xs:NMTOKEN">
+    <xs:enumeration value="boolean"/>
+    <xs:enumeration value="bit"/>
+    <xs:enumeration value="unsignedByte"/>
+    <xs:enumeration value="short"/>
+    <xs:enumeration value="int"/>
+    <xs:enumeration value="long"/>
+    <xs:enumeration value="char"/>
+    <xs:enumeration value="unicodeChar"/>
+    <xs:enumeration value="float"/>
+    <xs:enumeration value="double"/>
+    <xs:enumeration value="floatComplex"/>
+    <xs:enumeration value="doubleComplex"/>
+  </xs:restriction>
+</xs:simpleType>
+
+<xs:simpleType name="precType">
+  <xs:restriction base="xs:token">
+    <xs:pattern value="[EF]?[1-9][0-9]*"/>
+  </xs:restriction>
+</xs:simpleType>
+
+<xs:simpleType name="yesno">
+  <xs:restriction base="xs:NMTOKEN">
+    <xs:enumeration value="yes"/>
+    <xs:enumeration value="no"/>
+  </xs:restriction>
+</xs:simpleType>
+
+<!-- VOTable is the root element -->
+  <xs:element name="VOTABLE">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element ref="DESCRIPTION" minOccurs="0"/>
+        <xs:element ref="DEFINITIONS" minOccurs="0"/><!-- Deprecated -->
+	<xs:choice minOccurs="0" maxOccurs="unbounded">
+          <xs:element ref="COOSYS"/>
+          <xs:element ref="PARAM"/>
+          <xs:element ref="INFO"/>
+	</xs:choice>
+        <xs:element ref="RESOURCE" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+      <xs:attribute name="ID" type="xs:ID"/>
+      <xs:attribute name="version">
+        <xs:simpleType>
+          <xs:restriction base="xs:NMTOKEN">
+            <xs:enumeration value="1.1"/>
+          </xs:restriction>
+        </xs:simpleType>
+      </xs:attribute>
+    </xs:complexType>
+  </xs:element>
+
+<!-- RESOURCES can contain DESCRIPTION, (INFO|PARAM|COSYS), LINK, TABLEs -->
+  <xs:element name="RESOURCE">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element ref="DESCRIPTION" minOccurs="0"/>
+	<xs:choice minOccurs="0" maxOccurs="unbounded">
+          <xs:element ref="INFO"/>
+          <xs:element ref="COOSYS"/>
+          <xs:element ref="PARAM"/>
+	</xs:choice>
+        <xs:element ref="LINK" minOccurs="0" maxOccurs="unbounded"/>
+        <xs:element ref="TABLE" minOccurs="0" maxOccurs="unbounded"/>
+        <xs:element ref="RESOURCE" minOccurs="0" maxOccurs="unbounded"/>
+	<!-- Suggested Doug Tody, to include new RESOURCE types -->
+	<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+      <xs:attribute name="name" type="xs:token"/>
+      <xs:attribute name="ID" type="xs:ID"/>
+      <xs:attribute name="utype" type="xs:string"/>
+      <xs:attribute name="type" default="results">
+        <xs:simpleType>
+          <xs:restriction base="xs:NMTOKEN">
+            <xs:enumeration value="results"/>
+            <xs:enumeration value="meta"/>
+          </xs:restriction>
+        </xs:simpleType>
+      </xs:attribute>
+      <!-- Suggested Doug Tody, to include new RESOURCE attributes -->
+      <xs:anyAttribute namespace="##other" processContents="lax"/>
+    </xs:complexType>
+  </xs:element>
+
+  <xs:element name="DESCRIPTION" type="anyTEXT"/>
+
+  <xs:element name="DEFINITIONS">
+  <xs:annotation>
+    <xs:documentation>Deprecated in Version 1.1</xs:documentation>
+  </xs:annotation>
+    <xs:complexType>
+      <xs:choice minOccurs="0" maxOccurs="unbounded">
+        <xs:element ref="COOSYS"/>
+        <xs:element ref="PARAM"/>
+      </xs:choice>
+    </xs:complexType>
+  </xs:element>
+
+<!-- INFO is a name-value pair -->
+  <xs:element name="INFO">
+    <xs:complexType><xs:simpleContent>
+      <xs:extension base="xs:string">
+        <xs:attribute name="ID" type="xs:ID"/>
+        <xs:attribute name="name" type="xs:token" use="required"/>
+        <xs:attribute name="value" type="xs:string" use="required"/>
+      </xs:extension>
+    </xs:simpleContent></xs:complexType>
+  </xs:element>
+
+<!-- A PARAM is similar to a FIELD, but it also has a "value" attribute -->
+  <xs:element name="PARAM">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element ref="DESCRIPTION" minOccurs="0"/>
+        <xs:element ref="VALUES" minOccurs="0"/>
+        <xs:element ref="LINK" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+      <xs:attribute name="ID" type="xs:ID"/>
+      <xs:attribute name="unit" type="xs:token"/>
+      <xs:attribute name="datatype" type="dataType" use="required"/>
+      <xs:attribute name="precision" type="precType"/>
+      <xs:attribute name="width" type="xs:positiveInteger"/>
+      <xs:attribute name="ref" type="xs:IDREF"/>
+      <xs:attribute name="name" type="xs:token" use="required"/>
+      <xs:attribute name="ucd" type="ucdType"/>
+      <xs:attribute name="utype" type="xs:string"/>
+      <xs:attribute name="value" type="xs:string" use="required"/>
+      <xs:attribute name="arraysize" type="arrayDEF"/>
+    </xs:complexType>
+  </xs:element>
+
+<!-- A TABLE is a sequence of FIELD/PARAMs and LINKS and DESCRIPTION, 
+     possibly followed by a DATA section 
+-->
+  <xs:element name="TABLE">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element ref="DESCRIPTION" minOccurs="0"/>
+	<xs:choice minOccurs="0" maxOccurs="unbounded">
+          <xs:element ref="FIELD"/>
+          <xs:element ref="PARAM"/>
+          <xs:element ref="GROUP"/>
+	</xs:choice>
+        <xs:element ref="LINK" minOccurs="0" maxOccurs="unbounded"/>
+        <xs:element ref="DATA" minOccurs="0"/>
+      </xs:sequence>
+      <xs:attribute name="ID" type="xs:ID"/>
+      <xs:attribute name="name" type="xs:token"/>
+      <xs:attribute name="ref" type="xs:IDREF"/>
+      <xs:attribute name="ucd" type="ucdType"/>
+      <xs:attribute name="utype" type="xs:string"/>
+      <xs:attribute name="nrows" type="xs:nonNegativeInteger"/>
+    </xs:complexType>
+  </xs:element>
+
+<!-- FIELD is the definition of what is in a column of the table -->
+  <xs:element name="FIELD">
+    <xs:complexType>
+      <xs:sequence> <!-- minOccurs="0" maxOccurs="unbounded" -->
+        <xs:element ref="DESCRIPTION" minOccurs="0"/>
+        <xs:element ref="VALUES" minOccurs="0"/> <!-- maxOccurs="2" -->
+        <xs:element ref="LINK" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+      <xs:attribute name="ID" type="xs:ID"/>
+      <xs:attribute name="unit" type="xs:token"/>
+      <xs:attribute name="datatype" type="dataType" use="required"/>
+      <xs:attribute name="precision" type="precType"/>
+      <xs:attribute name="width" type="xs:positiveInteger"/>
+      <xs:attribute name="ref" type="xs:IDREF"/>
+      <xs:attribute name="name" type="xs:token" use="required"/>
+      <xs:attribute name="ucd" type="ucdType"/>
+      <xs:attribute name="utype" type="xs:string"/>
+      <xs:attribute name="arraysize" type="xs:string"/>
+      <xs:attribute name="type">
+	<!-- type is not in the Version 1.1, but is kept for
+	     backward compatibility purposes
+	-->
+        <xs:simpleType>
+          <xs:restriction base="xs:NMTOKEN">
+            <xs:enumeration value="hidden"/>
+            <xs:enumeration value="no_query"/>
+            <xs:enumeration value="trigger"/>
+            <xs:enumeration value="location"/>
+          </xs:restriction>
+        </xs:simpleType>
+      </xs:attribute>
+    </xs:complexType>
+  </xs:element>
+
+<!-- GROUP groups columns; may include descriptions, fields/params/groups -->
+  <xs:element name="GROUP">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element ref="DESCRIPTION" minOccurs="0"/>
+        <xs:choice minOccurs="0" maxOccurs="unbounded">
+	  <xs:element ref="FIELDref"/>
+	  <xs:element ref="PARAMref"/>
+	  <xs:element ref="PARAM"/>
+	  <xs:element ref="GROUP"/>
+        </xs:choice>
+      </xs:sequence>
+      <xs:attribute name="ID" type="xs:ID"/>
+      <xs:attribute name="name" type="xs:token"/>
+      <xs:attribute name="ref" type="xs:IDREF"/>
+      <xs:attribute name="ucd" type="ucdType"/>
+      <xs:attribute name="utype" type="xs:string"/>
+    </xs:complexType>
+  </xs:element>
+
+<!-- FIELDref and PARAMref are references to FIELD or PARAM defined
+     in the parent TABLE or RESOURCE -->
+  <xs:element name="FIELDref">
+    <xs:complexType>
+      <xs:attribute name="ref" type="xs:IDREF" use="required"/>
+      <!-- utype and maybe ucd could well be added there,
+	   will be if necessary -->
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="PARAMref">
+    <xs:complexType>
+      <xs:attribute name="ref" type="xs:IDREF" use="required"/>
+      <!-- utype and maybe ucd could well be added there,
+	   will be if necessary -->
+    </xs:complexType>
+  </xs:element>
+    
+<!-- VALUES expresses the values that can be taken by the data 
+     in a column or by a parameter
+-->
+  <xs:element name="VALUES">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element ref="MIN" minOccurs="0"/>
+        <xs:element ref="MAX" minOccurs="0"/>
+        <xs:element ref="OPTION" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+      <xs:attribute name="ID" type="xs:ID"/>
+      <xs:attribute name="type" default="legal">
+        <xs:simpleType>
+          <xs:restriction base="xs:NMTOKEN">
+            <xs:enumeration value="legal"/>
+            <xs:enumeration value="actual"/>
+          </xs:restriction>
+        </xs:simpleType>
+      </xs:attribute>
+      <xs:attribute name="null" type="xs:token"/>
+      <xs:attribute name="ref" type="xs:IDREF"/>
+      <!-- xs:attribute name="invalid" type="yesno" default="no"/ -->
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="MIN">
+    <xs:complexType>
+      <xs:attribute name="value" type="xs:string" use="required"/>
+      <xs:attribute name="inclusive" type="yesno" default="yes"/>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="MAX">
+    <xs:complexType>
+      <xs:attribute name="value" type="xs:string" use="required"/>
+      <xs:attribute name="inclusive" type="yesno" default="yes"/>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="OPTION">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element ref="OPTION" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+      <xs:attribute name="name" type="xs:token"/>
+      <xs:attribute name="value" type="xs:string" use="required"/>
+    </xs:complexType>
+  </xs:element>
+
+<!-- The LINK is a URL (href) or some other kind of reference (gref) -->
+  <xs:element name="LINK">
+    <xs:complexType mixed="true">
+      <xs:attribute name="ID" type="xs:ID"/>
+      <xs:attribute name="content-role">
+        <xs:simpleType>
+          <xs:restriction base="xs:NMTOKEN">
+            <xs:enumeration value="query"/>
+            <xs:enumeration value="hints"/>
+            <xs:enumeration value="doc"/>
+            <xs:enumeration value="location"/>
+          </xs:restriction>
+        </xs:simpleType>
+      </xs:attribute>
+      <xs:attribute name="content-type" type="xs:token"/>
+      <xs:attribute name="title" type="xs:string"/>
+      <xs:attribute name="value" type="xs:string"/>
+      <xs:attribute name="href" type="xs:anyURI"/>
+      <xs:attribute name="gref" type="xs:token"/><!-- Deprecated in V1.1 -->
+      <xs:attribute name="action" type="xs:anyURI"/>
+    </xs:complexType>
+  </xs:element>
+
+<!-- DATA is the actual table data, in one of three formats -->
+  <xs:element name="DATA">
+    <xs:complexType>
+      <xs:choice>
+        <xs:element ref="TABLEDATA"/>
+        <xs:element ref="BINARY"/>
+        <xs:element ref="FITS"/>
+      </xs:choice>
+    </xs:complexType>
+  </xs:element>
+
+<!-- Pure XML data -->
+  <xs:element name="TABLEDATA">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element ref="TR" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+
+  <xs:element name="TD">
+    <xs:complexType><xs:simpleContent>
+      <xs:extension base="xs:string">
+        <!-- xs:attribute name="ref" type="xs:IDREF"/ -->
+        <xs:attribute name="encoding" type="encodingType"/>
+      </xs:extension>
+    </xs:simpleContent></xs:complexType>
+  </xs:element>
+
+  <xs:element name="TR">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element ref="TD" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+
+<!-- FITS file, perhaps with specification of which extension to seek to -->
+  <xs:element name="FITS">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element ref="STREAM"/>
+      </xs:sequence>
+      <xs:attribute name="extnum" type="xs:positiveInteger"/>
+    </xs:complexType>
+  </xs:element>
+
+<!-- BINARY data format -->
+  <xs:element name="BINARY">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element ref="STREAM"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+
+<!-- STREAM can be local or remote, encoded or not -->
+  <xs:element name="STREAM">
+    <xs:complexType>
+      <xs:simpleContent>
+        <xs:extension base="xs:string">
+          <xs:attribute name="type" default="locator">
+            <xs:simpleType>
+              <xs:restriction base="xs:NMTOKEN">
+                <xs:enumeration value="locator"/>
+                <xs:enumeration value="other"/>
+              </xs:restriction>
+            </xs:simpleType>
+          </xs:attribute>
+          <xs:attribute name="href" type="xs:anyURI"/>
+          <xs:attribute name="actuate" default="onRequest">
+            <xs:simpleType>
+              <xs:restriction base="xs:NMTOKEN">
+                <xs:enumeration value="onLoad"/>
+                <xs:enumeration value="onRequest"/>
+                <xs:enumeration value="other"/>
+                <xs:enumeration value="none"/>
+              </xs:restriction>
+            </xs:simpleType>
+          </xs:attribute>
+          <xs:attribute name="encoding" type="encodingType" default="none"/>
+          <xs:attribute name="expires" type="xs:dateTime"/>
+          <xs:attribute name="rights" type="xs:token"/>
+        </xs:extension>
+      </xs:simpleContent>
+    </xs:complexType>
+  </xs:element>
+
+<!-- Expresses the coordinate system we are using -->
+  <xs:element name="COOSYS">
+    <xs:complexType><xs:simpleContent>
+      <xs:extension base="xs:string">
+        <xs:attribute name="ID" type="xs:ID" use="required"/>
+        <xs:attribute name="equinox" type="astroYear"/>
+        <xs:attribute name="epoch" type="astroYear"/>
+        <xs:attribute name="system" default="eq_FK5">
+          <xs:simpleType>
+            <xs:restriction base="xs:NMTOKEN">
+              <xs:enumeration value="eq_FK4"/>
+              <xs:enumeration value="eq_FK5"/>
+              <xs:enumeration value="ICRS"/>
+              <xs:enumeration value="ecl_FK4"/>
+              <xs:enumeration value="ecl_FK5"/>
+              <xs:enumeration value="galactic"/>
+              <xs:enumeration value="supergalactic"/>
+              <xs:enumeration value="xy"/>
+              <xs:enumeration value="barycentric"/>
+              <xs:enumeration value="geo_app"/>
+            </xs:restriction>
+          </xs:simpleType>
+        </xs:attribute>
+      </xs:extension></xs:simpleContent></xs:complexType>
+  </xs:element>
+
+</xs:schema>
\ No newline at end of file
diff --git a/php/XML/VOTable-1.2.xsd b/php/XML/VOTable-1.2.xsd
new file mode 100644
index 0000000..425696e
--- /dev/null
+++ b/php/XML/VOTable-1.2.xsd
@@ -0,0 +1,558 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--W3C Schema for VOTable  = Virtual Observatory Tabular Format
+.Version 1.0 : 15-Apr-2002
+.Version 1.09: 23-Jan-2004 Version 1.09
+.Version 1.09: 30-Jan-2004 Version 1.091
+.Version 1.09: 22-Mar-2004 Version 1.092
+.Version 1.094: 02-Jun-2004 GROUP does not contain FIELD
+.Version 1.1 :  10-Jun-2004 remove the complexContent
+.Version 1.11: GL: 23-May-2006 remove most root elements, use name= type= iso ref= structure
+.Version 1.11: GL: 29-Aug-2006 review and added comments (prefixed by GL) 
+              before sending to Francois Ochsenbein
+.Version 1.12: FO: Preliminary Version 1.2
+.Version 1.18: FO: Tested (jax) version 1.2
+.Version 1.19: FO: Completed INFO attributes
+.Version 1.20: FO: Added xtype; content-role is less restrictive (May2009)
+.Version 1.20a: FO: PR-20090710 Cosmetics.
+.Version 1.20b: FO: INFO does not accept sub-elements (2009-09-29)
+.Version 1.20c: FO: elementFormDefault="qualified" to stay compatible with 1.1
+-->
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" xmlns="http://www.ivoa.net/xml/VOTable/v1.2" targetNamespace="http://www.ivoa.net/xml/VOTable/v1.2">
+<xs:annotation><xs:documentation>
+    VOTable1.2 is meant to serialize tabular documents in the
+    context of Virtual Observatory applications. This schema
+    corresponds to the VOTable document available from
+    http://www.ivoa.net/Documents/latest/VOT.html
+</xs:documentation></xs:annotation>
+
+<!-- Here we define some interesting new datatypes:
+     - anyTEXT   may have embedded XHTML (conforming HTML)
+     - astroYear is an epoch in Besselian or Julian year, e.g. J2000
+     - arrayDEF  specifies an array size e.g. 12x23x*
+     - dataType  defines the acceptable datatypes
+     - ucdType   defines the acceptable UCDs (UCD1+)
+     - precType  defines the acceptable precisions
+     - yesno     defines just the 2 alternatives
+-->
+
+<xs:complexType name="anyTEXT" mixed="true">
+  <xs:sequence>
+    <xs:any minOccurs="0" maxOccurs="unbounded" processContents="skip"/>
+  </xs:sequence>
+</xs:complexType>
+
+<xs:simpleType name="astroYear">
+  <xs:restriction base="xs:token">
+    <xs:pattern value="[JB]?[0-9]+([.][0-9]*)?"/>
+  </xs:restriction>
+</xs:simpleType>
+
+<xs:simpleType name="ucdType">
+  <xs:restriction base="xs:token">
+    <xs:annotation><xs:documentation>
+      Accept UCD1+
+      Accept also old UCD1 (but not / + %) including SIAP convention (with :)
+    </xs:documentation></xs:annotation>
+    <xs:pattern value="[A-Za-z0-9_.:;\-]*"/><!-- UCD1 use also / + % -->
+  </xs:restriction>
+</xs:simpleType>
+
+<xs:simpleType name="arrayDEF">
+  <xs:restriction base="xs:token">
+    <xs:pattern value="([0-9]+x)*[0-9]*[*]?(s\W)?"/>
+  </xs:restriction>
+</xs:simpleType>
+
+<xs:simpleType name="encodingType">
+  <xs:restriction base="xs:NMTOKEN">
+    <xs:enumeration value="gzip"/>
+    <xs:enumeration value="base64"/>
+    <xs:enumeration value="dynamic"/>
+    <xs:enumeration value="none"/>
+  </xs:restriction>
+</xs:simpleType>
+
+<xs:simpleType name="dataType">
+  <xs:restriction base="xs:NMTOKEN">
+    <xs:enumeration value="boolean"/>
+    <xs:enumeration value="bit"/>
+    <xs:enumeration value="unsignedByte"/>
+    <xs:enumeration value="short"/>
+    <xs:enumeration value="int"/>
+    <xs:enumeration value="long"/>
+    <xs:enumeration value="char"/>
+    <xs:enumeration value="unicodeChar"/>
+    <xs:enumeration value="float"/>
+    <xs:enumeration value="double"/>
+    <xs:enumeration value="floatComplex"/>
+    <xs:enumeration value="doubleComplex"/>
+  </xs:restriction>
+</xs:simpleType>
+
+<xs:simpleType name="precType">
+  <xs:restriction base="xs:token">
+    <xs:pattern value="[EF]?[1-9][0-9]*"/>
+  </xs:restriction>
+</xs:simpleType>
+
+<xs:simpleType name="yesno">
+  <xs:restriction base="xs:NMTOKEN">
+    <xs:enumeration value="yes"/>
+    <xs:enumeration value="no"/>
+  </xs:restriction>
+</xs:simpleType>
+
+  <xs:complexType name="Min">
+    <xs:attribute name="value" type="xs:string" use="required"/>
+    <xs:attribute name="inclusive" type="yesno" default="yes"/>
+  </xs:complexType>
+  <xs:complexType name="Max">
+    <xs:attribute name="value" type="xs:string" use="required"/>
+    <xs:attribute name="inclusive" type="yesno" default="yes"/>
+  </xs:complexType>
+  <xs:complexType name="Option">
+    <xs:sequence>
+      <xs:element name="OPTION" type="Option" minOccurs="0" maxOccurs="unbounded"/>
+    </xs:sequence>
+    <xs:attribute name="name" type="xs:token"/>
+    <xs:attribute name="value" type="xs:string" use="required"/>
+  </xs:complexType>
+  
+  <!-- VALUES expresses the values that can be taken by the data 
+    in a column or by a parameter
+  -->
+  <xs:complexType name="Values">
+    <xs:sequence>
+      <xs:element name="MIN" type="Min" minOccurs="0"/>
+      <xs:element name="MAX" type="Max" minOccurs="0"/>
+      <xs:element name="OPTION" type="Option" minOccurs="0" maxOccurs="unbounded"/>
+    </xs:sequence>
+    <xs:attribute name="ID" type="xs:ID"/>
+    <xs:attribute name="type" default="legal">
+      <xs:simpleType>
+        <xs:restriction base="xs:NMTOKEN">
+          <xs:enumeration value="legal"/>
+          <xs:enumeration value="actual"/>
+        </xs:restriction>
+      </xs:simpleType>
+    </xs:attribute>
+    <xs:attribute name="null" type="xs:token"/>
+    <xs:attribute name="ref" type="xs:IDREF"/>
+    <!-- xs:attribute name="invalid" type="yesno" default="no"/ -->
+  </xs:complexType>
+  
+  <!-- The LINK is a URL (href) or some other kind of reference (gref) -->
+  <xs:complexType name="Link">
+    <xs:annotation><xs:documentation> 
+    content-role was previsouly restricted as: <![CDATA[
+    <xs:attribute name="content-role">
+      <xs:simpleType>
+        <xs:restriction base="xs:NMTOKEN">
+          <xs:enumeration value="query"/>
+          <xs:enumeration value="hints"/>
+          <xs:enumeration value="doc"/>
+          <xs:enumeration value="location"/>
+        </xs:restriction>
+      </xs:simpleType>
+    </xs:attribute>]]>; is now a name token.
+    </xs:documentation></xs:annotation>
+    <xs:attribute name="ID" type="xs:ID"/>
+    <xs:attribute name="content-role" type="xs:NMTOKEN"/>
+    <xs:attribute name="content-type" type="xs:NMTOKEN"/>
+    <xs:attribute name="title" type="xs:string"/>
+    <xs:attribute name="value" type="xs:string"/>
+    <xs:attribute name="href" type="xs:anyURI"/>
+    <xs:attribute name="gref" type="xs:token"/><!-- Deprecated in V1.1 -->
+    <xs:attribute name="action" type="xs:anyURI"/>
+  </xs:complexType>
+  
+<!-- INFO is defined in Version 1.2 as a PARAM of String type 
+<xs:complexType name="Info">
+  <xs:complexContent>
+    <xs:restriction base="Param">
+      <xs:attribute name="unit" fixed=""/>
+      <xs:attribute name="datatype" fixed="char"/>
+      <xs:attribute name="arraysize" fixed="*"/>
+    </xs:restriction>
+  </xs:complexContent>
+</xs:complexType>
+ -or- as a full definition:
+<xs:complexType name="Info">
+  <xs:sequence> 
+  <xs:element name="DESCRIPTION" type="anyTEXT" minOccurs="0"/>
+    <xs:element name="VALUES" type="Values" minOccurs="0"/>
+    <xs:element name="LINK" type="Link" minOccurs="0" maxOccurs="unbounded"/> 
+  </xs:sequence>
+  <xs:attribute name="name" type="xs:token" use="required"/>
+  <xs:attribute name="value" type="xs:string" use="required"/>
+  <xs:attribute name="ID" type="xs:ID"/>
+  <xs:attribute name="unit" type="xs:token"/>
+  <xs:attribute name="xtype" type="xs:token"/>
+  <xs:attribute name="ref" type="xs:IDREF"/>
+  <xs:attribute name="ucd" type="ucdType"/>
+  <xs:attribute name="utype" type="xs:string"/>
+</xs:complexType>
+-->
+<!-- No sub-element is accepted in INFO for backward compatibility -->
+<xs:complexType name="Info">
+  <xs:simpleContent>
+    <xs:extension base="xs:string">
+      <xs:attribute name="ID" type="xs:ID"/>
+      <xs:attribute name="name" type="xs:token" use="required"/>
+      <xs:attribute name="value" type="xs:string" use="required"/>
+      <xs:attribute name="unit" type="xs:token"/>
+      <xs:attribute name="xtype" type="xs:token"/>
+      <xs:attribute name="ref" type="xs:IDREF"/>
+      <xs:attribute name="ucd" type="ucdType"/>
+      <xs:attribute name="utype" type="xs:string"/>
+    </xs:extension>
+  </xs:simpleContent>
+</xs:complexType>
+
+<!-- Expresses the coordinate system we are using --><!-- Deprecated V1.2 -->
+<xs:complexType name="CoordinateSystem">
+  <xs:annotation><xs:documentation>
+    Deprecated in Version 1.2
+  </xs:documentation></xs:annotation>
+  <xs:simpleContent>
+    <xs:extension base="xs:string">
+      <xs:attribute name="ID" type="xs:ID" use="required"/>
+      <xs:attribute name="equinox" type="astroYear"/>
+      <xs:attribute name="epoch" type="astroYear"/>
+      <xs:attribute name="system" default="eq_FK5">
+        <xs:simpleType>
+          <xs:restriction base="xs:NMTOKEN">
+            <xs:enumeration value="eq_FK4"/>
+            <xs:enumeration value="eq_FK5"/>
+            <xs:enumeration value="ICRS"/>
+            <xs:enumeration value="ecl_FK4"/>
+            <xs:enumeration value="ecl_FK5"/>
+            <xs:enumeration value="galactic"/>
+            <xs:enumeration value="supergalactic"/>
+            <xs:enumeration value="xy"/>
+            <xs:enumeration value="barycentric"/>
+            <xs:enumeration value="geo_app"/>
+          </xs:restriction>
+        </xs:simpleType>
+      </xs:attribute>
+    </xs:extension>
+  </xs:simpleContent>
+</xs:complexType>
+
+<xs:complexType name="Definitions">
+  <xs:annotation><xs:documentation>
+    Deprecated in Version 1.1
+  </xs:documentation></xs:annotation>
+  <xs:choice minOccurs="0" maxOccurs="unbounded">
+    <xs:element name="COOSYS" type="CoordinateSystem"/><!-- Deprecated in V1.2 -->
+    <xs:element name="PARAM" type="Param"/>
+  </xs:choice>
+</xs:complexType>
+
+<!-- FIELD is the definition of what is in a column of the table -->
+<xs:complexType name="Field">
+  <xs:sequence> <!-- minOccurs="0" maxOccurs="unbounded" -->
+    <xs:element name="DESCRIPTION" type="anyTEXT" minOccurs="0"/>
+    <xs:element name="VALUES" type="Values" minOccurs="0"/> <!-- maxOccurs="2" -->
+    <xs:element name="LINK" type="Link" minOccurs="0" maxOccurs="unbounded"/>
+  </xs:sequence>
+  <xs:attribute name="ID" type="xs:ID"/>
+  <xs:attribute name="unit" type="xs:token"/>
+  <xs:attribute name="datatype" type="dataType" use="required"/>
+  <xs:attribute name="precision" type="precType"/>
+  <xs:attribute name="width" type="xs:positiveInteger"/>
+  <xs:attribute name="xtype" type="xs:token"/>
+  <xs:attribute name="ref" type="xs:IDREF"/>
+  <xs:attribute name="name" type="xs:token" use="required"/>
+  <xs:attribute name="ucd" type="ucdType"/>
+  <xs:attribute name="utype" type="xs:string"/>
+  <xs:attribute name="arraysize" type="xs:string"/>
+    <!-- GL: is the next deprecated element remaining 
+        (is not in PARAM, but will in new model be inherited) 
+    -->
+  <xs:attribute name="type">
+    <!-- type is not in the Version 1.1, but is kept for
+         backward compatibility purposes
+    -->
+    <xs:simpleType>
+      <xs:restriction base="xs:NMTOKEN">
+        <xs:enumeration value="hidden"/>
+        <xs:enumeration value="no_query"/>
+        <xs:enumeration value="trigger"/>
+        <xs:enumeration value="location"/>
+      </xs:restriction>
+    </xs:simpleType>
+  </xs:attribute>
+</xs:complexType>
+
+
+<!-- A PARAM is similar to a FIELD, but it also has a "value" attribute -->
+<!--  GL: implemented here as a subtype as suggested we do in Kyoto. -->
+<xs:complexType name="Param">
+  <xs:complexContent>
+    <xs:extension base="Field">
+      <xs:attribute name="value" type="xs:string" use="required"/>
+    </xs:extension>
+  </xs:complexContent>
+</xs:complexType>
+
+
+<!-- GROUP groups columns; may include descriptions, fields/params/groups -->
+<xs:complexType name="Group">
+  <xs:sequence>
+    <xs:element name="DESCRIPTION" type="anyTEXT" minOccurs="0"/>
+<!--  GL I guess I can understand the next choice element as one may (?) 
+      really want to group fields and params and groups in a particular order.
+-->    
+    <xs:choice minOccurs="0" maxOccurs="unbounded">
+      <xs:element name="FIELDref" type="FieldRef"/> 
+      <xs:element name="PARAMref" type="ParamRef"/> 
+      <xs:element name="PARAM" type="Param"/> 
+      <xs:element name="GROUP" type="Group"/> 
+      <!-- GL a GroupRef could remove recursion -->
+    </xs:choice>
+  </xs:sequence>
+  <xs:attribute name="ID" type="xs:ID"/>
+  <xs:attribute name="name" type="xs:token"/>
+  <xs:attribute name="ref" type="xs:IDREF"/>
+  <xs:attribute name="ucd" type="ucdType"/>
+  <xs:attribute name="utype" type="xs:string"/>
+</xs:complexType>
+
+<!-- FIELDref and PARAMref are references to FIELD or PARAM defined
+     in the parent TABLE or RESOURCE -->
+<!-- GL This can not be enforced in XML Schema, so why not IDREF in <Group> ?
+     In particular if the UCD and utype attributes will NOT be added -->
+<xs:complexType name="FieldRef">
+  <xs:attribute name="ref" type="xs:IDREF" use="required"/>
+  <xs:attribute name="ucd" type="ucdType"/>
+  <xs:attribute name="utype" type="xs:string"/>
+</xs:complexType>
+
+<xs:complexType name="ParamRef">
+  <xs:attribute name="ref" type="xs:IDREF" use="required"/>
+  <xs:attribute name="ucd" type="ucdType"/>
+  <xs:attribute name="utype" type="xs:string"/>
+</xs:complexType>
+
+<!-- DATA is the actual table data, in one of three formats -->
+<!-- 
+  GL in Kyoto we discussed the option of having the specific Data items 
+  be subtypes of Data:
+-->
+<!-- 
+<xs:complexType name="Data" abstract="true"/>
+
+<xs:complexType name="TableData">
+  <xs:complexContent>
+    <xs:extension base="Data">
+     ... etc
+    </xs:extension>
+  </xs:complexContent>
+</xs:complexType>
+ -->
+<xs:complexType name="Data">
+  <xs:annotation><xs:documentation>
+    Added in Version 1.2: INFO for diagnostics
+  </xs:documentation></xs:annotation>
+  <xs:sequence>
+    <xs:choice>
+      <xs:element name="TABLEDATA" type="TableData"/>
+      <xs:element name="BINARY" type="Binary"/>
+      <xs:element name="FITS" type="FITS"/>
+    </xs:choice>
+    <xs:element name="INFO" type="Info" minOccurs="0" maxOccurs="unbounded"/>
+  </xs:sequence>
+</xs:complexType>
+
+<!-- Pure XML data -->
+<xs:complexType name="TableData">
+  <xs:sequence>
+    <xs:element name="TR" type="Tr" minOccurs="0" maxOccurs="unbounded"/>
+  </xs:sequence>
+</xs:complexType>
+
+<xs:complexType name="Td">
+  <xs:simpleContent>
+    <xs:extension base="xs:string">
+      <!-- xs:attribute name="ref" type="xs:IDREF"/ -->
+      <xs:annotation><xs:documentation>
+          The 'encoding' attribute is added here to avoid
+          problems of code generators which do not properly
+          interpret the TR/TD structures.
+          'encoding' was chosen because it appears in
+          appendix A.5
+      </xs:documentation></xs:annotation>
+      <xs:attribute name="encoding" type="encodingType"/>
+    </xs:extension>
+  </xs:simpleContent>
+</xs:complexType>
+
+<xs:complexType name="Tr">
+  <xs:annotation><xs:documentation>
+    The ID attribute is added here to the TR tag to avoid 
+    problems of code generators which do not properly 
+    interpret the TR/TD structures
+  </xs:documentation></xs:annotation>
+  <xs:sequence>
+    <xs:element name="TD" type="Td" maxOccurs="unbounded"/>
+  </xs:sequence>
+  <xs:attribute name="ID" type="xs:ID"/>
+</xs:complexType>
+
+<!-- FITS file, perhaps with specification of which extension to seek to -->
+<xs:complexType name="FITS">
+  <xs:sequence>
+    <xs:element name="STREAM" type="Stream"/>
+  </xs:sequence>
+  <xs:attribute name="extnum" type="xs:positiveInteger"/>
+</xs:complexType>
+
+<!-- BINARY data format -->
+<xs:complexType name="Binary">
+  <xs:sequence>
+    <xs:element name="STREAM" type="Stream"/>
+  </xs:sequence>
+</xs:complexType>
+
+<!-- STREAM can be local or remote, encoded or not -->
+<xs:complexType name="Stream">
+  <xs:simpleContent>
+    <xs:extension base="xs:string">
+      <xs:attribute name="type" default="locator">
+        <xs:simpleType>
+          <xs:restriction base="xs:NMTOKEN">
+            <xs:enumeration value="locator"/>
+            <xs:enumeration value="other"/>
+          </xs:restriction>
+        </xs:simpleType>
+      </xs:attribute>
+      <xs:attribute name="href" type="xs:anyURI"/>
+      <xs:attribute name="actuate" default="onRequest">
+        <xs:simpleType>
+          <xs:restriction base="xs:NMTOKEN">
+            <xs:enumeration value="onLoad"/>
+            <xs:enumeration value="onRequest"/>
+            <xs:enumeration value="other"/>
+            <xs:enumeration value="none"/>
+          </xs:restriction>
+        </xs:simpleType>
+      </xs:attribute>
+      <xs:attribute name="encoding" type="encodingType" default="none"/>
+      <xs:attribute name="expires" type="xs:dateTime"/>
+      <xs:attribute name="rights" type="xs:token"/>
+    </xs:extension>
+  </xs:simpleContent>
+</xs:complexType>
+
+<!-- A TABLE is a sequence of FIELD/PARAMs and LINKS and DESCRIPTION, 
+     possibly followed by a DATA section 
+-->
+<xs:complexType name="Table">
+  <xs:annotation><xs:documentation>
+    Added in Version 1.2: INFO for diagnostics
+  </xs:documentation></xs:annotation>
+  <xs:sequence>
+    <xs:element name="DESCRIPTION" type="anyTEXT" minOccurs="0"/>
+<!-- GL: why a choice iso for example -->
+<!-- 
+      <xs:element name="PARAM" type="Param" minOccurs="0" maxOccurs="unbounded"/>
+      <xs:element name="FIELD" type="Field" minOccurs="0" maxOccurs="unbounded"/>
+      <xs:element name="GROUP" type="Group" minOccurs="0" maxOccurs="unbounded"/>
+-->
+<!-- 
+  This could also enforce groups to be defined after the fields and params 
+  to which they must have a reference, which is somewhat more logical
+-->
+    <!-- Added Version 1.2: -->
+    <xs:element name="INFO" type="Info" minOccurs="0" maxOccurs="unbounded"/> 
+    <!-- An empty table without any FIELD/PARAM should not be acceptable -->
+    <xs:choice minOccurs="1" maxOccurs="unbounded"> 
+      <xs:element name="FIELD" type="Field"/>
+      <xs:element name="PARAM" type="Param"/>
+      <xs:element name="GROUP" type="Group"/>
+    </xs:choice>
+    <xs:element name="LINK" type="Link" minOccurs="0" maxOccurs="unbounded"/>
+    <!-- This would allow several DATA parts in a table (future extension?)
+    <xs:sequence minOccurs="0" maxOccurs="unbounded">  
+      <xs:element name="DATA" type="Data"/>
+      <xs:element name="INFO" type="Info" minOccurs="0" maxOccurs="unbounded"/>
+    </xs:sequence>
+    -->
+    <xs:element name="DATA" type="Data" minOccurs="0"/>
+    <xs:element name="INFO" type="Info" minOccurs="0" maxOccurs="unbounded"/>
+  </xs:sequence>
+  <xs:attribute name="ID" type="xs:ID"/>
+  <xs:attribute name="name" type="xs:token"/>
+  <xs:attribute name="ref" type="xs:IDREF"/>
+  <xs:attribute name="ucd" type="ucdType"/>
+  <xs:attribute name="utype" type="xs:string"/>
+  <xs:attribute name="nrows" type="xs:nonNegativeInteger"/>
+</xs:complexType>
+
+<!-- RESOURCES can contain DESCRIPTION, (INFO|PARAM|COSYS), LINK, TABLEs -->
+<xs:complexType name="Resource">
+  <xs:annotation><xs:documentation>
+     Added in Version 1.2: INFO for diagnostics in several places
+  </xs:documentation></xs:annotation>
+  <xs:sequence>
+    <xs:element name="DESCRIPTION" type="anyTEXT" minOccurs="0"/>
+    <xs:element name="INFO" type="Info" minOccurs="0" maxOccurs="unbounded"/>
+    <xs:choice minOccurs="0" maxOccurs="unbounded">
+      <xs:element name="COOSYS" type="CoordinateSystem"/><!-- Deprecated in V1.2 -->
+      <xs:element name="GROUP" type="Group"/>
+      <xs:element name="PARAM" type="Param"/>
+    </xs:choice>
+    <xs:sequence minOccurs="0" maxOccurs="unbounded">
+      <xs:element name="LINK" type="Link" minOccurs="0" maxOccurs="unbounded"/>
+      <xs:choice>
+        <xs:element name="TABLE" type="Table"/>
+        <xs:element name="RESOURCE" type="Resource"/>
+      </xs:choice>
+      <xs:element name="INFO" type="Info" minOccurs="0" maxOccurs="unbounded"/>
+    </xs:sequence>
+    <!-- Suggested Doug Tody, to include new RESOURCE types -->
+    <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
+  </xs:sequence>
+  <xs:attribute name="name" type="xs:token"/>
+  <xs:attribute name="ID" type="xs:ID"/>
+  <xs:attribute name="utype" type="xs:string"/>
+  <xs:attribute name="type" default="results">
+    <xs:simpleType>
+      <xs:restriction base="xs:NMTOKEN">
+        <xs:enumeration value="results"/>
+        <xs:enumeration value="meta"/>
+      </xs:restriction>
+    </xs:simpleType>
+  </xs:attribute>
+  <!-- Suggested Doug Tody, to include new RESOURCE attributes -->
+  <xs:anyAttribute namespace="##other" processContents="lax"/>
+</xs:complexType>
+
+<!-- VOTable is the root element -->
+<xs:element name="VOTABLE">
+<xs:complexType>
+  <xs:sequence>
+    <xs:element name="DESCRIPTION" type="anyTEXT" minOccurs="0"/>
+    <xs:element name="DEFINITIONS" type="Definitions" minOccurs="0"/><!-- Deprecated -->
+    <xs:choice minOccurs="0" maxOccurs="unbounded">
+      <xs:element name="COOSYS" type="CoordinateSystem"/><!-- Deprecated in V1.2 -->
+      <xs:element name="GROUP" type="Group"/>
+      <xs:element name="PARAM" type="Param"/>
+      <xs:element name="INFO" type="Info" minOccurs="0" maxOccurs="unbounded"/>
+    </xs:choice>
+    <xs:element name="RESOURCE" type="Resource" minOccurs="1" maxOccurs="unbounded"/>
+    <xs:element name="INFO" type="Info" minOccurs="0" maxOccurs="unbounded"/>
+  </xs:sequence>
+  <xs:attribute name="ID" type="xs:ID"/>
+  <xs:attribute name="version">
+     <xs:simpleType>
+       <xs:restriction base="xs:NMTOKEN">
+         <xs:enumeration value="1.2"/>
+       </xs:restriction>
+     </xs:simpleType>
+   </xs:attribute>
+</xs:complexType>
+</xs:element>
+
+</xs:schema>
\ No newline at end of file
diff --git a/php/XML/base.xsl b/php/XML/base.xsl
new file mode 100644
index 0000000..21faa92
--- /dev/null
+++ b/php/XML/base.xsl
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+<xsl:output method="xml"/>
+
+<xsl:template match="/base">
+    <xsl:copy>
+       <xsl:apply-templates select="vi" />         
+    </xsl:copy> 
+</xsl:template>
+
+<xsl:template match="vi">
+      <xsl:copy>
+	  <xsl:copy-of select="@*"/>
+	  <xsl:copy-of select="mask" />  
+	  <xsl:copy-of select="param" /> 
+	  <xsl:copy-of select="arguments" />  
+	  <xsl:for-each select="file" >
+	      <xsl:sort select="@start" data-type="number"/>
+	      <xsl:copy-of select="." />
+	</xsl:for-each>           
+     </xsl:copy>
+</xsl:template>
+</xsl:stylesheet>
diff --git a/php/XML/basesRaw2bases.xsl b/php/XML/basesRaw2bases.xsl
new file mode 100644
index 0000000..7554415
--- /dev/null
+++ b/php/XML/basesRaw2bases.xsl
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+  <xsl:template match="/DataCenters/External">
+    <dataRoot xml:id="myRemoteData-treeRootNode">
+      <xsl:for-each select="CenterID"> 
+	<dataCenter name="{@name}" desc="{@desc}" group="{@group}">
+	  <xsl:if test="@default">
+		<xsl:attribute name="default">
+		  <xsl:value-of select="@default"/>
+		</xsl:attribute>
+	      </xsl:if>
+	    <xsl:attribute name="id1"><xsl:value-of select="."/></xsl:attribute>
+	    <xsl:attribute name="xml:id"><xsl:value-of select="."/></xsl:attribute>
+	</dataCenter>
+      </xsl:for-each> 
+    </dataRoot>
+  </xsl:template>
+</xsl:stylesheet>
\ No newline at end of file
diff --git a/php/XML/dd2WStree.xsl b/php/XML/dd2WStree.xsl
new file mode 100644
index 0000000..e4d00ad
--- /dev/null
+++ b/php/XML/dd2WStree.xsl
@@ -0,0 +1,103 @@
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+    <xsl:output method="xml"/>
+
+    <xsl:template match="dataRoot/dataCenter">
+        <dataRoot>
+            <dataCenter name="AMDA" desc="AMDA_Internal_Data_Base" xml:id="myLocalData-treeRootNode">
+                <xsl:for-each select="mission">
+                    <xsl:choose>
+                        <xsl:when test="not(observatory)">
+			  <xsl:if test="@available = '1'">
+                            <mission att="{@attention}" name="{@name}" rank="{@rank}" xml:id="{@name}" desc="{@desc}" target="{@target}" available="{@available}">
+                                <xsl:choose>
+                                    <xsl:when test="group">
+                                        <xsl:for-each select="group">
+                                            <xsl:if test="@restricted = ''">
+                                                <xsl:for-each select="instrument">
+                                                  <instrument att="{@attention}" name="{@name}" xml:id="{@xml:id}" desc="{@desc}" restricted="{@restricted}">
+                                                    <xsl:for-each select="dataset">
+                                                        <xsl:apply-templates select="."/>
+                                                    </xsl:for-each>
+                                                  </instrument>
+                                                </xsl:for-each>
+                                            </xsl:if>
+                                        </xsl:for-each>
+                                    </xsl:when>
+
+                                    <xsl:when test="simulationModel">
+                                        <xsl:for-each select="simulationModel">
+                                            <simulationModel att="{@attention}" name="{@name}" xml:id="{@xml:id}" desc="{@desc}" restricted="{@restricted}">
+                                                <xsl:for-each select="instrument">
+                                                  <instrument att="{@attention}" name="{@name}" xml:id="{@xml:id}" desc="{@desc}" restricted="{@restricted}">
+                                                    <xsl:for-each select="dataset">
+                                                        <xsl:apply-templates select="."/>
+                                                    </xsl:for-each>
+                                                  </instrument>
+                                                </xsl:for-each>
+                                            </simulationModel>
+                                        </xsl:for-each>
+                                    </xsl:when>
+                                    <xsl:otherwise>
+                                        <xsl:for-each select="instrument">
+                                            <instrument att="{@attention}" name="{@name}" xml:id="{parent::mission/@name}:{@name}" desc="{@desc}" restricted="{@restricted}">
+                                                        <xsl:for-each select="datasetGroup">
+                                                            <xsl:if test="@restricted = ''">
+                                                                <xsl:for-each select="dataset">
+                                                                    <xsl:apply-templates select="."/>
+                                                                </xsl:for-each>
+                                                            </xsl:if>
+                                                        </xsl:for-each>
+                                                    <xsl:for-each select="dataset">
+                                                        <xsl:apply-templates select="."/>
+                                                    </xsl:for-each>
+                                            </instrument>
+                                        </xsl:for-each>
+                                    </xsl:otherwise>
+                                </xsl:choose>
+                            </mission>
+                           </xsl:if> 
+                        </xsl:when>
+                        <xsl:otherwise>
+                            <xsl:for-each select="observatory">
+				<xsl:if test="parent::mission/@available = '1'">
+                                <mission att="{parent::mission/@attention}" name="{@name}" rank="{parent::mission/@rank}" xml:id="{@xml:id}" desc="{parent::mission/@desc}" target="{parent::mission/@target}" available="{parent::mission/@available}">
+                                    <xsl:for-each select="instrument">
+                                        <instrument att="{@attention}" name="{@name}" xml:id="{@xml:id}" desc="{@desc}">
+                                            <xsl:for-each select="dataset">
+                                                <xsl:apply-templates select="."/>
+                                            </xsl:for-each>
+                                        </instrument>
+                                    </xsl:for-each>
+                                </mission>
+                              </xsl:if>  
+                            </xsl:for-each>
+                        </xsl:otherwise>
+                    </xsl:choose>
+                </xsl:for-each>
+            </dataCenter>
+        </dataRoot>
+    </xsl:template>
+    <xsl:template match="dataset">
+        <dataset att="{@attention}" restricted="{@restricted}" name="{@name}" xml:id="{@xml:id}"
+            sampling="{@sampling}" maxSampling="{@maxSampling}" dataStart="{@dataStart}"
+            dataStop="{@dataStop}" dataSource="{@dataSource}" target="{@target}">
+            <xsl:for-each select="parameter">
+                <xsl:choose>
+                    <xsl:when test="count(./child::*) &gt; 0 ">
+                        <parameter name="{@name}" units="{@units}" display_type="{@display_type}"
+                            xml:id="{@xml:id}">
+                            <xsl:for-each select="component">
+                                <component name="{@name}" xml:id="{@xml:id}"/>
+                            </xsl:for-each>
+                        </parameter>
+                    </xsl:when>
+                    <xsl:otherwise>
+                        <parameter name="{@name}" display_type="{@display_type}" units="{@units}"
+                            xml:id="{@xml:id}"/>
+                    </xsl:otherwise>
+                </xsl:choose>
+            </xsl:for-each>
+        </dataset>
+    </xsl:template>
+</xsl:stylesheet>
diff --git a/php/XML/dd2tree.xsl b/php/XML/dd2tree.xsl
new file mode 100644
index 0000000..b5f9a23
--- /dev/null
+++ b/php/XML/dd2tree.xsl
@@ -0,0 +1,93 @@
+<xsl:stylesheet version="1.0" 
+xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+<xsl:output method="xml"/>
+ 
+<xsl:template match="dataRoot/dataCenter">
+<dataRoot>
+ <dataCenter name="AMDA" desc="AMDA_Internal_Data_Base" xml:id="myLocalData-treeRootNode">
+  <xsl:for-each select="mission">
+    <mission att="{@attention}" name="{@name}" rank="{@rank}" xml:id="{@name}" desc="{@desc}" target="{target}" available="{@available}">            
+        <xsl:choose>
+                <xsl:when test="group">
+                    <xsl:for-each select="group">
+                       <group att="{@attention}" name="{@name}" xml:id="{@xml:id}" desc="{@desc}" restricted="{@restricted}">
+                            <xsl:for-each select="instrument">
+                                <instrument att="{@attention}" name="{@name}" xml:id="{@xml:id}" desc="{@desc}" restricted="{@restricted}">           
+                                    <xsl:for-each select="dataset">
+                                        <xsl:apply-templates select="."/>
+                                    </xsl:for-each>
+                                </instrument> 
+                            </xsl:for-each>       
+                        </group>
+                    </xsl:for-each>
+                </xsl:when>
+                <xsl:when test="simulationModel">
+                    <xsl:for-each select="simulationModel">
+                       <simulationModel att="{@attention}" name="{@name}" xml:id="{@xml:id}" desc="{@desc}" restricted="{@restricted}">
+                            <xsl:for-each select="instrument">
+                                <instrument att="{@attention}" name="{@name}" xml:id="{@xml:id}" desc="{@desc}" restricted="{@restricted}">           
+                                    <xsl:for-each select="dataset">
+                                        <xsl:apply-templates select="."/>
+                                    </xsl:for-each>
+                                </instrument> 
+                            </xsl:for-each>       
+                        </simulationModel>
+                    </xsl:for-each>
+                </xsl:when>
+                <xsl:when test="observatory">
+                    <xsl:for-each select="observatory">
+                       <observatory att="{@attention}" name="{@name}" xml:id="{@xml:id}" desc="{@desc}" restricted="{@restricted}">
+                            <xsl:for-each select="instrument">
+                                <instrument att="{@attention}" name="{@name}" xml:id="{@xml:id}" desc="{@desc}">           
+                                    <xsl:for-each select="dataset">
+                                        <xsl:apply-templates select="."/>
+                                    </xsl:for-each>
+                                </instrument> 
+                            </xsl:for-each>       
+                        </observatory>
+                    </xsl:for-each>
+                </xsl:when>                                
+                <xsl:otherwise>
+                    <xsl:for-each select="instrument">
+                        <instrument att="{@attention}" name="{@name}" xml:id="{parent::mission/@name}:{@name}" desc="{@desc}" restricted="{@restricted}">                                                                  
+                                <xsl:for-each select="datasetGroup">
+                                    <datasetGroup att="{@attention}" name="{@name}" xml:id="{@xml:id}" desc="{@desc}" restricted="{@restricted}">                                                                      
+                                        <xsl:for-each select="dataset">
+                                            <xsl:apply-templates select="."/>
+                                        </xsl:for-each>
+                                    </datasetGroup>
+                                </xsl:for-each>                                                                                                   
+                                <xsl:for-each select="dataset">
+                                    <xsl:apply-templates select="."/>
+                                </xsl:for-each>                            
+                        </instrument>
+                    </xsl:for-each> 
+               </xsl:otherwise>  
+        </xsl:choose>
+     </mission>
+   </xsl:for-each> 
+  </dataCenter>
+</dataRoot>
+</xsl:template>
+
+<xsl:template match="dataset">        
+               <dataset att="{@attention}" restricted="{@restricted}" name="{@name}" xml:id="{@xml:id}" sampling="{sampling}" maxSampling="{maxSampling}" dataStart="{dataStart}" dataStop="{dataStop}" dataSource="{dataSource}" target="{target}">               
+                 <xsl:for-each select="parameter"> 
+                  <xsl:choose>
+                    <xsl:when test="count(./child::*) &gt; 0 ">
+                        <parameter name="{@name}" units="{@units}" display_type="{@display_type}" xml:id="{@xml:id}">                  
+                        <xsl:for-each select="component">
+                          <component name="{@name}" xml:id="{@xml:id}"/>
+                        </xsl:for-each>
+                      </parameter>
+                   </xsl:when>
+                  <xsl:otherwise>                     
+                     <parameter name="{@name}" display_type="{@display_type}" units="{@units}" xml:id="{@xml:id}" />
+                  </xsl:otherwise>
+                </xsl:choose>
+               </xsl:for-each> 
+              </dataset>
+
+</xsl:template>
+</xsl:stylesheet>
\ No newline at end of file
diff --git a/php/XML/xml2all.xsl b/php/XML/xml2all.xsl
new file mode 100755
index 0000000..d1f325c
--- /dev/null
+++ b/php/XML/xml2all.xsl
@@ -0,0 +1,18 @@
+<xsl:stylesheet version="1.0" 
+xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+xmlns:php="http://php.net/xsl">
+
+<xsl:output method="text"/>
+
+<xsl:template match="/timetable">
+#Time Table generated by AMDA @ CDPP;
+#Description: <xsl:value-of select="description"/>;
+#Historic: <xsl:value-of select="history"/>;
+#Creation Date :  <xsl:value-of select="created"/>;
+#<xsl:text>&#10;</xsl:text>
+    <xsl:for-each select="intervals">
+         <xsl:value-of select="php:function('timeFormat', string(start))"/><xsl:text> </xsl:text><xsl:value-of select="php:function('timeFormat', string(stop))"/>
+         <xsl:text>&#10;</xsl:text>  
+    </xsl:for-each>
+</xsl:template>  
+</xsl:stylesheet>
diff --git a/php/XML/xml2iso.xsl b/php/XML/xml2iso.xsl
new file mode 100755
index 0000000..fdf6bdd
--- /dev/null
+++ b/php/XML/xml2iso.xsl
@@ -0,0 +1,19 @@
+<xsl:stylesheet version="1.0" 
+xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+xmlns:php="http://php.net/xsl">
+
+<xsl:output method="text"/>
+
+<xsl:template match="/timetable">
+#Time Table generated by AMDA @ CDPP;
+#Name: <xsl:value-of select="name"/>;
+#Description: <xsl:value-of select="description"/>;
+#Historic: <xsl:value-of select="history"/>;
+#Creation Date :  <xsl:value-of select="created"/>;
+#<xsl:text>&#10;</xsl:text>  
+    <xsl:for-each select="intervals">
+         <xsl:value-of select="start"/><xsl:text> </xsl:text><xsl:value-of select="stop"/> 
+          <xsl:text>&#10;</xsl:text>  
+    </xsl:for-each>
+</xsl:template>  
+</xsl:stylesheet>
diff --git a/php/XML/xml2vot.xsl b/php/XML/xml2vot.xsl
new file mode 100755
index 0000000..42d7dff
--- /dev/null
+++ b/php/XML/xml2vot.xsl
@@ -0,0 +1,40 @@
+<xsl:stylesheet version="1.0" 
+xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+<xsl:output method="xml"/>
+ 
+<xsl:template match="/timetable">
+ <VOTABLE version='1.1'>
+ <DESCRIPTION>
+        Time Table generated by AMDA @ CDPP;
+        Name: <xsl:value-of select="name"/>;
+        Description: <xsl:value-of select="description"/>; 
+        Historic: <xsl:value-of select="history"/>;
+        Creation Date :  <xsl:value-of select="created"/>; 
+ </DESCRIPTION>
+<RESOURCE>
+<DESCRIPTION>
+        AMDA @ CDPP
+</DESCRIPTION>
+<TABLE>
+<FIELD datatype='char' name='Start Time' ID='TimeIntervalStart' ucd='time.start'>
+    <DESCRIPTION>time tag for beginning of interval</DESCRIPTION>
+</FIELD>
+<FIELD datatype='char' name='Stop Time' ID='TimeIntervalStop' ucd='time.stop'>
+    <DESCRIPTION>time tag for end of interval</DESCRIPTION>
+</FIELD>
+<DATA>
+  <TABLEDATA> 
+  <xsl:for-each select="intervals">
+    <TR>
+       <TD><xsl:value-of select="start"/></TD>
+       <TD><xsl:value-of select="stop"/></TD> 
+    </TR> 
+    </xsl:for-each>
+    </TABLEDATA>
+   </DATA>
+   </TABLE>
+  </RESOURCE>    
+ </VOTABLE>
+</xsl:template>
+</xsl:stylesheet>
diff --git a/php/amda_version.php b/php/amda_version.php
new file mode 100644
index 0000000..e3ca23d
--- /dev/null
+++ b/php/amda_version.php
@@ -0,0 +1,11 @@
+<?php
+ /**
+ * @file amda_version.php
+ * @version $Id: amda_version.php 2374 2014-05-21 09:40:44Z elena $
+ *
+ */
+    
+    define('AMDA_VERSION','1.3.1');         
+    define('RELEASE_DATE','2014-05-20');
+     
+?>
\ No newline at end of file
diff --git a/php/api.php b/php/api.php
new file mode 100644
index 0000000..ba627f6
--- /dev/null
+++ b/php/api.php
@@ -0,0 +1,36 @@
+<?php
+
+    require('config.php');
+    header('Content-Type: text/javascript');
+
+    $actions = array();
+    foreach($API as $aname => &$a){
+	$methods = array();
+	foreach($a['methods'] as $mname => &$m){
+	    $md = array(
+		'name'=>$mname,
+		'len'=>$m['len']
+	    );
+	    if(isset($m['formHandler']) && $m['formHandler']){
+		$md['formHandler'] = true;
+	    }
+	    $methods[] = $md;
+	}
+	$actions[$aname] = $methods;
+    }
+
+    $cfg = array(
+	'url'=>'php/router.php',
+	'type'=>'remoting',
+ 'id' => 'amda-provider',
+ 'maxRetries' => 0,
+	'actions'=>$actions
+    );
+
+    echo 'Ext.app.REMOTING_API = ';
+
+    echo json_encode($cfg);
+    echo ';';
+
+?>
+
diff --git a/php/arguments.php b/php/arguments.php
new file mode 100644
index 0000000..0dbac4a
--- /dev/null
+++ b/php/arguments.php
@@ -0,0 +1,345 @@
+<?php
+/**
+ *  arguments.php
+ *
+ *  @version $Id: arguments.php 2681 2014-11-28 17:08:06Z elena $
+ */
+
+/*
+ *   info for spectra energies
+ *
+ */
+
+function getInfo($dataSet, $infoName)
+{
+	$amda = new AmdaClient();
+	$info = $amda->getInfo($dataSet, $infoName);
+
+	return explode(";",$info);
+}
+
+/*
+ *  special plotting arguments
+ *
+ */
+function addPlottingSettings($option)  {
+
+	$argsXML = new DomDocument('1.0');
+	$argsXML->load(SettingsXML);
+	$xPath = new domxpath($argsXML);
+
+	if ($option)
+	$plotGroups = array($option);
+	else
+	$plotGroups = array('Color', 'Symbol', 'Scale');
+
+	foreach ($plotGroups as $plotGroup) {
+		$group = $xPath->query("//group[@name='".$plotGroup."']");
+		$groupChildren = $group->item(0)->getElementsByTagName('value');
+		$args = array();
+		$number = 0;
+		foreach ($groupChildren as $groupChild) {
+			if ($plotGroup == "Symbol") $args[] = array("arg" => $number, "value" => $groupChild->nodeValue);
+			else  $args[] = array("arg" => $groupChild->nodeValue, "value" => $groupChild->nodeValue);
+			$number++;
+		}
+		$grp[] = array("groupS" => $plotGroup, "args" => $args);
+	}
+
+	return $grp;
+}
+
+
+require_once 'config.php';
+
+define('USERWSDIR', USERPATH."/".$_GET['sessionID']."/WS/"); 
+
+$RefFrame = array("GSE", "GSM", "SM");
+$OrbitPresentation = array("LINE", "TICKS", "CYL");
+
+$paramID = $_GET['paramID'];
+$isPlot = $_GET['application'] == 'plot' ? true : false;
+
+// convert user WS
+    if (!$paramID) {
+        $paramID = $argv[1];
+        $isPlot = true;
+    }
+
+ // to correct 'restricted' parameters  
+    if (strpos($paramID, restricted) !== false) {
+        $paramID = str_replace(restricted,"",$paramID);
+    }
+//  define('ArgumentsXML', Param.'Args/paramArguments.xml');
+define('SettingsXML', Param.'Args/paramPlotSettings.xml');
+
+$noargs = array('success' => false);
+
+// this is WS param => plot settings
+if (strncmp(strtolower($paramID), 'ws_', 3) == 0) {
+	$grp = addPlottingSettings();
+	exit(json_encode($grp));
+}
+// this is WSD param => plot settings if SIZE = 1
+if (strncmp(strtolower($paramID), 'wsd_', 4) == 0) {
+    $infoMgr = new ParamsInfoMgr();
+    $info = $infoMgr->GetParamInfo($paramID);
+ 
+    if (!$info || $info['success'] == false)
+                exit(json_encode($noargs));
+
+    if ($info['infos']['size'] == 1) {
+        $grp = addPlottingSettings();
+        exit(json_encode($grp)); 
+    }
+    exit(json_encode($noargs));
+}
+// this is SIMU param => make param
+if ((strncmp(strtolower($paramID), "impex___", 8) == 0 )||(strncmp(strtolower($paramID), "spase___", 8) == 0 )) {
+  if ((strncmp(strtolower($paramID), "impex___lesia_", 14) == 0 )||(strncmp(strtolower($paramID), "spase___IMPEX_NumericalOutput_lesia_", 36) == 0 )) {}
+  else {
+      $mySimuArgsMgr = new SimuArgsMgr();
+      $mySimuArgsMgr->init($paramID);
+      $grp = $mySimuArgsMgr->makeSimuArgs();
+      if ($grp)
+       exit(json_encode($grp));
+      else exit();
+    }
+}
+
+// themis_cesr
+$objToTest = str_replace("_", " ", $paramID);
+if (sscanf($objToTest, "th%s pe%s %s", $X, $mode, $property) == 3){
+	switch ($property) {
+		case "n" : $grp = addPlottingSettings();
+		exit(json_encode($grp));
+		case "v" :  foreach ($RefFrame as $frame) $frame_args[] = array("arg" => $frame);
+		$grp[] = array("group" => "RefFrame", "args" => $frame_args);
+		exit(json_encode($grp));
+		case "t" :$grp = addPlottingSettings();
+                exit(json_encode($grp)); 
+		case "sp" :  $grp = addPlottingSettings();
+		$args[] = array("arg" => "spectrogram");
+		for ($i = 0; $i < 32; $i++) {
+			$args[] = array("arg" => $i+1, "value" => $i+1);
+		}
+		$grp[] = array("group" => "Channel", "args" => $args);
+		exit(json_encode($grp));
+	}
+} 
+
+// Remote Data 
+//TODO add method of paramInfoMgr class 
+ $nameXml = RemoteData."PARAMS/".$paramID.".xml";
+ $isRemote = file_exists($nameXml); 
+ if ($isRemote) {
+      $infoDom = new DomDocument("1.0");
+      if (!$infoDom->load($nameXml))
+                                exit();  
+      $size = $infoDom->getElementsByTagName('DIMENSION')->item(0)->nodeValue;
+      if ($size == 1) {
+                $grp = addPlottingSettings();
+                exit(json_encode($grp)); 
+         }
+
+       $dispay_type = $infoDom->getElementsByTagName('DISPLAY_TYPE')->item(0)->nodeValue;
+       
+       exit();
+ }
+
+ 
+$infoMgr = new ParamsInfoMgr();
+$info = $infoMgr->GetParamInfo($paramID);
+ 
+if (sscanf($paramID,"%[^'('](%d:%d)",$par,$cstart,$cstop) == 3)
+{
+	$isComponent = false;
+}
+else if (sscanf($paramID,"%[^'('](%d)",$par,$cstart) == 2)
+{
+	$isComponent = true;
+}
+else {
+	$par = $paramID;
+	$isComponent = false;
+}
+
+if (!$info['success'] && $isComponent) {
+	// component
+	$size = 1;
+}
+else {
+	$codeinfo = $info['codeinfos'];
+	$ddinfo = $info['ddinfos'];
+	$size = $codeinfo ? $codeinfo['size'] : $ddinfo['parameter']['size'];
+	$display_type = $ddinfo['parameter']['display_type'];
+	$validmin =  $codeinfo ? $codeinfo['validmin'] : -1;
+}
+
+switch ($size) {
+	// scalar - so color + symbol for all
+	case 1 :
+		$grp = addPlottingSettings();
+		break;
+	case 3 :
+		// component
+		if ($isComponent) $grp = addPlottingSettings();
+		if ($validmin === "0") $grp = addPlottingSettings('Scale');
+
+		if ($codeinfo && $codeinfo['frame'] && strtolower($codeinfo['frame']) == 'gse') {
+			foreach ($RefFrame as $frame) $frame_args[] = array("arg" => $frame);
+			$grp[] = array("group" => "RefFrame", "args" => $frame_args);
+		}
+
+		if ($codeinfo && $codeinfo['plottype'] && strtolower($codeinfo['plottype']) == 'orbit' && !$isComponent) {
+			foreach ($OrbitPresentation as $frame) $type_args[] = array("arg" => $frame);
+			$grp[] = array("group" => "OrbitPresentation", "args" => $type_args);
+		}
+
+		if ($ddinfo && $ddinfo['parameter']['display_type'] && $ddinfo['parameter']['display_type'] == 'orbit' && !$isComponent) {
+			foreach ($OrbitPresentation as $frame) $type_args[] = array("arg" => $frame);
+			$grp[] = array("group" => "OrbitPresentation", "args" => $type_args);
+		}
+
+		break;
+
+	default:
+		if ($display_type == 'spectrogram' || $display_type == 'stack_plot') {
+			if ($isPlot) $args[] = array("arg" => $display_type);
+
+	//		  error_log( $ddinfo['dataset']['id']." ".$codeinfo['energychannel'].PHP_EOL,1, email);
+			$info = getInfo($ddinfo['dataset']['id'],$codeinfo['energychannel']);
+			$args_bckgrd[] = array("arg" => "0", "value" => "none");
+			for ($i = 0; $i < $size; $i++) {
+				$args[] = array("arg" => strval($i+1), "value" => $info[$i]);
+				$args_bckgrd[] = array("arg" => strval($i+1), "value" => $info[$i]);
+			}
+			// automatic generated args - simple case
+			if ($isPlot) $grp = addPlottingSettings();
+			$grp[] = array("group" => "Channel", "args" => $args);
+
+			if ($display_type == 'spectrogram' && $isPlot)
+			{
+				$grp[] = array("group" => "backgrdChan", "args" => $args_bckgrd);
+				$grp[] = array("group" => "backgrdVal", "args" => array("value" => "0"));
+				$grp[] = array("group" => "minCount", "args" => array("value" => "0"));
+				$grp[] = array("group" => "maxCount", "args" => array("value" => "0"));			
+			}
+		}
+
+}
+
+
+$paramArgsFile = Param.'Args/'.$par.'.xml';
+if (!file_exists($paramArgsFile)) exit(json_encode($grp));
+
+
+$grp = array();
+
+// specific parameter settings if exists
+
+$paramXML = new DomDocument('1.0');
+ 
+$paramXML->load($paramArgsFile);
+// arguments
+$specialArgs = $paramXML->getElementsByTagName('specialArgs');
+$paramArgs = $paramXML->getElementsByTagName('args');
+ 
+if ($specialArgs->length > 0) {
+	//spectra => tables
+	$specialGroups = $specialArgs->item(0)->getElementsByTagName('group');
+
+	if ($specialGroups->length > 0) {
+
+        foreach ($specialGroups as $spGroup) {
+
+	  $group = $spGroup->getAttribute('name');
+	  if (!$isPlot && $group == 'anode' && $specialGroups->length > 1)
+                            continue;
+	  $groupType = $spGroup->getAttribute('type');
+	  $units = $spGroup->getAttribute('units');
+
+	  if ($groupType != 'multi') {
+	  	$argMax =  $spGroup->getAttribute('number');
+	  	$argAll = $spGroup->getElementsByTagName('value');
+
+	  	$args = array();
+
+	  	if ($argAll->length > 0) {
+	  		if ($group == 'anode')  $args[] = array("arg" => 'all', "value" => "all");
+
+	  		for  ($i = 0; $i < $argAll->length; $i++) {                            
+                            $args[] = array("arg" => $i+1, "value" => $argAll->item($i)->nodeValue);
+	  		}
+	  	}
+	  	// create manually
+	  	else {
+	  		if ($group == 'anode')  $args[] = array("arg" => 'all');
+	  		for ($i = 0; $i < $argMax; $i++) {
+		    $args[] = array("arg" => $i+1);
+	  		}
+	  	}
+	  	// energy or angle (3D)
+	  	$groupType = $group == "energy" ? "groupE" : "group";
+	  	$grp[] = array($groupType => $group, "units" => $units, "args" => $args);
+	  }
+	  //variable time table
+	  else {
+	  	$args = array();
+	  	 
+	  	$args[] = array("arg" => 'energyMin', "value" => $spGroup->getAttribute('emin'));
+	  	$args[] = array("arg" => 'energyMax', "value" => $spGroup->getAttribute('emax'));
+
+	  	$grp[] = array("groupEmulti" => $group, "units" => $units, "args" => $args);
+	  }
+		}
+
+	}
+}
+
+if ($paramArgs->length > 0) {
+	// special args
+	$argSpecial =  $paramArgs->item(0)->getElementsByTagName('group');
+
+	if ($argSpecial->length > 0) {
+		foreach ($argSpecial as $group) {
+			if (!$isPlot && $group->getAttribute('name') == 'elevationAsTime') continue;
+			$args = array();
+			$groupChildren = $group->getElementsByTagName('value');
+			if ($groupChildren->length > 0) {
+				$hasArgs = $group->getAttribute('args');
+				$num = 0;
+				$N_args = $groupChildren->length;
+				foreach ($groupChildren as $child) {
+					$num++;
+					if ($hasArgs) {
+						if ($hasArgs != 'reverse')  {
+                                                        $argValue = $child->nodeValue;
+                                                        if (!$isPlot && $argValue == 'spectrogram') $argValue = 'all';
+                                                        $args[] = array("arg" => $num, "value" => $argValue);
+						}
+                                                else {                                                       
+							$args[] = array("arg" => $N_args - $num, "value" => $child->nodeValue);
+						}
+					}
+					else {
+                                            $args[] = array("arg" => $child->nodeValue, "value" => $child->nodeValue);
+                                         }
+				}
+			} // create manually
+			else {
+				$args[] = array("arg" => "all");
+				$argMax = $group->getAttribute('number');
+				for ($i = 0; $i < $argMax; $i++) {
+					$args[] = array("arg" => $i+1);
+				}
+			}
+			$grp[] = array("group" => $group->getAttribute('name'), "units" =>  $group->getAttribute('units'), "args" => $args);
+	  }
+	}
+      
+      }
+     
+  exit(json_encode($grp));
+
+?>
\ No newline at end of file
diff --git a/php/classes/APISMgr.php b/php/classes/APISMgr.php
new file mode 100644
index 0000000..9c70d23
--- /dev/null
+++ b/php/classes/APISMgr.php
@@ -0,0 +1,126 @@
+<?php
+/**  
+*     @class APISMgr 
+*     @version $Id: APISMgr.php 2101 2014-02-19 10:12:21Z natacha $
+*    
+*/
+
+  class APISMgr  
+  {
+  	
+  	function __construct() 
+  	{	 
+  	}
+  	
+  	function jdayToUTC($jday)
+  	{
+  		 return round(($jday - 2440587.5) * 86400);
+  	}
+
+  	function jday($t) {
+             
+            return $t / 86400 + 2440587.5;
+           
+        }
+
+  	function get($planet, $startTime, $stopTime)
+  	{
+  		$planetNewName = ucfirst($planet);
+  		list($y, $mo, $d, $h, $mi, $s) = sscanf($startTime,"%4d-%02d-%02dT%02d:%02d:%02d");
+  		$start = mktime($h,$mi,$s,$mo,$d,$y);
+  		
+  		list($y, $mo, $d, $h, $mi, $s) = sscanf($stopTime,"%4d-%02d-%02dT%02d:%02d:%02d");
+  		$stop = mktime($h,$mi,$s,$mo,$d,$y);
+  		
+  		$req  = "SELECT * FROM apis.epn_core";
+  		$req .= " WHERE target_name='".$planetNewName."'";
+  		$req .= " AND dataproduct_type='im'";
+  		$req .= " AND time_min>".$this->jday($start);
+  		$req .= " AND time_min<".$this->jday($stop);	
+  		$req .= " ORDER BY time_min";	
+
+  		$postfields = array(
+                    'REQUEST' => 'doQuery',
+                    'LANG' => 'ADQL',
+                    'QUERY' => $req,
+                    'TIMEOUT' => '5',
+                    'FORMAT' => 'VOTable/td'
+                );
+  		
+  		$curl = curl_init();
+  		curl_setopt($curl, CURLOPT_URL, EPNTAP_APIS);
+  		curl_setopt($curl, CURLOPT_COOKIESESSION, true);
+                curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
+                curl_setopt($curl, CURLOPT_POST, true);
+                curl_setopt($curl, CURLOPT_POSTFIELDS, $postfields);
+                $req_res = curl_exec($curl);
+  		curl_close($curl);
+  		
+  		if (!$req_res)
+  			 return array('success' => false, 'message' => 'Error during TAP request');
+  		
+  		$xml = new DOMDocument();
+				$xml->preserveWhiteSpace = false;
+				$xml->formatOutput = true;
+				$xml->loadXML($req_res);
+				
+				$fields = $xml->getElementsByTagName('FIELD');
+				
+				$tabledatas = $xml->getElementsByTagName('TABLEDATA');
+				
+				$result = array();
+				$crtDate = 0;
+				$folderIndex = -1;
+				
+				//$log = fopen(USERWSDIR."log","w");
+				
+				foreach ($tabledatas as $tabledata)
+				{
+					$trs = $tabledata->getElementsByTagName('TR');
+					foreach($trs as $tr)
+					{
+						$data = array();
+						$tds = $tr->getElementsByTagName('TD');
+						//fprintf($log,"=> ---------\n");
+						for ($i = 0; $i < $tds->length; $i++)
+						{
+							if ($fields->item($i)->getAttribute('ID') == 'time_min')
+							{
+								$time = $this->jdayToUTC($tds->item($i)->nodeValue);
+								
+								$time = $time - ($time%86400);
+								
+								//fprintf($log,"=> %s\n",$time);
+								
+							 if ($time != $crtDate)
+							 {
+							 	$crtFolder = array('date' => date("Y-m-d H:i:s", $time), 'images' => array());
+							 	$crtDate = $time;
+							 	array_push($result,$crtFolder);
+							 	$folderIndex++;
+							 }
+							}	
+							if ($fields->item($i)->getAttribute('unit') == 'd')
+							{
+								$time = $this->jdayToUTC($tds->item($i)->nodeValue);
+								$data[$fields->item($i)->getAttribute('ID')] = date("Y-m-d H:i:s", $time);
+								//fprintf($log,"%s %s %s\n",$fields->item($i)->getAttribute('ID'),$tds->item($i)->nodeValue,$data[$fields->item($i)->getAttribute('ID')]);
+							}
+							else
+							  $data[$fields->item($i)->getAttribute('ID')] = $tds->item($i)->nodeValue;
+							//fprintf($log,"%s = %s\n",$fields->item($i)->getAttribute('ID'),$data[$fields->item($i)->getAttribute('ID')]);
+						}
+						$data['name'] = basename($data['access_url']);
+						array_push($result[$folderIndex]['images'],$data);
+							 
+					}
+				}
+  			 
+				return array('success' => true, 'result' => $result);
+  	}
+  }
+  
+  /*$tapMgr = new APISMgr();
+  $res = $tapMgr->get("uranus","1995-08-22T00:00:00","1995-08-23T00:00:00");*/
+		
+?>
\ No newline at end of file
diff --git a/php/classes/AliasMgr.php b/php/classes/AliasMgr.php
new file mode 100644
index 0000000..9da579b
--- /dev/null
+++ b/php/classes/AliasMgr.php
@@ -0,0 +1,120 @@
+<?php
+/**
+ * @class AliasMgr
+ * @version $Id: AliasMgr.php 899 2012-05-02 14:08:28Z benjamin $
+ *
+ *
+ */
+
+  class AliasMgr extends AmdaObjectMgr {
+  	
+  function __construct() {
+
+                parent::__construct('Alias.xml');
+                $this->contentRootId = 'alias-treeRootNode';
+                $this->contentRootTag = 'aliasList';
+                $this->attributes = array('name' => '', 'param' => '');
+                $this->objTagName = 'alias';
+                if (!file_exists($this->xmlName)) {
+				    $this->createDom();
+				    $this->xp = new domxpath($this->contentDom);
+		}
+	}
+
+	protected function createDom() {
+                $rootElement = $this->contentDom->createElement($this->contentRootTag);
+		$rootElement->setAttribute('xml:id', $this->contentRootId);
+                $this->contentDom->appendChild($rootElement);
+		$this->contentDom->save($this->xmlName);
+        }
+	
+/*
+* Add Alias in Alias.xml
+*/      
+ 	protected function addAlias($obj) {
+              
+                $objList = $this->contentDom->getElementById($this->contentRootId); 		
+                $newObj = $this->contentDom->createElement($this->objTagName);
+                $newObj->setAttribute('xml:id',$this->id);
+                $obj_arr = (array)$obj;
+                foreach ($this->attributes as $key => $value) {
+                	if ($key == 'name') $newObj->setAttribute($key, $obj_arr[$key]);
+                }
+                $objList -> appendChild($newObj);       
+
+                $this->saveContent() ;
+      }
+      
+	/*
+	 *   Create Alias
+	 */	      
+    protected function createParameter($obj)   {	
+		$this->id = $obj->param;
+		$this -> addAlias($obj);
+		return "OK";
+	}
+	/*****************************************************************
+	 *                           PUBLIC FUNCTIONS
+	 *****************************************************************/
+
+     public function getList() {
+
+	  $AliasList = $this->contentDom->getElementsByTagName('alias');
+
+          return $AliasList;
+      }
+
+      public function substrParamAlias($chain, $paramName, $aliasName) {
+
+        $aliasName="#".$aliasName;
+        $pos = strpos($chain, $paramName);
+        while ( $pos !== FALSE ) {
+            $pos = $pos+strlen($paramName);
+            if (preg_match('/[-+*,^<>&|=\/\[\]\(\)\ ]/', $chain[$pos]) || $chain[$pos] === '') {
+                $chain = substr_replace($chain, $aliasName,$pos-strlen($paramName),strlen($paramName));
+            }
+            $pos = strpos($chain, $paramName, $pos);
+        }
+        return $chain;
+    }
+
+        public function substrAliasParam($chain, $paramName, $aliasName) {
+
+        $aliasName="#".$aliasName;
+        $pos = strpos($chain, $aliasName);
+        while ( $pos !== FALSE ) {
+            $pos = $pos+strlen($aliasName);
+            if (preg_match('/[-+*,^<>&|=\/\[\]\(\)\ ]/', $chain[$pos]) || $chain[$pos] === '') {
+                $chain = substr_replace($chain, $paramName,$pos-strlen($aliasName),strlen($aliasName));
+            }
+            $pos = strpos($chain, $aliasName, $pos);
+        }
+        return $chain;
+    }
+    
+  	protected function deleteParameter($id){
+		
+	}
+	
+	/*
+	 *   Get Object into Edit
+	 */		
+	public function getObject($id) {
+		if (!($obj = $this->objectExistsById($id))) return "NO_SUCH_ID";
+		$attributesToReturn['id'] = $obj->getAttribute('xml:id');
+		$attributesToReturn['name'] = $obj->getAttribute('name');
+		return  $attributesToReturn;
+	}
+
+	/*
+	 *   Get alias of parameter
+	 */			
+	public function getAlias($id) {
+		$alias = "";
+		if (($obj = $this->objectExistsById($id))) 
+			if ($obj->hasAttribute('name'))
+				$alias = $obj->getAttribute('name');
+			
+		return $alias;
+	}
+  }
\ No newline at end of file
diff --git a/php/classes/AmdaAction.php b/php/classes/AmdaAction.php
new file mode 100644
index 0000000..ce82207
--- /dev/null
+++ b/php/classes/AmdaAction.php
@@ -0,0 +1,1182 @@
+<?php
+/**
+ * @class AmdaAction
+ * @version $Id: AmdaAction.php 2333 2014-04-30 10:38:02Z elena $
+ *
+ */
+
+
+class AmdaAction {
+
+    private $xmlFiles  = array('localParam' => 'LocalParams.xml', 'remoteParam' => 'RemoteParams.xml', 
+                                'remoteSimuParam' => 'RemoteParams.xml', 'derivedParam' => 'WsParams.xml', 'myDataParam' => 'WsParams.xml',
+                                'timeTable' => 'Tt.xml', 'catalog' => 'Tt.xml', 'alias' => 'Alias.xml',	 
+                                'myData' => 'Files.xml', 
+                                'request' => 'Request.xml', 'condition' => 'Request.xml',
+                                'bkgWorks' => 'jobs.xml');
+
+    private $user, $amdaStat;
+    
+    public function __construct() 
+    {  
+		if (!defined('NEWKERNEL_DEBUG') || !NEWKERNEL_DEBUG)
+			$this->amdaStat = new AmdaStats();
+    }
+
+    private function getUrlDirs($url) {
+        //TODO replace by ftp php class methods: ftp_nlist() etc
+        require_once "simple_html_dom.php";
+          
+        $url = html_entity_decode($url);        
+        $trimmed_url = trim($url);
+        if (strrpos($trimmed_url, "/") == strlen($trimmed_url) - 1) {
+            if (file_exists("temp.html")) unlink("temp.html"); 
+            exec("wget -O temp.html ".$url);
+            
+            $html = file_get_html('temp.html');
+            $dirs = $html->find('a[href]');
+            foreach ($dirs as $dir) {
+                $name =  $dir->innertext; //$dir->href;
+                $isLeaf = strrpos($name, "/") !== strlen($name) - 1;
+                $childrenToReturn[] = array('text' => $name, 'id' => $trimmed_url.$name,
+                                    'nodeType' => 'url', 'leaf' => $isLeaf); 
+            }
+            
+        }
+      return $childrenToReturn;  
+    }
+      
+/*****************************************************************
+*                           PUBLIC FUNCTIONS
+*****************************************************************/ 
+ 
+    /*
+    *   $obj = { id: node.id,  nodeType: node.nodeType }
+    */
+    public function getTree($obj) {
+  
+       $node = $obj->node;
+       
+    // to correct 'restricted' parameters  
+        if (strpos($node, restricted) !== false) {
+            $node = str_replace(restricted,"",$node);
+        }
+
+       $nodeType = $obj->nodeType;
+       $remoteBase = false;
+       $isRemoteDataSet = false;
+
+        if ($nodeType == 'url') 
+        {
+            $url = $node == 'root' ? $obj->baseId : $node;		   
+            return  $this->getUrlDirs($url);
+        }
+
+        if ($obj->baseId) $remoteBase = true;
+
+        if ($node == 'root' && $remoteBase)  $node = $obj->baseId;
+
+        if ($node == 'root' && !$remoteBase)  
+        { 
+            $json_o = json_decode(file_get_contents(DATAPATH.$nodeType.'.json'));
+            $childrenToReturn = $json_o->nodes;	      
+        }         
+        else 
+        {
+            $Dom = new DomDocument("1.0");
+
+            switch ($nodeType) 
+            {
+                case 'sharedtimeTable':
+                            $xmlName = SHAREDPATH.'/WS/Tt.xml';
+                            break;
+                case 'bkgWorks': 
+                        $xmlName = USERJOBDIR.$this->xmlFiles[$nodeType];
+                        break;
+                case 'source':
+                        $xmlName = DATAPATH.'RemoteData/'.$obj->baseId.'/base.xml';		    
+                        break;
+                case 'destination': 
+                        $xmlName = USERWSDIR.'RemoteParams.xml';		   
+                        break; 
+                default:
+                        $xmlName = USERWSDIR.$this->xmlFiles[$nodeType];
+            }
+
+	    if ($remoteBase)  
+            {               
+                 $nodeType = 'remoteParam';
+	    } 		 
+           
+	    $Dom->load($xmlName);
+             
+	    if ($node == "myRemoteSimuData-treeRootNode") 
+                                        $node = "myRemoteData-treeRootNode";
+
+	    $nodeToOpen = $Dom->getElementById($node);
+	    $children = $nodeToOpen->childNodes;
+
+	    foreach ($children as $child)  
+	      if ($child->nodeType == XML_ELEMENT_NODE) {
+		  $isLeaf = true;
+	  
+                if ($child->hasChildNodes())
+                    foreach ($child->childNodes as $grandChild)  
+                    if ($grandChild -> nodeType == XML_ELEMENT_NODE)  {
+                            $isLeaf = false;
+                            break;
+                        }
+
+                if ($child->tagName == 'folder')  $isLeaf = false;
+
+                //TODO MAKE PROPERLY  as function of nodetype !!!!    
+                $info = ''; 
+                $id =  $child->getAttribute('xml:id');
+                $name = $child->getAttribute('name');                
+                $help = $child->getAttribute('att');
+                if ($child->hasAttribute('dataStart')) $dataStart = $child->getAttribute('dataStart');
+                if ($child->hasAttribute('dataStop')) $dataStop = $child->getAttribute('dataStop');
+
+                $specialNode = false;
+                $isParameter = false;
+                $skip = false;
+		$isAddable =  false;
+                $isSimulation = false;
+                $rank = null;
+
+                switch ($nodeType) 
+                {
+		    case 'bkgWorks': 
+			$specialNode = true;
+			$status = $child->getAttribute('status');
+		    //     if ($status == 'done') continue;				 
+			$childrenToReturn[] = array('text' => $name, 'id' => $id,'nodeType' => $nodeType, 'leaf' => $isLeaf,
+					  'pid' => $child->getAttribute('pid'), 'status' => $status, 
+					  'jobType' => $child->getAttribute('jobType'), 'info' => $child->getAttribute('info'));
+		    break;
+
+		    case 'condition':
+			$objectMgr = new RequestMgr();
+			$info = $objectMgr->getObject($id)->expression;  
+		    break; 
+
+		    case 'request':
+ 		  	
+		 	$objectMgr = new RequestMgr();
+		 	$objplot = $objectMgr->getObject($id); 
+		 	for ($i=0; $i < count($objplot->children); $i++) { 
+		 	    for ($j=0; $j < count($objplot->children[$i]->children); $j++) {
+		 			$info = $info.' '.$objplot->children[$i]->children[$j]->name;
+		 		}
+		 	}
+			  
+		    break; 
+
+		    case 'alias': 
+			$info = $id;
+			$id = 'alias_'.$id;
+                        if ($isLeaf) $isParameter = true;  
+		    break;
+
+                    case 'timeTable':
+                    case 'sharedtimeTable':
+                        if ($isLeaf) $info = $child->getAttribute('intervals').' intervals';
+                    break;
+
+                    case 'derivedParam':
+                            $info = $child->getAttribute('buildchain');
+                            if ($isLeaf) $isParameter = true;
+                    break;
+
+                    case 'localParam':
+
+                        $globalStart = null;
+                        $globalStop = null;
+                        $timeRestriction = false;
+                        $specialNode = true;
+                        $isParameter = false;
+                        $needsArgs = false;
+                        $isSpectra = false;                         
+                        $isStack = false;
+
+                        if ($child->hasAttribute('desc')) $info = $child->getAttribute('desc');
+
+                        if ($child->hasAttribute('sampling')) 
+                        {
+                            $info =  "Sampling: ".$child->getAttribute('sampling')."<br/>";
+                            if ($child->getAttribute('dataStart') == 'depending on mission')
+                            {
+                                $info .= "Time Range: ".$child->getAttribute('dataStart')."<br/>";
+                            }                             
+                            else 
+                            {                                
+                                $info .= "Time Range: ".$child->getAttribute('dataStart')."-".$child->getAttribute('dataStop')."<br/>";                                
+                            }  
+                            
+                            if ($child->getAttribute('restricted') > 1) {
+                                $restricted  = $child->getAttribute('restricted');
+                                $info .= "<b>Time Restriction</b>: -$restricted days<br/>";
+                            }
+                       
+                            $info .= "Source: ".$child->getAttribute('dataSource');
+                        }
+                            
+                        if ($child->hasAttribute('units')) $info = $child->getAttribute('units');
+
+                        if ($child->tagName == 'parameter') 
+                        {
+                                $isParameter = true;
+                                $isScatter = true;
+
+                                if ($child->parentNode->hasAttribute('dataStart'))
+                                {
+                                    $globalStart = $child->parentNode->getAttribute('dataStart');
+                                    $globalStop = $child->parentNode->getAttribute('dataStop');  
+                                }
+
+                                if ($child->parentNode->getAttribute('restricted') > 1 )
+                                {
+                                    $timeRestriction = true;
+                                     
+                                }  	   
+                        }
+
+                        if ($child->tagName == 'component')
+                        {
+                                $isParameter = true;
+                                $isScatter = true;
+
+                                if ($child->parentNode->parentNode->hasAttribute('dataStart'))
+                                {
+                                    $globalStart = $child->parentNode->parentNode->getAttribute('dataStart');
+                                    $globalStop = $child->parentNode->parentNode->getAttribute('dataStop');  
+                                } 
+
+                                if ($child->parentNode->parentNode->getAttribute('restricted') > 1)
+                                {
+                                    $timeRestriction = true;
+                                     
+                                }  
+         
+                        }
+                      
+                       if ($child->tagName == 'parameter' && $child->hasChildNodes()) $isScatter = false;
+                                                                                   
+                        if ($child->tagName == 'parameter' && $child->hasAttribute('display_type')) {
+
+                              if ($child->getAttribute('display_type') == 'spectrogram') {
+                                    $needsArgs = true;                                     
+                                    $isSpectra = true; 
+                                    $isScatter = false;
+                               }
+                               else if ($child->getAttribute('display_type') == 'stack') {                                    
+                                     $isStack = true;
+                                     $isScatter = false;
+                               }
+                        }  
+                
+                        if ($isParameter) 
+                        {
+                            if ($child->tagName == 'parameter' && $child->childNodes->length == 1)
+                            { 
+                                $needsArgs = true;                               
+                            }                                          
+                             if (substr($id,0,4) == 'bt96' || substr($id,0,6) == 'ba2000'|| substr($id,0,5) == 'bcain' || substr($id,0,7) == 'bmorsch' ) 
+                             {                              
+                                 $needsArgs = true;
+                             }
+                            
+                            if ($id == 'mex_n_sw' || $id == 'mex_v_sw') 
+                             {
+                                  $not_yet = true;
+                                 
+                             }
+
+                            if (substr($id,0,3) == 'ros') 
+                             {
+                                if ( !(strpos($id,'_r_') || strpos($id,'_xyz_') || strpos($id,'_cg_')
+                                     || strpos($id,'_sc_') || strpos($id,'_aux_')) ) 
+                                {                                 
+                                   $not_yet = true;
+                                } 
+                             }
+
+                            $objectMgr = new AliasMgr();
+                            $alias = $objectMgr->getAlias($id);
+                            
+                            $childrenToReturn[] = array('text' => $name,'alias' => $alias, 
+                                'id' => $id,'nodeType' => $nodeType, 'info' => $info,
+                                'globalStart' => $globalStart, 'globalStop' => $globalStop, 'timeRestriction' => $timeRestriction,
+                                'leaf' => $isLeaf, 'isParameter' => $isParameter, 'isScatter' => $isScatter,
+                                'isSpectra' => $isSpectra,'isStack' => $isStack, 'needsArgs' => $needsArgs, 'help' => $help, 'notyet' => $not_yet);
+                        }
+                        else 
+                        {
+                            if ($child->tagName == 'mission') 
+                            {
+                                $disable = ($child->getAttribute('available') != "1");
+                                $rank = $child->getAttribute('rank');
+                            }
+                            else
+                            {
+                                $disable = $child->getAttribute('restricted');
+                            }
+                            
+                            if ($disable)
+                            {
+                                if ($disable == 1) {
+                                    $info .=  "<br/><b>Restricted access</b>";
+                                }
+                                else {                                   
+                                    $disable = false;                                     
+                                }
+                            }
+
+                            $childrenToReturn[] = array('text' => $name, 'id' => $id,'nodeType' => $nodeType,  'info' => $info, 
+                                'leaf' => false, 'help' => $help, 'disable' => $disable, 'rank' => $rank);                               				    			 			   
+                        }
+                    break;
+
+                    case 'remoteSimuParam' :
+
+                        $isSimulation = true;
+  			if ($id == 'spase://IMPEX/SimulationModel/FMI/GUMICS' ) {
+                                        $isLeaf = false;
+                                        $isAddable = true;
+                        }
+                        if ($child->tagName == 'dataCenter') {
+                                if ($child->getAttribute('isSimulation')) break;
+                                else {
+                                    $skip = true;
+                                    break;
+                                }
+                        }
+                        if ($child->tagName == 'simulationRegion') 
+                            {
+                                 $rank = $child->getAttribute('rank');
+                            }
+ 		    case 'remoteParam' :
+                         
+                        if ($child->getAttribute('isSimulation') && $child->tagName == 'dataCenter') {
+                                $skip = true;
+                                break;
+                        }
+
+                        $isDeletable = $child->hasAttribute('isDeletable');
+			$specialNode = true;
+			$isParameter = false; 
+                        $isSpectra = false; 
+                   
+                        switch ($id)  
+                        {
+                            case 'CDAWEB'  : 
+                            case 'OMNIWEB' :  
+                                            $isLeaf = false;
+                                            break;
+                            case 'THEMIS' :
+                                            $rank = 5;
+                                            break;
+                            case 'MAPSKP' :
+                                            $rank = 9;
+                                            break;
+                            case 'VEXGRAZ' :
+                                            $rank = 2;
+                                            break;
+                            default:
+                        }
+ 
+                        $info = $child->getAttribute('desc');
+
+// 			if ($info && !$isSimulation) { 
+			       $info = str_replace(';', "<br/>Time Range: ", $info);
+// 			}
+			if ($child->tagName == 'dataset') {
+			    /*if ($child->hasAttribute('dataStart') && $child->hasAttribute('dataStop')) 
+			      $info .= "Time Range: ".$child->getAttribute('dataStart')."-".$child->getAttribute('dataStop')."<br/>";  */     
+// 			      $info .= "Time Range: ".$dataStart"-".$dataStop."<br/>";
+                        }
+			if (($child->tagName == 'parameter') || ($child->tagName == 'component')) {
+				    $isParameter = true;
+				    $isScatter = true;					   
+			}
+			
+			$needsArgs =  $child->hasAttribute('needsArgs');
+
+			if (($child->tagName == 'parameter' && $child->hasChildNodes()) || $needsArgs) $isScatter = false;
+			
+			if ($remoteBase) {
+			    if ($child->tagName == 'dataset') $isRemoteDataSet = true; 
+			}
+
+			if ($isParameter) {
+                            $disable = $child->parentNode->getAttribute('disabled');			   			  
+			    $objectMgr = new AliasMgr();
+			    $alias = $objectMgr->getAlias($id);
+
+
+                            if ($child->hasAttribute('display_type') 
+                            && $child->getAttribute('display_type') == 'spectrogram'){
+                                                $needsArgs = true; 
+                                                $isScatter = false;
+                                                $isSpectra = true;
+                        }       
+
+			    $childrenToReturn[] = array('text' => $name,'alias' => $alias, 
+				      'id' => $id,'nodeType' => $nodeType,  'info' => $info, 'help' => $help,
+				      'leaf' => $isLeaf, 'disable' => $disable, 'isParameter' => $isParameter, 
+				      'isScatter' => $isScatter, 'isSpectra' => $isSpectra, 'needsArgs' => $needsArgs);
+			  }
+			  else { 
+                            if ($child->tagName == 'dataCenter')   
+                                $restricted = ($child->getAttribute('available') != "1");                                                        
+                            else
+                                $restricted = false;
+                                 
+                            if ($id == 'CDAWEB' || $id == 'THEMIS'|| $id == 'MAPSKP' || $id == 'VEXGRAZ') 
+                                                                                     $restricted = FALSE;
+                            if ($restricted)
+                                $info .= "<br/><b>Open soon !</b>";                                                             
+                            
+                            if ($child->tagName == 'dataset')
+                                $nonavailable = ($child->getAttribute('disabled'));
+                            else
+                                $nonavailable = false;
+                            
+                            if ($nonavailable)
+                                $info .= "<br/><b>Not available yet</b>";
+
+                            if ($child->getAttribute('url'))
+                                    $info .= "<br/>".$child->getAttribute('url');
+
+                            if ($child->hasAttribute('obsolete')) {
+                                $info = $child->getAttribute('desc');
+                                $obsolete = true;
+                            }
+                            else
+                                $obsolete = false;
+
+                            $disable = $restricted || $nonavailable || $obsolete;
+			    $childrenToReturn[] = array('text' => $name, 'id' => $id,'nodeType' => $nodeType,  'isAddable' => $isAddable,
+			    'info' => $info, 'leaf' => false, 'isRemoteDataSet' => $isRemoteDataSet, 'disable' => $disable, 
+                            'isSimulation' => $isSimulation, 'rank' => $rank, 'isDeletable' => $isDeletable, 'help' => $help);				    			 			   
+			  }
+			
+		    break;
+		     case 'myData' :  
+			    $info = $child->hasAttribute('info') ? $child->getAttribute('info') : $child->nodeValue;
+			  //  $info = str_replace("\n","<br/>",$info);
+			    break;
+
+                    case 'myDataParam' :
+
+                        $globalStart = null;
+                        $globalStop = null;
+                        $specialNode = true;
+                        $size = $child->getAttribute('size');
+                        $isScatter = $size == 1;
+                        $mask = $child->getAttribute('mask');
+                        $isSpectra = false;
+
+                        
+                        if ($isLeaf) {
+                            $isParameter = true;
+                            $info = "Size: ".$size."<br/>".$child->getAttribute('desc')."<br/> Mask: ".$mask;
+                            $isSpectra = $child->getAttribute('plottype') === 'Spectra';
+                        }
+
+                        if ($child->hasAttribute('desc')) {
+                            $globalStart = substr(str_replace('-','/',$child->getAttribute('desc')), 0, 16);
+                            $globalStop =  substr(str_replace( '-','/',$child->getAttribute('desc')), 17, 22);
+                        }
+
+                        $childrenToReturn[] = array('text' => $name, 'size' =>  $size, 'id' => $id,  
+                        'globalStart' => $globalStart, 'globalStop' => $globalStop,
+                        'nodeType' => $nodeType, 'info' => $info, 'isScatter' => $isScatter, 'leaf' => $isLeaf, 
+                        'isParameter' => $isParameter, 'linkedMask' => $mask, 'isSpectra' => $isSpectra);
+
+                        break;
+                    default: 
+		}
+	
+		if (!$specialNode && !$skip) {
+		       if ($child->hasAttribute('desc')) 
+			    $info = $child->getAttribute('desc');
+			$childrenToReturn[] = array('text' => $name, 'id' => $id, 'nodeType' => $nodeType, 'info' => $info, 
+                                                    'help' => $help, 'leaf' => $isLeaf, 'isParameter' => $isParameter);
+		}
+	      }
+		// if $childrenToReturn we have to return []
+		 if ($childrenToReturn == null) {			
+			$childrenToReturn = array('nodeType' => $nodeType, 'text' => null);
+		 }
+        }
+
+      return  $childrenToReturn;
+ }
+
+    public  function saveTree($obj) 
+    {
+            $paramMgr = new ParamMgr();
+            return $paramMgr->saveTree($obj);            
+    }
+
+    public  function doNothing($obj) 
+    {	    
+        return array("res" => 'ok');
+        
+    }
+
+    public  function deleteFromTree($obj) 
+    {    
+        $paramMgr = new ParamMgr();
+        return $paramMgr->deleteFromTree($obj);
+        
+    }
+
+/*
+*  temporary object fromUpload
+*/ 
+    public  function getUploadedObject($name, $format, $nodeType)
+    {  
+            switch ($nodeType) 
+            {
+                case 'timeTable' : 
+                        $objectMgr = new TimeTableMgr();		  
+                        break;
+                case 'myDataParam' : 
+                        $objectMgr = new FilesMgr();			  	  
+                        break;
+                default:
+                        return array("error" => $nodeType." NOT_IMPLEMENTED_YET");
+            }
+            return  $objectMgr -> getUploadedObject($name, $format, true);
+    }	
+
+/*
+*  fill ascii file into grid 
+*/ 
+    public  function getAsciiFile($obj) 
+    {  
+            $objectMgr = new FilesMgr();			  	  			
+            return  $objectMgr -> getAsciiFile($obj->fileName);
+    }
+	
+    public  function getParamInfo($object) 
+    {   	     
+            $objectMgr = new FilesMgr();			  	   	 
+            return  $objectMgr -> getParamInfo($object);
+    }	
+
+/*
+*  temporary object from Search 
+*/ 
+    public  function getTmpObject($folderId, $name, $nodeType) {  
+ 
+	    switch ($nodeType) {
+		  case 'timeTable' : 
+			   $objectMgr = new TimeTableMgr();		  
+			   break;		  
+		  default:
+			    return array("error" => $nodeType." NOT_IMPLEMENTED_YET");
+              }
+	      return  $objectMgr -> getTmpObject($folderId, $name, true);
+    }
+ 
+
+    public  function getObject($id, $nodeType) {  
+ 
+	    switch ($nodeType) {
+		  case 'myDataParam':
+		  case 'derivedParam' : 
+			   $objectMgr = new DerivedParamMgr($nodeType);			   
+			   break;
+		  case 'timeTable' : 
+		  case 'sharedtimeTable' :
+			   $objectMgr = new TimeTableMgr();			  
+			   break; 
+		  case 'condition' : 		  
+		  case 'request' :
+			   $objectMgr = new RequestMgr($nodeType);			  
+			   break; 
+		  case 'bkgWorks' :
+		  	require_once(INTEGRATION_SRC_DIR."RequestManager.php");
+		  	return $this->executeRequest($id, FunctionTypeEnumClass::PROCESSGETINFO);
+			   break;
+		  case 'myData' :
+			   $objectMgr = new FilesMgr();			  
+			   break;
+		  default:
+			    return array("error" => $nodeType." NOT_IMPLEMENTED_YET");
+              }
+
+	    return  $objectMgr -> getObject($id, $nodeType);
+    }
+/*
+*   $obj = { id: node.id, leaf: node.leaf, nodeType: node.nodeType }
+*/
+    public  function deleteObject($obj) {  
+ 
+	    switch ($obj->nodeType) {  
+		  
+		  case 'myDataParam' : 
+		  case 'derivedParam' : 
+			   $objectMgr = new DerivedParamMgr($obj->nodeType);			   
+			   break;
+		  case 'timeTable' : 
+			   $objectMgr = new TimeTableMgr();			  
+			   break;
+		  case 'condition' : 		  
+		  case 'request' :
+			   $objectMgr = new RequestMgr($obj->nodeType);			  
+			   break;
+		  case 'alias' :
+		  	   $objectMgr = new AliasMgr();
+		  	   $obj->id = substr($obj->id,strlen('alias_'));
+		  	   break;   
+		  case 'bkgWorks' :
+		  	   require_once(INTEGRATION_SRC_DIR."RequestManager.php");
+		  	   return $this->executeRequest($obj, FunctionTypeEnumClass::PROCESSDELETE);
+		  case 'myData' :
+				$objectMgr = new FilesMgr();
+			   break;
+		  default:
+			    return array("error" => $obj->nodeType." NOT_IMPLEMENTED_YET");
+              }
+
+	    return  $objectMgr -> deleteObject($obj);
+    }
+
+/*
+*   $obj = { id: node.id, old_name: node.text, name: value,  parent : node.parentNode.id, leaf: node.leaf, nodeType: node.nodeType }
+*/
+    public  function renameObject($obj) {  
+ 
+	    switch ($obj->nodeType) {
+		  
+		  case 'myDataParam' :
+		  case 'derivedParam' : 
+			   $objectMgr = new DerivedParamMgr($obj->nodeType);			   
+			   break;
+		  case 'timeTable' : 
+			   $objectMgr = new TimeTableMgr();			  
+			   break;		  
+		  case 'condition' : 
+		  case 'request' : 
+			   $objectMgr = new RequestMgr($obj->nodeType);			  
+			   break;
+		  case 'alias' :
+		  	   $objectMgr = new AliasMgr();  
+		  	   break;   
+		  default:
+			    return array("error" => $obj->nodeType." NOT_IMPLEMENTED_YET");
+              }
+
+	    return  $objectMgr -> renameObject($obj);
+    }
+
+/*   
+*   $obj = { name: obj.name, obj.nodeType, obj.leaf (??), OBJ DEPENDENT ATTRIBUTES }
+*/
+    public  function createObject($obj, $folder) {  
+ 
+	    switch ($obj->nodeType) {
+
+		  case 'myDataParam' :                           
+		  case 'derivedParam' :
+                        if ($obj->nodeType == 'derivedParam' &&  $this->amdaStat->success) 
+                             $this->amdaStat->addTask('create', $this->user, null);
+
+                        $objectMgr = new DerivedParamMgr($obj->nodeType);			   
+                        break;		  
+		  case 'timeTable' : 
+                        $objectMgr = new TimeTableMgr();			  
+			   break;
+		  case 'condition' :
+		  case 'request' : 
+			   $objectMgr = new RequestMgr($obj->nodeType);			  
+			   break;		
+		  case 'alias' :
+			    $objectMgr = new AliasMgr();  
+			    break;   
+		  default:
+			    return array("error" => $obj->nodeType." NOT_IMPLEMENTED_YET");
+              }
+
+	    return  $objectMgr -> createObject($obj, $folder);
+    }
+
+/*   
+*   $obj = { id:obj.id, name: obj.name, obj.nodeType, obj.leaf (??), OBJ DEPENDENT ATTRIBUTES }
+*/
+    public  function modifyObject($obj) {
+ 
+	    switch ($obj->nodeType) {  
+
+		  case 'myDataParam' : 
+		  case 'derivedParam' : 
+			   $objectMgr = new DerivedParamMgr($obj->nodeType);			   
+			   break;
+		  case 'timeTable' : 
+			   $objectMgr = new TimeTableMgr();			  
+			   break;  
+		  case 'condition' : 
+		  case 'request' :
+			   $objectMgr = new RequestMgr($obj->nodeType);			  
+			   break;
+		  default:
+			    return array("error" => $obj->nodeType." NOT_IMPLEMENTED_YET");
+              }
+
+	    return  $objectMgr -> modifyObject($obj);
+    }
+    
+/*
+ * {obj.name, obj.nodeType, obj.leaf}
+ */
+    public function validNameObject($obj) {
+		switch ($obj->nodeType) {
+			case 'myDataParam' :
+			case 'derivedParam' :
+				$objectMgr = new DerivedParamMgr($obj->nodeType);
+				break;
+			case 'timeTable' :
+				$objectMgr = new TimeTableMgr();
+				break;
+			case 'condition' :
+			case 'request' :
+				$objectMgr = new RequestMgr($obj->nodeType);
+				break;
+			default:
+				return array("error" => $obj->nodeType." NOT_IMPLEMENTED_YET");
+		}
+
+		return  $objectMgr -> validNameObject($obj);
+    }
+
+/*
+*   Get Jobs en cours
+*/
+    public  function getJobs()
+    {
+    	require_once(INTEGRATION_SRC_DIR."RequestManager.php");
+    	return $this->executeRequest($obj, FunctionTypeEnumClass::PROCESSRUNNINGINFO);  
+    }
+
+
+	/* AKKA-KERNEL-INT
+	Move user check from RequestMgr.php to AmdaAction.php
+	*/
+	private function checkUser($obj)
+	{
+		if (defined('NEWKERNEL_DEBUG') && NEWKERNEL_DEBUG)
+		{
+			$this->user = NEWKERNEL_DEBUG_USER;
+			return array('success' => true);
+		}
+			
+		
+		if (isset($obj->username) && isset($obj->password) && isset($obj->sessionID))
+        {
+			//$dd = new WSUserMgr();
+            //$dd->init($obj->username,$obj->password,$obj->sessionID);
+			return array('success' => false, "message" => "AKKA-KERNEL-INT - WS support not implemented");
+        }
+        else
+			$dd = new UserMgr();
+			
+        //TODO error handling 
+        if (($res = $dd -> ddCheckUser()) != 0)
+		{
+			if ($res == 156) 
+				return array('success' => false, 'message' => 'Your AMDA session is expired.<br/> Login please!');
+
+            return array('success' => false, 'message' => 'ddLogin error: '.$res);
+        }
+
+        if ($dd->user == 'impex')
+		{
+			//if ($dd->getWsSize() > DISK_QUOTA * 100)
+			//	error_log('Natacha! It is time to CLEAN UP IMPEX WS!',1,'nbourrel@irap.omp.eu');
+			return array('success' => false, "message" => "AKKA-KERNEL-INT - WS support for IMPEx not implemented");
+        }
+        else
+		{
+			// check disk space
+            if ($dd->getWsSize() > DISK_QUOTA)
+				return array('success' => false, 'message' => 'Please clean up your workspace.<br/>No more space is available');
+        }
+		
+        $this->user = $dd->user;
+        
+		return array('success' => true, 'userHost' => $dd -> getIPclient());
+	}
+	
+	private function executeRequest($obj, $function)
+	{
+		$res = $this->checkUser($obj);
+		
+		if (!$res['success'])
+			return $res;
+		
+		$requestManager = new RequestManagerClass();
+		
+		try {
+			$res = $requestManager->runIHMRequest($this->user, $res['userHost'], $function, $obj);
+		} catch (Exception $e) {
+			return array('success' => false, 'message' => 'Exception detected : '.$e->getMessage());
+		}
+		
+		return $res;
+	}
+	
+/*   
+*    Main EXECUTE PROCEDURE 
+*/
+    public  function execute($node, $obj)
+	{ 
+		require_once(INTEGRATION_SRC_DIR."RequestManager.php");
+		if (isset($obj->action))
+			return $this->executeRequest($obj, FunctionTypeEnumClass::ACTION);
+		else
+			return $this->executeRequest($obj, FunctionTypeEnumClass::PARAMS);
+    }
+    
+/*
+ * kill plot process by tabID
+ */
+    
+    public function killPlotRequest($obj)
+    {        
+        $objectMgr = new RequestMgr('request');
+        if (count($obj->tabId) > 1) 
+        {          
+               return $objectMgr->killMultiPlot($obj->tabId);                
+         }
+        else 
+        {
+            return $objectMgr->killPlot($obj->tabId);
+        }
+    }
+
+/*
+ * merge time tables
+ */
+    public  function merge($obj)   {
+
+        if ($this->amdaStat->success)
+            $this->amdaStat->addTask('ttoper', $this->user, null);
+                
+        $objectMgr = new TimeTableMgr();
+
+    return  $objectMgr -> merge($obj);
+
+    }
+
+    
+/*
+ * intersect time tables
+ */
+        public  function intersect($obj)   {
+
+            if ($this->amdaStat->success)
+                $this->amdaStat->addTask('ttoper', $this->user, null);
+
+            $objectMgr = new TimeTableMgr();
+            $result = $objectMgr -> intersect($obj);
+
+            return  $result;
+        }
+    
+        public function initTTCache()
+        {
+        	$cacheMgr = new TimeTableCacheMgr();
+        	return $cacheMgr->initTTCache();
+        }
+        
+        public function initTTCacheFromTT($id, $type)
+        {
+        	$cacheMgr = new TimeTableCacheMgr();
+        	return $cacheMgr->initFromTT($id, $type);
+        }
+        
+        public function initTTCacheFromTmpObject($folderId, $name)
+        {
+        	$cacheMgr = new TimeTableCacheMgr();
+        	return $cacheMgr->initFromTmpObject($folderId, $name);
+        }
+        
+        public function initTTCacheFromUploadedFile($name, $format)
+        {
+        	$cacheMgr = new TimeTableCacheMgr();
+        	return $cacheMgr->initFromUploadedFile($name, $format);
+        }
+        
+        public function readTTCacheIntervals($o)
+        {
+        	$cacheMgr = new TimeTableCacheMgr();
+        	return $cacheMgr->getIntervals($o->start,$o->limit,$o->sort,$o->filter);
+        }
+    
+        public function saveTTCacheIntervalsInTT($o)
+        {
+        	$cacheMgr = new TimeTableCacheMgr();
+            return $cacheMgr->saveInTT($o->ttId,$o->action,$o->cacheToken);
+        }
+        
+        public function addTTCacheInterval($o)
+        {
+        	$cacheMgr = new TimeTableCacheMgr();
+            return $cacheMgr->addInterval($o->index, $o->start, $o->stop);
+        }
+        
+        public function removeTTCacheIntervalFromId($id)
+        {
+        	$cacheMgr = new TimeTableCacheMgr();
+        	return $cacheMgr->removeIntervalFromId($id);
+        }
+        
+        public function modifyTTCacheInterval($o)
+        {
+        	$cacheMgr = new TimeTableCacheMgr();
+        	return $cacheMgr->modifyIntervalFromId($o->cacheId, $o->start, $o->stop);
+        }
+        
+        public function operationTTCacheIntervals($extendTime, $shiftTime)
+        {
+        	$cacheMgr = new TimeTableCacheMgr();
+        	return $cacheMgr->operationIntervals($extendTime, $shiftTime);
+        }
+        
+        public function mergeTTCacheIntervals()
+        {
+        	$cacheMgr = new TimeTableCacheMgr();
+        	return $cacheMgr->mergeIntervals();
+        }
+        
+        public function getTTCacheStatistics()
+        {
+        	$cacheMgr = new TimeTableCacheMgr();
+        	return $cacheMgr->getStatistics();
+        }
+        
+        public function getTTCacheStatus()
+        {
+        	$cacheMgr = new TimeTableCacheMgr();
+        	return $cacheMgr->getStatus();
+        }
+        
+/*
+ * Send a feedback
+ * 
+ */
+        public function sendFeedback($feed)
+        {
+            $feedMgr = new FeedbackMgr();
+            return $feedMgr->addFeedback($feed->user, $feed->interface, $feed->subject, $feed->userText, $feed->userAgent, $feed->attach);
+        }
+    
+/*
+ * Save state
+ * 
+ */
+        public function saveState($datas)
+        {
+            $myStateMgr = new StateMgr();
+            return $myStateMgr->saveState($datas);
+        }
+    
+/*
+ * Load state
+ * 
+ */    
+        public function loadState($o)
+        {	
+                $myStateMgr = new StateMgr();
+                return $myStateMgr->loadState();
+        }
+	
+/* 
+ * SAMP
+ */
+        public function sendToSAMP($o)
+        {                
+                if ($this->amdaStat->success)
+                    $this->amdaStat->addTask('samp', $this->user, null);
+
+                $objectMgr = new RequestMgr();
+                $res = $objectMgr->generateVOTableFromDownloadResult($o->folderId, $o->downId,true,true);
+                if ($res['success'])
+                {
+                    foreach ($res['files'] as $key => $value)
+                    $res['files'][$key] = str_replace(BASE_PATH,"",$value);
+                }
+                return $res;
+        }
+	
+/*
+ * HST Images
+ */
+        public function getHstImagesUrl($o)
+        {
+                if ($this->amdaStat->success)
+                    $this->amdaStat->addTask('images', $this->user, null);
+                
+                $myHstMgr = new HstMgr();
+                $res = $myHstMgr->getImagesUrl($o->startTime, $o->stopTime, $o->planet);
+                //if ($domRes->length <= 0)
+                //	return array('success' => false, 'message' => 'Cannot find HST Images for this request.');
+                return array('success' => true, 'result' => $res);
+        }
+	
+        public function getAPISImagesUrl($o)
+        {
+                if ($this->amdaStat->success) 
+                    $this->amdaStat->addTask('images', $this->user, null);
+                		
+                $apisMgr = new APISMgr();
+                $res = $apisMgr->get($o->planet, $o->startTime, $o->stopTime);
+
+                return $res;
+        }	
+/*
+ * Filters
+ */
+        public function loadFilterList($o)
+        {
+                $filtersMgr = new FiltersMgr(); 
+                $res = $filtersMgr->loadList();
+                return $res;
+        }
+
+        public function loadFilters($o)
+        {
+                $filtersMgr = new FiltersMgr();
+                if (isset($o->id))
+                    $res = $filtersMgr->loadFilter($o->id);
+                else
+                    $res = $filtersMgr->loadAll();
+                return $res;
+        }
+	
+        public function saveFilter($o)
+        {
+                $filtersMgr = new FiltersMgr();		
+                return $filtersMgr->save($o);
+        }
+	
+        public function createFilter($o)
+        {
+                $filtersMgr = new FiltersMgr();		
+                return $filtersMgr->create($o);
+        }
+	
+        public function destroyFilter($o)
+        {
+                $filtersMgr = new FiltersMgr();
+                $res = $filtersMgr->delete($o);
+                return;
+        }
+	
+        public function getCrtFilterId()
+        {
+                $filtersMgr = new FiltersMgr();
+                $res = $filtersMgr->getCrtId();
+                return $res;
+        }
+	
+        public function getCrtFilterResult()
+        {
+                $filtersMgr = new FiltersMgr();		
+                return $filtersMgr->getCrtResult();
+        }
+	
+        public function setCrtFilterId($o)
+        {
+                $filtersMgr = new FiltersMgr();		
+                return $filtersMgr->setCrtId($o->id);
+        }
+	
+        public function resetFilter()
+        {
+                $filtersMgr = new FiltersMgr();
+                $res = $filtersMgr->reset();
+                return $res;
+        }
+  
+	public function logout($isGuest)
+	{
+                if ($isGuest) {
+                    $guestMgr = new Guest($this->user);
+                    $guestMgr->deleteGuest();
+                }
+                else {
+                    $myBaseMgr = new BaseManager();
+                    $myBaseMgr->delSimuFiles('mysimudata');   
+		    $myBaseMgr->delSimuFiles('mywsrdata');     
+                
+                    $jobsMgr = new JobsMgr();
+                    $jobsMgr->deleteTmp();
+                 }               
+		return;
+	} 
+
+        public function getInfo($obj)
+        {
+                if (file_exists(HELPPATH.$obj->name)) 
+                {
+                        $content = file_get_contents(HELPPATH.$obj->name);		      
+                        return  array('success' => true, 'result' => $content);
+                }
+                return array('success' => false);
+                
+        }	
+	
+        public function getUserInfo()
+        {
+                    $dd = new UserMgr();
+                    return $dd->getUserInfo();
+        }
+
+        public function convertWS()
+        {
+                 $dd = new UserMgr();
+                 return $dd->convertWS();
+        }
+
+// $obj ={"Object":"Earth","RunCount":"2",
+// "SW_Density_value":"10","SW_Density_weight":"1","SW_Density_scale":"7","SW_Temperature_value":"100", ....}
+        public function getRun($obj)
+        {
+
+            $myBestRunsMgr = new BestRunsMgr();
+            $res = $myBestRunsMgr->getRun($obj);
+        
+            return  $res; 
+        }
+        
+    //$obj = array of IDs    
+        public function addRun($obj)
+        {
+            $myBestRunsMgr = new BestRunsMgr();
+            $myBestRunsMgr->init();
+            $myBestRunsMgr->addRuns($obj);
+
+            $res =  array('success' => true,'addedRuns' => $obj);
+        return $res;
+        }
+        
+        //AKKA - New action to clean user WS
+        public function cleanUserWS()
+        {
+        	require_once(INTEGRATION_SRC_DIR."RequestManager.php");
+        	return $this->executeRequest($obj, FunctionTypeEnumClass::PROCESSCLEAN);
+        }
+
+        public function deleteSpecialInfo($name)
+        {
+             if (file_exists(USERDIR.$name)) 
+                                    unlink(USERDIR.$name);
+             return array('success' => true);
+        }
+}
+?>
diff --git a/php/classes/AmdaClient.php b/php/classes/AmdaClient.php
new file mode 100644
index 0000000..72b1fe7
--- /dev/null
+++ b/php/classes/AmdaClient.php
@@ -0,0 +1,771 @@
+<?php
+
+/**  @class AmdaClient
+ *    @version $Id: AmdaClient.php 2322 2014-04-26 12:36:49Z elena $
+ *    @brief Client of DD Web Server
+ *
+ */
+
+  ini_set("soap.wsdl_cache_enabled", "0");
+
+class AmdaClient {
+
+	public $client;
+        public $updateOnly;
+	 
+	function __construct($updateOnly){
+		 
+                $this->updateOnly = $updateOnly;
+
+        //AKKA - New DDPATH dir with the new kernel
+		$DDPATH = DDRES_DIR;
+		 
+		/*   wsdl location depends on DDServer AMDA is connected to
+		 *    DDServer is defined in DD.res
+		 */
+		$SERVER  = file($DDPATH."/DD.res");
+		
+		if (!file_exists(DATAPATH."wsdl.location")) {
+			$msg = "No WSDL location file -> Nothing done".PHP_EOL;
+			error_log($msg, 1, email);
+			exit($msg);
+		}
+
+		/* Get WSDL  Location  */
+
+		$WsdlSources = file(DATAPATH."wsdl.location");
+		$isHOST = false;
+		for ($i = 0; $i < count($WsdlSources); $i++)
+		{
+			list($HOST,$WSDL) = sscanf($WsdlSources[$i],"%s %s");
+			 
+			if ($HOST.PHP_EOL == $SERVER[0]) {
+				$isHOST = true;
+				break;
+			}
+		}
+
+		if (!$isHOST) {
+			$msg = "No WSDL location for ".$SERVER[0].PHP_EOL;
+			error_log($msg, 1, email);
+			exit($msg);
+		}
+
+		try {
+			$this->client = new SoapClient($WSDL);
+		}
+		catch  (SoapFault $exception) {
+			$msg = $exception->faultstring.PHP_EOL;
+			error_log($msg, 1, email);
+			exit($msg);
+		}
+		// reset log file
+	 if (file_exists(log)) unlink(log);
+
+	 date_default_timezone_set('UTC');
+	}
+
+	/* Just copy URL to Info/Bases.xml */
+	 
+	public function getAvailableExternalBases() {
+
+		try {
+			$extBases = $this->client->getAvailableExternalBases();
+		}
+		catch  (SoapFault $exception) {
+			$msg = $exception->faultstring.PHP_EOL;
+			error_log($msg, 1, email);
+			exit($msg);
+		}
+
+		if ($extBases === "NOEXTERNALBASES") {
+			if (!$this->updateOnly) error_log($extBases.PHP_EOL, 1, email);
+			return $extBases;
+		}
+
+		$extBasesDom = new DomDocument("1.0");
+		if (!$extBasesDom->load($extBases)) {
+			$msg = "Can't load Bases.xml".PHP_EOL;
+			if (!$this->updateOnly) error_log($msg, 1, email);
+			exit($msg);
+		}
+
+		$External = $extBasesDom->getElementsByTagName("External")->item(0);
+		if ($External == NULL) {
+			$msg = "no External Tag found in Bases.xml".PHP_EOL;
+			if (!$this->updateOnly) error_log($msg, 1, email);
+			exit($msg);
+		}
+
+		$extBasesNames = $External->getElementsByTagName("CenterID");
+		if ($extBasesNames->length === 0) {
+			$msg = "no external bases found in Bases.xml".PHP_EOL;
+			if (!$this->updateOnly) error_log($msg, 1, email);
+			exit($msg);
+		}
+
+		if (!$this->updateOnly) {
+                        if (!is_dir(RemoteData)) mkdir(RemoteData, 0775, true);
+                        chgrp(RemoteData, APACHE_USER);                
+                        chmod(RemoteData, 0775);
+                        if (!is_dir(RemoteData.'PARAMS')) mkdir(RemoteData.'PARAMS', 0775, true);
+                        chgrp(RemoteData.'PARAMS', APACHE_USER);                
+                        chmod(RemoteData.'PARAMS', 0775);
+                        
+                        $xsl = new DOMDocument("1.0");
+                        $xsl->load(XMLPATH."basesRaw2bases.xsl");
+
+                        $xslt = new XSLTProcessor();
+                        $xslt->importStylesheet($xsl);
+
+                        if (!$xslt->transformToDoc($extBasesDom)->save(RemoteData."Bases.xml")){
+                                $msg = "problem while transforming Bases.xml".PHP_EOL;
+                                error_log($msg, 1, email);
+                                exit($msg);
+                        }
+                }
+		return $extBasesNames;
+		 
+	}
+
+	/* Get list of available local missions for a given user*/
+	public function getUserAvailableMissions($user)
+	{
+		try {
+			$localmissions = $this->client->getUserAvailableLocalMissions($user);
+			$externalmissions = $this->client->getUserAvailableExternalMissions($user);
+		}
+		catch  (SoapFault $exception) {
+			 
+			/*$log = fopen(DATAPATH."mylog","w");
+			 fprintf($log,$exception->faultstring."\n");
+			  
+			 $functions = $this->client->__getFunctions ();
+			 foreach ($functions as $function)
+			 fprintf($log,$function."\n");*/
+			return array('success' => false,'message' => $exception->faultstring);
+		}
+		 
+		return array('success' => true,'local' => $localmissions,'external' => $externalmissions);
+	}
+	 
+	/* Just copy URL to LocalData/Amda_Users.xml */
+	 
+	public function getUserGroups() {
+		try {
+			$group_info = $this->client->getUserGroups();
+		}
+		catch  (SoapFault $exception) {
+			exit("Problems with DD Web Services".PHP_EOL);
+		}
+		if ($group_info === "NOUSERGROUPSSPECIFIED") return false;
+		 
+		if (!file_exists(LocalData)) mkdir(LocalData, 0755, true);
+		if (!copy($group_info,LocalData."AMDA_Users.xml"))
+		exit("problem with copying AMDA_Users info".PHP_EOL);
+
+		return true;
+		 
+	}
+        /* Get Time Restriction from VI in DDBASE */
+         
+        public function getTimeRestriction($dataSet) {
+                try {
+                        $restrictions = $this->client->getTimeRestriction($dataSet);
+                }
+                catch  (SoapFault $exception) {                     
+                        error_log($exception->faultstring.PHP_EOL, 1, email);
+                    return FALSE;
+                }
+                if ($restrictions['success'] === FALSE) {
+                        error_log('TimeRestriction: '.$dataSet.' '.$restrictions['days'], 1, email);
+                    return FALSE;
+                }
+                                  
+                return $restrictions;
+                 
+        }
+	/* Just copy URL to LocalData/Missions.xml */
+	 
+	public function getAvailableMissions() {
+
+		try {
+			$localMissions = $this->client->getAvailableMissions();
+		}
+		catch  (SoapFault $exception) {
+			$msg = $exception->faultstring.PHP_EOL;
+			if (!$this->updateOnly) error_log($msg, 1, email);
+			exit($msg);
+		}
+
+		if ($localMissions === "NOLOCALDATA") {
+			if (!$this->updateOnly) error_log($localMissions.PHP_EOL, 1, email);
+			return $localMissions;
+		}
+		 
+		$locBasesDom = new DomDocument("1.0");
+		$locBasesDom->load($localMissions);
+		$local = $locBasesDom->getElementsByTagName("Local")->item(0);
+
+		if (!$local) {
+			$msg = "no local data found in Missions.xml".PHP_EOL;
+			if (!$this->updateOnly) error_log($msg, 1, email);
+			exit($msg);
+		}
+
+		$locBasesNames = $local->getElementsByTagName("MissionID");
+		if ($locBasesNames->length === 0) {
+			$msg = "no missions found in Missions.xml".PHP_EOL;
+			error_log($msg, 1, email);
+			exit($msg);
+		}
+
+		if (!is_dir(LocalData)) mkdir(LocalData, 0775, true);
+                if (!is_dir(LocalDataParam)) mkdir(LocalDataParam, 0775, true);
+                if (!is_dir(LocalDataTemplate)) mkdir(LocalDataTemplate, 0775, true);
+
+                chgrp(LocalData,APACHE_USER);
+                chgrp(LocalDataParam,APACHE_USER);
+                chgrp(LocalDataTemplate,APACHE_USER);
+ 
+                chmod(LocalData, 0775);
+                chmod(LocalDataParam, 0775);
+                chmod(LocalDataTemplate, 0775);
+
+		if (!copy($localMissions,LocalData."Missions.xml")) {
+			$msg = "problem with copying AMDA Local Missions info".PHP_EOL;
+			if (!$this->updateOnly) error_log($msg, 1, email);
+			exit($msgL);
+		}
+		 
+		return $locBasesNames;
+		 
+	}
+	 
+	public function isMulti($baseNode){
+		$multi = $baseNode->getAttribute("missions");
+		if ($multi == "") return false;
+		$nameArr = explode(";",$multi);
+		if (count($nameArr) < 2) return false;
+		 
+		return $nameArr;
+	}
+
+
+	public function makeMulti($locbase, $multiNames){
+
+		$templatename = LocalDataTemplate."DD_".$locbase->nodeValue.".template";
+		$paramtemplate = LocalDataTemplate.$locbase->nodeValue.".template";
+
+		$suffix = array();
+		foreach ($multiNames as $item) {
+			$temp = explode("-",$item);
+			if (count($temp) > 1) {
+		  $suffix[] = $temp[1];
+			}
+			else {
+		  $suffix[] = substr($item,-1);
+			}
+		}
+		 
+		$template = new DomDocument("1.0");
+		$status = $template->load($templatename);
+		if (!$status) {
+			print_r("Cannot load ".$templatename.PHP_EOL);
+			if (!$this->updateOnly) error_log("Cannot load ".$templatename.PHP_EOL,1,email);
+		}
+	  
+		$paramdom = new DomDocument("1.0");
+		$status = $paramdom->load($paramtemplate);
+		if (!$status) {
+			print_r("Cannot load ".$paramtemplate.PHP_EOL);
+			if (!$this->updateOnly) error_log("Cannot load ".$paramtemplate.PHP_EOL,1,email);
+		}
+
+		// Create DD_Mission.xml
+		$locbasename =  LocalData."DD_".$locbase->nodeValue.".xml";
+		$locbasedom = new DomDocument("1.0");
+		$root = $locbasedom->importNode($template->documentElement);
+		$amda = $locbasedom->importNode($template->getElementsByTagName("dataCenter")->item(0));
+                $missionMain = $locbasedom->importNode($template->getElementsByTagName("mission")->item(0)); 
+
+		$mission = $locbasedom->importNode($template->getElementsByTagName("mission")->item(0), true);
+
+                $targets = $mission->getElementsByTagName("target"); 
+                $targetNames = array();
+                foreach ($targets as $target)
+                        if ($target->parentNode->tagName == 'mission')  // mission only targets
+                                    $targetNames[] = $target->nodeValue;
+
+                $observatory = $mission->getElementsByTagName("observatory")->item(0);
+                $instruments = $observatory->getElementsByTagName("instrument");
+		 
+		// create param descriptor  Mission.xml
+		$parambasename =  LocalDataParam.$locbase->nodeValue.".xml";
+		$parambasedom = new DomDocument("1.0");
+		$paramroot = $parambasedom->importNode($paramdom->documentElement);
+	  
+		$instrumentNon = array();
+		foreach ($instruments as $instrument) {
+			// absent instriments processing
+			if ($instrument->hasAttribute("absent")) {
+				$absent = $instrument->getAttribute("absent");
+				$absentArray = explode(";",$absent);
+				$tempArr = array();
+
+				if (count($absentArray) > 1) {
+					for ($i = 0; $i < count($suffix); $i++) $tempArr[$i] = false;
+					for ($j = 0; $j < count($absentArray); $j++) {
+						$temp = array_search($absentArray[$j], $suffix, true);
+						$tempArr[$temp] = true;
+					}
+						
+				}
+				else {
+			  for ($i = 0; $i < count($suffix); $i++) {
+			  	$tempArr[$i] = $absent == $suffix[$i];
+			  }
+				}
+				$instrumentNon[$instrument->getAttribute("name")] = $tempArr;
+			}
+		}
+		 
+                foreach ($targetNames as $targetName) {
+                        $missionMain->appendChild($locbasedom->createElement("target",$targetName));
+                }
+
+		for ($index = 0; $index < count($suffix); $index++) {
+
+                        $missionArr[$index] = $observatory->cloneNode();
+			$missionArr[$index]->setAttribute("name", str_replace("XXX", $suffix[$index], $missionArr[$index]->getAttribute("name")));
+                        $missionArr[$index]->setAttribute("xml:id", str_replace("XXX", $suffix[$index], $missionArr[$index]->getAttribute("name")));
+                        $instruments = $observatory->getElementsByTagName("instrument");
+                        
+			foreach ($instruments as $instrumentReal){
+				if (!$instrumentNon[$instrumentReal->getAttribute("name")] || !$instrumentNon[$instrumentReal->getAttribute("name")][$index])  {
+					$instrument = $instrumentReal->cloneNode(true);
+					$instrument->setAttribute("desc",str_replace("XXX", $suffix[$index], $instrument->getAttribute("desc")));
+					$instrument->setAttribute("xml:id",str_replace("XXX", $suffix[$index], $instrument->getAttribute("xml:id")));
+					$tags = array("dataset", "parameter", "component");
+
+					foreach ($tags as $tag) {
+						$all = $instrument->getElementsByTagName($tag);
+						foreach ($all as $one) {
+							if ($tag == 'parameter') {
+								$id = $one->getAttribute("xml:id");
+								// create param tag in param XML descriptor
+								$param = $paramdom->getElementById($id);
+								if ($param){
+									$paramAdd = $parambasedom->importNode($param, true);
+									$paramAdd->setAttribute("xml:id",str_replace("XXX", strtolower($suffix[$index]), $id));
+									$paramAdd->setAttribute("vi",str_replace("XXX", strtolower($suffix[$index]), $paramAdd->getAttribute("vi")));
+									$yTitle = $paramAdd->getElementsByTagName("YTITLE");
+									if ($yTitle->length > 0) {
+										$value =  $yTitle->item(0)->nodeValue;
+										$yTitle->item(0)->nodeValue = str_replace("XXX", $suffix[$index], $value);
+									}
+									$paramroot->appendChild($paramAdd);
+								}
+							}
+							$one->setAttribute("xml:id",str_replace("XXX", strtolower($suffix[$index]), $one->getAttribute("xml:id")));
+							if ($tag == 'dataset' && $one->hasAttribute("vi"))
+							$one->setAttribute("vi",str_replace("XXX", strtolower($suffix[$index]), $one->getAttribute("vi")));
+						}
+					}
+					
+					//apply to new tags included for EPNResources
+					$all = $instrument->getElementsByTagName("alternateName");
+					foreach ($all as $one)
+					  $one->nodeValue = str_replace("XXX", strtolower($suffix[$index]), $one->nodeValue);
+					
+					$datasets = $instrument->getElementsByTagName("dataset");
+					foreach ($datasets as $dataset)
+					{
+						 $info = $dataset->getElementsByTagName("info");
+						 if ($info->length > 0)
+						 {
+						 	 $info = $info->item(0);
+						 	 
+						 	 $title = $info->getElementsByTagName("title");
+						 	 if ($title->length > 0)
+						   {
+						 	   $title = $title->item(0);
+						 	   $title->nodeValue = str_replace("XXX", strtolower($suffix[$index]), $title->nodeValue);
+						   }
+						   
+						   $desc = $info->getElementsByTagName("description");
+						 	 if ($desc->length > 0)
+						   {
+						 	   $desc = $desc->item(0);
+						 	   $desc->nodeValue = str_replace("XXX", strtolower($suffix[$index]), $desc->nodeValue);
+						   }
+						   
+						   $targets = $info->getElementsByTagName("target");
+						 	 foreach ($targets as $target)
+						 	   $target->nodeValue = str_replace("XXX", strtolower($suffix[$index]), $target->nodeValue);
+						 }
+					}
+					 
+					$missionArr[$index]->appendChild($instrument);
+				}
+			}
+			  $missionMain->appendChild($missionArr[$index]);
+		}
+
+                $amda->appendChild($missionMain);
+		$root->appendChild($amda);
+		$locbasedom->appendChild($root);
+		$status = $locbasedom->save($locbasename);
+		if (!$status) {
+			print_r("Cannot save ".$locbasename.PHP_EOL);
+			error_log("Cannot save ".$locbasename.PHP_EOL,3,log);
+		}
+		$parambasedom->appendChild($paramroot);
+		$status = $parambasedom->save($parambasename);
+		if (!$status) {
+			print_r("Cannot save ".$parambasename.PHP_EOL);
+			error_log("Cannot save ".$parambasename.PHP_EOL,3,log);
+		}
+	}
+
+	public function getDDLocalParamsFiles($locBases)
+	{
+		if (!$this->updateOnly)
+		{
+			//remove old DD_*.xml files (install mode)			 
+			foreach (glob(LocalData."DD_*.xml") as $file)
+			unlink($file);
+			//remove old local parameters files			 
+			foreach (glob(LocalDataParam."*.xml")  as $file)
+			unlink($file);			 
+                        //remove old template (install mode)                          
+                        foreach (glob(LocalDataTemplate."*.template") as $file)
+                        unlink($file);
+
+                        if (file_exists(spectraXml)) unlink(spectraXml); 
+                        //remove old targets file
+                        if (file_exists(targetsXml)) unlink(targetsXml);                     
+
+			//if (!is_dir(LocalDataTemplate)) mkdir(LocalDataTemplate);
+		}
+
+		foreach ($locBases as $locbase)
+		{
+                        $ddfilename = "DD_".$locbase->nodeValue.".xml";
+                        $ddparamfilename = $locbase->nodeValue.".xml";
+                        $ddtemplate = "DD_".$locbase->nodeValue.".template";
+                        $ddparamtemplate = $locbase->nodeValue.".template";
+
+                    //get DD_*.xml or DD_*template file
+                        $multiNames = $this->isMulti($locbase);
+
+                        if (!$this->updateOnly || !file_exists(LocalData.$ddfilename)) {
+                            if ($multiNames)
+                            system("svn export ".SVN_TEMPLATES.$ddtemplate." ".LocalDataTemplate.$ddtemplate);
+                            else
+                                system("svn export ".SVN_DDMISSIONSINFO.$ddfilename." ".LocalData.$ddfilename);
+                        }
+                        //get local params for this mission
+                        if (!$this->updateOnly || !file_exists(LocalDataParam.$ddparamfilename)) {
+                            if ($multiNames)
+                            system("svn export ".SVN_TEMPLATES.$ddparamtemplate." ".LocalDataTemplate.$ddparamtemplate);
+                            else
+                            system("svn export ".SVN_LOCALPARAMSINFO.$ddparamfilename." ".LocalDataParam.$ddparamfilename);
+                        }
+                
+                        if ($multiNames && !$this->updateOnly) $this->makeMulti($locbase, $multiNames);
+                    }
+
+               
+		//get SpectraParamList.xml
+		if (!$this->updateOnly) {                  
+                    system("svn export ".SVN_DDMISSIONSINFO."SpectraParamList.xml ".spectraXml);
+		 }
+		//get targets.xml
+		if (!$this->updateOnly) {                    
+                    system("svn export ".SVN_DDMISSIONSINFO."targets.xml ".targetsXml);
+                }
+		 
+		//merge local params for each missions in LocalParams.xml + generate LocalParamsList.xml
+		if (!$this->updateOnly)
+		{
+			$paramsDom = new DomDocument("1.0");
+			$paramsDom->formatOutput = true;
+			$paramsDom->preserveWhiteSpace = false;
+			$paramsRoot = $paramsDom->createElement('LOCAL');
+			$paramsDom->appendChild($paramsRoot);
+			 
+			$listDom = new DomDocument("1.0");
+			$listDom->formatOutput = true;
+			$listDom->preserveWhiteSpace = false;
+			$listRoot = $listDom->createElement('LOCAL');
+			$listDom->appendChild($listRoot);
+			$dom = new DomDocument("1.0");
+
+			foreach ($locBases as $locbase)
+			{
+				$ddparamfilename = $locbase->nodeValue.".xml";				
+				$dom->load(LocalDataParam.$ddparamfilename);
+				 
+				$params = $dom->getElementsByTagName('PARAM');
+				 
+				foreach ($params as $param)
+				{
+					$node = $paramsDom->importNode($param,TRUE);
+					$paramsRoot->appendChild($node);
+					 
+					$id = $param->getAttribute('xml:id');
+					$node = $listDom->createElement('PARAM',$id);
+					$listRoot->appendChild($node);
+				}
+			}
+
+			$paramsDom->save(paramXml);
+			$listDom->save(paramListXml);
+		}
+		 
+	}
+
+	/* Just copy URL to DATA/$BaseID/base.xml */
+	 
+	public function getAvailableExternalData($BaseID) {
+
+		try {
+			$extData = $this->client->getAvailableExternalData($BaseID);
+		}
+		catch  (SoapFault $exception) {
+			$msg = $exception->faultstring.PHP_EOL;
+			if (!$this->updateOnly) error_log($msg, 1, email);
+			exit($msg);
+		}
+
+		if ($extData === "NOEXTERNALDATA") return false;
+//drwxrwxr-x
+                if (!$this->updateOnly) {
+                    if (!file_exists(RemoteData.$BaseID)) mkdir(RemoteData.$BaseID, 0775, true);
+                    chgrp(RemoteData.$BaseID, APACHE_USER);                
+                    chmod(RemoteData.$BaseID, 0775);
+                }
+
+		if (!copy($extData,RemoteData.$BaseID."/base.xml"))  {
+			$msg = "problem with copying base.xml for ".$BaseID.PHP_EOL;
+			if (!$this->updateOnly) error_log($msg, 1, email);
+			exit($msg);
+		}
+    
+		return true;
+		 
+	}
+
+	function days2MonthDay($oldDate, $addDay)
+	{
+		list($year, $day, $hour, $min, $sec) = sscanf($oldDate, "%04d%03d%02d%02d%02d");
+
+                if ($addDay) $day++;
+ 
+                $newDate = date("Y/m/d",strtotime("+$day days",strtotime("$year-01-01 $hour:$min:$sec")));
+
+		return $newDate;
+	}
+
+	/* Update Local Bases Start - Stop */
+
+	public function updateStartStop($groups){
+
+		for ($k = 0; $k < $groups->length; $k++)
+		{		
+                        if (strpos($groups->item($k)->nodeValue, 'Models') !== false ) continue;
+
+                        $domName = LocalData."DD_".$groups->item($k)->nodeValue.".xml";
+			$dom = new DomDocument();
+			if (!$dom->load($domName))
+			{
+				$msg = "Cannot load file ".$domName.PHP_EOL;
+				print_r($msg);
+				if (!$this->updateOnly) error_log($msg,1,email);
+				continue;
+			}
+			 
+			$vi = $dom -> getElementsByTagName("dataset");
+			if ($vi->length > 0) for ($i = 0; $i < $vi->length; $i++)
+			{
+				 
+                                // PHP sur manunja    $name = $vi->item($i)->getAttribute('id');
+				$name = $vi->item($i)->getAttribute('xml:id');
+
+                                $hasVersion = $vi->item($i)->hasAttribute('version');
+
+				if ($vi->item($i)->getAttribute('vi') != '')
+				$name = $vi->item($i)->getAttribute('vi');
+				if ($name){
+                                    try
+                                    {
+                                        // Call AMDA WebService
+                                        $res =  $this->client->getStartStop($name);
+                                        $Time = explode("-",$res);
+                                        $msg = $name." : ".$res.PHP_EOL;
+                                                                               
+                                        // New Start  - New Stop
+                                        $newStart = $this->days2MonthDay($Time[0]);
+                                        $vi->item($i)->getElementsByTagName('dataStart')->item(0)->nodeValue = $newStart;
+                                       
+                                        $newStop = $this->days2MonthDay($Time[1]);
+                                        if ($newStart == $newStop) $newStop  = $this->days2MonthDay($Time[1], true);
+
+                                        $vi->item($i)->getElementsByTagName('dataStop')->item(0)->nodeValue = $newStop;
+                                        if ($hasVersion) {
+                                            $res =  $this->client->getVersion(str_replace(":", "_", $name));
+                                            if ($res) {
+                                                $dataSource = explode("//", $vi->item($i)->getElementsByTagName('dataSource')->item(0)->nodeValue);
+                                                $vi->item($i)->getElementsByTagName('dataSource')->item(0)->nodeValue = "$dataSource[0]//$res";
+                                            }
+                                        }
+                                        
+                                    }
+                                    catch  (SoapFault $exception)
+                                    {
+                                            $msg = $exception->faultstring." : DataSet ".$name." Start-Stop can't be updated".PHP_EOL;
+                                            print_r($msg);
+                                            if (!$this->updateOnly) error_log($msg,1,email);
+                                    }
+				}
+				else echo "Models SINP not data".PHP_EOL;
+
+			}
+			if (!$dom->save($domName)){
+				error_log("Cannot save LocalParams.xml".PHP_EOL,1,email);
+			}
+		}
+		return true;
+	}
+
+
+	/* Update Remote Bases Start - Stop */
+
+	public function updateRemoteStartStop($extBaseID){
+
+		$domName = RemoteData.$extBaseID."/base.xml";
+		$dom = new DomDocument();
+		if (!$dom->load($domName)){
+			$msg = "Cannot load file ".$domName.PHP_EOL;
+			print_r($msg);
+			if (!$this->updateOnly) error_log($msg,1,email);
+			return false;;
+		}
+		 
+		$VIs = $dom -> getElementsByTagName("dataset");
+		foreach ($VIs as $vi) {
+			$name = $vi->getAttribute('xml:id');
+			// Call AMDA WebService
+			try {
+				$res =  $this->client->getRemoteStartStop($extBaseID, $name);
+				print_r($name.' : '.$res.PHP_EOL);
+				error_log($name.' : '.$res.PHP_EOL,3,log);
+				if ($res !== "NOEXTERNALDATA" && $res !== "NODATASET")
+				$vi->setAttribute('desc', $res);
+			}
+			catch  (SoapFault $exception)
+			{
+				$msg = $exception->faultstring." : DataSet ".$name." Start-Stop can't be updated".PHP_EOL;
+				print_r($msg);
+				if (!$this->updateOnly) error_log($msg,1,email);
+			}
+		}
+		$dom->save($domName);
+		 
+		return true;
+	}
+
+	/* Check Remote Bases Connection */
+	public function checkRemoteConnection($extBaseID){
+		try {
+			$res =  $this->client->checkRemoteConnection($extBaseID);
+
+		}
+		catch  (SoapFault $exception)
+		{
+			print_r($exception->faultstring.PHP_EOL);
+			error_log($exception->faultstring.PHP_EOL,1,email);
+			return false;
+		}
+
+		return $res;
+	}
+	 
+	/* Get user info from login */
+	public function getUserInfo($login) { 
+		try {
+			$info = $this->client->getUserInfo($login,md5(DDSERVICE_PRIVATEKEY.$login.'getUserInfo')); error_log($info,1,email);
+		}
+		catch  (SoapFault $exception) {
+			return array('success' => false, 'message' => $exception->faultstring);
+		}
+
+		 
+		return $info;
+	}
+	/* Get data set  info  */
+	public function getInfo($viID, $infoID) {
+		try {
+			$info = $this->client->getInfo($viID, $infoID);
+		}
+		catch  (SoapFault $exception) {
+			return array('success' => false, 'message' => $exception->faultstring);
+	      } 
+ 
+     
+     return $info;
+   }
+
+   /* Recursively modify rights & grp */
+      public   function fsmodify($obj) {
+       chgrp($obj, APACHE_USER); 
+       chmod($obj, is_dir($obj) ? 0775 : 0664);               
+    }
+
+
+     public function fsmodifyr($dir) 
+     {
+       if($objs = glob($dir."/*")) {        
+           foreach($objs as $obj) {
+               $this->fsmodify($obj);
+               if(is_dir($obj)) $this->fsmodifyr($obj);
+           }
+       }
+       return $this->fsmodify($dir);
+    }
+
+   /* get Spice Kernels from DDBASE/INFO and copy into AMDALIB/spice */
+/*    public function updateSpiceKernels() {
+        
+        $kernels = array('general','stereo');
+
+        $spiceDir = DDHOME."AMDALIB/spice";
+
+        if (!is_dir($spiceDir)) {
+                mkdir($spiceDir, 0775, true);
+                chgrp($spiceDir, APACHE_USER);                
+                chmod($spiceDir, 0775);
+        }
+
+        chdir($spiceDir);
+
+        foreach ($kernels as $kernel) {
+            try {
+                    
+                    if (!copy($tarFileURL,$tarFile)){
+//
+                    }
+                    else {                         
+                        exec('tar -xf '.$tarFile);
+                     } 
+            }
+            catch  (SoapFault $exception) {
+                    $msg = $exception->faultstring.PHP_EOL;
+                
+                    error_log($msg,1 , email);
+            }
+        }
+    }   
+*/ 
+}
diff --git a/php/classes/AmdaObjectMgr.php b/php/classes/AmdaObjectMgr.php
new file mode 100644
index 0000000..7805a9e
--- /dev/null
+++ b/php/classes/AmdaObjectMgr.php
@@ -0,0 +1,339 @@
+<?php
+/**
+ * @class AmdaObjectMgr 
+ * @version $Id: AmdaObjectMgr.php 2891 2015-04-30 11:31:51Z elena $
+ * 
+ */
+
+ class AmdaObjectMgr {
+
+      protected $xmlName, $xp;      
+      protected $attributes, $optionalAttributes;       
+      protected $contentRootId, $objTagName;
+      protected $descFileName, $resFileName;
+      protected $id_prefix;
+      protected $contentRootTag;
+      protected $obj, $id;
+      protected $types;
+
+      public $contentDom; 
+      public $objectDom;
+
+      protected function __construct($xmlFile) {
+// content XML
+		$this->xmlName = USERWSDIR."/".$xmlFile;
+		$this->contentDom = new DomDocument("1.0");
+		$this->contentDom->preserveWhiteSpace = false;
+		$this->contentDom->formatOutput = true;
+
+		if (file_exists($this->xmlName)) {
+		    $this->contentDom -> load($this->xmlName);	 
+		    $this->xp = new domxpath($this->contentDom); 
+		}
+// object desc XML
+//TODO not used in RequestMgr
+		$this->objectDom = new DomDocument("1.0"); 
+		$this->objectDom->preserveWhiteSpace = false;
+		$this->objectDom->formatOutput = true;
+      }
+   
+     private function getNewId() {                   
+      //  Get all ID attributes
+	   $elements = $this->xp->query("//".$this->objTagName."/@xml:id");
+
+      // Now find New Valid ID  
+		if ($elements->length  > 0) {
+		      if($elements->length > 0) for ($i = 0; $i < $elements->length; $i++) {
+							     $id =  explode('_',$elements->item($i)->nodeValue);
+						             $idList[] = $id[1]; 
+			}
+
+			sort($idList);
+
+			for ($i = 0; $i < count($idList); $i++) {
+			      if ($idList[$i] > $i) { 
+				      $newID = $i;
+				      break;
+				}  
+			      $newID = $i+1;  
+			    }                 
+		  } else
+			  $newID = 0;
+	    return $newID;
+      }
+
+	protected function setId() { 
+                $id_ = $this->getNewId();
+		if ($id_ === false) return false;
+		$this->id = $this->id_prefix.$id_;
+		return $this->id;         
+	} 
+   
+	protected function objectExistsByName($name){
+                $this->obj = $this->xp->query("//".$this->objTagName."[@name='".$name."']");		 
+		if ($this->obj->length != 0) return true;
+		return false;
+	} 
+
+	protected function getObjectIdByName($name) {
+		$this->obj = $this->xp->query("//".$this->objTagName."[@name='".$name."']");
+                if ($this->obj->length == 0) return false; 
+		    $id = $this->obj->item(0)->getAttribute('xml:id');
+                if ($id) return $id;
+		return false;           
+	}
+	
+	protected function folderExistsByName($name){
+                $this->obj = $this->xp->query("//".$this->contentRootTag."/folder[@name='".$name."']");		 
+		if ($this->obj->length != 0) return true;
+		return false;
+	}  
+
+	protected function objectExistsById($id){      
+		$this->obj = $this->contentDom->getElementById($id); 
+		if ($this->obj != null) return $this->obj;
+		return false;
+        } 
+      
+         protected function createObjectResource(){}
+         protected function renameInResource(){}
+
+/*
+*  Write Object into desc file
+*/
+	protected function createObjectDescription($obj){
+	      $root = $this->objectDom->createElement($this->objTagName); 
+	      $root->setAttribute('xml:id',$this->id);
+          
+	      foreach($obj as $key => $value) {
+		if ($key != 'id' && $key != 'leaf' && $key != 'nodeType') {	
+		    $node =  $this->objectDom->createElement($key,htmlspecialchars($value)); 
+		    $root -> appendChild($node);
+		}
+	      }      
+// add Optional Attributes if they are undefined	      
+              foreach ($this->optionalAttributes as $key => $value)   
+		 if ($root->getElementsByTagName($key)->length == 0) {
+                        $node =  $this->objectDom->createElement($key,htmlspecialchars($value));  
+			$root -> appendChild($node);
+                  }
+ 
+	      $this->objectDom->appendChild($root);
+	      $this->objectDom->save($this->descFileName);  
+      }
+/*
+*    Just Save  Content XML
+*/
+     protected function saveContent() {
+	      $this->contentDom->save($this->xmlName);
+      }
+    
+/*
+* Add Object to Content XML
+*/
+      protected function addToContent($obj, $folder) {
+              
+                $folderToAdd = null;
+
+		$objList = $this->contentDom->getElementById($this->contentRootId); 		
+                $newObj = $this->contentDom->createElement($this->objTagName);
+                $newObj->setAttribute('xml:id',$this->id);
+// object to mapped array
+                $obj_arr = (array)$obj;
+                foreach ($this->attributes as $key => $value) {
+                          $newObj->setAttribute($key, $obj_arr[$key]);	 
+                }              
+	        if ($folder != null)  
+                          $folderToAdd = $this->contentDom->getElementById($folder);
+
+		if ($folderToAdd) $folderToAdd -> appendChild($newObj);
+                else $objList -> appendChild($newObj);
+		  
+
+		$this->saveContent();
+      }
+     
+/*
+* Delete Object From Content XML
+*/
+      protected function deleteFromContent($obj) {
+		$objList = $obj -> parentNode;// $this->contentDom->getElementById($this->contentRootId);
+                $objList -> removeChild($obj);
+		$this->saveContent();
+      }
+
+/*
+*         Create Folder
+*/
+      protected function createFolder($obj){
+                 if ($this -> folderExistsByName($obj->name)) return array('error' => NAME_EXISTS);
+                 $newFolder = $this->contentDom->createElement('folder');
+		 $id = $obj->name."_".$this->objTagName;
+		 $newFolder -> setAttribute('xml:id',$id); 
+                 $newFolder -> setAttribute('name',$obj->name);
+		 $objList = $this->contentDom->getElementById($obj->parent);
+                 $objList -> appendChild($newFolder);
+		 $this -> saveContent();
+		return array('id' => $id);          
+      }
+/*
+*         Get Folder of the object 
+*/
+      protected function getObjectFolder($id) {
+
+                if (!($obj = $this->objectExistsById($id))) return "NO_SUCH_ID";
+		if ($obj->parentNode->tagName == 'folder') return $obj->parentNode->getAttribute('xml:id');
+		return null;
+
+      }
+         
+	protected function setAlias($chain) {
+
+		$aliasMgr = new AliasMgr();		 
+		$listeAlias = $aliasMgr->getList();
+
+		foreach($listeAlias as $alias) {
+			$chain = $aliasMgr->substrParamAlias($chain, $alias->getAttribute("xml:id"),$alias->getAttribute("name"));
+		}
+        	
+		return $chain;
+	}	
+
+	protected function resetAlias($chain) {
+
+		$aliasMgr = new AliasMgr();		 
+		$listeAlias = $aliasMgr->getList();
+
+		foreach($listeAlias as $alias) {
+			$chain = $aliasMgr->substrAliasParam($chain, $alias->getAttribute("xml:id"),$alias->getAttribute("name"));
+		}
+        	
+		return $chain;
+	}	
+	
+	protected function createDom() {
+		 
+		$rootElement = $this->contentDom->createElement('ws');
+                foreach ($this->types as $type) {
+		    $contentId = $type.'-treeRootNode';
+		    $contentTag = $type.'List';
+		    $typeElement = $this->contentDom->createElement($contentTag);
+		    $typeElement->setAttribute('xml:id', $contentId);
+		    $rootElement->appendChild($typeElement);
+		}
+                $this->contentDom->appendChild($rootElement);
+		$this->contentDom->save($this->xmlName);
+        }
+
+  
+/*****************************************************************
+*                           PUBLIC FUNCTIONS
+*****************************************************************/  
+	
+/*
+*        Create Parameter[TT...]/Folder
+*        create object itself, add it to content DOM
+*/   
+      function createObject($p, $folder){
+
+	      if ($p -> leaf) return $this->createParameter($p, $folder);
+	//      else return $this->createFolder($p);
+//TODO check if this is possible?
+	      else return array('error' => 'createFolder should be called from RENAME');
+
+      }
+
+/*
+*          Rename Parameter[TT...]/Folder
+*/
+      function renameObject($p){
+
+		if (!($objToRename = $this -> objectExistsById($p->id))) {
+// NO SUCH ID:  leaf -> error;
+			   if ($p->leaf) return array('error' => NO_SUCH_ID);
+// NO SUCH ID:  folder  -> create  
+			    return  $this -> createFolder($p); 			    
+                 }
+// object was just DD in the tree : move tag in xml
+		if ($p -> name == $p -> old_name) {
+		    if (!($parentNode = $this->contentDom->getElementById($p -> parent))) return array('error' => NO_SUCH_PARENT_ID);   
+		    $parentNode -> appendChild($objToRename);  
+		    $this->saveContent();
+		    return array('id' => $p->id);
+		 }
+
+//		if ($this -> objectExistsByName($p->name, $this->objTagName)) return array('error' => NAME_EXISTS);
+//TODO  CHECK: With some PHP versions setAttribute ADD attribute
+		if ($objToRename->hasAttribute('name')) $objToRename->removeAttribute('name');	
+                $objToRename->setAttribute('name',$p->name);
+		if (!$p->leaf) {		 
+		    $objToRename->removeAttribute('xml:id');
+		    $objToRename->setAttribute('xml:id', $p->name.'_'.$this->objTagName);
+		  }
+		else  
+                    $this -> renameInResource($p->name, $p->id); 
+
+		 $this->saveContent();
+		 return array('id' => $p->id);		
+	}
+   
+/*
+*          Delete Parameter[TT...]/Folder
+*    	   Delete object itself, delete from contentDOM, mark as undefined in depending objects		
+*/
+       function deleteObject($p){
+
+		  if ($p->leaf) {       
+//   if Parameter[TT...] - delete resources first
+                         $isDeleted = $this->deleteParameter($p->id);
+	 		 if (!($objToDelete = $this -> objectExistsById($p->id))) return array('error' => NO_SUCH_ID);		                         
+                  }
+		  else {
+			if (!($objToDelete = $this -> objectExistsById($p->id))) return array('error' => NO_SUCH_ID); 
+			$folderToDelete = $objToDelete->getElementsByTagName($this->objTagName);
+// delete all parameters[TT..] in folder(s)
+			foreach ($folderToDelete as $obj) {
+			    $id = $obj->getAttribute('xml:id');
+			    $this->deleteParameter($id);
+                        }
+		  }
+		  $this -> deleteFromContent($objToDelete);
+
+		if ($isDeleted) return array('id' => $p->id, 'maskDeleted' => true); 
+		else return array('id' => $p->id);
+      }
+
+/*
+*         Modify Parameter[TT...]/Folder
+*/ 
+     
+      function modifyObject($p){ 
+            if ($this->renameOnly($p)) { 
+			$p->leaf = 1;
+                        return $this->renameObject($p);
+	      } 
+	    $folder = $this->getObjectFolder($p->id);
+            $this->deleteObject($p);	    	     
+	    return 
+		    $this->createObject($p, $folder);
+         } 
+
+      
+      function validNameObject($p){
+      	if (!isset($p->name) || ($p->name == ""))
+      		return array('valid' => false, 'error' => 'Name is required');
+      	if ($p->leaf)
+      		$alreadyExist = $this -> objectExistsByName($p->name, $this->objTagName);
+      	else
+      		$alreadyExist = $this -> folderExistsByName($p->name);
+      	if ($alreadyExist)
+      		return array('valid' => false, 'error' => 'This name already exists in this subtree!');
+      	return array('valid' => true);
+      }
+         
+      function getObject($id){}
+
+      function execute($id){}
+ 
+}
+?>
diff --git a/php/classes/AmdaStats.php b/php/classes/AmdaStats.php
new file mode 100644
index 0000000..7c660e0
--- /dev/null
+++ b/php/classes/AmdaStats.php
@@ -0,0 +1,307 @@
+<?php
+/**
+ * @class AmdaStats
+ * @version  $Id: AmdaStats.php 2716 2015-01-19 13:22:05Z elena $
+ * 
+ */ 
+ 
+class AmdaStats {
+  
+  public $statXml;
+  public $tasks = array('mining', 'print', 'plot');
+  public $tasksAdd = array('ttoper', 'samp', 'upload', 'create', 'images');
+  public $usersToExclude = array( 'bouchemit', 'impex');
+  public $success = true;
+  public $paramInfo;
+
+  public function __construct($user) {
+     
+        $this->statXml = new DomDocument('1.0','UTF-8');
+        $this->statXml->preserveWhiteSpace = false;
+        $this->statXml->formatOutput = true;
+    
+        if (!defined("StatsXml")){
+         if (!$user){  
+            // general - to read
+                define('StatsXml',DATAPATH.'Statistics/Stats.xml');
+                if (file_exists(StatsXml)) unlink(StatsXml);
+            }
+           else {
+            // individual - to write
+                define("StatsXml", USERPATH."/".$user."/Stats.xml"); 
+            }
+        }
+
+        if (!file_exists(StatsXml)){
+            if (!is_dir(DATAPATH.'Statistics')) {
+                if (!mkdir(DATAPATH.'Statistics', 0775)) 
+                                                    return -1;
+                if (!chgrp(DATAPATH.'Statistics', APACHE_USER))
+                                                    return -1;                 
+            }
+
+            $status = $this->generateXml(); 
+            if (!$status) {
+               error_log('Cannot create Stats.xml: Fatal Error '.$user,1,email); 
+               $this->success = false;
+            }
+       }
+       else {
+         $status = $this->statXml->load(StatsXml); 
+         if (!$status) {
+                $status = $this->generateXml(); 
+                $msg = $status ? 'Cannot load Stats.xml. New Stats.xml was created' : 
+                       'Cannot load Stats.xml. Cannot create Stats.xml: Fatal Error ';
+                error_log($msg.$user,1,email);
+                if (!$status) $this->success = false;
+            }
+        }
+         
+  }
+
+/*
+*  Merge individual User Stats.xml into one generique Stats.xml
+*/
+  public function mergeXml() {
+            
+     $tags = array_merge($this->tasks, $this->tasksAdd);
+   
+     $doc2 = new DomDocument("1.0");
+ 
+     $users=glob(USERPATH."*");
+
+     foreach ($users as $user) {        
+        $name2 = $user."/Stats.xml";
+
+        if (!file_Exists($name2)) continue;
+
+        $doc2->load($name2);
+        
+        foreach ($tags as $tag){    
+            $tag1 = $this->statXml->getElementsByTagName($tag)->item(0);
+            $tag2 = $doc2->getElementsByTagName($tag)->item(0);
+            $items2 = $tag2->getElementsByTagName("item");
+            if ($items2->length > 0) {
+            foreach ($items2 as $item2) {
+                    $item1 = $this->statXml->importNode($item2, true);
+                    $tag1->appendChild($item1);
+                }
+            }          
+        }
+    }
+    
+    return  $this->statXml->save(StatsXml);
+
+}
+
+  private function generateXml() {
+
+    $rootElement = $this->statXml->createElement('stats');
+
+    $allTasks = array_merge($this->tasks, $this->tasksAdd);
+     
+     foreach ($allTasks as $task) {            
+        $element = $this->statXml->createElement("$task");        
+        $rootElement->appendChild($element);        
+    }
+
+    $this->statXml->appendChild($rootElement);
+   
+    return $this->statXml->save(StatsXml);
+  }
+
+  public function getInfo($var) {
+
+     $info = $this->paramInfo->GetParamInfo($var);
+     $id = $info['ddinfos']['dataset']['id'];
+
+     if (!$id) {
+        $id = $info['codeinfos']['vi'];
+        // check if from Remote base
+        if (!$id) {
+            $info = $this->paramInfo->getRemoteParamInfo($var);
+            if (!$info)
+                    return 'undefined';
+            else 
+                return  $info['base'].':'.$info['vi'];             
+        }
+        else 
+           return $id;       
+    }
+    else  
+        return $id;
+    
+ }
+
+  public function addTask($task, $user, $vars){
+ 
+   if (!in_array($user, $this->usersToExclude)) {
+
+        $taskElement = $this->statXml->getElementsByTagName("$task")->item(0);
+        if (is_object($taskElement)) {
+            $newTask = $this->statXml->createElement('item');
+            $newTask->setAttribute('date', date('Y-m-d'));
+            $newTask->setAttribute('user', $user);
+    
+            if ($vars) { 
+                $this->paramInfo = new ParamsInfoMgr();
+
+                $ID = array();
+
+                foreach ($vars as $var) {
+                    if ((substr($var, 0, 7) == 'impex__') || (substr($var, 0, 13) == 'spase___IMPEX')){
+                        $ID[] = 'impex';
+                    }
+                    elseif (substr($var, 0, 4) == 'wsd_') {
+                        $ID[] = 'uploadedData';
+                    } 
+                    // if derived parameter parse it                                                               
+                    elseif (substr($var, 0, 3) == 'ws_') {
+
+                        if (!$parser) $parser = new Parser(); 
+                        $realVar = $parser->replaceAll($var);         
+                        $varArr = $parser->getVars($realVar);
+                        foreach ($varArr as $var) {
+                           $ID[] = $this->getInfo($var);
+                        }
+                    }
+                    else {
+                        $ID[] = $this->getInfo($var);
+                    }                    
+                }
+                    
+                $ID = array_unique($ID);
+
+                    foreach ($ID as $id) {
+                        $datasetElement = $this->statXml->createElement('dataset', $id);
+                        $newTask->appendChild($datasetElement);  
+                    }         
+                }
+            
+            $taskElement->appendChild($newTask);
+            $this->statXml->save(StatsXml);  
+        }
+        else 
+            error_log('Check Stats.xml - no task element '.$task, 1, email);
+      }     
+  }
+ 
+/*
+*     Show Statistics
+*/
+  public function getModulesStat($start, $stop){
+    
+    $taskArray = array();
+
+    foreach (array_merge($this->tasks,$this->tasksAdd) as $task) {
+        $theTask = $this->statXml->getElementsByTagName($task)->item(0);
+        $items = $theTask->getElementsByTagName('item');
+        $hints = $items->length;
+
+        $startStop = $this->getStartStop($items, $start, $stop);
+
+        $taskArray[] = array('task' => $task, 'number' => $hints, 
+                             'start' => $startStop[0], 'stop' => $startStop[1]);
+    }
+    
+    $objToReturn = array('stats' => $taskArray);
+    return $objToReturn;
+  }
+
+/*
+*     Show Statistics
+*/
+  public function getDataStat($index, $start, $stop){
+
+    $VIarray = array();
+    $TOTALarray = array();
+    $STARTarray = array();
+    $STOParray = array();
+
+    foreach ($this->tasks as $task) {
+
+        $theTask = $this->statXml->getElementsByTagName($task)->item(0);
+        $items = $theTask->getElementsByTagName('item');
+        $TASKarray = array();
+       
+        foreach ($items as $item){
+
+            $VIs = $item->getElementsByTagName('dataset');
+            $time = strtotime($item->getAttribute('date'));
+
+            foreach ($VIs as $VI) {
+                $id = $VI->nodeValue;
+                if ($id) {
+                    if ($TASKarray[$id]) {
+                        $TASKarray[$id]++;
+                        $TOTALarray[$id]++;
+                        if ($STARTarray[$id] > $time) 
+                                $STARTarray[$id] = $time;
+                        if ($STOParray[$id] < $time) 
+                                $STOParray[$id] = $time;
+                    }
+                    else {
+                        if (!$TOTALarray[$id]) { 
+                            $STARTarray[$id] = $time;
+                            $STOParray[$id] = $time;
+                            $TOTALarray[$id] = 1;
+                        } 
+                        else {
+                            if ($STARTarray[$id] > $time) 
+                                        $STARTarray[$id] = $time;
+                            if ($STOParray[$id] < $time) 
+                                        $STOParray[$id] = $time;
+                            $TOTALarray[$id]++;
+                        }
+                        $TASKarray[$id] = 1;
+                    }            
+                }                     
+            }
+        }
+        $VIarray[$task] = $TASKarray;
+    }
+   
+   $GENERALarray = array();
+   arsort($TOTALarray);
+    
+   foreach ($TOTALarray as $key => $value) {
+        $viStart = $STARTarray[$key];
+        $viStop = $STOParray[$key];
+        $plot = $VIarray['plot'][$key];
+        $mining = $VIarray['mining'][$key];
+        $print = $VIarray['print'][$key];
+        if ($key != 'undefined') 
+        {
+            $GENERALarray[] = array('id' => $key, 'number' => $value,
+                                'plot' => $plot, 'mining' => $mining, 
+                                'print' => $print, 'start' => $viStart, 
+                                'stop' => $viStop);
+        }
+   } 
+ 
+   $Nmax = count($GENERALarray);
+ 
+   $length = $index + 20 > $Nmax ? $Nmax - $index + 1 : 20;
+   $objToReturn = array('stats' => array_reverse(array_slice($GENERALarray, $index, $length)));
+ //  $objToReturn = array('stats' => $GENERALarray);
+   return $objToReturn;
+  }
+
+   public function getStartStop($items, $start, $stop){
+
+    if (!$start) $start = 0;
+    if (!$stop) $stop = 100000000000;
+    $date = array();
+    
+    foreach ($items as $item) {
+        $newDate = strtotime($item->getAttribute('date'));
+ 
+        if (($newDate > $start) && ($newDate < $stop))
+                    $date[] =  $newDate;        
+    }
+
+    return array(min($date), max($date));
+   }
+ 
+}
+?>
diff --git a/php/classes/BaseManager.php b/php/classes/BaseManager.php
new file mode 100755
index 0000000..c6c901e
--- /dev/null
+++ b/php/classes/BaseManager.php
@@ -0,0 +1,533 @@
+<?php
+/**  
+*     @class BaseManager
+*     @brief Management of user uploaded data files in data base
+*     @author Elena
+*     @version $Id: BaseManager.php 2914 2015-05-19 10:31:38Z elena $
+*    
+*/
+ 
+class BaseManager {
+
+    public $xp, $xslt;
+    public $baseDom; 
+    private $fileDomName, $baseDomName;
+
+    function __construct() 
+    {  
+        if (getenv('USER_DATA_PATH') != "")
+            $this->baseDomName = getenv('USER_DATA_PATH')."base.xml";
+        else 
+            $this->baseDomName = USERDATADIR."base.xml";
+
+        $this->fileDomName = USERWSDIR."Files.xml";
+        $this->baseDom =  new DomDocument("1.0");
+
+        if (file_exists($this->baseDomName)) 
+                $this->baseDom->load($this->baseDomName);
+        else {
+            $baseElement = $this->baseDom->createElement("base");
+            $this->baseDom->appendChild($baseElement);
+        } 
+  
+        $this->xp = new domxpath($this->baseDom);    
+        $this->xslt = new XSLTProcessor();
+
+        $xsl = new DomDocument("1.0");
+        $xsl->load(XMLPATH."base.xsl");
+
+        $this->xslt->importStylesheet($xsl);
+      }
+
+/*
+*   Provide an unique ID
+*/
+    public function getNewId() 
+    {
+        //  Get all ID attributes
+        $vis = $this->xp->query("//vi/@xml:id");
+ 
+        if ($vis->length > 0) {
+                $idList = array();
+                if($vis->length > 0) for ($i = 0; $i < $vis->length; $i++) 
+                                                $idList[] = $vis->item($i)->nodeValue;                 
+                sort($idList);
+
+                for ($i = 0; $i < count($idList); $i++) {
+                    if ($idList[$i] > $i) { 
+                                $newID = $i;
+                                break;
+                        }  
+                        $newID = $i+1;  
+                    }                 
+            } else
+                $newID = 0; 
+
+       return $newID;
+    }
+    
+    public function fileMask($fileName, $maskName) 
+    {
+        $mask = explode("*", $maskName);
+         
+        for ($i = 0; $i < count($mask); $i++)  
+          if ($mask[$i] != null)
+             if (strpos($fileName, $mask[$i]) === false) return false;  
+         return true;
+     }
+
+/*
+*    new file is uploaded -> check if it should be added into MASK 
+*/
+    public function addFile($fileName) 
+    {
+        $fileDom = new DomDocument("1.0");
+        $fileDom->load($this->fileDomName);       
+        $file = $fileDom->getElementById($fileName); 
+        $lastMask = null; 
+        
+        $masks = $this->baseDom->getElementsByTagName("mask");
+
+        if ($masks->length > 0) 
+        {
+            foreach ($masks as $mask)                       
+                if ($this->fileMask($fileName, $mask->nodeValue)) 
+                {
+                    $lastMask = $mask->nodeValue;
+
+                    $newFile = $this->baseDom->createElement("file");              
+                    $newFile->setAttribute('name', $fileName);			
+                    $start = $file->getAttribute('start');
+                    $stop = $file->getAttribute('stop');
+                    $newFile->setAttribute('start', $start);
+                    $newFile->setAttribute('stop', $stop);
+
+                    $vi = $mask->parentNode;
+                    $vi->appendChild($newFile);
+
+                    $vi_start = $vi->getAttribute('start');
+                    if ($vi_start > $start) $vi->setAttribute('start',$start);
+                    $vi_stop = $vi->getAttribute('stop');
+                    if ($vi_stop < $stop) $vi->setAttribute('stop',$stop);                          
+                } 
+        } 
+
+        $this->xslt->transformToDoc($this->baseDom)->save($this->baseDomName);
+                              
+        return $lastMask;           
+      }
+
+/*
+*       special add method for "simulation" files
+*/      
+    public function addWsFile($fileName, $start, $stop) 
+    {
+        // add file description to base.xml file
+        $masks = $this->baseDom->getElementsByTagName("mask");
+
+        if ($masks->length > 0) 
+        {
+            foreach ($masks as $mask)                       
+                if ($this->fileMask($fileName, $mask->nodeValue)) 
+                {
+                    $lastMask = $mask->nodeValue;
+                    $newFile = $this->baseDom->createElement("file");              
+                    $newFile->setAttribute('name', $fileName);			
+                    $newFile->setAttribute('start', $start);
+                    $newFile->setAttribute('stop', $stop);
+                    $vi = $mask->parentNode;
+                    $vi->appendChild($newFile);
+
+                    $vi_start = $vi->getAttribute('start');
+                    if ($vi_start > $start) $vi->setAttribute('start',$start);
+                    $vi_stop = $vi->getAttribute('stop');
+                    if ($vi_stop < $stop) $vi->setAttribute('stop',$stop);                          
+                } 
+        }
+ 
+        $this->xslt->transformToDoc($this->baseDom)->save($this->baseDomName);
+                              
+        return $lastMask;           
+    }
+
+/*
+*        File was deleted
+*/
+    public function delFile($fileObj) 
+    {                            
+            $start = $fileObj->getAttribute($start);
+            $stop = $fileObj->getAttribute($stop);
+            $vi =  $fileObj->parentNode;                                                                                   
+            $vi->removeChild($fileObj);
+            $mask = $vi->getElementsByTagName("mask")->item(0)->nodeValue;
+            $length = $vi->getElementsByTagName("file")->length;
+
+            if ($length == 0) 
+            {               
+                $this->baseDom->getElementsByTagName("base")->item(0)->removeChild($vi);
+            }  
+            else  
+            {                           
+                 $vi->setAttribute('start', $this->updateStart($vi));            
+                 $vi->setAttribute('stop',$this->updateStop($vi)); 
+             } 
+
+            $this->baseDom->save($this->baseDomName); 
+ 
+          return array('mask' => $mask, 'length' => $length);
+      }
+
+/*
+*      Delete simu VI and simu Download Files
+*/
+    public function delSimuFiles($data)
+    {
+        if (file_exists(USERWSDIR.'WsParams.xml')) 
+        {
+            $simuVIs = $this->xp->query("//vi[@moreData = 'true']"); 
+            $dom = new DomDocument("1.0");
+            $dom->load(USERWSDIR.'WsParams.xml'); 
+            $xp = new domxpath($dom); 
+	    $dataList = $data.'List';
+            $mysimudataList = $dom->getElementsByTagName($dataList);
+            foreach ($simuVIs as $simuVI)
+                {
+                    $files = $simuVI->getElementsByTagName('file');
+                    foreach ($files as $file) 
+                    {	 
+                        $fileName = $file->getAttribute('name');
+                        if (file_exists(USERDATADIR.$fileName)) unlink(USERDATADIR.$fileName);
+                    } 
+                    $vi =  $simuVI->getAttribute("xml:id");
+		    $mask = $simuVI->getElementsByTagName('mask')->item(0)->nodeValue; 
+		    if ((strpos($mask, 'CLWEB_') !== false && $data == "mywsrdata") || (strpos($mask, 'CLWEB_') === false && $data == "mysimudata")) { 
+		    $mysimdata = $xp->query("//".$data."[@mask='".$mask."']/@*[namespace-uri()='http://www.w3.org/XML/1998/namespace' and local-name()='id']");
+		    $sumuParamName = $mysimdata->item(0)->nodeValue;
+                    $base = $simuVI->parentNode;   
+                    $base->removeChild($simuVI);
+ 
+                    if (file_exists(USERWSDIR.$sumuParamName.'.xml'))
+                                    unlink(USERWSDIR.$sumuParamName.'.xml');
+		    }
+                }
+
+                $mysimudata = $xp->query("//".$data.""); 
+
+                if ($mysimudata->length > 0)
+                {
+                    foreach($mysimudata as $simudata)
+                                    $mysimudataList->item(0)->removeChild($simudata);
+                } 
+                
+                $dom->save(USERWSDIR.'WsParams.xml');
+                $this->baseDom->save($this->baseDomName);
+        }
+
+      return;
+     }
+
+/*
+*
+*/      
+    public function updateStart($vi) 
+    {        
+        $files = $vi->getElementsByTagName("file");
+        if ($files->length == 0) return "EMPTY";
+
+        $starts = Array();
+        foreach ($files as $file) 
+                $starts[] =  $file->getAttribute("start");
+
+        return  min($starts);
+     }
+
+/*
+*
+*/   
+    public function updateStop($vi) 
+    {    
+        $files = $vi->getElementsByTagName("file");
+        if ($files->length == 0) return "EMPTY";
+
+        $stops = Array();
+        foreach ($files as $file) 
+                $stops[] =  $file->getAttribute("stop");
+
+        return  max($stops);
+     }
+     
+/*
+*     New mask was added  
+*/
+    public function appendFiles($newVi, $fileMask) 
+    {
+        $fileDom = new DomDocument("1.0");
+        $fileDom->load($this->fileDomName);
+        $files = $fileDom->getElementsByTagName("file");
+
+        if ($files->length > 0) 
+        {
+            $starts = Array();
+            $stops = Array();
+
+            foreach ($files as $file) 
+            {
+                $fileName = $file->getAttribute("name"); 
+                if ($this->fileMask($fileName, $fileMask)) 
+                {
+                    $newFile = $this->baseDom->createElement("file");              
+                    $newFile->setAttribute('name', $fileName);
+                    $start = $file->getAttribute("start");
+                    $stop = $file->getAttribute("stop");
+                    $newFile->setAttribute('start', $start);
+                    $newFile->setAttribute('stop', $stop);
+                    $newVi->appendChild($newFile);
+                    $starts[] = $start;
+                    $stops[] = $stop;
+                } 
+            } 
+
+            $newVi->setAttribute("start", min($starts));
+            $newVi->setAttribute("stop", max($stops));
+        }                          
+      }
+
+/*
+*       
+*/
+    public function getOldMask($fileMask) 
+    {               
+        $masks = $this->baseDom->getElementsByTagName("mask");
+        
+        if ($masks->length > 0) 
+        {
+            foreach ($masks as $mask) {
+                // mask exists  
+                if (strcmp($mask->nodeValue, $fileMask) == 0) return null;                            
+                
+                if (strncmp($mask->nodeValue, $fileMask, 5) == 0) 
+                {                               
+                    // less common
+                    if (strlen($mask->nodeValue) <= strlen($fileMask)) return null;
+                    // more common - delete old, create new                                                               
+                    return $mask->nodeValue;                                                                                                                       
+                } 
+            }
+        }
+        return null;
+    }
+
+/*
+*       
+*/
+     public function addVI($fileMask) 
+    {                                                             
+        $newVi = $this->baseDom->createElement("vi");
+        $newId = $this->getNewId();
+        $newVi->setAttribute('xml:id', $newId);
+        $newVi->appendChild($this->baseDom->createElement("mask",$fileMask)); 
+        $this->appendFiles($newVi, $fileMask);
+        
+        $this->baseDom->getElementsByTagName("base")->item(0)->appendChild($newVi); 
+        /* SORT files by Start Time */         
+        $this->xslt->transformToDoc($this->baseDom)->save($this->baseDomName); 
+
+        return $newId;            
+      }
+
+/*
+*       
+*/      
+    public function addSimuVI($p)
+    {
+            $newVi = $this->baseDom->createElement("vi");
+            $newId = $this->getNewId();
+            $newVi->setAttribute('xml:id', $newId);
+            $newVi->appendChild($this->baseDom->createElement("mask",$p->mask)); 
+            $newVi->appendChild($this->baseDom->createElement("param",$p->name)); 
+            $newVi->setAttribute("start", $p->start);
+            $newVi->setAttribute("stop", $p->stop);
+            $newVi->setAttribute("moreData", "true");
+            
+//               $this->appendFiles($newVi, $fileMask);
+            $newFile = $this->baseDom->createElement("file");
+            $newFile->setAttribute('name', $p->file);
+            $newFile->setAttribute('start', $p->start);
+            $newFile->setAttribute('stop', $p->stop);
+            $this->baseDom->getElementsByTagName("base")->item(0)->appendChild($newVi);
+
+            if (strpos($p->mask,'___CCMC_')=== FALSE){
+                $arguments = $this->baseDom->createElement("arguments");
+                
+                foreach ($p->args[$p->name] AS $key => $val) {
+                  $arguments->appendChild($this->baseDom->createElement($key,$val)); 
+                }
+                $newVi->appendChild($arguments);
+              } 
+             
+            $newVi->appendChild($newFile);
+//          $this->baseDom->getElementsByTagName("base")->item(0)->appendChild($newFile); 
+            /* SORT files by Start Time */         
+            $this->xslt->transformToDoc($this->baseDom)->save($this->baseDomName); 
+        return $newId;            
+      }
+
+    public function delVI($fileMask) 
+    {          
+           $vi = $this->xp->query("//vi[mask='".$fileMask."']");
+
+           if ($vi->length > 0) 
+                    $vi->item(0)->parentNode->removeChild($vi->item(0));
+
+           $this->baseDom->save($this->baseDomName); 
+    } 
+
+    public function getVI($fileMask) 
+    {
+        $vi = $this->xp->query("//vi[mask='".$fileMask."']");
+
+        if ($vi->length > 0) 
+                    return $vi->item(0)->getAttribute("xml:id");
+
+        return -1;
+     }
+     
+    public function existsSimuMask($start,$stop,$mask)
+    {
+        $vi = $this->xp->query("//vi[mask='".$mask."' and @start<=".$start." and @stop>=".$stop."]");
+
+        if ($vi->length > 0) 
+                    return true;
+        else 
+                    return false;
+    }
+    
+    public function existsWsrMask($start,$stop,$mask)
+    {
+        $vi = $this->xp->query("//vi[mask='".$mask."' and @start<=".$start." and @stop>=".$stop."]");
+
+        if ($vi->length > 0) 
+                    return true;
+        else 
+                    return false;
+    }
+
+    public function intervalsToGet($requestStart, $requestStop, $mask)
+    {       
+        $vis = $this->xp->query("//vi[mask='".$mask."']");
+        if ($vis->length == 0)  return false;
+
+        $vi = $vis->item(0);
+        $files = $vi->getElementsByTagName('file'); 
+
+        $start = array();
+        $stop = array();
+
+        $globalStart = (int)$vi->getAttribute("start");
+        $globalStop = (int)$vi->getAttribute("stop");
+
+        if ($requestStart > $globalStop  ||  $requestStop < $globalStart)  
+        {  
+            $start[] = $requestStart; 
+            $stop[]  = $requestStop;  
+        }                
+        else
+        { 
+             if ($requestStart < $globalStart - DELTA ) {
+                      $start[] = $requestStart;
+                      $stop[] = $globalStart;
+            }
+
+            if ($requestStop > $globalStop + DELTA ) {
+                      $start[] = $globalStop;
+                      $stop[] = $requestStop;
+            } 
+   
+            for ($i = 0; $i < $files->length; $i++)      
+                if ((int)$files->item($i)->getAttribute("stop") >= $requestStart) break;
+  
+            for ($j = $i; $j < $files->length; $j++)  
+                if ((int)$files->item($j)->getAttribute("start") >= $requestStop) break;
+   
+            $d = $j+1 < $files->length -1  ? $j+1 : $files->length - 1;
+ 
+            for ($k = $i; $k < $d ; $k++) {
+                $stopT = (int)$files->item($k)->getAttribute("stop");
+                $startT = (int)$files->item($k+1)->getAttribute("start");
+                if ($startT - $stopT > DELTA) {         
+                    $start[] = $stopT;
+                    $stop[] = $startT;         
+                }
+            }
+        }
+                       
+      return array('start' => $start, 'stop' => $stop);
+    }
+
+     public function getStartStopParam ($start,$stop,$mask) {
+        $vi = $this->xp->query("//vi[mask='".$mask."']");
+        $isData = $this->xp->query("//vi[mask='".$mask."' and @start<=".$start." and @stop>=".$stop."]");
+        
+        if ($isData->length > 0) 
+		    return true;
+        else {
+        if ($vi->length > 0) {
+	    $viStart = $vi->item(0)->getAttribute('start');
+	    $viStop  = $vi->item(0)->getAttribute('stop');
+	    if ($start < $viStart){
+	      if (($viStart - $start) > 60){
+		  $newStart = $start; 
+		  $newStop  = $viStart;
+		}
+	    }
+	    elseif ($start >= $viStop){
+	      $newStart = $start; 
+	      $newStop  = $stop;
+	    }
+	    elseif (($start = $viStart) && ($stop > $viStop)){
+	      $newStart = $viStop;
+	      $newStop  = $stop;
+	    }
+	    else {
+	      if ($stop <= $viStart){
+		$newStart = $start; 
+		$newStop  = $stop;
+		}
+	      elseif ($stop > $viStop){
+		$newStart = $viStop; 
+		$newStop  = $stop;
+	      }
+	    }
+	  }
+	   return  array('start' => $newStart, 'stop' => $newStop);
+	}
+                   
+      }
+    
+    public function getStartStop($id) 
+    {  
+        $vi = $this->baseDom->getElementById($id);
+        // Can't read newly created ID attribute why??? Need to reload DOM XML	    
+        if ($vi == null) 
+        {
+            $this->baseDom->load($this->baseDomName);
+            $vi = $this->baseDom->getElementById($id);
+        }
+            
+        if ($vi == null) 
+                        return "nodata";
+
+        $start = $vi->getAttribute("start"); 
+        $stop = $vi->getAttribute("stop");
+
+        return date("Y-m-d", $start)."T".date("H:i", $start)."-".date("Y-m-d", $stop)."T".date("H:i", $stop);
+    } 
+ 
+
+    public function getViDesc($vi)
+    { 
+        return $this->getStartStop($vi);   
+    }
+     
+}
+?>
diff --git a/php/classes/BestRunsMgr.php b/php/classes/BestRunsMgr.php
new file mode 100644
index 0000000..b409ec7
--- /dev/null
+++ b/php/classes/BestRunsMgr.php
@@ -0,0 +1,217 @@
+<?php
+/**
+ * @class BestRunsMgr
+ * @version $Id: BestRunsMgr.php $
+ * 
+ */
+
+
+  class BestRunsMgr {
+  
+  protected $runs;
+  protected $domRemoteData, $domTemplate;
+  protected $xpRemoteData, $xpTemplate;
+  protected $runsTemplate;
+  protected $json;
+  protected $factors;
+ 
+
+      function __construct() {	
+       $this->factors = array("SW_Density"=>1e6,
+			     "SW_Utot"=>1e3,
+			      "SW_Temperature"=>1e3,
+			      "SW_Btot"=>1e-9,
+			      "SW_Bx"=>1e-9,
+			      "SW_By"=>1e-9,
+			      "SW_Bz"=>1e-9
+			    );
+  
+  }
+      
+/*****************************************************************
+*                           PUBLIC FUNCTIONS
+*****************************************************************/
+
+      public function init() {
+	
+	
+    // DOM of SIMU RUNs chablon
+      $this->domTemplate = new DomDocument();
+      if (!$this->domTemplate->load( tmplGUMICS )) 
+           return false;
+      $this->xpTemplate = new domxpath($this->domTemplate); 
+      $this->runTemplate = $this->xpTemplate->query("//runID")->item(0);
+      
+    // DOM of user RemoteParams
+      $this->domRemoteData = new DomDocument();
+      if (!$this->domRemoteData->load( USERWSDIR.'RemoteParams.xml' )) 
+            return false;
+      $this->xpRemoteData = new domxpath($this->domRemoteData); 
+      
+      $this->json = file_get_contents(USERWSDIR.'runs.json');
+ 
+      }
+
+      // $obj ={"Object":"Earth","RunCount":"2",
+// "SW_Density_value":"10","SW_Density_weight":"1","SW_Density_scale":"7","SW_Temperature_value":"100", ....}
+        public function getRun($obj)
+        {
+
+	  $params = $this->makeParams($obj);
+	    try { 
+		$client = new SoapClient(wsdl_FMI,
+			    array(
+				  'wsdl_cache' => 0,
+				  'trace' => 1,
+				  'exceptions' => 0,
+				  'soap_version'=>SOAP_1_2
+			    ));
+            }
+	    catch  (SoapFault $exception) {
+		      error_log("Problem with WSDL".PHP_EOL.$exception->getMessage().PHP_EOL.$exception->getTraceAsString().PHP_EOL."File =  ".$exception->getFile(),1,email);
+		      $res =  array('success' => false,'error' => $exception->getMessage());
+	      }
+            try {
+		$data_json = $client->getMostRelevantRun($params);
+		$result = json_decode($data_json,true);
+
+		if (count($result["runs"]) > 0) {
+ 		    $result = $this->changeJson($result);
+		    $res =  array('success' => true,'runs' => $result["runs"]);
+		    file_put_contents(USERWSDIR.'runs.json',json_encode($res));
+		    
+		}
+	      }
+	      catch (Exception $e) {
+		error_log ($e->getMessage(),1,email);
+		$res =  array('success' => false,'error' => $e->getMessage());
+	      }
+	      
+        return  $res; 
+        }
+        
+
+      
+      public function addRuns($obj){
+      
+	if (!$obj) return false;
+	else {
+	  $this->runsId = (array)$obj;
+	  $object = json_decode($this->json,true);
+	  $simuRegion =  $this->domRemoteData->getElementById('FMI_GUMICS_Earth_Magnetosphere');
+	  
+	  foreach ( $this->runsId as $runId){
+	    if ($this->domRemoteData->getElementById($runId) == null){
+	    
+	    $newRun = $this->domRemoteData->importNode($this->runTemplate, true);
+	    foreach ($object['runs'] as $r){
+	      if ($r['ResourceID'] == $runId) $run=$r;
+	    }
+	    $newRun->setAttribute('xml:id', $run['ResourceID']);
+	    $newRun->setAttribute('name', $run['ResourceName']);
+	    $desc = $this->runTemplate->getAttribute('start_desc'). "<b>Param_values: </b><br/>";
+	    foreach ($run['Param_values'] as $key => $value) {
+		$desc = $desc."<u>".$key." </u>".$value."<br/>";
+	    }
+	     $newRun->setAttribute('desc', $desc);
+	     $newRun->removeAttribute('start_desc'); 
+	     $datasets = $newRun->getElementsByTagName('dataset');
+	     
+	      foreach ($datasets as $dataset){
+		  $name = $dataset->getAttribute('name');
+		  $datasetId = str_replace('SimulationRun','NumericalOutput',$run['ResourceID'].'/'.$name);
+		  $dataset->setAttribute('xml:id', $datasetId); 
+		  $dataset->setAttribute('desc'); 
+		  $params = $dataset->getElementsByTagName('parameter');
+		  foreach($params as $param){
+		    $paramName = $param->getAttribute('name');
+// 		    $datasetId = str_replace('SimulationRun','NumericalOutput',$datasetId);
+		     switch ($paramName) {
+			  case "H+ number density" : $paramName = "Density"; break;
+			  case "H+ velocity" : $paramName = "Ux,Uy,Uz"; break;
+			  case "H+ total velocity" : $paramName = "Utot"; break;
+			  case "H+ thermal pressure" : $paramName = "Pressure"; break;
+			  case "H+ temperature" : $paramName = "Temperature"; break;
+		    }
+
+	    
+		    $paramId = $this->param2ddSimu($datasetId.'/'.$paramName);
+		    $param->setAttribute('xml:id', str_replace('_EARTH___n_T_Vx_Bx_By_Bz','',str_replace('earth_synth_stationary_','',$paramId))); 
+		    $param->setAttribute('parentID',$datasetId); 
+		    $param->setAttribute('needsArgs','1');
+		    if ($param->hasChildNodes()) {
+		      $components = $param->getElementsByTagName('component');
+		      foreach ($components as $component){
+			$compName = $component->getAttribute('name');
+			$component->setAttribute('xml:id', str_replace('_EARTH___n_T_Vx_Bx_By_Bz','',str_replace('earth_synth_stationary_','',$paramId.'_'.$compName))); 
+			$component->setAttribute('parentID',$datasetId); 
+			$component->setAttribute('needsArgs','1');
+		      }
+		    }
+		  }
+	    }
+	    $simuRegion->appendChild($newRun);
+	    $this->domRemoteData->save(USERWSDIR.'RemoteParams.xml');
+	  }
+	  }
+	  
+	}
+      }
+      
+              protected function makeParams($json)
+        {
+	  $obj = (array)$json;
+	      $SW_parameters = array();
+	      foreach ($obj as $k => $v) {
+		    if (empty($v))
+			unset($obj[$k]);
+	      }
+	      foreach ($obj as $k => $v) {
+		if (strpos($k,'_value') !== FALSE ) {
+		    $sw= str_replace ('_value', '', $k);
+		    $SW_val = array();
+		    $SW_val['value'] = $obj[$sw.'_value'] * $this->factors[$sw];
+		    if ($obj[$sw.'_weight'] != '') $SW_val['weight'] = $obj[$sw.'_weight'];
+		    if ($obj[$sw.'_scale'] != '') $SW_val['scale'] = $obj[$sw.'_scale']* $this->factors[$sw];
+		      $SW_parameters[$sw] = $SW_val;
+		}
+	      }
+	      $params = array (
+		'Object'    => 'Earth',	// Mandatory
+		'RunCount'  => $obj['RunCount'],	// Number of runs returned. Optional, default = 1
+		'SW_parameters' => $SW_parameters);
+		return $params;
+
+        }
+        
+        protected function changeJson($object){
+         
+	  $i=0;
+	  foreach ($object['runs'] as $run){
+	      $run['S_diff'] = round($run['S_diff'],3);
+
+	     
+	      foreach ($run['S_diff_n'] as $k => $v){
+		$v = round($v,3);
+		$run['S_diff_n'][$k] = $v;
+	      }
+	      foreach ($run['Param_values'] as $k => $v){
+	      if ($this->factors[$k]){
+		$newValue = round($v / $this->factors[$k], 3);
+		$run['Param_values'][$k] = $newValue;
+		}
+	      }
+	    $object['runs'][$i] = $run;
+	    $i++;
+	  }
+	  
+	  return $object;
+        }
+      
+      protected function param2ddSimu($paramID) {
+	  $pairs = array(" " => "_","-" => "_","/" => "_","%" => "_","\\" => "_","$" => "_",":" => "_","+" =>"_","#" => "_","@" => "_","." => "_", ">" => "_", "<" => "_", "," => "_");    
+	  return strtr($paramID,$pairs); 
+    } 
+ }
+
+?>
diff --git a/php/classes/BuildVOTable.php b/php/classes/BuildVOTable.php
new file mode 100644
index 0000000..8819470
--- /dev/null
+++ b/php/classes/BuildVOTable.php
@@ -0,0 +1,633 @@
+<?php
+/**
+ * @class BuildVOTable
+ * @version $Id: BuildVOTable.php 2795 2015-02-27 15:42:55Z elena $
+ *
+ *
+ */
+
+class BuildVOTable
+{
+	function __construct() 
+	{
+		
+	}
+	
+  	private function WriteDescription($f,$description)
+  	{
+  	//$description = str_replace('<', '&lt;', $description);
+  	//$description = str_replace('>', '&gt;', $description);
+    	fputs($f,"<DESCRIPTION>");
+    	fputs($f,htmlentities($description));
+    	fputs($f,"</DESCRIPTION>\n");
+  	}
+  	
+  	private function WriteField($f,$field,$refgroupid)
+  	{
+if (!strstr($field['id'], 'xyz')){
+	  $str =  "<FIELD datatype='".$field['data_type']."'";
+	  $str .=  " ID='".$field['id']."'";
+	  $str .=  " name='".$field['name']."'";
+	  if (isset($field['xtype']) && ($field['xtype'] != ''))
+	    $str .=  " xtype='".$field['xtype']."'";
+	  if (isset($field['array_size']) && ($field['array_size'] != ''))
+	    $str .=  " arraysize='".$field['array_size']."'";
+	  if (isset($field['unit']) && ($field['unit'] != ''))
+	    $str .=  " unit='".$field['unit']."'";
+	  $str .=  " ucd='".$field['ucd']."'";
+	  if (isset($refgroupid))
+	    $str .=  " ref='".$refgroupid."'";
+	  $str .= ">\n";
+    	fputs($f,$str);
+    	$this->WriteDescription($f,$field['field_des']);
+    	fputs($f,"<VALUES null='".$field['fill_val']."'/>\n");
+   	fputs($f,"</FIELD>\n");
+}
+//TODO delete else after integration by LATMOS vecteurs in VOtable
+else {
+    if ($field['comps_label'] == "X;Y;Z")
+      $attributes = explode(';', $field['comps_label']);
+    else
+      $attributes = preg_split ("/\s+/", $field['comps_label']);
+    $a = 1;
+    foreach($attributes as $attr){
+	  $str =  "<FIELD datatype='".$field['data_type']."'";
+	  $str .=  " ID='".strtoupper($attr)."'";
+	  $str .=  " name='".strtoupper($attr)."'";
+	  if (isset($field['xtype']) && ($field['xtype'] != ''))
+	    $str .=  " xtype='".$field['xtype']."'";
+// 	  if (isset($field['array_size']) && ($field['array_size'] != ''))
+// 	    $str .=  " arraysize='".$field['array_size']."'";
+	  if (isset($field['unit']) && ($field['unit'] != ''))
+	    $str .=  " unit='".$field['unit']."'";
+	  if (strstr($attr,'x_'))   
+	      $attr = 'x';
+	  elseif (strstr($attr,'y_'))   
+	      $attr = 'y';
+	  elseif (strstr($attr,'z_'))   
+		  $attr = 'z';
+	  $str .=  " ucd='pos.cartesian.".$attr."'";
+	  $str .=  " utype='stc:AstroCoords.Position3D.Value3.C".$a."'";
+// 	  if (isset($refgroupid))
+// 	    $str .=  " ref='".$refgroupid."'";
+	  $str .= ">\n";
+    	fputs($f,$str);
+    	$this->WriteDescription($f,$field['field_des']);
+    	fputs($f,"<VALUES null='".$field['fill_val']."'/>\n");
+   	fputs($f,"</FIELD>\n");      
+	$a++;
+    }
+}
+  	}
+  	
+  	private function WriteInfoGroup($f,$field)
+  	{
+  		 if (!isset($field['array_size']))
+  		   return NULL;  
+  		 if (($field['array_size'] == '') || ($field['array_size'] == '*'))
+  		   return NULL;
+  		 $array_size = intval($field['array_size']);
+  		 if ($array_size < 2)
+  		   return NULL;
+// TODO delete after VOTable group implementation by LATMOS and Co 
+		 if  (strstr($field['id'], 'xyz'))
+  		   return NULL;
+// end delete
+  		 $group_id = "info_".$field['id'];
+  		 
+  		 $str = "<GROUP ID='".$group_id."'>\n";
+  		   
+  		 //"param_".$field['id']."_"info
+  		 
+  		 $str .=  "<PARAM name='components_".$field['name']."'";
+  		 $str .=  " ID='components_".$field['id']."'";
+  		 $str .=  " datatype='char' arraysize='*'";
+  		 $str .=  " value='".$field['comps_label']."'";
+  		 $str .= "/>\n";
+  		 $str .= "</GROUP>\n";
+  		 
+  		 fputs($f,$str);
+  		 return $group_id;
+  	}
+  	
+  	private function getTimeValue($line,$timeFormat,$milli)
+  	{
+  		 $iso = "";
+  		 $srclen = 0;
+				 if (strcmp($timeFormat,'YYYY MM DD hh mm ss') === 0)
+				 {
+				 	 if ($milli == '1')
+				 	 {
+  		 			 sscanf($line,"%04d %02d %02d %02d %02d %02d %03d",$y,$mo,$d,$h,$mi,$s,$ml);
+  		 		  $iso    = sprintf("%04d-%02d-%02dT%02d:%02d:%02d.%03dZ",$y,$mo,$d,$h,$mi,$s,$ml);
+  		 		  $srclen = 23;
+				 	 }
+				 	 else
+				   {
+  		 			 sscanf($line,"%04d %02d %02d %02d %02d %02d",$y,$mo,$d,$h,$mi,$s);
+  		 		  $iso    = sprintf("%04d-%02d-%02dT%02d:%02d:%02d.000Z",$y,$mo,$d,$h,$mi,$s);
+  		 		  $srclen = 19;
+				 	 }
+				 }
+				 else if (strcmp($timeFormat,'DD MM YYYY hh mm ss') === 0)
+				 {
+				 	 if ($milli == '1')
+				 	 {
+  		 		  sscanf($line,"%02d %02d %04d %02d %02d %02d %03d",$d,$mo,$y,$h,$mi,$s,$ml);
+  		 		  $iso    = sprintf("%04d-%02d-%02dT%02d:%02d:%02d.%03dZ",$y,$mo,$d,$h,$mi,$s,$ml);
+  		 		  $srclen = 23;
+				 	 }
+				 	 else
+				 	 {
+				 	 	 sscanf($line,"%02d %02d %04d %02d %02d %02d",$d,$mo,$y,$h,$mi,$s);
+  		 		  $iso    = sprintf("%04d-%02d-%02dT%02d:%02d:%02d.000Z",$y,$mo,$d,$h,$mi,$s);
+  		 		  $srclen = 19;
+				 	 }
+				 }
+				 else if (strcmp($timeFormat,'YYYY DDD hh mm ss') === 0)
+				 {
+				 	 if ($milli == '1')
+				 	 {
+				 	   sscanf($line,"%04d %03d %02d %02d %02d %03d",$y,$nday,$h,$mi,$s,$ms);
+			      $offset = ($nday-1) * 86400;
+    			  $str = date('Y-m-d', strtotime('Jan 1, '. $y) + $offset);
+  				   $iso = sprintf("%sT%02d:%02d:%02d.%03dZ",$str,$h,$mi,$s,$ms);
+  				   $srclen = 21;
+				 	 }
+				 	 else
+				 	 {
+				 	 	 sscanf($line,"%04d %03d %02d %02d %02d",$y,$nday,$h,$mi,$s);
+			      $offset = ($nday-1) * 86400;
+    			  $str = date('Y-m-d', strtotime('Jan 1, '. $y) + $offset);
+  				   $iso = sprintf("%sT%02d:%02d:%02d.000Z",$str,$h,$mi,$s);
+  				   $srclen = 17;
+				 	 }
+				 }
+				 else if (strcmp($timeFormat,'YYYY-MM-DDThh:mm:ss') === 0)
+				 {
+				 	 if ($milli == '1')
+				 	 {
+				 	   sscanf($line,"%04d-%02d-%02dT%02d:%02d:%02d.%03d",$y,$mo,$d,$h,$mi,$s,$ms);
+				 	   $iso    = sprintf("%04d-%02d-%02dT%02d:%02d:%02d.%03dZ",$y,$mo,$d,$h,$mi,$s,$ms);
+  		 		  $srclen = 23;
+				 	 }
+				 	 else
+				 	 {
+				 	 	 sscanf($line,"%04d-%02d-%02dT%02d:%02d:%02d",$y,$mo,$d,$h,$mi,$s);
+				 	   $iso    = sprintf("%04d-%02d-%02dT%02d:%02d:%02d.000Z",$y,$mo,$d,$h,$mi,$s);
+  		 		  $srclen = 19;
+				 	 }
+				 }
+  			
+  		 return array("iso" => $iso, "srclen" => $srclen);
+  	}
+  	
+  	private function WriteDataFromASCII($f,$data_file,$timeFormat,$milli,$fields)
+  	{
+    	fputs($f,"<DATA><TABLEDATA>\n");
+
+    	$in = fopen($data_file['path'],"r");
+
+    	if (!$in)
+    		return array('success' => false, 'message' => $data_file['path']);//"Cannot load input file");
+
+      	while ($line = fgets($in))
+      	{
+      		 $l = trim($line);
+      		 if ((strlen($l) <= 0) || $l[0] == '#')
+      		   continue;
+       		fputs($f,"<TR>");
+       		$time = $this->getTimeValue($line,$timeFormat,$milli);
+       		if ($time['iso'] == '')
+       		  continue; //cannot load time
+       		fputs($f,"<TD>".$time['iso']."</TD>");
+       		$l = substr($l,$time['srclen'],strlen($l)-$time['srclen']);
+       		
+       		foreach($fields as $field)
+       		{
+       			 if (isset($field['xtype']) && (strcmp($field['xtype'],'dateTime') == 0) && 
+       			     isset($field['ucd']) && (strcmp($field['ucd'],'time.epoch') == 0))
+       			   continue; //skip time field
+       			 if (!isset($field['array_size']))
+       			   $size = 1;
+       			 else
+       			   $size = $field['array_size'];
+       			 fputs($f,"<TD>");
+       			 for ($i = 0; $i < $size; $i++)
+       			 {
+       			 	 $l = trim($l);
+       			 	 if ($l == '')
+       			 	 {
+       			 	   // 	 
+       			 	   $l = fgets($in);
+       			 	   $l = trim($l);
+       			 	 }
+       			 	 sscanf($l,"%s",$str_value);
+       			 	 if ($i > 0)
+if (!strstr($field['id'], 'xyz'))
+       			 	   fputs($f," ");
+else {
+    fputs($f,"</TD><TD>");
+//     $str_value = floatval($str_value) * 3393.00;
+}      			 	   fputs($f,$str_value);
+       			 	 $l = substr($l,strlen($str_value),strlen($l)-strlen($str_value));
+       			 }
+       			 fputs($f,"</TD>");
+       		}
+        	fputs($f,"</TR>\n");
+      	}
+
+   		fclose($in);
+
+    fputs($f,"</TABLEDATA></DATA>\n");
+    
+    return array('success' => true);
+  }
+  	
+  	
+  	private function WriteTable($f,$input_params)
+  	{
+    	fputs($f,"<TABLE name='".$input_params['table_name']."'>\n");
+
+    	foreach($input_params['fields'] as $field)
+    	{
+      		$refgroupid = $this->WriteInfoGroup($f,$field);
+      		$this->WriteField($f,$field,$refgroupid);
+    	}
+
+    	$res = $this->WriteDataFromASCII($f,$input_params['data_file'],$input_params['time_format'],$input_params['time_milli'],$input_params['fields']);
+
+    	fputs($f,"</TABLE>\n");
+    	
+    	return $res;
+  	}
+  	
+  	
+  	private function WriteResource($f,$input_params)
+  	{
+    	fputs($f,"<RESOURCE>\n");
+    	$this->WriteDescription($f,$input_params['ressource_des']);
+    	$res = $this->WriteTable($f,$input_params);
+    	fputs($f,"</RESOURCE>\n");
+    	return $res;
+  	}
+  	
+  	
+	  function WriteVOTable($input_params,$output_file)
+  	{
+  		$out = fopen($output_file,"w");
+  		chmod ($output_file, 0664);
+  		
+  		if (!$out)
+  			return array('success' => false, 'message' => "Cannot create output file");
+  		
+  	fputs($out,"<?xml version='1.0'?>\n");
+    	fputs($out,"<VOTABLE version='1.2'");
+    	fputs($out,"  xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'");
+    	fputs($out,"  xsi:schemaLocation='http://www.ivoa.net/xml/VOTable/v1.1 http://www.ivoa.net/xml/VOTable/v1.2'");
+    	fputs($out,"  xmlns='http://www.ivoa.net/xml/VOTable/v1.2'>\n");
+
+    	$this->WriteDescription($out,$input_params['general_des']);
+    	$res = $this->WriteResource($out,$input_params);
+
+    	fputs($out,"</VOTABLE>\n");
+    	
+    	fclose($out);
+    	
+    	return $res;
+  	}
+	  
+   function pushParamFields(&$fields, $param)
+	  {
+
+	    $infoMgr = new ParamsInfoMgr();
+	    
+	    $infos = $infoMgr->GetParamInfo($param);	
+ 
+     if (!$infos['success'])
+       return $infos;				      
+       
+                    switch ($infos['type'])
+                    {
+                            case 'derived' :
+                                    array_push($fields, array(
+                                                        'field_des' => $infos['infos']['buildchain'],
+                                                        'data_type' => 'float',
+                                                        'name'      => $infos['infos']['name'],
+                                                        'id'        => $param,
+                                                        'ucd'       => "",
+                                                        'fill_val'  => "NaN",
+                                                        'unit'      => $infos['infos']['units']
+                                            ));
+                                            break;
+                                case 'local' :
+                                {
+                                    if (!$infos['withcode'])
+                                    {
+                                        if ($infos['codeinfos']['valuetype'])
+                                                switch($infos['valuetype'])
+                                                {
+                                                        case 'FLOAT' :
+                                                                $valueType = 'float';
+                                                                break;
+                                                        case 'INT' :
+                                                                $valueType = 'int';
+                                                                break;
+                                                        default : 
+                                                                $valueType = 'float';
+                                                }
+
+                                        $ucd = $infos['ddinfos']['parameter']['ucd'];
+                                        if ($infos['ddinfos']['parameter']['size'] != '')
+                                            $size = $infos['ddinfos']['parameter']['size'];
+                                        else
+                                            $size = $infos['codeinfos']['size'];
+
+                                        $isarray = ($size > 1);
+
+                                        if ($infos['ddinfos']['parameter']['name'] != '')
+                                            $name = $infos['ddinfos']['parameter']['name'];		
+                                        else
+                                            $name = $infos['codeinfos']['title'];
+
+                                        if ($isarray)
+                                            if ($infos['ddinfos']['parameter']['comps_label'] != '')
+                                                $comps_label = $infos['ddinfos']['parameter']['comps_label'];
+                                            else $comps_label = $infos['codeinfos']['legend'];
+
+                                        $desc = $infoMgr->ParamInfosToString($infos);
+                                        $fillval = $infos['codeinfos']['fillvalue'];
+                                        if ($infos['ddinfos']['parameter']['id'] != '')	
+                                            $id = $infos['ddinfos']['parameter']['id'];
+                                        else
+                                            $id = $param;
+                                }                                 
+                                else
+                                {
+                                    $valueType = 'float';
+                                    $ucd = $infos['ddinfos']['parameter']['ucd'];
+                                    if ($infos['ddinfos']['parameter']['size'] != '')
+                                        $size = $infos['ddinfos']['parameter']['size'];
+                                    else
+                                        $size = $infos['codeinfos']['size'];
+
+                                    $isarray = ($size > 1);
+                                    if ($infos['ddinfos']['parameter']['name'] != '')
+                                        $name = $infos['ddinfos']['parameter']['name'];		
+                                    else
+                                        $name = $infos['codeinfos']['title'];
+
+                                        $comps_label = '';
+                                    if ($isarray)
+                                    {
+                                            for ($i = 0; $i < $size; $i++)
+                                            {
+                                                    if ($i != 0)
+                                                        $comps_label .= ' ';
+                                                    $comps_label .= $name.'_'.$i;
+                                            }
+                                    }
+                                    $desc = $infoMgr->ParamInfosToString($infos);
+                                    $fillval = 'NaN';
+                                    $id = $param;
+                                }
+                                if ($infos['ddinfos']['parameter']['units'] != '')
+                                    $units = $infos['ddinfos']['parameter']['units'];
+                                else
+                                    $units = $infos['codeinfos']['units'];			      
+        // 			      $units = $infos['ddinfos']['parameter']['units'];
+                                
+                                if ($isarray)
+                                        {
+                                                    array_push($fields, array(
+                                                                    'field_des' => $desc,
+                                                                    'data_type' => $valueType,
+                                                                    'array_size'=> $size,
+                                                                    'name'      => $name,
+                                                                    'id'        => $param,
+                                                                    'ucd'       => $ucd,
+                                                                    'fill_val'  => $fillval,
+                                                                    'unit'       => $units,
+                                                                    'comps_label' => $comps_label
+                                                        ));
+                                        }
+                                        else
+                                        {
+                                                array_push($fields, array(
+                                                        'field_des' => $desc,
+                                                        'data_type' => $valueType,
+                                                        'name'      => $name,
+                                                        'id'        => $id,
+                                                        'ucd'       => $ucd,
+                                                        'fill_val'  => $fillval,
+                                                        'unit'      => $units
+                                                ));	
+                                        }
+                                        break;
+                                }
+                                case 'mydata' : 
+                                {
+                                        $valueType = $infos['type'];
+                                        $size = $infos['size'];
+                                        $name = $infos['name'];
+                                        $units = $infos['units'];
+                                        $fillval = $infos['fillvalue'];
+                                        $id = $infos['realvar'];
+                                        $ucd = $infos['mask'];
+                                        array_push($fields, array(
+                                                        'field_des' => $valueType,
+                                                        'data_type' => $valueType,
+                                                        'name'      => $name,
+                                                        'id'        => $id,
+                                                        'ucd'       => $ucd,
+                                                        'fill_val'  => $fillval,
+                                                        'unit'      => $units
+                                                ));     
+                                        break;
+                                }
+			     default :
+			      return array('success' => false, 'message' => 'Unknown parameter type : '.$infos['type']);
+		   }	
+  	
+		   return array('success' => true);
+	  }
+	  
+   function getTimeField()
+	  {
+		   return array(
+				   'param_name' => "Time",
+				   'field_des'  => "Time",
+				   'data_type'  => "char",
+				   'name'       => "Time",
+				   'id'         => "Time",
+				   'ucd'        => "time.epoch",
+				   'xtype'      => "dateTime",
+				   'fill_val'   => "NaN",
+				   'array_size' => "*"
+			  );
+	  }
+  	
+   function downloadResultToVOTable($id,$newName,$opts,$inputCompressed = true,$canBeAlreadyVOTable = false)
+	  {
+	   $dir = USERWORKINGDIR.$id.'_/';
+				
+		   if ($inputCompressed)
+		   {
+		   	 //test if the archive file exist
+		     if (strncmp($opts['compression'],'zip',3) === 0)
+		   	   $downFile	= $dir.$newName.".zip";
+		     else
+		       $downFile = $dir.$newName.".tar.gz";
+		
+	   	  if (!file_exists($downFile))
+			      return array('success' => false, 'message' => "Download file ".$downId." doesn't exist");
+	    }
+		
+		   //
+		   $params = explode(' ',$opts['params']);
+			    
+		   $files = array();		   
+		   $isVOT = $canBeAlreadyVOTable && (strcmp($opts['fileformat'],'vot') === 0);
+
+		   switch ($opts['structure'])
+		   {
+			    case '0' : //All In One File
+			    case '1' : //One File Per Time Interval
+			               //get information about fileds (field in VOTable = parameter in AMDA)
+			    	 $fields = array();
+
+				     //push time field (the first field is the time field)
+				     array_push($fields, $this->getTimeField());
+				
+				     //push parameters fields
+				     foreach($params as $param)
+				     {
+					      $res = $this->pushParamFields($fields, $param);
+					
+					      if (!$res['success'])
+						       return $res;
+				     }
+				
+				     //extract the archive
+				     chdir($dir);
+				     
+				     if ($isVOT)
+				       $allfile = $newName.".xml";
+				     else
+				       $allfile = "ALL.txt";
+				     
+				     if ($inputCompressed)
+		       {
+				       if (strncmp($opts['compression'],'zip',3) === 0)  
+				         exec("unzip ".$downFile." ".$allfile);
+				       else
+				         exec("tar -xvzf ".$downFile." ".$allfile);
+		       }
+				         
+				     if (!file_exists($allfile))
+					      return array('success' => false, 'message' => "Error to extract data (".$allfile.")");
+				
+				     //write VO Table
+				     $data_file = array(
+						     'path'        => $allfile);
+					
+				     $input_params = array('general_des'   => "Generated by CDPP/AMDA",
+									      'ressource_des' => $id,
+									      'table_name'    => $id,
+									      'fields'        => $fields,
+									      'data_file'     => $data_file,
+									      'time_format'   => $opts['timeformat'],
+									      'time_milli'    => $opts['milli']);
+				
+				     if (!$isVOT)
+				     {
+						     $res = $this->WriteVOTable($input_params,$dir.$newName.'.xml');
+						     unlink($allfile);
+				     }
+				     else
+				       $res = array('success' => true);
+						   
+				     if (!$res['success'])
+					      return $res;
+					      
+				     array_push($files,USERWORKINGDIR.$id.'_/'.$newName.'.xml');
+			     	break;
+			    case '2' : //One File Per Param/Interval
+				     chdir($dir);
+				     foreach($params as $param)
+				     {
+					      //get information about fileds
+					      $fields = array();
+ 
+					      //push time field
+					      array_push($fields, $this->getTimeField());
+					      
+					      $res = $this->pushParamFields($fields, $param); 
+ 					
+					      if (!$res['success'])
+						       return $res;
+   						       
+					      //extract the archive
+					      chdir($dir);
+					      
+					      if ($isVOT)
+					        $filename = $newName."_".$param.'.xml';
+					      else
+					        $filename = strtoupper($param).".txt";
+ 					      
+					      if ($inputCompressed)
+                                            {
+					        if (strncmp($opts['compression'],'zip',3) === 0)  
+                                                        exec('unzip '.$downFile.' "'.$filename.'"');
+                                                else
+                                                        exec('tar -xvzf '.$downFile.' "'.$filename.'"');
+                                            }
+				           
+				       if (!file_exists($filename))
+					        return array('success' => false, 'message' => "Error to extract data (".$filename.")");
+				         
+					      //write VO Table
+					      $data_file = array(
+						       'path'        => $filename); 
+	
+					      $input_params = array('general_des'   => "Imported from AMDA",
+							  		               'ressource_des' => $id."_".$param,
+							  		               'table_name'    => $id."_".$param,
+							  		               'fields'        => $fields,
+										       'data_file'     => $data_file,
+										       'time_format'   => $opts['timeformat'],
+										       'time_milli'    => $opts['milli']);
+				
+					      
+      					if (!$isVOT)
+      					{  
+                                          $res = $this->WriteVOTable($input_params,$dir.$newName."_".$param.'.xml');
+      					  unlink($filename);
+      					}
+      					else
+				         $res = array('success' => true);
+      					
+					      if (!$res['success'])
+						       return $res;
+						       
+						     
+						     /*$votableMgr = new VOTableMgr();
+						     $votableMgr->load($dir.$newName."_".$param.'.xml');
+						     $votableMgr->isValidSchema();*/
+						       
+					      array_push($files,USERWORKINGDIR.$id.'_/'.$newName."_".$param.'.xml');
+				     }
+				   break;
+// 			  case '3' : // Argument by argument
+// 
+// 				   break;
+			  default :
+				   return array('success' => false, 'message' => "Request type unknown");
+		 }
+		
+		 return array('success' => true, 'files' => $files);
+	}
+  	
+}
+
+?>
\ No newline at end of file
diff --git a/php/classes/DerivedParamMgr.php b/php/classes/DerivedParamMgr.php
new file mode 100644
index 0000000..16446c5
--- /dev/null
+++ b/php/classes/DerivedParamMgr.php
@@ -0,0 +1,413 @@
+<?php
+/**
+ * @class DerivedParamMgr
+ * @version $Id: DerivedParamMgr.php 2914 2015-05-19 10:31:38Z elena $
+ * 
+ * 
+ */
+
+  class DerivedParamMgr extends AmdaObjectMgr {
+ 
+     protected $type;
+     protected $BaseManager;
+
+     function __construct($type) {
+		 
+		parent::__construct('WsParams.xml');
+
+		$this->type = $type;
+
+		if ($type == 'derivedParam') {
+		      $this->contentRootId = 'derivedParam-treeRootNode';
+		      $this->contentRootTag = 'paramList';
+//node attributes  and object XML tags 
+		      $this->attributes = array('name' => '', 'buildchain' => '', 'timestep' => '');
+// + tags in object XML
+		      $this->optionalAttributes = array('units' => 'undefined','description' => 'undefined', 'ytitle' => 'undefined');
+		      $this->objTagName = 'param';
+		      $this->id_prefix = 'ws_';
+		}
+		elseif ($type == 'mySimuParam'){
+		    $this->contentRootId = 'mySimuParam-treeRootNode';
+		    $this->contentRootTag = 'mySimuParamList';
+//node attributes and object XML tags 
+		    $this->attributes = array('name' => '',  'size' => ' ', 'format' => '', 'desc' => '', 'mask' => '');
+// + tags in object XML
+		    $this->optionalAttributes = array('vi' => 'undefined', 'realvar' => '', 'fillvalue' => -1.e31, 'units' => 'undefined',
+							'ytitle' => 'undefined', 'file' => '', 
+							'type' => '', 'size' => '',  'minsampling' => '', 'plottype' => '');
+		    $this->objTagName = 'mysimudata';
+		    $this->id_prefix = 'simu_';		 		
+		}
+		elseif ($type == 'myWsrParam'){
+		    $this->contentRootId = 'myWsrParam-treeRootNode';
+		    $this->contentRootTag = 'myWsrParamList';
+//node attributes and object XML tags 
+		    $this->attributes = array('name' => '',  'size' => ' ', 'format' => '', 'desc' => '', 'mask' => '');
+// + tags in object XML
+		    $this->optionalAttributes = array('vi' => 'undefined', 'realvar' => '', 'fillvalue' => -1.e31, 'units' => 'undefined',
+							'ytitle' => 'undefined', 'file' => '', 
+							'type' => '', 'size' => '',  'minsampling' => '', 'plottype' => '');
+		    $this->objTagName = 'mywsrdata';
+		    $this->id_prefix = 'wsr_';		 		
+		}
+		else {
+		      $this->contentRootId = 'myDataParam-treeRootNode';
+		      $this->contentRootTag = 'myDataList';
+//node attributes and object XML tags 
+		      $this->attributes = array('name' => '',  'size' => ' ', 'format' => '', 'desc' => '', 'mask' => '', 'plottype' => '');
+// + tags in object XML
+		      $this->optionalAttributes = array('vi' => 'undefined', 'realvar' => '', 'fillvalue' => -1.e31, 'units' => 'undefined',
+							'ytitle' => 'undefined',  'file' => '', 
+							'type' => '', 'size' => '',  'minsampling' => '');
+		      $this->objTagName = 'mydata';
+		      $this->id_prefix = 'wsd_';
+                      $this->type = 'myDataParam';
+		}
+
+		if (!file_exists($this->xmlName)) {
+		      $this->createDom();
+		      $this->xp = new domxpath($this->contentDom); 
+	}
+     }
+   
+
+    protected function param2dd($paramID){
+	    $pairs = array(":" => "_");    
+	    return strtr($paramID, $pairs); 
+	  }
+
+     protected function createDom() {
+		$types = array('param' => 'derived', 'mydata' => 'myData', 'mysimudata' => 'mySimu', 'mywsrdata' => 'myWsr');
+
+		$rootElement = $this->contentDom->createElement('ws');
+                foreach ($types as $key => $value) {
+ 		    $contentId = $value.'Param-treeRootNode';
+		    $contentTag = $key.'List';
+		    $typeElement = $this->contentDom->createElement($contentTag);
+		    $typeElement->setAttribute('xml:id', $contentId);
+		    $rootElement->appendChild($typeElement);
+		}
+                $this->contentDom->appendChild($rootElement);
+		$this->contentDom->save($this->xmlName);
+        }
+/*   
+*      Internal resource file used by  DD applications
+*/    
+      protected function createObjectResource($obj){
+// Parse : get real vars
+		$myParser = new Parser();		
+		$theChain = $obj->buildchain; 
+		$newChain = $myParser->replaceAllButWS($theChain);
+		$realVars = $myParser->getVars($newChain);
+	
+		$theTimeStep = $obj->timestep;
+// Write stuff into internal res file
+
+		$fd=fopen($this->resFileName, "w");
+		foreach ($realVars as $theVar)  fprintf($fd, "%s ", $this->param2dd($theVar));
+		fprintf($fd, "\n%s\n", $theTimeStep);
+		fclose($fd);
+		}
+
+   
+/*
+*       rename PARAM in id.xml
+*/
+	protected function renameInResource($name, $id) {
+
+            if (!file_exists(USERWSDIR.$id.'.xml')) return false; 
+ 
+	    $this->objectDom -> load(USERWSDIR.$id.'.xml');
+	    if (!($objToRename = $this->objectDom->getElementById($id))) return false; 
+            $objToRename -> getElementsByTagName('name')->item(0)->nodeValue = $name; 
+	    $this->objectDom ->save(USERWSDIR.$id.'.xml');
+            
+	    return true;
+	 }
+
+
+/*
+*        Check file id.xml if difference is name only
+*/
+    protected function renameOnly($p) {
+
+            $oldObject = new DomDocument("1.0");
+            $oldObject -> load(USERWSDIR.$p->id.".xml");
+
+            foreach ($p as $key => $value) {
+                if ($key != 'id') {
+                    if ($oldObject->getElementsByTagName($key)->length == 0) return false;
+                    if ($key != "name" && $oldObject->getElementsByTagName($key)->item(0)->nodeValue != $value)
+                                                                            return false;
+                }
+            }
+
+        return true;
+    }
+
+/*****************************************************************
+*                           PUBLIC FUNCTIONS
+*****************************************************************/ 
+/*
+*         Create Parameter
+*/
+    public function createParameter($p, $folder){
+
+            // overwritten                
+            if ($this -> objectExistsByName($p->name)) {
+                        $p -> id  = $this -> getObjectIdByName($p->name); 		      
+                        $this -> deleteObject($p);
+            }
+        
+            $this->id = $this->setId();
+            if (!$this->id) return array('error' => ID_CREATION_ERROR);
+            $this -> descFileName = USERWSDIR.$this->id.'.xml';
+            
+            $fileExists = -1;
+            //if alias exists, replace alias name by parameter name   
+            if ($this->type == 'derivedParam') {
+                if (file_exists(USERWSDIR.'Alias.xml')) {
+                                $p->buildchain =  $this->resetAlias($p->buildchain);
+                }   
+                // switch between myData and Derived 		
+                $this -> resFileName = USERWORKINGDIR.$this->id.'.res';
+                $this -> createObjectResource($p);
+                $this -> createObjectDescription($p);
+                $this -> addToContent($p, $folder);
+                return array('id' => $this->id, 'info' => $p->buildchain);   
+            }
+
+            // myData parameter
+            else {   
+                 
+                $isSpectra = $p->plottype === 'Spectra';
+                $this->BaseManager = new BaseManager();
+                $oldMask = $this->BaseManager->getOldMask($p->mask);	
+  
+                $myFileMgr = new FilesMgr();
+
+                if($oldMask) {                                                                                                                              
+                    $myFileMgr->delMask($oldMask);
+                    $this->BaseManager->delVI($oldMask);                                     
+                } 
+                // separate files without mask - check that file exists
+                else {
+                      $fileExists = $this->BaseManager->getVI($p->mask);                      
+                }
+
+               if ($fileExists < 0) {
+                    $p->vi = $this->BaseManager->addVI($p->mask); 
+                    $p->desc = $this->BaseManager->getViDesc($p->vi); 
+                }
+                else {
+                   if (!$oldMask) {
+                    $p->vi = $this->BaseManager->getVI($p->mask); 
+                    $p->desc = $this->BaseManager->getViDesc($p->vi); 
+                    }
+                }
+
+                if ($oldMask) {
+                    $this->updateMaskMydata($oldMask, $p->mask,  $p->vi, $p->desc);
+                }
+
+                $this -> createObjectDescription($p);
+                $this -> addToContent($p, $folder);
+
+                $info =  "Size: ".$p->size."<br/>".$p->desc."<br/> Mask: ".$p->mask;
+
+                if ($myFileMgr -> addMask($p->mask)){
+                    return array('id' => $this->id, 'size' => $p->size, 'mask' => $p->mask, 'info' => $info, 'isSpectra' => $isSpectra, 'updateMyData' => true); 
+                }
+    
+                return array('id' => $this->id, 'size' => $p->size, 'mask' => $p->mask, 'info' => $info, 'isSpectra' => $isSpectra);  
+            }                
+     } 
+
+/*
+*         Create new simu Parameter
+*/
+	public function createWsrParameter($p, $nodeType){
+       // overwritten
+            if ($nodeType) {                   
+                    $this->contentRootId = $nodeType.'-treeRootNode';
+                    $this->contentRootTag = $nodeType.'List';
+                    if ($nodeType == 'mySimuParam') {
+                        $this->objTagName = 'mysimudata';
+                        $this->id_prefix = 'simu_'; 
+                    }
+                    else if ($nodeType == 'myWsrParam'){
+                        $this->objTagName = 'mywsrdata';
+                        $this->id_prefix = 'wsr_';             
+                    }  
+            }                  
+	    $mySimuParam = $this->contentDom->getElementsByTagName($p->parentTag);
+	    if($mySimuParam->length < 1){	
+		    $rootElement = $this->contentDom->getElementsByTagName("ws")->item(0);
+		    $typeElement = $this->contentDom->createElement($p->parentTag);
+		    $typeElement->setAttribute('xml:id', $p->contentRootId);
+		    $rootElement->appendChild($typeElement);
+		    $this->contentDom->save($this->xmlName);
+	    }
+
+	    $this->id = $this->setId();
+	    if (!$this->id) return array('error' => ID_CREATION_ERROR);
+
+	    $this -> descFileName = USERWSDIR.$this->id.'.xml';
+   
+	    $this->BaseManager = new BaseManager();
+
+	    $p->vi = $this->BaseManager -> addSimuVI($p); 
+	    $p->desc = $this->BaseManager -> getViDesc($p->vi); 
+	    
+	    $dom = new DomDocument("1.0"); 
+	    $dom->preserveWhiteSpace = false;
+	    $dom->formatOutput = true;
+	    
+	    $root = $dom->createElement($this->objTagName); 
+	    $root->setAttribute('xml:id',$this->id);
+
+	      foreach($p as $key => $value) {
+		if ($key != 'id' && $key != 'leaf' && $key != 'nodeType') {	
+		     $node =  $dom->createElement($key,htmlspecialchars($value));
+		    $root -> appendChild($node);
+		}
+	      }      
+// add Optional Attributes if they are undefined	      
+              foreach ($this->optionalAttributes as $key => $value)   
+		 if ($root->getElementsByTagName($key)->length == 0) {
+                        $node =  $dom->createElement($key,htmlspecialchars($value));  
+			$root -> appendChild($node);
+                  }
+ 
+	      $dom->appendChild($root);
+	      $dom->save($this->descFileName);  
+	    
+	    
+	    $this -> addToContent($p, $folder);
+	    $info =  "Size: ".$p->size."<br/>".$p->desc;
+
+	    return array('id' => $this->id, 'size' => $p->size, 'info' => $info);  
+     } 
+
+/*
+*  Start-Stop was changed - update in in MyDataParam
+*/ 
+    public function updateMydata($mask, $desc) 
+    {
+        $mydatas = $this->xp->query("//mydata[@mask = '".$mask."']"); 
+         
+        if ($mydatas->length > 0) 
+            foreach ($mydatas as $mydata)  
+                $mydata->setAttribute("desc", $desc);  
+
+         $this->contentDom->save($this->xmlName);
+                 
+    }   
+
+/*
+*      Mask was changed - update in MyDataParam   
+*/
+    public function updateMaskMydata($oldMask, $newMask, $viId, $description)
+    {     
+        $mydatas = $this->xp->query("//mydata[@mask = '".$oldMask."']");
+        if ($mydatas->length == 0) return;
+
+        foreach ($mydatas as $mydata)  
+        {
+                $id = $mydata->getAttribute('xml:id');
+                $mydata->setAttribute("mask", $newMask); 
+                $mydata->setAttribute("desc", $description);
+
+                if (file_exists(USERWSDIR.$id.'.xml')) 
+                {
+                    $xml = new DomDocument("1.0");
+                    $xml->load(USERWSDIR.$id.'.xml');
+
+                    $mask = $xml->getElementsByTagName('mask');
+                    $mask->item(0)->nodeValue = $newMask;
+
+                    $vi = $xml->getElementsByTagName('vi');
+                    $vi->item(0)->nodeValue = $viId;
+
+                    $desc = $xml->getElementsByTagName('desc');
+                    $desc->item(0)->nodeValue = $description; 
+                    $xml->save(USERWSDIR.$id.'.xml');                        
+                }
+        }    
+    }
+
+/*
+*        Delete Description, Resource file, mark deleted parameter AS UNDEFINED in requests/ conditions/ aliases (?)
+*/
+//TODO return to client number of requests touches???
+	public function deleteParameter($id){ 
+	//delete VI if there is no params with this mask ??????  
+			$isDeletedMask = false;
+			if ($this->type == 'myDataParam') {
+			  if (file_exists(USERWSDIR.$id.'.xml')) {
+			    $xml = new DomDocument("1.0");
+			    $xml->load(USERWSDIR.$id.'.xml');
+			    $mask = $xml->getElementsByTagName('mask'); 
+			    if (!$mask) return;
+			    $maskName = $mask->item(0)->nodeValue;
+			    $params = $this->xp->query("//mydata[@mask='".$maskName."']"); 
+			    if ($params->length == 1) {
+				  $this->BaseManager = new BaseManager();
+				  $this->BaseManager->delVI($maskName); 
+				  $FilesMgr = new FilesMgr();
+				  $FilesMgr->delMask($maskName);
+				  $isDeletedMask = true;
+				}                      
+			    }
+			}
+			if (file_exists(USERWSDIR.$id.'.xml')) unlink(USERWSDIR.$id.'.xml');
+			if (file_exists(USERWORKINGDIR.$id.'.res')) unlink(USERWORKINGDIR.$id.'.res');	
+			$requestMgr = new RequestMgr();
+			$n_requests = $requestMgr -> markAsUndefined($id);
+			return $isDeletedMask;
+        }
+   
+/*
+*   Get Object into Edit
+*/
+
+    public function getObject($id) {
+  	    
+	     if (!file_exists(USERWSDIR.$id.'.xml')) return array('error' => NO_OBJECT_FILE); 
+ 
+	    $this->objectDom -> load(USERWSDIR.$id.'.xml');
+	    if (!($objToGet = $this->objectDom->getElementById($id))) return array('error' => NO_SUCH_ID); 
+	           
+	    $attributesToReturn['id'] = $objToGet->getAttribute('xml:id');
+	    $attributes = $objToGet -> childNodes;
+	    foreach($attributes as $attribute) {
+		    if ($attribute->tagName === "buildchain") $attributesToReturn[$attribute->tagName] = $this->setAlias($attribute->nodeValue);
+		    else $attributesToReturn[$attribute->tagName] =  $attribute->nodeValue;
+	    }	
+         
+	  return  $attributesToReturn;   
+    }
+  
+    function getObjectByName($name) {
+    	 if (!$this->objectExistsByName($name))
+    	 	return array('error' => NO_SUCH_ID);
+			   $objId = $this->getObjectIdByName($name);
+			   return $this->getObject($objId);
+    }
+    
+    function validNameObject($p){
+    	// overwritten
+    	$res = parent::validNameObject($p);
+    	
+    	if (!$res['valid'])
+    		return $res;
+    	
+    	//only low case
+    	if (strtolower($p->name) != $p->name)
+    		return array('valid' => false, 'error' => 'Use only low case');
+    	
+    	return array('valid' => true);
+    }
+}
+?>
diff --git a/php/classes/EPNResourcesManager.php b/php/classes/EPNResourcesManager.php
new file mode 100644
index 0000000..c9a8b27
--- /dev/null
+++ b/php/classes/EPNResourcesManager.php
@@ -0,0 +1,1042 @@
+<?php
+/**  @class EPNResourcesManager 
+*    @version $Id: EPNResourcesManager.php 2183 2014-03-13 14:59:19Z elena $
+*    @brief Manager to create EPN resources from AMDA descriptors files
+*    
+*/
+
+define("EPNRES_IVOID_CDPP","ivo://cdpp");
+define("EPNRES_IVOID_IRAP",EPNRES_IVOID_CDPP."/irap");
+define("EPNRES_IVOID_AMDA",EPNRES_IVOID_IRAP."/amda");
+define("EPNRES_IVOID_DATA",EPNRES_IVOID_AMDA."/dataset");
+define("EPNRES_IVOID_INST",EPNRES_IVOID_AMDA."/instrument");
+define("EPNRES_IVOID_MIS",EPNRES_IVOID_AMDA."/mission");
+
+
+define("EPNRES_PUBLISHER","CDPP - Centre de Données de la Physique des Plasma");
+
+define("EPNRES_CONTACT_NAME","CDPP/AMDA Team");
+define("EPNRES_CONTACT_ADDRESS","IRAP, 9 avenue du Colonel Roche, 31028 TOULOUSE, CEDEX 4, FRANCE");
+define("EPNRES_CONTACT_EMAIL","amda@irap.omp.eu");
+define("EPNRES_CONTACT_TELEPHONE","");
+
+define("EPNRES_REFERENCE_URL","http://cdpp-amda.cesr.fr/DDHTML/index.html");
+
+define("EPNRES_INSTRUMENTS_FILE",EPNResources."instruments.xml");
+define("EPNRES_TARGETS_FILE",LocalData."targets.xml");
+
+
+class EPNResourcesManager
+{
+	 protected $infoMgr;
+	 protected $amdaClient;
+	 protected $inst_doc;
+	 protected $inst_xp;
+	 protected $targ_doc;
+	 protected $targ_xp;
+	
+  function __construct($amdaClient)
+  {
+  	 $this->infoMgr = new ParamsInfoMgr();
+  	 $this->amdaClient = $amdaClient;
+  }
+
+  private function initInstrumentsFile()
+  {
+  	 $this->inst_doc = new DOMDocument();
+    $this->inst_doc->formatOutput = TRUE;
+    
+    $node = $this->inst_doc->createElement('Instruments');
+			 $this->inst_doc->appendChild($node);
+    
+			 $this->inst_xp = new DOMXPath($this->inst_doc);
+  }
+  
+  private function loadTargetsFile()
+  {
+  	 $this->targ_doc = new DOMDocument();
+    $this->targ_doc->formatOutput = TRUE;
+    
+    if (!$this->targ_doc->load(EPNRES_TARGETS_FILE))
+    {
+    	 printf("[ERROR] Cannot load tagets file %s\n",EPNRES_TARGETS_FILE);
+    	 return false;
+    }
+    
+    $this->targ_xp = new DOMXPath($this->targ_doc);
+    
+    return true;
+  }
+  
+  public function createResources()
+  {
+  	 $this->initInstrumentsFile();
+  	 
+  	 if (!$this->loadTargetsFile())
+      return false;
+      
+  	 $this->infoMgr->forEachAllDDDatasets(array($this,'createResource'));
+  	 
+  	 $this->inst_doc->save(EPNRES_INSTRUMENTS_FILE);
+  }
+  
+  function createResource($infos)
+  {
+  	 $dataset_id = $infos["dataset"]["id"];
+  	 
+    $newres_doc = new DOMDocument();
+    $newres_doc->formatOutput = TRUE;
+
+    $epn_id = str_replace(":","_",$dataset_id);
+    $newres_path = EPNResources."EPNresource_".$epn_id.".xml";
+
+    // create skeleton
+
+    $this->getDataCollection($newres_doc);
+    $this->getAccessURL($newres_doc);
+    $this->getTitle($newres_doc);
+    $this->getShortName($newres_doc);
+    $this->getIdentifier($newres_doc);
+    $this->getCuration($newres_doc);
+      $this->getPublisher($newres_doc);
+      $this->getCreator($newres_doc);
+        $this->getCreatorName($newres_doc);
+        $this->getCreatorLogo($newres_doc);
+      $this->getContact($newres_doc);
+        $this->getContactName($newres_doc);
+        $this->getContactAddress($newres_doc);
+        $this->getContactEmail($newres_doc);
+        $this->getContactTelephone($newres_doc);
+    $this->getContent($newres_doc);
+      $this->getSubject($newres_doc);
+      $this->getDescription($newres_doc);
+      $this->getReferenceURL($newres_doc);
+      $this->getContributor($newres_doc);
+    $this->getResource($newres_doc);
+    $this->getDataset($newres_doc);
+      $this->getGeneralMetadata($newres_doc);
+        $this->getFormat($newres_doc);
+        $this->getRight($newres_doc);
+        $this->getCalibration($newres_doc);
+        $this->getResourceType($newres_doc);
+      $this->getInstrument($newres_doc);
+        $this->getFacility($newres_doc);
+          $this->getResourceName($newres_doc);
+        $this->getInstrumentName($newres_doc);
+        $this->getAlternateInstrumentName($newres_doc);
+        $this->getInstrumentClass($newres_doc);
+        $this->getInstrumentReferenceURL($newres_doc);
+          $this->getAnyURI($newres_doc);
+      $this->getTargets($newres_doc);
+        $this->getTargetType($newres_doc);
+          $this->getTargetClass($newres_doc);
+    $this->getCoverage($newres_doc);
+      $this->getMeasurementType($newres_doc);
+      $this->getAstroCoordSystem($newres_doc);
+        $this->getTimeFrame($newres_doc);
+          $this->getTimeScale($newres_doc);
+      $this->getAstroCoordArea($newres_doc);
+        $this->getTimeInterval($newres_doc);
+          $this->getIntegrationTime($newres_doc);
+            $this->getMinIntegrationTime($newres_doc);
+            $this->getMaxIntegrationTime($newres_doc);
+          $this->getSamplingStep($newres_doc);
+            $this->getMinSamplingStep($newres_doc);
+            $this->getMaxSamplingStep($newres_doc);
+          $this->getStartTime($newres_doc);
+            $this->getStartTimeISO($newres_doc);
+          $this->getStopTime($newres_doc);
+            $this->getStopTimeISO($newres_doc);
+        $this->getSpectralInterval($newres_doc);
+          $this->getSpectralResolution($newres_doc);
+            $this->getSpectralMinResolution($newres_doc);
+            $this->getSpectralMaxResolution($newres_doc);
+          $this->getSpectralLoLimit($newres_doc);
+          $this->getSpectralHiLimit($newres_doc);
+          $this->getSpectralSamplingStep($newres_doc);
+            $this->getMinSpectralSamplingStep($newres_doc);
+            $this->getMaxSpectralSamplingStep($newres_doc);
+        $this->getSpectralParticles($newres_doc);
+          $this->getParticlesResolution($newres_doc);
+            $this->getParticlesMinResolution($newres_doc);
+            $this->getParticlesMaxResolution($newres_doc);
+          $this->getParticlesLoLimit($newres_doc);
+          $this->getParticlesHiLimit($newres_doc);
+          $this->getParticlesSamplingStep($newres_doc);
+            $this->getMinParticlesSamplingStep($newres_doc);
+            $this->getMaxParticlesSamplingStep($newres_doc);
+    $this->getTableset($newres_doc);
+      $this->getSchema($newres_doc);
+        $this->getSchemaColumn($newres_doc);
+          $this->getSchemaColumnName($newres_doc);
+          $this->getSchemaColumnDescription($newres_doc);
+          $this->getSchemaColumnUnit($newres_doc);
+          $this->getSchemaColumnUCD($newres_doc);
+          $this->getSchemaColumnDataproductType($newres_doc);
+          $this->getSchemaColumnDataType($newres_doc);
+
+    // fill
+    $date = date("Y-m-d\TH:i:s");
+
+    $this->setDataCollection($newres_doc,$epn_id,$date,$date,"");
+    
+    $accessURL = EPNTAP_AMDA."?REQUEST=doQuery&amp;LANG=ADQL&amp;QUERY=SELECT * FROM amdadb.epn_core WHERE dataset_id = '".$epn_id."' AND resource_type = 'granule' ORDER BY time_min&amp;FORMAT=votable/td";
+    $this->setAccessURL($newres_doc,$accessURL);
+    
+    $this->setTitle($newres_doc,$infos['dataset']['infos']['title']);
+    
+    $this->setShortName($newres_doc,$epn_id); 
+     
+    $this->setIdentifier($newres_doc,EPNRES_IVOID_DATA,$epn_id);
+    
+    $this->setPublisher($newres_doc,EPNRES_PUBLISHER);
+    
+    $this->setCreator($newres_doc,$infos['dataset']['infos']['creator'],"");
+    
+    $this->setContact($newres_doc,EPNRES_IVOID_AMDA,EPNRES_CONTACT_NAME,EPNRES_CONTACT_ADDRESS,EPNRES_CONTACT_EMAIL,EPNRES_CONTACT_TELEPHONE);   
+    
+    foreach ($infos['dataset']['infos']['subject'] as $s)
+      $this->addSubject($newres_doc,$s);
+    
+    $this->setDescription($newres_doc,$infos['dataset']['infos']['description']);
+    
+    $this->setReferenceURL($newres_doc,$infos['submission']['infos']['help'],$infos['instrument']['infos']['help'],$infos['dataset']['infos']['help']);
+    
+    foreach ($infos['dataset']['infos']['contributor'] as $c)
+      $this->addContributor($newres_doc,$c);
+    
+    $this->setCalibration($newres_doc,$infos['dataset']['infos']['calibration']);
+
+    $this->setFormat($newres_doc,"votable");
+    
+    if (!isset($infos['mission']['infos']['group']) || ($infos['mission']['infos']['group'] == ""))
+      $this->setRight($newres_doc,"secure");
+    else
+      $this->setRight($newres_doc,"proprietary");
+    
+    $this->setResourceType($newres_doc,"dataset");
+    
+    $this->setInstrument($newres_doc,$infos['mission']['id'],$infos['submission']['name'],$infos['submission']['infos']['class'],
+                         $infos['instrument']['infos']['id'],$infos['instrument']['name'],$infos['instrument']['infos']['alternamename'],
+                         $infos['instrument']['infos']['class'],$infos['instrument']['infos']['refURL']);
+    
+    foreach ($infos['dataset']['infos']['target'] as $t)
+      $this->addTarget($newres_doc,$t);
+
+    $this->setMeasurementType($newres_doc,$infos['dataset']['infos']['parameters']);
+
+    $this->setTimeInterval($newres_doc,$dataset_id,$infos['dataset']['infos']['minsampling'],$infos['dataset']['infos']['maxsampling'],
+                           $infos['dataset']['infos']['starttime'],$infos['dataset']['infos']['stoptime']);
+
+    foreach ($infos['dataset']['infos']['parameters'] as $param)
+      $this->addColumn($newres_doc,$param['name'],$param['description'],$param['units'],$param['ucd'],$param['type'],'float');
+                           
+    $newres_doc->save($newres_path);
+   // printf("[INFO] Create new EPN resource file %s\n",$newres_path);
+  }
+
+  function setDataCollection($res_doc,$id,$created,$updated,$status)
+  {
+    $node = $this->getDataCollection($res_doc);
+    $node->setAttribute('id',$id);
+    $node->setAttribute('created',$created);
+    $node->setAttribute('updated',$updated);
+    $node->setAttribute('status',$status);
+  }
+
+  function setPublisher($res_doc,$publisher)
+  {
+    $node = $this->getPublisher($res_doc);
+    $node->nodeValue = $publisher;
+  }
+
+  function setContact($res_doc,$ivo_id,$name,$address,$email,$telephone)
+  {
+    $node = $this->getContactName($res_doc);
+    $node->setAttribute('ivo-id',$ivo_id);
+    $node->nodeValue = $name;
+    $node = $this->getContactAddress($res_doc);
+    $node->nodeValue = $address;
+    $node = $this->getContactEmail($res_doc);
+    $node->nodeValue = $email;
+    $node = $this->getContactTelephone($res_doc);
+    $node->nodeValue = $telephone;
+  }
+
+  function setReferenceURL($res_doc,$mission_help,$instrument_help,$dataset_help)
+  {
+    $node = $this->getReferenceURL($res_doc);
+    if (isset($dataset_help) && ($dataset_help != ''))
+      $node->nodeValue = $dataset_help;
+    else if (isset($instrument_help) && ($instrument_help != ''))
+      $node->nodeValue = $instrument_help;
+    else if (isset($mission_help) && ($mission_help != ''))
+      $node->nodeValue = $mission_help;
+    else
+      $node->nodeValue = EPNRES_REFERENCE_URL;
+  }
+
+  function getRealSampling($sampling)
+  {
+  	 list($val,$unit) = sscanf($sampling,"%f%s");
+    if ($unit == "s")
+      $sampling = 1*$sampling;
+    else if ($unit == "m")
+      $sampling = 60*$sampling;
+    else if ($unit == "h")
+      $sampling = 3600*$sampling;
+    else if ($unit == "Hz")
+      $sampling = 1./$sampling;
+    else
+      printf("[WARNING] EPNResource : Unknown sampling unit %s\n",$unit);
+    return $sampling;
+  }
+  
+  function getRealStartStop($name)
+  {
+  	 return $this->amdaClient->client->getStartStop($name);
+	 }
+  
+  function days2MonthDay($oldDate)
+  {
+    list($year, $day, $hour, $min, $sec) = sscanf($oldDate, "%04d%03d%02d%02d%02d");
+    $newDate = date("Y-m-d\TH:i:s",strtotime("+$day days",strtotime("$year-01-01 $hour:$min:$sec")));
+    return $newDate;
+  }
+  
+  function setTimeInterval($res_doc,$dataset_id,$minres,$maxres,$start,$stop)
+  {
+    $node = $this->getTimeInterval($res_doc);
+    $node->setAttribute('ucd','time.epoch');
+    $node = $this->getSamplingStep($res_doc);
+    if ($minres == $maxres)
+      $node->setAttribute('type','constant');
+    else
+      $node->setAttribute('type','variable');
+    $node->setAttribute('unit','secondes');
+    $node = $this->getMinSamplingStep($res_doc);
+    $node->nodeValue = $this->getRealSampling($minres);
+    $node = $this->getMaxSamplingStep($res_doc);
+    $node->nodeValue = $this->getRealSampling($maxres);
+    
+    $startstop = $this->getRealStartStop($dataset_id);
+    $Time = explode("-",$startstop);
+    
+    $node = $this->getStartTimeISO($res_doc);
+    $node->nodeValue = $this->days2MonthDay($Time[0]);
+    $node  = $this->getStopTimeISO($res_doc);
+    $node->nodeValue = $this->days2MonthDay($Time[1]);
+    $node = $this->getTimeScale($res_doc);
+    $node->nodeValue = 'UTC';
+  }
+
+  function setAccessURL($res_doc,$access_url)
+  {
+    $node = $this->getAccessURL($res_doc);
+    $node->nodeValue = $access_url;
+  }
+
+  function setTitle($res_doc,$title)
+  {
+    $node = $this->getTitle($res_doc);
+    $node->nodeValue = $title;
+  }
+
+  function setShortName($res_doc,$shortName)
+  {
+    $node = $this->getShortName($res_doc);
+    $node->nodeValue = $shortName;
+  }
+
+  function setIdentifier($res_doc,$ivo_id,$dataset_id)
+  {
+    $node = $this->getIdentifier($res_doc);
+    $node->nodeValue = $ivo_id."/".$dataset_id;
+  }
+
+  function setCreator($res_doc,$name,$logo)
+  {
+    $node = $this->getCreatorName($res_doc);
+    $node->nodeValue = $name;
+
+    $node = $this->getCreatorLogo($res_doc);
+    $node->nodeValue = $logo;
+  }
+
+  function setCalibration($res_doc,$cal)
+  {
+    $node = $this->getCalibration($res_doc);
+    $node->nodeValue = $cal;
+  }
+
+  function setResourceType($res_doc,$type)
+  {
+    $node = $this->getResourceType($res_doc);
+    $node->nodeValue = $type;
+  }
+
+  function setInstrument($res_doc,$mis_id,$submis_name,$mis_class,$inst_id,$inst_name,$inst_altname,$inst_class,$inst_refurl)
+  {
+    $node = $this->getInstrument($res_doc);
+
+    $node->setAttribute('id',$inst_id);
+    
+    $node = $this->getFacility($res_doc);
+    $node->setAttribute('ivo-id',EPNRES_IVOID_MIS."/".$submis_name);
+    $node->setAttribute('class',$mis_class);
+
+    $node = $this->getResourceName($res_doc);
+    $node->nodeValue = $mis_id;
+
+    $node = $this->getInstrumentName($res_doc);
+    $node->setAttribute('ivo-id',EPNRES_IVOID_INST."/".$inst_id);
+    $node->nodeValue = $inst_name;
+
+    foreach ($inst_altname as $a)
+      $this->addInstAltName($res_doc,$a);
+      
+    foreach ($inst_class as $c)
+      $this->addInstClass($res_doc,$c);
+
+    $node = $this->getInstrumentReferenceURL($res_doc);
+    $node->setAttribute('use','full');
+
+    $node = $this->getAnyURI($res_doc);
+    $node->nodeValue = $inst_refurl;
+    
+    $instnode = $this->inst_xp->query("//Instruments/instrument[@id='".$inst_id."']");
+    if ($instnode->length < 1)
+    {
+    	 $instnode = $this->inst_doc->importNode($this->getInstrument($res_doc),true);
+    	 $this->inst_doc->documentElement->appendChild($instnode);
+    }
+  }
+
+  function setMeasurementType($res_doc,$params)
+  {
+    $node = $this->getMeasurementType($res_doc);
+    
+    $ucds = array();
+    foreach ($params as $param)
+    {
+    	 $param_ucds = explode($param['ucd'],";");
+    	 foreach ($param_ucds as $param_ucd)
+    	 {
+    	   if ($param_ucd == 'ToDo')
+    	     continue;
+        $toadd = true;
+    	   foreach ($ucds as $ucd)
+    	     if ($ucd == $param_ucd)
+    	     {
+    	   	   $toadd = false;
+    	   	   break;
+    	     }
+    	   if ($toadd)
+    	     array_push($ucds,$param['ucd']);
+    	 }
+    }
+    
+    $ucd_str = "";
+    foreach ($ucds as $ucd)
+    {
+    	 if ($ucd_str != "")
+    	   $ucd_str .= ";";
+    	 $ucd_str .= $ucd;
+    }
+    
+    $node->nodeValue = $ucd_str;
+  }
+
+  function setFormat($res_doc,$format)
+  {
+    $node = $this->getFormat($res_doc);
+    $node->nodeValue = $format;
+  }
+
+  function setRight($res_doc,$right)
+  {
+    $node = $this->getRight($res_doc);
+    $node->nodeValue = $right;
+  }
+
+  function setDescription($res_doc,$description)
+  {
+    $node = $this->getDescription($res_doc);
+    $node->nodeValue .= $description;
+  }
+
+  function addTarget($res_doc,$target_id)
+  {
+  	 //find target in targets file
+  	 $tar_info = $this->targ_xp->query("//Targets/TargetType[@id='".$target_id."']");
+  	 if ($tar_info->length < 1)
+  	 {
+  	 	 printf("[WARNING] Cannot find target info %s\n",$target_id);
+  	 	 return;
+  	 }
+  	 $tar_info = $tar_info->item(0);
+  	
+  	 //add target in epn resource
+  	 $targets = $this->getTargets($res_doc);
+  	 
+  	 $targetnodes = $targets->getElementsByTagName("TargetType");
+    foreach ($targetnodes as $targetnode)
+      if ($targetnode->getAttribute("id") == $target_id)
+        return;
+    
+    foreach ($targetnodes as $targetnode)
+       if ($targetnode->getAttribute("id") == '')
+         $targets->removeChild($targetnode);
+       
+    $node = $res_doc->importNode($tar_info,true);
+    $targets->appendChild($node);
+  }
+  
+  function addColumn($res_doc,$param_name,$param_des,$param_unit,$param_ucd,$param_datatype,$param_prodtype)
+  {
+    $schema = $this->getSchema($res_doc);
+
+    $columns = $schema->getElementsByTagName("column");
+    foreach ($columns as $column)
+    {
+      $names = $column->getElementsByTagName("name");
+      if ($names->length < 1)
+        continue;
+      if (($names->item(0)->nodeValue == $param_name) || ($names->item(0)->nodeValue == ''))
+      {
+        $param_column = $column;
+        break;
+      }
+    }
+    if (!isset($param_column))
+    {
+      //create new column
+      $param_column = $this->addToNode($res_doc,$schema,'column');
+      $this->addToNode($res_doc,$param_column,'name');
+      $this->addToNode($res_doc,$param_column,'description');
+      $this->addToNode($res_doc,$param_column,'unit');
+      $this->addToNode($res_doc,$param_column,'ucd');
+      $this->addToNode($res_doc,$param_column,'dataproduct_type');
+      $this->addToNode($res_doc,$param_column,'dataType');
+    }
+    //set param info
+    $node = $this->getFromNode($res_doc,$param_column,'name');
+    $node->nodeValue = $param_name;
+    $node = $this->getFromNode($res_doc,$param_column,'description');
+    $node->nodeValue = $param_des;
+    $node = $this->getFromNode($res_doc,$param_column,'unit');
+    $node->nodeValue = $param_unit;
+    $node = $this->getFromNode($res_doc,$param_column,'ucd');
+    $node->nodeValue = $param_ucd;
+    $node = $this->getFromNode($res_doc,$param_column,'dataproduct_type');
+    $node->nodeValue = $param_datatype;
+    $node = $this->getFromNode($res_doc,$param_column,'dataType');
+    $node->nodeValue = $param_prodtype;
+  }
+
+  function addSubject($res_doc,$subject)
+  {
+  	 $content = $this->getContent($res_doc);
+
+    $subjects = $content->getElementsByTagName("subject");
+    foreach($subjects as $s)
+      if ($s->nodeValue == $subject)
+        return;
+
+    foreach($subjects as $s)
+      if ($s->nodeValue == '')
+      {
+        $s->nodeValue = $subject;
+        return;
+      }
+
+    $s = $this->addToNode($res_doc,$content,'subject');
+    $s->nodeValue = $subject;
+  }
+  
+  function addContributor($res_doc,$contributor)
+  {
+  	 $content = $this->getContent($res_doc);
+
+    $contributors = $content->getElementsByTagName("contributor");
+    foreach($contributors as $c)
+      if ($c->nodeValue == $contributor)
+        return;
+
+    foreach($contributors as $c)
+      if ($c->nodeValue == '')
+      {
+        $c->nodeValue = $contributor;
+        return;
+      }
+
+    $c = $this->addToNode($res_doc,$content,'contributor');
+    $c->nodeValue = $contributor;
+  }
+  
+  function addInstAltName($res_doc,$altName)
+  {
+  	 $content = $this->getInstrument($res_doc);
+
+    $altnames = $content->getElementsByTagName("alternateInstrumentName");
+    foreach($altnames as $a)
+      if ($a->nodeValue == $altName)
+        return;
+
+    foreach($altnames as $a)
+      if ($a->nodeValue == '')
+      {
+        $a->nodeValue = $altName;
+        return;
+      }
+
+    $a = $this->addToNode($res_doc,$content,'alternateInstrumentName');
+    $a->nodeValue = $altName;
+  }
+  
+  function addInstClass($res_doc,$class)
+  {
+  	 $content = $this->getInstrument($res_doc);
+
+    $classes = $content->getElementsByTagName("instrumentClass");
+    foreach($classes as $c)
+      if ($c->nodeValue == $class)
+        return;
+
+    foreach($classes as $c)
+      if ($c->nodeValue == '')
+      {
+        $c->nodeValue = $class;
+        return;
+      }
+
+    $c = $this->addToNode($res_doc,$content,'instrumentClass');
+    $c->nodeValue = $class;
+  }
+  
+  function addToNode($res_doc,$node,$tagname)
+  {
+    $newnode = $res_doc->createElement($tagname);
+    $node->appendChild($newnode);
+    return $newnode;    
+  }
+
+  function getFromNode($res_doc,$node,$tagname)
+  {
+    $nodes = $node->getElementsByTagName($tagname);
+    if ($nodes->length == 0)
+      return $this->addToNode($res_doc,$node,$tagname);
+    return $nodes->item(0);
+  }
+
+  function getDataCollection($res_doc)
+  {
+    return $this->getFromNode($res_doc,$res_doc,'DataCollection');
+  }
+
+  function getAccessURL($res_doc)
+  {
+    return $this->getFromNode($res_doc,$this->getDataCollection($res_doc),'accessURL');
+  }
+
+  function getTitle($res_doc)
+  {
+    return $this->getFromNode($res_doc,$this->getDataCollection($res_doc),'title');
+  }
+
+  function getShortName($res_doc)
+  {
+    return $this->getFromNode($res_doc,$this->getDataCollection($res_doc),'shortName');
+  }
+
+  function getIdentifier($res_doc)
+  {
+    return $this->getFromNode($res_doc,$this->getDataCollection($res_doc),'Identifier');
+  }
+
+  function getCuration($res_doc)
+  {
+    return $this->getFromNode($res_doc,$this->getDataCollection($res_doc),'curation');
+  }
+
+  function getPublisher($res_doc)
+  {
+    return $this->getFromNode($res_doc,$this->getCuration($res_doc),'publisher');
+  }
+
+  function getCreator($res_doc)
+  {
+    return $this->getFromNode($res_doc,$this->getCuration($res_doc),'creator');
+  }
+
+  function getCreatorName($res_doc)
+  {
+    return $this->getFromNode($res_doc,$this->getCreator($res_doc),'name');
+  }
+
+  function getCreatorLogo($res_doc)
+  {
+    return $this->getFromNode($res_doc,$this->getCreator($res_doc),'logo');
+  }
+
+  function getContact($res_doc)
+  {
+    return $this->getFromNode($res_doc,$this->getCuration($res_doc),'contact');
+  }
+
+  function getContactName($res_doc)
+  {
+    return $this->getFromNode($res_doc,$this->getContact($res_doc),'name');
+  }
+
+  function getContactAddress($res_doc)
+  {
+    return $this->getFromNode($res_doc,$this->getContact($res_doc),'address');
+  }
+
+  function getContactEmail($res_doc)
+  {
+    return $this->getFromNode($res_doc,$this->getContact($res_doc),'email');
+  }
+
+  function getContactTelephone($res_doc)
+  {
+    return $this->getFromNode($res_doc,$this->getContact($res_doc),'telephone');
+  }
+
+  function getContent($res_doc)
+  {
+    return $this->getFromNode($res_doc,$this->getDataCollection($res_doc),'content');
+  }
+
+  function getSubject($res_doc)
+  {
+    return $this->getFromNode($res_doc,$this->getContent($res_doc),'subject');
+  }
+
+  function getDescription($res_doc)
+  {
+    return $this->getFromNode($res_doc,$this->getContent($res_doc),'description');
+  } 
+
+  function getReferenceURL($res_doc)
+  {
+    return $this->getFromNode($res_doc,$this->getContent($res_doc),'referenceURL');
+  }
+
+  function getContributor($res_doc)
+  {
+    return $this->getFromNode($res_doc,$this->getContent($res_doc),'contributor');
+  }
+
+  function getResource($res_doc)
+  {
+    return $this->getFromNode($res_doc,$this->getDataCollection($res_doc),'resource');
+  }
+
+  function getDataset($res_doc)
+  {
+    return $this->getFromNode($res_doc,$this->getResource($res_doc),'dataset');
+  }
+
+  function getGeneralMetadata($res_doc)
+  {
+    return $this->getFromNode($res_doc,$this->getDataset($res_doc),'generalMetadata');
+  }
+
+  function getFormat($res_doc)
+  {
+    return $this->getFromNode($res_doc,$this->getGeneralMetadata($res_doc),'format');
+  }
+
+  function getRight($res_doc)
+  {
+    return $this->getFromNode($res_doc,$this->getGeneralMetadata($res_doc),'right');
+  }
+
+  function getResourceType($res_doc)
+  {
+    return $this->getFromNode($res_doc,$this->getGeneralMetadata($res_doc),'resource_type');
+  }
+
+  function getCalibration($res_doc)
+  {
+    return $this->getFromNode($res_doc,$this->getGeneralMetadata($res_doc),'calibration');
+  }
+
+  function getInstrument($res_doc)
+  {
+    return $this->getFromNode($res_doc,$this->getDataset($res_doc),'instrument');
+  }
+
+  function getFacility($res_doc,$inst)
+  {
+    return $this->getFromNode($res_doc,(isset($inst) ? $inst : $this->getInstrument($res_doc)),'facility');
+  }
+
+  function getResourceName($res_doc,$inst)
+  {
+    return $this->getFromNode($res_doc,$this->getFacility($res_doc,$inst),'ResourceName');
+  }
+
+  function getInstrumentName($res_doc,$inst)
+  {
+    return $this->getFromNode($res_doc,(isset($inst) ? $inst : $this->getInstrument($res_doc)),'InstrumentName');
+  }
+
+  function getAlternateInstrumentName($res_doc,$inst)
+  {
+    return $this->getFromNode($res_doc,(isset($inst) ? $inst : $this->getInstrument($res_doc)),'alternateInstrumentName');
+  }
+
+  function getInstrumentClass($res_doc,$inst)
+  {
+    return $this->getFromNode($res_doc,(isset($inst) ? $inst : $this->getInstrument($res_doc)),'instrumentClass');
+  }
+
+  function getInstrumentReferenceURL($res_doc,$inst)
+  {
+    return $this->getFromNode($res_doc,(isset($inst) ? $inst : $this->getInstrument($res_doc)),'referenceURL');
+  }
+
+  function getAnyURI($res_doc,$inst)
+  {
+    return $this->getFromNode($res_doc,$this->getInstrumentReferenceURL($res_doc,$inst),'anyURI');
+  }
+
+  function getTargets($res_doc)
+  {
+    return $this->getFromNode($res_doc,$this->getDataset($res_doc),'targets');
+  }
+
+  function getTargetType($res_doc)
+  {
+    return $this->getFromNode($res_doc,$this->getTargets($res_doc),'TargetType');
+  }
+
+  function getTargetClass($res_doc)
+  {
+    return $this->getFromNode($res_doc,$this->getTargetType($res_doc),'targetClass');
+  }
+
+  function getCoverage($res_doc)
+  {
+    return $this->getFromNode($res_doc,$this->getDataCollection($res_doc),'coverage');
+  }
+
+  function getMeasurementType($res_doc)
+  {
+    return $this->getFromNode($res_doc,$this->getCoverage($res_doc),'measurementType');
+  }
+
+  function getAstroCoordSystem($res_doc)
+  {
+    return $this->getFromNode($res_doc,$this->getCoverage($res_doc),'AstroCoordSystem');
+  }
+
+  function getTimeFrame($res_doc)
+  {
+    return $this->getFromNode($res_doc,$this->getAstroCoordSystem($res_doc),'TimeFrame');
+  }
+
+  function getTimeScale($res_doc)
+  {
+    return $this->getFromNode($res_doc,$this->getTimeFrame($res_doc),'TimeScale');
+  }
+
+  function getAstroCoordArea($res_doc)
+  {
+    return $this->getFromNode($res_doc,$this->getCoverage($res_doc),'AstroCoordArea');
+  }
+
+  function getTimeInterval($res_doc)
+  {
+    return $this->getFromNode($res_doc,$this->getAstroCoordArea($res_doc),'TimeInterval');
+  }
+
+  function getIntegrationTime($res_doc)
+  {
+    return $this->getFromNode($res_doc,$this->getTimeInterval($res_doc),'resolution');
+  }
+
+  function getMinIntegrationTime($res_doc)
+  {
+    return $this->getFromNode($res_doc,$this->getIntegrationTime($res_doc),'minResolution');
+  }
+
+  function getMaxIntegrationTime($res_doc)
+  {
+    return $this->getFromNode($res_doc,$this->getIntegrationTime($res_doc),'maxResolution');
+  }
+
+  function getSamplingStep($res_doc)
+  {
+    return $this->getFromNode($res_doc,$this->getTimeInterval($res_doc),'SamplingStep');
+  }
+
+  function getMinSamplingStep($res_doc)
+  {
+    return $this->getFromNode($res_doc,$this->getSamplingStep($res_doc),'minSamplingStep');
+  }
+
+  function getMaxSamplingStep($res_doc)
+  {
+    return $this->getFromNode($res_doc,$this->getSamplingStep($res_doc),'maxSamplingStep');
+  }
+
+  function getStartTime($res_doc)
+  {
+    return $this->getFromNode($res_doc,$this->getTimeInterval($res_doc),'StartTime');
+  }
+
+  function getStartTimeISO($res_doc)
+  { 
+    return $this->getFromNode($res_doc,$this->getStartTime($res_doc),'ISOTime');
+  }
+
+  function getStopTime($res_doc)
+  {
+    return $this->getFromNode($res_doc,$this->getTimeInterval($res_doc),'StopTime');
+  }
+
+  function getStopTimeISO($res_doc)
+  {
+    return $this->getFromNode($res_doc,$this->getStopTime($res_doc),'ISOTime');
+  }
+
+  function getSpectralInterval($res_doc)
+  {
+    return $this->getFromNode($res_doc,$this->getAstroCoordArea($res_doc),'SpectralInterval');
+  }
+
+  function getSpectralResolution($res_doc)
+  {
+    return $this->getFromNode($res_doc,$this->getSpectralInterval($res_doc),'resolution');
+  }
+
+  function getSpectralMinResolution($res_doc)
+  {
+    return $this->getFromNode($res_doc,$this->getSpectralResolution($res_doc),'minResolution');
+  }
+
+  function getSpectralMaxResolution($res_doc)
+  {
+    return $this->getFromNode($res_doc,$this->getSpectralResolution($res_doc),'maxResolution');
+  }
+
+  function getSpectralLoLimit($res_doc)
+  {
+    return $this->getFromNode($res_doc,$this->getSpectralInterval($res_doc),'LoLimit');
+  }
+
+  function getSpectralHiLimit($res_doc)
+  {
+    return $this->getFromNode($res_doc,$this->getSpectralInterval($res_doc),'HiLimit');
+  }
+
+  function getSpectralSamplingStep($res_doc)
+  {
+    return $this->getFromNode($res_doc,$this->getSpectralInterval($res_doc),'SamplingStep');
+  }
+  
+  function getMinSpectralSamplingStep($res_doc)
+  {
+    return $this->getFromNode($res_doc,$this->getSpectralSamplingStep($res_doc),'minSamplingStep');
+  }
+   
+  function getMaxSpectralSamplingStep($res_doc)
+  {
+    return $this->getFromNode($res_doc,$this->getSpectralSamplingStep($res_doc),'maxSamplingStep');
+  }
+
+  function getSpectralParticles($res_doc)
+  {
+    return $this->getFromNode($res_doc,$this->getAstroCoordArea($res_doc),'SpectralParticles');
+  }
+
+  function getParticlesResolution($res_doc)
+  {
+    return $this->getFromNode($res_doc,$this->getSpectralParticles($res_doc),'resolution');
+  }
+
+  function getParticlesMinResolution($res_doc)
+  {
+    return $this->getFromNode($res_doc,$this->getParticlesResolution($res_doc),'minResolution');
+  }
+
+  function getParticlesMaxResolution($res_doc)
+  {
+    return $this->getFromNode($res_doc,$this->getParticlesResolution($res_doc),'maxResolution');
+  }
+
+  function getParticlesLoLimit($res_doc)
+  {
+    return $this->getFromNode($res_doc,$this->getSpectralParticles($res_doc),'LoLimit');
+  }
+
+  function getParticlesHiLimit($res_doc)
+  {
+    return $this->getFromNode($res_doc,$this->getSpectralParticles($res_doc),'HiLimit');
+  }
+
+  function getParticlesSamplingStep($res_doc)
+  {
+    return $this->getFromNode($res_doc,$this->getSpectralParticles($res_doc),'SamplingStep');
+  }
+  
+  function getMinParticlesSamplingStep($res_doc)
+  {
+    return $this->getFromNode($res_doc,$this->getParticlesSamplingStep($res_doc),'minSamplingStep');
+  }
+   
+  function getMaxParticlesSamplingStep($res_doc)
+  {
+    return $this->getFromNode($res_doc,$this->getParticlesSamplingStep($res_doc),'maxSamplingStep');
+  }
+
+  function getTableset($res_doc)
+  {
+    return $this->getFromNode($res_doc,$this->getDataCollection($res_doc),'tableset');
+  }
+
+  function getSchema($res_doc)
+  {
+    return $this->getFromNode($res_doc,$this->getTableset($res_doc),'schema');
+  }
+
+  function getSchemaColumn($res_doc)
+  {
+    return $this->getFromNode($res_doc,$this->getSchema($res_doc),'column');
+  }
+
+  function getSchemaColumnName($res_doc)
+  {
+    return $this->getFromNode($res_doc,$this->getSchemaColumn($res_doc),'name');
+  }
+
+  function getSchemaColumnDescription($res_doc)
+  {
+    return $this->getFromNode($res_doc,$this->getSchemaColumn($res_doc),'description');
+  }
+
+  function getSchemaColumnUnit($res_doc)
+  {
+    return $this->getFromNode($res_doc,$this->getSchemaColumn($res_doc),'unit');
+  }
+
+  function getSchemaColumnUCD($res_doc)
+  {
+    return $this->getFromNode($res_doc,$this->getSchemaColumn($res_doc),'ucd');
+  }
+
+  function getSchemaColumnDataType($res_doc)
+  {
+    return $this->getFromNode($res_doc,$this->getSchemaColumn($res_doc),'dataType');
+  }
+
+  function getSchemaColumnDataproductType($res_doc)
+  {
+    return $this->getFromNode($res_doc,$this->getSchemaColumn($res_doc),'dataproduct_type');
+  }
+}
+?>
\ No newline at end of file
diff --git a/php/classes/FeedbackMgr.php b/php/classes/FeedbackMgr.php
new file mode 100644
index 0000000..91b321e
--- /dev/null
+++ b/php/classes/FeedbackMgr.php
@@ -0,0 +1,98 @@
+<?php
+/**
+ * @class FeedbackMgr
+ * @version $Id: FeedbackMgr.php 1804 2013-09-23 16:28:52Z elena $
+ *    
+ */
+
+  class FeedbackMgr
+  {
+  	protected $feedXml, $feedXmlName;
+  	
+  	protected $emails = 'amda@irap.omp.eu';
+  	
+  	function __construct()
+  	{
+
+  	}
+  	
+  	function addFeedback($user, $interface, $subject, $userText, $userAgent, $attach)
+  	{
+  		 if ($user == null)
+  	    return 'err_user';
+  		
+  	  //send feedback to emails list
+  	  $this->sendEmail($user, $interface, $userText, $attach);
+  		
+  	  //load feedback file
+  	  
+  	  if (!file_exists(FeedbackXml))
+  	             return 'err_file';
+      $this->feedXmlName = FeedbackXml;
+      $this->feedXml = new DomDocument("1.0","UTF-8");
+      $this->feedXml->preserveWhiteSpace = false;
+      $this->feedXml->formatOutput = true;
+      if (file_exists($this->feedXmlName)) 
+      {
+        $this->feedXml->load($this->feedXmlName);
+        $rootElement = $this->feedXml->documentElement;
+      }
+      else
+      {
+      	$rootElement = $this->feedXml->createElement("root");
+        $this->feedXml->appendChild($rootElement);
+      }
+      
+      if (($this->feedXml == null) or ($rootElement == null))
+        return 'err_file';
+      
+      //get feed id - ToDo - to improve
+  	  $N = $this->feedXml->getElementsByTagName("issue")->length > 0 ? $this->feedXml->getElementsByTagName("issue")->length : 0;
+      
+  	  $issue = $this->feedXml->createElement("issue", htmlspecialchars($userText));
+      $issue->setAttribute("user", $user);
+      $issue->setAttribute("userAgent", $userAgent);
+      $issue->setAttribute('interface',$interface);
+      $issue->setAttribute('IP',getenv('REMOTE_ADDR'));
+      $issue->setAttribute("date", date("Y-m-d"));
+      $issue->setAttribute("xml:id", $N);
+      $issue->setAttribute("subject", $subject);
+      if (isset($attach) && ($attach != ''))
+      	 $issue->setAttribute("attachement",$attach); 
+
+      $rootElement->appendChild($issue);
+      $this->feedXml->save($this->feedXmlName);
+      
+      return 'none';
+  	}
+  	
+    protected function sendEmail($user, $interface, $userText, $attach)
+  	{
+  		  $amda = new AmdaClient();
+   	  $result = $amda->getUserInfo($user);
+   	  
+   	  if ($result['success'])
+   	  {
+   	  	 $from = $result['email'];
+   	  	 $to   = $this->emails.",".$result['email'];
+   	  }
+   	  else
+   	  {
+   	  	 $from = $user;
+   	  	 $to   = $this->emails;
+   	  }
+  		
+      $subject = 'AMDA FEEDBACK: '.$interface;
+      $message = $userText;
+      if (isset($attach) && ($attach != ''))
+      		$message .= "\r\nAttachment : ".$attach;
+      $headers = 'From: '.$from."\r\n".
+                 'Content-type: text/plain; charset=UTF-8';
+   	  
+      mail($to, $subject, $message, $headers);
+  	}
+  	
+  }
+
+?>
+       
\ No newline at end of file
diff --git a/php/classes/FilesMgr.php b/php/classes/FilesMgr.php
new file mode 100644
index 0000000..4df45d8
--- /dev/null
+++ b/php/classes/FilesMgr.php
@@ -0,0 +1,1229 @@
+<?php
+/**
+ * @class FilesMgr
+ * @brief
+ * @author Elena
+ * @version $Id: FilesMgr.php 2830 2015-03-26 10:33:05Z elena $ 
+ */
+
+// private $userDirs = array('USERWSDIR' => 'WS', 'USERREQDIR' => 'REQ', 'USERDATADIR' => 'DATA',
+//			     'USERWORKINGDIR' =>'RES', 'USERTTDIR' => 'TT', 'USERJOBDIR' => 'JOBS');	
+
+class FilesMgr extends AmdaObjectMgr {
+
+    private  $fileName, $fileId, $theFile;     
+    public $xp;
+    private $fileMgr = NULL; //used when a file format needs to use a specific manager
+    private $sampling = -100.0, $maxSampling = -100.0;
+    private $ncID = NULL;
+    private $simuContentRootId;
+
+    function __construct() 
+    {   
+        parent::__construct('Files.xml');
+        $this->contentRootId = 'myData-treeRootNode';
+        $this->contentRootTag = 'fileList';
+        $this->attributes = array('name' => '', 'start' => '', 'stop' => '');
+        $this->optionalAttributes = array();
+        $this->objTagName = 'file';
+
+        if (!file_exists($this->xmlName)) {
+                $this->createDom();
+                $this->xp = new domxpath($this->contentDom); 
+        } 
+    }
+
+/*
+*       Create Content Dom 'Files.xml' if it doesn't exist 	
+*/	
+    protected function createDom() 
+    {                            
+        $rootElement = $this->contentDom->createElement('ws');   
+        
+        $typeElement = $this->contentDom->createElement($this->contentRootTag);
+        $typeElement->setAttribute('xml:id', $this->contentRootId);
+        $rootElement->appendChild($typeElement);		
+        $this->contentDom->appendChild($rootElement);
+        
+      //  $typeElement = $this->contentDom->createElement($this->contentRootTag);
+      //  $rootElement->appendChild($typeElement);		
+      //  $this->contentDom->appendChild($rootElement);
+        
+        $this->contentDom->save($this->xmlName);          
+    }
+    
+/*
+ *    VOTable format processing done by an instance of VOTableMgr
+ */
+
+    protected function getVotFileMgr()
+    {
+        if (!$this->fileMgr)
+        {
+            $this->fileMgr = new VOTableMgr();
+            $this->fileMgr->load($this->fileName);
+        }
+
+        return $this->fileMgr;
+    }
+
+      
+/*
+*     CDF format processing
+*/      
+    protected function getCdfStartStop() 
+    {  
+        exec('cdfstartstopfromdata '.$this->fileName, $start_stop); 
+        return $start_stop[0];  
+    }
+
+    protected function getCdfVars() 
+    {
+        exec('cdfinfo '.$this->fileName, $results);
+        return $results;
+    }
+
+
+    protected function getCdfVarInfo($cdfVarId) 
+    {
+        exec('cdfvarinfo '.$this->fileName.' '.$cdfVarId, $results);
+        $tempArr = explode(' ', $results[0]);
+        // data type
+        switch ($tempArr[0]) 
+        {
+            case "CDF_FLOAT" :
+            case "CDF_REAL4" : $data_type = 'FLOAT';
+                            break;
+            case "CDF_INT2":  
+            case "CDF_UCHAR":  
+            case "CDF_UINT1" : $data_type = 'SHORT';
+                            break;
+            case "CDF_UINT2":
+            case "CDF_INT4" : $data_type = 'INTEGER';
+                            break;
+            case "CDF_DOUBLE":  
+            case "CDF_REAL8":   
+            case "CDF_UINT4":  $data_type = 'DOUBLE'; 
+                            break;
+            default : $data_type = 'FLOAT';
+        }
+        // data dimensions & number of records
+        $n_recs = $tempArr[2];
+
+        if ($tempArr[1] != 0) {		 
+            $size = $tempArr[3];
+            //TODO 2D,3D,4D array no processing	
+            //   if ($tempArr[1] > 1) 
+        }
+        else {
+            $size = 1;		  
+        } 
+ 
+        return array('type' => $data_type, 'size' => $size, 'n_records' => $n_recs);
+    }
+
+    protected function getCdfSampling() 
+    {
+        copy($this->fileName, "temp.cdf");         
+        exec('cdfsamplingfromdata ', $results);
+        unlink("temp.cdf");
+
+        return $results;
+    }
+
+
+/*
+*       CEF format processing
+*/
+    protected function getCefStartStop() {  
+        exec("cefstartstop ".$this->fileName, $start_stop);
+        return $start_stop[0];
+    }
+
+    protected function getCefTimeInfo() {  
+
+        $timeinfo = exec("ceftimeinfo ".$this->fileName);
+
+        return $timeinfo;
+    }
+
+    protected function getCefVars() {
+        exec('cefinfo '.$this->fileName, $results);
+        return $results;
+    }
+
+    protected function getCefVarInfo($cdfVarId) {
+        exec('cefvarinfo '.$this->fileName." ".$cdfVarId, $results);
+
+        $tempArr = explode(' ', $results[0]);
+        // data type
+        switch ($tempArr[0]) {
+            case "CEF_FLOAT" : $data_type = 'FLOAT';
+                                break;
+            case "CEF_SHORT":  $data_type = 'SHORT';
+                                break;
+            case "CEF_INT":  $data_type = 'INTEGER';
+                            break;
+            case "CEF_DOUBLE": $data_type = 'DOUBLE'; 
+                            break;
+            default : $data_type = 'FLOAT';
+            }
+        // data dimensions & number of records3
+        $n_recs = $tempArr[2];
+
+        if ($tempArr[1] != 0) {		 
+            $size = $tempArr[3];
+        //TODO 2D,3D,4D array no processing	
+        //   if ($tempArr[1] > 1) 
+        }
+        else {
+            $size = 1;		  
+        } 
+ 
+        return array('type' => $data_type, 'size' => $size, 'n_records' => 'TBD');       
+    }
+
+    protected function getCefSampling() {
+        exec('cefsampling '.$this->fileName, $results);        
+        return $results;
+    }
+
+/*
+*       netCDF format processing if needed
+*/
+    protected function reformatNcTime() {
+        exec('nctimestring2double '.$this->fileName, $results); 
+        return $results[0]; 
+    }
+        
+    protected function getNcTimeInfo() {
+        exec('nctimeinfo '.$this->fileName, $result); 
+        return $result[0];  
+    }
+
+    protected function  getNcVars(){
+        exec('getncvars '.$this->fileName, $result); 
+        if ($result[0] < 0)
+                    return $result[0];
+        $varsArr = explode("#",$result[0]);
+	 
+        return  $varsArr;
+    }
+
+    protected function getNcVarInfo($varId) {
+
+        exec('ncvarinfo '.$this->fileName.' '.$this->param2dd($varId), $results);
+        $tempArr = explode(' ', $results[0]); 
+    // data type
+        switch ($tempArr[0]) {
+            case "5": $data_type = 'FLOAT';
+                    break;
+            case "3": $data_type = 'SHORT';
+                    break;
+            case "4" : $data_type = 'INTEGER';
+                    break;
+            case "6": $data_type = 'DOUBLE';               
+                    break;
+            default: $data_type = 'FLOAT';
+            }
+        // data dimensions & number of records
+        $n_recs = $tempArr[2];
+
+            if (count($tempArr) > 3) {		 
+                $size = $tempArr[3];
+            //TODO 2D,3D,4D array no processing	
+            //   if ($tempArr[1] > 1) 
+            }
+            else {
+                $size = 1;		  
+            }  
+        return array('type' => $data_type, 'size' => $size, 'n_records' => $n_recs);
+    }
+    
+    protected function param2dd($paramID)
+  {
+      $pairs = array("-" => "_", "%" => "_","\\" => "_","$" => "_",":" => "_","+" =>" _","-" => "_","#" => "_","@" => "_", "." => "_",">" => "_", "<" => "_");    
+      return strtr($paramID, $pairs); 
+  }
+
+/*
+*      ascii format processing
+*/    
+    protected function getTxtSampling() {
+        
+            $StartTime = null;
+            if (!file_exists($this->fileName)) return -100;     
+            $i = 0;
+        
+            $handler = fopen($this->fileName, 'r');
+            if ($handler) {
+                while (!feof($handler) && !$StartTime) {
+                        $oneLine = trim(fgets($handler)); 
+                        $elems = explode(" ", preg_replace('/\s+/', ' ', $oneLine));
+                        if ((strlen($elems[0]) < 16) || !($time = strtotime($elems[0]))) { 
+                            $i++;
+                            continue;
+                    }                   
+                    $StartTime = $time;
+                    if (!(is_numeric($elems[1]))) return -10; 
+                    $dt = $elems[1];                  
+                    
+                }
+            }
+
+            if (feof($handle)) return -10;
+
+            $oneLine = trim(fgets($handler));      
+            $elems = explode(" ",$oneLine);
+            if (count($elems) < 2) return -10;
+
+            // dT else Array
+            if (!($time = strtotime($elems[0]))) return $dt;
+            else return $time  - $StartTime;          
+        }
+
+ 
+    public function getTxtSamplings() {
+    
+        $StartTime = null;
+        if (!file_exists($this->fileName)) return array(-100);
+
+        $handler = fopen($this->fileName, 'r');
+        if ($handler) {
+            $i = 0;
+            while (!feof($handler) && !$StartTime) {
+                    $oneLine = trim(fgets($handler)); 
+                    $elems = explode(" ", preg_replace('/\s+/', ' ', $oneLine));
+                    if (strlen($elems[0]) < 16 || !($time = strtotime($elems[0]))) { 
+                            $i++;
+                            continue;
+                }   
+            
+                    $StartTime = $time;
+                    if (!(is_numeric($elems[1]))) return array(-10); 
+                    $dt = $elems[1];                  
+            } 
+        } 
+        
+        if (feof($handle)) return array(-10);
+        $oneLine = trim(fgets($handler));
+        $elems = explode(" ",$oneLine);
+        if (count($elems) < 2) return array (-1);
+        // dT else Array
+        if (!($time = strtotime($elems[0]))) return array($dt);
+        else {
+                $minSampling = +1.e31;
+                $maxSampling = 0.0;
+
+                while (!feof($handler)) {
+                    $oneLine = trim(fgets($handler));
+                    $elems = explode(" ",$oneLine); 
+                    if (count($elems) < 2) continue;
+                    $StartTime = $time;
+                    if (!($time = strtotime($elems[0]))) return array(-1);                       
+                    $deltaT[$time  - $StartTime]++;                                       
+                }
+
+                foreach ($deltaT as $key => $value) {
+                            if ($value < 5) continue;
+                            if ($key < $minSampling) $minSampling = $key;
+                            if ($key > $maxSampling) $maxSampling = $key;
+                } 
+
+            return array($minSampling,$maxSampling); 
+        }         
+      }
+
+/*
+*        Delete comments and convert time into double
+*/
+     public function reformatTxt() {
+        
+         $StartTime = null;
+         if (!file_exists($this->fileName)) return  -100;
+
+         $handler = fopen($this->fileName, 'r');
+         if ($handler) {  
+            $offset = ftell($handle);
+            $i = 0;
+            while (!$StartTime && !feof($handler)) {
+                $oneLine = trim(fgets($handler));
+                $elems = explode(" ", preg_replace('/\s+/', ' ', $oneLine));
+                if (!($time = strtotime($elems[0]))) {
+                        $offset = ftell($handle);
+                        $i++;
+                        continue;
+                }            
+                $StartTime = $time;
+                $dt = $elems[1];
+            }  
+        }
+                 
+        $newfile = fopen(USERDATADIR."temp", "w");
+         
+        $oneLine = trim(fgets($handler));   
+        $elems = explode(" " , $oneLine);
+        // dT
+           if (!($time = strtotime($elems[0]))) { 
+
+               $newtime = $StartTime;  
+               settype($dt, "float"); 
+               if ($oneLine != PHP_EOL && count($elems) > 0) fwrite($newfile,  $newtime." ".$oneLine.PHP_EOL);
+               $newtime += $dt; 
+ 
+               while (!feof($handler)) { 
+                    $oneLine = trim(fgets($handler));                      
+                    if ($oneLine != PHP_EOL && count($elems) > 0) fwrite($newfile,  $newtime." ".$oneLine.PHP_EOL);
+                    $newtime += $dt;  
+                  }
+           }
+            // Array
+          else { 
+                fseek($handler, $offset);
+                while (!feof($handler)) { 
+                    $oneLine = trim(fgets($handler));
+                    $elems = explode(" " ,$oneLine);
+                    // empty lines
+                    if (count($elems) < 2) continue;
+                    $newtime = strtotime($elems[0]); 
+                    //TODO Error message if wrong time format...???
+                    if (!$newtime) continue; 
+                    unset($elems[0]); 
+                    $newline = join($elems," ");
+                    fwrite($newfile,$newtime." ". $newline.PHP_EOL);                                   
+                  }
+           }
+           fclose($newfile);
+
+           rename(USERDATADIR."temp",$this->fileName);     
+
+         return $StartTime." ".$newtime; 
+      }
+
+/*
+*  Convert time into ISO
+*/
+    protected function reformatTime($timeFormat, $timeLength, $doy) {
+                   
+         $formatLength = $timeLength == 'auto' ? strlen($timeFormat) + (strpos($timeFormat,"Y") !== false)*3 + (strpos($timeFormat,"y") !== false)
+					     + (strpos($timeFormat,"M") !== false)*2  + (strpos($timeFormat,"m") !== false)
+                                             + (strpos($timeFormat,"d") !== false) + (strpos($timeFormat,"H") !== false)
+                                             + (strpos($timeFormat,"i") !== false) + (strpos($timeFormat,"s") !== false) 
+					     + (strpos($timeFormat,".u") !== false)*2 : $timeLength;
+ 
+	  if (strpos($timeFormat,".u") !== false) {
+		$formatLength = $formatLength - 4;
+		$timeFormat = substr($timeFormat, 0, strlen($timeFormat)-2);
+	  }
+
+         if (strpos($timeFormat,".k") !== false) {
+                $formatLength = $formatLength - 2;
+                $timeFormat = substr($timeFormat, 0, strlen($timeFormat)-2);
+          }
+
+         $handle = fopen($this->fileName,'r');
+   
+         if ($handle) {    
+           $newfile = fopen(USERDATADIR."temp", "w");
+           while (!feof($handle)) {
+            if (($oneLine = fgets($handle)) !== false) {
+                $line = $timeLength == 'auto' ? $line = trim(preg_replace('/\s+/', ' ', $oneLine)) : trim($oneLine);    
+        
+                if (strlen($line) > $formatLength) {   
+                try 
+                    {
+                        $date = DateTime::createFromFormat($timeFormat, trim(substr($line,0,$formatLength)));
+                        if (!$date) {
+                            if (strpos($line,'#') === 0)  fwrite($newfile, $line.PHP_EOL);
+                            }
+                        else {
+                            // DOY starts from 1
+                            if ($doy) {
+                                $date->modify('-1 day');
+                            }
+                            $suffix =  preg_replace('/\s+/', ' ',substr($line, $formatLength));
+                            fwrite($newfile,$date->format('Y-m-d')."T".$date->format('H:i:s').$suffix.PHP_EOL);
+                        }
+                    }
+                    catch (Exception $e) 
+                    {		  			  
+                        // fwrite($newfile,$line.PHP_EOL);			   
+                    }               	       
+                } 
+                else 
+                    if (strpos($line,'#') === 0) fwrite($newfile,$line.PHP_EOL); 
+                }
+            }
+          }
+          else {
+            if (file_exists($this->fileName)) {
+                    fclose($handle); 
+                    unlink($this->fileName);
+                }
+            return $false;
+           }
+
+          fclose($newfile); 
+          fclose($handle);
+
+         rename(USERDATADIR."temp", $this->fileName);  
+         return true; 
+      }
+   
+
+/*
+*       Returns number of columns in text file to create data model fields in MyDataUI.js 
+*/
+      protected function getTxtColNumber($timeDouble) {
+	  
+	  if (!file_exists($this->fileName)) return  -100;
+          $handle = fopen($this->fileName,'r');
+
+          if ($handle) {
+            $found = false;
+            $i = 0;
+            while (($line = trim(fgets($handle))) !== false && $i < 100) {
+                 $elems = explode(" ", preg_replace('/\s+/', ' ', $line));
+                 $i++;
+                 if (count($elems) < 2 || strpos($elems[0], '#') === 0) continue;
+              
+                 if (!$timeDouble) {
+                        if (strlen($elems[0]) >= 16 && ($time = strtotime($elems[0]))) {
+                                        $found = true;
+                                        break; 
+                            }
+                    }
+                 else {
+                        $found = true;
+                        break; 
+                    }
+                }
+
+            if (!feof($handle) && !$found) {
+                fclose($handle);
+                unlink($this->fileName);
+                return -1;
+                }
+            }       
+         fclose($handle);
+ 
+      	 if (!$found) {
+                unlink($this->fileName);
+                return 0; 
+          }
+	 return count($elems);
+      }
+    
+/*
+*      new file tag in Files.xml
+*/      
+	protected function createSimuFile($format) { 
+             
+                  $newFile = $this->contentDom->createElement('file');
+		  $newFile->setAttribute('xml:id', $this->fileId);
+		  $newFile->setAttribute('name', $this->fileId);
+		  $newFile->setAttribute('format', $format);
+
+		  $start_stop = explode(" ",$this->getVotFileMgr()->getStartStop());
+		  $samplings = $this->getVotFileMgr()->getSamplings();
+		  $minSamp = $samplings["minSampling"];
+		  $maxSamp = $samplings["maxSampling"];
+		  $desc = $this->getVotFileMgr()->getDescription();
+
+		  $start =  $start_stop[0];
+		  $stop =  $start_stop[1];
+                
+		  $newFile->setAttribute("start",$start);
+		  $newFile->setAttribute("stop",$stop);
+		  $newFile->setAttribute('minsampling',$minSamp);
+		  $newFile->setAttribute('maxsampling',$maxSamp);
+		  $newFile->setAttribute('uploaded', date('Y-m-d H:i:s'));
+		  
+// generic MASK without datas for simu params
+		  if ((strncmp($this->fileId, "impex___", 8) == 0) || (strncmp($this->fileId, "spase___", 8) == 0))
+		    $newFile->setAttribute('mask', $this->getGenericMask());
+
+		   $newFile->nodeValue = date('Y-m-d',$start)."T".date('H:i',$start)."-".date('Y-m-d',$stop)."T".date('H:i',$stop);
+		   if ($desc != '')
+		   	 $newFile->nodeValue .= (PHP_EOL.$desc);
+                   return $newFile;   
+     }
+
+
+          protected function createFile($format) { 
+             
+                  $newFile = $this->contentDom->createElement('file');
+		  $newFile->setAttribute('xml:id', $this->fileId);
+		  $newFile->setAttribute('name', $this->fileId);
+		  $newFile->setAttribute('format', $format);
+
+                  switch ($format){
+		    case "cdf":  
+			   $start_stop = explode(" ",$this->getCdfStartStop());
+			   $result = $this->getCdfSampling();
+//TODO process errors
+			   $minSamp = $result[count($result)-1];
+//TODO if min & max
+			   $maxSamp =  $minSamp;
+                          break;            
+		    case "txt":   
+			  $start_stop =  explode(" ",$this->reformatTxt());
+                          if ($start_stop[0] < 0)  return $start_stop;
+			  $minSamp = $this->sampling;
+			  $maxSamp = $this->maxSampling;
+                          break; 
+                    case "cef":
+
+                          // Test if 'standard' meta exist in CEF
+                          $cefMetaTest = $this->getCefStartStop(); 
+  
+                          if ($cefMetaTest != -1) {
+                            $cefStartStop = explode("/",$cefMetaTest); 
+                            $start_stop[] = strtotime($cefStartStop[0]);
+                            $start_stop[] = strtotime($cefStartStop[1]); 			   
+                            $result = $this->getCefSampling();
+                            $minSamp = $result[count($result)-1];
+                           }
+                           else {
+                            // no META data - so time processing
+                            $timeInfo = $this->getCefTimeInfo();
+                            $timeInfoArr = explode(" ", $timeInfo);
+                            $start_stop[] =  $timeInfoArr[0];
+                            $start_stop[] =  $timeInfoArr[1];
+                            $minSamp = $timeInfoArr[2];
+                           }
+//TODO if min & max
+			   $maxSamp =  $minSamp;
+                          break;
+                    case "vot" :
+			  $start_stop = explode(" ",$this->getVotFileMgr()->getStartStop());
+			  $samplings = $this->getVotFileMgr()->getSamplings();
+			  $minSamp = $samplings["minSampling"];
+			  $maxSamp = $samplings["maxSampling"];
+			  $desc = $this->getVotFileMgr()->getDescription();
+                    	 break;  
+		    case "nc":  
+			   $ncInfo = $this->getNcTimeInfo();
+			   if ($ncInfo < 0) {
+				      unlink($this->fileName);
+				      return $ncInfo;
+			   }
+                           $ncInfoArr = explode("#",$ncInfo);
+			   $start_stop = explode(":",$ncInfoArr[0]);			   
+//TODO process errors
+			   $minSamp = $ncInfoArr[1];
+//TODO if min & max
+			   $maxSamp =  $minSamp;
+                          break;   
+                    default: 
+
+                  }
+		  $start =  $start_stop[0];
+		  $stop =  $start_stop[1];
+                
+		  $newFile->setAttribute("start",$start);
+		  $newFile->setAttribute("stop",$stop);
+		  $newFile->setAttribute('minsampling',$minSamp);
+		  $newFile->setAttribute('maxsampling',$maxSamp);
+		  $newFile->setAttribute('uploaded', date('Y-m-d H:i:s'));
+		  
+// generic MASK without datas for simu params		  
+		  if ((strncmp($this->fileId, "impex___", 8) === 0) || (strncmp($this->fileId, "spase___", 8) === 0))
+		    $newFile->setAttribute('mask', $this->getGenericMask());
+		  else
+		    $newFile->setAttribute('mask', $this->fileId);
+
+		   $newFile->nodeValue = date('Y-m-d',$start)."T".date('H:i',$start)."-".date('Y-m-d',$stop)."T".date('H:i',$stop);
+		   if ($desc != '')
+		   	 $newFile->nodeValue .= (PHP_EOL.$desc);
+		   
+                  return $newFile;   
+     }
+     
+     protected function getGenericMask() {
+	  if (strncmp($this->fileId, "impex___", 8) == 0) {
+	      $prefix = "impex___";
+	      $tmpFileName = str_replace ("impex___", "", $this->fileId);
+	  }
+	  elseif (strncmp($this->fileId, "spase___", 8) == 0) {
+	      $prefix = "spase___";
+	      $tmpFileName = str_replace ("spase___", "", $this->fileId);
+	  }
+	  $tmpFileArray = explode( '.', $tmpFileName);
+	  $tmpParamArray = explode( '_', $tmpFileArray[0]);
+	  array_pop($tmpParamArray);
+	  array_pop($tmpParamArray);
+	  $tmpName =  implode("_", $tmpParamArray);
+	  
+	  $mask = $prefix.$tmpName."_*.xml";
+	  return $mask;
+     }
+
+/*
+//TODO  check how to upgrade this
+*/
+      protected function getFormat() {
+         
+        $ext = pathinfo($this->fileName, PATHINFO_EXTENSION);   
+
+	if (PHP_VERSION_ID < 50300) {
+	    $finfo = new finfo(FILEINFO_MIME, MAGIC_FILE);    
+	    $file_info =   explode(";", $finfo->file($this->fileName));
+	}
+      else {
+  // PHP v >= 5.3 comes with its own magic file  !!!!   
+	  $finfo = finfo_open(FILEINFO_MIME); 
+	  $file_info =  explode(";",finfo_file($finfo, $this->fileName));
+	}
+
+	  if (strpos($file_info[0],"plain") !== false) {
+	      if (strpos($ext,"cef") !== false) return "cef";
+	      return "txt";
+	  }
+
+          if (strpos($file_info[0],"application/x-gzip") !== false) {
+                      if (strpos($this->fileName,"cef.gz") !== false) return "cef";  
+          }
+
+	  if (strpos($file_info[0],"application/xml") !== false)
+	  {
+		//if ($this->getVotFileMgr()->isValidSchema()) //BRE : No schema validation for the moment due to some trouble with Topcat (it can create not valid VOTable)
+				return "vot";
+	  }
+	  
+  // check binary at different machines - if it works.....
+	  if (strpos($file_info[0],"octet-stream") !== false) {
+	      if (strpos($ext,"cdf") !== false) return "cdf"; 
+	      if (strpos($ext,"nc") !== false) return "nc";
+    
+	  }
+	  return "unknown";      
+      }
+
+/*
+*         PUBLIC FUNCTIONS
+*/ 
+    
+      public function getAsciiFile($name) {
+ 
+	  $this->fileName = USERDATADIR.$name;
+
+	  if (!file_exists(USERDATADIR.$name)) 
+ 	 	      return  array('success' => false, 'error' => 'No such file');
+ 	 
+	  $handle = fopen($this->fileName, "r");
+	  $fileToReturn = array();
+          $index = 0;
+          $tempFileToReturn =  array();
+
+	  while (!feof($handle)) {
+	      $line = trim(fgets($handle));
+	      $tempArr = explode(' ', preg_replace('/\s+/', ' ', $line));
+              if (count($tempArr) > 1) {
+	       for ($i = 0; $i < count($tempArr); $i++) {
+		      $name = $i === 0 ? 'Time' : 'n'.$i;
+//transform double time to ISO
+                      if ($name == 'Time') {
+			      $temp = $tempArr[0];
+			      settype($temp, 'double');
+			      $tempArr[0] = date('Y-m-d H:i:s', $temp);
+		      }
+		      $tempFileToReturn[$name] = $tempArr[$i];
+	      }
+	      $fileToReturn[$index] = $tempFileToReturn;
+	      $index++;
+	      if ($index > MAX_FILE_INDEX_TO_SHOW) break;
+	  }
+        }
+ 	  return $fileToReturn;
+      }
+
+
+/*
+*     Get  info on parameter
+*/
+      public function getParamInfo($obj){
+
+	      $this->fileName = USERDATADIR.$obj->file;
+	      $varId = $obj->varName;
+              $format = $obj->format;
+
+// at first info from Files.xml
+	      $file = $this->contentDom->getElementById($obj->file);
+	      if ($file) {
+                if ($file->parentNode->tagName == 'folder') 
+                                     $mask = $file->parentNode->getAttribute('name');
+                else 
+                                     $mask = $file->getAttribute('mask');
+		$dom_info =  array( 'name' => $varId,
+				    'minsampling' => $file->getAttribute('minsampling'),
+				    'maxsampling' => $file->getAttribute('maxsampling'),
+				    'mask' => $mask);		 
+	      }
+	      else {
+	      if ($format == "nc"){ 
+	      $status = $this->reformatNcTime();
+	      if ($status <= 0) {
+                    unlink($this->fileName);
+                    return array('success' => false, 'error' => 'error '.$timeFormat.PHP_EOL.'Time Format problem');	
+                }
+		  $ncInfo = $this->getNcTimeInfo(); 
+		  $ncVars = $this->getNcVars();
+			      if ($ncInfo < 0) {
+					  unlink($this->fileName);
+					  return $ncInfo;
+			      }
+			      $ncInfoArr = explode("#",$ncInfo);
+			      $start_stop = explode(":",$ncInfoArr[0]);			   
+    //TODO process errors
+			      $minSamp = $ncInfoArr[1];
+    //TODO if min & max
+			      $maxSamp =  $minSamp;
+			      
+			      $dom_info =  array( 'name' => $varId,
+				    'minsampling' => $minSamp,
+				    'maxsampling' => $maxSamp,
+				    'mask' => $obj->mask);	
+		  }
+	      }
+
+	      switch ($format){
+		      case "cdf":  
+			    $info = $this->getCdfVarInfo($varId);			      
+			    break;   
+		      case "txt":   			  
+			    break; 
+		      case "cef":   
+			     $info = $this->getCefVarInfo($varId);
+			    break; 
+		      case "nc":  
+			     $info = $this->getNcVarInfo($varId);
+			    break;
+		      case "vot":
+		      	 $info = $this->getVotFileMgr()->getFieldInfoByID($varId);
+		        break;
+		      default: 
+
+		    }
+	    return  array('success' => true, 'info' => array_merge($dom_info,$info));
+     }
+
+ 
+    public function deleteObject($obj) 
+    {
+        $myBaseManager = new BaseManager();
+  
+        $paramMgr = new DerivedParamMgr('myDataParam');                
+        $xpd = new domxpath($paramMgr->contentDom); 
+
+        //File, not a folder
+        if ($obj->leaf) {  
+            $this->fileName = USERDATADIR.$obj->id;
+
+            if (file_exists($this->fileName)) 
+                                    unlink($this->fileName);
+
+            $theFile = $this->contentDom->getElementById($obj->id);
+           
+    
+            // Update data base	                   
+            $fileInBase = $myBaseManager->xp->query("//file[@name='".$obj->id."']");
+ 
+            if ($fileInBase->length > 0) { 
+                        $viInfo = $myBaseManager->delFile($fileInBase->item(0));
+
+                        $mask = $viInfo['mask'];
+                        $length = $viInfo['length'];
+                     
+                        $params = $xpd->query("//mydata[@mask='".$mask."']"); 
+  
+                        if ($params->length > 0) {  
+                                // NO FILES in the mask;  corresponding parameters are to be deleted
+                                if ($length == 0) {
+                                    $paramsToDelete = array();
+                                    for ($i = $params->length; --$i >= 0; ) {
+                                        $id = $params->item($i)->getAttribute('xml:id');
+                                        $paramMgr->deleteParameter($id);
+                                        $paramMgr->deleteFromContent($params->item($i));
+                                        $paramsToDelete[] = $id;
+                                    }                                       
+                                }
+                                // update params description in Content Dom
+                                else {
+                                    $vi = $myBaseManager->getVi($mask);   
+                                    $desc =  $myBaseManager->getStartStop($vi);
+                                    foreach ($params as $param) $param->setAttribute("desc",$desc); 
+                                    $paramMgr->saveContent();
+                                }				  		
+                            }                
+                        }  
+   	   // WS/Files.xml
+            if ($theFile) {
+                if ($desc) 
+                        $theFile->parentNode->setAttribute('info', $desc);
+                $theFile->parentNode->removeChild($theFile);               
+                $this->contentDom->save($this->xmlName); 
+            }
+        }
+        // Folder
+        else {
+                $mask = $obj->id;
+                $theMask = $this->contentDom->getElementById($obj->id);
+                $files = $theMask->getElementsByTagName('file');
+
+                foreach ($files as $file) {
+                    $fileName = USERDATADIR.$file->getAttribute('name');  	  
+                    if (file_exists($fileName)) unlink($fileName); 
+                }
+
+                $this->deleteFromContent($theMask); 
+                $myBaseManager->delVI($mask);  
+
+                $params = $xpd->query("//mydata[@mask='".$mask."']");  
+                $paramsToDelete = array();
+                for ($i = $params->length; --$i >= 0; ) {
+                    $id = $params->item($i)->getAttribute('xml:id');
+                    $paramMgr->deleteParameter($id);
+                    $paramMgr->deleteFromContent($params->item($i));
+                    $paramsToDelete[] = $id;
+                }
+            }
+        // No more files for myDataParams	
+        if ($paramsToDelete) 
+                        return array('id' => $obj->id, 'params' => $paramsToDelete);
+
+        // update info for myDataParams Start Stop were changed
+        return  array('id' => $obj->id, 'mask' => $mask, 'maskDesc' => $desc);
+    }
+        
+    
+    public function deleteSimuObject($obj) {
+
+	$myBaseManager = new BaseManager();  
+	$paramMgr = new DerivedParamMgr('mySimuParam');                
+	$xpd = new domxpath($paramMgr->contentDom); 
+
+	 if ($obj->leaf) {  
+	      $this->fileName = USERDATADIR.$obj->id;
+ 
+              if (file_exists($this->fileName)) unlink($this->fileName);
+	      $theFile = $this->contentDom->getElementById($obj->id);
+	      if ($theFile) {
+		  $theFile->parentNode->removeChild($theFile);
+		  $this->contentDom->save($this->xmlName); 
+	      }
+    
+// update base data	       
+               
+		$fileInBase = $myBaseManager->xp->query("//file[@name='".$obj->id."']");
+                if ($fileInBase->length > 0) { 
+                          $mask = $myBaseManager->delFile($fileInBase->item(0));
+			 			  
+			  $params = $xpd->query("//mydata[@mask='".$mask."']"); 
+			  if ($params->length > 0) {
+// NO FILES in the mask;  corresponding parameters are to be deleted
+				  if (strcmp($mask, "NONEMPTY") != 0) {
+				      $paramsToDelete = array();
+				       for ($i = $params->length; --$i >= 0; ) {
+					$id = $params->item($i)->getAttribute('xml:id');
+					$paramMgr->deleteParameter($id);
+					$paramMgr->deleteFromContent($params->item($i));
+					$paramsToDelete[] = $id;
+				      }                                       
+				    }
+// update params description in Content Dom
+				  else {
+					$vi = $myBaseManager->getVi($mask);
+					$desc =  $myBaseManager->getStartStop($vi);
+					foreach ($params as $param) $param->setAttribute("desc",$desc); 
+					$paramMgr->saveContent();
+				    }				  		
+			  }                
+		      }     	  
+	}
+        else {
+	      $mask = $obj->id;
+	      $theMask = $this->contentDom->getElementById($obj->id);
+	      $files = $theMask->getElementsByTagName('file');
+	      foreach ($files as $file) {
+		  $fileName = USERDATADIR.$file->getAttribute('name');  	  
+		  if (file_exists($fileName)) unlink($fileName); 
+		}
+	      $this->deleteFromContent($theMask); 
+	      $myBaseManager->delVI($mask);  
+
+	      $params = $xpd->query("//mydata[@mask='".$mask."']");  
+	      $paramsToDelete = array();
+	      for ($i = $params->length; --$i >= 0; ) {
+		    $id = $params->item($i)->getAttribute('xml:id');
+		    $paramMgr->deleteParameter($id);
+		    $paramMgr->deleteFromContent($params->item($i));
+		    $paramsToDelete[] = $id;
+	      }
+	  }
+	
+	  if ($paramsToDelete) return array('id' => $obj->id, 'params' => $paramsToDelete);
+	  else return  array('id' => $obj->id);
+	}
+ 
+/*
+*      recombine files in Files.xml according to new Mask
+*/
+   public function addMask($fileMask, $type) { 
+            if ($this->contentDom ->getElementById($fileMask) != null) return false; 
+	    $filesInRoot = $this->xp->query("/ws/fileList/file");                                   
+            $newMask = $this->contentDom->createElement("folder");
+            $newMask->setAttribute('xml:id', $fileMask);
+	    $newMask->setAttribute('name', $fileMask);
+     
+	    for ($i =  $filesInRoot->length; --$i >= 0;)  {
+                 $aFile =  $filesInRoot->item($i);
+  
+// mask corresponds to file name		 
+                 if ($this->fileMask($aFile->getAttribute("name"),$fileMask)) {                          
+                                              $newMask->appendChild($aFile); 
+                  }                          
+	    }
+
+            $files = $newMask->getElementsByTagName("file");
+	    if ($files->length == 0) return false;
+ 
+            foreach ($files as $file) {
+                   $starts[] =  $file->getAttribute("start");
+                   $stops[] =  $file->getAttribute("stop");
+            }
+ 
+            $newMask->setAttribute('info',date('Y-m-d',min($starts))."T".date('H:i',min($starts))."-".date('Y-m-d',max($stops))."T".date('H:i',max($stops)));
+
+	    $fileList = $this->contentDom->getElementById($this->contentRootId);
+	      
+            $fileList->appendChild($newMask);
+            $this->contentDom->save($this->xmlName); 
+            return true;
+    }
+
+/*
+*    check correspondence FleName <=> Mask
+*    returns true if Mask fits FileName
+*/
+  public function fileMask($fileName, $maskName) {
+    
+        $mask = explode("*", $maskName); 
+        if (strpos($fileName, $mask[0]) !== 0) return false; 
+        if (count($mask) == 1) return true;
+
+        for ($i = 1; $i < count($mask); $i++)  
+          if ($mask[$i] != null)
+             if (strpos($fileName, $mask[$i]) === false) return false;  
+
+         return true;
+     } 
+
+/*
+*    Delete Mask
+*/
+     public function delMask($oldMask) {
+ 
+            $mask = $this->contentDom->getElementById($oldMask);
+
+            if ($mask != null && $mask->tagName == "folder") {                                                                                                               
+                $filesInMask = $mask->getElementsByTagName("file");
+                $fileList = $this->contentDom->getElementById($this->contentRootId); 
+
+                while ($filesInMask->length > 0) 
+                    $fileList->appendChild($filesInMask->item(0));
+                       
+                $fileList->removeChild($mask); 
+                $this->contentDom->save($this->xmlName);
+
+                return true;
+            }
+
+      return false;
+     }
+
+/*
+*     mask or file
+*/
+      public function getObject($name) {
+ 
+                $object = $this->contentDom->getElementById($name);
+                 
+                if (is_object($object)) {   
+                    // mask
+                    if ($object->tagName == 'folder') {
+                        $file = $object->getElementsByTagName('file');
+                        if ($file->length > 0) 
+                                return $this->getUploadedObject($file->item(0)->getAttribute('name'));
+                        else 
+                                return array('success' => false, 'error' => 'Mask is empty');
+                    }
+                }
+                else 
+                    return array('success' => false, 'error' => 'No such mask in DOM');
+            // file
+            return $this->getUploadedObject($name);
+    }
+
+/*
+*  Get generic info on uploaded file
+*/
+      public function getUploadedObject($name) {
+
+                $this->fileName = USERDATADIR.$name;
+                $file = $this->contentDom->getElementById($name);
+                if (!$file) 
+                        return array('success' => false, 'error' => 'No such file in DOM');
+
+                $format = $file->getAttribute('format');
+                $minSamp =  $file->getAttribute('minsampling');
+                $maxSamp =  $file->getAttribute('maxsampling');
+
+                $mask = $file->parentNode->tagName  == "folder" ? $file->parentNode->getAttribute("name") : null;
+                $maskDesc = $mask ? $file->parentNode->getAttribute('info') : null;
+                $desc = $file->nodeValue;
+                
+                $foundTime = true;
+                
+                switch ($format){
+                        case "cdf":  
+                                    $vars = $this->getCdfVars(); 
+                                    break;            
+                        case "txt":   
+                                    $vars = $this->getTxtColNumber(true);                                 
+                                    break; 
+                        case "nc" :
+                                    $vars = $this->getNcVars();
+                                    break;
+                        case "cef":   
+                                    $vars = $this->getCefVars(); 
+                                    break;
+                        case "vot" :
+                                    $vars = $this->getVotFileMgr()->getFieldsInfo();
+                                    $foundTime = ($this->getVotFileMgr()->getTimeFieldIndex() > -1);
+                                    break;          
+                        default: 
+                }
+
+            return  array('success' => true, 'format' => $format, 'vars' => $vars, 'fileName' => $name, 
+                            'minsampling' => $minSamp, 'maxsampling' => $maxSamp, 'mask' => $mask, 'maskDesc' => $maskDesc,
+                            'description' => $desc, 'foundTime' => $foundTime);
+        }
+
+/*
+*      The very first processing of newly uploaded file file
+*      $formats = array('fileFormat', 'timeFormat', 'timeSampling', 'nonStandard', 'doy');
+*/
+     public function addFile($fileName, $formats) { 
+ 
+        $this->fileName = USERDATADIR.$fileName;
+        $this->fileId = $fileName;
+
+        $format = $this->getFormat();
+
+        if ($format === 'unknown'){ 	           
+            unlink($this->fileName);                   
+            return array('success' => false, 'error' => 'Sorry, unknown format of '.$fileName);	
+        }
+
+        if ($format == 'txt') {  
+            if ($formats["timeFormat"] == "user") {
+                    $res =  $this->reformatTime($formats["nonStandard"], $formats["timeLength"], $formats["doy"]);
+
+                    if (!$res) {
+                        unlink($this->fileName); 
+                        return array('success' => false, 'error' => 'can\'t reformat time'); 
+                    }
+            }
+            // check if file is not empty
+            $vars = $this->getTxtColNumber(false);
+
+            if ($vars == -100) {
+                return array('success' => false, 'error' => 'no such file');
+            }
+            if ($vars == -1) { 
+                unlink($this->fileName); 
+                return array('success' => false, 'error' => 'while reading file');
+            }
+
+            if ($vars === 0) {
+                unlink($this->fileName);
+                return array('success' => false, 'error' => 'file contains no data');
+            }
+
+            if ($formats["timeSampling"] == "constant") {          
+                $this->sampling = $this->getTxtSampling();	 
+                $this->maxSampling = $this->sampling;
+                }
+            else {
+                $samplings = $this->getTxtSamplings();
+                $this->sampling = $samplings[0];
+                $this->maxSampling = $samplings[1];
+            }
+ 
+            if ($this->sampling <= 0) {  
+                unlink($this->fileName); 
+                if ($this->sampling == -10) {
+                        return array('success' => false, 'error' => 'Sorry, can\'t process'.$fileName.PHP_EOL.'. Check if there are non numeric chars in the data');
+                }
+                return array('success' => false, 'error' => 'Sorry, can\'t process Time for '.$fileName.PHP_EOL.'. Check time format, start time (> 1970-01-01) or sampling time (>= 1s)');		           
+            }              
+        }
+
+        if ($format == 'nc') {  
+            $status = $this->reformatNcTime();
+            if ($status <= 0) {
+                    unlink($this->fileName);
+                    return array('success' => false, 'error' => 'error '.$timeFormat.PHP_EOL.'Time Format problem');	
+                }
+        }
+
+        //create new file tag with all attributes and add it to the content DOM   
+        $newFile = $this->createFile($format);
+        if ($newFile < 0) { 
+                unlink($this->fileName);
+                return array( 'success' => false, 'file' => $fileName);
+        }
+
+        $isMask = false;
+        $masks = $this->contentDom->getElementsByTagName("folder");
+ 
+        foreach ($masks as $mask) {
+
+            $folderMask =  $mask->getAttribute("name");  
+            if ($this->fileMask($fileName, $folderMask)) {                                                      
+                $mask->appendChild($newFile);
+                
+                $files = $mask->getElementsByTagName("file");
+                foreach ($files as $file) {
+                        $starts[] = $file->getAttribute("start");
+                        $stops[] =  $file->getAttribute("stop");
+                }
+                $mask->setAttribute("info", date('Y-m-d',min($starts))."T".date('H:i',min($starts))."-".date('Y-m-d',max($stops))."T".date('H:i',max($stops)));
+                
+                $isMask = true;
+                break;
+            }	
+        }                     
+        // no corresponding masks => add to fileList      
+        if (!$isMask) {					  
+                $filesList = $this->contentDom->getElementById($this->contentRootId); 
+                $filesList->appendChild($newFile);
+        }        
+     
+        $this->contentDom->save($this->xmlName);
+
+        //if mask exists - add to data base
+        $myBaseManager = new BaseManager();
+        $mask = $myBaseManager->addFile($fileName); 
+        if ($mask != null) {
+            $startstop = $myBaseManager->getStartStop($myBaseManager->getVi($mask));
+            $myParamMgr = new DerivedParamMgr('myDataParam');
+            $myParamMgr->updateMydata($mask,$startstop);      
+        }
+
+      return array( 'success' => true, 'file' => $fileName);
+     } 
+     
+}
+?>
diff --git a/php/classes/FilterRes.php b/php/classes/FilterRes.php
new file mode 100644
index 0000000..bd08bb1
--- /dev/null
+++ b/php/classes/FilterRes.php
@@ -0,0 +1,75 @@
+<?php
+  abstract class FilterRes
+  {
+  	abstract function getCondResult($cond);
+  	
+  	abstract function getAll();
+  	
+  	function andOp($cond_res1,$cond_res2)
+  	{
+  		$result = array();
+  		for ($i = 0; $i < count($cond_res1); $i++)
+  		  for ($j = 0; $j < count($cond_res2); $j++)
+  		    if ($cond_res1[$i] == $cond_res2[$j])
+  		    {
+  		    	array_push($result,$cond_res1[$i]);
+  		    	break;
+  		    }
+  		return $result;
+  	}
+  	
+  	function orOp($cond_res1,$cond_res2)
+  	{
+  		$result = $cond_res1;		
+  		for ($i = 0; $i < count($cond_res2); $i++)
+  		{
+  		  $found = false;
+  		  for ($j = 0; $j < count($result); $j++)
+  		    if ($cond_res2[$i] == $result[$j])
+  		    {
+  		       	$found = true;
+  		    	break;
+  		    }
+  		  if (!$found)
+  		  	array_push($result,$cond_res2[$i]);
+  		}
+  		return $result;
+  	}
+  	
+  	function getResult($filter,$isEmptyFilter)
+  	{  		
+  		if ($isEmptyFilter)
+  			return $this->getAll();
+  		
+  		$ops = array();
+  		for ($i = 0 ; $i < count($filter); $i++)
+  		{
+  			$cond = $filter[$i];
+  			$cond_res[$i] = $this->getCondResult($cond);
+  			$ops[$i] = $cond['logical'];
+  		}
+  		
+  		for ($i = 1; $i < count($cond_res); $i++)
+  		{
+  			if ($ops[$i] != 'and')
+  				continue;
+  			$cond_res[$i-1] = $this->andOp($cond_res[$i-1],$cond_res[$i]);
+  			array_splice($cond_res, $i, 1);
+  			array_splice($ops, $i, 1);
+			$i--;		
+  		}
+  		
+  		for ($i = 1; $i < count($cond_res); $i++)
+  		{
+  			if ($ops[$i] != 'or')
+  				continue;
+  			$cond_res[$i-1] = $this->orOp($cond_res[$i-1],$cond_res[$i]);
+  			array_splice($cond_res, $i, 1);
+  			array_splice($ops, $i, 1);
+			$i--;			
+  		}
+  		
+  		return $cond_res[0];
+  	}
+  }
+?>
\ No newline at end of file
diff --git a/php/classes/FilterResParam.php b/php/classes/FilterResParam.php
new file mode 100644
index 0000000..50a493e
--- /dev/null
+++ b/php/classes/FilterResParam.php
@@ -0,0 +1,327 @@
+<?php
+/**
+ * @class FilterResParam
+ * @version $Id: FilterResParam.php 2482 2014-07-28 10:13:23Z elena $
+ * @author benjamin
+ */
+  class FilterResParam extends FilterRes
+    {
+        protected $localXmlName, $localXml;
+        protected $rootElement, $xp;
+        
+        function __construct() 
+        {
+                $this->localXmlName = USERWSDIR."LocalParams.xml";
+                $this->localXml = new DomDocument("1.0");
+                $this->localXml->load($this->localXmlName); 
+                $this->rootElement = $this->localXml->documentElement;
+                
+                $this->xp = new domxpath($this->localXml);
+        }
+  	
+        function getTarget($value,$opId)
+        {
+                $result = array();	
+
+                $missions = $this->xp->query("//mission[@xml:id]"); 	
+                for ($i = 0; $i < $missions->length; $i++)
+                {
+                    $missionId  = $missions->item($i)->getAttribute('xml:id');
+
+                    $missionTarget = ($missions->item($i)->hasAttribute('target') &&
+                                        ($missions->item($i)->getAttribute('target') != ''));
+                    if ($missionTarget)
+                    {
+                            $targetId = $missions->item($i)->getAttribute('target');
+                            $missionTargetId = $targetId;
+                    }
+	
+                     
+
+                    $instruments = $this->xp->query("//mission[@xml:id='".$missionId."']//instrument");
+
+  		    for ($j = 0; $j < $instruments->length; $j++)
+  		    { 
+  		    	$instrumentId =  $instruments->item($j)->getAttribute('xml:id');
+  		  	                            
+                        
+                        $datasets = $this->xp->query("//mission[@xml:id='".$missionId."']//instrument[@xml:id='".$instrumentId."']//dataset");
+                                                     
+  		    	for ($k = 0; $k < $datasets->length; $k++)
+  		    	{
+  		    		 
+                                $datasetId = $datasets->item($k)->getAttribute('xml:id');   
+                        
+  		    		$datasetTarget = ($datasets->item($k)->hasAttribute('target') &&
+  		    		                  ($datasets->item($k)->getAttribute('target') != ''));
+  		    		
+  		    		if (!$missionTarget && !$datasetTarget)
+  		    			$targetId = 'none';	    			
+  		    		else if ($datasetTarget)
+  		    			$targetId = $datasets->item($k)->getAttribute('target');
+                                else if ($missionTarget)
+                                        $targetId = $missionTargetId; 
+  		    			
+  		    		//fprintf($log,"%s\n",$targetId);
+  		    			
+  		    		$ok = ($value == $targetId);
+  		    		if (!$ok)
+  		    		  if (strlen($targetId) > strlen($value))
+  		    		    $ok = ((substr($targetId,0,strlen($value)) == $value) && ($targetId[strlen($value)]=='.'));   
+                               
+                                $id = $datsetId;
+                                $chain = $datasetId;
+                                $node = $datasets->item($k);
+
+                                while ($id !== $missionId) {
+                                    $node = $node->parentNode;
+                                    $id = $node->getAttribute('xml:id');
+                                    $chain = $id.";".$chain;
+                                }  
+		    		
+  		    		switch ($opId)
+  		    		{
+  		    			case 'eq' :
+  		    				if ($ok)  
+                                                    array_push($result,$chain);                                                         
+  		    				break;
+  		    			case 'ne' :
+  		    				if (!$ok)                                     
+                                                    array_push($result,$chain);
+  		    				break;
+  		    		}
+  		    	}
+  		    }
+  		}
+  	
+  		return $result;
+  	}
+  	
+        function getTime($kind,$value,$opId)
+        {
+                $result = array();	
+                
+                $missions = $this->xp->query("//mission[@xml:id]"); 	
+                for ($i = 0; $i < $missions->length; $i++)  
+                {
+                    $missionId   = $missions->item($i)->getAttribute('xml:id');
+ 
+  			
+                    $instruments = $this->xp->query("//mission[@xml:id='".$missionId."']//instrument");
+	  
+  		    for ($j = 0; $j < $instruments->length; $j++)
+  		    {  	
+                        $instrumentId =  $instruments->item($j)->getAttribute('xml:id');
+  		  		
+                        $datasets = $this->xp->query("//mission[@xml:id='".$missionId."']//instrument[@xml:id='".$instrumentId."']//dataset");
+  		    	
+                        for ($k = 0; $k < $datasets->length; $k++)
+  		    	{  		    		  
+                                $datasetId = $datasets->item($k)->getAttribute('xml:id'); 
+    		    		
+  		    		switch($kind)
+  		    		{
+  		    			case 'sta' :
+  		    				$dataTime = $datasets->item($k)->getAttribute('dataStart');
+  		    				break;
+  		    			case 'sto' :
+  		    				$dataTime = $datasets->item($k)->getAttribute('dataStop');
+  		    				break;
+  		    		}
+  		    		
+  		    		list($day, $month, $year) = explode('-', $dataTime);
+  		    		$date = mktime(0, 0, 0, $month, $day, $year);
+  		    		list($year, $month, $day, $hour, $min, $sec) = split('[-T:]', $value);
+  		    		$date_value = mktime($hour, $min, $sec, $month, $day, $year);
+  		    		
+                                $id = $datsetId;
+                                $chain = $datasetId;
+                                $node = $datasets->item($k);
+
+                                while ($id !== $missionId) {
+                                    $node = $node->parentNode;
+                                    $id = $node->getAttribute('xml:id');
+                                    $chain = $id.";".$chain;
+                                }  
+
+  		    		switch($opId)
+  		    		{
+  		    			case 'le' :
+  		    				if ($date <= $date_value)                                                         
+                                                        array_push($result,$chain);                                               
+  		    				break;
+  		    			case 'ge' :
+  		    				if ($date >= $date_value)                                                           
+                                                        array_push($result,$chain);                                                       		    					                                                  
+  		    				break;
+  		    		}
+  		    	}
+  		    }
+  		}
+  		
+  		return $result;
+  	}
+  	
+  	function getMissionName($value,$opId)
+  	{
+  		$result = array();	
+  		
+  		$missions = $this->xp->query("//mission[@name]"); 	
+  		for ($i = 0; $i < $missions->length; $i++)  
+  		{		
+  		  $missionName = $missions->item($i)->getAttribute('name');
+  		  $missionId   = $missions->item($i)->getAttribute('xml:id');
+
+  		  if ((!fnmatch($value,$missionName,FNM_CASEFOLD) && ($opId == 'eq')) ||
+  		      (fnmatch($value,$missionName,FNM_CASEFOLD) && ($opId == 'ne')))
+  		    continue;
+
+  		  $instruments = $this->xp->query("//mission[@xml:id='".$missionId."']//instrument");	 
+ 
+  		  for ($j = 0; $j < $instruments->length; $j++)
+  		  {  	
+  		    $instrumentId =  $instruments->item($j)->getAttribute('xml:id');   		
+  		  	
+                    $datasets = $this->xp->query("//mission[@xml:id='".$missionId."']//instrument[@xml:id='".$instrumentId."']//dataset");
+                                                    
+                    for ($k = 0; $k < $datasets->length; $k++)
+                    {                         
+                        $datasetId = $datasets->item($k)->getAttribute('xml:id');
+
+                        $id = $datsetId;
+                        $chain = $datasetId;
+                        $node = $datasets->item($k);
+
+                        while ($id !== $missionId) {
+                            $node = $node->parentNode;
+                            $id = $node->getAttribute('xml:id');
+                            $chain = $id.";".$chain;
+                        }  
+ 
+                     array_push($result,$chain);
+                          
+                    }
+                    }
+                }
+ 		return $result;
+  	}
+  	
+  	function getDataType($value,$opId)
+  	{
+  		
+  	}
+  	
+  	function getProvider($value,$opId)
+  	{
+  		$result = array();	
+  		
+  		$missions = $this->xp->query("//mission[@xml:id]"); 	
+  		for ($i = 0; $i < $missions->length; $i++)  
+  		{
+                    $missionId   = $missions->item($i)->getAttribute('xml:id');
+
+                    $instruments = $this->xp->query("//mission[@xml:id='".$missionId."']//instrument");
+	  
+  		    for ($j = 0; $j < $instruments->length; $j++)
+  		    {  	
+                        $instrumentId =  $instruments->item($j)->getAttribute('xml:id');
+  		  		
+                        $datasets = $this->xp->query("//mission[@xml:id='".$missionId."']//instrument[@xml:id='".$instrumentId."']//dataset");
+                                                       
+  		    	for ($k = 0; $k < $datasets->length; $k++)
+  		    	{
+                                $provider  = $datasets->item($k)->getAttribute('dataSource');
+                                
+                               
+                                $datasetId = $datasets->item($k)->getAttribute('xml:id'); 
+                                
+                                if ((!preg_match("/".$value."/i",$provider) && ($opId == 'eq')) ||
+                                        (preg_match("/".$value."/i",$provider) && ($opId == 'ne')))
+                                        continue;
+
+                                $id = $datsetId;
+                                $chain = $datasetId;
+                                $node = $datasets->item($k);
+
+                                while ($id !== $missionId) {
+                                    $node = $node->parentNode;
+                                    $id = $node->getAttribute('xml:id');
+                                    $chain = $id.";".$chain;
+                                }    
+                 
+                                
+                                array_push($result,$chain);
+                                  
+  		    	}
+  		    }		
+  		}
+  		
+  		return $result;
+  	}
+  	
+    function getAll()
+  	{
+  		$result = array();	
+  		 
+  		$missions = $this->xp->query("//mission[@xml:id]"); 	
+  		for ($i = 0; $i < $missions->length; $i++)
+  		{
+                    $missionId   = $missions->item($i)->getAttribute('xml:id');
+                                                                                          
+                    $instruments = $this->xp->query("//mission[@xml:id='".$missionId."']//instrument");	
+  
+  		    for ($j = 0; $j < $instruments->length; $j++)
+  		    {  	
+                        $instrumentId =  $instruments->item($j)->getAttribute('xml:id');
+                        
+                        $datasets = $this->xp->query("//mission[@xml:id='".$missionId."']//instrument[@xml:id='".$instrumentId."']//dataset");
+                                                       
+
+  		    	for ($k = 0; $k < $datasets->length; $k++)
+  		    	{
+                                  
+                                $datasetId = $datasets->item($k)->getAttribute('xml:id'); 
+ 
+                                $id = $datsetId;
+                                $chain = $datasetId;
+                                $node = $datasets->item($k);
+
+                                while ($id !== $missionId) {
+                                    $node = $node->parentNode;
+                                    $id = $node->getAttribute('xml:id');
+                                    $chain = $id.";".$chain;
+                                }  
+                                
+                                array_push($result,$chain);
+                                   
+  		    	}
+  		    }
+  		}
+  		
+  		return $result;
+  	}
+  	
+  	function getCondResult($cond)
+  	{
+  		$condId = $cond['condId'];
+  		switch($condId)
+  		{
+  			case 'tar' : //target
+  				return $this->getTarget($cond['value'],$cond['opId']);
+  			case 'sta' : //start time
+  				return $this->getTime('sta',$cond['value'],$cond['opId']);
+  			case 'sto' : //stop time
+  				return $this->getTime('sto',$cond['value'],$cond['opId']);
+  			case 'mis' : //mission name
+  				return $this->getMissionName(trim($cond['value']),$cond['opId']);
+  			case 'typ' : //dataset type
+  				return $this->getAll();
+  			case 'pro' : //provider
+  				return $this->getProvider(trim($cond['value']),$cond['opId']);
+  			default :
+  				return array();
+  		}
+  	}
+  }
+
+?>
\ No newline at end of file
diff --git a/php/classes/FilterResSimu.php b/php/classes/FilterResSimu.php
new file mode 100644
index 0000000..03c1585
--- /dev/null
+++ b/php/classes/FilterResSimu.php
@@ -0,0 +1,283 @@
+<?php
+/** 
+*   @file FilterResSimu.php
+*   @brief  Simations Filter Manager 
+*
+*   
+*   @version $Id: 
+*/
+  class SimuFileMgr 
+  {
+  	 protected $simXmlName, $simXml, $simRootEl, $simXP;
+  	 public $centerID;
+  	 
+  	 function __construct($basePath,$centerID) 
+  	 {
+ 	    $this->simXmlName = $basePath;
+	    $this->simXml     = new DomDocument("1.0");
+	    $this->simXml->load($this->simXmlName); 
+	    $this->simRootEl  = $this->simXml->documentElement;
+	    $this->simXP      = new domxpath($this->simXml);
+	    $this->centerID   = $centerID;
+  	 }
+  
+    function queryDatasets()
+      {
+	      return $this->simXP->query("//dataRoot/dataCenter/simulationModel/simulationRegion/runID/dataset");
+      }
+
+    function getDatasetFilterPath($dataset)
+      {
+	    $datasetID = $dataset->getAttribute('xml:id');
+				    
+	    $run = $dataset->parentNode;
+	    $runID = $run->getAttribute('xml:id');
+			      
+	    $simReg = $run->parentNode;
+	    $simRegID = $simReg->getAttribute('xml:id');
+
+	    $model = $simReg->parentNode;
+	    $modelID = $model->getAttribute('xml:id');
+		    
+	    $center = $model->parentNode;
+	    $centerID = $center->getAttribute('xml:id');
+	    
+	    return $centerID.";".$modelID.";".$simRegID.";".$runID.";".$datasetID;
+      }
+  	 
+    private function getRunFromDataset($dataset)
+  	 {
+	    $run        = $dataset->parentNode;
+	    return $run;
+  	 }
+   	 
+  	 function getReleaseDate($dataset)
+  	 {
+	    $run = $this->getRunFromDataset($dataset);
+	    if (!run || !$run->hasAttribute('ReleaseDate'))
+
+	      return '0';
+		  return strtotime($run->getAttribute('ReleaseDate'));
+  	 }
+
+	 function getSimulatedRegion($dataset) {
+	 
+	    if (isset($dataset->parentNode))
+	      $run = $dataset->parentNode;  
+	    if (isset($run->parentNode)) {
+	    if ($run->parentNode->hasAttribute('name'))
+	      $simReg = $run->parentNode->getAttribute('name');
+	    return $simReg;
+	    }
+	    else return false;
+  	 }
+
+	function getDatasetAttribute($dataset ,$attribute)
+  	 {
+	    $run = $this->getRunFromDataset($dataset);
+	    if (!run || !$run->hasAttribute($attribute))
+
+	      return '';
+		  return $run->getAttribute($attribute);
+  	 }
+  }
+
+
+  //Get filter result for all simulations bases
+  class FilterResSimu extends FilterRes
+  {
+  	protected $arrayFilesMgr;
+  	
+  	function __construct() 
+  	{
+	    $this->arrayFilesMgr = array();
+	    array_push($this->arrayFilesMgr,new SimuFileMgr(RemoteData."LATMOS/base.xml",'LATMOS'));
+	    array_push($this->arrayFilesMgr,new SimuFileMgr(RemoteData."FMI_GUMICS/base.xml",'FMI_GUMICS'));
+	    array_push($this->arrayFilesMgr,new SimuFileMgr(RemoteData."FMI_HYBRID/base.xml",'FMI_HYBRID'));
+	    array_push($this->arrayFilesMgr,new SimuFileMgr(RemoteData."SINP/base.xml",'SINP'));
+  	}
+  	
+	function getDataProd($value,$opId)
+  	{
+  		 $result = array();
+
+  		 foreach ($this->arrayFilesMgr as $fileMgr){
+  		 	 
+  		   if ((($value == $fileMgr->centerID) && ($opId == 'eq')) || (($value != $fileMgr->centerID) && ($opId == 'ne')))
+  		   {
+  		     $datasets = $fileMgr->queryDatasets();
+  		     foreach ($datasets as $dataset){ 
+  		       array_push($result,$fileMgr->getDatasetFilterPath($dataset));
+		      }
+  		   }
+  		  }
+  		 return $result;
+  	}
+  	
+  	function getReleaseDate($value,$opId)
+  	{
+  		 $result = array();
+  		  
+  		 $val  = strtotime($value);
+  		   	 
+  	  foreach ($this->arrayFilesMgr as $fileMgr)
+  	  {
+  		   $datasets = $fileMgr->queryDatasets();
+  		   foreach ($datasets as $dataset)
+  		   {
+  		   	 $date = $fileMgr->getReleaseDate($dataset);
+  		   	 if (($date == $val) || (($date < $val) && ($opId == 'le')) || (($date > $val) && ($opId == 'ge')))
+  		       array_push($result,$fileMgr->getDatasetFilterPath($dataset));
+  		   }
+  		 }
+  	  
+  	  return $result;
+  	}
+
+
+  	function getSimuRegion($value,$opId) {
+	  $result = array();
+  		
+  	  foreach ($this->arrayFilesMgr as $fileMgr) {
+	      $datasets = $fileMgr->queryDatasets();
+	      foreach ($datasets as $dataset)
+	      {
+		  if ($fileMgr->getSimulatedRegion($dataset)){
+		    $isSimuRegion = ($fileMgr->getSimulatedRegion($dataset) == $value);
+		    if (($isSimuRegion && ($opId == 'eq')) || (!$isSimuRegion && ($opId == 'ne')))
+			array_push($result,$fileMgr->getDatasetFilterPath($dataset));
+		  }
+	      }
+  	}
+  	  
+  	  return $result;
+
+  	}
+
+	  	
+  	function getInfoFromRunIDEqual($value,$opId, $attribute)
+  	{
+  		 $result = array();
+  		  
+  	  foreach ($this->arrayFilesMgr as $fileMgr)
+  	  {
+  		   $datasets = $fileMgr->queryDatasets();
+  		   foreach ($datasets as $dataset)
+  		   {
+  		   	 $isAttribute = ($fileMgr->getDatasetAttribute($dataset, $attribute) == $value);
+  		   	 if (($isAttribute && ($opId == 'eq')) || (!$isAttribute && ($opId == 'ne')))
+  		       array_push($result,$fileMgr->getDatasetFilterPath($dataset));
+  		   }
+  		 }
+  	  
+  	  return $result;
+  	}
+
+	function getInfoFromRunIDComp($value,$opId, $attribute)
+  	{
+  		 $result = array();
+		 $val  = floatval($value); 
+  		  
+  	  foreach ($this->arrayFilesMgr as $fileMgr)
+  	  {
+  		   $datasets = $fileMgr->queryDatasets();
+  		   foreach ($datasets as $dataset)
+  		   {
+  		   	 $attrVal = floatval($fileMgr->getDatasetAttribute($dataset, $attribute));
+  		   	 if ((($attrVal == $val) || (($attrVal < $val) && ($opId == 'le')) || (($attrVal > $val) && ($opId == 'ge'))) && $attrVal != '')
+  		       array_push($result,$fileMgr->getDatasetFilterPath($dataset));
+  		   }
+  		 }
+  	  
+  	  return $result;
+  	}
+  	
+  	function getAll()
+  	{
+  		 
+  	}
+	
+  	function getCondResult($cond)
+  	{
+  		$condId = $cond['condId'];
+  		switch($condId)
+  		{
+  			case 'dprod' : //data productor
+  				return $this->getDataProd($cond['value'],$cond['opId']);
+  			case 'simt' : //simulation type
+  				return $this->getInfoFromRunIDEqual($cond['value'],$cond['opId'], 'SimulationType');
+  			case 'reld' : //release date
+  				return $this->getReleaseDate($cond['value'],$cond['opId']);
+  			case 'simReg' : //simulated region
+  				return $this->getSimuRegion($cond['value'],$cond['opId']);
+ 			case 'tempDepend' : //Temporal Dependence
+  				return $this->getInfoFromRunIDEqual($cond['value'],$cond['opId'], 'TemporalDependence');
+ 			case 'rating' : //Likelihood Rating
+  				return $this->getInfoFromRunIDEqual($cond['value'],$cond['opId'], 'LikelihoodRating');
+ 			case 'GridCellSize_X' : //Likelihood Rating
+  				return $this->getInfoFromRunIDComp($cond['value'],$cond['opId'], 'GridCellSize_X');
+ 			case 'GridCellSize_Y' : //Likelihood Rating
+  				return $this->getInfoFromRunIDComp($cond['value'],$cond['opId'], 'GridCellSize_Y');
+ 			case 'GridCellSize_Z' : //Likelihood Rating
+  				return $this->getInfoFromRunIDComp($cond['value'],$cond['opId'], 'GridCellSize_Z');
+ 			case 'FieldValue_Bx' : //Likelihood Rating
+  				return $this->getInfoFromRunIDComp($cond['value'],$cond['opId'], 'FieldValue_Bx');
+			case 'FieldValue_By' : //Likelihood Rating
+  				return $this->getInfoFromRunIDComp($cond['value'],$cond['opId'], 'FieldValue_By');
+			case 'FieldValue_Bz' : //Likelihood Rating
+  				return $this->getInfoFromRunIDComp($cond['value'],$cond['opId'], 'FieldValue_Bz');
+			case 'Solar_Wind_electrons-Density' : //Likelihood Rating
+  				return $this->getInfoFromRunIDComp($cond['value'],$cond['opId'], 'Solar_Wind_electrons-Density');
+			case 'Solar_Wind_electrons-Temperature' : //Likelihood Rating
+  				return $this->getInfoFromRunIDComp($cond['value'],$cond['opId'], 'Solar_Wind_electrons-Temperature');
+			case 'Solar_Wind_electrons-FlowSpeed' : //Likelihood Rating
+  				return $this->getInfoFromRunIDComp($cond['value'],$cond['opId'], 'Solar_Wind_electrons-FlowSpeed');
+			case 'Solar_Wind_H-Density' : //Likelihood Rating
+  				return $this->getInfoFromRunIDComp($cond['value'],$cond['opId'], 'Solar_Wind_H-Density');
+			case 'Solar_Wind_H-Temperature' : //Likelihood Rating
+  				return $this->getInfoFromRunIDComp($cond['value'],$cond['opId'], 'Solar_Wind_H-Temperature');
+			case 'Solar_Wind_H-FlowSpeed' : //Likelihood Rating
+  				return $this->getInfoFromRunIDComp($cond['value'],$cond['opId'], 'Solar_Wind_H-FlowSpeed');
+			case 'Solar_Wind_He-Density' : //Likelihood Rating
+  				return $this->getInfoFromRunIDComp($cond['value'],$cond['opId'], 'Solar_Wind_He-Density');
+			case 'Solar_Wind_He-Temperature' : //Likelihood Rating
+  				return $this->getInfoFromRunIDComp($cond['value'],$cond['opId'], 'Solar_Wind_He-Temperature');
+			case 'SolarUVFlux' : //Likelihood Rating
+  				return $this->getInfoFromRunIDComp($cond['value'],$cond['opId'], 'SolarUVFlux');
+		}
+	}
+	 	function getResult($filter,$isEmptyFilter)
+  	{  		
+ 		 if ($isEmptyFilter)
+  			return $this->getAll();
+  		$ops = array();
+  		for ($i = 0 ; $i < count($filter); $i++)
+  		{     
+  			$cond = $filter[$i];
+  			$cond_res[$i] = $this->getCondResult($cond);
+  			$ops[$i] = $cond['logical'];
+  		}
+  		
+  		for ($i = 1; $i < count($cond_res); $i++)
+  		{
+  			if ($ops[$i] != 'and')
+  				continue;
+  			$cond_res[$i-1] = $this->andOp($cond_res[$i-1],$cond_res[$i]);
+  			array_splice($cond_res, $i, 1);
+  			array_splice($ops, $i, 1);
+			$i--;		
+  		}
+  		
+  		for ($i = 1; $i < count($cond_res); $i++)
+  		{
+  			if ($ops[$i] != 'or')
+  				continue;
+  			$cond_res[$i-1] = $this->orOp($cond_res[$i-1],$cond_res[$i]);
+  			array_splice($cond_res, $i, 1);
+  			array_splice($ops, $i, 1);
+			$i--;			
+  		}
+  		return $cond_res[0];
+  	}
+  }
+?>
\ No newline at end of file
diff --git a/php/classes/FiltersMgr.php b/php/classes/FiltersMgr.php
new file mode 100644
index 0000000..6b10129
--- /dev/null
+++ b/php/classes/FiltersMgr.php
@@ -0,0 +1,399 @@
+<?php
+  class FiltersMgr  
+  {
+  	protected $filtersXmlName, $filtersXml;
+  	protected $infoXmlName, $infoXml;
+  	protected $rootElement;
+  	protected $flyQuery;
+  	
+  	function __construct($flyQuery) 
+  	{	 		 
+  		 $this->flyQuery = isset($flyQuery) && $flyQuery;
+  		
+  		 if ($this->flyQuery) //filter manager can be used without any filters file definition. 
+  		                      //In this case, you can only use the function getResultFromFilterArray
+  		   return;
+  		
+  		 $this->infoXmlName = DATAPATH.'Filters/filters_info.xml';
+		   $this->infoXml = new DomDocument("1.0");
+		   $this->infoXml->load($this->infoXmlName); 
+  		
+		   $this->filtersXmlName = USERWSDIR."Filters.xml";
+     $this->filtersXml = new DomDocument("1.0");
+     if (file_exists($this->filtersXmlName))
+     {
+			    $this->filtersXml->load($this->filtersXmlName); 
+			    $this->rootElement = $this->filtersXml->documentElement;
+		   }
+		   else 
+		   {
+			    $this->rootElement = $this->filtersXml->createElement('filters');
+			
+			    $this->filtersXml->appendChild($this->rootElement);
+			
+			    //create 
+			    $newFilter = $this->createEmptyFilter();
+			    $newFilter->setAttribute('name','Default Filter');
+			
+			    $this->rootElement->setAttribute('select',$newFilter->getAttribute('id'));
+			
+			    $this->filtersXml->save($this->filtersXmlName);
+			
+		   }
+   }
+    
+    function getFilterArray($filter)
+    {
+    	if ($this->flyQuery)
+    	  return array();
+    	
+    	$conds = $filter->getElementsByTagName('cond');
+    	
+    	$types =  $this->infoXml->getElementsByTagName('filter');
+    	
+    	$conditionsArray = array();
+    	foreach($conds as $cond)
+		   {
+			    foreach ($types as $type)
+			      if ($type->getAttribute('id') == $cond->getAttribute('type'))
+			      {
+		         //return only conditions that exists in filters_info file
+			        array_push($conditionsArray, array(
+					         'id' => $cond->getAttribute('id'),
+					         'type' => $cond->getAttribute('type'),
+					         'index' => $cond->getAttribute('index'),
+					         'logical' => $cond->getAttribute('logical'),
+						 'condId' => $cond->getAttribute('condId'),
+					         'opId' => $cond->getAttribute('opId'),
+					         'value' => $cond->getAttribute('value')));
+			        break;
+			      }
+		}
+			
+    	return array('id' => $filter->getAttribute('id'),
+					 'name' => $filter->getAttribute('name'),
+					 'conditions' => $conditionsArray);
+    }
+    
+    function loadAll()
+    {
+    	if ($this->flyQuery)
+    	  return array();
+    	  
+    	$filters = $this->rootElement->getElementsByTagName('filter');
+    	
+    	$filtersArray = array();
+    	foreach($filters as $filter)
+    		array_push($filtersArray, $this->getFilterArray($filter));	
+
+    	return $filtersArray;
+    }
+
+    function loadList()
+    {
+        if ($this->flyQuery)
+          return array();
+          
+        $filters = $this->rootElement->getElementsByTagName('filter');
+        
+        $filtersArray = array();
+        foreach($filters as $filter) {               
+                $filtersArray[] =  array('id' => $filter->getAttribute('id'),  'name' =>  $filter->getAttribute('name'));    
+        }  
+
+        return $filtersArray;
+    }
+
+  function loadFilter($id)
+    {
+    	if ($this->flyQuery)
+    	  return null;
+    	  
+    	$filters = $this->rootElement->getElementsByTagName('filter');
+    	
+    	foreach($filters as $filter)
+    		if ($filter->getAttribute('id') == $id)
+    			return array($this->getFilterArray($filter));
+    	
+    	return null;
+    }
+    
+    function resetConditions($filter)
+    {
+    	if ($this->flyQuery)
+    	  return;
+    	  
+    	while ($filter->firstChild)   		  
+	    	$filter->removeChild($filter->firstChild);
+	              
+        $types =  $this->infoXml->getElementsByTagName('filter');
+    	foreach($types as $type)
+    	{
+    		$newCond = $this->filtersXml->createElement('cond');
+    		$newCond->setAttribute('index',-1);
+    		$newCond->setAttribute('type',$type->getAttribute('id'));
+    		$filter->appendChild($newCond);
+    	}
+    }
+    
+    function createEmptyFilter()
+    {
+    	if ($this->flyQuery)
+    	  return null;
+    	  
+    	$newFilter = $this->filtersXml->createElement('filter');
+    	$newFilter->setAttribute('id',$this->GetNewId());
+    	
+    	$this->rootElement->appendChild($newFilter);
+    	
+    	$this->resetConditions($newFilter);
+    	
+    	return $newFilter;
+    }
+    
+    function create($filter)
+    {
+    	if ($this->flyQuery)
+    	  return array();
+    	  
+    	$newFilter = $this->createEmptyFilter();
+    	
+    	if ($filter->name != '')
+    		$newFilter->setAttribute('name',$filter->name);
+    	else
+    		$newFilter->setAttribute('name','New_Filter_'.$newFilter->getAttribute('id'));
+    		
+    	if (isset($filter->conditions))
+    		foreach($filter->conditions as $cond)
+    		{
+    			if ($cond->index < 0)
+    				continue;
+
+    			$newCond = $this->filtersXml->createElement('cond');
+    			$newCond->setAttribute('id',$cond->id);
+    			$newCond->setAttribute('type',$cond->type);
+    			$newCond->setAttribute('index',$cond->index);
+    			$newCond->setAttribute('logical',$cond->logical);
+    			$newCond->setAttribute('condId',$cond->condId);
+    			$newCond->setAttribute('opId',$cond->opId);
+    			$newCond->setAttribute('value',$cond->value);
+    			$newFilter->appendChild($newCond);
+    		}
+    	
+		$this->filtersXml->save($this->filtersXmlName);
+		return $this->getFilterArray($newFilter);
+    }
+    
+    function save($filter)
+    {
+    	if ($this->flyQuery)
+    	  return null;
+    	  
+    	$filters = $this->rootElement->getElementsByTagName('filter');
+      	foreach($filters as $f)
+			if ($filter->id == $f->getAttribute('id'))
+	  		{
+	  			$f->setAttribute('name',$filter->name);
+	    		while ($f->firstChild)	    		  
+	              $f->removeChild($f->firstChild);
+	            for ($i = 0; $i < count($filter->conditions); $i++)
+	            {
+	            	$cond = $filter->conditions[$i];
+	            	$newCond = $this->filtersXml->createElement('cond');
+	            	$newCond->setAttribute('id',$cond->id);
+	            	$newCond->setAttribute('type',$cond->type);
+	            	$newCond->setAttribute('index',$cond->index);
+	              	$newCond->setAttribute('logical',$cond->logical);
+	              	$newCond->setAttribute('condId',$cond->condId);
+	              	$newCond->setAttribute('opId',$cond->opId);
+	              	$newCond->setAttribute('value',$cond->value);
+	            	$f->appendChild($newCond);
+	            }
+	            break;
+	         }
+        $this->filtersXml->save($this->filtersXmlName);
+        
+        return $filter;
+    }
+    
+    function delete($filter)
+    {
+    	if ($this->flyQuery)
+    	  return;
+    	  
+    	$filters = $this->rootElement->getElementsByTagName('filter');
+    	foreach($filters as $f)
+    	  if ($filter->id == $f->getAttribute('id'))
+    	      {
+    	      	$this->rootElement->removeChild($f);
+    	      	$this->filtersXml->save($this->filtersXmlName);
+    	      	break;
+    	      }
+    }
+    
+    function GetNewId()
+    {
+    	if ($this->flyQuery)
+    	  return -1;
+    	  
+    	$maxId = -1;
+    	$filters = $this->rootElement->getElementsByTagName('filter');
+    	foreach($filters as $filter)
+    	{
+    	  $crtId = intval($filter->getAttribute('id'));
+    	  $maxId = ($crtId > $maxId) ? $crtId : $maxId;
+    	}
+    	return strval($maxId+1);
+    }
+    
+    function getCrtId()
+    {
+    	if ($this->flyQuery)
+    	  return -1;
+    	  
+    	$selectId = $this->rootElement->getAttribute('select');
+    	if (!isset($selectId))
+    		$selectId = 0;
+    	
+    	$filters = $this->rootElement->getElementsByTagName('filter');
+    	
+    	foreach($filters as $filter)
+    	{
+    		if ($filter->getAttribute('id') == $selectId)
+    		  return $selectId;
+    	}
+    	
+    	//filter don't exist anymore... force the selection to the working filter
+    	foreach($filters as $filter)
+    	{
+    		if ($filter->getAttribute('id') == 0)
+    		  	return 0;	
+    	}
+    	
+    	//hum... the filter file is probably corrupted...
+    	return -1;
+    }
+    
+    function setCrtId($id)
+    {
+    	if ($this->flyQuery)
+    	  return false;
+    	  
+    	 $filters = $this->rootElement->getElementsByTagName('filter');
+    	 foreach($filters as $filter)
+    	 {
+    		  if ($filter->getAttribute('id') == $id)
+    		  {
+    			   $this->rootElement->setAttribute('select',$id);
+				      $this->filtersXml->save($this->filtersXmlName);
+    			   return true;
+    		  }
+    	 }
+    	
+    	 return false;
+    }
+    
+    function getResultFromFilterArray($filter_array)
+    {
+      $result = array();
+    	 foreach ($filter_array as $key => $sub_filter)
+ 	   	{
+ 	   	  $res = null;
+    		  switch($key)
+    		  {
+    			   case 'param' :
+    				    $res = new FilterResParam();
+    				    break;
+    			   case 'simu' :
+    			   	  $res = new FilterResSimu();
+    				    break;
+    		  }
+    	 
+    		  if (isset($res))
+    			   $result[$key] = $res->getResult($sub_filter,$isEmptyFilter[$key]);
+		    }
+		    	
+    	 return $result;
+    }
+    
+    function getCrtResult()
+    {
+
+
+    	if ($this->flyQuery)
+    	  return null;
+    	  
+    	$selectId = $this->getCrtId();
+    	
+    	if ($selectId < 0)
+    		return null;
+    	
+    	$filters = $this->rootElement->getElementsByTagName('filter');
+    	$crtFilter = null;
+    	foreach($filters as $filter)
+    	{
+    		if ($filter->getAttribute('id') == $selectId)
+    		{
+    			$crtFilter = $filter;
+    			break;
+    		}
+    	}
+   	
+    	if (!isset($crtFilter))
+    		return null;
+    	
+    	$conditions = $crtFilter->getElementsByTagName('cond');
+    		
+    	$filter_array = array();
+    	$isEmptyFilter = array();
+    	$isFullEmptyFilter = true;
+    	
+    	
+    	foreach($conditions as $cond)
+    	{
+    		if (!isset($filter_array[$cond->getAttribute('type')]))
+    			$filter_array[$cond->getAttribute('type')] = array();
+    		if (!isset($isEmptyFilter[$cond->getAttribute('type')]))
+    			$isEmptyFilter[$cond->getAttribute('type')] = true;
+    		if ($cond->getAttribute('index') < 0)
+    			continue;
+    		$isEmptyFilter[$cond->getAttribute('type')] = false;
+    		$isFullEmptyFilter = false;
+    		
+    		array_push($filter_array[$cond->getAttribute('type')],
+    					array('logical' => $cond->getAttribute('logical'),
+					          'condId' => $cond->getAttribute('condId'),
+						      'opId' => $cond->getAttribute('opId'),
+					    	  'value' => $cond->getAttribute('value')));
+    	}
+    	
+    	$result = $this->getResultFromFilterArray($filter_array);
+    	
+    	$result['id'] = $crtFilter->getAttribute('id');
+		    if (($result['id'] == 0) && $isFullEmptyFilter)
+			     $result['name'] = 'None';
+		    else	
+			     $result['name'] = $crtFilter->getAttribute('name');
+		   return $result;
+    }
+    
+    function reset()
+    {
+    	if ($this->flyQuery)
+    	  return false;
+    	  
+    	$filters = $this->rootElement->getElementsByTagName('filter');
+    	foreach($filters as $filter)
+    	{
+    		if ($filter->getAttribute('id') == '0')
+    		{
+    			$this->resetConditions($filter);
+    			$this->rootElement->setAttribute('select','0');
+				$this->filtersXml->save($this->filtersXmlName);
+    			return true;
+    		}
+    	}
+    	return false;
+    }
+  }
+?>
\ No newline at end of file
diff --git a/php/classes/Guest.php b/php/classes/Guest.php
new file mode 100644
index 0000000..3a75b16
--- /dev/null
+++ b/php/classes/Guest.php
@@ -0,0 +1,135 @@
+<?php
+/** 
+ * @brief Guest Manager
+ * @version $Id: Guest.php 2517 2014-09-25 09:47:45Z elena $
+ *   
+ */
+ 
+class Guest {
+
+    private $guestXml, $guestXmlFile, $xp, $root;
+    public  $Id, $Start, $Ip, $email;
+
+    function __construct($Ip_, $email_){
+      
+        if($email_ != null) {
+           $this->Start = getdate();
+           $this->Ip = $Ip_;
+           $this->email = $email_;
+          }
+         else {
+             $this->Id = substr($Ip_,strlen("guest"));
+          }
+
+         $this->guestXmlFile = DATAPATH."guests.xml";
+         $this->guestXml  =  new DomDocument("1.0");
+
+         if (!file_exists($this->guestXmlFile)){
+            $status = $this->generateXML();
+         }
+         else {
+            $this->guestXml->load($this->guestXmlFile);
+            $this->root = $this->guestXml->getElementsByTagName("guests")->item(0);
+        }
+        $this->xp = new domxpath($this->guestXml);                     
+    }
+
+    private function generateXML() {
+        $this->root = $this->guestXml->createElement('guests'); 
+        $this->guestXml->appendChild($this->root);
+
+        $status = $this->guestXml->save($this->guestXmlFile);
+
+        return $status;
+    } 
+
+    public function GetId(){
+           
+         $elements = $this->xp->query("//@xml:id"); 
+// Now find New Valid ID        
+            if ($elements->length > 0) {
+                     $idList = array();
+                     for ($i = 0; $i < $elements->length; $i++) 
+                           $idList[$i] = $elements->item($i)->nodeValue; 
+                      
+                     sort($idList);
+                     for ($i = 0; $i < $elements->length; $i++) {
+                        if ($idList[$i] > $i) { 
+                                 $newID = $i;
+                                 break;
+                           }  
+                         $newID = $i+1;  
+                      }                 
+             } else { $newID = 0;}
+
+       return $newID;
+   }
+
+   public function checkGuestTimes(){
+   
+         $Start_0 = time() - GuestSessionDuration*60; // in secs
+         $startTimes = $this->xp->query("//guest[@start<".$Start_0."]/@xml:id"); 
+
+         if ($startTimes->length > 0) {             
+            for ($i = 0; $i < $startTimes->length; $i++) {                
+                    $user = "guest".$startTimes->item($i)->value;
+                    $this->deltree(USERPATH.$user);
+                    $this->root->removeChild($startTimes->item($i)->parentNode);  
+            }
+            $this->xp = new domxpath($this->guestXml);    
+         }
+
+    }
+
+   public function deleteGuest(){
+
+            $user = "guest".$this->Id;
+            $this->deltree(USERPATH.$user);
+            $theGuest = $this->guestXml->getElementById($this->Id);
+            $this->root->removeChild($theGuest);
+            $this->guestXml->save($this->guestXmlFile);
+
+ }
+
+    public function addGuest(){
+ 
+      if (($this->Id = $this->GetId()) < MaxGuests) {
+          $guest = $this->guestXml->createElement("guest");        
+          $guest->setAttribute('xml:id',$this->Id );         
+          $guest->setAttribute('start',time());
+          $guest->appendChild($this->guestXml->createElement("IP", $this->Ip));
+          $guest->appendChild($this->guestXml->createElement("email", $this->email));
+          $this->root->appendChild($guest);
+          $this->guestXml->save($this->guestXmlFile);
+
+          return "guest".$this->Id;
+      }
+       else  {  
+           return "allGuestLoginsInUse";
+      }
+ }
+
+     public function registerGuest(){
+
+          $guest_file = fopen(DATAPATH.'guest.login','a'); 
+          fwrite($guest_file, $this->email." ".$this->Ip." ".$this->Start['mday']."/".$this->Start['mon']."/".$this->Start['year']."\n"); 
+          fclose($guest_file);     
+
+    }
+
+   public function deltree($f) {
+
+        if (is_dir($f)) {
+            foreach(glob($f.'/*') as $sf) {
+                if (is_dir($sf) && !is_link($sf)) {
+                    $this->deltree($sf);
+                } else {
+                    unlink($sf);
+                } 
+            } 
+        }
+        if (is_dir($f)) rmdir($f);
+    }
+    
+} 
+?>
diff --git a/php/classes/HstMgr.php b/php/classes/HstMgr.php
new file mode 100644
index 0000000..6f54a5c
--- /dev/null
+++ b/php/classes/HstMgr.php
@@ -0,0 +1,147 @@
+<?php
+/**
+ * Project   : AMDA-NG
+ * Name      : HstMgr.php
+ * @author Richard Hitier
+*****************************************************************************
+ * FT Id     :   Date   : Name - Description
+ ******************************************************************************
+ *           :14/05/2012: BRE  - file creation and modifications for AMDA-NG project
+ */
+
+class HstMgr {
+
+    private $hst_votable;
+
+    function __construct( $base_file = null ) {
+        $this->hst_votable = Array(
+            "saturn"=>Hst."hstVOtable-saturn.xml",
+            "jupiter"=>Hst."hstVOtable-jupiter.xml",
+        				"uranus"=>Hst."hstVOtable-uranus.xml");
+    }
+
+
+    /**
+     * Return a Votable containing items between given dates.
+     * Beware, input DOM's TR elements should already be date sorted.
+     *
+     * BTW, Group one TableData by day
+     *
+     * @param startTime
+     * @param stopTime
+     * @param stopTime
+     * @return dom
+     */
+    function getImagesUrl( $startTime, $stopTime, $planet="saturn"){
+
+        $startTime = $this->formatDate($startTime);
+        $stopTime = $this->formatDate($stopTime);
+        $imagesUrlList = array();
+
+        // fetch whole data base
+        $domOrig = $this->getHstBase($planet);
+
+        // copy dom except tabledata children
+        $domRes  = new Domdocument("1.0");
+        $domRes->appendChild( $domRes->importNode( $domOrig->documentElement, true));
+
+        // remove uniq TABLEDATA node
+        $oldTableDataNode = $domRes->getElementsByTagName("TABLEDATA")->item(0);
+        $oldTableDataNode->parentNode->removeChild( $oldTableDataNode );
+
+        $dataNode = $domRes->getElementsByTagName("DATA")->item(0);
+
+        // filter all rows (TR tags)
+        // create one TABLEDATA per day
+        // set xml result
+        $oldDayString = "none";
+        $trList = $domOrig->getElementsByTagName("TR");
+        for( $i=0; $i < $trList->length ; $i++){
+            $currItem = $trList->item($i);
+            $currDateString = $this->formatDate( $currItem->getElementsByTagName("TD")->item(5)->nodeValue );
+            $currDayString = substr( $currDateString, 0, 11);
+
+
+            // not found already ? skip
+            if( $currDateString < $startTime )
+                continue;
+
+            // to late ? quit loop
+            if( $currDateString > $stopTime)
+                break;
+
+            // Create new TABLEDATA node if day changed
+            // and immediatly insert in dom
+            if( $currDayString != $oldDayString ){
+                $oldDayString = $currDayString;
+                $tableDataNode = $domRes->createElement("TABLEDATA");
+                $tableDataNode->setAttribute( "name", $currDayString);
+                $dataNode->appendChild( $tableDataNode );
+            }
+
+            //then append current element to node
+            $tableDataNode->appendChild( $domRes->importNode( $currItem , true) );
+        }
+        
+        //BRE result is now given as an array
+        
+        $res = array();
+        
+       	$tableDataNodes = $domRes->getElementsByTagName("TABLEDATA");
+       	
+       	foreach($tableDataNodes as $tableDataNode)
+       	{
+       		$data = $this->tableDataNode2Array($tableDataNode);
+       		
+       		$data["images"] = array();
+       		
+       		foreach($tableDataNode->childNodes as $child)
+       			array_push($data["images"], $this->tableDataNode2Array($child));
+       			
+        	array_push($res,$data);
+       	}
+       	
+        return $res;
+    }
+    
+    function tableDataNode2Array($node)
+    {
+    	$tds = $node->getElementsByTagName("TD");
+    	$data = array("name" => $tds->item(0)->nodeValue,
+       				  "target" =>  $tds->item(1)->nodeValue,
+       				  "ra" =>  $tds->item(2)->nodeValue,
+       				  "dec" =>  $tds->item(3)->nodeValue,
+       				  "ref" =>  $tds->item(4)->nodeValue,
+       				  "start" =>  $tds->item(5)->nodeValue,
+       				  "stop" =>  $tds->item(6)->nodeValue,
+       				  "exposure" =>  $tds->item(7)->nodeValue,
+       				  "instrument" =>  $tds->item(8)->nodeValue);
+		return $data;
+    }
+    	
+    /**
+     * Standardize output dates
+     * @param dateString inputdate
+     * @return formated date
+     */
+    function formatDate($dateString){
+        $arr = date_parse( $dateString);
+        $format = "%4d-%02d-%02d %02d:%02d:%02d\n";
+        return sprintf($format, $arr['year'], $arr['month'],$arr['day'], $arr['hour'], $arr['minute'], $arr['second']);
+    }
+
+    /**
+     * Get the xml vot for given planet
+     *
+     * @param $planet string, either saturn or jupiter
+     * @return dom votable
+     */
+    function getHstBase($planet="saturn") {
+        $dom = new Domdocument("1.0");
+        $dom->load($this->hst_votable[$planet]);
+        return $dom;
+    }
+
+}
+
+?>
diff --git a/php/classes/InfoProvider.php b/php/classes/InfoProvider.php
new file mode 100644
index 0000000..f6cb4cf
--- /dev/null
+++ b/php/classes/InfoProvider.php
@@ -0,0 +1,30 @@
+<?php
+/**
+ * @class InfoProvider 
+ * @version  $Id: InfoProvider.php 2662 2014-11-26 09:45:33Z natacha $
+ * 
+ */
+class InfoProvider {
+// units conversion: 
+// km2Re = 1./6371.0; km2au = 1./1.5 *10^9; km2rma (mars) 1./3396.0;  km2rv  1.0/6052.0;   km2rmе 1.0/2439.7 
+      public $realConversion = array( 'km2re' =>  '1.5696e-4', 'K2eV' => '8.622e-5', 'MK2eV' => '86.2069',
+				      'km2au' =>  '6.68e-9', 'km2rma' => '2.945e-4', 'km2rv' => '1.652e-4',
+                                      'rma2km' => '3396.0', 'rv2km' => '6052.0', 'rga2km' => '2631.0', 
+                                      're2km' => '6371.0', 'km2rmе' => '4.099e-4','rme2km' => '2440.0',
+                                      'mbar2npa' => '1.0e11', 'a2na' => '1.0e9');
+
+      public $Constants;
+
+
+      function __construct() {
+	  $this->Constants = array();
+	}
+
+//TODO constants => from constants.xml
+
+     public function getConversion($key) {
+        if ($this->realConversion[$key]) return $this->realConversion[$key];
+        return -1;
+    }
+ }
+?>
\ No newline at end of file
diff --git a/php/classes/JobsMgr.php b/php/classes/JobsMgr.php
new file mode 100644
index 0000000..e45c28a
--- /dev/null
+++ b/php/classes/JobsMgr.php
@@ -0,0 +1,489 @@
+<?php
+/**
+ * @class JobsMgr
+ * @brief Manage all batch jobs
+ * @version $Id: JobsMgr.php 2757 2015-02-19 12:15:41Z elena $
+ *    
+ */
+
+  class JobsMgr {
+
+    protected $jobXml, $jobXmlName;
+    
+    protected $bkgRootNode = array('condition' => 'bkgSearch-treeRootNode',
+                                'request' => 'bkgPlot-treeRootNode',
+                                'download' => 'bkgDown-treeRootNode');
+
+    protected $resRootNode = array('condition' => 'resSearch-treeRootNode',
+                                    'request' => 'resPlot-treeRootNode',
+                                    'download' => 'resDown-treeRootNode');
+
+    protected $jobPrefix = array( 'condition' => 'bkgrd_cond_', 
+                                'request' => 'bkgrd_req_',
+                                'download' => 'bkgrd_down_');
+
+    public $success = true;
+
+    function __construct() {
+
+        $this->jobXmlName = USERJOBDIR."jobs.xml";
+        $this->jobXml = new DomDocument("1.0");
+
+        if (!file_exists($this->jobXmlName)){
+            $status = $this->generateXml(); 
+            if (!$status) {
+                error_log('Cannot create jobs.xml: Fatal Error',1,email); 
+                $this->success = false;
+            }
+        }
+        else {
+            $status = $this->jobXml->load($this->jobXmlName); 
+            if (!$status) {
+                $status = $this->generateXml(); 
+                $msg = $status ? 'Cannot load jobs.xml. New jobs.xml was created' : 
+                    'Cannot load jobs.xml. Cannot create jobs.xml: Fatal Error';
+                error_log($msg,1,email);
+                if (!$status) $this->success = false;
+            }
+        }           
+    } 
+
+/*
+*  Create jobs.xml if it doesn't exist or in case of loading problems
+*/
+    private function generateXml() {
+
+        $rootElement = $this->jobXml->createElement('jobs');
+        $jobsInProgress = $this->jobXml->createElement('jobsInProgress');
+
+        foreach ($this->bkgRootNode as $key => $value) {
+                $element = $this->jobXml->createElement("$key");
+                $element->setAttribute('xml:id',"$value");
+                $jobsInProgress->appendChild($element);
+        }
+        $jobsFinished = $this->jobXml->createElement('jobsFinished');
+
+        foreach ($this->resRootNode as $key => $value) {
+                $element = $this->jobXml->createElement("$key");
+                $element->setAttribute('xml:id',"$value");
+                $jobsFinished->appendChild($element);
+        }
+
+        $rootElement->appendChild($jobsInProgress);
+        $rootElement->appendChild($jobsFinished); 
+        $this->jobXml->appendChild($rootElement);
+
+        $status = $this->jobXml->save($this->jobXmlName);
+
+        return $status;
+    }
+
+
+    //TODO procedure to estimate STATUS
+    protected function getStatus($pid) {
+
+        return '20';
+    }
+
+/*
+*
+*/      
+    protected function updateJobStatus($pid) {
+
+        if ($this->isFinished($pid)) return 'done';
+        $status = $this -> getStatus($pid);
+        return $status;
+    }
+      
+/*
+*
+*/
+    protected function saveResource($obj, $name) {   
+
+        $file = fopen(USERJOBDIR.$name, 'w');
+        //TODO change id and name to job ones?	
+        fwrite($file, json_encode($obj));
+        fclose($file);       
+    }
+
+    // $obj => XML tag
+    protected function deleteResource($obj) {   
+        // Delete request	
+        $request_name = $obj->getAttribute('xml:id');
+        if (file_exists(USERJOBDIR.$request_name)) unlink(USERJOBDIR.$request_name);
+
+        // Delete result Time Table
+        if ($obj->getAttribute('jobType') == 'condition') {
+            foreach (glob(USERTTDIR.'*'.$obj->getAttribute('name').'*.xml') as $filename)  
+                                                            unlink($filename);
+        }
+
+        // Delete result PLOT : PDF and PS 
+        if ($obj->getAttribute('jobType') == 'request' || $obj->getAttribute('jobType') == 'download') {
+            $resultDir = USERWORKINGDIR.$obj->getAttribute('rawname').'_/';
+            if (is_dir($resultDir)) {
+                foreach (glob($resultDir.'*') as $filename)  
+                                                    unlink($filename);
+                rmdir($resultDir);
+            }
+        }
+    }
+
+    // $obj => XML tag   
+    protected function updateResultName($obj) {  
+
+        switch ($obj->getAttribute('jobType')) 
+        {
+            case 'condition':
+
+                //TODO temporary dir? 
+                    $old_tt =  USERTTDIR.$obj->getAttribute('rawname').'.xml';
+                    $new_tt =  USERTTDIR.$obj->getAttribute('name').'.xml';
+                    if (file_exists($old_tt)) rename($old_tt, $new_tt); 
+
+                    $old_tt =  USERTTDIR.'Gaps_'.$obj->getAttribute('rawname').'.xml';	    
+                    $new_tt =  USERTTDIR.'Gaps_'.$obj->getAttribute('name').'.xml';
+                    if (file_exists($old_tt)) rename($old_tt, $new_tt);  
+                break;
+
+            case 'request' :
+
+                    $resultDir = USERWORKINGDIR.$obj->getAttribute('rawname').'_/';	 	
+                    $reqFile = USERJOBDIR.$obj->getAttribute('xml:id');
+                    if (file_exists($reqFile)) {
+                        $object = json_decode(file_get_contents($reqFile));
+                        $format = strtolower($object->format);
+                        
+                        $newName = $obj->getAttribute('name');
+                        switch ($format) {
+                                case 'ps':   
+                                        if (file_exists($resultDir.'idl.ps')){
+                                            rename($resultDir.'idl.ps',$resultDir.$newName.'.ps');
+                                            exec('gzip '.$resultDir.$newName.'.ps'); 
+                                        }
+                                        //PS for time table
+                                        else {
+                                            $filenames = glob($resultDir."*.ps.gz");
+                                            if ($filenames && count($filenames) == 1) {
+                                                    rename($filenames[0],$resultDir.$newName.'.ps.gz');
+                                            }
+                                        }
+                                    break;
+                                case 'pdf': 
+                                        if (file_exists($resultDir.'idl.ps')){
+                                            exec('ps2pdf '.$resultDir.'idl.ps '.$resultDir.'idl.pdf');
+                                            unlink($resultDir.'idl.ps');
+                                            rename($resultDir.'idl.pdf',$resultDir.$newName.'.pdf');
+                                        }
+                                        // PDF for time tables
+                                        if (file_exists($resultDir.'idl.pdf')){
+                                            rename($resultDir.'idl.pdf',$resultDir.$newName.'.pdf');
+                                        }
+                                    break;
+                                    case 'png' :
+                                            rename($resultDir.$obj->getAttribute('rawname').'.png', $resultDir.$newName.'.png');
+                                        break;
+                                    default :
+                                    } 			     		  
+                                }  
+                            break;
+
+            case 'download' : 
+
+                    $rawId = $obj->getAttribute('rawname');
+                    $name = $obj->getAttribute('name');
+
+                    $reqMgr = new RequestMgr('download');
+                    
+                    $resultDir = USERWORKINGDIR.$rawId.'_/';
+                    
+                    $res = $reqMgr->initResDir($rawId);
+
+                    if (!$res['success'])
+                                return $res;
+                    $resultDir = $res['resdir'];
+                    
+                    //get options
+                    $opts = $reqMgr->getPrintOptions($rawId);
+
+                    // Start PostProcessing - lock dir from Client Requests
+                    if (!file_exists($resultDir."/POSTPROCESSING"))
+                                       touch($resultDir."/POSTPROCESSING");
+                    // Is still PostProcessing - return 
+                    else return true;
+
+                    $reqMgr->postProcessing($rawId,$name);
+                    if (file_exists($resultDir."/POSTPROCESSING"))
+                                        unlink($resultDir."/POSTPROCESSING");
+                break;
+
+            default :
+
+        }  
+        return false;  
+    } 
+
+/*****************************************************************
+*                           PUBLIC FUNCTIONS
+*****************************************************************/
+  
+    public function isFinished($PID){
+
+        exec("ps $PID", $ProcessState);	
+        if (count($ProcessState) >= 2 ) return false;
+                
+        return true;
+    }
+
+/*
+*
+*/  
+    public function addJob($obj, $pid, $tmpname, $newname) {
+
+ /* [id] => cond_2
+    [name] => longtest
+    [sampling] => 60
+    [gap] => 5
+    [expression] => imf(0) > 0
+    [startDate] => 2000-09-27T13:50:51
+    [durationDay] => 0665
+    [durationHour] => 12
+    [durationMin] => 00
+    [durationSec] => 00
+    [leaf] => 1
+    [nodeType] => condition
+ */
+
+            $newJob = $this->jobXml->createElement('job');
+
+            $newJob->setAttribute('jobType', $obj->nodeType);
+            $newJob->setAttribute('pid', $pid); 
+            $newJob->setAttribute('start', date('d-m-Y H:i:s'));
+            if ($pid) {
+                $newJob->setAttribute('status', $this->getStatus($pid));
+                $newJob->setAttribute('name', 'job_'.$pid);
+            }
+            else {
+                $newJob->setAttribute('status', 'done');
+                $newJob->setAttribute('name', $newname);
+            }
+
+            $newJob->setAttribute('rawname', $tmpname);
+
+            switch ($obj->nodeType) 
+            {         
+                case 'condition':            	
+                    $newJob->setAttribute('info', $obj->expression);
+                    break;
+                case 'download' :
+                    $info = '';
+                    foreach ($obj->list as $param)
+                    {
+                                if ($obj->downloadSrc == '2') //fits image
+                                                        $info = $info.' '.$param->url;
+                                                        else
+                                                        $info = $info.' '.$param; //data
+                    }
+                                    $newJob->setAttribute('info', $info);
+                    break;	
+                case 'request'	 :	  
+                    $info = '';
+                            for ($i=0; $i < count($obj->children); $i++) {
+                                            for ($j=0; $j < count($obj->children[$i]->children); $j++) {
+                                                    $info = $info.' '.$obj->children[$i]->children[$j]->name;
+                                            }
+                                    }
+                    $newJob->setAttribute('info', $info);
+                    break;
+                default: 	
+            }
+
+            if ($pid) {
+                $newJob->setAttribute('xml:id',$this->jobPrefix[$obj->nodeType].$pid);
+                $rootJobNode = $this->jobXml->getElementById($this->bkgRootNode[$obj->nodeType]);
+                if (!$rootJobNode) {
+                    $key = $obj->nodeType;
+                    $rootJobNode =  $this->jobXml->createElement("$key");
+                    $rootJobNode->setAttribute('xml:id', $this->bkgRootNode[$obj->nodeType]);
+                    $jobsInProgress = $this->jobXml->getElementsByTagName('jobsInProgress')->item(0);
+                    $jobsInProgress->appendChild($rootJobNode);
+                }
+            }
+            else {
+                $newJob->setAttribute('xml:id', $tmpname);
+                $rootJobNode = $this->jobXml->getElementById($this->resRootNode[$obj->nodeType]);
+                if (!$rootJobNode) {
+                    $key = $obj->nodeType;
+                    $rootJobNode =  $this->jobXml->createElement("$key");
+                    $rootJobNode->setAttribute('xml:id', $this->resRootNode[$obj->nodeType]);
+                    $jobsInProgress = $this->jobXml->getElementsByTagName('jobsFinished')->item(0);
+                    $jobsInProgress->appendChild($rootJobNode);
+                }
+            }
+
+            //TODO if status  'error'...                    
+            $rootJobNode->appendChild($newJob);	                 	 
+            $ok = $this->jobXml->save($this->jobXmlName);
+
+            if ($pid) 
+                    $this->saveResource($obj, $newJob->getAttribute('xml:id'));
+
+        return  $newJob->getAttribute('xml:id');
+
+    }
+ 
+/*
+*  object : id, leaf, nodeType
+*/
+    public function deleteObject($obj) {
+           
+        $job = $this->jobXml->getElementById($obj->id);
+
+        if (!$job) return array('id' => $obj->id);
+
+        $pid = $job->getAttribute('pid');
+
+        // Check if it is temporary result 
+        if ($pid == '0') {
+
+            $resultDir = USERWORKINGDIR.$obj->id.'_';
+            if (is_dir($resultDir)) {
+                foreach (glob($resultDir.'/*') as $filename)  
+                                        unlink($filename);
+                rmdir($resultDir);
+            }
+            //TT temporary
+            foreach (glob(USERTTDIR.'*'.$obj->id.'*.xml') as $filename)  
+                                                unlink($filename);
+
+            $job->parentNode->removeChild($job);
+            $this->jobXml->save($this->jobXmlName);
+
+            return array('id' => $obj->id);             
+         }
+                
+        if (!$this->isFinished($pid)) { 
+            $cmd = 'kill -9 '.$pid;
+            exec($cmd);
+        }
+
+        $this->deleteResource($job);
+
+        $job->parentNode->removeChild($job);
+        $this->jobXml->save($this->jobXmlName);
+            
+        return array('id' => $obj->id);
+    }
+
+/*
+*
+*/
+    public function getObject($id) {
+        
+            $job = $this->jobXml->getElementById($id);
+            $format = 'unknown';
+            $compression = 'unknown';
+            if($job) {
+                $rawname = $job->getAttribute('rawname');
+                if ($job->getAttribute('jobType') ==  'request') {
+                    if (file_exists(USERJOBDIR.$id)) {
+                        $obj = json_decode(file_get_contents(USERJOBDIR.$id));
+                        $format = strtolower($obj->format);
+                    };
+                }
+                if ($job->getAttribute('jobType') ==  'download') {
+                    if (file_exists(USERJOBDIR.$id)) {
+                        $obj = json_decode(file_get_contents(USERJOBDIR.$id));
+                        $compression = strtolower($obj->compression);
+                    };
+                }
+            }
+            return array('id' => $id, 'name' => $rawname, 'format' => $format,  'compression' => $compression);
+    }
+
+/*
+*      Real Update
+*/
+    public function getCurrentJobsStatus() {
+
+        $jobs = $this->jobXml->getElementsByTagName('job'); 
+      
+        foreach ($jobs as $job) {
+            $pid = $job->getAttribute('pid');
+            $status = $job->getAttribute('status');
+ 
+            // Already in Result => do not process
+            if ($status == 'error' ||  $status == 'done') {
+                $stop =  $job->getAttribute('stop');
+                $jobType = $job->getAttribute('jobType');
+                $status = 'old';
+             }
+             else {
+                $status =  $this -> updateJobStatus($pid);
+                $stop = 'unknown';  
+                $job->setAttribute('status',$status); 
+                $jobType = $job->getAttribute('jobType');
+
+                if ($status ==  'error' || $status == 'done') {
+                    
+                    $stop =  date('d-m-Y H:i:s');
+                    $job->setAttribute('stop', $stop);
+                    // new array !!! otherwise $jobs array decreased
+                    if ($jobType != null) {
+                        $jobsToMove[] = $job;                       
+                    }
+                    if ($status == 'done') {
+                            // Could take long time - special truck to avoid interference of TaskMgr requests
+                            // check if ResDir is locked
+                            $postProccesing = $this->updateResultName($job);
+                            if ($postProccesing) {  
+                                // is already  PostProcessing -> return something not-used
+                                return  array('id' => 'postprocessing'); 
+                            }			   
+                        }
+                    }
+            }
+                                            
+            $allJobs[] = array('name' => $job->getAttribute('name'), 
+                                'id' => $job->getAttribute('xml:id'),
+                                'nodeType' => 'bkgWorks', 'leaf' => true,
+                                'pid' => $pid, 'status' => $status,
+                                'start' =>  $job->getAttribute('start'),
+                                'stop' => $stop, 'jobType' =>  $jobType);
+ 
+        }
+ 
+        foreach ($jobsToMove as $job) 
+                    $this->jobXml->getElementById($this->resRootNode[$job->getAttribute('jobType')])->appendChild($job);
+
+        $this->jobXml->save($this->jobXmlName);
+ 
+     return  $allJobs;
+    }
+
+/*
+*    Delete all temporary products
+*/
+    public function deleteTmp() 
+    {
+            // Clean up temporary directory
+            if (is_dir(USERTEMPDIR)) 
+                    foreach ( glob(USERTEMPDIR.'*') as $filename ) unlink($filename);
+
+            // Clean up immediate jobs	    
+            $xp = new domxpath($this->jobXml);
+            $tmps = $xp->query("//job[@pid='0']");
+            if ($tmps->length == 0) return;
+
+            foreach ($tmps as $tmp) {
+                    $this->deleteResource($tmp);
+                    $tmp->parentNode->removeChild($tmp);
+            }
+
+            $this->jobXml->save($this->jobXmlName);
+
+        return;
+    }
+
+}
+?>
diff --git a/php/classes/ParamMgr.php b/php/classes/ParamMgr.php
new file mode 100644
index 0000000..797a7c7
--- /dev/null
+++ b/php/classes/ParamMgr.php
@@ -0,0 +1,415 @@
+<?php
+/**
+ * @class ParamMgr 
+ * @version  $Id: ParamMgr.php 1947 2013-11-28 15:10:46Z elena $
+ * 
+ */
+
+ class ParamMgr {
+	  
+	   
+	  protected $Bases, $basesDom;	 	
+	  protected $baseDom;
+	  public $xmlDom, $xmlName;
+	  public  $baseId, $paramId, $remoteViId, $localInfo, $paramDom, $paramXML;
+ 
+	  function __construct() {
+//TODO check if files exist....
+	    $this->basesDom = new DomDocument("1.0");
+	    $this->basesDom->load(RemoteData.'Bases.xml');
+            $bases = $this->basesDom->getElementsByTagName('dataCenter');
+	    foreach ($bases as $base) $this->Bases[] = $base->getAttribute('xml:id');
+	    
+	    $this->xmlName = USERWSDIR.'RemoteParams.xml';
+	    $this->xmlDom = new DomDocument("1.0");
+	    $this->xmlDom->load($this->xmlName);
+
+	  }
+
+/*
+*       
+*/
+	protected function param2dd($paramID) {
+	
+	    $pairs = array("%" => "_","\\" => "_","$" => "_",":" => "_","+" =>"_","-" => "_","#" => "_","@" => "_","." => "_", ">" => "_", "<" => "_");    
+	    return strtr($paramID,$pairs); 
+	  }
+
+/*
+*       Make Aliases - Remote data set ID -> DD data set ID (xxxx_xxxx_xxxx)  
+*/
+	 public function dataset2dd($remVIID) {
+            // TODO method of ????  class
+      
+                $ddVIID = $remVIID;
+            return $ddVIID;
+	  }
+
+/*
+*       get baseId from parameter descriptor
+*/
+	 protected function setBaseId($id) {
+ 
+	    foreach ($this->Bases as $base) {
+// Special Themis case
+                if (substr($id,0,2) == "th") {
+                      $this->baseId = "THEMIS";
+                      break;
+                    }
+                 if (strncmp($id, $base, strlen($base)) === 0) {
+		      $this->baseId = $base;
+		      break;
+		  }
+	    }
+ 
+	    $this->baseDom = new DomDocument("1.0");
+	    $this->baseDom->load(RemoteData.$this->baseId.'/base.xml');             
+	  }
+
+/*
+*       get Info File name
+*/
+//TODO  not to hardly code special stuff...
+	 public function getInfoName($datasetId) {
+	  
+	      if ($this->baseId == 'CDAWEB')
+				return  strtolower($datasetId)."_00000000_v01.cdf";
+	      return  $datasetId.'.xml';
+
+	  }
+
+/*
+*
+*/
+	  protected function getDatasetInfo() {
+
+	      $infoFileName = $this->getInfoName($this->remoteViId);
+	      $this->localInfo = RemoteData.$this->baseId.'/'.$infoFileName;
+	      if (file_exists($this->localInfo)) return true;
+
+// call to DD Server to create new VI
+	      $command = OLD_CLASSPATH.'AddVI '.$this->dataset2dd($this->remoteViId).' '.$this->remoteViId.' '.$this->baseId;                
+              system($command, $err);
+
+	      $remoteInfo = INFOSITE.'INFO/'.$this->baseId.'/DATASETS/'.$infoFileName;
+// Get dataset info from DD Server if it doesn't yet exists locally
+//TODO may be not neccessary to copy file? load from URL?
+	      $res = copy($remoteInfo, $this->localInfo);	     
+              return $res;
+	  }
+
+/*
+*
+*/
+	  public function getParamInfo() {
+ 	
+	      if (!$this->localInfo) {
+		$infoFileName = $this->getInfoName($this->remoteViId);
+		$this->localInfo = RemoteData.$this->baseId.'/'.$infoFileName;
+	      }
+	      switch ($this->baseId) {
+// CDAWEB specific function to parse master CDF - idl
+		case 'CDAWEB' :
+			  $command = OLD_CLASSPATH.'cdfInfo '.$this->localInfo.'  "'.$this->paramId.'"';
+			  $info = exec($command);			                         
+		      break;
+		case 'VEXGRAZ' :
+		case 'MAPSKP' :
+			  $info = $this->getInfoSpase();
+		      break;		
+		default:
+	
+		}   
+	      if ($info == "%-9999") return false;
+	      return $info; 
+	}
+
+/*
+*
+*/ 
+	  protected function getInfoSpase() {
+ 
+	      $xmlinfo =  new DomDocument("1.0");
+	      $xmlinfo->load($this->localInfo); 
+	      $mission = $xmlinfo->getElementsByTagName("PARENT_MISSION");
+	      $instrument = $xmlinfo->getElementsByTagName("PARENT_INSTRUMENT");
+ 
+	      $xp = new domxpath($xmlinfo);          
+	      $param = $xp->query("//PARAM_ID[.='".$this->paramId."']");
+	      $paramNode = $param->item(0)->parentNode;
+	      if (!$paramNode) return false;
+
+	      $info = "paramID%" . $this->paramId . "&&";
+	  // Data Type
+	      $tag = $paramNode->getElementsByTagName("DATA_TYPE"); 
+	      $value = $tag->item(0)->nodeValue;
+		  switch ($value) {
+			      case 'FLOAT' : $dataTypeS = '2'; break;
+			      case 'DOUBLE': $dataTypeS = '3'; break;
+			      case 'INT'   : $dataTypeS = '1'; break;
+			      case 'CHAR'  : $dataTypeS = '0'; break;
+			      default : $dataTypeS = '2' ;
+		    }
+	      $info = $info . "DATATYPE%" . $dataTypeS ."&&";
+	      $tag = $paramNode->getElementsByTagName("SIZES"); 
+	      $value = $tag->item(0)->nodeValue;
+	      $info = $info . "DIMENSION%" . $value;
+	      $tags=array("PARENT_MISSION", "PARENT_EXPERIMENT", "PARAMETER_SHORT_DESCRIPTION", "FILLVAL", "UNITS","DISPLAY_TYPE", "COORDINATE_SYSTEM", "TENSOR_ORDER_VALUE", "LABEL_I", "FIELDNAM");
+
+	     foreach ($tags as $atag){
+		    $tag = $paramNode->getElementsByTagName($atag);
+		    $value = $tag->length > 0 ? $tag->item(0)->nodeValue : -9999;  
+		    switch ($atag) {
+			      case "LABEL_I" : $name = "LABLAXIS"; 
+				$val_arr = array();
+				for ($j = 0; $j < $tag->length; $j++)
+				      $val_arr[$j] = $tag->item($j)->nodeValue;
+				$value = implode($val_arr, '$').'$'; break;
+			      case "COORDINATE_SYSTEM" : $name = "FRAME"; break;
+			      case "TENSOR_ORDER_VALUE" : $name = "TENSOR"; break; 
+			      case "PARAMETER_SHORT_DESCRIPTION" : $name = "DESCRIPTOR"; break; 
+			      case "PARENT_MISSION" : $name = "SOURCE_NAME";
+				  $value = $mission->item(0)->nodeValue;
+				break; 
+			      case "PARENT_EXPERIMENT" : $name = "DATA_TYPE";
+				$value = $instrument->item(0)->nodeValue;
+				break;
+			      case "FILLVAL": 
+				      $value =  $tag->length > 0 ? $tag->item(0)->nodeValue : -1.e31;
+				      $name = "FILLVAL";
+				break;
+			      default: $name = $atag;
+			}
+		      $info = $info . "&&".$name."%". $value;                  
+		    }
+   
+	  return $info;
+      }
+/*
+* Create XML parameter descriptor in the generic_data/RemoteData/PARAMS dir
+*/ 
+	  public function createParamXml($infoTotal) {
+ 
+		  $this->paramDom =  new DomDocument("1.0");  
+		  $this->paramDom->preserveWhiteSpace = false;
+		  $this->paramDom->formatOutput = true;
+ 		      
+			    $param = $this->paramDom->createElement('PARAM');                       
+			    $param->appendChild($this->paramDom->createElement("baseID",$this->baseId));
+			    $param->appendChild($this->paramDom->createElement("viID",$this->remoteViId));
+ 				
+			      $info = explode("&&",$infoTotal);
+			      for ($i = 0; $i < count($info); $i++){
+				$attr = explode("%",$info[$i]);
+				try {     
+				    $param->appendChild($this->paramDom->createElement($attr[0],$attr[1]));
+				  }
+				catch (Exception $e) {
+				    return false;   
+				}
+			      } 
+			      $this->paramDom->appendChild($param);
+			      if (!$this->paramDom->save($this->paramXML)) return false;
+  
+		  return true; // NO ERROR
+
+	  } 
+
+/*
+*  special themis case: componets from base.xml
+*/
+	  public function makeThemisComponents($param) {
+
+	      $sizes = $param->getAttribute('size');
+	      if (!$sizes) return true; // scalar
+
+
+	      $labels = $param->getAttribute('labels');
+	      $id = $param->getAttribute('xml:id');
+	      $name = $param->getAttribute('name');
+
+	      if (!$labels) {           		   			
+		      $param->setAttribute('needsArgs', true);			   
+		  return true;
+		}
+
+	      $labelArr = explode("$",$labels);                                     		
+	      for ($i = 0; $i < count($labelArr); $i++)
+		{
+			$component = $this->xmlDom->createElement('component');
+			$component->setAttribute('xml:id',$id.'('.$i.')');
+
+			$component->setAttribute('name',$labelArr[$i]);
+			$param->appendChild($component); 
+		}        		    		  
+		return true;  
+
+	  }
+
+/*
+*
+*/
+	  public function makeComponents($param) {
+
+		$sizes =  $this->paramDom->getElementsByTagName('DIMENSION')->item(0)->nodeValue;
+		$display = strtolower($this->paramDom->getElementsByTagName('DISPLAY_TYPE')->item(0)->nodeValue);
+		$units = $this->paramDom->getElementsByTagName('UNITS')->item(0)->nodeValue;
+			
+		if (!$units  || ($units == "-9999"))  $units = "no"; 
+		$param->setAttribute("units", $units);
+
+		if ($sizes == "1") return true; // Scalar - Nothing to do
+
+		$id = $param->getAttribute('xml:id');
+		$name = $param->getAttribute('name');
+	// Not a Scalar - add components to user tree            
+		$labels =  $this->paramDom->getElementsByTagName('LABLAXIS')->item(0)->nodeValue; 
+		
+	// No labels                        
+	 	if (!$labels || ($labels == "$") || (substr($display,0,6) == "spectr")) {           
+		    if (!$param->getAttribute('needsArgs')) {			     
+		      $param->setAttribute('needsArgs', true);	
+                      if (substr($display,0,6) == "spectr")  
+                                    $param->setAttribute('display_type', 'spectrogram');   
+		    }
+		  return true;
+		}
+        
+		$labelArr = explode("$",$labels);                                     		
+		    for ($i = 0; $i < count($labelArr)-1; $i++)
+		      {
+ 			      $component = $this->xmlDom->createElement('component');
+			      $component->setAttribute('xml:id',$id.'('.$i.')');
+			      $component->setAttribute('name',$labelArr[$i]);
+			      $param->appendChild($component); 
+		      }        		    		  
+		return true;  
+	      }
+/*
+*
+*/ 
+	  protected function addNode($id){
+
+// NODE EXISTS
+ 
+		if ($this->xmlDom->getElementById($id)) return true;
+  
+// NODE TO BE ADD
+		$nodeRemote = $this->baseDom->getElementById($id);
+ 
+		if (!$nodeRemote) return false;
+
+		if ($nodeRemote->tagName == 'dataset') {
+
+				    $this->remoteViId = $nodeRemote->getAttribute('name');
+				    $datasetExists = $this->baseId != 'THEMIS' ? $this->getDatasetInfo() : true;
+				    if (!$datasetExists) return false;
+		  }
+
+		 $node = $this->xmlDom->importNode($nodeRemote);
+
+		 if ($nodeRemote->tagName == 'parameter') {
+
+				    $this->paramId = $nodeRemote->getAttribute('name');
+				    $this->remoteViId = $nodeRemote->parentNode->getAttribute('name');
+ 
+			 	    $info = $this->baseId != 'THEMIS' ? $this->getParamInfo() : true;
+				    if (!$info) return false;
+				      				  
+				     
+ // XML descriptor of the parameter; themis excluded
+				    if ($this->baseId == 'THEMIS') {
+
+					if (!$this->makeThemisComponents($node)) return false;
+				    }
+				    else {
+
+					$paramGlobalId = $this->baseId.":".$this->dataset2dd($this->remoteViId).":".$this->param2dd($this->paramId);  
+					$node->setAttribute('xml:id', $paramGlobalId);
+					$this->paramXML = RemoteData.'PARAMS/'.$paramGlobalId.'.xml';
+
+					if (!file_exists($this->paramXML) && !$this->createParamXml($info)) return false;
+					if (!$this->paramDom) {
+					      $this->paramDom = new DomDocument("1.0");
+					}
+					      $this->paramDom->load($this->paramXML);
+					
+					if (!$this->makeComponents($node)) return false;
+				    }
+		   }
+ 		 
+		  $parentRemote= $nodeRemote->parentNode;		  
+		  $parentRemoteId = $parentRemote->getAttribute('xml:id');
+
+		  $parent = $this->xmlDom->getElementById($parentRemoteId);
+		  if (!$parent) {
+		      $parent = $this->xmlDom->importNode($parentRemote); 		      
+		  }
+		  $parent -> appendChild($node); 
+                 
+		  $toAddDataCentertToDoc = false;
+
+		  while ($parent->tagName != 'dataCenter') {
+		     $node = $parent;	
+	 	     $parentRemote = $parentRemote->parentNode;        
+		     $parentRemoteId = $parentRemote->getAttribute('xml:id');
+		     $parent = $this->xmlDom->getElementById($parentRemoteId);
+
+		     if (!$parent) {
+			  if ($parentRemote->tagName == 'dataCenter') $toAddDataCenterToDoc = true;
+			  $parent = $this->xmlDom->importNode($parentRemote);			   
+			  $parent -> appendChild($node); 		      
+		      }          		        		     
+		    }	
+
+		   if ($toAddDataCenterToDoc) {
+//TODO if this is neccessary ???
+// special bases 'hand-made' descriptions
+				$basesDom = new DomDocument("1.0");
+				$basesDom -> load(RemoteData.'Bases.xml');
+				$theBase = $basesDom -> getElementById($parent->getAttribute('xml:id'));
+ 
+				if ($theBase) $parent -> setAttribute('name', $theBase->getAttribute('name'));
+				$this->xmlDom->documentElement->appendChild($parent);
+		    }
+		  return true;
+	  }
+
+/*
+*         PUBLIC FUNCTIONS
+*/
+	  public function saveTree($obj) {
+				 		
+ 	        if (count($obj) == 1) {		    
+                     $id = $obj->id;
+		     $this->setBaseId($id);
+		     $res = $this->addNode($id);		  
+		}
+		else { 
+		  foreach ($obj as $o) {
+		    $id = $o->id;		 
+		    if ($id == 'root') continue;
+		    if (!$this->baseId) $this->setBaseId($id);	
+		    $res = $this->addNode($id);		   		   
+		   }
+		  }
+
+		$this->xmlDom->save($this->xmlName);
+		return array('res' => 'ok');
+	  }
+	
+	  public function deleteFromTree($obj) {
+             	    
+	     $id = $obj->id;
+             $nodeToDelete = $this->xmlDom->getElementById($id);
+	     if (!$nodeToDelete) return array('err' => 'NO SUCH ID');
+	     $nodeToDelete->parentNode->removeChild($nodeToDelete);
+	     
+	     $this->xmlDom->save($this->xmlName);
+ 
+	     return array('res'=> $obj->id);
+	  }
+	
+}
+
+?>
\ No newline at end of file
diff --git a/php/classes/ParamsInfoMgr.php b/php/classes/ParamsInfoMgr.php
new file mode 100644
index 0000000..690454c
--- /dev/null
+++ b/php/classes/ParamsInfoMgr.php
@@ -0,0 +1,980 @@
+<?php
+/**
+ * @class ParamsInfoMgr 
+ * @version  $Id: ParamsInfoMgr.php 2780 2015-02-26 12:02:37Z elena $
+ * 
+ */
+
+ class ParamsInfoMgr {
+ 		protected $derivedParamMgr, $mydataParamMgr, $mySimuParamMgr;
+ 		
+ 		protected $missionDom, $localDom, $internalDom;
+ 		
+ 		protected $ddLocalMissionXPath;
+ 	
+   function __construct() {
+     $this->ddLocalMissionXPath = array();
+   }
+
+    /*
+    * Get all info for a given REMOTE THEMIS parameter
+    */
+   public function getRemoteThemisParamInfo($param) {
+    
+         $info = array();
+
+         if (sscanf($param,"%[^'('](%d:%d)",$par,$cstart,$cstop) == 3)
+         {
+                 $comp_start = $cstart;
+                 $comp_stop  = $cstop;
+         }
+         else if (sscanf($param,"%[^'('](%d)",$par,$cstart) == 2)
+         {
+                 $comp_start = $cstart;
+                 $comp_stop  = $cstart;
+         }
+         else
+           $par = $param;  
+           
+         $paramXML = new DomDocument("1.0");
+         if (!$paramXML->load(RemoteData."THEMIS/base.xml")) return null;
+           
+    
+         $paramID =  $paramXML->getElementById($par);
+         if($paramID  == null ) return null;
+        
+         $parent =  $paramID ->parentNode;
+       
+         $vi = $parent->getAttribute('xml:id'); 
+
+         $info['base'] = '';
+         $info['vi'] = $vi;
+         
+         return $info;
+
+   }
+
+    /*
+    * Get all info for a given REMOTE parameter
+    */
+   public function getRemoteParamInfo($param) {
+         
+         if (substr($param,0,2) == 'th')
+              return $this->getRemoteThemisParamInfo($param);
+    
+         $info = array();
+
+         $ParamFile = RemoteData.'PARAMS/'.$param.'.xml';
+         if (!file_exists($ParamFile)) return null;
+                      
+         $paramXML = new DomDocument("1.0");
+         if (!$paramXML->load($ParamFile)) return null;
+
+         $fieldname =  $paramXML->getElementsByTagName('paramID');
+         if($fieldname->length == 0 ) return null;
+         
+         $base = $paramXML->getElementsByTagName('baseID'); 
+         $vi = $paramXML->getElementsByTagName('viID'); 
+
+         $info['base'] = $base->length == 0 ? 'undefined' :  $base->item(0)->nodeValue;
+         $info['vi'] = $vi->length == 0 ? 'undefined' :  $vi->item(0)->nodeValue;
+
+         $info['title'] =  $fieldname->item(0)->nodeValue;
+ 
+         return $info;
+
+   }
+
+   /*
+    * Get all info for a given parameter
+    */
+   public function GetParamInfo($param)
+   { 
+       // to correct 'restricted' parameters  
+        if (strpos($param, restricted) !== false) {
+             $param = str_replace(restricted,"",$param);  
+        }  
+
+        //get components
+   	 if (sscanf($param,"%[^'('](%d:%d)",$par,$cstart,$cstop) == 3)
+   	 {
+   	 	 $comp_start = $cstart;
+   	 	 $comp_stop  = $cstop;
+   	 }
+   	 else if (sscanf($param,"%[^'('](%d)",$par,$cstart) == 2)
+   	 {
+   	 	 $comp_start = $cstart;
+   	 	 $comp_stop  = $cstart;
+   	 }
+   	 else
+   	   $par = $param;
+
+   	 if (strncmp(strtolower($par), 'ws_', 3) == 0)
+   	  return $this->GetDerivedParamInfo(substr($par,3),$comp_start,$comp_stop);
+   	 else if (strncmp(strtolower($par), 'wsd_', 4) == 0)
+   	   return $this->GetMyDataParamInfo(substr($par,4),$comp_start,$comp_stop);
+   	 else if (strncmp(strtolower($par), 'spase_', 6) == 0)
+   	   return $this->GetSimuDataParamInfo($par,$comp_start,$comp_stop);
+
+   	 return $this->GetLocalParamInfo($par,$comp_start,$comp_stop);
+   }
+   
+   /*
+    * Get a full list of available missions (only missions with the status 'required') that come from Mission.xml file
+    */
+   public function GetMissionsList()
+   {
+   	 if (!$this->missionDom)
+   	 {
+   	 	 $this->missionDom = new DomDocument("1.0");
+    	  if (!$this->missionDom->load(missionXml))
+    	    return array('success' => false, 'message' => 'Cannot load missions file');
+   	 }
+   	 
+   	 $missions = $this->missionDom->getElementsByTagName('MissionID');
+   	 
+   	 $missions_array = array('success' => true);
+   	 
+   	 foreach ($missions as $mission)
+   	 {
+//    	   if ($mission->getAttribute('status') != 'required')
+//    	     continue;	
+   	   $id    = $mission->nodeValue;
+   	   $group = $mission->getAttribute('group');
+   	   $missions_array[$id] = array("group" => $group);
+   	 }
+   	 
+   	 return $missions_array;
+   }
+   
+   /*
+    * Extract sub mission info from a node (DD_*.xml file)
+    */
+   private function ExtractDDSubMissionInfoFromNode($node)
+   {
+        $name  = $node->getAttribute('name');
+        $desc  = $node->getAttribute('desc');
+        $help  = $node->getAttribute('attention');
+        $class = $node->getAttribute('class');
+   	if ($node->hasAttribute('xml:id')) {
+                   $id = $node->getAttribute('xml:id');
+        }
+        else {
+           $tmp =  explode("@",$name);
+           $id = $tmp[0];
+        } 
+ 
+   	 return array(
+   	   "name"  => $name,
+   	   "desc"  => $desc,
+   	   "help"  => $help,
+   	   "class" => $class,
+           "id"    => $id
+   	 );
+   }
+   
+   /*
+    * Extract instrument info from a node (DD_*.xml file)
+    */
+   private function ExtractDDInstrumentInfoFromNode($node)
+   {
+     $name   = $node->getAttribute('name');
+   	 $desc   = $node->getAttribute('desc');
+   	 $help   = $node->getAttribute('attention');
+   	 $id     = $node->getAttribute('xml:id');
+   	 $refURL = $node->getAttribute('refURL');
+   	 
+   	 $alternatenode = $node->getElementsByTagName('alternateName');
+   	 $alt = array();
+   	 foreach ($alternatenode as $a)
+   	   array_push($alt,$a->nodeValue);
+   	   
+   	 $classnode = $node->getElementsByTagName('class');
+   	 $class = array();
+   	 foreach ($classnode as $c)
+   	   array_push($class,$c->nodeValue);
+   	   
+   	 $pinode = $node->getElementsByTagName('pi');
+   	 $pi = ($pinode->length > 0) ? $pinode->item(0)->nodeValue : '';
+   	 
+   	 return array(
+   	   "name"          => $name,
+   	   "desc"          => $desc,
+   	   "help"          => $help,
+   	   "pi"            => $pi,
+   	   "id"            => $id,
+   	   "refURL"        => $refURL,
+   	   "alternamename" => $alt,
+   	   "class"         => $class
+   	 );
+   }
+   
+   /*
+    * Extract parameter info from a node (DD_*.xml file)
+    */
+   private function ExtractDDDatasetInfoFromNode($node)
+   { 
+     $id   = $node->getAttribute('xml:id');
+   	 $name = $node->getAttribute('name');
+   	 $help = $node->getAttribute('attention');
+   	 $sampnode = $node->getElementsByTagName('sampling');
+   	 $min_samp = ($sampnode->length > 0) ? $sampnode->item(0)->nodeValue : '0';
+   	 $sampnode = $node->getElementsByTagName('maxSampling');
+   	 $max_samp = ($sampnode->length > 0) ? $sampnode->item(0)->nodeValue : $min_samp;
+   	 $startnode = $node->getElementsByTagName('dataStart');
+   	 $start = ($startnode->length > 0) ? $startnode->item(0)->nodeValue : '1970/01/01';
+   	 $stopnode = $node->getElementsByTagName('dataStop');
+   	 $stop = ($stopnode->length > 0) ? $stopnode->item(0)->nodeValue : '1970/01/01';
+   	 $sourcenode = $node->getElementsByTagName('dataSource');
+   	 $source = ($sourcenode->length > 0) ? $sourcenode->item(0)->nodeValue : '';
+   	 
+   	 $infonode = $node->getElementsByTagName('info');
+   	 $infonode = ($infonode->length > 0) ? $infonode->item(0) : NULL;
+   	 
+   	 $title = '';
+   	 $des   = '';
+   	 $creator = '';
+   	 $calibration = '';
+   	 $subject = array();
+   	 $contributor = array();
+   	 $target = array();
+   	 
+   	 if (isset($infonode))
+   	 {
+   	 	 $titlenode = $infonode->getElementsByTagName('title');
+   	 	 $title = ($titlenode->length > 0) ? $titlenode->item(0)->nodeValue : '';
+   	 	 
+   	 	 $desnode = $infonode->getElementsByTagName('description');
+   	 	 $des = ($desnode->length > 0) ? $desnode->item(0)->nodeValue : '';
+   	 	 
+   	 	 $creatornode = $infonode->getElementsByTagName('creator');
+   	 	 $creator = ($creatornode->length > 0) ? $creatornode->item(0)->nodeValue : '';
+   	 	 
+   	 	 $calibrationnode = $infonode->getElementsByTagName('calibration');
+   	 	 $calibration = ($calibrationnode->length > 0) ? $calibrationnode->item(0)->nodeValue : '';
+   	 	 
+   	 	 $subjectnode = $infonode->getElementsByTagName('subject');
+   	 	 foreach ($subjectnode as $s)
+   	     array_push($subject,$s->nodeValue);
+   	     
+   	   $contributornode = $infonode->getElementsByTagName('contributor');
+   	 	 foreach ($contributornode as $c)
+   	     array_push($contributor,$c->nodeValue);
+   	     
+   	   $targetnode = $infonode->getElementsByTagName('target');
+   	 	 foreach ($targetnode as $t)
+   	     array_push($target,$t->nodeValue);
+   	 }
+   	 
+   	 return array(
+   	   "id"          => $id,
+   	   "name"        => $name,
+   	   "help"        => $help,
+   	   "minsampling" => $min_samp,
+   	   "maxsampling" => $max_samp,
+   	   "starttime"   => $start,
+   	   "stoptime"    => $stop,
+   	   "source"      => $source,
+   	   "title"       => $title,
+   	   "description" => $des,
+   	   "creator"     => $creator,
+   	   "calibration" => $calibration,
+   	   "subject"     => $subject,
+   	   "contributor" => $contributor,
+   	   "target"      => $target
+   	 );
+   }
+   
+   /*
+    * Extract parameter info from a node (DD_*.xml file)
+    */
+   private function ExtractDDParameterInfoFromNode($node, $comp_start = NULL, $comp_stop = NULL)
+   { 
+   	 $units = $node->getAttribute('units');
+     $display_type = $node->getAttribute('display_type');
+   	   
+   	 $components = $node->getElementsByTagName('component');
+   	 
+   	 //additionals info
+     $infonode = $node->getElementsByTagName('info');
+   	 $infonode = ($infonode->length > 0) ? $infonode->item(0) : NULL;
+   	 
+   	 $des = "";
+   	 $ucd = "";
+   	 $type = "";
+   	 	 
+   	 if (isset($infonode))
+   	 {
+   	 	 $desnode = $infonode->getElementsByTagName('description');
+   	 	 $des = ($desnode->length > 0) ? $desnode->item(0)->nodeValue : '';
+   	 	 
+   	 	 $ucdnode = $infonode->getElementsByTagName('ucd');
+   	 	 $ucd = ($ucdnode->length > 0) ? $ucdnode->item(0)->nodeValue : '';
+   	 	 
+   	 	 $typenode = $infonode->getElementsByTagName('type');
+   	 	 $type = ($typenode->length > 0) ? $typenode->item(0)->nodeValue : '';
+   	 	 
+   	 }
+   	 
+   	 //size of the full parameter
+   	 if ($node->getAttribute('size') != '')
+   	   $fullsize = intval($node->getAttribute('size'));
+   	 else
+   	 {
+   	   if ($components->length > 0)
+   	     $fullsize = $components->length;
+   	   else
+   	     $fullsize = 1;
+   	 }
+   	     
+   	 //get all components labels
+   	 $comps_all_labels = array();
+   	 if ($fullsize > 1)
+   	 {
+   	   if (($fullsize != $components->length)&& ($name !=''))
+   	   {
+   	 	   for ($i = 0; $i < $fullsize; $i++)
+   	 	     $comps_all_labels[] = $name.'_'.$i;
+   	   }
+   	   else
+   	   {
+   	   	 $i = 0;
+   	 	   foreach ($components as $comp)
+   	 	   {
+   	 	 	   $comps_all_labels[] = $comp->getAttribute('name');
+   	 	     $i++;
+   	 	   }
+   	   }
+   	 }
+   	   
+   	 //real size 	 
+   	 if (isset($comp_start))
+   	 {
+   	 	 if (isset($comp_stop) && ($comp_start != $comp_stop))
+   	 	   $size = $comp_stop - $comp_start;
+   	 	 else
+   	 	 {
+   	 	   $size = 1;
+   	 	   $comp_stop = $comp_start;
+   	 	 }
+   	 }
+   	 else
+   	 {
+   	 	 $comp_start = 0;
+   	 	 $comp_stop = $fullsize-1;
+   	   $size = $fullsize;
+   	 }
+   	   
+   	 if ($size != $fullsize)
+   	 {
+   	 	 if ($size == 1)
+   	 	 {
+   	 	 	 $id    = $node->getAttribute('xml:id')."_".$comp_start;
+   	     $name  = $comps_all_labels[$comp_start];
+   	 	 }
+   	 	 else
+   	 	 {
+   	 	 	 $id    = $node->getAttribute('xml:id')."_".$comp_start."_".$comp_stop;
+   	 	 	 $name  = $node->getAttribute('name')."_".$comp_start."_".$comp_stop;
+   	 	 	 $comps_label = "";
+   	 	 	 for ($i = $comp_start; $i <= $comp_stop; $i++)
+   	 	 	 {
+   	 	 	 	 if ($i != $comp_start)
+   	 	 	 	   $comps_label .= " ";
+   	 	 	 	 $comps_label .= $comps_all_labels[$i];
+   	 	 	 }
+   	 	 }
+   	 }
+   	 else
+   	 {
+   	 	 $name = $node->getAttribute('name');
+   	 	 $id   = $node->getAttribute('xml:id');
+   	 	 $comps_label = "";
+   	   for ($i = 0; $i < $size; $i++)
+   	 	 {
+   	 	 	 if ($i != 0)
+   	 	 	   $comps_label .= " ";
+   	 	 	 $comps_label .= $comps_all_labels[$i];
+   	 	 }
+   	 }
+   	 
+   	 return array(
+                "id"   => $id,
+                "name"  => $name,
+                "units" => $units,
+                "size" => $size,
+                "display_type" => $display_type,
+                "comps_label" => $comps_label,
+                "description" => $des,
+                "ucd" => $ucd,
+                "type" => $type
+   	 );
+   }
+   
+
+   
+   /*
+    * Get the DD_*.xml XPath from a mission id
+    */
+   public function GetDDMissionXPath($mission_id)
+   {
+   	 if ($this->ddLocalMissionXPath[$mission_id])
+   	   return $this->ddLocalMissionXPath[$mission_id];
+   	   
+   	 $mission_file = LocalData.'DD_'.$mission_id.'.xml';
+   	 
+   	 if (!file_exists($mission_file))
+   	   return null;
+   	   
+   	 $ddDom = new DomDocument("1.0");
+    	$ddDom->load($mission_file);
+    	
+    	$this->ddLocalMissionXPath[$mission_id] = new DOMXPath($ddDom);
+    	
+    	return $this->ddLocalMissionXPath[$mission_id];
+   }
+   
+   /*
+    * Get sub-missions info available in the DD_*.xml file from mission id
+    * (a DD_*.xml file can contain more than one mission, for example THEMIS-A, THEMIS-B, etc..., this is what we called "sub-mission")
+    */
+   public function GetDDMissionInfo($mission_id)
+   {
+   	 $ddPath = $this->GetDDMissionXPath($mission_id);
+   	 
+   	 if (!$ddPath)
+   	   return array('success' => false, 'message' => 'Error to parse DD mission file '.$mission_id);
+   	   
+   	 $subMiss = $ddPath->query("//mission");
+   	 
+   	 $sub_array = array();
+   	 
+   	 foreach($subMiss as $sub)
+   	 {
+	      $infos = $this->ExtractDDSubMissionInfoFromNode($sub);
+	      $inst  = $this->GetDDInstrumentsInfo($mission_id, $infos['name']);
+   	 
+	      $sub_array[$infos['name']] = array(
+                               "desc"        => $infos['desc'], 
+                               "help"        => $infos['help'],
+                               "class"       => $infos['class'],
+                               "instruments" => $inst);
+   	 }
+   	 
+     return $sub_array;
+   }
+   
+   /*
+    * Get instruments info available in the DD_*.xml file from mission id and sub mission name
+    */
+   public function GetDDInstrumentsInfo($mission_id, $sub_name)
+   {
+   	 $ddPath = $this->GetDDMissionXPath($mission_id);
+   	 
+   	 if (!$ddPath)
+   	   return array('success' => false, 'message' => 'Error to parse DD mission file '.$mission_id);
+   	   
+   	 $instruments = $ddPath->query("//mission[@name='".$sub_name."']/instrument");
+   	 
+   	 $inst_array = array();
+   	 
+   	 foreach($instruments as $inst)
+   	 {
+   	 	 $infos = $this->ExtractDDInstrumentInfoFromNode($inst);
+   	        $datasets = $this->GetDDDatasetsInfo($mission_id, $sub_name, $infos["name"]);
+   	   
+   	   $inst_array[$infos['name']] = array(
+                               "desc"          => $infos['desc'], 
+                               "help"          => $infos['help'],
+				                           "pi"            => $infos['pi'],
+   	                           "id"            => $infos['id'],
+   	                           "refURL"        => $infos['refURL'],
+   	                           "alternamename" => $infos['alternamename'],
+   	                           "class"         => $infos['class'],
+                               "datasets"      => $datasets);
+   	 }
+   	 
+   	 return $inst_array;
+   }
+   
+   /*
+    * Get datasets info available in the DD_*.xml file from mission id, sub mission name and instrument name
+    */
+   private function GetDDDatasetsInfo($mission_id, $sub_name, $inst_name)
+   {
+   	 $ddPath = $this->GetDDMissionXPath($mission_id);
+   	 
+   	 if (!$ddPath)
+   	   return array('success' => false, 'message' => 'Error to parse DD mission file '.$mission_id);
+   	   
+   	 $datasets = $ddPath->query("//mission[@name='".$sub_name."']//instrument[@name='".$inst_name."']//dataset");
+   	 
+   	 $datas_array = array();
+   	 
+   	 foreach ($datasets as $data)
+   	 {
+   	 	 $infos = $this->ExtractDDDatasetInfoFromNode($data);
+   	 	 $params = $this->GetDDParametersInfo($mission_id, $sub_name, $inst_name, $infos['id']);
+   	 	 
+   	 	 $datas_array[$infos['id']] = array(
+   	 	                        "name"        => $infos['name'],
+   	 	                        "help"        => $infos['help'],
+   	 	                        "minsampling" => $infos['minsampling'],
+   	 	                        "maxsampling" => $infos['maxsampling'],
+   	 	                        "starttime"   => $infos['starttime'],
+   	 	                        "stoptime"    => $infos['stoptime'],
+   	 	                        "source"      => $infos['source'],
+   	                          "title"       => $infos['title'],
+   	                          "description" => $infos['description'],
+   	                          "creator"     => $infos['creator'],
+   	                          "calibration" => $infos['calibration'],
+   	                          "subject"     => $infos['subject'],
+   	                          "contributor" => $infos['contributor'],
+   	 	                        "target"      => $infos['target'],
+   	 	                        "parameters"  => $params
+   	 	 );
+   	 }
+   	 
+   	 return $datas_array;
+   }
+   
+   /*
+    * Get parameters info available in the DD_*.xml file from mission id, sub mission name, instrument name and dataset id
+    */
+   public function GetDDParametersInfo($mission_id, $sub_name, $inst_name, $data_id)
+   {
+   	 $ddPath = $this->GetDDMissionXPath($mission_id);
+   	 
+   	 if (!$ddPath)
+   	   return array('success' => false, 'message' => 'Error to parse DD mission file '.$mission_id);
+   	   
+   	 $parameters = $ddPath->query("//mission[@name='".$sub_name."']//instrument[@name='".$inst_name."']//dataset[@xml:id='".$data_id."']/parameter");
+   	 
+   	 $params_array = array();
+   	 
+   	 foreach ($parameters as $param)
+   	 {
+   	 	 $infos = $this->ExtractDDParameterInfoFromNode($param);
+   	 	 
+   	 	 $params_array[$infos['id']] = array(
+   	 	                          "name"         => $infos["name"],
+   	 	                          "units"        => $infos["units"],
+   	 	                          "size"         => $infos["size"],
+   	 	                          "display_type" => $infos["display_type"],
+   	                            "comps_label"  => $infos["comps_label"],
+   	                            "description"  => $infos["description"],
+   	                            "ucd"          => $infos["ucd"],
+   	                            "type"         => $infos["type"]
+   	 	 );
+   	 }
+   	 
+   	 return $params_array;
+   }
+   
+   /*
+    * Get all DD_*.xml info from parameter id
+    */
+   public function GetDDInfoFromParameterID($param_id, $comp_start = NULL, $comp_stop = NULL)
+   {
+   	 $missions = $this->GetMissionsList();
+   	 
+        foreach ($missions as $mission_id => $mission_val)
+        {
+            $ddPath = $this->GetDDMissionXPath($mission_id);
+   	 
+   	   if (!$ddPath)
+   	     continue;
+   	     
+   	   $parameters = $ddPath->query("//instrument//dataset/parameter[@xml:id='".$param_id."']");
+   	   
+   	   if ($parameters->length < 1)                         
+                                continue;                        
+ 
+
+   	   $parameter_node = $parameters->item(0);
+
+   	   //parameter info
+   	   $param_infos      = $this->ExtractDDParameterInfoFromNode($parameter_node, $comp_start, $comp_stop);
+   	   
+   	   //dataset info
+   	   $dataset_node  = $parameter_node->parentNode;
+   	   $dataset_infos = $this->ExtractDDDatasetInfoFromNode($dataset_node);
+   	   
+   	   //instrument info                      
+   	   $instrument_node = $dataset_node->parentNode->nodeName == 'instrument' ? $dataset_node->parentNode : $dataset_node->parentNode->parentNode;
+   	   $instrument_infos = $this->ExtractDDInstrumentInfoFromNode($instrument_node);
+   	   
+   	   //sub mission info
+   	   $tmp = $instrument_node->parentNode;
+
+   	   if ($tmp->nodeName == "group" ) $submission_node = $tmp->parentNode;
+   	   else $submission_node = $tmp;
+   	   $submission_infos = $this->ExtractDDSubMissionInfoFromNode($submission_node);
+  	   
+   	   return array(
+   	     'success'    => true,
+   	     'parameter'  => $param_infos,
+   	     'dataset'    => $dataset_infos,
+   	     'instrument' => $instrument_infos,
+   	     'submission' => $submission_infos,
+   	     'mission_id' =>  $mission_id
+   	   );
+			  }
+			  
+	  return array('success' => false,
+			'message' => 'No such param '.$param_id);
+   }
+      
+    /*
+    * Get dataset info
+    */
+   public function GetDDInfoFromDatasetID($datasetId)
+   {
+   	 $missions = $this->GetMissionsList();
+   	 
+			  foreach ($missions as $mission_id => $mission_val)
+			  {
+			  	 $ddPath = $this->GetDDMissionXPath($mission_id);
+   	 
+   	   if (!$ddPath)
+   	     continue;
+   	     
+   	   $datasets = $ddPath->query("//instrument/dataset[@xml:id='".$datasetId."']");
+   	   
+   	   if ($datasets->length < 1)                          
+                                continue;                        
+  
+   	   $dataset_node = $datasets->item(0);
+   	   $dataset_infos = $this->ExtractDDDatasetInfoFromNode($dataset_node);
+   	   
+   	   //instrument info
+   	   $instrument_node = $dataset_node->parentNode;
+   	   $instrument_infos = $this->ExtractDDInstrumentInfoFromNode($instrument_node);
+   	   
+   	   //sub mission info
+   	   $submission_node = $instrument_node->parentNode;
+   	   $submission_infos = $this->ExtractDDSubMissionInfoFromNode($submission_node);
+   	   
+   	   //parameters info
+   	   $param_infos = $this->GetDDParametersInfo($mission_id, $submission_infos['name'], $instrument_infos['name'], $datasetId);
+   	   
+   	   return array(
+   	     'success'    => true,
+   	     'parameter'  => $param_infos,
+   	     'dataset'    => $dataset_infos,
+   	     'instrument' => $instrument_infos,
+   	     'submission' => $submission_infos,
+   	     'mission_id' => $mission_id
+   	   );
+			  }
+			  
+			  return array('success' => false,
+			               'message' => 'No such dataset '.$datasetId);
+   }
+   
+   public function ExtractLocalParamsInfoFromNode($theParam)
+   {     
+     $name = $theParam->getAttribute("name");
+     $vi = $theParam->getAttribute("vi");
+     $size = $theParam->getElementsByTagName("SIZES")->item(0)->nodeValue;
+     $tensor = $theParam->getElementsByTagName("TENSOR_ORDER_VALUE")->item(0)->nodeValue;
+     $value_type = $theParam->getElementsByTagName("VALUE_TYPE")->item(0)->nodeValue;
+     $fillNodes = $theParam->getElementsByTagName("FILLVAL");
+     if ($fillNodes->length > 0)  
+       $fill_value = $fillNodes->item(0)->nodeValue;
+     else
+       $fill_value = "NaN";
+     //if ($fill_value == "NaN") $fill_value = "!Values.F_NAN";
+     $units = $theParam->getElementsByTagName("UNITS")->item(0)->nodeValue;
+     $sampling = $theParam->getElementsByTagName("TIME_RESOLUTION")->item(0)->nodeValue;
+     $maxSamplingNode = $theParam->getElementsByTagName("MAX_TIME_RESOLUTION"); 
+     if ($maxSamplingNode->length > 0)  $maxSampling =  $maxSamplingNode->item(0)->nodeValue;
+     else   $maxSampling =  $sampling;
+     $frame = $theParam->getElementsByTagName("COORDINATE_SYSTEM")->item(0)->nodeValue;
+     $legend = $theParam->getElementsByTagName("LABEL_I")->item(0)->nodeValue;
+     $title = $theParam->getElementsByTagName("YTITLE")->item(0)->nodeValue;
+     $plottype =  $theParam->getElementsByTagName("DISPLAY_TYPE")->item(0)->nodeValue;
+ //    if ($plottype == "TICK_MARKS")   //BRE - why put mission name in DISPLAY_TYPE tag? (for the moment, keep for compatibility)
+ //      $mission = $theParam->getElementsByTagName("DISPLAY_TYPE")->item(0)->getAttribute("name");     
+ //    else  
+ //    		$mission = "n/a";
+     $energychannel = $theParam->getAttribute("energy");
+     if ($energychannel == '')
+       $energychannel = 'Energy';
+
+     $validMinNode = $theParam->getElementsByTagName("VALID_MIN");
+     if ($validMinNode->length > 0) $validmin = $validMinNode->item(0)->nodeValue;
+     else $validmin = 'unknown';
+
+     $conversionNode = $theParam->getElementsByTagName("UNITS_CONVERSION");
+     if ($conversionNode->length > 0) {
+		  $infoProvider = new InfoProvider();
+		  $conversion = $infoProvider->getConversion($conversionNode->item(0)->nodeValue); 
+      }
+     else $conversion = '-1';
+
+
+     $processNode = $theParam->getElementsByTagName("PROCESS");
+     if ($processNode->length > 0) $process = $processNode->item(0)->nodeValue;
+     else $process = '';
+
+     //$ytitle = $units != NULL ? $title.",!C".$units : $title;
+     
+     return array(
+       'name'          => $name,
+       'vi'            => $vi,
+       'size'          => $size,
+       'tensor'        => $tensor,
+       'valuetype'     => $value_type,
+       'fillvalue'     => $fill_value,
+       'units'         => $units,
+       'minsampling'   => $sampling,
+       'maxsampling'   => $maxSampling,
+       'frame'         => $frame,
+       'legend'        => $legend,
+       'title'         => $title,
+       'plottype'      => $plottype,
+  //     'mission'       => $mission, //BRE - why put mission name in DISPLAY_TYPE tag? (for the moment, keep for compatibility)
+       'conversion'    => $conversion,
+       'validmin'      => $validmin,
+       'process'       => $process,
+       'energychannel' => $energychannel
+     );
+   }   
+   
+   public function GetLocalParamInfo($param, $comp_start = NULL, $comp_stop = NULL)
+   {
+
+   	 if (!$this->localDom)
+   	 {
+	  $this->localDom = new DomDocument("1.0");
+    	  if (!$this->localDom->load(paramXml))
+    	    return array('success' => false, 'id' => $param, 'message' => 'Cannot load local param file');
+   	 }
+   	 
+   	 $theParam = $this->localDom->getElementById($param);
+    	  
+   	 $comp_array = array();
+   	 
+   	 if (isset($comp_start) && isset($comp_stop) && ($comp_start != $comp_stop))
+   	   $par_id = $param."(".$comp_start.":".$comp_stop.")";
+   	 else if (isset($comp_start))
+   	   $par_id = $param."(".$comp_start.")";
+   	 else
+   	   $par_id = $param;
+   	 
+   	 if (!$theParam)
+   	   $ddinfos = $this->GetDDInfoFromParameterID($par_id);
+   	 else {
+   	   $ddinfos = $this->GetDDInfoFromParameterID($param, $comp_start, $comp_stop);
+           $isInternal = $theParam->hasAttribute('internal'); 
+        }
+   	 
+   	 if (!$ddinfos['success'] && !$isInternal)
+   	    return array('success' => false, 'id' => $param, 'message' => $ddinfos['message']);
+   	           
+     if (!$theParam)
+     		return array('success'  => true, 
+                    'id'       => $par_id,
+                    'type'     => 'local',
+                    'withcode' => true,
+                    'ddinfos'  => $ddinfos);
+     
+     
+     $codeinfos = $this->ExtractLocalParamsInfoFromNode($theParam);  
+     	   
+     return array('success'   => true, 
+                  'id'        => $par_id,
+                  'type'      => 'local',
+                  'withcode'  => false,
+                  'ddinfos'   => $ddinfos,
+                  'codeinfos' => $codeinfos);
+   }
+   
+   protected function GetDerivedParamInfo($param, $comp_start = NULL, $comp_stop = NULL)
+   {
+        if (!$this->derivedParamMgr)
+        $this->derivedParamMgr = new DerivedParamMgr('derivedParam');
+        
+        $obj = $this->derivedParamMgr->getObjectByName($param);
+        
+        if ($obj['error'])
+            return array('success' => false, 'id' => $param, 'message' => $obj['error']);
+ 	   
+        return array(
+        'success'     => true,
+        'id'          => $param,
+        'type'        => 'derived',
+        'infos'       => $obj
+        );
+   }
+   
+    protected function GetMyDataParamInfo($param, $comp_start = NULL, $comp_stop = NULL)
+    {
+        if (!$this->mydataParamMgr)
+            $this->mydataParamMgr = new DerivedParamMgr();
+        
+        $obj = $this->mydataParamMgr->getObjectByName($param);
+       
+       if ($obj['error'])
+                return array('success' => false, 'id' => $param, 'message' => $obj['error']);
+     
+        return array(
+        'success'     => true,
+        'id'          => $param,
+        'type'        => 'mydata',
+        'infos'       => $obj
+        );
+   }
+   
+    protected function GetSimuDataParamInfo($param, $comp_start = NULL, $comp_stop = NULL)
+    {
+        if (!$this->mySimuParamMgr)
+            $this->mySimuParamMgr = new DerivedParamMgr('mySimuParam');
+        
+        $obj = $this->mySimuParamMgr->getObjectByName($param);
+       
+        if ($obj['error'])
+                return array('success' => false, 'id' => $param, 'message' => $obj['error']);
+        
+        return array(
+        'success'     => true,
+        'id'          => $param,
+        'type'        => 'mydata',
+        'infos'       => $obj
+        );
+   }
+      public function GetInternalParamInfo($param) {
+      	 if (!$this->internalDom)
+   	 {
+	  $this->internalDom = new DomDocument("1.0");
+    	  if (!$this->internalDom->load(internalParams))
+    	    return array('success' => false, 'id' => $param, 'message' => 'Cannot load local internal params file');
+   	 }
+   	 
+   	 $theParam = $this->internalDom->getElementById($param);
+	
+	$parentDataset =  $theParam->parentNode;
+	$parentInstrument =  $parentDataset->parentNode;
+	$parentMission =  $parentInstrument->parentNode;
+        $missionName = isset($parentMission) ? $parentMission->getAttribute('name') : 'undefined';
+        
+	return array(
+	      'success'     => true,
+	      'id'          => $param,
+	      'mission'     => $missionName,
+	      'instrument'  => array('id'	=>$parentInstrument->getAttribute('xml:id'),
+				     'name'	=>$parentInstrument->getAttribute('name'),
+				     'desc'	=>$parentInstrument->getAttribute('desc')),
+	      'dataset'	    =>	array('id'	=>$parentDataset->getAttribute('xml:id'),
+				     'name'	=>$parentDataset->getAttribute('name'),
+				     'sampling'	=>$parentDataset->getElementsByTagName('sampling')->item(0)->nodeValue,
+				     'dataStart'=>$parentDataset->getElementsByTagName('dataStart')->item(0)->nodeValue,
+				     'dataStop' =>$parentDataset->getElementsByTagName('dataStop')->item(0)->nodeValue)
+		);
+	           
+   }
+   
+   public function ParamInfosToString($infos)
+   {
+   	 $str = $infos['id'];
+   	
+   	 if (!$infos['success'])
+   	   return $str." - ".$infos['message'];
+   	
+   	 switch($infos['type'])
+   	 {
+   	 	 case 'local'   :
+   	 	 	 $str .= (" - Type : Local Parameter @ CDPP/AMDA");
+			    if ($infos['ddinfos']['parameter']['name'] != '')
+ 	 	 	 	 $str .= (" - Name : ".$infos['ddinfos']['parameter']['name']);
+			    else
+				 $str .= (" - Name : ".$infos['codeinfos']['title']);
+
+			    if ($infos['ddinfos']['parameter']['units'] != '')
+ 	 	 	 	 $str .= (" - Units : ".$infos['ddinfos']['parameter']['units']);
+			    else
+				 $str .= (" - Units : ".$infos['codeinfos']['units']);
+
+			    if ($infos['ddinfos']['parameter']['size'] != '')
+ 	 	 	 	 $str .= (" - Size : ".$infos['ddinfos']['parameter']['size']);
+			    else
+				 $str .= (" - Size : ".$infos['codeinfos']['size']);
+
+			  if (!$infos['withcode'])
+				  if ($infos['codeinfos']['frame'] != '')
+				    $str .= (" - Frame : ".$infos['codeinfos']['frame']);
+			    if ($infos['ddinfos']['submission']['name'] != '')
+				 $str .= (" - Mission : ".$infos['ddinfos']['submission']['name']);
+			    else
+				 $str .= (" - Mission : ".$infos['codeinfos']['name']);
+
+ 	 	 	 	 $str .= (" - Instrument : ".$infos['ddinfos']['instrument']['name']);
+			    if ($infos['ddinfos']['dataset']['name'] != '')
+ 	 	 	 	 $str .= (" - Dataset : ".$infos['ddinfos']['dataset']['name']);
+			    else
+				 $str .= (" - Dataset : ".$infos['codeinfos']['plottype']);
+
+   	 	 	 break;
+   	 	 case 'derived' :
+   	 	 	 $str .= (" - Type : Derived Parameter @ CDPP/AMDA");
+   	 	 	 $str .= (" - Name : ".$infos['infos']['name']);
+   	 	 	 $str .= (" - Units : ".$infos['infos']['units']);
+   	 	 	 $str .= (" - Build chain : ".htmlentities($infos['infos']['buildchain']));
+   	 	 	 $str .= (" - Time Step : ".$infos['infos']['timestep']);
+   	 	 	 break;
+   	 	 case 'mydata'  :
+   	 	 	 $str .= (" - Type : My Data Parameter @ CDPP/AMDA");
+   	 	 	 $str .= (" - Name : ".$infos['infos']['name']);
+   	 	 	 $str .= (" - Units : ".$infos['infos']['units']);
+   	 	 	 $str .= (" - Size : ".$infos['infos']['size']);
+   	 	 	 $str .= (" - From : ".$infos['infos']['file']);
+   	 	 	 break;
+   	 	 default :
+   	 	 	 return $str." - Unknown parameter type (maybe not yet implemented?)";
+   	 }
+	  		
+	  		return $str;
+   }
+  
+   
+   function forEachAllDDParameters($callback_func)
+   {
+   	 $missions = $this->GetMissionsList();
+   	 foreach ($missions as $mis_key => $mis_val)
+   	 {
+   	 	 if ($mis_key == 'success')
+   	 	   continue;
+   	 	 $subs = $this->GetDDMissionInfo($mis_key);
+   	 	 foreach ($subs as $sub_key => $sub_val)
+		    foreach($sub_val['instruments'] as $inst_key => $inst_val)
+			foreach ($inst_val["datasets"] as $data_key => $data_val)
+			    foreach ($data_val["parameters"] as $param_key => $param_val)
+   	 	        	 call_user_func($callback_func, array("mission"    => array("id"   => $mis_key,   "infos" => $mis_val),
+                                                     "submission" => array("name" => $sub_key,   "infos" => $sub_val),
+                                                     "instrument" => array("name" => $inst_key,  "infos" => $inst_val),
+                                                     "dataset"    => array("id"   => $data_key,  "infos" => $data_val),
+                                                     "parameter"  => array("id"   => $param_key, "infos" =>  $param_val)));
+   	 }
+   }
+   
+   function forEachAllDDDatasets($callback_func)
+   {
+   	 $missions = $this->GetMissionsList();
+   	 foreach ($missions as $mis_key => $mis_val)
+   	 {
+   	 	 if ($mis_key == 'success')
+   	 	   continue;
+   	 	 $subs = $this->GetDDMissionInfo($mis_key);
+   	 	 foreach ($subs as $sub_key => $sub_val)
+   	 	 	 foreach($sub_val['instruments'] as $inst_key => $inst_val)
+   	 	 	   foreach ($inst_val["datasets"] as $data_key => $data_val)
+   	 	 	      call_user_func($callback_func, array("mission"    => array("id"   => $mis_key,   "infos" => $mis_val),
+                                                   "submission" => array("name" => $sub_key,   "infos" => $sub_val),
+                                                   "instrument" => array("name" => $inst_key,  "infos" => $inst_val),
+                                                   "dataset"    => array("id"   => $data_key,  "infos" => $data_val)));
+   	 }
+   }
+ }
+ 
+?>
diff --git a/php/classes/PlotMgr.php b/php/classes/PlotMgr.php
new file mode 100644
index 0000000..4efbf3c
--- /dev/null
+++ b/php/classes/PlotMgr.php
@@ -0,0 +1,388 @@
+<?php
+/**
+ * @class PlotMgr
+ * @brief Interactive Plot session
+ * @version $Id: PlotMgr.php 2412 2014-06-10 09:47:41Z natacha $
+ *    
+ */
+
+
+   class PlotMgr  {
+	
+	protected $currentInt, $totalInt, $ttName;
+	protected $TimeTableMgr;
+
+//DD notation 'YYYY:DOY:HH:MM:SS' DOY => DOY-1
+        protected function getDdTime($date) {
+	    $ddStart = getdate(strtotime($date));
+	    $DDTime = sprintf("%04d",$ddStart['year']).':'.sprintf("%03d", $ddStart['yday']).':'.
+		      sprintf("%02d",$ddStart['hours']).':'.sprintf("%02d",$ddStart['minutes']).':'.
+		      sprintf("%02d",$ddStart['seconds']);
+
+	  return $DDTime;
+       } 
+ /* Stop Time from StartTime and Interval*/ 
+	protected function getStopTime($startDate, $interval){
+		$time = strtotime($startDate) + $interval;		 
+		$stopTime =  date('Y-m-d',$time).'T'.date('H:i:s',$time);
+
+		return $stopTime;
+	  }
+ /* StartTime from StopTime and Interval*/ 
+	protected function getStartTime($stopDate, $interval){
+
+		$time = strtotime($stopDate) - $interval;
+ 		$startTime =  date('Y-m-d',$time).'T'.date('H:i:s',$time);
+
+		return $startTime;
+	  }
+
+/* get  Interval*/
+//TODO make session info file ??? 
+	protected function getTimeInt($requestName){
+
+                    $requestFile = file($requestName);   		    
+		    $nObjects = 2 + $requestFile[0]; 
+                    $timeIntString = $requestFile[$nObjects]; 
+                    $timeInt = explode(':', $timeIntString);
+
+		    $interval = $timeInt[0]*86400 +
+			    $timeInt[1]*3600 +
+			    $timeInt[2]*60 + $timeInt[3];
+
+		return $interval;
+	  }
+
+
+// Update StartTime in request 
+          protected function updateStartTime($requestName, $start) {
+	   
+                $requestFile = file($requestName); 
+                $request = fopen($requestName,'w');
+         
+		$nObjects = 1 + $requestFile[0]; 
+
+		for ($k = 0; $k < $nObjects; $k++) fwrite($request,$requestFile[$k]);
+		
+		fwrite($request,$this->getDdTime($start).PHP_EOL);
+		$timeIntString = $requestFile[$nObjects + 1];
+	   	fwrite($request,$timeIntString);
+
+                fclose($request);        
+	}
+
+	  protected function getNextTable($tabId, $step) {
+
+	       $allTables = file('tt');
+
+	       for ($i = 0; $i < count($allTables); $i++) {
+		  $currTT = json_decode($allTables[$i]);
+		  if ($currTT->id == $tabId) {
+			  if (($i == count($allTables) - 1) && $step == 1) {
+				  return null;
+			  }
+			  if (($i == 0) && $step == -1) {
+				  return null;
+			  }
+			  $newTT = json_decode($allTables[$i+$step]);
+			  $newTabId = $newTT->id;
+			  $this->ttName = $newTT->timeTableName;
+			  break;
+		  }
+		}
+		$tt =$this->TimeTableMgr->loadIntervalsFromTT($newTabId);
+		$intervals = $tt['intervals']; 
+		$this->totalInt = $tt['totalCount'];
+		 
+		$ff = fopen('current', 'w');
+		fwrite($ff, $this->totalInt.PHP_EOL);	   
+		fwrite($ff,$allTables[$i+$step]);			     
+		fclose($ff);
+		return $intervals;
+	  }
+
+	  protected function getNewInterval($obj) {
+ 		 
+		$currentInfo = file('current');
+		$currInt = (int)$obj->action->arg1 - 1;
+		$totalNum = $currentInfo[0];
+		$ttObject = json_decode($currentInfo[1]);
+		$this->TimeTableMgr = new TimeTableMgr();
+
+                $ttType = (substr($ttObject->id,0,6) == 'shared') ?  'sharedtimeTable' : 'timeTable';
+		$tt = $this->TimeTableMgr->loadIntervalsFromTT($ttObject->id, $ttType);
+		$this->ttName = $ttObject->timeTableName;
+	        $intervals = $tt['intervals'];
+
+		$this->totalInt =  $tt['totalCount'];
+		switch ($obj->action->name) {
+		    case 'nextInt': 
+			  $number = $currInt+1;
+			  if ($number == $totalNum) {
+			    $newIntervals =  $this->getNextTable($ttObject->id, 1);
+			    if ($newIntervals) {
+				      $number = 0;
+				      $intervals = $newIntervals;
+			    }
+			    else
+				    $number = $totalNum - 1;
+			  }
+			  break;
+		    case 'backInt': 
+			  $number = $currInt-1;
+			  if ($number == -1) {
+			    $newIntervals =  $this->getNextTable($ttObject->id,  -1);
+			    if ($newIntervals) {
+				      $intervals = $newIntervals;
+				      $number = count($intervals)-1;  
+				       
+			    }
+			    else
+				    $number = 0;
+			     
+			  }
+			  break;
+		    case 'goto': 
+			  $number = $currInt;
+//TODO check another table ?
+			  if ($number >= $totalNum) {
+			    $number = $totalNum - 1;
+			  }
+			  break;
+		    default:
+		  }
+		  $this->currentInt = $number+1;
+		return  $intervals[$number];
+	  }
+
+// create file with 'zoom' intervals used in unzoom 
+	protected function addZoomInterval($interval){
+           $zoomFile = 'zoom_intervals';	   
+	   $ff = fopen($zoomFile, 'a');
+	   fwrite($ff,json_encode($interval).PHP_EOL);
+	   fclose($ff);
+	}
+
+// remove 'zoom' intervals used in unzoom 
+	protected function removeZoomInterval(){
+           $zoomFile = 'zoom_intervals';
+	   
+	   $intervals = file($zoomFile);
+	   if (!file_exists($zoomFile)) return null;
+
+	   if (count($intervals) === 1) {
+		  $currInt = json_decode($intervals[0]);
+		  $interval['start'] = $currInt->start;
+		  $interval['stop'] = $currInt->stop;
+		   
+		  return $interval;
+	    }
+	   $ff = fopen($zoomFile, 'w');
+	   for  ($i = 0; $i < count($intervals)-1; $i++)
+		      fwrite($ff,$intervals[$i]);
+	   fclose($ff);
+	   $currInt = json_decode($intervals[count($intervals)-2]);
+	   $interval['start'] = $currInt->start;
+	   $interval['stop'] = $currInt->stop;
+	   return $interval;
+	}
+
+// reset start zoom on every action : next, back,...
+	protected function resetZoomInterval($interval){
+	    $ff = fopen('zoom_intervals','w');
+	    fwrite($ff, json_encode($interval).PHP_EOL);
+	    fclose($ff); 
+	}
+
+/*****************************************************************
+*                           PUBLIC FUNCTIONS
+*****************************************************************/
+
+ public function rrmdir($dir){
+		if (is_dir($dir)) {
+		  $objects = scandir($dir);
+	  
+		  foreach ($objects as $object) { // Recursively delete a directory that is not empty and directorys in directory 
+		    if ($object != "." && $object != "..") {  // If object isn't a directory recall recursively this function 
+		      if (filetype($dir."/".$object) == "dir") 
+			      $this->rrmdir($dir."/".$object);
+		      else 
+			      unlink($dir."/".$object);
+		    }
+		  }
+		  reset($objects);
+		  rmdir($dir);
+		}
+	      }  
+
+// Delete 'interactive session' 
+   public function deleteObject($obj) {
+ 
+           $sessionID = substr($obj->id, 0, 5); 
+ 
+           if (is_dir(USERWORKINGDIR.$sessionID.'_'))
+                       $this->rrmdir(USERWORKINGDIR.$sessionID.'_');
+ 
+             return array('id' => $sessionID);
+
+   }
+
+// interactive session
+   public function execute($obj) {
+
+	    $sessionID = $obj->resultId;	      
+
+	    if (!is_dir(USERWORKINGDIR.$sessionID.'_'))
+			return array('error' => 'interactive plot session was closed');
+
+            $currDir = USERWORKINGDIR.$sessionID.'_/';
+	    chdir($currDir);
+
+// Interval or TimeTable session
+	    if (file_exists('current')) {
+			$isTimeTable = true;			
+	    }
+            else 
+			$isTimeTable = false;
+
+           if (!file_exists('request_.list'))
+			return array('error' => 'interactive plot session was closed');
+
+	   copy('request_.list', $sessionID);
+
+           $action = $obj->action->name;
+	   $interval = array();
+           $reqMgr = new RequestMgr();
+           $requestName = $sessionID;
+
+	   $timeInt =  $this->getTimeInt($currDir.$requestName);
+	   
+		switch ($action) {
+		    case 'next':   
+			      $interval['start']  = $obj->action->arg1;			 
+			      $interval['stop'] = $this->getStopTime($interval['start'], $timeInt);
+			      $this->resetZoomInterval($interval);
+			      $this->updateStartTime($currDir.$requestName, $interval['start']);
+			    break;
+		    case 'halfnext': 				 
+			      $interval['stop'] = $this->getStopTime($obj->action->arg1, $timeInt/2);
+			      $interval['start'] = $this->getStartTime($interval['stop'], $timeInt);
+			      $this->resetZoomInterval($interval);
+			      $this->updateStartTime($currDir.$requestName, $interval['start']);
+			    break;
+		    case 'back': 
+			      $interval['stop']  = $obj->action->arg1;
+			      $interval['start'] = $this->getStartTime($interval['stop'], $timeInt);
+			      $this->resetZoomInterval($interval);
+			      $this->updateStartTime($currDir.$requestName, $interval['start']);
+			    break;
+		    case 'halfback':			 
+			      $interval['start'] = $this->getStartTime($obj->action->arg1, $timeInt/2);
+			      $interval['stop']  = $this->getStopTime($interval['start'], $timeInt);
+			      $this->resetZoomInterval($interval);
+			      $this->updateStartTime($currDir.$requestName, $interval['start']);
+			    break;
+		    case 'nextInt':   			       
+		    case 'backInt':   			       
+		    case 'goto':
+			      $interval = $this->getNewInterval($obj);
+			      $this->resetZoomInterval($interval);
+			      $reqMgr->updateTime($currDir.$requestName, $interval);
+			    break;
+		    case 'extend': 
+			      $shift = $obj->action->arg1;
+			      $interval['start'] = $this->getStartTime($obj->action->arg2, $shift);
+			      $interval['stop']  = $this->getStopTime($obj->action->arg2, $timeInt+$shift);
+			      $this->resetZoomInterval($interval);		      
+			      $reqMgr->updateTime($currDir.$requestName, $interval);
+			    break;
+		    case 'shift': 
+			      $shift = $obj->action->arg1;
+			      $interval['start'] = $this->getStartTime($obj->action->arg2, (-1.)*$shift);
+			      $interval['stop']  = $this->getStopTime($obj->action->arg2, $timeInt+$shift);
+			      $this->resetZoomInterval($interval);		     
+			      $reqMgr->updateTime($currDir.$requestName, $interval);
+			      break;
+		    case 'zoom': 
+			      $requestName = 'zoom';
+			      copy('request_.list', $requestName);
+			      $interval['start'] = $obj->action->arg1;
+			      $interval['stop'] = $obj->action->arg2;
+			      $this->addZoomInterval($interval);
+			      $reqMgr->updateTime($currDir.$requestName, $interval);
+			    break;
+		    case 'resetzoom': 
+			      $interval = $this->removeZoomInterval();
+			      copy('request_.list', $requestName);
+			      if ($interval) 
+				      $reqMgr->updateTime($currDir.$requestName, $interval);
+			      else 
+				    return array('warning' => 'to implement');
+			    break;
+		    case 'changetime': break;
+		    default:
+		      return array('error' => 'unknown action');
+		  }
+//TODO Delete *png ??? or use them ????
+	  foreach (glob('Plot*.png') as $filename)  
+					unlink($filename);
+//TODO define user in AmdaAction constructor : SESSION_ID
+	  $dd = new UserMgr();
+
+	  if ($dd -> ddCheckUser() != 0)
+	       return array('error' => 'sorry, your AMDA session was closed');
+
+          $cmd = DDBIN."DD_Plot ".$requestName." ".$dd->user." ".$dd->IP." ".DDPROJECT." ".DDPROJLIB; 
+          $pid =  $reqMgr->background($cmd);
+
+	     $jobMgr = new JobsMgr(); 	    
+//TODO return ERRORS also
+            for ($cycle = 0; $cycle < PLOT_CYCLES_NUMBER; $cycle++) {
+                    sleep(JOBTIMEOUT);
+
+                    if ( is_dir(USERWORKINGDIR."CANCELPLOT") ) {
+                    if (file_exists(USERWORKINGDIR."CANCELPLOT/".substr($sessionID,4,1)))
+                                    rename(USERWORKINGDIR."CANCELPLOT/".substr($sessionID,4,1),$currDir."/cancelplot");
+
+                    if (count(scandir(USERWORKINGDIR."CANCELPLOT")) == 2) rmdir(USERWORKINGDIR."CANCELPLOT");
+
+                    }
+
+                    if (file_exists($currDir."/cancelplot"))
+                    {
+                      if (!$jobMgr->isFinished($pid))
+                      { 
+                        $cmd = 'kill -9 '.$pid;
+                        exec($cmd);
+                      }
+                      
+                       if (file_exists($currDir."/cancelplot"))
+                          unlink($currDir."/cancelplot");
+ 
+                        return array('error' => "Plot canceled!");
+                   }
+
+		   if ($jobMgr->isFinished($pid)) {
+			$cachekiller = time();
+                        rename($requestName.'.png', $sessionID.'_'.$cachekiller.'.png');
+			$arrayMain = array('pid' => '0', 'name' => $sessionID.'_'.$cachekiller, 
+				     'id' => $sessionID, 'startDate' => $interval['start'], 'stopDate' => $interval['stop']);
+
+			if ($isTimeTable) {
+				$arrayTable = array( 
+						 'intervalN' =>  $this->currentInt, 
+						 'totalN' => $this->totalInt,
+						 'tableName' => $this->ttName);
+				return array_merge($arrayMain, $arrayTable); 
+			}
+			return $arrayMain; 
+		    }
+	     } 
+ 
+        $cmd = 'kill -9 '.$pid;
+        exec($cmd);
+
+      return array('error' => "too long : Plot canceled!");
+  }
+ }
+?>
diff --git a/php/classes/PostProcessing.php b/php/classes/PostProcessing.php
new file mode 100755
index 0000000..5c9e485
--- /dev/null
+++ b/php/classes/PostProcessing.php
@@ -0,0 +1,213 @@
+<?php
+/**
+ * @class PostProcessing
+ * @version $Id: PostProcessing.php 2806 2015-03-02 15:31:05Z natacha $
+ *
+ *
+ */
+
+  class PostProcessing  {
+  
+  private  $myParamsInfoMgr, $contentDom;
+  protected $xmlName, $rootTag = 'orbitesList', $objTagName = 'orbites';
+  protected $attributes = array('name' => '', 'type' => '', 'mission' => '', 
+                                'units' => '','time_resolution' => '', 'fillval' => '',
+                                'coordinate_system' => '', 'label' => '');
+  
+  function __construct() {
+                             
+                $this->myParamsInfoMgr =  new ParamsInfoMgr();	
+	        $this->xmlName = orbitesXml;
+		if (file_exists($this->xmlName)) unlink($this->xmlName);
+	        $this->contentDom = new DomDocument("1.0");
+                $this->contentDom->preserveWhiteSpace = false;
+                $this->contentDom->formatOutput = true;          
+		$this->createDom();
+		$this->xp = new domxpath($this->contentDom);
+ 
+	}
+
+	protected function createDom() {
+                $rootElement = $this->contentDom->createElement('orbitesList');		
+                $this->contentDom->appendChild($rootElement);
+		$this->contentDom->save($this->xmlName);
+        }
+	
+/*
+* Add Orbites in Orbites.xml
+*/      
+ 	protected function addOrbites($obj) {
+              
+                $objList = $this->contentDom->documentElement; 		
+                $newObj = $this->contentDom->createElement($this->objTagName);
+                $newObj->setAttribute('xml:id',$this->id);
+                $obj_arr = (array)$obj;
+                foreach ($obj_arr as $key => $value) {
+                	if ($key != 'xml:id') $newObj->setAttribute($key, $value);
+                }
+                $objList -> appendChild($newObj);       
+
+                $this->contentDom->save($this->xmlName);
+      }
+
+  /*****************************************************************
+         *                           PUBLIC FUNCTIONS
+*****************************************************************/   	
+	 
+	public function createOrbites() {
+	
+	    $parametresXml = new DomDocument();
+	    
+	    if (file_exists(paramXml)) {
+		    $parametresXml -> load(paramXml);
+		    $xpath = new DOMXpath($parametresXml);
+		    
+		    $parametres = $xpath->query("//PARAM[@type='orbit']");
+
+		    if (!is_null($parametres)) {
+		      foreach ($parametres as $parametre) {
+			   
+			   $paramInfo = $this->myParamsInfoMgr->GetDDInfoFromParameterID($parametre->getAttribute('xml:id'));	      
+			   $mission =  $paramInfo['submission']['id'];
+			   if ($mission == '') $mission =  $paramInfo['mission_id'];
+ 			   
+			   echo $parametre->getAttribute('xml:id')." was generated....".$mission.PHP_EOL;
+			   
+			   if ($mission != '') {   
+			    $obj = (object)array(
+				"param"   => $parametre->getAttribute('xml:id'),
+				"name"	=> $parametre->getAttribute('name'),
+				"type"    => $parametre->getAttribute('type'),
+				"mission" => strtoupper($mission),
+				"units"   => $parametre->getElementsByTagName('UNITS')->item(0)->nodeValue,
+				"time_resolution" => $parametre->getElementsByTagName('TIME_RESOLUTION')->item(0)->nodeValue, 
+				"fillval" => $parametre->getElementsByTagName('FILLVAL')->item(0)->nodeValue,
+				"coordinate_system" => $parametre->getElementsByTagName('COORDINATE_SYSTEM')->item(0)->nodeValue, 
+				"label" => $parametre->getElementsByTagName('LABEL_I')->item(0)->nodeValue
+			      );
+			      $this->id = $obj->param;
+                              $this -> addOrbites($obj); 
+			  }
+		      }
+		      
+		   }
+		   else {
+		      return array('success' => false, 'message' => "Local param file is empty"); 		   
+		   }
+	    }
+	    else {
+		echo  "Local param file doesn't exist ".paramXml.PHP_EOL;
+		return array('success' => false, 'message' => "Local param file doesn't exist"); 
+	    }	    
+	}
+	
+	public function createOrbitesInfoFiles($locBases){
+
+	  $domTargets = new DomDocument();
+	  if (!$domTargets->load(targetsSimu)) {
+	      $msg = "Cannot load file ".targetsSimu.PHP_EOL;
+	      if (!$this->updateOnly) error_log($msg,1,email);
+	      continue;
+	  }
+
+	  $targets = $domTargets->getElementsByTagName('target');
+
+	  foreach ($targets as $target) {
+	  $help = "<h2> ".$target->nodeValue." </b></a></h2><UL><br/><br/><li><b>Orbits of satellites :</b><br/><br/>";  
+	  foreach ($locBases as $locBase)
+		{		
+                      if (strpos($locBase->getAttribute('targets'),$target->nodeValue) !== FALSE){
+			$sat = $locBase->nodeValue;
+echo "Loc Base is $sat & target is ".$target->nodeValue.PHP_EOL;                        			
+			$domName = LocalData."DD_".$sat.".xml";
+			$domParamName = LocalDataParam.$sat.".xml";
+			$help = $help."<p><b>$sat: </b> <br/>";
+			$dom = new DomDocument();
+			if (!$dom->load($domName)) {
+				  $msg = "Cannot load file ".$domName.PHP_EOL;
+				  print_r($msg);
+				  if (!$this->updateOnly) error_log($msg,1,email);
+				  continue;
+			  }
+			  $domParam = new DomDocument();
+			if (!$domParam->load($domParamName)) {
+				  $msg = "Cannot load file ".$domParamName.PHP_EOL;
+				  print_r($msg);
+				  if (!$this->updateOnly) error_log($msg,1,email);
+				  continue;
+			  }
+			$domOrbites = new DomDocument();
+			if (!$domOrbites->load(orbitesXml)) {
+				  $msg = "Cannot load file ".orbitesXml.PHP_EOL;
+				  print_r($msg);
+				  if (!$this->updateOnly) error_log($msg,1,email);
+				  continue;
+			  }
+			  $xp = new domxpath($dom);
+			  $xpParam = new domxpath($domParam); 
+			  $xpOrb = new domxpath($domOrbites); 
+
+			  $body = explode('.',$target->nodeValue);
+			  $query = "//dataset";   
+			  $datasets = $xp->query($query);
+			  if ($datasets->length > 0){
+			    foreach ($datasets as $dataset){
+			      $vi = $dataset->getAttribute('xml:id'); 
+			      $query = "//PARAM[@vi='$vi']";
+			      $param = $xpParam->query($query);
+			      if($param->length > 0){
+				$paramID = $param->item(0)->getAttribute('xml:id');
+				$query = "//orbites[@xml:id='$paramID']";
+			
+				$orbites = $xpOrb->query($query);
+				
+				if ($orbites->length > 0) { // && $dataset->getElementsByTagName('target')->item(0)->nodeValue == $body[0]){
+				 
+				 if ($dataset->getElementsByTagName('target')->item(0)->nodeValue == $body[0] ){
+// 				      $help = $help."<p><b>$sat: </b> ";
+				      $title = $dataset->getElementsByTagName('title')->item(0)->nodeValue;
+				      $start = $dataset->getElementsByTagName('dataStart')->item(0)->nodeValue;
+				      $stop = $dataset->getElementsByTagName('dataStop')->item(0)->nodeValue;
+     
+				      $help = $help."$title: $start   -   $stop</p>"; 
+				      if ($target->nodeValue == 'Ganymede') $help = $help."<p>You can find the Ganymede flyby TimeTable in the <b>Shared Time Tables/OTHER/ganymede_flyby</b>
+				      </p><br/>1996-06-27T06:07:08  -  1996-06-27T06:52:37  45.48 min   <br/>
+1996-09-06T18:32:44  -  1996-09-06T19:28:22  -  55.63 min   <br/>
+1997-04-05T06:44:41  -  1997-04-05T07:40:19  -  55.63 min   <br/>
+1997-05-07T15:36:54  -  1997-05-07T16:22:24  -  45.50 min   <br/>
+1997-06-26T16:50:00  -  1997-06-26T17:49:56  -  59.93 min   <br/>
+1997-12-15T09:30:23  -  1997-12-15T10:30:00  -  59.62 min   <br/>
+2000-05-20T09:40:04  -  2000-05-20T10:40:41  -  60.62 min   <br/>
+2000-12-28T07:54:41  -  2000-12-28T08:55:21  -  60.67 min   <br/>";
+				  }
+				  elseif ($dataset->getElementsByTagName('title')->item(0)->nodeValue == 'ToDo' ||
+				  $dataset->getAttribute('name') == 'orbit'){
+// 				      $help = $help."<p><b>$sat: </b> ";
+				      $start = $dataset->getElementsByTagName('dataStart')->item(0)->nodeValue;   
+				      $stop = $dataset->getElementsByTagName('dataStop')->item(0)->nodeValue;
+				      $help = $help.$orbites->item(0)->getAttribute('mission')." $start   -   $stop</p>"; 
+				  }
+				  elseif ($dataset->getElementsByTagName('title')->item(0)->nodeValue == 'CLUSTER1' ||
+					  $dataset->getElementsByTagName('title')->item(0)->nodeValue == 'CLUSTER2' ||
+					  $dataset->getElementsByTagName('title')->item(0)->nodeValue == 'CLUSTER3' ||
+					  $dataset->getElementsByTagName('title')->item(0)->nodeValue == 'CLUSTER4'){
+// 				      $help = $help."<p><b>$sat: </b> ";
+				      $start = $dataset->getElementsByTagName('dataStart')->item(0)->nodeValue;   
+				      $stop = $dataset->getElementsByTagName('dataStop')->item(0)->nodeValue;
+				      $help = $help.$orbites->item(0)->getAttribute('param')." $start   -   $stop</p>"; 
+				  }
+				
+				}
+			      }
+			    }
+			  }
+                      }
+                      }
+                      $help = $help."</UL>";                       
+                      $fileName = HELPPATH."simu/simu".$target->nodeValue;                      
+		file_put_contents($fileName, $help);
+		}
+		return true;
+	
+	}
+  }
\ No newline at end of file
diff --git a/php/classes/RequestMgr.php b/php/classes/RequestMgr.php
new file mode 100644
index 0000000..973b959
--- /dev/null
+++ b/php/classes/RequestMgr.php
@@ -0,0 +1,2456 @@
+<?php
+/**
+ * @class RequestMgr
+ * @version $Id: RequestMgr.php 2914 2015-05-19 10:31:38Z elena $
+ *
+ *
+ */
+
+class RequestMgr extends AmdaObjectMgr {
+
+      public $obj;
+      public $impex_prefix = array('impex___', 'spase__', 'CLWEB_');
+      protected $searchChain;
+      protected $jobXml, $jobXmlName;
+      protected $parser, $paramBuilder;
+      protected $derivedParamMgr;
+      protected $request, $nObjects;
+      protected $currentInt, $totalInt, $ttName;
+      protected $paramsWithoutCode = false;
+      protected $spectraParams = false;
+      protected $dataBases;
+      protected $types = array('request', 'condition');
+      protected $argumentsByParam = array();
+      protected $defaults = 'select...';
+      protected $scatterOffset, $scatterOffsetX, $firstOffset;  
+      protected $timeFormat = array('YYYY-MM-DDThh:mm:ss' => 0, 'YYYY MM DD hh mm ss' => 1, 'DD MM YYYY hh mm ss' => 2,  'YYYY DDD hh mm ss' => 3);
+      protected $fileMgr;
+      
+      function __construct($type) {
+ 
+        parent::__construct('Request.xml');
+        $this->type = $type;
+
+        $this->contentRootId = $type.'-treeRootNode';
+        $this->contentRootTag = $type.'List';
+        $this->objTagName = $type; //'request';
+        $this->jobXmlName = USERDIR.'jobs.xml';
+        $this->jobXml = new DomDocument("1.0");
+        if (file_exists($this->jobXmlName)) {
+           $this->jobXml->load($this->jobXmlName);
+        }
+        if ($type == 'request') {
+           $this->id_prefix = 'req_';
+           $this->attributes = array('name' => '');
+           $this->optionalAttributes = array();
+       }
+       else {
+           $this->id_prefix = 'cond_';
+           $this->attributes = array('name' => '');
+           //, 'timestep' => '', 'datagap' => '', 'buildchain' => '',
+           //'StartTime' => '', 'TimeInt' => '');
+           $this->optionalAttributes = array();
+       }
+
+       if (file_exists(paramListXml)) 
+          $this->paramsWithoutCode = true;
+
+       if (file_exists(spectraXml)) 
+          $this->spectraParams = true;
+
+       $this->parser = new Parser();
+       $this->paramBuilder = new ParamBuilder();
+
+       if (!file_exists($this->xmlName)) {
+          $this->createDom();
+          $this->xp = new domxpath($this->contentDom); 
+       }
+       //external bases       
+       if (file_exists(RemoteData.'Bases.xml')) {
+          $dataBasesDoc = new DomDocument("1.0");
+          $dataBasesDoc->load(RemoteData.'Bases.xml');
+          $this->dataBases = $dataBasesDoc->getElementsByTagName('dataCenter');
+       }
+
+       putenv("USER_DATA_PATH=".USERDATADIR);
+       putenv("USER_WS_PATH=".USERWSDIR); 
+       putenv("PHP_CLASSES_PATH=".CLASSPATH);
+        
+    }
+
+/*********************************************************************
+*   BEGIN : generic functions
+**********************************************************************/
+ protected function getWsdVars($vars){
+   
+    foreach($vars as $var) {           
+            if(strpos($var, 'wsd_') === 0) 
+            { 
+                $wsdVars[] = $var;                
+            }         
+    }
+ 
+    if (isset($wsdVars)) return $wsdVars;
+    return false;
+  }
+
+  protected function getImpexVars($vars){
+   
+    foreach($vars as $var) {    
+       foreach($this->impex_prefix as $prefix) {
+            if(strpos($var, $prefix) === 0) 
+            { 
+                $impexVars[] = $var;   
+            }
+        }
+    }
+ 
+    if (isset($impexVars)) return $impexVars;
+    return false;
+  }
+
+  protected function param2dd($paramID)
+  {
+      $pairs = array("-" => "_", "%" => "_","\\" => "_","$" => "_",":" => "_","+" =>" _","-" => "_","#" => "_","@" => "_", "." => "_",">" => "_", "<" => "_");    
+      return strtr($paramID, $pairs); 
+  }
+
+  protected function param2dd_print($paramID)
+  {
+      $pairs = array("-" => "_", ":" => "_", "%" => "_","\\" => "_","$" => "_","+" =>" _","-" => "_","#" => "_","@" => "_", "." => "_",">" => "_", "<" => "_");    
+      return strtr($paramID, $pairs); 
+  }
+
+  protected function setObject($obj) 
+  {
+      $this->obj = $obj;
+  }
+
+  /* temp name for output */
+  protected function getRandomName() 
+  {
+      $length = 6;
+      $characters = '0123456789abcdefghijklmnopqrstuvwxyz';
+      $string = '';
+
+      for ($p = 0; $p < $length; $p++) {
+	  $string .= $characters[mt_rand(0, strlen($characters))];
+      }
+
+      return 'DD'.$string;
+  }
+
+  //DD notation 'DDDD:HH:MM:SS'  ATTENTION!!! DDDD => 4 digits!!!
+  protected function getDdInterval() 
+  {
+      return $this->obj->durationDay.':'.$this->obj->durationHour.':'.
+	      $this->obj->durationMin.':'.$this->obj->durationSec;
+  }    
+
+      
+  //DD notation 'YYYY:DOY:HH:MM:SS' DOY => DOY-1
+  protected function getDdTime($date)
+  {
+      $ddStart = getdate(strtotime($date));
+      $DDTime = sprintf("%04d",$ddStart['year']).':'.sprintf("%03d", $ddStart['yday']).':'.
+		  sprintf("%02d",$ddStart['hours']).':'.sprintf("%02d",$ddStart['minutes']).':'.
+		  sprintf("%02d",$ddStart['seconds']);
+
+      return $DDTime;
+  }
+       
+/*
+ * 
+ */
+/*public function isValidRequest()
+{
+ $usrMgr = new UserMgr();
+ foreach ($this->obj->list as $param)
+ {
+  $usrMgr->isAvailableParamForUser();
+ }
+}*/
+        protected function makeOrbitParam($stl) 
+        {        
+            $params = array( 'cluster1' => 'c1_xyz', 'cluster2' => 'c2_xyz', 'cluster3' => 'c3_xyz', 'cluster4' => 'c4_xyz',
+                            'themisa'=> 'tha_xyz', 'themisb'=> 'thb_xyz', 'themisc'=> 'thc_xyz', 'themisd'=> 'thd_xyz', 'themise'=> 'the_xyz',
+                            'geotail' => 'gtl_xyz',
+                            'mex' => 'mex_xyz', 'mgs' => 'xyz_mgs_mso', 'maven' => 'mav_xyz_mso'); 
+
+            $this->makeLocalParams(array($params[strtolower($stl)]));         
+                    
+        }
+
+        protected function makeSWMonitorParam($swm) 
+        {
+            $params = array('omni' => array('omni5_sw_v', 'omni5_sw_n', 'omni5_imf'),
+                            'amda' => array('ace_xyz', 'wnd_xyz', 'imp8_xyz', 'imf', 'wnd_b', 'imp8_b',
+                                            'swp_n', 'swp_v', 'wnd_swe_n', 'wnd_swe_vmag', 'imp_mit_nfit', 'imp_mit_vfit'));
+ 
+            $this->makeLocalParams($params[strtolower($swm)]);                             
+        } 
+          
+        /* 
+        *  plot objects - check Local Params without code
+        */
+        protected function isParamWithoutCode($id) 
+        {           
+            if (!$this->paramsWithoutCode) return false;            
+            $localParams = new DomDocument('1.0');
+            $localParams->load(paramListXml); 
+            $xp = new domxpath($localParams);
+            if ($xp->query('//PARAM[.="'.$id.'"]')->length != 0) {
+                                $this->paramBuilder->paramLocalBuild($id);
+                                return true;
+            }
+            return false;            
+       }
+
+        /* 
+        *  plot objects - check and create Remote Params 
+        */
+        protected function isRemoteParam($object) 
+        {
+            if (!$this->dataBases) return false;
+        
+            foreach ($this->dataBases as $dataBase){
+                        $dataBaseId = $dataBase->getAttribute('xml:id');
+                        if (strncmp($object, $dataBaseId, strlen($dataBaseId)) === 0)  {
+                                    return true;
+                            }
+                    }
+            return false;
+        }
+
+        protected function makePlotRemoteParams($object, $file_name, $comp) 
+        {
+            require_once('paramBuild.php');
+                    
+            paramBuild($object);
+            $SED = "sed 's/".$object."/".$this->param2dd($object)."/g' ".$file_name." > temp";
+            system($SED);
+
+            copy('temp',$file_name);
+
+            if ($comp == 0) 
+                        $comp = "0";
+            if ($comp != -1) 
+                        paramBuildComp($object, $comp);
+            return true;
+
+}
+
+        /* 
+        *  Process   Local Params without codes if exist
+        */
+        protected function makeLocalParams($realVars) 
+        {     
+            $localParams = new DomDocument('1.0');
+            $localParams->load(paramListXml);
+            $xp = new domxpath($localParams);
+            foreach ($realVars as $var) {
+            // process component
+                        if (strpos($var, '(') !== false) {
+                                    $var_arr = explode('(', $var);
+                                    $var = $var_arr[0];
+                        }
+                        if ($xp->query('//PARAM[.="'.$var.'"]')->length  != 0) 
+                                        $this->paramBuilder->paramLocalBuild($var);   
+            }
+            
+        }
+
+        /*
+        *  Process  External Objects if exist
+        */
+        protected function makeRemoteParams($realVars) 
+        {
+            require_once 'paramBuild.php';
+
+            foreach ($realVars as $var) 
+            {
+                foreach ($this->dataBases as $dataBase) 
+                {  
+                        $id = $dataBase->getAttribute('xml:id');
+                        if ($dataBase->getAttribute('group') != 'IMPEX') { 
+                                $pos = strpos($var, $id);
+                                if ($pos === false) 
+                                                    continue;
+                                $arrComp = explode('(', $var);
+                                $var_ = $arrComp[0];
+                                paramBuild_($var_);
+                                $this->searchChain = strtr($this->searchChain, $var, param2dd($var));
+                                $var = param2dd($var);
+                                break;
+                         }
+                }
+            }
+        }
+
+    /*
+    *         process  WS parameters
+    */      
+    protected function makeWsParams($realVars) {
+
+      if (!$this->derivedParamMgr) $this->derivedParamMgr = new DerivedParamMgr('derivedParam');
+
+      foreach ($realVars as $var){
+                // Derived Params
+           if (strncmp(strtolower($var), 'ws_', 3) == 0) {
+               // check if resource file exists
+               $varName = substr($var,3);
+
+           if (!$this->derivedParamMgr->objectExistsByName($varName)) {
+               return false; //TODO error processing
+           }
+           $varId = $this->derivedParamMgr->getObjectIdByName($varName);
+           $resFile = $varId.'.res';
+
+           if(!file_exists(USERWORKINGDIR.$resFile)) {
+	      return false; //TODO process error
+	    }
+	    copy(USERWORKINGDIR.$resFile, $var.'.res'); 
+
+            //TODO if needed to replace alias???
+	    $realObject = $this->parser->replaceAll($var);
+
+            $realWsVars = $this->parser->getVars($realObject); 
+            foreach ($realWsVars as $wsVar) { 
+                 if ((strncmp($wsVar, "impex___", 8) === 0) || (strncmp($wsVar, "spase___", 8) === 0)){
+                      $tmpArr = explode('_',$wsVar);
+                      $n = count($tmpArr); 
+                      if ((strncmp($wsVar, "impex___LATMOS_", 15) === 0) || (strncmp($wsVar, "spase___IMPEX_NumericalOutput_LATMOS_", 37)=== 0)) {
+                           $newVar = str_replace ("_".$tmpArr[$n-2]."_".$tmpArr[$n-1], "", $wsVar);
+                      }
+                      else {
+                           $newVar = str_replace ("_".$tmpArr[$n-1], "", $wsVar);
+                      }
+                      $texte = file_get_contents($var.'.res'); 
+                      $newText = str_replace($wsVar, $newVar,$texte);
+                      file_put_contents($var.'.res' , $newText); 
+                 }
+             }
+            //functions for plotting parameter
+            $this->paramBuilder->makeWsParamPlot($var);
+ 
+            // $realWsVars = $this->parser->getVars($realObject); 
+ 
+            /*Check if WS_ is from Local Params without codes*/   
+            if ($this->paramsWithoutCode) {            
+               $this->makeLocalParams($realWsVars); 
+            }
+
+            /*Check if WS_ is from Spectra Params  */   
+            if ($this->spectraParams) {          
+               $this->makeSpectraParams($realWsVars); 
+            }
+
+            /*Check if WS_ is from Remote  Params  */   
+            if ($this->dataBases) {          
+                $this->makeRemoteParams($realWsVars);
+            }
+
+            /*Check if WS_ is from WS_ or WSD_ Params ONE LEVEL OF NESTING ONLY!!! */   
+            foreach ($realWsVars as $wsVar) { 
+                  if (strncmp(strtolower($wsVar), 'ws_', 3) === 0) {         
+                     $this->paramBuilder->makeWsParamPlot($wsVar); 
+                     $wsVarName = substr($wsVar,3);
+                     $varId = $this->derivedParamMgr->getObjectIdByName($wsVarName);
+                     $tempObj = $this->derivedParamMgr->getObject($varId);
+                     $expression = $this->parser->replaceAll($tempObj["buildchain"]);
+                     $resFile = $varId.'.res';
+                     if(!file_exists(USERWORKINGDIR.$resFile)) 
+                          return false; //TODO process error
+                     
+                     copy(USERWORKINGDIR.$resFile, $wsVar.'.res');
+                     $lines = file($wsVar.'.res');
+                     $wsWsVarsStr = explode(' ',$lines[0]);
+
+                     $wsWsVars = array();
+                     foreach ($wsWsVarsStr as $wsWsVar) if (trim($wsWsVar) != '') $wsWsVars[] = $wsWsVar;
+                            $this->paramBuilder->makeParamCalcul($this->parser->convert2Idl($expression), $wsWsVars, $wsVar);
+                            /*Check if WS_ is from Local Params without codes*/   
+                            if ($this->paramsWithoutCode) {                                                      
+                               $this->makeLocalParams($wsWsVars); 
+                            }
+                  }
+                  elseif (strncmp(strtolower($wsVar), 'wsd_', 4) === 0)                                          
+                      $this->makeWsdParams(array($wsVar));
+                  elseif ((strncmp($wsVar, "impex___", 8) === 0) || (strncmp($wsVar, "spase___", 8) === 0)){
+		    $imp = array('realVars'=> array($wsVar), 'fromWS' => true);
+                    $this->makeWsrParams($imp);
+                  }
+            } 
+            //function to calculate parameter
+            $this->paramBuilder->makeParamCalcul($this->parser->convert2Idl($realObject),$realWsVars,$var);  
+          }
+      }
+
+    } 
+
+    /* Process WSD objects */
+    protected function makeWsdParams($realVars) 
+    {
+        $paramMgr = new DerivedParamMgr('myDataParam');                
+        $xpd = new domxpath($paramMgr->contentDom); 
+
+        foreach ($realVars as $var)
+            if (strncmp($var, "wsd_", 4) == 0) {
+                        $name = explode('wsd_',$var);
+                        $params = $xpd->query("//mydata[@name='".$name[1]."']");  
+                        if ($params->length >  0)
+                            $this->paramBuilder->makeWsdParam($params->item(0)->getAttribute('xml:id'));
+            }
+            elseif ((strncmp($var, "impex___", 8) === 0) || (strncmp($var, "spase___", 8) === 0))  {
+    
+            }
+    }
+    
+
+     /* Process SIMU et INSITU request param*/
+     protected function makeWsrParams($imp){
+        $realVars = $imp['realVars'];
+        $fromWS = $imp['fromWS'];
+       
+        $isMulti =  $this->obj->timeTables ? true: false; 
+        if (!$isMulti){
+           $startDate = $this->obj->startDate;
+           $stopDate = $this->getStopDate();
+        }
+        else {
+           $interval = $this->getFirstTimeTableInterval();
+           $startDate = $interval['start'];
+           $stopDate = $interval['stop'];
+        }
+
+        $paramMgr = new DerivedParamMgr('mySimuParam');
+    
+        $simuParamMgr = new SimuParamMgr();        
+        $myWsrParamMgr = new WsrParamMgr();
+             
+        $myBaseManager = new BaseManager();
+        $xpd = new domxpath($myBaseManager->baseDom);
+        $data =  array();
+
+        $paramDom = new DomDocument("1.0");
+        $paramDom->load(getenv('USER_WS_PATH').'WsParams.xml');
+        $xpdSimu = new domxpath($paramDom);  
+
+        foreach ($realVars as $var) {
+
+            $isVector = false;
+            $isSimu = strncmp($var, "impex___", 8) === 0 || strncmp($var, "spase___", 8) === 0;
+            $isClWeb = strncmp($var, "CLWEB_", 6) === 0;
+
+        // All simulation parameters and arguments has prefix "spase___" or "impex___" (old version) 
+            if ($isSimu || $isClWeb) { 
+                if ($fromWS && !$isClWeb) {
+                   $this->argumentsByParam = $this->cutSimuArgs($var);
+                   foreach ($this->argumentsByParam as $key => $value) 
+                        $var = $key;
+                } 
+                else $var = $this->param2dd($var);
+ 
+                $fileExists = false;
+               // ClWeb
+                if ($isClWeb ){ 
+                   $data['paramID'] = $var; 
+                   $data['startDate'] = $startDate;
+                   $data['stopDate'] = $stopDate;
+                   // Creation request parameters
+                   $myWsrParamMgr->setParams($data);
+                   // definitions mask for wsr parameter
+                   $mask = $myWsrParamMgr->getMask();
+                   // definitions download file name for wsr parameter
+                   $fileName = $myWsrParamMgr->getFileName(); 
+//                   $dataType = "mywsrdata";
+                }
+                // Simulation
+                else {
+		    // Creation request simu parameters
+                    $simuParamMgr->setParams($var, $startDate, $stopDate, $this->argumentsByParam);
+                    // definitions mask for simu parameter
+                    $mask = $simuParamMgr->getMask();
+                     // definitions download file name for simu parameter
+                    $fileName = $simuParamMgr->getFileName();
+                    // test if request parameter is Vector
+                    $isVector = $simuParamMgr->isVector();
+//                    $dataType = "mysimudata";
+                }
+
+		// definition query for seaching mask in base.xml 
+                $params = $xpd->query("//vi[mask='".$mask."']");
+
+if (file_exists('/home/budnik/public_html/AMDA-NG4/trunk/data/budnik/LOG'))
+                     unlink('/home/budnik/public_html/AMDA-NG4/trunk/data/budnik/LOG');
+                // VI exists!!!   
+                if ($params->length >  0) {  
+                    // IMPORTANT !!! It is the public method of baseManager class to define ALL needed intervals to request!!!
+                    // Used in moreData.php also 
+                    //TODO move from moreData.php to PlotMgr.php for new kernel
+                    $intervalsToGet = $myBaseManager->intervalsToGet(strtotime($startDate), strtotime($stopDate),$mask);
+                    $paramsWsr = $xpdSimu->query("//*[@mask='".$mask."']");
+                    $wsrID = $paramsWsr->item(0)->getAttribute('xml:id');         
+                    // data recuperation
+                   $start = $intervalsToGet['start'];
+                   $stop = $intervalsToGet['stop'];
+
+                    if (count($start) > 0) {
+                      for ($i = 0; $i < count($start); $i++) {
+                        if ($isClWeb) {
+                            $myWsrParamMgr->updateInterval($start[$i],$stop[$i]);
+                            $fileNames = $myWsrParamMgr->getData();
+                          }
+                        else {  
+                            $simuParamMgr->updateInterval($start[$i],$stop[$i]);
+                            $fileNames = $simuParamMgr->getSimuData();
+                         }                           
+                        }  
+                     //   if (!$isClWeb) $isVector  = $simuParamMgr->isVector();
+                    }
+                    $this->paramBuilder->makeWsdParam($wsrID);
+                }
+               // No such VI - It is the very first request
+                else {		 
+                    if ($isClWeb){
+                        $fileNames = $myWsrParamMgr->getData();
+                        $var = $this->param2dd($var);
+                    }
+                    else {  
+                        $fileNames = $simuParamMgr->getSimuData();
+                        $isVector = $simuParamMgr->isVector();
+                    }
+
+                    $input = (object)array(
+                        "varName" => $var,
+                        "isVector"=> $isVector,
+                        "fileName"=> $fileName,
+                        "mask"=> $mask,
+                        "startDate"=> strtotime($startDate),
+                        "stopDate"=> strtotime($stopDate)
+                    );     
+
+                    if ($fileNames[$var]){
+                        if ($isClWeb){
+                            $tmpObj = $this->makeWsrParamsObj($input, $isClWeb);
+                            $res = $paramMgr->createWsrParameter($tmpObj,'myWsrParam');
+                        }
+                        else {
+                            $tmpObj = $this->makeWsrParamsObj($input);
+                            $res = $paramMgr->createWsrParameter($tmpObj,'mySimuParam');
+                        }
+                    }
+                    if ($res['id'])                                
+                            $this->paramBuilder->makeWsdParam($res['id']);                    
+                }
+            }
+        }
+    }       
+    /* Protected request param*/
+    protected function makeWsrParamsObj($input, $isClWeb) {
+
+      $params =  explode( '_', $input->varName);
+
+      if (!$isClWeb){
+        // Recuperation names of argument(s)
+         if (!$input->isVector)
+            $varName = $params[count($params) -1];
+         else
+            $varName = $params[count($params) -3].'_'.$params[count($params) -2].'_'.$params[count($params) -1];
+      }
+      else {
+ 
+         $dom = new DomDocument();
+         $dom->load(baseDirCLWEB);
+         $param = $dom->getElementById($input->varName);
+         // Name of parameter in CLWeb
+         $varName = $param->getAttribute('var');
+         // To know if it's Spectra data in ws param we need to indicate "plottype" => $spectra, but in RemoteParams.xml the atribute 'display_type' == 'spectrogram'
+         // so we need create variable = 'Spectra'
+         if ($param->hasAttribute('display_type') && ($param->getAttribute('display_type') == 'spectrogram')) $spectra = 'Spectra';
+      }
+      
+      $myFileManager = new FilesMgr();
+      $object = (object)array(
+        "file"=> $input->fileName,
+        "format"=> "nc",
+        "varName"    => $this->param2dd($varName),
+        "mask"=> $input->mask
+      );
+
+      if (!$isClWeb){  
+      //delete different possible IMPEx prefix
+         $tmpTmp =    str_replace ("impex___", "", $this->parameterID);
+         $tmpT =    str_replace ("spase___IMPEX_NumericalOutput_", "", $tmpTmp);
+         $tmp =    str_replace ("spase___IMPEX_SimulationRun_", "", $tmpT); 
+         $tmpArr = explode('_',$tmp);
+         $format = "vot";
+         $parentTag = "mysimudataList";
+         $contentRootId = "mySimuParam-treeRootNode";
+         if ($this->getVotFileMgr($input->fileName)) {
+	      $infos = $this->fileMgr->getFieldInfoByID($varName);
+	      $samplings = $this->fileMgr->getSamplings();
+	      $id = $infos['id'];
+	      $type = $infos['type'];
+	      $units = $infos['unit'];
+          }
+       }
+       else {
+         $tmpArr[0] = $this->parameterID;
+         $format = "nc";
+         $parentTag = "mywsrdataList";
+         $varName = $input->varName;
+         $contentRootId = "myWsrParam-treeRootNode";
+         $infos = $myFileManager->getParamInfo($object);
+         $samplings['minSampling'] = $infos["info"]["minsampling"];
+         $samplings['maxSampling'] = $infos["info"]["maxsampling"];
+         $id =  $infos["info"]["name"];
+         $type = $infos["info"]["type"];
+         $units = $infos["info"]["unit"];
+      }
+
+      //size definition
+      if (($infos['size'] == '') && ($infos["info"]["size"] == ''))
+         $size = 1;
+      else {
+        if ($infos["info"]["size"] != '') $size = $infos["info"]["size"];
+        else
+         $size = $infos['size'];
+      }
+
+      $obj = (object)array(
+          "name"    => $input->varName,
+          "format"=> $format,
+          "size"=> $size,
+          "realvar"=> $id,
+          "file"=> $input->fileName,
+          "minsampling" => $samplings['minSampling'],
+          "maxsampling" => $samplings['maxSampling'],
+          "type" => $type,
+          "units" => $units,
+//       "ytitle" => str_replace ("impex___", "", $input->varName),
+          "ytitle" => $tmpArr[0].' '.$varName,
+          "mask"=> $input->mask,
+          "args"=> $this->argumentsByParam,
+          "start"=> $input->startDate,
+          "stop"=> $input->stopDate,
+          "parentTag"=> $parentTag,
+          "contentRootId" => $contentRootId,
+          "plottype" => $spectra
+        );
+
+
+        return $obj;
+    }
+/* 
+ *	Recuperation arguments from request variable name for download parameter
+ */
+    protected function cutSimuArgs ($var){
+        $args = array();
+        $tmpTmp =    str_replace ("impex___", "", $var);
+        $tmpT =    str_replace ("spase___IMPEX_NumericalOutput_", "", $tmpTmp);
+        $tmp =    str_replace ("spase___IMPEX_SimulationRun_", "", $tmpT); 
+        $tmpArr = explode('_',$tmp);
+        $n = count($tmpArr);
+        //LATMOS parameters have 2 arguments: Satellite & ClockAngle others simulations have only Satellite arguments. 
+        //Exceptions: LESIA simulations and SINP simulations with target different to Earth.
+        if ($tmpArr[0] == 'LATMOS') {
+           $args['Satellite'] = $tmpArr[$n-2];
+           $args['ClockAngle'] = $tmpArr[$n-1];
+           $var = str_replace ("_".$tmpArr[$n-2]."_".$tmpArr[$n-1], "", $var);
+        }
+        else {
+          $args['Satellite'] = $tmpArr[$n-1];
+          $var = str_replace ("_".$tmpArr[$n-1], "", $var);
+        }
+        return array($var => $args);
+    }
+    /*
+    * VOTable format processing done by an instance of VOTableMgr
+    */
+    protected function getVotFileMgr($fileName) {
+        if (!$this->fileMgr)
+	    $this->fileMgr = new VOTableMgr();
+      
+        $this->fileMgr->load(USERDATADIR.$fileName);
+        if ($this->fileMgr) 
+           return true;
+        else 
+           return false;
+   }
+
+        /* Interval from StartTime and Stop Time */ 
+   protected function calculateTimeInt($interval){
+       $int = strtotime($interval['stop']) - strtotime($interval['start']);
+  
+       $days = floor($int / 86400);
+       $int -= $days * 86400;
+
+       $hours = floor($int / 3600);
+       $int -= $hours * 3600;
+
+       $minutes = floor($int / 60);
+       $secs = $int - $minutes*60;
+ 
+       $DdInterval  = sprintf("%04d:%02d:%02d:%02d", $days, $hours, $minutes, $secs); 
+
+       return  $DdInterval; 
+
+  }
+/*********************************************************************
+*  END : generic functions
+**********************************************************************/
+
+/*********************************************************************
+*   BEGIN : Search specific functions
+**********************************************************************/
+
+        /*
+        * Check if local_param  is Special Spectra Cases - to Create special PRO
+        */
+        protected function makeSpectraParams($realVars) 
+        {
+            if ($this->spectraParams)
+            {
+                $spectraParams = new DomDocument('1.0');
+                $spectraParams->load(spectraXml);
+                $allSpectraParams = $spectraParams->getElementsByTagName("PARAM");
+
+                foreach ($realVars as $theVar) {
+                    for ($j = 0; $j < $allSpectraParams->length; $j++) {
+                        $paramNode = $allSpectraParams->item($j);
+                        if (strpos($theVar, $paramNode->nodeValue) !== false) {
+                                    $PRODIR = PRO;                                    
+                                    $temp = explode("_",$theVar);
+                                    $EMIN = $temp[3];
+                                    $EMAX = $temp[4]; 
+                                    // generate all necessary codes for models
+                                    if ($paramNode->hasAttribute('model')) {
+                                        if ($temp[0] == "bcain" || $temp[0] == "bmorsch") {
+                                            // satellite
+                                            $EMIN =  strtolower($temp[2]);
+                                            // sampling
+                                            $EMAX =  strtolower($temp[3]);
+                                        }
+                                        else {
+                                            // satellite
+                                            $EMIN = strtolower($temp[1]);
+                                            //monitor sw  
+                                            $EMAX = strtolower($temp[2]);
+                                            $this->makeSWMonitorParam($EMAX); 
+                                        }
+                                        $this->makeOrbitParam($EMIN);                                         
+                                    }
+                                    else {
+                                        $EMIN = $temp[3];
+                                        $EMAX = $temp[4]; 
+                                    }
+
+                                    if ($EMAX) {
+                                        $newFunctionName = $paramNode->nodeValue.$EMIN."_".$EMAX."_.pro";
+                                        $SED = "sed 's/EMIN/".$EMIN."/g' ".$PRODIR.$paramNode->nodeValue.".pro | sed  's/EMAX/".$EMAX."/g' > ".$newFunctionName; 
+                                    }
+                                    else {
+                                        $newFunctionName = $paramNode->nodeValue.$EMIN."_.pro";
+                                        $SED = "sed 's/EMIN/".$EMIN."/g' ".$PRODIR.$paramNode->nodeValue.".pro > ".$newFunctionName;
+                                     }                                    
+                                    system($SED);
+                                }
+                        }
+                }
+            }
+        }
+ 
+
+        /*
+        *   Create search.list with timing for DD_Search
+        */        
+        protected function createSearchRequestTime() 
+        {
+            $this->request = fopen(USERWORKINGDIR.'search.list','w');
+
+            fwrite($this->request,$this->getDdTime($this->obj->startDate).PHP_EOL);
+            fwrite($this->request,$this->getDdInterval().PHP_EOL);
+
+            fclose($this->request);
+        }
+
+        /*
+        * Create resource file for DD_Search
+        */
+        protected function createSearchRequest($realVars, $New_Table) 
+        {
+              $file = fopen(USERWORKINGDIR.'search.res','w');
+              fwrite($file, $New_Table.PHP_EOL);
+              fwrite($file,$this -> searchChain.PHP_EOL);
+              foreach ($realVars as $var) fwrite($file, $var." ");
+              fwrite($file,PHP_EOL.$this->obj->sampling.PHP_EOL);
+              fwrite($file,$this->obj->gap.PHP_EOL);
+              fclose($file);
+            //TODO
+            /*
+            *   Create file WITH VARS DESCRIPTION
+            */
+            //              $file = fopen(USERWORKINGDIR.'search_info.res','w');
+            //              fwrite($file,count($realVars).PHP_EOL);
+            //             foreach ($realVars as $var) fwrite($file, $this->getFullName($searchChain, $var).PHP_EOL);
+            //             fclose($file);
+        }
+
+        /*
+        *  Generate codes for parameters wich are not 'hard-coded'
+        */
+        protected function makeSearchParams() 
+        {
+            $searchChain = $this->parser->replaceAll($this->obj->expression);
+            $realVars = $this->parser->getVars($searchChain);
+            $this -> searchChain = $searchChain;
+
+            // Check if local_param  is Special Spectra Cases - to Create special PRO
+            $this->makeSpectraParams($realVars);
+
+            // Process   Local Params without codes if exist
+            $this->makeLocalParams($realVars);
+
+            // Make external params
+            $this->makeRemoteParams($realVars);
+
+            // Make WS params
+            $this->makeWsParams($realVars);
+
+            // Make WSD params
+            $this->makeWsdParams($realVars);
+
+            $this->paramBuilder->makeParamCalcul($this->parser->convert2Idl($this->searchChain), $realVars, "");
+
+           return  $realVars;
+        }
+
+/*****************************************************************************
+*  END:  Search specific functions
+******************************************************************************/
+
+/******************************************************************************
+*   BEGIN : Plot specific functions
+******************************************************************************/
+        /*
+        * Generic Plot Settings: Orientation: portrait, landscape;
+        *                        ColorTable;
+        *                        Font;
+        *                        PPP
+        */
+        protected function setPlot()
+        {
+            $resFile = file(USERWORKINGDIR.'DD_Request.res');
+            $res = fopen('./DD_Request.res','w');
+            fwrite($res, strtolower($this->obj->orientation).PHP_EOL); 
+            for ($k = 1; $k < 3; $k++) fwrite($res,$resFile[$k]);
+            fwrite($res, $this->obj->ppp.PHP_EOL); 
+            fclose($res);
+                                    
+            $res = fopen('./DD_PlotSettings.res','w');  
+            fwrite($res,$this->obj->charSize.PHP_EOL);
+            fwrite($res,$this->obj->thickness.PHP_EOL);
+            fclose($res);
+            //TODO forced layout with charsize
+            $this->scatterOffsetX = $this->obj->format == 'PNG' && !$this->obj->forcedLayout ? $this->obj->charSize * 0.23 : 0.03;
+            $this->scatterOffset = $this->obj->format == 'PNG' && !$this->obj->forcedLayout ? $this->obj->charSize * 0.05 : 0.06;
+            $this->firstOffset =  $this->obj->format == 'PNG' && !$this->obj->forcedLayout ? $this->obj->charSize * 0.07 : 0.08;
+        }
+
+         protected function cmp($a, $b){ 
+              return  $a->height < $b->height;
+           }
+
+/*
+        *
+        */
+        protected function makeForcedLayout($panels) 
+        { 
+            $TotalHeight = 0.0;      
+    $PWidth = 0.9;
+            $ScatterCoef = 1;
+            
+            $PN = 1;
+    
+            $ScatterPanels = array();
+            $TimePanels = array();
+
+            foreach ($panels as $panel) { 
+                    if ($panel->plotType == 'SCATTER') {
+                        if (strtolower($this->obj->orientation) == 'portrait') $panel->width *= 1.625;
+                            $ScatterPanels[] = $panel;
+                    }
+                    else $TimePanels[] = $panel;
+            }
+
+            usort($ScatterPanels, '$this->cmp');
+
+            $widthArr = array();
+            foreach ($ScatterPanels as $panel) $widthArr[] = $panel->width;
+
+            $PlotPanels = array(array());
+
+            for ($i = 0; $i < count($ScatterPanels); $i++) 
+            { 
+                $panel = $ScatterPanels[$i];
+                if (!$panel->pN) { 
+                    $width = $panel->width;  
+                    $panel->pN = $PN;  
+                    $PlotPanels[$PN][] = $panel;
+                        for ($j = 1; $j < count($widthArr); $j++) { 
+                        $panel1 = $ScatterPanels[$j];
+                        if (!$panel1->pN) {
+                            $widthNew = $width + $widthArr[$j];
+                            if ($widthNew < $PWidth*$ScatterCoef) {
+                            $width = $widthNew;
+                            $panel1->pN = $PN;
+                            $PlotPanels[$PN][] = $panel1;
+                            if ($j == count($widthArr) -1) {
+                                $PN++; break 1;
+                            }
+                            }
+                            else if ($j < count($widthArr) -1) {
+                                continue;
+                            }
+                            else {
+                                $PN++; break 1;   
+                            }
+                        }
+                    }
+                }
+            }
+ 
+            foreach ($TimePanels as $panel) {
+                            $TotalHeight += $panel->height;
+            } 
+
+            $ScatterMaxHeight = array();
+            $ScatterTotalWidth = array();
+            for ($i = 1; $i <= $PN; $i++) {
+                $height = 0.0;
+                $width = 0.0;
+                foreach($PlotPanels[$i] as $panel){
+                    $height = $panel->height > $height ? $panel->height : $height;
+                    $width += $panel->width;
+                } 
+                $ScatterMaxHeight[$i] = $height;
+                $ScatterTotalWidth[$i] = $width;
+                $TotalHeight +=$height; 
+            }
+               
+                
+            $PHeight = 1.0 - $PN*$this->scatterOffset - $this->firstOffset;
+            $heightCoeff = $TotalHeight > $PHeight ? $PHeight/$TotalHeight : 1.0;
+
+            $first = true;  
+      
+            foreach (array_reverse($TimePanels) as $panel)
+            {
+                if ($panel->children[0]->paramArgs == "OrbitPresentation=CYL") {
+                    $width = $panel->width*$heightCoeff;                    
+                    $panel->XPmin = ($PWidth - $width)/2.0;
+                    $panel->XPmax = $panel->XPmin + $width;
+                }
+                else { 
+                    $panel->XPmin = 0.0;
+                    $panel->XPmax = $PWidth;
+                }
+                //Start from lower panel
+                $panel->YPmin =  $first  ? $this->firstOffset : $YPmax;
+                $YPmax =  $panel->YPmin + $panel->height*$heightCoeff;
+                $panel->YPmax = $YPmax;
+                $first = false; 
+            }
+
+            if ($first) $YPmax = $this->firstOffset + 0.03;
+            else  $YPmax += $this->scatterOffset;
+
+            // Y coordinates     
+            for ($i = 1; $i <= $PN; $i++) { 
+                $newWidth = ($PN-1)*$this->scatterOffsetX;
+                $realHeight = $ScatterMaxHeight[$i]*$heightCoeff;
+                foreach ($PlotPanels[$i] as $panel) {                   
+                    $panelCoeff = $panel->height > $realHeight ? $realHeight/$panel->height : 1;    
+                    $panel->YPmin = $YPmax;
+                    $panel->YPmax =  $panel->YPmin + $panel->height*$panelCoeff;     
+                    $width = $panel->width*$panelCoeff;
+                    $panel->panelCoeff = $panelCoeff;
+                    $newWidth += $width;
+                }          
+                // X coordinates
+                $xOffset = 0.0;
+                foreach ($PlotPanels[$i] as $panel) {                          
+                    $width = $panel->width*$panel->panelCoeff;
+                    $panel->XPmin = ($PWidth - $newWidth)/2.0 + $xOffset;
+                    $panel->XPmax = $panel->XPmin + $width;
+                    $xOffset +=  $this->scatterOffsetX+$width;
+                }
+
+                $YPmax += $this->scatterOffset + $realHeight;
+            }
+            $arrayToReturn = array_reverse($TimePanels);
+
+            for ($i = 1; $i <= $PN; $i++)
+                    foreach ($PlotPanels[$i] as $panel)
+                            $arrayToReturn[] =  $panel;
+
+            return  $arrayToReturn;
+        }
+
+        /*
+        *
+        */
+        protected function makeLayout($panels) 
+        {
+            $TotalHeight = 0.0;      
+            $PWidth = 0.9;
+
+            $ScatterN = 0;
+            $TimeN = 0; 
+            foreach ($panels as $panel){ 
+                        if ($panel->plotType == 'SCATTER') {
+                            $ScatterN++;
+                            if (strtolower($this->obj->orientation) == 'portrait') 
+                                            $panel->width *= 1.625; //0.65/0.4; coeff for portrait
+                        }
+                        else $TimeN++;
+
+                        $TotalHeight += $panel->height;     
+            }
+
+            $addOffset = $TimeN > 0 && $panels[count($panels)-1]->plotType == 'SCATTER';
+                
+            $PHeight = 0.99 - $this->firstOffset - $ScatterN*$this->scatterOffset - $this->firstOffset*$addOffset;
+            $heightCoeff = $TotalHeight > $PHeight ? $PHeight/$TotalHeight : 1.0;
+
+            //Loop through all panels
+            $first = true;
+            $firstTime = true;
+            $allPanels = array(); 
+
+            foreach (array_reverse($panels) as $panel)
+            {
+                $isScatter = $panel->plotType == 'SCATTER';
+                // width for scatter
+                if ($isScatter) {                         
+                    $width = $panel->width*$heightCoeff;                    
+                    $panel->XPmin = ($PWidth - $width)/2.0;
+                    $panel->XPmax = $panel->XPmin + $width;
+                }
+                else if ($panel->children[0]->paramArgs == "OrbitPresentation=CYL") {
+                     $width = $panel->width*$heightCoeff;                    
+                     $panel->XPmin = ($PWidth - $width)/2.0;
+                     $panel->XPmax = $panel->XPmin + $width;
+                }
+                else {
+                    $panel->XPmin = 0.0;
+                    $panel->XPmax = $PWidth;
+                }
+
+                //Start from lower panel
+                if ($first) 
+                            $panel->YPmin = $this->firstOffset;
+                else if ($isScatter) 
+                            $panel->YPmin = $YPmax+$this->scatterOffset;
+                else if ($addOffset &&  $firstTime && !$isScatter) {
+                    $firstTime = false;
+                    $panel->YPmin = $YPmax+$this->firstOffset;
+                }
+                else  
+                    $panel->YPmin = $YPmax;
+
+                $YPmax =  $panel->YPmin + $panel->height*$heightCoeff;
+                $panel->YPmax = $YPmax;
+                $first = false;
+             }
+            return array_reverse($panels);
+        }
+
+ protected function setPlotObjects($panels,$tmpname,$isMulti){
+
+    require_once 'paramBuild.php';
+
+    $this->request = fopen($tmpname,'w');
+ 
+            if ($this->obj->forcedLayout) 
+                    $panels = $this->makeForcedLayout($panels);  
+            else 
+                    $panels = $this->makeLayout($panels);
+                     
+    foreach ($panels as $panel){
+                // if it is  SCATTER PLOT
+                $isScatter = $panel->plotType == 'SCATTER';                
+                $Xmin = $panel->xRangeMin;
+                $Xmax = $panel->xRangeMax;
+                $Ymin = $panel->y1RangeMin;
+                $Ymax = $panel->y1RangeMax; 
+
+                $Ytitle = $panel->y1Title;
+                $Xtitle = $panel->xTitle;
+   
+                $objectsToDraw = $panel->children;
+                    
+                $multiOnePanel = false;
+                // check if SPECIAL MULTI could be done
+                if (count($objectsToDraw) > 1 && $this->obj->forcedMulti && !$isScatter) {
+                        $multiOnePanel = true;
+                        foreach ($objectsToDraw as $objectToDraw) {
+                            // only scalars
+                            if (!$objectToDraw->isScatter) {
+                                            $multiOnePanel = false;
+                            }
+                        }
+                    }
+
+                if ($multiOnePanel) {
+                        $aPanel = new stdClass(); 
+                        $aPanel->XPmin = $panel->XPmin;
+                        $aPanel->XPmax = $panel->XPmax;
+                        $aPanel->YPmin = $panel->YPmin;
+                        $aPanel->YPmax = $panel->YPmax;
+                        $aPanel->Xmin = $Xmin;
+                        $aPanel->Xmax = $Xmax;
+                        $aPanel->Ymin = $Ymin;
+                        $aPanel->Ymax = $Ymax; 
+
+                        $aPanel->object = 'multi';
+                        $aPanel->args = ''; 
+                        foreach ($objectsToDraw as $objectToDraw) {
+                            $aPanel->args .= '"'.$objectToDraw->name.'",';
+                            $paramMulti =  explode('(',$objectToDraw->name);
+                            $paramList[] = $paramMulti[0];
+                        }
+                        $aPanel->args = substr($aPanel->args, 0, -1);
+                        $allPanels[] = $aPanel;  
+                    }
+                // loop though parameters : each parameter == panel if not MULTI
+              else {
+                  foreach ($objectsToDraw as $objectToDraw) {
+                      $aPanel = new stdClass(); 
+                      $aPanel->XPmin = $panel->XPmin;
+                      $aPanel->XPmax = $panel->XPmax;
+                      $aPanel->YPmin = $panel->YPmin;
+                      $aPanel->YPmax = $panel->YPmax;
+                      $aPanel->Xmin = $Xmin;
+                      $aPanel->Xmax = $Xmax;
+                      $aPanel->Ymin = $Ymin;
+                      $aPanel->Ymax = $Ymax;
+
+                      if ($isScatter) { 
+                         $paramIDx = explode('(', $objectToDraw->name); 
+                         $paramList[] = $paramIDx[0];
+                         $paramIDy = explode('(',$panel->scatterParam->data->name);
+ 
+                         $oneVI = $paramIDy[0] === $paramIDx[0] ? true : false;
+ 
+                         if ($this->isRemoteParam($paramIDx[0])) {
+
+                                if (!$infoMgr) $infoMgr = new ParamsInfoMgr();
+                                $info = $infoMgr->getRemoteParamInfo($paramIDx[0]);
+                                                                
+                                paramBuild_($paramIDx[0]); 
+                                $paramIDx[0] = param2dd($paramIDx[0]);
+                                $objectToDraw->name = implode('(', $paramIDx);
+                                                              
+                                $YTitle_default = $info['title'] ? $info['title'].'('.$paramIDx[1] : $objectToDraw->name;
+
+                                if ($oneVI) {   
+                                        $paramIDy[0] = $paramIDx[0];
+                                        $panel->scatterParam->data->name = implode('(', $paramIDy);
+                                $XTitle_default = $info['title'] ? $info['title'].'('.$paramIDy[1] : $panel->scatterParam->data->name;
+                                }
+                            }
+      
+                            if (!$oneVI) {
+ 
+                                if ($this->isRemoteParam($paramIDy[0])) {
+
+                                    if (!$infoMgr) $infoMgr = new ParamsInfoMgr();
+                                    $info = $infoMgr->getRemoteParamInfo($paramIDy[0]); 
+
+                                    paramBuild_($paramIDy[0]); 
+                                    $paramIDy[0] = param2dd($paramIDy[0]);
+                                    $panel->scatterParam->data->name = implode('(', $paramIDy);
+                                    $XTitle_default = $info['title'] ? $info['title'].'('.$paramIDy[1] : $panel->scatterParam->data->name;             
+                                }        
+                                        $paramList[] = $paramIDy[0];
+                            }
+                            $aPanel->object = 'scatter';
+                            $aPanel->args = '"'.$objectToDraw->name.'",'.'"'.$panel->scatterParam->data->name.'"';
+                            $aPanel->args .= $this->parseScatterArguments($objectToDraw->paramArgs);   
+                                                 
+                         if ($Xtitle || $XTitle_default) {
+                            $Xtitle_ = $Xtitle ? $Xtitle : $XTitle_default; 
+                            $aPanel->args .= ', XTITLE="'.$Xtitle_.'"';
+                         }
+                          
+                        if ($Ytitle || $YTitle_default) {
+                            $Ytitle_ = $Ytitle ? $Ytitle : $YTitle_default; 
+                            $aPanel->args .= ', Y1TITLE="'.$Ytitle_.'"';
+                        }
+                     }
+                     else {
+                        // to make proper AMDA objects
+                        $comp = -1;
+                        $addArgs = $this->parseSimuArguments($objectToDraw->paramArgs);
+                        $this->argumentsByParam[$objectToDraw->name] = (array)$addArgs;    
+                        if (strpos($objectToDraw->name, '(') !== false) {
+                            //first check params without codes 
+                            $paramID = explode('(', $objectToDraw->name);
+                            $comp =  substr($paramID[1], 0, -1);
+                            //TODO double ??? of MakeLocalParam A CORRIGER
+                            $paramWithoutCode = $this->isParamWithoutCode($paramID[0]);      
+                            $currPairs = array("(" => "_", ")" => "",":" => "_");
+                            $objectToDraw->name = strtr($objectToDraw->name, $currPairs);  
+                        }    
+                        else {
+                            $paramWithoutCode = $this->isParamWithoutCode($objectToDraw->name);
+                        }
+                        if ($this->isRemoteParam($objectToDraw->name)) { 
+
+                                if ($comp != -1) $this->makePlotRemoteParams($paramID[0], $tmpname, $comp);
+                                else  $this->makePlotRemoteParams($objectToDraw->name, $tmpname, $comp);
+                                                                                
+                            $currPairs = array(":" => "_", '-' => "_");
+                            $objectToDraw->name = strtr($objectToDraw->name, $currPairs); 
+                        }
+                        //================================================================
+                        // TODO THEMIS_IRAP init is created from special templates!!!
+                        $objToTest = str_replace("_", " ", $objectToDraw->name);
+                        if (sscanf($objToTest, "th%s pe%s %s", $X, $mode, $property) == 3){       
+                            $themis = "th".$X;
+                            $mode = "pe".$mode;
+                            $SED = "sed 's/X/".$X."/g' ".TEMPLATES."thX_YYYY_".$property."_init.pro | sed 's/YYYY/".$mode."/g' > ./".$themis."_".$mode."_".$property."_init.pro";
+                            system($SED);
+                            if ($property == 'v' || $property == 't' || $property == 'mode' ) {
+                                for ($j = 0; $j < 3; $j++) {
+                                    $SED = "sed 's/X/".$X."/g' ".TEMPLATES."thX_YYYY_".$property."_Z_init.pro | sed 's/YYYY/".$mode."/g' | sed 's/Z/".$j."/g' > ./".$themis."_".$mode."_".$property."_".$j."_init.pro";
+                                    system($SED);  
+                                }
+                            }                       
+                           }
+                    
+                        if (sscanf($objToTest, "th%s bh", $X) === 1){                                                                                                                                        
+                            $themis = "th".$X;                    
+                            $SED = "sed 's/X/".$X."/g'  ".TEMPLATES."thX_bh_init.pro  > ./".$themis."_bh_init.pro"; 
+                            system($SED);   
+                            for ($j = 0; $j < 3; $j++) {
+                                    $SED = "sed 's/X/".$X."/g' ".TEMPLATES."thX_bh_Z_init.pro | sed 's/Z/".$j."/g' > ./".$themis."_bh_".$j."_init.pro";
+                                    system($SED);               
+                                } 
+                                    
+                        }       
+//==================================================
+
+                        $aPanel->object = $objectToDraw->name;
+                        if ($objectToDraw->paramArgs != $this->defaults) {
+                                    $aPanel->args = $this->parseArguments($objectToDraw->paramArgs);
+                        }
+                        // new Y Title
+                        if ($Ytitle && ($paramWithoutCode || $this->isRemoteParam($objectToDraw->name) || (strncmp(strtolower($objectToDraw->name), 'ws_', 3) == 0))) {
+                            if ($objectToDraw->paramArgs != $this->defaults) $aPanel->args .= ',';
+                            $aPanel->args .=  'AY1TITLE="'.$Ytitle.'"';
+                        }
+                        // linear Z scaling for ros_mip
+                        if (substr($objectToDraw->name,0,7) == 'ros_mip') {
+                                if ($objectToDraw->paramArgs != $this->defaults) $aPanel->args .= ',';
+                                $aPanel->args .= '/LLIN';
+                        }
+                        // linear Y scaling for ros_ies AZ, ELV
+                        if (strpos($objectToDraw->name,'ros') === 0 && 
+                            (strpos($objectToDraw->name,'elv') > 0 || strpos($objectToDraw->name,'az') > 0)) {
+                                if ($objectToDraw->paramArgs != $this->defaults) $aPanel->args .= ',';
+                                $aPanel->args .= '/LIN';
+                        }
+                        $paramList[] = $aPanel->object; 
+ 
+                    } 
+                    $allPanels[] = $aPanel;
+                   }
+                } //else
+            } //foreach ($panels as $panel)
+
+            //Now write everything into request file
+            fwrite($this->request,count($allPanels).PHP_EOL);
+        
+            foreach ($allPanels as $aPanel) { 
+                fwrite($this->request, 
+                        $aPanel->object.' '.$aPanel->XPmin.' '.$aPanel->YPmin.' '.$aPanel->XPmax.' '.$aPanel->YPmax.' '.
+                        $aPanel->Xmin.' '.$aPanel->Xmax.' '.$aPanel->Ymin.' '.$aPanel->Ymax.' '.$aPanel->args.PHP_EOL); 
+            }
+
+            $this->nObjects = count($allPanels);
+
+            // Finish request file by StartTime and TimeInterval if ONE time only
+            if (!$isMulti) {
+                $StartTime = $this->getDdTime($this->obj->startDate);
+                $TimeInt =  $this->getDdInterval();
+                fwrite($this->request,$StartTime.PHP_EOL);
+                fwrite($this->request,$TimeInt.PHP_EOL); 
+            } 
+            fclose($this->request); 
+            
+            return $paramList;
+        }
+
+        /*
+        *  Arguments parser
+        */ 
+        protected function getColor($value) {
+
+            switch ($value) {
+               case  'black' :  return 'COLOR = !dnc-1'; 
+               case  'red'   :  return 'COLOR = !dnc-2';
+               case  'orange'   :  return 'COLOR = !dnc*190/256';
+               case  'yellow'   :  return 'COLOR = !dnc*160/256';
+               case  'green' :  return 'COLOR = !dnc*80/256';   
+               case  'light-green' :  return 'COLOR = !dnc*100/256';
+               case  'light-blue'  :  return 'COLOR = !dnc*40/256'; 
+               case  'blue'  :  return 'COLOR = !dnc*15/256'; 
+               default:         return 'COLOR = !dnc-1';
+           }
+        }
+
+        /*
+        *   Arguments parser
+        */ 
+  protected function parseArguments($args)
+        {
+            $argArr = explode('&',$args);
+            foreach ($argArr as $key => &$arg) {
+                $temp = explode('=', $arg);
+                //translate some arguments
+                if ($temp[1] == 'no') unset($argArr[$key]);
+                if ($temp[1] == 'yes') $arg = '/'.$temp[0];
+                if ($temp[0] == 'Scale') $arg = '/'.$temp[1];
+                if ($temp[0] == 'RefFrame') $arg = 'FRAME="'.$temp[1].'"';
+                if ($temp[0] == 'OrbitPresentation') $arg = '/'.$temp[1];
+
+                if ($temp[0] == 'Spacecraft') {
+                                    $arg = '/'.$temp[1];
+                                    $this->makeOrbitParam($temp[1]);
+                }
+
+                if ($temp[0] == 'SW_Monitor') {
+                                    $arg = '/'.$temp[1];
+                                    $this->makeSWMonitorParam($temp[1]);
+                }
+
+                if ($temp[0] == 'Color') {
+                            $arg = $this->getColor($temp[1]);                                    
+                }
+                if ($temp[0] == 'Channel' && ( $temp[1] == 'spectrogram' || $temp[1] == 'stack_plot')) unset($argArr[$key]); 
+                if ( ($temp[0] == 'anode' || $temp[0] == 'channel') && $temp[1] == 'all') unset($argArr[$key]);
+
+                if ($temp[0] == 'Symbol') {
+                                if ($temp[1] == '0') $arg = 'PSYM = -3';
+                                else $arg = 'PSYM = '.$temp[1];
+                } 
+// if ($temp[0] == 'energyCB') $arg = '/enaverage';
+        //       if ($temp[0] == 'anodeCB') $arg = '/anaverage';
+    }
+
+            $argArrModif = array_values($argArr);
+            return implode(',',$argArrModif);
+}
+
+        /*
+        *  Scatter Arguments parser
+        */ 
+        protected function parseScatterArguments($args)
+        {
+            $argArr = explode('&',$args);
+    
+            foreach ($argArr as $key => &$arg) {
+                
+                $temp = explode('=', $arg);
+                if ($temp[0] != 'Color' && $temp[0] != 'Symbol') unset($argArr[$key]);
+
+                if ($temp[0] == 'Color') {
+                                            $arg = $this->getColor($temp[1]);   
+                }
+                if ($temp[0] == 'Symbol') {
+                                            if ($temp[1] == '0') $arg = 'PSYM = -3';
+                    else $arg = 'PSYM = '.$temp[1];
+                }    
+            }        
+            $argArrModif = array_values($argArr);
+            if (count($argArrModif) > 0) return ','.implode(',',$argArrModif); 
+                    else return ''; 
+        }
+
+        /*
+        *  Simu Arguments parser
+        */ 
+        protected function parseSimuArguments($args)
+        {
+            $argArr = explode('&',$args);
+            
+            $arguments = array();
+            foreach ($argArr as $key => &$arg) {
+                
+                $temp = explode('=', $arg);
+                
+                $arguments[$temp[0]] = $temp[1];
+            }        
+            return $arguments; 
+        }
+
+
+    /*
+    *  put down list of time tables (tt) and current table (current)
+    */   
+        protected function prepareTimeTablePlot($dir) 
+        {
+            //set time from first time table first interval
+            $ttMgr = new TimeTableMgr();      
+            $timeTables = $this->obj->timeTables;
+        //    $firstTable = $timeTables[0];
+        //    $tt = $ttMgr->loadIntervalsFromTT($firstTable->id);
+        //    $intervals = $tt['intervals']; 
+            $offset = 0;  
+            $file = fopen($dir.'/tt', 'w');
+            foreach ($timeTables as $timeTable) {
+                $ttType = (substr($timeTable->id,0,6) == 'shared') ?  'sharedtimeTable' : 'timeTable'; 
+                $tt = $ttMgr->loadIntervalsFromTT($timeTable->id, $ttType);
+                $intervals = $tt['intervals'];
+                $totalCount = $tt['totalCount'];
+                fwrite($file,json_encode($timeTable).PHP_EOL); 
+                if ($offset == 0) {                        
+                    $this->totalInt = $totalCount;
+                    $this->ttName = $timeTable->timeTableName;
+                    $this->currentInt = 1;
+                    $ff = fopen($dir.'/current', 'w');
+                    fwrite($ff, $this->totalInt.PHP_EOL);   
+                    fwrite($ff, json_encode($timeTable));     
+                    fclose($ff);
+                    $firstInterval = $intervals[0];
+                }
+                $offset += $totalCount;
+            }
+            fclose($file);
+            //save current tt object (first one)  and current time interval (first one)            
+            return $firstInterval;
+        }
+
+        
+        /*
+        *  put down list of time tables (tt) and current table (current)
+        */   
+        protected function getFirstTimeTableInterval() 
+        {
+            //set time from first time table first interval
+            $ttMgr = new TimeTableMgr();      
+            $timeTables = $this->obj->timeTables;
+            
+            $firstTable = $timeTables[0];
+            //    $tt = $ttMgr->loadIntervalsFromTT($firstTable->id);
+            $ttType = (substr($firstTable->id,0,6) == 'shared') ?  'sharedtimeTable' : 'timeTable'; 
+            $tt = $ttMgr->loadIntervalsFromTT($firstTable->id, $ttType); 
+            $intervals = $tt['intervals']; 
+            //save current tt object (first one)  and current time interval (first one)
+            $firstInterval = $intervals[0];
+            return $firstInterval;
+        }
+/******************************************************************************
+ *  END:  Plot specific functions
+*******************************************************************************/
+
+        /*
+        * Change NAME in JSON resource
+        */
+        protected function renameInResource($name, $id) {
+
+                    $obj = json_decode(file_get_contents(USERREQDIR.$id));
+                    $obj->name = $name;
+
+                    $file = fopen(USERREQDIR.$id, 'w');
+                    fwrite($file, json_encode($obj));
+                    fclose($file);                
+            }
+
+ 
+        /*
+        *    Make new request/condition resource file (JSON!!) and add it to content file
+        *    ATTENTION : it is not DD parameter!!!
+        */ 
+protected function createParameter($p)
+        {
+            if ($this -> objectExistsByName($p->name)) {
+                        $p->id  = $this->getObjectIdByName($p->name);
+                        $this -> deleteObject($p);
+                    }
+                    $this->id = $this->setId(); 
+                    if (!$this->id) return array('error' => ID_CREATION_ERROR);
+
+            //if alias exists, replace alias name by parameter name        
+            if (file_exists(USERWSDIR.'Alias.xml')) {
+                            if ($this->type == 'condition') {
+                                    $p->expression =  $this->resetAlias($p->expression); 
+                                    $info = $p->expression;
+                            }
+                            else if ($this->type == 'request') {
+                                    $info = '';
+                                    for ($i=0; $i < count($p->children); $i++) {
+                                            for ($j=0; $j < count($p->children[$i]->children); $j++) {
+                                                    $p->children[$i]->children[$j]->name =  $this->resetAlias($p->children[$i]->children[$j]->name);
+                                                    $info = $info.' '.$p->children[$i]->children[$j]->name;
+                                            }
+                                    }
+                            }    
+                }
+    
+                $this->descFileName = USERREQDIR.$this->id;
+                $p->id = $this->id;
+                // save request as json  
+                $file = fopen($this->descFileName, 'w');
+                fwrite($file, json_encode($p));
+                fclose($file);
+
+                $this -> addToContent($p, $folder);
+
+            return array('id' => $this->id, 'info' => $info);
+}
+        
+        /*
+        *        Delete request/condition JSON file
+        */
+        protected function deleteParameter($id){
+
+                if (file_exists(USERREQDIR.$id)) 
+                                unlink(USERREQDIR.$id);
+        }
+
+        /*
+        * TODO       Check file JSON objects differ in names only
+        */
+protected function renameOnly($p) {
+
+return false;
+        }
+
+        /*
+        * Add header in download result
+        */  
+public function addHeaderInDownloadResult($opts)
+{
+    //remove previous header if it exist
+    if (file_exists('header.txt'))
+    unlink('header.txt');
+   
+//use ParamsInfoMgr to get infor about parameters
+$infoMgr = new ParamsInfoMgr();
+   
+$params = explode(' ',$opts['params']);
+
+if (strcmp($opts['header'],'0') === 0)
+{
+                            //header in data files
+  if (strcmp($opts['structure'],'2') === 0)  
+  {
+    //one file by param
+    foreach ($params as $param)
+   {
+    $filenames = glob(strtoupper($param)."*.txt");
+    if (count($filenames) === 0) 
+                            continue;
+     foreach ($filenames as $filename) {
+        //parameter info
+        $infos = $infoMgr->GetParamInfo($param);
+        $str = $infoMgr->ParamInfosToString($infos);
+        system("sed -i '1i\\#".$str."' '".$filename."'");
+        //time info
+        $str = "Time Format : ".$opts['timeformat'];
+        
+        if (strcmp($opts['milli'],'1') === 0)
+        {
+        if (strcmp($opts['timeformat'],'YYYY-MM-DDThh:mm:ss') === 0)
+            $str .= ".mls";
+        else
+            $str .= " mls";  
+        }
+        
+        system("sed -i '1i\\#".$str."' '".$filename."'");
+                                       }
+   }
+  }
+  else
+  {
+    //all in one file
+    $str = "";
+   
+    foreach ($params as $param)
+        {
+        $infos = $infoMgr->GetParamInfo($param);
+                                    $str .= ('#'.$infoMgr->ParamInfosToString($infos).PHP_EOL);
+        }
+                            
+    $filenames = glob("ALL*.txt");
+    if (count($filenames) > 0) 
+     foreach ($filenames as $filename)
+    {
+      $ex_str = explode(PHP_EOL,$str);
+       
+      //parameters info
+      for ($i = sizeof($ex_str)-1; $i >= 0 ; $i--)
+       system("sed -i '1i\\".$ex_str[$i]."' '".$filename."'");
+     //time info
+     $str = "Time Format : ".$opts['timeformat'];
+     
+     if (strcmp($opts['milli'],'1') === 0)
+    {
+      if (strcmp($opts['timeformat'],'YYYY-MM-DDThh:mm:ss') === 0)
+        $str .= ".mls";
+      else
+        $str .= " mls";  
+    }
+     
+     system("sed -i '1i\\#".$str."' '".$filename."'");
+                                   if (strpos($filename, "NONSTANDARD_SAMPLING") === false) {
+                                    //sampling info
+                                    $str = "Sampling Time : ".$opts['sampling'];
+                                    system("sed -i '1i\\#".$str."' '".$filename."'");
+                                    }
+   }
+  }
+}
+else
+{
+ //header in separate file
+ $header = fopen("header.txt","w");
+ if ($opts['structure'] != '2')
+ {
+ 
+  //all in one file- add sampling info
+   fprintf($header,"#Sampling Time : ".$opts['sampling'].PHP_EOL);
+ }
+ //time info
+  $str = "#Time Format : ".$opts['timeformat'];
+  
+  if (strcmp($opts['milli'],'1') === 0)
+  {
+    if (strcmp($opts['timeformat'],'YYYY-MM-DDThh:mm:ss') === 0)
+     $str .= ".mls";
+   else
+                                $str .= " mls";  
+                        }
+  
+                        //fprintf($header,$str.PHP_EOL);
+                        foreach ($params as $param)
+                        {
+                            //param info
+                            $infos = $infoMgr->GetParamInfo($param);
+                            $str = $infoMgr->ParamInfosToString($infos);
+                            fprintf($header,"#".$str.PHP_EOL);
+                        }
+                    }
+        }
+  
+
+        public function compressDownloadResult($id,$newName,$opts)
+        {
+                if ($opts['downloadSrc'] == '2')
+                    $ext = "fits";
+                else
+                {
+                    if (strcmp($opts['fileformat'],'vot') === 0)
+                        $ext = "xml";
+                    else
+                        $ext = "txt";
+                }
+                    
+                if (strncmp($opts['compression'],'zip',3) === 0)
+                {
+                    system("zip -Dj ".$id." *.".$ext." 1> /dev/null 2> /dev/null");
+                    if (strcmp($newname,$id) != 0)
+                        rename($id.'.zip',$newName.'.zip');
+                }
+                else 
+                {
+                    exec("tar -czf ".$id.".tar.gz  *.".$ext);
+                 //   exec("gzip ".$id.".tar");
+
+                    if (strcmp($newname,$id) != 0)
+                        rename($id.'.tar.gz', $newName.'.tar.gz');
+                }
+                                
+                foreach (glob("*.".$ext) as $file) 
+                    unlink($file);
+        }
+
+ 
+        public function generateVOTableFromDownloadResult($id,$newName,$inputCompressed = true,$canBeAlreadyVOTable = false)
+        {
+                $resultDir = USERWORKINGDIR.$id.'_/';
+                $opts = $this->getPrintOptions($resultDir);
+                
+                $votMgr = new BuildVOTable();
+                        return $votMgr->downloadResultToVOTable($id,$newName,$opts,$inputCompressed,$canBeAlreadyVOTable);
+        }
+ 
+        /*
+         *      Renaming and zipping of PDF/PS
+        */
+        public function postProcessing($id, $newName) {
+
+                switch ($this->type) {
+                    case 'download' :
+                            $resultDir = USERWORKINGDIR.$id.'_/';
+                            
+                            $opts = $this->getPrintOptions($resultDir);
+                            
+                            if ((strcmp($opts['downloadSrc'],'2') !== 0) && (strcmp($opts['fileformat'],'vot') !== 0))
+                            {
+                                //add header
+                                $this->addHeaderInDownloadResult($opts);
+                            }
+                            
+                            //generate votable if necessary
+                            if ((strcmp($opts['fileformat'],'vot') === 0))
+                                $this->generateVOTableFromDownloadResult($id,$newName,false,false);
+                                
+                            //compression
+                            $this->compressDownloadResult($id,$newName,$opts);
+                                
+                    break;
+                case 'condition' :   
+                                break;
+                case 'request' :
+                            $resultDir = USERWORKINGDIR.$id.'_/';
+                            switch ($this->obj->format) {                            
+                                case 'PS' :
+                                    if (file_exists($resultDir.'idl.ps')) {
+                                        rename($resultDir.'idl.ps',$resultDir.$newName.'.ps');
+                                        exec('gzip '.$resultDir.$newName.'.ps'); 
+                                    }
+                                break;
+                                case 'PDF' : 
+                                    if (file_exists($resultDir.'idl.ps'))  
+                                                exec('ps2pdf -sPAPERSIZE=a4 '.$resultDir.'idl.ps');
+                                    unlink($resultDir.'idl.ps');
+                                    rename($resultDir.'idl.pdf',$resultDir.$newName.'.pdf');
+                                break;
+                                default : 
+                            } 
+                        break;
+
+                default :
+                }
+            }
+
+        /*
+        * Get real IDL plot settings : !x.window & !y.window for each panel
+        */
+        protected function getPlotSettings(){
+
+            if (!file_exists('plotSettings')) return null;
+            $settings = file('plotSettings');
+            $plotSetting = new stdClass();
+                    
+            for ($i = 0; $i < count($settings)/2; $i++) {
+                $xArr = explode(' ',trim($settings[$i*2]));
+                $yArr = explode(' ',trim($settings[$i*2+1]));
+                $plotSetting->xmin =  $xArr[0];
+                $plotSetting->xmax =  $xArr[count($xArr)-1];
+                $plotSetting->ymin =  $yArr[0];
+                $plotSetting->ymax =  $yArr[count($yArr)-1];
+                $plotSettings[$i] = $plotSetting;
+            }
+            return $plotSettings;
+        }
+
+/******************************************************************************
+*  Start:  Print specific functions
+******************************************************************************/ 
+
+        protected function makePrintRequest($dir) 
+        {
+            $ff = fopen($dir.'print.res','w');
+            foreach ($this->obj->list as $param) {
+                if ((strncmp($param, "impex___", 8) === 0) || (strncmp($param, "spase___", 8) === 0)){
+                    $argumentsByParam = $this->cutSimuArgs($param);
+                            foreach ($argumentsByParam as $key => $value) $param = $key;
+                }
+                fwrite($ff, $this->param2dd_print($param).' ');
+            }
+            if ($this->obj->structure == '2') {
+                fwrite($ff, PHP_EOL.'multi -1'.PHP_EOL);
+            }
+            else {
+                fwrite($ff, PHP_EOL.'uniq '.$this->obj->sampling.PHP_EOL);
+            }
+            fwrite($ff,'none'.PHP_EOL);
+            $timeFormatNumber = $this->obj->milli ? 
+                                $this->timeFormat[$this->obj->timeformat] + 4 : $this->timeFormat[$this->obj->timeformat];
+            fwrite($ff, $timeFormatNumber.PHP_EOL);
+            fclose($ff);
+        }
+      
+        protected function createPrintRequestTime($dir) 
+        {
+            $ff = fopen($dir.'print.list','w');
+            fwrite($ff,$this->getDdTime($this->obj->startDate).PHP_EOL);
+            fwrite($ff,$this->getDdInterval().PHP_EOL);
+
+            fclose($ff);
+        }
+
+        protected function createPrintPostOptions($dir) 
+        {
+            $ff = fopen($dir.'print.opt','w');
+            fwrite($ff,$this->obj->compression.PHP_EOL);
+            fwrite($ff,$this->obj->fileformat.PHP_EOL);
+            fwrite($ff,$this->obj->header.PHP_EOL);
+            fwrite($ff,$this->obj->structure.PHP_EOL);
+            foreach ($this->obj->list as $param)
+            {
+ 
+              if ((strncmp($param, "impex___", 8) === 0) || (strncmp($param, "spase___", 8) === 0)){
+		$argumentsByParam = $this->cutSimuArgs($param);
+		foreach ($argumentsByParam as $key => $value) $param = $key;
+	    }
+ 
+                    if ($this->obj->downloadSrc == '2')
+                        fwrite($ff, $param->url.' ');
+                    else
+                        fwrite($ff, $param.' '); //data
+            }
+            fwrite($ff,PHP_EOL.$this->obj->sampling.PHP_EOL);
+            fwrite($ff,$this->obj->timeformat.PHP_EOL);
+            if ($this->obj->milli)
+                fwrite($ff,'1'.PHP_EOL);
+            else
+                fwrite($ff,'0'.PHP_EOL);
+            fwrite($ff,$this->obj->downloadSrc.PHP_EOL);
+            fclose($ff);
+        }
+
+        protected function getDateArray()
+        {
+            if ($this->obj->startDate){
+                $matches=array();
+                $tmpArr = explode("T", $this->obj->startDate);
+                $dateArr = explode("-", $tmpArr[0]);
+                $timeArr = explode(":", $tmpArr[1]);
+                preg_match("/([0-9]+)/", $timeArr[2], $matches);
+
+                return array("success" => true, 
+                            "year"  => ($dateArr[0]),
+                            "month" => ($dateArr[1]),
+                            "day"   => ($dateArr[2]),
+                            "hour"  => ($timeArr[0]),
+                            "min"   => ($timeArr[1]),
+                            "sec"   => ($matches[1])
+                );
+            }
+            else
+                return array('success' => false);    
+        }
+
+        protected function getStopDate()
+        {
+            $date = $this->getDateArray ();
+            return gmdate("Y-m-d\TH:i:s\Z", mktime($date['hour'] + intval($this->obj->durationHour), $date['min']+ intval($this->obj->durationMin), $date['sec']+ intval($this->obj->durationSec), $date['month'], $date['day']+ intval($this->obj->durationDay), $date['year'])); 
+        }
+
+
+/******************************************************************************
+ *  End:  Print specific functions
+*******************************************************************************/  
+
+/*****************************************************************
+*                           PUBLIC FUNCTIONS
+*****************************************************************/
+
+        public function getPrintOptions($dir) 
+        {
+                $postOptions = file($dir.'print.opt');
+                return array('compression'  => trim($postOptions[0]),
+                            'fileformat'   => trim($postOptions[1]),
+                            'header'       => trim($postOptions[2]),
+                            'structure'    => trim($postOptions[3]),
+                            'params'       => trim($postOptions[4]),
+                            'sampling'     => trim($postOptions[5]),
+                            'timeformat'   => trim($postOptions[6]),
+                            'milli'        => trim($postOptions[7]),
+                            'downloadSrc' => trim($postOptions[8]));
+        }
+
+        public function updatePrintRequestTime($dir, $interval) 
+        {
+                $ff = fopen($dir.'print.list','w');
+                fwrite($ff,$this->getDdTime($interval['start']).PHP_EOL);
+                fwrite($ff,$this->calculateTimeInt($interval).PHP_EOL);
+
+                fclose($ff);
+        }
+        
+        public function updatePrintSampling($dir, $sampling) 
+        {
+                $ff = file($dir.'print.res');
+                $newSampling = explode(' ',$ff[1]);
+                $ff[1] = $newSampling[0].' '.$sampling.PHP_EOL;
+
+                file_put_contents($dir.'print.res',$ff);
+        }
+
+        public function setZoomStart($interval)
+        {
+            if (!$interval) {
+                $time = strtotime($this->obj->startDate);
+                $dt = $this->obj->durationDay*86400 +
+                                    $this->obj->durationHour*3600 +
+                                    $this->obj->durationMin*60 + $this->obj->durationSec;
+        
+                $stopTime = gmdate("Y-m-d\TH:i:s",$time+$dt); 
+                $interval['start'] = $this->obj->startDate;
+                $interval['stop'] = $stopTime;
+            }
+            $ff = fopen('zoom_intervals','w');
+            fwrite($ff, json_encode($interval).PHP_EOL);
+            fclose($ff);  
+        }
+
+        /*
+        * Launch process in bkgr; return PID
+        */
+        public function background($Command)
+        {
+            $PID = exec("$Command 1> /dev/null 2> /dev/null & echo $!");
+            if ($PID != null)  return $PID;
+
+            return false;
+        }
+
+        /* Stop Time from StartTime and Interval*/ 
+        public function convertTime($obj)
+        {
+
+                $time = strtotime($obj->startDate);
+
+                $interval = $obj->durationDay*86400 +
+                            $obj->durationHour*3600 +
+                            $obj->durationMin*60 + $obj->durationSec;
+                $stopTime = gmdate("Y-m-d\TH:i:s", $time+$interval);
+                $obj->stopDate = $stopTime;
+
+                return $obj;
+        }
+
+        /*
+        * Update Time in request 
+        */
+        public function updateTime($requestName, $interval) 
+        {
+            $requestFile = file($requestName); 
+            $request = fopen($requestName,'w');
+
+            $nObjects = 1 + $requestFile[0]; 
+
+            for ($k = 0; $k < $nObjects; $k++) fwrite($request,$requestFile[$k]);
+            
+            fwrite($request,$this->getDdTime($interval['start']).PHP_EOL);
+            fwrite($request,$this->calculateTimeInt($interval).PHP_EOL);
+
+            fclose($request);          
+        }
+
+        //From Start Time and Stop Time 
+        public function createSearchRequestTime2($interval) 
+        {
+                $this->request = fopen(USERWORKINGDIR.'search.list','w');
+
+                fwrite($this->request,$this->getDdTime($interval['start']).PHP_EOL);
+                fwrite($this->request,$this->calculateTimeInt($interval).PHP_EOL);
+
+                fclose($this->request);
+        }
+
+        //TODO 
+        public function markAsUndefined($paramId)
+        {
+            $n_requests = 0;
+
+            return $n_requests;
+        }
+
+        /*
+        *   Get Object JSON!!! (request or condition) into Edit
+        */ 
+        public function getObject($id) 
+        {
+                    if (!file_exists(USERREQDIR.$id)) return array('error' => NO_OBJECT_FILE);
+                
+                    if (!($objToGet = $this->contentDom->getElementById($id))) return array('error' => NO_SUCH_ID);
+                    $obj = json_decode(file_get_contents(USERREQDIR.$id));
+                    //if alias exists, replace parameter name by alias name        
+                    if (file_exists(USERWSDIR.'Alias.xml')) {
+                        if ($this->type == 'condition') {
+                                $obj->expression =  $this->setAlias($obj->expression); 
+                        }
+                        else if ($this->type == 'request') {
+                                for ($i=0; $i < count($obj->children); $i++) {
+                                        for ($j=0; $j < count($obj->children[$i]->children); $j++) {
+                                                $obj->children[$i]->children[$j]->name =  $this->setAlias($obj->children[$i]->children[$j]->name);
+                                        }
+                                }
+                                //TODO Ajout des SCATTER
+                                // if $obj->children[$i]->plotType == "SCATTER" 
+                                //$obj->children[$i]->scatterParam->data->name pour 1 panel (bug si 2 panels devient $obj->children[$i]->scatterParam->data->data->name)
+                            }    
+                    }      
+                    //if Start Time - Stop Time
+                    if (!$obj->timeTables) $obj =  $this->convertTime($obj);    
+                return  $obj;
+        }
+
+        public function cachekiller()
+        {
+                $date = getdate();
+                $cachekiller = $date['mday'].$date['hours'].$date['minutes'].$date['seconds'];
+
+            return $cachekiller;
+        }
+
+        public function killPlot($tabId)
+        {
+                $tmpname =  'Plot'.$tabId;
+                
+                $resDirPng = USERWORKINGDIR.$tmpname.'_';
+                
+                if (!is_dir($resDirPng))
+                    return array('success' => false, 'message' => 'Cannot find workind directory');
+                    
+                touch($resDirPng."/cancelplot");
+        
+            return array('success' => true);
+        }
+      
+        public function killMultiPlot($tabIds)
+        {              
+            if (!is_dir(USERWORKINGDIR."CANCELPLOT")) 
+                                mkdir(USERWORKINGDIR."CANCELPLOT");
+
+            foreach ($tabIds as $tabId)    
+                    touch(USERWORKINGDIR."CANCELPLOT/".$tabId);
+        
+            return array('success' => true);
+        }
+
+
+        public function initResDir($tmpname)
+        {
+                $resDir = USERWORKINGDIR.$tmpname.'_/';
+
+                if (!is_dir($resDir)) {
+                        if (!mkdir($resDir, 0775)) 
+                            return array('success' => false, 'error' => 'can\'t create directory'); 
+                    }
+
+                if (!chdir($resDir)){
+                        return array('success' => false, 'error' => 'can\'t change directory');
+                    }
+
+            return array('success' => true, 'resdir' => $resDir);
+        }
+
+        /*
+        *  Try to estimate File Size from param size, time int and sampling
+        */
+        public function estimateOutputFileSize($obj, $ttInterval)
+        {
+            $timeConvert = array("s" => 1, "m" => 60, "h" => 3600);
+
+            if (!$obj) $obj = $this->obj;
+
+            $interval = $ttInterval ? $ttInterval : $obj->durationDay*86400 +
+                                                    $obj->durationHour*3600 +
+                                                    $obj->durationMin*60 + $obj->durationSec;
+
+            $infoMgr = new ParamsInfoMgr();
+
+            $multi = $obj->structure == 2;
+
+            $timeLength = $obj->milli ? 25 : 20;
+
+            $fileSize = $multi ? 0 : $timeLength;
+            $sampling_virtual = 60.0;
+            $size_virtual = 1;
+
+            foreach ($obj->list as $param) {
+
+                    $info = $infoMgr->GetParamInfo($param);
+
+                    if (!$info['success']) {
+                        $size = $size_virtual;
+                        $sampling = $sampling_virtual;
+                    } 
+                    else {
+                        // derived parameter
+                        if (strncmp(strtolower($param), 'ws_', 3) == 0) { 
+                            $size = 1;                                  
+                            if ($multi) {                                                                                
+                                    $sampling = $info['infos']['timestep']; 
+                                }                 
+                        }  
+                        // my data parameter
+                        else if (strncmp(strtolower($param), 'wsd_', 4) == 0) {                                 
+                            $size = $info['infos']['size'];
+                            $sampling = $info['infos']['minsampling'];                          
+                        }
+                        else {                                                                                     
+                            $codeinfo = $info['codeinfos'];
+                            $ddinfo = $info['ddinfos'];
+                            if ($codeinfo) {
+                                $size = $codeinfo['size'];
+                                $sampling = $codeinfo['minsampling']; 
+                            }
+                            else {
+                                $size = $ddinfo['parameter']['size'];
+                                $sampling = substr($ddinfo['dataset']['minsampling'], 0, -1);  
+                                $sampling *= $timeConvert[substr($ddinfo['dataset']['minsampling'], -1)];
+                            }
+                            // if component
+                            if (sscanf($param,"%[^'('](%d)",$par,$cstart) == 2) $size = 1;
+                        }
+                    }
+
+                    if ($multi) {
+                        $fileSize += $interval / $sampling * ($size * 13 + $timeLength); 
+                    }
+                    else {
+                        $fileSize += $size * 13;
+                    }                                   
+            }
+
+            if (!$multi) {
+                $fileSize *= $interval / $obj->sampling;
+            }
+        
+            if ($obj->fileformat === 'vot')
+                $fileSize *= 1.8;
+
+            return  $fileSize;
+        }
+      
+        /*
+        *   THE MAIN EXECUTE PART
+        */
+        public function execute($obj) 
+        {
+            $this -> setObject($obj);
+        
+            //TODO define user in AmdaAction constructor : unique SESSION_ID   
+            if (isset($obj->username) && isset($obj->password) && isset($obj->sessionID))
+            {
+                $dd = new WSUserMgr();
+                $dd->init($obj->username,$obj->password,$obj->sessionID);
+            }
+            else
+                $dd = new UserMgr();
+
+            //TODO error handling 
+            if (($res = $dd -> ddCheckUser()) != 0) {
+                if ($res == 156) 
+                    return array('error' => 'Your AMDA session is expired.<br/> Login please!');
+
+                return array('error' => 'ddLogin error: '.$res);
+                }
+
+            if ($dd->user == 'impex') {
+                if ($dd->getWsSize() > DISK_QUOTA * 100)
+                    error_log('Natacha! It is time to CLEAN UP IMPEX WS!',1,'nbourrel@irap.omp.eu');
+            }
+            else {
+                // check disk space
+                if ($dd->getWsSize() > DISK_QUOTA)
+                    return array('error' => 'Please clean up your workspace.<br/>No more space is available');
+            }
+
+            $isMulti =  $this->obj->timeTables ? true: false; 
+
+            //  AMDA Statistics
+            $amdaStat = new AmdaStats($dd->user);
+        
+            chdir(USERWORKINGDIR);
+                    
+            // temp name for output    
+            $cachekiller = $this->cachekiller();
+            $text = 'result';
+            if ($this->obj->name) $text = $this->obj->name;
+            if ($this->obj->output) $text = $this->obj->output;
+            if ($this->obj->outputName) $text = $this->obj->outputName;
+                
+            $newName = $text.'_'.$cachekiller;
+
+            // temp name for output
+            $tmpname = $this->getRandomName();
+            $isPNG = false;
+
+            if ($this->obj->format && $this->obj->format == 'PNG') 
+            {
+                        $isPNG = true;
+                        $tmpname =  'Plot'.$this->obj->tabId;
+            }
+            
+            //TODO organize better : functions, classes? 
+            switch ($this->type) 
+            {
+                    // DD Search
+                    case 'condition':
+                        $tmpname =  $newName;
+                        //if alias exists, replace alias name by parameter name
+                        if (file_exists(USERWSDIR.'Alias.xml')) 
+                        {
+                            $obj->expression = $this->resetAlias($obj->expression);
+                        }
+                        $realVars = $this -> makeSearchParams(); 
+                    
+                        if ($amdaStat->success) 
+                            $amdaStat->addTask('mining', $dd->user, $realVars);
+
+                        $this -> createSearchRequest($realVars, $tmpname);
+                        
+                        if ($this->paramsWithoutCode) 
+                            $this->makeLocalParams($realVars);
+                
+                        if ($isMulti) {      
+                            $cmd = 'php '.CLASSPATH.'../MultiRequestMgr.php \''.json_encode($this->obj).'\' \''.$tmpname.'\' \''.$dd->user.'\' \''.$dd->IP.'\''; 
+                        }
+                        else {
+                            $this -> createSearchRequestTime();            
+                            $cmd = DDBIN."DD_Search ".$dd->user." ".$dd->IP." ".DDPROJECT." ".DDPROJLIB;
+                        }
+                        break;
+                    // DD Print
+                    case 'download':
+
+                        if ($this->obj->downloadSrc == 0) {
+                            if (file_exists(USERWSDIR.'Alias.xml')) {
+                                    foreach($this->obj->list as &$param)
+                                        $param = $this->resetAlias($param);
+                            } 
+                            $isSimu = false;
+                            foreach ($this->impex_prefix as $impex_prefix) if (strpos($param, $impex_prefix) !== false) $isSimu = true;
+                            
+                            if ((!$isMulti) || (!$isSimu)) {
+                                $outputFileSize = $this->estimateOutputFileSize();
+                                if ( $outputFileSize > DISK_QUOTA ) { //DISK_QUOTA
+                                    $outputFileSize /= 1024*1024;
+                                    return array('error' => "Sorry! Requested file is too large: ".$outputFileSize."MB 
+                                                        <br/>Decrease requested time interval" );
+                                }
+                            }
+                        }
+
+                        $res = $this->initResDir($tmpname);
+                        if (!$res['success'])
+                                return $res;
+
+                        $resDir = $res['resdir'];
+                    
+                        switch ($this->obj->downloadSrc)
+                        {
+                            case '2' : //fits images
+
+                                $this->createPrintPostOptions($resDir);
+                                $cmd = '';
+                                foreach ($this->obj->list as $file) {
+                                    if ($cmd != '')
+                                        $cmd .= "|";
+                                    $cmd .= "wget -O ".$file->name." \"".$file->url."\"";
+                                }
+                                break;
+
+                            case '0' : //data
+
+                                if ($amdaStat->success)                        
+                                    $amdaStat->addTask('print', $dd->user, $obj->list);
+                                
+                                if ($this->paramsWithoutCode) 
+                                        $this->makeLocalParams($obj->list);
+                                if ($this->spectraParams) 
+                                        $this->makeSpectraParams($obj->list);
+                                if ($this->dataBases) 
+                                        $this->makeRemoteParams($obj->list); 
+                                    
+                                $this->makeWsParams($obj->list);
+
+                                $wsdVars = $this->getWsdVars($obj->list);
+                                if ($wsdVars) $this->makeWsdParams($wsdVars);
+                                
+                                 // if 'impex' in $realVars upload simulation data 
+                                $impexVars = $this->getImpexVars($obj->list);
+                                $imp = array('realVars'=> $impexVars, 'fromWS' => true);
+                                if ($impexVars) $this->makeWsrParams($imp);
+                                
+                                $this->makePrintRequest($resDir);  
+                                $this->createPrintPostOptions($resDir);
+
+                                if ($isMulti) {     
+                                    $cmd = 'php '.CLASSPATH.'../MultiRequestMgr.php \''.json_encode($this->obj).'\' \''.$tmpname.'\' \''.$dd->user.'\' \''.$dd->IP.'\' \''.$newName.'\''; 
+                                }
+                                else
+                                {                            
+                                    $this->createPrintRequestTime($resDir); 
+                                    $cmd = DDBIN.'DD_Print '.$dd->user.' '.$dd->IP.' '.DDPROJECT.' '.DDPROJLIB; 
+                                }
+                               break;
+                        }
+                        break;
+                    // DD Plot / DD PS
+                    case 'request':
+                    //if alias exists, replace alias name by parameter name
+                        if (file_exists(USERWSDIR.'Alias.xml')) 
+                        {
+                            for ($i=0; $i < count($obj->children); $i++) 
+                            {
+                                    for ($j=0; $j < count($obj->children[$i]->children); $j++) 
+                                    {
+                                        $obj->children[$i]->children[$j]->name =  $this->resetAlias($obj->children[$i]->children[$j]->name);
+                                    }
+                            }
+                        }
+
+                        // For PNG, PS, PDF  
+                        $res = $this->initResDir($tmpname);
+                        if (!$res['success'])
+                                    return $res;
+                        $resDirPng = $res['resdir'];
+
+                        if (file_exists($resDirPng."/cancelplot"))
+                                    unlink($resDirPng."/cancelplot");
+
+                        // general Plot settings : DD_request.res
+                        $this -> setPlot();
+ 
+                        // amda statistics 
+                        if ($amdaStat->success) {
+                            $varArray = array();
+                            foreach ($this->obj->children as $panel)  
+                                foreach ($panel->children as $plotVar)                           
+                                                $varArray[] = $plotVar->text;                     
+                            $amdaStat->addTask('plot', $dd->user, $varArray);   
+                        }
+
+                        // panels definitions  with/without time
+                        $realVars = $this->setPlotObjects($this->obj->children, $tmpname);                               
+                        if ($this->paramsWithoutCode) $this->makeLocalParams($realVars);
+                       
+                        $this->makeWsParams($realVars);
+
+                        $wsdVars = $this->getWsdVars($realVars);
+                        if ($wsdVars) $this->makeWsdParams($wsdVars);
+
+                 //       if 'impex' in $realVars upload simulation data
+                        $impexVars = $this->getImpexVars($realVars); 
+                        $imp = array('realVars'=> $impexVars, 'fromWS' => false);
+                        if ($impexVars) $this->makeWsrParams($imp);
+                   
+                        //Interactive session : create special folder
+                        if ($this->obj->format == 'PNG') 
+                        {                       
+                            // Time table plot
+                            if ($isMulti) 
+                            {
+                                $interval = $this->prepareTimeTablePlot($resDirPng);
+                                $this->updateTime('./'.$tmpname, $interval); //update/add time
+                                $this->setZoomStart($interval);  
+                            }
+                            else 
+                                $this->setZoomStart();
+                                $cmd = DDBIN."DD_Plot ".$tmpname." ".$dd->user." ".$dd->IP." ".DDPROJECT." ".DDPROJLIB;
+                        }
+                        else 
+                        { 
+                            if ($isMulti) {   
+                                $cmd = 'php '.CLASSPATH.'../MultiRequestMgr.php \''.json_encode($this->obj).'\' \''.$tmpname.'\' \''.$dd->user.'\' \''.$dd->IP.'\' \''.$newName.'\'';  
+                            }
+                            else {                         
+                                $cmd = DDBIN."DD_PS ".$tmpname." ".$dd->user." ".$dd->IP." ".DDPROJECT." ".DDPROJLIB;  
+                            } 
+                        }  
+                        break;
+
+                    default :
+                        return array('error' => $this->type." NOT IMPLEMENTED YET");
+                }
+                $pid =  $this->background($cmd);    
+                //TODO KILL method for real TIMEOUT
+                $jobMgr = new JobsMgr();
+                $cyclesNumber = $isPNG  ? PLOT_CYCLES_NUMBER: JOB_CYCLES_NUMBER;  
+            
+                $reqStart = time();
+            
+                //TODO return ERRORS also
+                for ($cycle = 0; $cycle < $cyclesNumber; $cycle++) 
+                {
+                        sleep(JOBTIMEOUT); 
+                        
+                        $reqTime = time() - $reqStart;
+                        
+                        if ($reqTime > $cyclesNumber*JOBTIMEOUT)
+                        break;
+
+                        if ( $isPNG && is_dir(USERWORKINGDIR."CANCELPLOT") ) {
+                        if (file_exists(USERWORKINGDIR."CANCELPLOT/".$this->obj->tabId))
+                                        rename(USERWORKINGDIR."CANCELPLOT/".$this->obj->tabId,$resDirPng."/cancelplot");
+
+                        if (count(scandir(USERWORKINGDIR."CANCELPLOT")) == 2) rmdir(USERWORKINGDIR."CANCELPLOT");
+
+                        }
+                        if ( $isPNG && file_exists($resDirPng."/cancelplot"))
+                        {
+                            if (!$jobMgr->isFinished($pid))
+                            { 
+                                $cmd = 'kill -9 '.$pid;
+                                exec($cmd);
+                            }
+
+                            foreach (glob($resDirPng.'/*') as $filename)
+                                unlink($filename);
+
+                            rmdir($resDirPng);
+                        
+                        return array('error' => "Plot canceled!");
+                        }
+
+                        if ($jobMgr->isFinished($pid))
+                        {
+                            if (!$isPNG) $newId = $jobMgr->addJob($this->obj, 0, $tmpname, $newName);
+
+                            if ($tmpname !== $newName) $this->postProcessing($tmpname, $newName);
+                            $arrayMain = array('pid' => '0', 'name' => $newName, 'id' => $tmpname);
+                                        
+                            if ($isPNG) 
+                            { 
+                                $outputName = $this->obj->outputName? $this->obj->outputName : $tmpname;  
+                                rename($tmpname.'.png', $outputName.'_'.$cachekiller.'.png');
+                                $arrayMain['name'] = $outputName.'_'.$cachekiller;
+                            
+                                $plotSettings = $this->getPlotSettings();
+                                $arrayMain['children'] = $plotSettings; 
+                                $arrayMain['tabId']  =  $this->obj->tabId; 
+                                // PNG plotting of time tables
+                                if ($isMulti) 
+                                {
+                                    $arrayTable = array('startDate' => $interval['start'],
+                                                        'stopDate' => $interval['stop'], 
+                                                        'intervalN' =>  $this->currentInt, 
+                                                        'totalN' => $this->totalInt,
+                                                        'tableName' => $this->ttName);      
+                                    return array_merge($arrayMain, $arrayTable);
+                                }
+                            }
+                        return $arrayMain;  
+                        }
+                } 
+
+                // Add Job in BATCH MODE        
+                $newId = $jobMgr->addJob($this->obj, $pid, $tmpname);
+
+                return array('pid' => $pid, 'id' => $newId, 'rawname' => $tmpname);                
+        }
+}
+?>
diff --git a/php/classes/SimuArgsMgr.php b/php/classes/SimuArgsMgr.php
new file mode 100644
index 0000000..cde9305
--- /dev/null
+++ b/php/classes/SimuArgsMgr.php
@@ -0,0 +1,144 @@
+<?php
+/**
+ * @class SimuArgsMgr
+ * @version 
+ * 
+ */
+
+
+  class SimuArgsMgr  {
+    
+      protected $paramID;
+      protected $dataProducteur;
+      protected $dom; 
+      protected $simulatedRegion;
+      
+      function __construct() {			 		    		 
+
+  }
+      
+/*****************************************************************
+*                           PUBLIC FUNCTIONS
+*****************************************************************/
+    public function init($paramID){
+      
+      $this->paramID = $paramID;    
+      if ((strncmp($this->paramID, "impex___", 8) === 0) || (strncmp($this->paramID, "spase___", 8) === 0)){  
+	    $this->getDataProducteur();
+	    $this->dom = new DomDocument("1.0");
+	    $this->dom->load(USERWSDIR.'RemoteParams.xml'); 
+	    if ($this->dataProducteur == 'FMI_GUMICS')
+	      $this->simulatedRegion = 'Earth.Magnetosphere';
+	    else
+	      $this->getSimulatedRegion();
+	}
+    }
+    
+    protected function getDataProducteur(){
+	if (strncmp($this->paramID, "impex___", 8) === 0)
+	  $par =    str_replace ("impex___", "", $this->paramID);
+	elseif (strncmp($this->paramID, "spase___", 8) === 0)
+	  $par =    str_replace ("spase___IMPEX_NumericalOutput_", "", $this->paramID); 
+    // TODO tests
+	$tmp 		=  explode( '_', $par);  
+
+	if ($tmp[0] == 'FMI') 
+	  $this->dataProducteur = $tmp[0].'_'.$tmp[1];
+        else 
+	  $this->dataProducteur = $tmp[0];  
+    }
+    
+    protected function getSimulatedRegion(){ 
+	$param =  $this->dom->getElementById(trim($this->paramID)); 
+	$parentID = $param->getAttribute('parentID');
+	$dataSet = $this->dom->getElementById($parentID); 
+	$this->simulatedRegion = $dataSet->getAttribute('SimulatedRegion');
+	
+    }
+    
+    protected function getMissionsBySimuRegion(){
+      $missions = simplexml_load_file(missionXml);
+      $missionsVal  = array();
+        foreach($missions->Local->MissionID as $mission){
+	    if (stripos ($mission['targets'], trim($this->simulatedRegion)) !== false ){
+	      if ( !isset($mission['group']) || (isset($mission['group']) && $mission['group'] != 'TEST')) {
+		$multypMissions  = array();
+		if ($mission['missions'] != '') 
+		    $multypMissions = explode(';',$mission['missions']);
+		else 
+		    $multypMissions[0] = (string)$mission;
+
+		$missionsVal = array_merge($missionsVal,$multypMissions);
+		}
+	    }
+	}
+	sort($missionsVal);
+	return $missionsVal;
+    }
+    
+    public function makeSimuArgs(){
+     if ($this->dataProducteur != 'CCMC'){
+      $missions = $this->getMissionsBySimuRegion();
+      
+      if (count($missions) == 1) 
+	  $grp[] = array("group" => "Satellite", "args" => array("value" => $missions[0]));
+      elseif (count($missions) > 1){
+	  foreach ($missions as $mission){
+	    $miss[] = array ("arg" => $mission, "value" => $mission);
+	  }
+	  $grp[] = array("group" => "Satellite", "args" => $miss);
+      }
+    
+      
+	  switch ($this->dataProducteur){
+	    case 'LATMOS':
+	      $grp[] = array("group" => "ClockAngle", "args" => array("value" => "0"));
+	      
+	      break;
+	    case 'SINP':
+	       if ($this->simulatedRegion == 'Mercury.Magnetosphere'){
+		  $grp[] = array("group" => "BD", "args" => array("value" => "-196.0"));
+		  $grp[] = array("group" => "Flux", "args" => array("value" => "131.0"));
+		  $grp[] = array("group" => "Rss", "args" => array("value" => "1.35"));
+		  $grp[] = array("group" => "R2", "args" => array("value" => "1.32"));
+		  $grp[] = array("group" => "DZ", "args" => array("value" => "0.0"));
+		  $grp[] = array("group" => "IMF_Bx", "args" => array("value" => "0.0"));
+		  $grp[] = array("group" => "IMF_By", "args" => array("value" => "0.0"));
+		  $grp[] = array("group" => "IMF_Bz", "args" => array("value" => "0.0"));
+	       }
+	       elseif ($this->simulatedRegion == 'Saturn.Magnetosphere'){
+		  $grp[] = array("group" => "BDC", "args" => array("value" => "3.0"));
+		  $grp[] = array("group" => "BT", "args" => array("value" => "7.0"));
+		  $grp[] = array("group" => "Rss", "args" => array("value" => "22.0"));
+		  $grp[] = array("group" => "RD1", "args" => array("value" => "15.0"));
+		  $grp[] = array("group" => "RD2", "args" => array("value" => "6.5"));
+		  $grp[] = array("group" => "R2", "args" => array("value" => "18.0"));
+		  $grp[] = array("group" => "IMF_Bx", "args" => array("value" => "0.0"));
+		  $grp[] = array("group" => "IMF_By", "args" => array("value" => "0.0"));
+		  $grp[] = array("group" => "IMF_Bz", "args" => array("value" => "0.0"));
+	       }
+	       elseif ($this->simulatedRegion == 'Jupiter.Magnetosphere'){
+		  $grp[] = array("group" => "BDC", "args" => array("value" => "3.0"));
+		  $grp[] = array("group" => "BT", "args" => array("value" => "7.0"));
+		  $grp[] = array("group" => "Rss", "args" => array("value" => "22.0"));
+		  $grp[] = array("group" => "RD1", "args" => array("value" => "15.0"));
+		  $grp[] = array("group" => "RD2", "args" => array("value" => "6.5"));
+		  $grp[] = array("group" => "R2", "args" => array("value" => "18.0"));
+		  $grp[] = array("group" => "IMF_Bx", "args" => array("value" => "0.0"));
+		  $grp[] = array("group" => "IMF_By", "args" => array("value" => "0.0"));
+		  $grp[] = array("group" => "IMF_Bz", "args" => array("value" => "0.0"));
+	       }
+	      break;
+	    case 'LESIA':
+	      break;
+	  }
+      
+      return $grp;
+      }
+      return;
+    }
+    
+      
+ }
+
+?>
diff --git a/php/classes/SimuParamMgr.php b/php/classes/SimuParamMgr.php
new file mode 100755
index 0000000..37ce877
--- /dev/null
+++ b/php/classes/SimuParamMgr.php
@@ -0,0 +1,383 @@
+<?php
+/** 
+*   @class SimuParamMgr.php
+*   @brief  Simations parameters Manager (Simulations db client) 
+* 
+*   @version $Id: SimuParamMgr.php 2914 2015-05-19 10:31:38Z elena $
+*/
+  class SimuParamMgr  
+  {
+// input parameters
+      protected $extraParam, $sampling,$paramAtribute;
+      protected $dataProducteur;
+      protected $orbitsURL;
+      protected $parameterID, $resourceID;
+      protected $isArgument, $isVector;
+      protected $mission;
+      protected $soapMethode;
+      public $startTime, $stopTime;
+      function __construct() {
+        ini_set("soap.wsdl_cache_enabled", "0");
+      }
+      
+      public function setParams($paramID, $startDate, $stopDate, $paramsAtribute){
+	  $this->parameterID= $paramID; 
+	  $this->startTime= $startDate;
+	  $this->stopTime= $stopDate;
+	  $this->paramAtribute= $paramsAtribute;
+	  $this->mission=  $this->paramAtribute[$this->parameterID]['Satellite']; 
+	  $this->isArgument = false;      
+	  $this->isVector = false;    
+	  $this->dataProducteur   = $this->getDataProducteur();
+      }
+
+       public function updateInterval($start, $stop){         
+          $this->startTime = gmdate("Y-m-d\TH:i:s\Z", $start);
+          $this->stopTime =  gmdate("Y-m-d\TH:i:s\Z", $stop);  
+      } 
+
+      private function getOrbitsURL(){
+	  try {
+	      $client = new SoapClient(wsdl_AMDA,
+	      array(
+                'wsdl_cache' => 0,
+                'trace' => 1,
+                'soap_version'=>SOAP_1_2
+	      ));
+	  }
+	  catch  (SoapFault $exception) {
+                error_log("Problem with WSDL".PHP_EOL.$exception->getMessage().PHP_EOL.$exception->getTraceAsString().PHP_EOL."File =  ".$exception->getFile(),1,email);  
+	        return false;
+           }
+ 	  
+            $params = array('spacecraft'=> strtoupper($this->mission),
+                'startTime'=> $this->startTime, 
+                'stopTime'=> $this->stopTime,
+                'coordinateSystem'=> $this->getCoordinateSystem(),
+                'units'=> $this->getDomainUnits(),
+                'outputFormat'  => 'VOTable');
+
+            if ( strtoupper($this->mission) == "MESSENGER") $params['sampling'] = 60;
+            if ( strtoupper($this->mission) == "GALILEO") $params['sampling'] = 60;
+
+            try {
+                $file = $client->__soapCall("getOrbites", array($params));      
+            }
+                catch  (SoapFault $exception) {
+                error_log("Problem with query".PHP_EOL.$exception->getMessage().PHP_EOL.$exception->getTraceAsString().PHP_EOL."File =  ".$exception->getFile(),1,email);  
+                return false;
+             } 
+
+            $orbitURL = $file->dataFileURLs;
+
+	return $orbitURL;
+      }
+      
+      private function makeRequest(){
+
+        $this->setResourceID();
+  
+        if ($this->productor == 'LESIA'){  
+            $params = array('ResourceID'=> $this->resourceID,
+            'Spacecraft_name'=> $this->mission,
+            'StartTime'=> $this->startTime, 
+            'StopTime'=> $this->stopTime,
+            'Sampling'=> $this->sampling,
+            'extraParams'=> $this->extraParam);
+
+            }
+        elseif ($this->productor == 'LATMOS') {
+            $clockAngle = $this->paramAtribute[$this->parameterID]['ClockAngle'];
+            $var = $this->getVariable($this->parameterID);
+
+            if (!$this->isVector) {
+                $params = array('ResourceID'=> $this->resourceID,
+                'url_XYZ'=> $this->getOrbitsURL(), 
+                'extraParams'=> $this->extraParam,
+                'IMFClockAngle'=> $clockAngle,
+                'Variable'=> $var);
+            }
+            else {
+                $params = array('ResourceID'=> $this->resourceID,
+                'url_XYZ'=> $this->getOrbitsURL(), 
+                'extraParams'=> $this->extraParam,
+                'IMFClockAngle'=> $clockAngle);
+            }
+        }	    
+        else {  
+            $params = array('ResourceID'=> $this->resourceID,
+            'url_XYZ'=> $this->getOrbitsURL(), 
+            'extraParams'=> $this->extraParam);
+            // 'Variable'=> $this->getVariable($this->parameterID));
+        }
+        return $params;
+      }
+
+      private function getDataProducteurWSDL(){
+   // TODO tests
+
+        switch ($this->dataProducteur){
+            case 'LATMOS':
+            $wsdl = wsdl_LATMOS;
+            $this->productor = 'LATMOS';
+            $this->soapMethode = 'getDataPointValue';
+            break;
+            case 'FMI_HYB':
+            $wsdl = wsdl_FMI;
+            $this->productor = 'FMI_HYBRID';
+        //       $this->extraParam= array('InterpolationMethod' => $options[3]);
+            $outputFileType = array('OutputFileType'=>'VOTable');
+            $this->soapMethode =  'getDataPointValue';
+            $this->extraParam= $outputFileType;
+            break;
+            case 'FMI_GUMICS':
+            $wsdl = wsdl_FMI;
+            $this->productor = 'FMI_GUMICS';
+        //       $this->extraParam= array('InterpolationMethod' => $options[3]);
+            $outputFileType = array('OutputFileType'=>'VOTable');
+            $this->soapMethode =  'getDataPointValue';
+            $this->extraParam= $outputFileType;
+            break;  
+            case 'SINP':
+            $wsdl = wsdl_SINP;
+            $this->productor = 'SINP'; 
+        //       $extraParam = array();
+            $imf_b = array();
+            $this->extraParam['OutputFileType']= 'VOTable'; 
+            if (strpos($this->parameterID,'Earth') !== FALSE)
+                    $this->soapMethode =  'calculateDataPointValue'; 
+            elseif ((strpos($this->parameterID,'Mercury') !== FALSE)||(strpos($this->parameterID,'Saturn') !== FALSE) ||(strpos($this->parameterID,'Jupiter') !== FALSE)){
+            if (strpos($this->parameterID,'Mercury') !== FALSE)
+                $this->soapMethode =  'calculateDataPointValueMercury';
+            elseif (strpos($this->parameterID,'Saturn') !== FALSE)
+            $this->soapMethode =  'calculateDataPointValueSaturn';
+            elseif (strpos($this->parameterID,'Jupiter') !== FALSE)
+            $this->soapMethode =  'calculateDataPointValueJupiter';
+            foreach($this->paramAtribute[$this->parameterID] as $key => $value){ 
+                if ($key != 'Satellite'){ 
+                    if ($key != 'IMF_Bx' && $key != 'IMF_By' && $key != 'IMF_Bz')
+                        $this->extraParam[$key]= $value;
+                    else  {
+                    switch ($key){
+                        case 'IMF_Bx':
+                            $imf_b['x'] = $value;
+                            break;
+                        case 'IMF_By':
+                            $imf_b['y'] = $value;
+                            break;
+                        case 'IMF_Bz':
+                        $imf_b['z'] = $value;
+                        break;
+                        }
+                        }
+                    } 
+                }
+                $this->extraParam['IMF_B']= $imf_b;
+            }
+            
+            break;
+            case 'LESIA':
+            $wsdl = wsdl_LESIA;
+            $this->productor = 'LESIA';
+            $this->soapMethode = 'calculateDataPointValue_Spacecraft';
+            $this->extraParam= array('OutputFileType'=>'VOTable',
+                                        'InternalModel'=>$this->paramAtribute[$this->parameterID]['InternalModel'],
+                                        'CurrentSheet'=>$this->paramAtribute[$this->parameterID]['CurrentSheet'],
+                                        'CoordinateSystem'=>$this->paramAtribute[$this->parameterID]['CoordinateSystem']
+            );
+            $this->sampling = $this->paramAtribute[$this->parameterID]['sampling'];
+            break;
+        }
+        return $wsdl;
+      }
+
+      private function setResourceID(){
+       
+        $this->resourceID = $this->dom->getElementById($this->parameterID)->getAttribute('parentID');
+
+        if (($this->dom->getElementById($this->parameterID)->nodeName)=='component') $this->isArgument = true;
+        else {
+            $this->isArgument = false;
+            if ($this->dom->getElementById($this->parameterID)->getAttribute('size') == 3)
+            {
+                $this->isVector = true;
+            }
+        }
+    //    return $this->resourceID;
+      }
+      
+      private function getDomainUnits(){
+	$units = $this->dom->getElementById($this->resourceID)->getAttribute('domainUnits');
+	if ($units == 'm') $units='km';
+	return $units;
+      }
+
+      private function getCoordinateSystem(){  
+        return $this->dom->getElementById($this->resourceID)->getAttribute('coordinateSystem');
+      }
+      
+      private function addFile($fileName){
+      
+        $myBaseManager = new BaseManager();
+        $start = strtotime($this->startTime);
+        $stop = strtotime($this->stopTime);
+        $mask = $myBaseManager->addWsFile($fileName, $start, $stop); 
+        if ($mask != null) {
+            $startstop = $myBaseManager->getStartStop($myBaseManager->getVi($mask));
+        }
+      return array( 'success' => true, 'file' => $fileName);
+      }
+      
+      private function getVariable($paramID){
+        $tmp =  explode( '_', $paramID);
+        $n = count($tmp)-1;
+        $var =  $tmp[$n];
+
+        return $var;
+      }
+      
+      private function getVectorName($paramID){
+        $tmp =  explode( '_', $paramID);
+        $n = count($tmp)-1;
+        $var =  $tmp[$n-2].'_'.$tmp[$n-1].'_'.$tmp[$n];
+
+        return $var;
+      }
+      
+      private function getDataProducteur(){
+
+        if (strncmp($this->parameterID, "impex___", 8) === 0)  
+            $par =    str_replace ("impex___", "", $this->parameterID);
+        elseif (strncmp($this->parameterID, "spase___IMPEX_NumericalOutput_", 30) === 0)
+            $par =    str_replace ("spase___IMPEX_NumericalOutput_", "", $this->parameterID); 
+        elseif (strncmp($this->parameterID, "spase___IMPEX_SimulationRun_", 28) === 0)
+            $par =    str_replace ("spase___IMPEX_SimulationRun_", "", $this->parameterID); 
+        
+        // TODO tests
+        $tmp =  explode( '_', $par);  
+        if ($tmp[0]== 'FMI')
+            return $tmp[0].'_'.$tmp[1];
+        else
+            return $tmp[0];
+      
+      }
+      
+      public function getFileName(){
+
+        $paramID = $this->parameterID;
+        $paramAtribute = $this->paramAtribute[$this->parameterID];
+        foreach ($paramAtribute as $k => $v) 
+            $args = $args.$v.'_'; 
+        $fileName = $paramID.'_'.$args.strtotime($this->startTime).'_'.strtotime($this->stopTime).'.xml';
+        return $fileName;
+      }
+
+      public function getMask(){
+        $paramID = $this->parameterID;
+
+        $paramAtribute = $this->paramAtribute[$this->parameterID];
+        foreach ($paramAtribute as $k => $v) 
+            $args = $args.$v.'_'; 
+        $mask = $paramID.'_'.$args.'*.xml';
+        return $mask;
+      }
+      
+      public function isVector(){
+     
+        return $this->isVector;
+      }
+      
+      
+      public function getSimuData()
+      {
+        $simuFilenames = array();
+           
+        if ((strncmp($this->parameterID, "impex___", 8) === 0) || (strncmp($this->parameterID, "spase___", 8) === 0))
+        {  
+            $paramID = $this->parameterID;
+            $fileName = $this->getFileName();
+            $newfile = getenv('USER_DATA_PATH').$fileName;
+ 
+            if (!file_exists ($newfile))
+            { 
+                if ($this->dataProducteur != 'CCMC')
+                    {
+                    try {
+                            $client = new SoapClient($this->getDataProducteurWSDL(),
+                            array(
+                                'wsdl_cache' => 0,
+                                'trace' => 1,
+                                'soap_version'=>SOAP_1_2
+                            ));
+                        }
+                    catch  (SoapFault $exception) {
+                            error_log("Problem with WSDL".PHP_EOL.$exception->getMessage().PHP_EOL.$exception->getTraceAsString().PHP_EOL."File =  ".$exception->getFile(),1,email);  
+                            return false;
+                    } 
+
+                    if ($this->productor != 'FMI_GUMICS')
+                        $xml = RemoteData.$this->productor."/base.xml";
+                    else
+                        $xml =  getenv('USER_WS_PATH').'RemoteParams.xml';
+
+                    $this->dom = new DOMDocument('1.0', 'utf-8');
+                    $this->dom->load($xml);
+                    $params = $this->makeRequest($this->parameterID);
+
+     
+                    try {
+                        $file = $client->__soapCall($this->soapMethode, array($params)); 
+                        }
+                    catch  (SoapFault $exception) {
+                         error_log($exception->getMessage().PHP_EOL.$exception->getTraceAsString(),1,email); 
+                         return false; 
+                    } 
+
+                    if (!copy($file, $newfile)) {
+                        error_log('Can\'t copy '.$file,1,email);
+                        return false;
+                    }
+                    else {
+                        if ($this->isVector){
+                                $vectorName = $this->getVectorName($paramID);
+                                $myVOTableMgr = new VOTableMgr();
+                                $myVOTableMgr->args2vector($newfile, $vectorName);
+                        }
+                        $this->addFile($fileName);
+                        $simuFilenames[$paramID] = $fileName; 
+                    }
+            }   // end if $this->dataProducteur != 'CCMC'
+            else {
+                $docBase = new DOMDocument();
+                $docBase->load(RemoteData.'CCMC/base.xml');
+                $elementParam =  $docBase->getElementById($this->parameterID);
+
+                if ($elementParam->tagName == 'component')
+                    $accessURL = $elementParam->parentNode->parentNode->getAttribute('AccessURL');
+                elseif ($elementParam->tagName == 'parameter'){
+                    $accessURL = $elementParam->parentNode->getAttribute('AccessURL');
+                    if ($elementParam->getAttribute('size') == 3) $this->isVector = true;
+                }
+                else {}
+
+                $doc = new DOMDocument();
+                $doc->load($accessURL);
+                $doc->save($newfile);
+
+                if ($this->isVector){
+                    $vectorName = $this->getVectorName($this->parameterID);
+                    $myVOTableMgr = new VOTableMgr();
+                    $myVOTableMgr->args2vector($newfile, $vectorName);
+                    }
+
+                $this->addFile($fileName);
+                $simuFilenames[$paramID] = $fileName; 
+            }
+        } // if (!file_exists ($newfile))
+      } // if ((strncmp($this->parameterID, "impex___", 8) === 0) |
+
+    return $simuFilenames;
+    }
+  
+  }
+?>
\ No newline at end of file
diff --git a/php/classes/StateMgr.php b/php/classes/StateMgr.php
new file mode 100644
index 0000000..c5fa823
--- /dev/null
+++ b/php/classes/StateMgr.php
@@ -0,0 +1,65 @@
+<?php
+
+  class StateMgr  
+  {
+  	protected $stateXmlName, $stateXml;
+  	protected $rootElement;
+  	
+  	function __construct() 
+  	{	 		 
+		$this->stateXmlName = USERWSDIR."State.xml";
+        $this->stateXml = new DomDocument("1.0");
+        if (file_exists($this->stateXmlName))
+        {
+			$this->stateXml->load($this->stateXmlName); 
+			$this->rootElement = $this->stateXml->documentElement;
+		}
+		else 
+		{
+			$this->rootElement = $this->stateXml->createElement('state');
+			$this->stateXml->appendChild($this->rootElement);
+			$this->stateXml->save($this->stateXmlName);
+		}
+    }
+    
+    function saveState($datas)
+    {
+    	if (!isset($this->rootElement))
+    		return array('error' => true, 'message' => 'Root node not defined.');
+    		
+    	while ($this->rootElement->hasChildNodes())
+   			$this->rootElement->removeChild($this->rootElement->childNodes->item(0));
+    	
+    	foreach ($datas as $key => $value)
+    	{
+    		$node = $this->stateXml->createElement("ui",$value);
+    		$node->setAttribute("name",$key);
+    		$this->rootElement->appendChild($node);
+    	}
+    	
+    	$this->stateXml->save($this->stateXmlName);
+    	    	
+    	return array('error' => false);
+    }
+    
+    function loadState()
+    {
+   		if (!isset($this->rootElement))
+    		return array('error' => true, 'message' => 'Root node not defined.');
+
+    	$state = array();
+    	
+    	$uis = $this->rootElement->getElementsByTagName('ui');
+    	foreach($uis as $ui)
+    	{
+    		$name  = $ui->getAttribute("name");
+    		$value = $ui->nodeValue;	
+    		$state[$name] = $value;
+    	}
+    	
+    	return array('error' => false, 'state' => $state);
+    }
+  	
+  }
+
+?>
\ No newline at end of file
diff --git a/php/classes/TimeTableCacheMgr.php b/php/classes/TimeTableCacheMgr.php
new file mode 100644
index 0000000..d3c9a02
--- /dev/null
+++ b/php/classes/TimeTableCacheMgr.php
@@ -0,0 +1,1488 @@
+<?php
+
+class CacheTools
+{
+	public static function iso2stamp($iso) {
+		$time = new DateTime($iso);
+		$stamp = $time->format('U');
+		unset($time);
+		return $stamp;
+	}
+	
+	public static function stamp2iso($stamp) {
+		return date('Y-m-d\TH:i:s',$stamp);
+	}
+}
+
+class SortPartCacheObject
+{
+	public static $TYPE_UNKNOWN       = 0;
+	public static $TYPE_START         = 1;
+	public static $TYPE_STOP          = 2;
+	public static $TYPE_DURATION_SEC  = 3;
+	public static $TYPE_DURATION_MIN  = 4;
+	public static $TYPE_DURATION_HOUR = 5;
+	
+	public static $DIRECTION_UNKNOWN = 0;
+	public static $DIRECTION_ASC     = 1;
+	public static $DIRECTION_DES     = 2;
+	
+	private $type;
+	private $dir;
+	
+	function __construct() {
+		$this->type = self::$TYPE_UNKNOWN;
+		$this->dir  = self::$DIRECTION_UNKNOWN;
+	}
+	
+	public function getType() {
+		return $this->type;
+	}
+	
+	public function getDir() {
+		return $this->dir;
+	}
+	
+	public function isSame($part) {
+		return (($this->type == $part->getType()) && ($this->dir == $part->getDir()));
+	}
+	
+	public function compare($interval_a, $interval_b) {
+		switch ($this->type) {
+			case self::$TYPE_START :
+				{
+					switch ($this->dir) {
+						case self::$DIRECTION_ASC :
+							return ($interval_b->getStartToStamp() - $interval_a->getStartToStamp());
+						default :
+							return ($interval_a->getStartToStamp() - $interval_b->getStartToStamp());	
+					}
+				}
+				break;
+			case self::$TYPE_STOP :
+				{
+					switch ($this->dir) {
+						case self::$DIRECTION_ASC :
+							return ($interval_b->getStopToStamp() - $interval_a->getStopToStamp());
+						default :
+							return ($interval_a->getStopToStamp() - $interval_b->getStopToStamp());
+					}
+				}
+				break;
+			case self::$TYPE_DURATION_SEC :
+			case self::$TYPE_DURATION_MIN :
+			case self::$DIRECTION_DES :
+				{
+					switch ($this->dir) {
+						case self::$DIRECTION_ASC :
+							return ($interval_b->getDuration() - $interval_a->getDuration());
+						default :
+							return ($interval_a->getDuration() - $interval_b->getDuration());
+					}
+				}
+				break;
+			default :
+				return 0;
+		}
+		return 0;
+	}
+	
+	public function loadFromObject($part_obj) {
+		switch ($part_obj->property)
+		{
+			case 'start'        :
+				$this->type = self::$TYPE_START;
+				break;
+			case 'stop'         :
+				$this->type = self::$TYPE_STOP;
+				break;
+			case 'durationMin'  :
+				$this->type = self::$TYPE_DURATION_MIN;
+				break;
+			case 'durationHour' :
+				$this->type = self::$TYPE_DURATION_HOUR;
+				break;
+			case 'durationSec'  :
+				$this->type = self::$TYPE_DURATION_SEC;
+				break;
+			default:
+				$this->type = self::$TYPE_UNKNOWN;
+		}
+	
+		switch ($part_obj->direction)
+		{
+			case 'ASC' :
+				$this->dir = self::$DIRECTION_ASC;
+				break;
+			case 'DESC' :
+				$this->dir = self::$DIRECTION_DES;
+				break;
+			default:
+				$this->dir = self::$DIRECTION_UNKNOWN;
+		}
+	}
+	
+	public function writeBin($handle) {
+		fwrite($handle,pack('L2',$this->type,$this->dir));
+	}
+	
+	public function loadBin($handle) {
+		$res = unpack('L2data',fread($handle,4*2));
+		$this->type = $res['data1'];
+		$this->dir   = $res['data2'];
+	}
+	
+	public function dump() {
+		echo "   => SortPartCacheObject : type = ";
+		switch ($this->type)
+		{
+			case self::$TYPE_START :
+				echo "start";
+				break;
+			case self::$TYPE_STOP :
+				echo "stop";
+				break;
+			case self::$TYPE_DURATION_SEC :
+				echo "duration seconde";
+				break;
+			case self::$TYPE_DURATION_MIN :
+				echo "duration minute";
+				break;
+			case self::$TYPE_DURATION_HOUR :
+				echo "duration hour";
+				break;
+			default:
+				echo "unknown";
+		}
+		echo ", direction = ";
+		switch ($this->dir)
+		{
+			case self::$DIRECTION_ASC :
+				echo "ASC";
+				break;
+			case self::$DIRECTION_DES :
+				echo "DESC";
+				break;
+			default:
+				echo "unknown";
+		}
+		echo PHP_EOL;
+	}
+}
+
+class SortCacheObject
+{
+	private $parts = array();
+
+	function __construct() {
+	}
+
+	public function getParts() {
+		return $this->parts;
+	}
+
+	public function reset() {
+		$this->parts = array();
+	}
+
+	public function isEmpty() {
+		return (count($this->parts) == 0);
+	}
+
+	public function loadFromObject($sort_obj) {
+		$this->reset();
+		foreach ($sort_obj as $sort_part)
+		{
+			$part = new SortPartCacheObject();
+			$part->loadFromObject($sort_part);
+			array_push($this->parts, $part);
+		}
+	}
+	
+	public function isSameFromObject($sort_obj) {
+		$sort = new SortCacheObject();
+		$sort->loadFromObject($sort_obj);
+		return $this->isSame($sort);
+	}
+
+	public function isSame($sort) {
+		if (count($this->parts) != count($sort->getParts()))
+			return false;
+
+		$identique = true;
+		for ($i = 0; $i < count($this->parts); ++$i)
+		{
+			if (!$this->parts[$i]->isSame($sort->getParts()[$i]))
+			{
+				return false;
+			}
+		}
+			
+		return true;
+	}
+
+	public function apply($intervals) {
+		$sorted_indexes = array();
+		
+		global $global_parts, $global_intervals;
+		$global_parts = $this->parts;
+		$global_intervals = $intervals;
+		
+		foreach ($intervals as $interval)
+			array_push($sorted_indexes, $interval->getIndex());
+		
+		if (count($global_parts) == 0)
+			return $sorted_indexes;
+		
+		usort($sorted_indexes, function ($index_a, $index_b) {
+			global $global_parts, $global_intervals;
+			foreach ($global_parts as $part)
+			{
+				$res = $part->compare($global_intervals[$index_a], $global_intervals[$index_b]);
+				if ($res != 0)
+					return $res;
+			}
+			return $index_a-$index_b;
+		});
+
+		return $sorted_indexes;
+	}
+
+	public function writeBin($handle) {
+		fwrite($handle,pack('L',count($this->parts)));
+		foreach ($this->parts as $part)
+			$part->writeBin($handle);
+	}
+
+	public function loadBin($handle) {
+		$this->reset();
+		$res = unpack('Lcount',fread($handle,4));
+		for ($i = 0; $i < $res['count']; ++$i)
+		{
+			$part = new SortPartCacheObject();
+			$part->loadBin($handle);
+			array_push($this->parts, $part);
+		}
+	}
+
+	public function dump() {
+		echo " => SortCacheObject : number of parts = ".count($this->parts).PHP_EOL;
+		foreach ($this->parts as $part)
+			$part->dump();
+	}
+}
+
+class FilterPartCacheObject
+{
+	public static $TYPE_UNKNOWN       = 0;
+	public static $TYPE_START         = 1;
+	public static $TYPE_STOP          = 2;
+	public static $TYPE_DURATION_SEC  = 3;
+	public static $TYPE_DURATION_MIN  = 4;
+	public static $TYPE_DURATION_HOUR = 5;
+	
+	public static $OPERATION_UNKNOWN   = 0;
+	public static $OPERATION_LT        = 1;
+	public static $OPERATION_GT        = 2;
+	public static $OPERATION_EQ        = 3;
+	
+	private $type;
+	private $op;
+	private $value;
+	
+	function __construct() {
+		$this->type  = self::$TYPE_UNKNOWN;
+		$this->op    = self::$OPERATION_UNKNOWN;
+		$this->value = 0.;
+	}
+	
+	public function getType() {
+		return $this->type;
+	}
+	
+	public function getOp() {
+		return $this->op;
+	}
+	
+	public function getValue() {
+		return $this->value;
+	}
+	
+	public function isSame($part) {
+		return (($this->type == $part->getType()) && ($this->op == $part->getOp()) && ($this->value == $part->getValue()));
+	}
+	
+	public function toFiltered($interval) {
+		switch ($this->type) {
+			case self::$TYPE_START :
+				{
+					switch ($this->op) {
+						case self::$OPERATION_LT :
+							return ($interval->getStartToStamp() < $this->value);
+						case self::$OPERATION_GT :
+							return ($interval->getStartToStamp() > $this->value);
+						case self::$OPERATION_EQ :
+							return (!(($interval->getStartToStamp() >= $this->value) && ($interval->getStartToStamp() <= $this->value+86400)));
+						default :
+							return false;
+					}
+				}
+				break;
+			case self::$TYPE_STOP :
+				{
+					switch ($this->op) {
+						case self::$OPERATION_LT :
+							return ($interval->getStopToStamp() < $this->value);
+						case self::$OPERATION_GT :
+							return ($interval->getStopToStamp() > $this->value);
+						case self::$OPERATION_EQ :
+							return (!(($interval->getStopToStamp() >= $this->value) && ($interval->getStopToStamp() <= $this->value+86400)));
+						default :
+							return false;
+					}
+				}
+				break;
+			case self::$TYPE_DURATION_SEC :
+			case self::$TYPE_DURATION_MIN :
+			case self::$TYPE_DURATION_HOUR :
+				{
+					$value = $this->value;
+					if ($this->type == self::$TYPE_DURATION_MIN)
+						$value *= 60;
+					else if ($this->type == self::$TYPE_DURATION_HOUR)
+						$value *= 3600;
+					switch ($this->op) {
+						case self::$OPERATION_LT :
+							return ($interval->getDuration() < $value);
+						case self::$OPERATION_GT :
+							return ($interval->getDuration() > $value);
+						case self::$OPERATION_EQ :
+							return ($interval->getDuration() != $value);
+						default :
+							return false;
+					}
+				}
+				break;
+			default:
+				return false;
+		}
+	}
+	
+	public function loadFromObject($part_obj) {
+		$this->value = 0.;
+		switch ($part_obj->field)
+		{
+			case 'start'        :
+				$this->value = CacheTools::iso2stamp($part_obj->value);
+				$this->type = self::$TYPE_START;
+				break;
+			case 'stop'         :
+				$this->value = CacheTools::iso2stamp($part_obj->value);
+				$this->type = self::$TYPE_STOP;
+				break;
+			case 'durationMin'  :
+				$this->value = $part_obj->value;
+				$this->type = self::$TYPE_DURATION_MIN;
+				break;
+			case 'durationHour' :
+				$this->value = $part_obj->value;
+				$this->type = self::$TYPE_DURATION_HOUR;
+				break;
+			case 'durationSec'  :
+				$this->value = $part_obj->value;
+				$this->type = self::$TYPE_DURATION_SEC;
+				break;
+			default:
+				$this->value = 0.;
+				$this->type = self::$TYPE_UNKNOWN;
+		}
+		
+		switch ($part_obj->comparison)
+		{
+			case 'lt' :
+				$this->op = self::$OPERATION_LT;
+				break;
+			case 'gt' :
+				$this->op = self::$OPERATION_GT;
+				break;
+			case 'eq' :
+				$this->op = self::$OPERATION_EQ;
+				break;
+			default:
+				$this->op = self::$OPERATION_UNKNOWN;
+		}
+	}
+	
+	public function writeBin($handle) {
+		fwrite($handle,pack('L2',$this->type,$this->op));
+		fwrite($handle,pack('f',$this->value));
+	}
+	
+	public function loadBin($handle) {
+		$res = unpack('L2data',fread($handle,4*2));
+		$this->type = $res['data1'];
+		$this->op   = $res['data2'];
+		
+		$res = unpack('fvalue',fread($handle,4));
+		$this->value = $res['value'];
+	}
+	
+	public function dump() {
+		echo "   => FilterPartCacheObject : type = ";
+		switch ($this->type)
+		{
+			case self::$TYPE_START :
+				echo "start";
+				break;
+			case self::$TYPE_STOP :
+				echo "stop";
+				break;
+			case self::$TYPE_DURATION_SEC :
+				echo "duration seconde";
+				break;
+			case self::$TYPE_DURATION_MIN :
+				echo "duration minute";
+				break;
+			case self::$TYPE_DURATION_HOUR :
+				echo "duration hour";
+				break;
+			default:
+				echo "unknown";
+		}
+		echo ", operation = ";
+		switch ($this->op)
+		{
+			case self::$OPERATION_LT :
+				echo "lt";
+				break;
+			case self::$OPERATION_GT :
+				echo "gt";
+				break;
+			case self::$OPERATION_EQ :
+				echo "eq";
+				break;
+			default:
+				echo "unknown";
+		}
+		echo ", value = ".$this->value.PHP_EOL;
+	}
+}
+
+class FilterCacheObject
+{
+	private $parts = array();
+	
+	function __construct() {
+		
+	}
+	
+	public function getParts() {
+		return $this->parts;
+	}
+	
+	public function reset() {
+		$this->parts = array();
+	}
+	
+	public function isEmpty() {
+		return (count($this->parts) == 0);
+	}
+	
+	public function loadFromJSON($filter_json) {
+		$this->reset();
+		$filter_obj = json_decode($filter_json);
+		
+		foreach ($filter_obj as $filter_part)
+		{
+			$part = new FilterPartCacheObject();
+			$part->loadFromObject($filter_part);
+			array_push($this->parts, $part);
+		}
+	}
+	
+	public function isSame($filter) {
+		if (count($this->parts) != count($filter->getParts()))
+			return false;
+		
+		$identique = true;
+		for ($i = 0; $i < count($this->parts); ++$i)
+		{
+			if (!$this->parts[$i]->isSame($filter->getParts()[$i]))
+			{
+				return false;
+			}
+		}
+			
+		return true;
+	}
+	
+	public function isSameFromJSON($filter_json) {
+		$filter = new FilterCacheObject();
+		$filter->loadFromJSON($filter_json);
+		return $this->isSame($filter);
+	}
+	
+	public function toFiltered($interval) {
+		foreach ($this->parts as $part)
+		{
+			if ($part->toFiltered($interval))
+				return true;
+		}
+		return false;
+	}
+	
+	public function writeBin($handle) {
+		fwrite($handle,pack('L',count($this->parts)));
+		foreach ($this->parts as $part)
+			$part->writeBin($handle);
+	}
+	
+	public function loadBin($handle) {
+		$this->reset();
+		$res = unpack('Lcount',fread($handle,4));
+		for ($i = 0; $i < $res['count']; ++$i)
+		{
+			$part = new FilterPartCacheObject();
+			$part->loadBin($handle);
+			array_push($this->parts, $part);
+		}
+	}
+	
+	public function dump() {
+		echo " => FilterCacheObject : number of parts = ".count($this->parts).PHP_EOL;
+		foreach ($this->parts as $part)
+			$part->dump();
+	}
+}
+
+class IntervalCacheObject
+{
+	private $id         = -1;
+	private $index      = -1;
+	private $start      = 0;
+	private $stop       = 0;
+	private $isNew      = false;
+	private $isModified = false;
+
+	function __construct($id, $index) {
+		$this->id = $id;
+		$this->index = $index;
+	}
+
+	public function getId() {
+		return $this->id;
+	}
+	
+	public function getIndex() {
+		return $this->index;
+	}
+	
+	public function setIndex($index) {
+		$this->index = $index;
+	}
+
+	public function getStartToStamp() {
+		return $this->start;
+	}
+	
+	public function getStartToISO() {
+		return CacheTools::stamp2iso($this->start);
+	}
+
+	public function setStartFromStamp($stamp) {
+		$this->start = $stamp;
+	}
+	
+	public function setStartFromISO($iso) {
+		$this->start = CacheTools::iso2stamp($iso);
+	}
+
+	public function getStopToStamp() {
+		return $this->stop;
+	}
+	
+	public function getStopToISO() {
+		return CacheTools::stamp2iso($this->stop);
+	}
+
+	public function setStopFromStamp($stamp) {
+		$this->stop = $stamp;
+	}
+	
+	public function setStopFromISO($iso) {
+		$this->stop = CacheTools::iso2stamp($iso);
+	}
+	
+	public function getDuration() {
+		return ($this->stop-$this->start);
+	}
+
+	public function isModified() {
+		return $this->isModified;
+	}
+
+	public function setIsModified($isModified) {
+		$this->isModified = $isModified;
+	}
+
+	public function isNew() {
+		return $this->isNew;
+	}
+
+	public function setIsNew($isNew) {
+		$this->isNew = $isNew;
+	}
+	
+	public function toArray() {
+		$result = array(
+			"cacheId" => $this->id,
+			"start"   => $this->getStartToISO(),
+			"stop"    => $this->getStopToISO()
+		);
+		if ($this->isNew)
+			$result["isNew"] = true;
+		if ($this->isModified)
+			$result["isModified"] = true;
+		
+		return $result;
+	}
+
+	
+	
+	public function writeBin($handle) {
+		fwrite($handle,pack('L6',$this->id,$this->index,$this->start,$this->stop,$this->isNew,$this->isModified));
+	}
+	
+	public function loadBin($handle) {
+		$array = unpack('L6int',fread($handle,6*4));
+		$this->id         = $array['int1'];
+		$this->index      = $array['int2'];
+		$this->start      = $array['int3'];
+		$this->stop       = $array['int4'];
+		$this->isNew      = $array['int5'];
+		$this->isModified = $array['int6'];
+	}
+	
+	public function dump() {
+		echo " => Interval : id = ".$this->id.", index = ".$this->index.", start = ".$this->start.", stop = ".$this->stop.", isNew = ".$this->isNew.", isModified = ".$this->isModified.PHP_EOL;
+	}
+}
+
+class TimeTableCacheObject
+{
+	private static $format_version = 1;
+	private static $token_len = 8;
+	
+	private $token  = "";
+	
+	private $lastId = 0;
+	
+	private $intervals = array();
+	private $indexes   = array();
+	
+	private $isModified = false;
+	
+	private $filter = null;
+	
+	private $sort = null;
+
+	function __construct() {
+		$this->token  = $this->getRandomToken();
+		$this->filter = new FilterCacheObject();
+		$this->sort   = new SortCacheObject();
+	}
+
+	public function reset() {
+		$this->lastId = 0;
+		$this->isModified = false;
+		$this->intervals = array();
+		$this->indexes   = array();
+		unset($this->filter);
+		$this->filter = new FilterCacheObject();;
+		unset($this->sort);
+		$this->sort = new SortCacheObject();
+	}
+	
+	public function setIsModified($isModified) {
+		$this->isModified = $isModified;
+	}
+	
+	public function addInterval($startIso, $stopIso, $isNew = false, $index = -1) {
+		$interval = new IntervalCacheObject($this->lastId, count($this->intervals));
+		++$this->lastId;
+		$interval->setStartFromISO($startIso);
+		$interval->setStopFromISO($stopIso);
+		$interval->setIsNew($isNew);
+		array_push($this->intervals, $interval);
+		if ($index < 0)
+			array_push($this->indexes, count($this->intervals) - 1);
+		else
+			array_splice($this->indexes, $index, 0, array(count($this->intervals) - 1));
+		if ($isNew)
+			$this->isModified = true;
+		return $interval;
+	}
+	
+	public function removeIntervalFromId($id) {
+		for ($i = 0; $i < count($this->intervals); ++$i)
+		{
+			if ($this->intervals[$i]->getId() == $id)
+			{
+				//Remove interval
+				array_splice($this->intervals, $i, 1);
+				//Remove interval index if exist in indexes list
+				for ($j = 0; $j < count($this->indexes); ++$j)
+				{
+					if ($this->indexes[$j] == $i)
+					{
+						array_splice($this->indexes, $j, 1);
+						break;
+					}
+				}
+				//Update indexes list
+				for ($j = 0; $j < count($this->indexes); ++$j)
+				{
+					if ($this->indexes[$j] >=  $i)
+						$this->indexes[$j]--;
+				}
+				$this->isModified = true;
+				return true;
+			}
+		}
+		
+		return false;
+	}
+	
+	public function modifyIntervalFromId($id, $start, $stop) {
+		foreach ($this->intervals as $interval)
+		{
+			if ($interval->getId() == $id)
+			{
+				if (isset($start))
+					$interval->setStartFromISO($start);
+				if (isset($stop))
+					$interval->setStopFromISO($stop);
+				$interval->setIsModified(true);
+				$this->isModified = true;
+				return true;
+			}
+		}
+		
+		return false;
+	}
+	
+	public function operationIntervals($extendTime, $shiftTime) {
+		if (($extendTime == 0) && ($shiftTime == 0))
+			//Nothing to do
+			return true;
+		
+		for ($i = 0; $i < count($this->indexes); ++$i) {
+			$start = $this->intervals[$this->indexes[$i]]->getStartToStamp();
+			$start -= $extendTime;
+			$start += $shiftTime;
+			$this->intervals[$this->indexes[$i]]->setStartFromStamp($start);
+			
+			$stop = $this->intervals[$this->indexes[$i]]->getStopToStamp();
+			$stop += $extendTime;
+			$stop += $shiftTime;
+			$this->intervals[$this->indexes[$i]]->setStopFromStamp($stop);
+			
+			$this->intervals[$this->indexes[$i]]->setIsModified(true);
+			$this->isModified = true;
+		}
+		
+		return true;
+	}
+	
+	public function mergeIntervals() {
+		$this->sort->reset();
+		
+		$this->sort->loadFromObject(
+			array(
+				(object)array("property" => "start", "direction" => "DESC")
+			)	
+		);
+		
+		$this->updateIndexes();
+		
+		$merged_intervals = array();
+		
+		for ($i = 0; $i < count($this->indexes); ++$i) {
+			if (count($merged_intervals) == 0)
+			{
+				array_push($merged_intervals,array(
+					"start" => $this->intervals[$this->indexes[$i]]->getStartToStamp(),
+					"stop"  => $this->intervals[$this->indexes[$i]]->getStopToStamp(),
+					"mod"   => FALSE)
+				);
+				continue;
+			}
+			if (($merged_intervals[count($merged_intervals)-1]["stop"] >= $this->intervals[$this->indexes[$i]]->getStartToStamp()) &&
+				($merged_intervals[count($merged_intervals)-1]["stop"] < $this->intervals[$this->indexes[$i]]->getStopToStamp()))
+			{
+				$merged_intervals[count($merged_intervals)-1]["stop"] = $this->intervals[$this->indexes[$i]]->getStopToStamp();
+				$merged_intervals[count($merged_intervals)-1]["mod"] = TRUE;
+			}
+			else
+				array_push($merged_intervals,array(
+					"start" => $this->intervals[$this->indexes[$i]]->getStartToStamp(),
+					"stop"  => $this->intervals[$this->indexes[$i]]->getStopToStamp(),
+					"mod"   => FALSE)
+				);
+		}
+		
+		$this->reset();
+		
+		foreach ($merged_intervals as $merged_interval) {
+			$interval = new IntervalCacheObject($this->lastId, count($this->intervals));
+			++$this->lastId;
+			$interval->setStartFromStamp($merged_interval["start"]);
+			$interval->setStopFromStamp($merged_interval["stop"]);
+			$interval->setIsNew($merged_interval["mod"]);
+			if ($merged_interval["mod"])
+				$this->isModified = true;
+			array_push($this->intervals, $interval);
+			array_push($this->indexes, count($this->intervals) - 1);
+		}
+		
+		return true;
+	}
+	
+	public function getStatistics() {
+		$minTime  = NULL;
+		$maxTime  = NULL;
+		$minDuration  = NULL;
+		$maxDuration  = NULL;
+		$indexMinDuration = -1;
+		$indexMaxDuration = -1;
+		
+		$nbValid = 0;
+		$durationTotal = 0;
+		
+		//Min & Max
+		for ($i = 0; $i < count($this->indexes); ++$i) {
+			if ($this->intervals[$this->indexes[$i]]->getDuration() <= 0)
+				//Invalid interval
+				continue;
+			
+			++$nbValid;
+			$durationTotal += $this->intervals[$this->indexes[$i]]->getDuration();
+			
+			if (!isset($minTime) || ($minTime > $this->intervals[$this->indexes[$i]]->getStartToStamp()))
+				$minTime = $this->intervals[$this->indexes[$i]]->getStartToStamp();
+			
+			if (!isset($maxTime) || ($maxTime < $this->intervals[$this->indexes[$i]]->getStopToStamp()))
+				$maxTime = $this->intervals[$this->indexes[$i]]->getStopToStamp();
+			
+			if (!isset($minDuration) || ($minDuration > $this->intervals[$this->indexes[$i]]->getDuration()))
+			{
+				$minDuration      = $this->intervals[$this->indexes[$i]]->getDuration();
+				$indexMinDuration = $i;
+			}
+			
+			if (!isset($maxDuration) || ($maxDuration < $this->intervals[$this->indexes[$i]]->getDuration()))
+			{
+				$maxDuration      = $this->intervals[$this->indexes[$i]]->getDuration();
+				$indexMaxDuration = $i;
+			}
+		}
+		
+		if (!isset($minTime))
+			$minTime = 0;
+		if (!isset($maxTime))
+			$maxTime = 0;
+		if (!isset($minDuration))
+			$minDuration = 0;
+		if (!isset($maxDuration))
+			$maxDuration = 0;
+		
+		
+		//Mean
+		if ($nbValid > 0)
+			$mean = $durationTotal / $nbValid;
+		else
+			$mean = 0;
+		
+		//Standard deviation
+		$pow = 0;
+		for ($i = 0; $i < count($this->indexes); ++$i) {
+			if ($this->intervals[$this->indexes[$i]]->getDuration() <= 0)
+				//Invalid interval
+				continue;
+			
+			$pow += pow($this->intervals[$this->indexes[$i]]->getDuration()-$mean,2);
+		}
+		if ($nbValid > 0)
+			$variance = $pow/$nbValid;
+		else
+			$variance = 0;
+		$stdev = sqrt($variance);
+		
+		//Sort by duration to get median
+		$this->sort->reset();
+		
+		$this->sort->loadFromObject(
+				array(
+						(object)array("property" => "durationSec", "direction" => "DESC")
+				)
+		);
+		
+		$this->updateIndexes();
+		
+		$durations = array();
+		for ($i = 0; $i < count($this->indexes); ++$i) {
+			if ($this->intervals[$this->indexes[$i]]->getDuration() <= 0)
+				//Invalid interval
+				continue;
+			
+			array_push($durations, $this->intervals[$this->indexes[$i]]->getDuration());
+		}
+		
+		if (count($durations) > 0)
+		{
+			if (count($durations)%2 > 0) {
+				$median = $durations[count($durations)/2-0.5];
+			} else { // else the number of intervals is an even number
+				$median = ($durations[count($durations)/2-1] + $durations[count($durations)/2])/2;
+			}
+		}
+		else
+			$median = 0;
+		
+		//Merge intervals to get density
+		$this->mergeIntervals();
+		
+		$durationMergedTotal = 0;
+		for ($i = 0; $i < count($this->indexes); ++$i) {
+			if ($this->intervals[$this->indexes[$i]]->getDuration() <= 0)
+				//Invalid interval
+				continue;
+				
+			$durationMergedTotal += $this->intervals[$this->indexes[$i]]->getDuration();
+		}
+		
+		if (($maxTime-$minTime) > 0)
+			$density = (($durationMergedTotal/($maxTime-$minTime)));
+		else
+			$density = 0;
+		
+		return array(
+			"minDuration"     => $minDuration,
+			"minDurationIndex"=> $indexMinDuration,
+			"maxDuration"     => $maxDuration,
+			"maxDurationIndex"=> $indexMaxDuration,
+			"mean"    => $mean,
+			"stdev"   => $stdev,
+			"median"  => $median,
+			"density" => $density);
+	}
+	
+	public function getStatus() {
+		$nbFiltered = count($this->intervals) - count($this->indexes);
+		
+		$nbModified = 0;
+		$nbNew      = 0;
+		$nbInvalid  = 0;
+		$nbValid    = 0;
+		for ($i = 0; $i < count($this->indexes); ++$i) {
+			if ($this->intervals[$this->indexes[$i]]->getDuration() <= 0)
+				++$nbInvalid;
+			else
+				++$nbValid;
+			if ($this->intervals[$this->indexes[$i]]->isModified())
+				++$nbModified;
+			if ($this->intervals[$this->indexes[$i]]->isNew())
+				++$nbNew;
+		}
+		
+		return array(
+			"nbFiltered" => $nbFiltered,
+			"nbModified" => $nbModified,
+			"nbNew"      => $nbNew,
+			"nbInvalid"  => $nbInvalid,
+			"nbValid"    => $nbValid,
+			"isModified" => $this->isModified
+		);
+	}
+	
+	public function getIntervalsArray($startIndex, $limit,$skipInvalid = false) {
+		$intervals = array();
+		
+		if (!isset($startIndex))
+			$startIndex = 0;
+		
+		if (!isset($limit))
+			$limit = count($this->indexes);
+		
+		for ($i = 0; $i < $limit; ++$i) {
+			if ($startIndex+$i >= count($this->indexes))
+				break;
+			if ($skipInvalid && ($this->intervals[$this->indexes[$startIndex+$i]]->getDuration() <= 0))
+				continue;
+			array_push($intervals, $this->intervals[$this->indexes[$startIndex+$i]]->toArray());
+		}
+		return $intervals;
+	}
+	
+	public function getLength() {
+		return count($this->indexes);
+	}
+	
+	public function getToken() {
+		return $this->token;
+	}
+	
+	public function getFilter() {
+		return $this->filter;
+	}
+	
+	public function getSort() {
+		return $this->sort;
+	}
+	
+	public function updateIndexes() {
+		$this->indexes = array();
+		
+		for ($i = 0; $i < count($this->intervals); ++$i)
+			$this->intervals[$i]->setIndex($i);
+		
+		//Apply sort
+		$sort_result = $this->sort->apply($this->intervals);
+		
+		//Apply filter
+		for ($i = 0; $i < count($sort_result); ++$i)
+		{
+			if (!$this->filter->toFiltered($this->intervals[$sort_result[$i]]))
+				array_push($this->indexes,$this->intervals[$sort_result[$i]]->getIndex());
+		}
+	}
+	
+	public function writeBin($handle) {
+		//Magic key ("TTC")
+		fwrite($handle,pack('C3',ord('T'),ord('T'),ord('C')));
+		
+		//Version
+		fwrite($handle,pack('L',TimeTableCacheObject::$format_version));
+		
+		//Token
+		for ($i = 0; $i < TimeTableCacheObject::$token_len; ++$i)
+			fwrite($handle,pack('C',ord($this->token[$i])));
+		
+		//Modified
+		fwrite($handle,pack('L',$this->isModified));
+		
+		//Filter
+		$this->filter->writeBin($handle);
+		
+		//Sort
+		$this->sort->writeBin($handle);
+		
+		//Intervals
+		fwrite($handle,pack('L2',count($this->intervals), $this->lastId));
+		foreach($this->intervals as $interval)
+			$interval->writeBin($handle);
+		
+		//Indexes
+		fwrite($handle,pack('L',count($this->indexes)));
+		foreach($this->indexes as $index)
+			fwrite($handle,pack('L',$index));
+	}
+	
+	public function loadBin($handle) {
+		//Magic key ("TTC")
+		if (!$res = unpack('C3key',fread($handle,3)))
+			return false;
+		
+		if (($res['key1'] != ord('T')) || ($res['key2'] != ord('T')) || ($res['key3'] != ord('C')))
+			return false;
+		
+		//Version
+		if (!$res = unpack('Lversion',fread($handle,4)))
+			return false;
+		if (($res['version'] != TimeTableCacheObject::$format_version))
+			return false;
+
+		//Token
+		$token = "";
+		for ($i = 0; $i < TimeTableCacheObject::$token_len; ++$i)
+		{
+			if (!$res = unpack('Ctoken',fread($handle,1)))
+				return false;
+			$token .= chr($res['token']);
+		}
+		$this->token = $token;
+		
+		//Modified
+		if (!$res = unpack('Lmodified',fread($handle,4)))
+			return false;
+		$this->isModified = $res['modified'];
+		
+		//Filter
+		$this->filter->loadBin($handle);
+		
+		//Sort
+		$this->sort->loadBin($handle);
+		
+		//Intervals
+		$res = unpack('L2data',fread($handle,2*4));
+		$nbIntervals  = $res['data1'];
+		$this->lastId = $res['data2'];
+		for ($i = 0; $i < $nbIntervals; ++$i)
+		{
+			$interval = new IntervalCacheObject(-1);
+			$interval->loadBin($handle);
+			array_push($this->intervals, $interval);
+		}
+		
+		//Indexes
+		$res = unpack('Ldata',fread($handle,4));
+		$nbIndexes  = $res['data'];
+		for ($i = 0; $i < $nbIndexes; ++$i)
+		{
+			$res = unpack('Lindex',fread($handle,4));
+			array_push($this->indexes, $res['index']);
+		}
+		
+		return true;
+	}
+	
+	private function getRandomToken() {
+		$letters = 'abcefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890';
+		return substr(str_shuffle($letters), 0, TimeTableCacheObject::$token_len);
+	}
+	
+	public function dump() {
+		echo " => TimeTableCacheObject : token = ".$this->token.", nb intervals = ".count($this->intervals).", last id = ".$this->lastId.", nb indexes = ".count($this->indexes).PHP_EOL;
+		echo PHP_EOL;
+		
+		$this->filter->dump();
+		echo PHP_EOL;
+		
+		$this->sort->dump();
+		echo PHP_EOL;
+		
+		foreach ($this->intervals as $interval)
+			$interval->dump();
+		echo PHP_EOL;
+		
+		echo " => Indexes list : ";
+		foreach ($this->indexes as $index)
+		{
+			echo $index.", ";
+		}
+		echo PHP_EOL;
+	}
+}
+
+class TimeTableCacheMgr
+{
+	private static $cache_file                = "cacheTT";
+	
+	private $ttMgr = null;
+	private $cache = null;
+
+	function __construct() {
+		$this->ttMgr = new TimeTableMgr();
+	}
+
+	public function initTTCache() {
+		//Create new cache
+		$this->cache = new TimeTableCacheObject();
+		
+		//Save cache file
+		return array('success' => $this->saveToFile(), 'token' => $this->cache->getToken(), 'status' => $this->cache->getStatus());
+	}
+
+	public function initFromTT($id, $typeTT) {
+		//Create new cache
+		$this->cache = new TimeTableCacheObject();
+
+		//Load intervals from TT file and add to cache
+		$intervals_res = $this->ttMgr->loadIntervalsFromTT($id,$typeTT);
+		
+		if (!$intervals_res['success'])
+			return $intervals_res;
+
+		foreach ($intervals_res['intervals'] as $interval)
+		{
+			//Add interval
+			$this->cache->addInterval($interval['start'], $interval['stop']);
+		}
+		
+		unset($intervals_res);
+
+		//Update cache
+		$this->cache->updateIndexes();
+
+		//Save cache file
+		return array('success' => $this->saveToFile(), 'token' => $this->cache->getToken(), 'status' => $this->cache->getStatus());
+	}
+
+	public function initFromTmpObject($folderId, $name) {
+		//Create new cache
+		$this->cache = new TimeTableCacheObject();
+
+		//Load intervals from TmpObject file (DD_Search output)
+		$intervals_res = $this->ttMgr->getTmpObject($folderId, $name);
+
+		if (!isset($intervals_res))
+			return array('success' => false, 'message' => 'Cannot get Tmp Object');
+
+		if (array_key_exists('intervals', $intervals_res))
+		{
+			foreach ($intervals_res['intervals'] as $interval)
+			{
+				//Add interval
+				$this->cache->addInterval($interval['start'], $interval['stop']);
+			}
+		}
+
+		$this->cache->setIsModified(true);
+		
+		unset($intervals_res);
+		
+		//Update cache
+		$this->cache->updateIndexes();
+
+		//Save cache file
+		return array('success' => $this->saveToFile(), 'token' => $this->cache->getToken(), 'status' => $this->cache->getStatus());
+	}
+
+	public function initFromUploadedFile($name, $format) {
+		//Create new cache
+		$this->cache = new TimeTableCacheObject();
+
+		//Load intervals from uploaded file
+		$intervals_res = $this->ttMgr->getUploadedObject($name, $format);
+
+		if (!isset($intervals_res))
+			return array('success' => false, 'message' => 'Cannot get Tmp Object');
+
+		if (array_key_exists('intervals', $intervals_res))
+		{
+			foreach ($intervals_res['intervals'] as $interval)
+			{
+				//Add interval
+				$this->cache->addInterval($interval['start'], $interval['stop']);
+			}
+		}
+
+		$this->cache->setIsModified(true);
+		
+		unset($intervals_res);
+		
+		//Update cache
+		$this->cache->updateIndexes();
+
+		//Save cache file
+		return array('success' => $this->saveToFile(), 'token' => $this->cache->getToken(), 'status' => $this->cache->getStatus());
+	}
+
+	public function saveInTT($id, $action, $token) {
+		if (!$this->loadFromFile())
+			return array('success' => false, 'message' => 'Cannot load cache file');
+
+		if ($token != $this->cache->getToken())
+			return array('success' => false, 'message' => 'Cache token check error');
+		
+		$this->cache->updateIndexes();
+		$this->saveToFile();
+		
+		$intervals = $this->cache->getIntervalsArray(NULL,NULL,true);
+		
+		$this->cache->reset();
+		
+		$res_intervals = array();
+		foreach ($intervals as $interval)
+		{
+			array_push(
+			$res_intervals,
+			(object)array(
+			'start' => $interval['start'],
+			'stop'  => $interval['stop']
+			)
+			);
+		}
+
+		unset($intervals);
+		
+		return $this->ttMgr->saveIntervals($id, $res_intervals, $action);
+	}
+
+	public function getIntervals($start,$limit,$sort_obj,$filter_json) {
+		if (!$this->loadFromFile())
+			return array('success' => false, 'message' => 'Cannot load cache file');
+
+		$needToUpdate = false;
+		if (isset($filter_json))
+		{
+			if (!$this->cache->getFilter()->isSameFromJSON($filter_json))
+			{
+				$needToUpdate = true;
+				$this->cache->getFilter()->loadFromJSON($filter_json);
+			}
+		}
+		else
+		{
+			if (!$this->cache->getFilter()->isEmpty())
+			{
+				$needToUpdate = true;
+				$this->cache->getFilter()->reset();
+			}
+		}
+		
+		if (isset($sort_obj))
+		{
+			if (!$this->cache->getSort()->isSameFromObject($sort_obj))
+			{
+				$needToUpdate = true;
+				$this->cache->getSort()->loadFromObject($sort_obj);
+			}
+		}
+		else
+		{
+			if (!$this->cache->getSort()->isEmpty())
+			{
+				$needToUpdate = true;
+				$this->cache->getSort()->reset();
+			}
+		}
+		
+		if ($needToUpdate)
+		{
+			$this->cache->updateIndexes();
+			$this->saveToFile();
+		}
+
+		return array(
+				'token'      => $this->cache->getToken(),
+				'totalCount' => $this->cache->getLength(),
+				'intervals'  => $this->cache->getIntervalsArray($start, $limit),
+				'start' => isset($start) ? $start : 0,
+				'limit' => isset($limit) ? $limit : 0,
+				'status' => $this->cache->getStatus(),
+				'success'    => true
+		);
+	}
+
+	public function addInterval($index, $start, $stop) {
+		if (!$this->loadFromFile())
+			return array('success' => false, 'message' => 'Cannot load cache file');
+
+		if (!isset($index))
+			$index = 0;
+
+		if (!isset($start))
+			$start = date('Y-m-d\TH:i:s');
+
+		if (!isset($stop))
+			$stop = date('Y-m-d\TH:i:s');
+		
+		$this->cache->addInterval($start, $stop, true, $index);
+		
+		//$this->cache->updateIndexes();
+		
+		$this->saveToFile();
+		
+		return array('success' => true, 'index' => $index, 'status' => $this->cache->getStatus());
+	}
+
+	public function removeIntervalFromId($id) {
+		if (!$this->loadFromFile())
+			return array('success' => false, 'message' => 'Cannot load cache file');
+
+		$this->cache->removeIntervalFromId($id);
+		
+		$this->cache->updateIndexes();
+
+		$this->saveToFile();
+
+		return array('success' => true, 'status' => $this->cache->getStatus());
+	}
+
+	public function modifyIntervalFromId($id, $start, $stop) {
+		if (!$this->loadFromFile())
+			return array('success' => false, 'message' => 'Cannot load cache file');
+
+		$this->cache->modifyIntervalFromId($id, $start, $stop);
+		
+		$this->saveToFile();
+		
+		return array('success' => true, 'status' => $this->cache->getStatus());
+	}
+	
+	public function operationIntervals($extendTime, $shiftTime) {
+		if (!$this->loadFromFile())
+			return array('success' => false, 'message' => 'Cannot load cache file');
+		
+		$this->cache->operationIntervals($extendTime, $shiftTime);
+		
+		$this->saveToFile();
+		
+		return array('success' => true, 'status' => $this->cache->getStatus());
+	}
+	
+	public function mergeIntervals() {
+		if (!$this->loadFromFile())
+			return array('success' => false, 'message' => 'Cannot load cache file');
+		
+		$this->cache->mergeIntervals();
+		
+		$this->saveToFile();
+		
+		return array('success' => true, 'status' => $this->cache->getStatus());
+	}
+	
+	public function getStatistics() {
+		if (!$this->loadFromFile())
+			return array('success' => false, 'message' => 'Cannot load cache file');
+		
+		return array('success' => true, "result" => $this->cache->getStatistics(), 'status' => $this->cache->getStatus());
+	}
+
+	public function dump() {
+		if (!$this->loadFromFile())
+		{
+			echo "ERROR to load cache file : ".$this->getCacheFilePath().PHP_EOL;
+			return;
+		}
+		$this->cache->dump();
+	}
+	
+	private function getCacheFilePath() {
+		return USERTTDIR.(self::$cache_file);
+	}
+	
+	private function saveToFile() {
+		if (!isset($this->cache))
+			return false;
+		$handle = fopen($this->getCacheFilePath(), 'wb');
+		$result = false;
+		if (flock($handle, LOCK_EX))
+		{
+			$this->cache->writeBin($handle);
+			flock( $handle, LOCK_UN );
+			$result = true;
+		}
+		fclose($handle);
+		return $result;
+	}
+	
+	private function loadFromFile() {
+		if (!file_exists($this->getCacheFilePath()))
+			return false;
+		$this->cache = new TimeTableCacheObject();
+		$handle = fopen($this->getCacheFilePath(), 'rb');
+		$result = false;
+		if (flock($handle, LOCK_SH))
+		{
+			$this->cache->loadBin($handle);
+			flock( $handle, LOCK_UN );
+			$result = true;
+		}
+		fclose($handle);
+		return $result;
+	}
+}
+
+?>
diff --git a/php/classes/TimeTableMgr.php b/php/classes/TimeTableMgr.php
new file mode 100644
index 0000000..49ebf52
--- /dev/null
+++ b/php/classes/TimeTableMgr.php
@@ -0,0 +1,806 @@
+<?php
+
+/**
+ * @class TimeTableMgr
+ * @version $Id: TimeTableMgr.php 2809 2015-03-05 09:50:52Z natacha $
+ * @todo MANAGE TT created by Search and Plot interactive - HERE?
+ *
+ */
+
+function timeFormat($myString) {
+    if (format == "Y z H i s")  {
+         $tt = getdate(strtotime($myString));
+         return sprintf("%04d",$tt["year"])." "
+               .sprintf("%03d",$tt["yday"]+1)." "
+               .sprintf("%02d",$tt["hours"])." "
+               .sprintf("%02d",$tt["minutes"])." "
+               .sprintf("%02d",$tt["seconds"]);
+     }
+    return date(format,strtotime($myString)); 
+    
+ }
+
+class TimeTableMgr extends AmdaObjectMgr {	
+     
+//TODO add catalogs as for requestMgr
+
+
+	function __construct($user) {
+		parent::__construct('Tt.xml');
+		$this->contentRootId = 'timeTable-treeRootNode';
+		$this->contentRootTag = 'timetabList';
+		$this->attributes = array('name' => '', 'intervals' => '');
+		$this->optionalAttributes = array();
+		$this->objTagName = 'timetab';
+		$this->id_prefix = 'tt_';
+
+		if (!file_exists($this->xmlName)) {
+			  $this->createDom();
+			  $this->xp = new domxpath($this->contentDom); 
+		}
+	}
+	
+	
+	protected function createDom() {
+		
+		$types = array('timetab' => 'timeTable', 'catalog' => 'catalog');
+
+		$rootElement = $this->contentDom->createElement('ws');
+                foreach ($types as $key => $value) {
+		    $contentId = $value.'-treeRootNode';
+		    $contentTag = $key.'List';
+		    $typeElement = $this->contentDom->createElement($contentTag);
+		    $typeElement->setAttribute('xml:id', $contentId);
+		    $rootElement->appendChild($typeElement);
+		}
+                $this->contentDom->appendChild($rootElement);
+		$this->contentDom->save($this->xmlName);
+        }
+
+	/*
+	 *       rename  Time Table in  id.xml
+	 */
+	protected function renameInResource($name, $id) {
+		if (!file_exists(USERTTDIR.$id.'.xml')) return false;
+
+		$this->objectDom -> load(USERTTDIR.$id.'.xml');
+		if (!($objToRename = $this->objectDom->getElementById($id))) return false;
+		$objToRename -> getElementsByTagName('name')->item(0)->nodeValue = $name;
+		$this->objectDom ->save(USERTTDIR.$id.'.xml');
+		 
+		return true;
+	}
+
+	protected function deleteParameter($id){
+		if (file_exists(USERTTDIR.$id.'.xml')) unlink(USERTTDIR.$id.'.xml');
+	}
+
+	/*
+	 *        Check if difference is name and info only
+	 */
+	protected function renameOnly($p) {
+		//if (!($p->intervals)) return true;
+		return false;
+	}
+
+
+	/*
+	 *         Create Time Table
+	 */
+	protected function createParameter($p, $folder){
+		if ($this -> objectExistsByName($p->name)) {
+			$p -> id  = $this -> getObjectIdByName($p->name);
+			$this -> deleteObject($p);
+		}
+		$this->id = $this->setId();
+		$this->created = date('Y-m-d\TH:i:s');
+		if (!$this->id) return array('error' => ID_CREATION_ERROR);
+		$this->resFileName = USERTTDIR.$this->id.'.xml';
+		$rootElement = $this->objectDom->createElement('timetable');
+		$rootElement->setAttribute('xml:id',$this->id);
+	 
+		foreach ($p as $key => $value)		
+		if ($key != 'id' && $key != 'leaf' && $key != 'nodeType') {
+			if ($key == 'created') {
+				$rootElement->appendChild($this->objectDom->createElement($key, $this->created));
+			}
+			/*else if ($key == 'intervals') {
+				$n_int = 0;
+				foreach ($value as $item) {
+					$newInterval = $this->objectDom->createElement('intervals');
+					$newInterval->appendChild($this->objectDom->createElement('start', $item->start));
+					$newInterval->appendChild($this->objectDom->createElement('stop', $item->stop));
+					$rootElement->appendChild($newInterval);
+					$n_int++;
+				}
+			}*/
+			else if ($key != 'intervals')
+			$rootElement->appendChild($this->objectDom->createElement($key, htmlspecialchars($value)));
+		}
+
+		$this->objectDom->appendChild($rootElement);
+		$this->objectDom->save($this->resFileName);
+		$obj = new stdClass();
+		$obj->name = $p->name;
+		$obj->intervals = $p->nbIntervals;
+		$this -> addToContent($obj, $folder);
+		return array('id' => $this->id,'created' => $this->created,'info' =>$obj->intervals.' intervals' );
+
+	}
+
+    protected function call_intersection($fst, $snd) {
+    	$inf = ( $fst[0] > $snd[0] ) ? $fst[0] : $snd[0];
+        $sup = ( $fst[1] < $snd[1] ) ? $fst[1] : $snd[1];
+        if ( $inf >= $sup ) { $inter[] = array(0,0); }
+        else {$inter[] = array($inf,$sup); }
+        return $inter;
+    }
+    
+	/*
+	 *         For TT download : file format in text
+	 */    
+	protected function xsl2text($file,$format) {
+		 define("format", $format);
+	  $xslt = new XSLTProcessor();
+	   
+	// add PHP functions to XSLT functions
+	  $xslt -> registerPHPFunctions();
+	  
+	 // Load Time table
+	  $xml = new domDocument("1.0");
+	  $xml->load($file);
+	
+	  // Load XSL file
+	  $xsl = new domDocument("1.0");
+	  if ($format == "Y-m-dTH:i:s") $xslName = "xml2iso.xsl";
+	  else $xslName = "xml2all.xsl";
+	  $xsl->load(XMLPATH.$xslName);
+	
+	  // Import XSL and write output file in text format
+	  $xslt -> importStylesheet($xsl);
+	  $filename = $xml->getElementsByTagName('name')->item(0)->nodeValue.".txt";
+	  $output=fopen(USERWORKINGDIR.$filename, "w");
+	  fwrite($output, trim($xslt -> transformToDoc($xml)->firstChild->wholeText));
+	  fclose($output);
+
+	  return USERWORKINGDIR.$filename;		
+	}
+	
+	/*
+	 *         For TT download : file format in vot
+	 */    
+	public function xsl2vot($file,$format) {	
+		$xslt = new XSLTProcessor();
+	   
+	 	// Load Time table
+	  	$xml = new domDocument("1.0");
+	  	$xml->load($file);
+	  	
+	  	// Load XSL file
+	  	$xsl = new domDocument("1.0");
+	  	$xsl->load(XMLPATH.'xml2vot.xsl');
+	  	
+	  	// Import XSL and write output file in vot format
+	  	$xslt -> importStylesheet($xsl);
+	  	$vot = new domDocument("1.0");
+	  	$vot -> loadXML($xslt -> transformToXML($xml));
+	  	$filename = $xml->getElementsByTagName('name')->item(0)->nodeValue.".xml";
+	  	$vot -> save(USERWORKINGDIR.$filename);
+
+	  	return USERWORKINGDIR.$filename;
+	}
+	
+      /*
+      * Uploaded text file => convert to array
+      */
+	protected function text2amda($tmp_file, $onlyDescription = false) {
+
+          
+          $suffix = explode('.', basename($tmp_file));
+
+	  $lines = file($tmp_file,FILE_SKIP_EMPTY_LINES);
+	
+	  $description="Uploaded Time Table".PHP_EOL; 
+
+	  foreach ($lines as $line){  
+	    if ($line[0] == '#') $description=$description."\n".substr($line,1,-1);
+	    else {
+		$date = explode(' ',$line);
+		if (!strtotime(trim($date[0]))) {
+			$description=$description."\n".$line;
+			continue;
+		}
+// check if it is ISO format
+	       if (!isset($isIso)) $isIso = preg_match('/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})$/', trim($date[0]));
+	        if (!$isIso) {
+		  $tempT = strtotime(trim($date[0]));
+		  $startDate = date('Y-m-d',$tempT)."T".date('H:i:s',$tempT);
+		  $tempT = strtotime(trim($date[1]));
+		  $stopDate = date('Y-m-d',$tempT)."T".date('H:i:s',$tempT);
+//TODO convert time into non standard formats
+	    //  $startDate = DateTime::createFromFormat($timeFormat, trim($date[0]);
+	    //  $start = $startDate->format('Y-m-d')."T".$startDate->format('H:i:s');
+            //  $stopDate = DateTime::createFromFormat($timeFormat, trim($date[1]);
+            //  $stop = $stopDate->format('Y-m-d')."T".$stopDate->format('H:i:s');
+            if (!$onlyDescription)
+		  		$attributesToReturn['intervals'][] = array('start' => $startDate, 'stop' => $stopDate); 
+	        }
+	      else {
+	      	if (!$onlyDescription)
+				$attributesToReturn['intervals'][] = array('start' => trim($date[0]), 'stop' => trim($date[1]));
+	      } 
+	    }
+	  }
+	  	   	  	   
+	  $attributesToReturn['description'] = $description;
+	  $attributesToReturn['name'] = basename($tmp_file, '.'.$suffix[1]);
+	  $attributesToReturn['created'] = date('Y-m-d')."T".date('H:i:s');
+
+	  return $attributesToReturn;
+
+	}
+	
+		
+      /*
+      * Uploaded vot TT => convert to array
+      */
+	protected function vot2amda($tmp_file, $onlyDescription = false) {		  
+	  // Load Time table		
+	    $this->objectDom -> load($tmp_file);
+	    $objToGet = $this->objectDom->getElementsByTagName('TABLEDATA')->item(0);
+	    $attributesToReturn['name'] = $tmp_file;
+	    $attributes = $objToGet -> childNodes;
+	    foreach($attributes as $attribute)
+		if ($attribute->tagName == 'TR') {
+		    $start = $attribute -> getElementsByTagName('TD')->item(0) -> nodeValue;
+		    $stop = $attribute -> getElementsByTagName('TD')->item(1) -> nodeValue;
+		    if (!$onlyDescription)
+		   		$attributesToReturn['intervals'][] = array('start' => $start, 'stop' => $stop);
+		}
+	    $suffix = explode('.', basename($tmp_file));   
+	    $attributesToReturn['name'] = basename($tmp_file, '.'.$suffix[1]); 
+	    $attributesToReturn['created'] = date('Y-m-d')."T".date('H:i:s');
+	    $attributesToReturn['description'] = htmlspecialchars($this->objectDom->getElementsByTagName('DESCRIPTION')->item(0) -> nodeValue);
+	    return($attributesToReturn);
+	}
+	
+	
+	/*****************************************************************
+	 *                           PUBLIC FUNCTIONS
+	 *****************************************************************/
+      
+
+	/*
+	 *   Get Object into Edit
+	 */
+
+	function getObject($id, $nodeType) {
+
+		if ($nodeType == 'sharedtimeTable') {			
+			$pathid =	SHAREDPATH.'TT/'.$id;
+		}
+		else {
+			$pathid = USERTTDIR.$id;		
+		}
+
+		if (!file_exists($pathid.'.xml')) return array('error' => NO_OBJECT_FILE);
+		$this->objectDom -> load($pathid.'.xml');
+		if (!($objToGet = $this->objectDom->getElementById($id))) return array('error' => NO_SUCH_ID);
+		$attributesToReturn['id'] = $objToGet->getAttribute('xml:id');
+		$attributes = $objToGet -> childNodes;
+
+		$nbInt = 0;
+		foreach($attributes as $attribute)
+		if($attribute->nodeType == XML_ELEMENT_NODE){
+		  /*if ($attribute->tagName == 'intervals') {
+			  $start = $attribute -> getElementsByTagName('start')->item(0) -> nodeValue;
+			  $stop = $attribute -> getElementsByTagName('stop')->item(0) -> nodeValue;
+			  $attributesToReturn['intervals'][] = array('start' => $start, 'stop' => $stop);
+		  }
+		  else
+		  $attributesToReturn[$attribute->tagName] =  $attribute->nodeValue;*/
+			 //BRE - load all except intervals - Intervals will be loaded later with 'loadIntervalsFromTT' function
+			 if ($attribute->tagName != 'intervals')
+      $attributesToReturn[$attribute->tagName] =  $attribute->nodeValue;
+    else
+      $nbInt++;
+		}
+		
+		$attributesToReturn['nbIntervals'] = $nbInt;
+		
+		return  $attributesToReturn;
+	}
+	
+	public function createObject($p, $folder){
+	
+		if ($p -> leaf)
+		{
+			$result = $this->createParameter($p, $folder);
+			if ($result['error'])
+				return $result;
+			$cacheMgr = new TimeTableCacheMgr();
+			if (isset($p->cacheToken) && ($p->cacheToken != ''))
+			{
+				$resultSaveInt = $cacheMgr->saveInTT($result['id'], "update", $p->cacheToken);
+				if (!$resultSaveInt['success'])
+				{
+					if ($resultSaveInt['message'])
+						return array('error' => $resultSaveInt['message']);
+					else
+						return array('error' => 'Unknown error during intervals save');
+				}
+			}
+			return $result;
+		}
+		//      else return $this->createFolder($p);
+		//TODO check if this is possible?
+		else return array('error' => 'createFolder should be called from RENAME');
+	
+	}
+	
+	
+	public function modifyObject($p) {
+		$folder = $this->getObjectFolder($p->id);
+		
+		//Copy TT in a tempory file
+		$ttFilePath = USERTTDIR.$p->id.'.xml';
+		$tmpFileExist = FALSE;
+		if (file_exists($ttFilePath))
+			$tmpFileExist = copy($ttFilePath,$ttFilePath.".tmp");
+		
+		//Delete TT
+		$this->deleteObject($p);
+		
+		//Save modifications
+		try {
+			$result = $this->createObject($p, $folder);
+			if ($result['error'])
+				throw new Exception($result['error']);
+			if ($tmpFileExist)
+				unlink($ttFilePath.".tmp");
+			return array('id' => $p->id, 'info' => $result['nbIntervals'].' intervals' );
+		}
+		catch (Exception $e) {
+			//Restore TT file
+			if ($tmpFileExist)
+			{
+				copy($ttFilePath.".tmp", $ttFilePath);
+				unlink($ttFilePath.".tmp");
+			}
+			return array ('error' => $e->getMessage());
+		}
+	}
+	
+	 public function loadIntervalsFromTT($id,$typeTT,$start = NULL, $limit = NULL)
+  {
+
+  if ($typeTT == 'sharedtimeTable') {			
+			$pathid =	SHAREDPATH.'TT/'.$id;
+		}
+		else {
+			$pathid = USERTTDIR.$id;		
+		}
+		
+  	 //load intervals from TT id
+    if (!file_exists($pathid.'.xml'))
+      return array('success' => false, 'message' => "Cannot find TT file ".$id);
+    $this->objectDom -> load($pathid.'.xml');
+    if (!($objToGet = $this->objectDom->getElementById($id)))
+      return array('success' => false, 'message' => NO_SUCH_ID." ".$id);
+    
+    $xpath = new DOMXPath($this->objectDom);
+    $intervals =  $xpath->query('//intervals');
+    
+    $result = array();
+    
+    if (!isset($start) || !isset($limit))
+    {
+    	foreach ($intervals as $interval)
+    	{
+			$startTime = $interval->getElementsByTagName('start')->item(0)->nodeValue;
+			$stopTime  = $interval->getElementsByTagName('stop')->item(0)->nodeValue;
+			array_push($result, array('start' => $startTime, 'stop' => $stopTime));
+		}
+    }
+    else
+    {
+    	for ($i = 0; $i < $limit; ++$i)
+    	{
+    		if ($start+$i >= $intervals->length)
+    			break;
+    		$startTime = $intervals->item($start+$i)->getElementsByTagName('start')->item(0)->nodeValue;
+    		$stopTime  = $intervals->item($start+$i)->getElementsByTagName('stop')->item(0)->nodeValue;
+    		array_push($result, array('start' => $startTime, 'stop' => $stopTime));
+    	}
+    }
+    
+    return array(
+		'totalCount' => $intervals->length,
+		'intervals'  => $result,
+		'start' => isset($start) ? $start : 0,
+    	'limit' => isset($limit) ? $limit : 0,
+		'success'    => true
+    );
+    
+  }
+
+  public function saveIntervals($id,$intervals,$action)
+  {
+  	 if (substr($id,0,6) == 'shared') {
+			  $pathid =	SHAREDPATH.'TT/'.$id;
+		  }
+    else {
+			  $pathid = USERTTDIR.$id;		
+		  } 
+    if (!file_exists($pathid.'.xml'))
+      return array('success' => false, 'message' => "Cannot find TT file ".$id);
+    $this->objectDom -> load($pathid.'.xml');
+    
+    if (!($objToGet = $this->objectDom->getElementById($id))) 
+      return array('success' => false, 'message' => NO_SUCH_ID." ".$id);
+
+    //remove old intervals
+    $crtNode = $objToGet->firstChild;
+    
+    while ($crtNode)
+    {
+      if (($crtNode->nodeType != XML_ELEMENT_NODE) || ($crtNode->tagName != 'intervals'))
+      {	
+        $crtNode = $crtNode->nextSibling;
+        continue;
+      }
+      $toRemove = $crtNode;
+      $crtNode = $crtNode->nextSibling;
+      $objToGet->removeChild($toRemove);
+      unset($toRemove);
+    }
+      
+    //add new intervals
+    foreach ($intervals as $interval)
+    {
+    	 $newInterval = $this->objectDom->createElement('intervals');
+					 $newInterval->appendChild($this->objectDom->createElement('start',$interval->start));
+					 $newInterval->appendChild($this->objectDom->createElement('stop',$interval->stop));
+					 $this->objectDom->documentElement->appendChild($newInterval);
+    }
+
+        //save modifications
+    $this->id = $id;
+    $this->resFileName = USERTTDIR.$this->id.'.xml';
+    $this->objectDom->save($this->resFileName);
+    
+    unset($this->objectDom);
+    
+    return array('success' => true,'action' => $action, 'nbIntervals' => count($intervals));
+  }
+	
+      
+	  public function getUploadedObject($name, $format, $onlyDescription = false) {
+
+		if (strpos($name,'.txt') !== false || strpos($name,'.asc') !== false ) {
+		  $attributesToReturn = $this->text2amda(USERTEMPDIR.$name, $onlyDescription);
+		  $attributesToReturn['objName'] = $name;
+		  $attributesToReturn['objFormat'] = $format;
+		  return $attributesToReturn;
+		}
+		
+		if ($format == 'VOT') {
+			 $attributesToReturn = $this->vot2amda(USERTEMPDIR.$name, $onlyDescription);
+			 $attributesToReturn['objName'] = $name;
+			 $attributesToReturn['objFormat'] = $format;
+			 return $attributesToReturn;
+		}
+	 
+                if (strpos($name,'.xml') !== false) {
+                    $temp = explode('.xml', $name);
+		  $name = $temp[0];
+		}
+
+		
+	 if (!file_exists(USERTEMPDIR.$name.'.xml')) 
+			  return array('error' => 'no such name');
+		$this->objectDom -> load(USERTEMPDIR.$name.'.xml');
+		if (!($objToGet = $this->objectDom->getElementsByTagName('timetable')->item(0)) && 
+		    !($objToGet = $this->objectDom->getElementsByTagName('TimeTable')->item(0))) 
+			  return array('error' => 'no time table');
+
+		$attributes = $objToGet -> childNodes;
+		$attributesToReturn['name'] = $name;
+		$attributesToReturn['objName'] = $name;
+		$attributesToReturn['objFormat'] = $format;
+
+		foreach($attributes as $attribute)
+		  if($attribute->nodeType == XML_ELEMENT_NODE){
+		       if ($attribute->tagName == 'intervals') {
+			      $start = $attribute -> getElementsByTagName('start')->item(0) -> nodeValue;
+			      $stop = $attribute -> getElementsByTagName('stop')->item(0) -> nodeValue;
+			      if (!$onlyDescription)
+			      	$attributesToReturn['intervals'][] = array('start' => $start, 'stop' => $stop);
+		      } 
+		      else if ($attribute->tagName == 'Interval') {
+			      $start = $attribute -> getElementsByTagName('Start')->item(0) -> nodeValue;
+			      $stop = $attribute -> getElementsByTagName('Stop')->item(0) -> nodeValue;
+			      if (!$onlyDescription)
+			      	$attributesToReturn['intervals'][] = array('start' => $start, 'stop' => $stop);
+		      }
+		      else {
+			  switch (strtolower($attribute->tagName)) {
+			     case 'created' : 
+					      $attributesToReturn['created'] =  $attribute->nodeValue;
+					      break;
+			     case 'chain'  :
+			     case 'source' :  
+					     $attributesToReturn['description'] = $attribute->nodeValue;
+					     break;
+			    default:  break;
+			  }
+			}
+		  }
+		return  $attributesToReturn;
+	}
+
+
+
+//TODO getObject only!!!! => change DD_Search output
+      public function getTmpObject($folderId, $name, $onlyDescription = false) {
+		$filePath = USERWORKINGDIR.$folderId.'/'.$name.'.xml';
+		if (!file_exists($filePath)) 
+			return array('error' => 'Cannot find result file');
+		
+		$dom = new DomDocument('1.0'); 
+		$dom->formatOutput = true;
+		
+		if (!$dom -> load($filePath))
+			return array('error' => 'Cannot load result file');
+		
+		$descNodes = $dom->getElementsByTagName('description');
+		if ($descNodes->length > 0)
+			$attributesToReturn['description'] = $descNodes->item(0)->nodeValue;
+		
+		$creatNodes = $dom->getElementsByTagName('created');
+		if ($creatNodes->length > 0)
+			$attributesToReturn['created'] = $creatNodes->item(0)->nodeValue;
+		
+		$histNodes = $dom->getElementsByTagName('history');
+		if ($histNodes->length > 0)
+			$attributesToReturn['history'] = $histNodes->item(0)->nodeValue;
+	
+		$attributesToReturn['objName'] = $name;
+		$attributesToReturn['folderId'] = $folderId;
+	
+		if (!$onlyDescription)
+		{
+			$intNodes = $dom->getElementsByTagName('intervals');
+			foreach ($intNodes as $intNode)
+			{
+				$startNodes = $intNode->getElementsByTagName('start');
+				if ($startNodes->length <= 0)
+					return array('error' => 'Error detected in result file');
+				$stopNodes = $intNode->getElementsByTagName('stop');
+				if ($stopNodes->length <= 0)
+					return array('error' => 'Error detected in result file');
+				$attributesToReturn['intervals'][] = array('start' => $startNodes->item(0)->nodeValue,
+														'stop' => $stopNodes->item(0)->nodeValue);
+			}
+		}
+		
+		return  $attributesToReturn;
+	}
+
+/*
+ * merge time tables
+ */
+    	public  function merge($obj)   {
+        /**
+         * Array of intervals, used like : 
+         * [{start:'2010-01-01T23:00:00',stop:'2011-01-01T20:00:00'},{start:'2009-01-01T23:00:00',stop:'2010-01-01T20:00:00'}]
+         * $attributesToReturn['intervals'][] = array('start' => $start, 'stop' => $stop);
+         */
+		
+    	$intervals = 0;	
+    		
+    		for ( $i = 0; $i < count($obj->ids); $i++ ) {
+    			$table[$i] = $this->loadIntervalsFromTT($obj->ids[$i]);
+    			for ($j=0; $j < count($table[$i]['intervals']); $j++) {
+  					$interval[$i][$j][0] = $table[$i]['intervals'][$j]['start'];
+  					$interval[$i][$j][1] = $table[$i]['intervals'][$j]['stop'];
+  				}
+    			$intervals += count($interval[$i]);
+    		}  
+    		if ( $intervals > 10000) set_time_limit(1800);
+    		
+    		$final = array();
+    		for ( $i = 0; $i < count($obj->ids); $i++ ) {
+    			$final = array_merge($final, $interval[$i]);        		
+      		}
+    		sort($final);
+    		
+    		// Algorithm of union
+    		$line = 0;
+        	$i = 0;
+        	$a = $final[$i][0];
+	        while ($i < count($final)-1) {
+	           if ($final[$i+1][1] <= $final[$i][1])
+	           {
+	                  array_splice($final,$i+1,1);
+	           }
+	           else if (($final[$i+1][0] <= $final[$i][1]) && ($final[$i+1][1] >= $final[$i][1]))
+	           {
+	                  $i++;
+	           }
+	           else {
+	                $start[$line] = $a;
+	                $stop[$line] = $final[$i][1];
+	                $i++;
+	                $line++;
+	                $a = $final[$i][0];
+	           }
+	        }
+	        $start[$line] = $a;
+	        $stop[$line] = $final[$i][1];
+	        $line++;
+        
+		$objTT = new stdClass();	            	        
+		$objTT->name = $obj->name;
+    	$objTT->nodeType = 'timeTable';
+    	$objTT->leaf = true;
+    	$objTT->created = null;
+    	$objTT->history = $obj->history;
+    	for ($i=0; $i < count($start); $i++) {	
+							$inter = new stdClass();
+							$inter->start = $start[$i];
+							$inter->stop = $stop[$i];
+							$objTT->intervals[] = $inter;
+    	}
+    	$objTT->nbIntervals = count($start);
+		$this->objectDom = new DomDocument('1.0'); 
+		$this->objectDom->formatOutput = true;
+ 		
+		$res = $this->createParameter($objTT, $folder);
+		if ($res['error'])
+		  return $res;
+ 		  
+		$this->saveIntervals($res['id'],$objTT->intervals,'merge');
+ 		
+		return $res;
+		
+    } 
+    
+/*
+ * intersect time tables
+ */
+    public  function intersect($obj)   {
+    	
+    	for ( $i = 0; $i < count($obj->ids); $i++ ) {
+    		$table[$i] = $this->loadIntervalsFromTT($obj->ids[$i]);
+    		for ($j=0; $j < count($table[$i]['intervals']); $j++) {
+  				$interval[$i][$j][0] = $table[$i]['intervals'][$j]['start'];
+  				$interval[$i][$j][1] = $table[$i]['intervals'][$j]['stop'];
+  			}
+    		$intervals += count($interval[$i]);
+    	}  
+    	if ( $intervals > 10000) set_time_limit(1800);
+
+    	// Sort intervals in time tables
+        sort($interval[0]);
+        sort($interval[1]);
+            	
+    	$i = 0;
+	    $j = 0;
+	    $line = 0;
+	
+	    while ( ($i < count($interval[0])) && ($j < count($interval[1])) ) {
+	    	$inter = $this->call_intersection($interval[0][$i], $interval[1][$j]);
+	
+	        if ($inter[0][0] != 0 && $inter[0][1] != 0)
+	        {
+	        	$start[$line] = $inter[0][0];
+	            $stop[$line] = $inter[0][1];
+	            $line++;
+	        }
+	
+	        if ( $interval[0][$i][1] < $interval[1][$j][1] ) { $i++; }
+	        else {  $j++; }
+	    }
+	
+	    // Intersection is empty
+	    if ( $line == 0 ) {
+	    	$result ="empty";
+	    } 
+	    else {
+	    	$objTT->name = $obj->name;
+    		$objTT->nodeType = 'timeTable';
+    		$objTT->leaf = true;
+    		$objTT->created = null;
+    		$objTT->history = $obj->history;
+    		for ($i=0; $i < count($start); $i++) {	
+				$inter = new stdClass();
+				$inter->start = $start[$i];
+				$inter->stop = $stop[$i];
+				$objTT->intervals[] = $inter;
+    		}
+    		$objTT->nbIntervals = count($start);
+    		
+    		if (count($objTT->intervals) == 0)
+    		  $result ="empty";
+    		else
+    		{
+    		  $this->objectDom = new DomDocument('1.0'); 
+			     $this->objectDom->formatOutput = true;
+	    	  $result = $this->createObject($objTT, $folder);
+	    	
+	       if (!isset($result['error']))
+		        $this->saveIntervals($result['id'],$objTT->intervals,'intersect');
+		
+		     }  	
+	    }
+	    return  $result;		
+    }
+    
+/*
+*   execute = download TT
+*/
+         public function execute($obj) {
+
+         	$final = null;
+      		$liste = null;
+      		
+      		// Delete *.zip and *.gz
+      		foreach (glob(USERWORKINGDIR."*.gz") as $filename) unlink($filename);
+      		foreach (glob(USERWORKINGDIR."*.zip") as $filename) unlink($filename);
+      		
+                $transform = "xsl2".$obj->fileformat;
+                $format = $obj->timeformat;
+// shared or my
+                
+             
+        	for ($i=0; $i < count($obj->list); $i++) {
+        		$file = $obj->list[$i].'.xml';
+                        $pathid  = (substr($obj->list[$i],0,6) == 'shared') ?  SHAREDPATH.'TT/': USERTTDIR; 
+        		if (file_exists($pathid.$file)) {                                
+        			$result = $this->$transform($pathid.$file,$format);                                 
+        			$liste = $liste." ".substr(strrchr($result, "/"),1);
+           			$final = $final." ".$result;        					
+        		}   				
+        	}
+        	// Compress the result
+			$archive = USERWORKINGDIR."Timetable_archive_".date('Ymd_Hi');
+
+			if ($obj->compression == "zip")
+         	{
+                            system("zip -Dj ".$archive.".zip ".$final." 1> /dev/null 2> /dev/null");
+			    $outFile = $archive.".zip";
+			}
+			else if ($obj->compression == "tar+gzip")
+         	{
+			    system("tar cfz ".$archive.".tar.gz --directory=".USERWORKINGDIR." ".$liste."");
+			    $outFile = $archive.".tar.gz";
+         	}   
+
+			// Delete modified time tables (.txt or .xml)
+			$tt = split(" ",$final);
+			foreach ($tt as $name) {
+			           if (file_exists($name)) unlink($name);
+			}
+			$retFile = substr_replace($outFile,'', 0, strlen(BASE_PATH));
+
+			return array('download' => $retFile);
+        			
+         }
+         
+         function validNameObject($p){
+         	// overwritten
+         	$res = parent::validNameObject($p);
+         	 
+         	if (!$res['valid'])
+         		return $res;
+         	 
+         	//no space
+         	if (strpos($p->name, ' ') === FALSE)
+         		return array('valid' => true);
+         	
+         	return array('valid' => false, 'error' => 'Space character is not allowed');
+         }
+
+}
+?>
diff --git a/php/classes/UserDeleteObsolete.php b/php/classes/UserDeleteObsolete.php
new file mode 100644
index 0000000..17d2bf5
--- /dev/null
+++ b/php/classes/UserDeleteObsolete.php
@@ -0,0 +1,185 @@
+<?php
+/**
+ * @class UserDeleteObsolete
+ * @version $Id: UserDeleteObsolete.php 1808 2013-09-24 13:09:42Z elena $
+ *
+ */
+
+ class UserDeleteObsolete {  
+
+  private $dataset, $vi, $Mgr;
+  private $ws_deleted;
+   
+  function __construct() {  
+         
+        $this->ws_deleted = array();
+   }
+
+    public function setVI($vi) {
+        $this->vi = $vi;
+        $this->dataset = strtolower($vi);   
+    }
+
+
+  public function deleteDerived() {
+
+        $msg = '<b>WS (Derived) Params:</b><br/>';
+    // derived parameters                
+        $this->Mgr = new DerivedParamMgr('derivedParam');           
+    // get params  
+        $wsParams = $this->Mgr->contentDom->getElementsByTagName('param');
+ 
+        if ($wsParams->length == 0) {
+               return array('success' => true, 'msg' => 'No parameters');
+        }
+       
+        foreach ($wsParams as $param) {        
+            $id = $param->getAttribute('xml:id');
+            $name = $param->getAttribute('name');
+            $expression = $param->getAttribute('buildchain');
+                 
+            if (strpos(strtolower($expression), $this->dataset)) {
+                    $msg .= 'deleted  name:<b>'.$name.'</b>; expression: '.$expression.'<br/>';
+                    $obj = new stdClass();
+                    $obj->leaf = true;
+                    $obj->id = $id;
+                    $this->Mgr->deleteObject($obj);
+                 //   error_log( 'For INFO : DELETED '.$expression,1,email);
+                    $this->ws_deleted[] = $name;                  
+            }                      
+        }
+        $msg .= ' ok<br/>';
+        return array('success' => true, 'msg' => $msg);
+  }
+
+   
+ 
+  public function deleteConditions() {
+     
+    $msg = '<b>Conditions:</b><br/>';
+    // conditons                
+        $this->Mgr = new RequestMgr('condition');
+        
+        $conditions = $this->Mgr->contentDom->getElementsByTagName('condition');
+ 
+        if ($conditions->length == 0) {
+               return array('success' => true, 'msg' => 'No conditions');
+        }
+               
+        foreach ($conditions as $item) {
+            $id = $item->getAttribute('xml:id');
+            $name = $item->getAttribute('name');
+
+            $expression = strtolower($this->Mgr->getObject($id)->expression);
+           
+            if (strpos($expression, $this->dataset)) {
+                    $obj = new stdClass();
+                    $obj->leaf = true;
+                    $obj->id = $id;
+                    $this->Mgr->deleteObject($obj);
+                    $msg .= 'deleted name:<b>'.$obj->name.'</b>; expression:'.$expression.'<br/>'; 
+                   
+            }        
+        }
+
+        $msg .= ' ok<br/>';
+
+       return array('success' => true, 'msg' => $msg);
+  }
+
+    public function deleteRequests() {
+
+       $msg = '<b>Requests:</b><br/>';
+    // requests                
+        $this->Mgr = new RequestMgr('request');      
+        $requests = $this->Mgr->contentDom->getElementsByTagName('request');
+
+        if (count($requests) == 0) {
+            return array('success' => true, 'msg' => 'No requests');
+        }
+
+        foreach ($requests as $item) { 
+
+            $id = $item->getAttribute('xml:id');
+            $name = $item->getAttribute('name');
+
+            $objplot = $this->Mgr->getObject($id); 
+            $obj = new stdClass();
+            $obj->leaf = true;
+            $obj->id = $id;
+                   
+            foreach ($objplot->children as $panel) { 
+                foreach ($panel->children as $param) {
+
+                        $parID = strtolower($param->name);
+
+                         if ($this->ws_deleted && substr($parId,0,3) == "ws_") {
+                            if (array_search($this->ws_deleted, $parId)) {                               
+                                    
+                                    $this->Mgr->deleteObject($obj);
+                                    $msg .=    'request deleted  '.$name.'<br/>';
+                                    continue 3;                                
+                            }
+                        }
+                        
+                        if (strpos($parID, $this->dataset)) {
+                            $this->Mgr->deleteObject($obj);
+                            $msg .=    'request deleted  '.$name.'<br/>'; 
+                            continue 3;
+                        }   
+                    }
+                }                          
+         }                    
+        $msg .= ' ok<br/>';
+
+  return array('success' => true, 'msg' => $msg);
+  }
+
+  public function deleteAliases() {
+    
+     $msg = '<b>Aliases:</b><br/>';
+     $this->Mgr = new AliasMgr();  
+     $aliases = $this->Mgr->contentDom->getElementsByTagName('alias');
+      
+      foreach ($aliases as $alias) {
+            $id = $alias->getAttribute('xml:id'); 
+            $name = $alias->getAttribute('name'); 
+            if (strpos(strtolower($id), $this->dataset)) {
+                $obj = new stdClass();
+                $obj->leaf = true;
+                $obj->id = $id;
+                $this->Mgr->deleteObject($obj);
+                $msg .= 'alias deleted  '.$name.'<br/>'; 
+            }
+       }
+     return array('success' => true, 'msg' => $msg);
+  }
+
+
+  public function deleteInTree() {
+          
+        $msg = '<b>Dataset in RemoteParams:</b><br/>';
+
+        $this->Mgr = new ParamMgr();        
+        $xp = new domxpath($this->Mgr->xmlDom);
+ 
+        $nodeToDelete = $xp->query("//dataset[@name='".$this->vi."']");
+        if ($nodeToDelete->length > 0) {
+            $instrNode = $nodeToDelete->item(0)->parentNode;
+            $instrNode->removeChild($nodeToDelete->item(0));
+            if (!$instrNode->hasChildNodes()) {
+                $missionNode = $instrNode->parentNode;
+                $missionNode->removeChild($instrNode);
+                if (!$missionNode->hasChildNodes()) {
+                   $datacenterNode = $missionNode->parentNode;
+                   $datacenterNode->removeChild($missionNode); 
+                }
+            }
+            
+            $this->Mgr->xmlDom->save($this->Mgr->xmlName);
+            $msg .= 'dataset deleted  '.$this->vi.'<br/>'; 
+        }
+         return array('success' => true, 'msg' => $msg);
+  }
+}
+?>
\ No newline at end of file
diff --git a/php/classes/UserMgr.php b/php/classes/UserMgr.php
new file mode 100644
index 0000000..5551ff5
--- /dev/null
+++ b/php/classes/UserMgr.php
@@ -0,0 +1,738 @@
+<?php
+/**
+ * @class UserMgr
+ * @version $Id: UserMgr.php 2820 2015-03-18 06:46:57Z elena $
+ * 
+ */
+
+/*
+define('DATAPATH', USERPATH.'WS/');
+define('REQPATH',USERPATH.'REQ/');
+define('RESDIRNAME',USERPATH.'RES/');
+define('TTPATH', USERPATH.'TT/');
+define('JOBPATH', USERPATH.'jobs/');
+*/
+
+  class UserMgr {
+
+
+     public $user, $IP, $userdir;
+     protected $passwd;
+     protected $sessionID;
+     protected $userDirs = array('USERWSDIR' => 'WS', 'USERREQDIR' => 'REQ', 'USERDATADIR' => 'DATA',
+			       'USERWORKINGDIR' =>'RES', 'USERTTDIR' => 'TT', 'USERJOBDIR' => 'JOBS',
+			       'USERTEMPDIR' => 'TEMP');	
+     protected $userMissions;
+     protected $amdaClient; //client to dd webservice
+     
+     public $isFirst = false;
+     public $isNewInfo = false;
+     public $isSpecialInfo = null;
+
+      function __construct($username,$password,$sessionID) {
+ 	 
+      // if magic quotes is on, stripslashes
+	if(get_magic_quotes_gpc()){
+	  $in = array(&$_GET, &$_POST, &$_COOKIE);
+	  while(list($k,$v) = each($in)){
+	      foreach($v as $key => $val){
+		if(!is_array($val)){
+		    $in[$k][$key] = stripslashes($val);
+		    continue;
+		}
+		$in[] =& $in[$k][$key];
+	      }
+	  }
+	  unset($in);
+	}
+     
+	if (isset($_POST['username'])) {
+        // Process Guest Login
+              if (strcasecmp(trim($_POST['username']),"guest") == 0) {
+                $this->processGuestLogin();
+              }
+              else {
+                $this->user = trim($_POST['username']);
+               }
+        }
+	else if (isset($username))
+	  $this->user = trim($username);
+
+        //TODO crypt / decrypt
+        if (!isset($this->passwd)) {
+            if (isset($_POST['password'])) 
+                $this->passwd = $_POST['password'];
+            else if (isset($password))
+                $this->passwd = $password;
+        }
+
+	if (isset($_GET['sessionID'])) 
+	  $this->user = $_GET['sessionID'];
+	else if (isset($sessionID))
+	  $this->user = $sessionID;
+	  
+
+        $this->amdaClient = new AmdaClient();
+   }
+
+        //TODO if needed?? set session ID
+      protected function setID() {
+ 		    
+	       
+     }
+
+      public  function getIPclient(){
+
+ /*
+    REMOTE_ADDR is the only really reliable information,
+    as it is transmitted to you by your web server that
+    is handling the request. It can be theoretically 
+    falsified as well, but that is much, much harder 
+    than spoofing a header value, and an entirely different class of attack.
+*/
+            if (getenv('REMOTE_ADDR'))  {       
+                    $realIP = getenv('REMOTE_ADDR');      
+            }          
+            else {
+                        //get local IP
+                     $command="hostname -i";
+                     $realIP = exec($command);
+            }
+          return $realIP;
+      }
+
+      
+      public function getUserInfo()
+      {
+      	 return $this->amdaClient->getUserInfo($this->user);
+      }
+
+/*
+*          Get Available Missions for a User (groups restriction)
+*/   
+     protected function getAvailableMissionsByUser()
+     {
+       $res  = $this->amdaClient->getUserAvailableMissions($this->user);
+ 
+       if (!$res['success'])
+         return array('local' => array(), 'external' => array());
+       return array('local' => $res['local'], 'external' => $res['external']);
+     }
+
+    public function createDir() 
+    { 
+        if (!mkdir($this->userdir, 0755, true)) return false;
+
+        foreach ($this->userDirs as $key => $val) {
+                if (!mkdir($this->userdir.$val.'/', 0755, true)) return false;
+        }
+       return true;
+    }
+
+/*
+* Check if special groups with settings exist and user is from these groups
+* Take the first group from user list
+*/
+    protected function isSpecialGroup() {
+         
+        $specialGrps = new DomDocument("1.0");
+ 
+        if (!($specialGrps->load(specialGrpsXml)))
+                 return null; 
+
+        $info = $this->amdaClient->getUserInfo($this->user); 
+ 
+        $userGrps = explode(',',$info['group']);
+
+         $specialGrpNode = null;
+
+         foreach ($userGrps as $grp) {
+            $specialGrpNode = $specialGrps->getElementById($grp); 
+            if ($specialGrpNode) break;                            
+          }
+ 
+         return $specialGrpNode;
+    }
+        
+/*
+*  Totally replace IMPEX staff in user remote tree
+*/
+    protected function updateImpex()
+    {
+        $myRemoteBases = new DomDocument("1.0");   
+                    
+        if (!$myRemoteBases->load(USERWSDIR.'RemoteParams.xml')) 
+                                                        return false;
+
+        $myBases = $myRemoteBases->getElementsByTagName('dataCenter');
+
+
+        if ($myBases->length < 1) 
+                            return false;
+        // Delete all impex staff at first
+        $i = $myBases->length - 1; 
+ 
+        while ($i > -1) { 
+            $base = $myBases->item($i);
+            $id = $base->getAttribute('xml:id'); 
+
+            if ($id == 'FMI_GUMICS'){
+              $simuRemoteBases = new DomDocument("1.0"); 
+              $simuRemoteBases->load(USERWSDIR.'RemoteParams.xml');
+            
+	      $gumicsNode = $simuRemoteBases->getElementById('FMI_GUMICS');
+              if ($gumicsNode != NULL)
+ 		$gumicsRuns = $gumicsNode->getElementsByTagName('runID');
+            }
+            
+            
+ 
+	    if (($base->hasAttribute('isSimulation')) || $id == "CLWeb") { 
+                                    $base->parentNode->removeChild($base);   
+                }                  
+            $i--; 
+        } 
+
+        $remoteBases = new DomDocument("1.0");
+        if (!$remoteBases->load(RemoteData.'Bases.xml'))
+                                    return false;
+        $bases = $remoteBases->getElementsByTagName('dataCenter');
+         
+        if ($bases->length < 1)
+                            return false;   
+
+        $myRootElement = $myRemoteBases->documentElement; 
+
+        // and add impex
+       foreach ($bases as $base) {
+                //TODO && $id != 'FMI_GUMICS' or ! hasAttribute('isAddable')
+                if ($base->hasAttribute('group') && 
+                    $base->getAttribute('group') == 'IMPEX') {
+                                                
+                        $baseId = $base->getAttribute('xml:id');
+                        $baseXml = new DomDocument("1.0");
+                        // no data base description ; skip this data base  
+                        if (!file_exists(RemoteData.$baseId.'/base.xml')) continue;
+ 
+                        // can't read base.xml ; skip this data base
+                        if (!$baseXml->load(RemoteData.$baseId.'/base.xml'))  continue;                                                          
+                                                                                                                                
+                        $myBase = $myRemoteBases->importNode($baseXml->getElementById($baseId), true);
+                        $myBase->setAttribute('name', $base->getAttribute('name'));
+                        $myBase->setAttribute('desc', $base->getAttribute('desc'));
+                        
+                        if ($baseId == "FMI_GUMICS"){
+			    $gumicsSimuReg = $myRemoteBases->getElementById('FMI_GUMICS_Earth_Magnetosphere');
+			                     
+			    if (($gumicsSimuReg != NULL)&& ($gumicsRuns->length > 0)){ 
+			      for($c = 0; $c < $gumicsRuns->length; $c++){
+				$node = $gumicsRuns->item($c);
+				$node = $myRemoteBases->importNode($node, true);
+				$gumicsSimuReg->appendChild($node); 
+			      } 
+			    }
+                        }
+                        
+                        
+                        $myRootElement->appendChild($myBase); 
+                }
+           }  
+                   
+       return $myRemoteBases->save(USERWSDIR.'RemoteParams.xml');
+
+    } 
+
+ /*
+ *  make local data tree from list of missions
+ */   
+    protected function makeLocalTree() 
+    {
+            if (file_exists(DATAPATH.'rank.json')) 
+                $cmpArr = json_decode(file_get_contents(DATAPATH.'rank.json'), true);
+            else 
+                $cmpArr = null;
+
+            $localMissions = new DomDocument("1.0");
+	    $localMissions->load(LocalData.'Missions.xml');
+ 
+            $xp = new domxpath($localMissions);
+            $bases = $xp->query("//MissionID[@status='required']");
+                           
+            $piBase = new DomDocument("1.0");
+            $piBase->formatOutput = true;
+            $piBase->preserveWhiteSpace = false;
+            
+            $localDom  = new DomDocument("1.0");
+            $BASE = $localDom->createElement('dataRoot'); 
+            $Amda = $localDom->createElement('dataCenter');
+            $Amda_name = new DomAttr('name', 'AMDA');
+            $Amda->appendChild($Amda_name);
+            $Amda_desc = new DomAttr('desc', 'AMDA_Internal_Data_Base');
+            $Amda->appendChild($Amda_desc);
+ 
+            $availableMis = $this->userMissions['local'];
+ 
+            foreach ($bases as $base) {            
+                     $xml = LocalData.'DD_'.$base->nodeValue.'.xml';
+                     $notAvailable = (array_search($base->nodeValue,$availableMis) === FALSE);
+                     if (file_exists($xml)){
+                        if (!$piBase->load($xml))
+                                error_log($base->nodeValue,1,email);     
+                        $vi = $piBase->getElementsByTagName("mission");
+                        if ($vi->length > 0) for ($i = 0; $i < $vi->length; $i++){
+                              $nodeNew = $localDom->importNode($vi->item($i),true);
+                              $nodeNew->setAttribute('available',!$notAvailable);
+                              // set rank by target name if file rank.json exists
+                             if (is_array($cmpArr)) {
+                                $targets = $vi->item($i)->getElementsByTagName('target');
+                                if ($targets->length > 0) {
+                                    // First target is the main one
+                                    $target = $targets->item(0);
+                                    $index = $cmpArr[$target->nodeValue];
+                                    if ($index)  
+                                            $nodeNew->setAttribute('rank',$index);
+                                    else $nodeNew->setAttribute('rank', 999);
+                                  }
+                                 }
+
+                            $Amda->appendChild($nodeNew);
+                         }                  
+                    }
+              }
+           
+             if ($Amda->hasChildNodes()) $BASE->appendChild($Amda);             
+             $localDom->appendChild($BASE);
+             
+            // set access rights at all levels 
+            $xpLoc = new domxpath($localDom);
+            // get all nodes with 'group' attribute (restricted)
+            $restrictedTags =  $xpLoc->query("//*[@group]");
+
+            if ($restrictedTags->length > 0) {
+                    $info = $this->amdaClient->getUserInfo($this->user);              
+                    $userGrps = explode(',',preg_replace('/\s+/', '',$info['group']));
+
+                    foreach ($restrictedTags as $restriction) {
+                        $group = $restriction->getAttribute('group');
+                        $available = in_array($group,$userGrps);
+                        // special restrictions
+                        if (!$available && $restriction->getAttribute('restriction')) {
+                                $restriction_type = $restriction->getAttribute('restriction');
+                                // time restriction
+                                if ($restriction_type == 'time') {
+                                    $id_restr = $restriction->getAttribute('xml:id');
+                                    $restrictions = $this->amdaClient->getTimeRestriction(str_replace(":","_",$id_restr));
+                                    if ($restrictions) {
+                                        $restriction->setAttribute('restricted', $restrictions['days']);
+                                        $dataStop = $restriction->getElementsByTagName('dataStop');
+                                        if ($dataStop->length > 0) {
+                                            $globalStop = explode("T", $restrictions['globalstop']);
+                                            $dataStop->item(0)->nodeValue  = str_replace("-", "/", $globalStop[0]);
+                                        }
+                                    }
+                                }
+                                // absolute restriction: remove node
+                                else {
+                                    $restriction->parentNode->removeChild($restriction);
+                                }
+                         } 
+                         else {
+                            // general restriction: disable node
+                            $restriction->setAttribute('restricted', !$available);
+                        }
+                    }
+            }
+
+            $xsl = new DomDocument("1.0");
+            $xsl->load(XMLPATH.'dd2tree.xsl');
+            
+            $xslt = new XSLTProcessor();
+            $xslt->importStylesheet($xsl);
+             
+            $piBase->loadXML($xslt->transformToXML($localDom));
+             
+            $piBase->save(USERWSDIR.'LocalParams.xml');
+      }
+  
+/*
+ *  make remote data tree from list of distant bases if it doezn't exist
+ */   
+      protected function makeRemoteTree() {
+   
+        $remoteBases = new DomDocument("1.0");
+        $availableMis = $this->userMissions['external'];
+ 
+        if (file_exists(USERWSDIR.'RemoteParams.xml')) 
+        {
+            // replace IMPEX nodes
+            $status = $this->updateImpex();
+            if (!$status) error_log('IMPEX Remote Base can not be updated',1,email);
+            // check/change access rights
+            $remoteBases->load(USERWSDIR.'RemoteParams.xml');
+            $bases = $remoteBases->getElementsByTagName('dataCenter');
+            $delete = new UserDeleteObsolete();
+            if ($bases->length > 0) 
+                foreach ($bases as $base) {
+                    $baseId = $base->getAttribute('xml:id');
+                    $notAvailable = (array_search($baseId,$availableMis) === FALSE);
+                    $base->setAttribute('available',!$notAvailable);
+                        
+                    if ($base->getAttribute('isSimulation')) continue;
+                        
+                    // Update Info on External Data Sets in UserTree.xml for everything except IMPEX
+                    $dataSets = $base->getElementsByTagName("dataset");
+                    if ($dataSets->length > 0) {
+                        $baseExtDom = new DomDocument("1.0");
+                        if (!$baseExtDom->load(RemoteData.$baseId.'/base.xml')) { 
+                            $base->setAttribute("desc","ATTENTION!!! This Base set DOES NOT ANY MORE EXIST!!! Remove it from your tree");                                                                         
+                            $base->setAttribute('obsolete', true);
+                            error_log('NO '.RemoteData.$baseId.'/base.xml',1,email);
+                            continue;
+                        }
+                        foreach ($dataSets as $dataSet) {
+                            $dataSetID = $dataSet->getAttribute("xml:id");
+                            $origDataSet = $baseExtDom->getElementById($dataSetID);
+                            if ($origDataSet != null) {
+                                    $desc = $origDataSet->getAttribute("desc");
+                                    if ($desc != null) $dataSet->setAttribute("desc", $desc);
+                            }
+                            else {                                        
+                                    $delete->setVI($dataSet->getAttribute('name'));                               
+                                    $res = $delete->deleteDerived();                                                                           
+                                    $res = $delete->deleteConditions();                                      
+                                    $res = $delete->deleteRequests();                                                                               
+                                    $res = $delete->deleteAliases();                                                                                                              
+                                    $dataSet->setAttribute("desc","ATTENTION!!! This data set DOES NOT ANY MORE EXIST!!! Remove it from your tree");                    
+                                    $dataSet->setAttribute('obsolete', true);
+                            }
+                        }
+                    }                  
+            } 
+                                                                                                                                                                                                                        
+            return $remoteBases->save(USERWSDIR.'RemoteParams.xml'); 
+        }	 
+             
+	    $remoteBases->load(RemoteData.'Bases.xml');
+            $bases = $remoteBases->getElementsByTagName('dataCenter');
+               
+            if ($bases->length == 0) return 'NO REMOTE BASES';         
+  	   
+	    $paramMgr = new ParamMgr();
+	    $paramMgr->xmlDom = new DomDocument("1.0");
+	    $paramMgr->xmlDom->formatOutput = true;
+	    $paramMgr->xmlDom->preserveWhiteSpace = false;
+            
+ 
+            $BASE = $paramMgr->xmlDom->createElement('dataRoot'); 
+	    $BASE->setAttribute('xml:id','myRemoteData-treeRootNode');
+  
+	    $baseXml = new DomDocument("1.0");
+	    	    
+	    foreach ($bases as $base) {
+	     
+	      $toInclude = $base->hasAttribute('default'); 
+	      $baseId = $base->getAttribute('xml:id');
+	      $paramMgr->baseId = $baseId;
+	      
+	      $notAvailable = (array_search($baseId,$availableMis) === FALSE);
+ 
+                // no data base description ; skip this data base  
+ 	       if (!file_exists(RemoteData.$baseId.'/base.xml')) continue;
+	  	                                    	       
+                // can't read base.xml ; skip this data base
+                if (!$baseXml->load(RemoteData.$baseId.'/base.xml')) continue;			        			      
+
+            //        Some small & well known data centers are included by default: 
+            //        Each VI structure and VI (dataset) description at DD Server for them should exist
+	      if ($toInclude)  { 	           
+ 
+	 	    $center = $paramMgr->xmlDom->importNode($baseXml->getElementById($baseId), true);
+		    $datasets = $center->getElementsByTagName('dataset');
+
+		    foreach ($datasets as $dataset){
+                            // THEMIS => pseudo remote center; everything is predefined
+			  if ($baseId === 'THEMIS') {
+				$params = $dataset->getElementsByTagName('parameter'); 
+				foreach ($params as $param)  
+						$paramMgr->makeThemisComponents($param);
+			    } 
+			  else {
+				$infoFileName = $paramMgr->getInfoName($dataset->getAttribute('name'));
+				$paramMgr->localInfo = RemoteData.$baseId.'/'.$infoFileName;
+
+				if (!file_exists($paramMgr->localInfo)) continue;				 
+
+				$params = $dataset->getElementsByTagName('parameter');
+				$paramMgr->remoteViId = $dataset->getAttribute('name');
+				foreach ($params as $param) {
+				      $paramMgr->paramId = $param->getAttribute('name');
+				      $paramGlobalId =  $param->getAttribute('xml:id');				  
+				      $paramMgr->paramXML = RemoteData.'PARAMS/'.$paramGlobalId.'.xml';	
+			      				  
+				      if (!file_exists($paramMgr->paramXML)) continue;
+				      if (!$paramMgr->paramDom) 
+					    $paramMgr->paramDom = new DomDocument("1.0");
+
+				      $paramMgr->paramDom->load($paramMgr->paramXML);
+				      
+				      if (!$paramMgr->makeComponents($param)) continue;
+				}
+			  }			  
+		    }
+	       }
+	     else {
+		$center = $paramMgr->xmlDom->importNode($base, true);
+	      }
+
+	    $center->setAttribute('name', $base->getAttribute('name'));
+	    $center->setAttribute('desc', $base->getAttribute('desc'));
+	    $center->setAttribute('available',!$notAvailable);
+	    $BASE->appendChild($center); 
+ 
+           }  
+            $paramMgr->xmlDom->appendChild($BASE);
+         
+            return $paramMgr->xmlDom->save(USERWSDIR.'RemoteParams.xml');
+	     
+      }
+
+    protected function processGuestLogin() {
+
+        if (!$this->check_email_address($_POST['password'])) {
+            die('<a href="index.html"><h3>Invalid e-mail address. Please, try once more.</h3></a>');
+        }
+
+        $passwd = $_POST['password'];
+        $IP = $this->getIPclient();
+        $Guest = new Guest($IP,$passwd);
+        // email and IP in guests.login
+        $Guest->registerGuest();
+        $Guest->checkGuestTimes();
+        $user = $Guest->addGuest(); 
+
+        if ($user == "allGuestLoginsInUse") {
+            die('<a href="index.html"><h3>Sorry, all guest accounts are currently in use. Please, try to login in 30 min.</h3></a>');  
+   
+        }
+        $this->user = $user;
+        $this->passwd = "guest";
+  
+      }    
+ 
+/*****************************************************************
+*                           PUBLIC FUNCTIONS
+*****************************************************************/
+    // migration from old to new AMDA
+     public function convertWS() {
+
+        $convert = new UserWsTransfer($this->user); 
+
+       $res =  $convert->checkWS();
+       if (!$res['success']) return $res;
+
+       $res =  $convert->transferDerived();
+       $msg = $res['msg'];
+
+       $res = $convert->transferTimeTables();
+       $msg .= $res['msg'];
+
+       $res = $convert->transferConditions();
+       $msg .= $res['msg'];
+
+       $res = $convert->transferRequests();
+       $msg .= $res['msg'];
+
+       $res =  $convert->transferMyData(); 
+       $msg .= $res['msg'];
+
+       error_log('Transfer workspace from old AMDA for '.$this->user, 1, 'amda@irap.omp.eu');
+       return array('success' => true, 'msg' => $msg);     
+    }
+
+     public function setPath() {
+
+        if (isset($_GET['sessionID'])) {
+                $this->user = $_GET['sessionID'];
+                $this->userdir = USERPATH."/".$this->user."/";                
+        }
+            // for testing purposes
+           else if (defined('TRANSFERUSER')) {
+                  $this->userdir = BASE_PATH."test/".TRANSFERUSER."/";
+        }
+        else if (isset($this->user)) {
+             $this->userdir = USERPATH."/".$this->user."/";
+        }
+
+        $usrdir = $this->userdir;
+ 
+        define ("USERDIR", "$usrdir/");
+
+        foreach ($this->userDirs as $key => $val) {
+            $dir = $usrdir.$val;
+            define("$key","$dir/");
+        } 
+      }
+
+      public function ddCheckUser() {
+
+		$this->IP = $this->getIPclient();
+
+		$cmdCheckUser =  DDBIN."Check_User ".$this->IP." ".$this->user." 1> /dev/null 2> /dev/null";   
+		system($cmdCheckUser, $res);
+		return $res;
+          }
+  
+      public function ddLogin() {
+
+             $this->IP = $this->getIPclient();
+
+             $loginCommd = DDBIN."DD_htmllogin ".$this->user." ".$this->passwd." ".$this->IP;
+             system($loginCommd, $res);
+
+	    return $res;
+	  }
+    
+          	  	
+      public function init() { 
+      
+            if ($this->ddLogin() != 0) 
+                        die('<h2>You are trying to log in as '.$this->user.'<br/> Please check that you entered a valid password</h2>');
+            
+            $this->userdir = USERPATH."/".$this->user."/";
+
+            if (!is_dir($this->userdir)) 
+            {           
+                if (!$this->createDir()) { 
+                    die("Login for ".$this->user." failed: Can't create WS dirs");
+                }
+                $this->isFirst = true;                
+            }
+
+            // if new info exists it will be shown to each user
+            if (file_exists($this->userdir.'newInfo')) 
+            {
+                $this->isNewInfo = true;                
+                unlink($this->userdir.'newInfo');
+            }
+ 
+            $this->setPath(); 
+            
+            $this->userMissions = $this->getAvailableMissionsByUser();
+                  
+            $this->makeLocalTree();
+	 
+	    $ok = $this->makeRemoteTree();
+	                      
+	    if (!file_exists(USERWORKINGDIR.'DD_Request.res'))
+			      copy(Plot.'DD_Request.res',USERWORKINGDIR.'DD_Request.res');
+
+            if (!file_exists(USERWSDIR.'Request.xml'))
+				  $reqMgr = new RequestMgr();
+
+	    if (!file_exists(USERWSDIR.'Tt.xml'))
+				  $ttMgr = new TimeTableMgr();
+
+	    if (!file_exists(USERWSDIR.'Alias.xml'))
+				  $ttMgr = new AliasMgr();
+
+            //TODO sessionID = user + WSname
+	    $sessionID = $this->user;
+             
+            /*
+            * Special groups are defined in the generoc_data/SpecialSettings/Groups.xml
+            */
+            $specialGroup = $this->isSpecialGroup();
+            
+           // Special Info for special groups
+           if ($specialGroup) {
+                // Special Settings for special groups - first visit just copying
+              if ($this->isFirst) {
+                $grp = $specialGroup->getAttribute('xml:id');
+                $tags = $specialGroup->getElementsByTagName('folder');
+
+                foreach ($tags as $tag) {                 
+                    $folder = $tag->getAttribute('name');
+                    foreach (glob(SpecialSettingsDir.$grp."/".$folder."/*") as $file) {
+                        copy($file, $this->userdir.$folder."/".basename($file));
+                        } 
+                    }
+                    // mark to show help information
+                    touch($this->userdir."$grp"."Help");
+                }
+                // add requests
+                else {
+
+                    
+                }
+                $grpName = $specialGroup->getAttribute('xml:id');
+                $helpName = "$grpName"."Help";
+ 
+                if (file_exists(HELPPATH.$helpName) && file_exists($this->userdir.$helpName))
+                            $this->isSpecialInfo = $helpName;
+
+            }
+
+	  return $sessionID;
+      }
+
+        public function dirSize($dir) {
+
+            $handle = opendir($dir);
+        
+            while ($file = readdir($handle)) {
+                if ($file != '..' && $file != '.' && !is_dir($dir.'/'.$file)) {
+                    $mas += filesize($dir.'/'.$file);
+                    } else if (is_dir($dir.'/'.$file) && $file != '..' && $file != '.') {
+                    $mas += $this->dirSize($dir.'/'.$file);
+                }
+            }
+            return $mas;
+        } 
+
+
+        public function  getWsSize() {
+
+            $dirsToCheck = array(USERDATADIR, USERTTDIR, USERWORKINGDIR);
+            $wsSize = 0;
+            foreach ($dirsToCheck as $dir) 
+                if (is_dir($dir)) $wsSize += $this->dirSize($dir);
+
+            return $wsSize;
+        }
+ 
+        public function check_email_address($email) {
+        //http://www.ilovejackdaniels.com/php/email-address-validation/
+
+                // First, we check that there's one @ symbol, and that the lengths are right
+                if (!ereg("^[^@]{1,64}@[^@]{1,255}$", $email)) {
+                // Email invalid because wrong number of characters in one section, or wrong number of @ symbols.
+                    return false;
+                }
+
+                // Split it into sections to make life easier
+                $email_array = explode("@", $email);
+                $local_array = explode(".", $email_array[0]);
+                for ($i = 0; $i < sizeof($local_array); $i++) {
+                    if (!ereg("^(([A-Za-z0-9!#$%&'*+/=?^_`{|}~-][A-Za-z0-9!#$%&'*+/=?^_`{|}~\.-]{0,63})|(\"[^(\\|\")]{0,62}\"))$", $local_array[$i])) {
+                        return false;
+                    }
+                }
+
+                if (!ereg("^\[?[0-9\.]+\]?$", $email_array[1])) { // Check if domain is IP. If not, it should be valid domain name
+                    $domain_array = explode(".", $email_array[1]);
+                    if (sizeof($domain_array) < 2) {
+                        return false; // Not enough parts to domain
+                    }
+                    for ($i = 0; $i < sizeof($domain_array); $i++) {
+                    if (!ereg("^(([A-Za-z0-9][A-Za-z0-9-]{0,61}[A-Za-z0-9])|([A-Za-z0-9]+))$", $domain_array[$i])) {
+                    return false;
+                    }
+                    }
+                }
+                return true;
+            }
+
+          
+ }
+
+?>
diff --git a/php/classes/UserWsTransfer.php b/php/classes/UserWsTransfer.php
new file mode 100644
index 0000000..a8def38
--- /dev/null
+++ b/php/classes/UserWsTransfer.php
@@ -0,0 +1,624 @@
+<?php
+/**
+ * @class UserWsTransfer
+ * @version $Id: UserWsTransfer.php 1718 2013-08-28 15:52:38Z myriam $
+ *
+ */
+
+ class UserWsTransfer {  
+
+  private $ws, $Mgr;
+  private $wsDir;
+  private $ws_deleted;
+   
+  function __construct($user) {  
+
+        define('OLDUSERPATH', ROOT_PATH.'USERS/');
+        define('TRANSFERUSER', $user);
+        define('CONVERSIONDIR',  BASE_PATH.'utils/conversion/');
+
+        $this->ws = new DomDocument("1.0");
+        $this->wsDir = OLDUSERPATH.TRANSFERUSER.'/WS/';
+
+        $this->ws_deleted = array();
+   }
+
+ public function checkWS() {
+
+  // old ws        
+   if (!is_dir(OLDUSERPATH.TRANSFERUSER)) {
+                                error_log('no  '.TRANSFERUSER.' at old AMDA',1,email);
+                                return array('success' => false, 'error' => 'Sorry, it seems you have no account at old AMDA');
+    }
+
+   if (!file_exists($this->wsDir.'ws.xml')) {
+                                error_log('no ws.xml for '.TRANSFERUSER,1,email);
+                                return array('success' => false, 'error' => 'Sorry, we failed to find your workspace at old AMDA');
+    }
+
+   if (!$this->ws->load($this->wsDir.'ws.xml')) {
+                                        error_log('cannot load ws.xml for '.TRANSFERUSER,1,email);
+                                        return array('success' => false, 'error' => 'Sorry, we failed to access your workspace at old AMDA');
+   }
+   
+    return array('success' => true);
+
+ }
+
+  public function hasAlias($expression) {
+       
+       return (strpos($expression, "#") !== false);
+
+  }
+
+
+  public function replaceAliases($expression){
+
+      $aliasXML = new DomDocument("1.0");
+      $aliasXML->load($this->wsDir.'alias.xml'); 
+      $aliases_ = $aliasXML->getElementsByTagName('alias');
+
+      if ($aliases_->length == 0) return $expression;
+
+      $aliases = array();
+      foreach ($aliases_ as $alias) {
+            $aliases["#".$alias->getAttribute("name")] = $alias->nodeValue; 
+      }
+// sort in desc order by key (alias itself)
+      krsort($aliases, SORT_NATURAL);
+        
+         foreach ($aliases as $alias => $param) {
+
+            if (!$this->hasAlias($expression))
+                   break;
+            if (strpos($expression, $alias) !== false) {
+                 $newExp = str_replace($alias, $param, $expression);
+                 $expression = $newExp;
+            }
+        }
+        return $expression;
+    }
+
+//duplication of FilesMgr method
+ public function getSampling($fileName, $format) {
+ 
+      if ($format === 'cdf') {
+            copy($fileName, "temp.cdf");         
+            exec('cdfsamplingfromdata ', $result); 
+            unlink("temp.cdf");
+            $minSamp = $result[count($result)-1]; 
+         }
+      else if ($format === 'cef') {
+            exec('cefsampling '.$fileName, $result); 
+            $minSamp = $result[count($result)-1];
+       }
+       else $minSamp = null;
+//TODO if min & max                           
+            return $minSamp;
+
+ }
+ 
+
+ public function deleteParam($exp, $isPlot) {
+
+    $deletedXML = new DomDocument("1.0");
+
+    if ($isPlot) $deletedXML->load(CONVERSIONDIR.'Plot_Deleted.xml'); 
+    else $deletedXML->load(CONVERSIONDIR.'Deleted.xml'); 
+
+    $deletedNodes = $deletedXML->getElementsByTagName('deleted');
+    $toDelete = false;
+
+   if (strpos($exp, "CDAWEB") !== false) 
+                return true;                
+   
+   
+    foreach ($deletedNodes as $item) {
+        if (strpos($exp, $item->getAttribute('xml:id')) !== false)  {
+        $toDelete = true;
+        break;
+        }
+    }
+
+  return $toDelete;
+}
+
+  public function updateParams($expression, $isPlot){
+   
+ 
+    $convertXML = new DomDocument("1.0");
+
+    if ($isPlot) $fileNames = glob(CONVERSIONDIR.'*_convertPlot.xml');
+    else $fileNames = glob(CONVERSIONDIR.'*_convert.xml');
+
+
+    foreach ($fileNames as $file) {
+       
+       if (!$convertXML->load($file)) 
+                        error_log('ERROR loading '.$file,1,email);
+        $convertedNodes = $convertXML->getElementsByTagName('param_convert');
+  
+        foreach ($convertedNodes as $item) {   
+            $pairs[$item->getAttribute('oldid')] = $item->getAttribute('xml:id');
+        }    
+        krsort($pairs, SORT_NATURAL);
+        $newExp = strtr($expression, $pairs);
+        $expression = $newExp;
+         
+    }
+ 
+    return $expression;
+  }
+
+  public function convertArgs($parId, $args){        
+ //TODO arguments.php via Ext.Direct call     
+        $cmd = 'php '.BASE_PATH.'php/arguments.php "'.$parId.'"';
+
+        $arguments = explode(",", $args);
+        $newArgs = array();
+
+        $res = exec($cmd);
+
+//TODO just main arguments....
+        foreach ($arguments as $item) {
+            if (strpos($item, "/") !== false) 
+                                    $arg = substr($item,1,strlen($item));
+            switch ($arg) {
+                case "black" :
+                case "blue" :
+                case "green" :
+                case "red" :
+                              $newArgs[] = "Color=".$arg;
+                              break;
+
+                case "gsm" :
+                case "sm" : if (strpos($res, $arg) !== false)
+                                $newArgs[] = "RefFrame=".strtoupper($arg);
+                              break;
+
+                case "log" :
+                case "lin" : if (strpos($res, $arg) !== false)
+                                $newArgs[] = "Scale=".$arg;
+                               break;
+                case "cyl" : 
+                                $newArgs[] = "OrbitPresentation=".strtoupper($arg);
+                                break;
+                default :
+                            
+            } 
+        }
+
+        if  (count($arguments) === 0) return  "select...";
+
+        if (count($arguments) > 1)  return implode("&",$newArgs);
+
+        return $newArgs;
+    }
+
+  public function createFolders($listName, $nodeType){
+  // create folders
+        $folders = $this->ws->getElementsByTagName($listName)->item(0)->getElementsByTagName('level1');
+        $obj = new stdClass();
+        foreach ($folders as $folder) {
+            $obj->leaf = false;
+            $obj->old_name = "new Folder";
+            $obj->name = $folder->getAttribute('name');
+            $obj->parent = $nodeType."-treeRootNode";
+            $obj->nodeType = $nodeType;
+
+            $this->Mgr->renameObject($obj); 
+        }
+    }
+
+  public function transferDerived() {
+
+        $msg = '<b>WS (Derived) Params:</b><br/>';
+    // derived parameters                
+        $this->Mgr = new DerivedParamMgr('derivedParam');
+        $this->createFolders('paramList','derivedParam');
+   
+    // get old params  
+        $wsParams = $this->ws->getElementsByTagName('param');
+        if ($wsParams->length == 0) {
+               return array('success' => true, 'msg' => 'No parameters');
+        }
+        $obj = new stdClass();
+        foreach ($wsParams as $param) {        
+            $obj->name = $param->getElementsByTagName('name')->item(0)->nodeValue;
+            $expression = $param->getElementsByTagName('buildchain')->item(0)->nodeValue;
+
+            if ($this->hasAlias($expression)) {
+                    $newExp = $this->replaceAliases($expression);  
+                    $expression = $newExp;
+            }
+            if ($this->deleteParam($expression)) {
+                    $msg .= 'deleted  name:<b>'.$obj->name.'</b>; expression: '.$expression.'<br/>';
+                 //   error_log( 'For INFO : DELETED '.$expression,1,email);
+                    $this->ws_deleted[] = $obj->name;
+                    continue;
+            }
+           
+            $obj->buildchain = $this->updateParams($expression);
+            $obj->timestep = $param->getElementsByTagName('timestep')->item(0)->nodeValue;
+            $obj->units = $param->getElementsByTagName('units')->item(0)->nodeValue;
+            $obj->description = $param->getElementsByTagName('description')->item(0)->nodeValue;
+            $obj->ytitle = ""; 
+            $obj->nodeType = "derivedParam";
+            $obj->leaf = true;
+
+            $this->Mgr->objectDom = new DomDocument("1.0");
+            if ($param->parentNode->tagName === 'level1') {
+                $folder_id = $param->parentNode->getAttribute('id');
+                $this->Mgr->createObject($obj, $folder_id);
+            }
+            else {
+                $this->Mgr->createObject($obj);
+            }
+        }
+        $msg .= ' ok<br/>';
+        return array('success' => true, 'msg' => $msg);
+  }
+
+  public function transferTimeTables() {
+    
+     $msg = '<b>Time Tables:</b><br/>';
+ // time tables      
+     $this->Mgr = new TimeTableMgr();
+     $this->createFolders('timetabList','timeTable');   
+     $TTdir = OLDUSERPATH.TRANSFERUSER."/TT/";
+ // get old time tabs  
+      $timeTabs = $this->ws->getElementsByTagName('timetab');
+
+      if ($timeTabs->length == 0) {
+               return array('success' => true, 'msg' => 'No time tables');
+        }
+
+      $obj = new stdClass();
+
+      $ttXML = new DomDocument("1.0");
+      foreach ($timeTabs as $item) {   
+      
+            $obj->name = $item->getElementsByTagName('name')->item(0)->nodeValue;      
+            $obj->created = $item->getElementsByTagName('created')->item(0)->nodeValue;                
+            $obj->description = $item->getElementsByTagName('condition')->item(0)->nodeValue;
+            $obj->history = 'From old AMDA';
+            $obj->nodeType = "timeTable";
+            $obj->leaf = true;
+// intervals
+            if (!$ttXML->load($TTdir.$obj->name.".xml")) {
+                 $msg .=  'failed to copy '.$obj->name.'<br/>';
+                continue;
+            }   
+        
+            $intervals = $ttXML->getElementsByTagName("Interval");
+            $ints = array();
+            
+            foreach ($intervals as $interval){
+            				$int = new stdClass();
+                $int->start = $interval->getElementsByTagName("Start")->item(0)->nodeValue;
+                $int->stop =  $interval->getElementsByTagName("Stop")->item(0)->nodeValue;
+                $ints[] = $int;
+            }
+             $obj->nbIntervals = $intervals->length;
+
+             $this->Mgr->objectDom = new DomDocument("1.0");
+            if ($item->parentNode->tagName === 'level1') {
+                $folder_id = $item->parentNode->getAttribute('id');
+                $res = $this->Mgr->createObject($obj, $folder_id);
+            }
+            else {
+                 $res = $this->Mgr->createObject($obj);
+            }            
+            
+            if ($res['id']) {
+                $res = $this->Mgr->saveIntervals($res['id'],$ints,'create');
+                if (!$res['success'])
+                    $msg .= 'failed copy Time Table '. $obj->name.'<br/>';
+              }
+            else {
+                    $msg .= 'failed copy Time Table '. $obj->name.'<br/>';
+            }
+
+        }
+      
+        $msg .= ' ok<br/>';
+
+        return array('success' => true, 'msg' => $msg);
+  }
+ 
+  public function transferConditions() {
+     
+    $msg = '<b>Conditions:</b><br/>';
+    // conditons                
+        $this->Mgr = new RequestMgr('condition');
+        $condDir = OLDUSERPATH.TRANSFERUSER."/REQ/";
+    // get old conditions 
+        $conditions = glob($condDir."*.cond");
+
+        if (count($conditions) == 0) {
+            return array('success' => true, 'msg' => 'No conditions');
+        }
+
+        $obj = new stdClass();
+        foreach ($conditions as $item) {  
+            $cond = file($item, FILE_IGNORE_NEW_LINES);
+            $obj->name = substr(basename($item), 0, -5);
+            $expression = $cond[0];
+
+            if ($this->hasAlias($expression)) {
+                    $newExp = $this->replaceAliases($expression);  
+                    $expression = $newExp;
+            }
+
+            if ($this->deleteParam($expression)) {
+                  $msg .=  'deleted name:<b>'.$obj->name.'</b>; expression:'.$expression.'<br/>'; 
+                    continue;
+            }
+
+            $obj->expression = $this->updateParams($expression); 
+            $obj->sampling = $cond[1]; 
+            $obj->gap = $cond[2]; 
+            $obj->description = "From old AMDA";
+            $obj->timesrc = "Interval";
+
+            if ($cond[3]) {
+				            $obj->startDate = str_replace(":", "-", substr($cond[3],0,10))."T".substr($cond[3],11,8); 
+				            $obj->durationDay = "0".substr($cond[4],0,3);
+				            $obj->durationHour = substr($cond[4],4,2);
+				            $obj->durationMin = substr($cond[4],7,2); 
+				            $obj->durationSec = substr($cond[4],10,2); 
+            }
+            else {
+            	    $timestamp = mktime(0, 0, 0, date("m"), date("d")-1, date("Y"));
+            	    $obj->startDate = date('Y-m-d\TH:i:s',$timestamp);           	    
+            	    $obj->durationDay = "0001";
+            	    $obj->durationHour = "00";
+            	    $obj->durationMin = "00";
+            	    $obj->durationSec = "00";
+            }
+
+            $obj->nodeType = "condition";
+            $obj->leaf = true;
+                      
+            $this->Mgr->createObject($obj);             
+        }
+
+        $msg .= ' ok<br/>';
+
+       return array('success' => true, 'msg' => $msg);
+  }
+
+    public function transferRequests() {
+
+       $msg = '<b>Requests:</b><br/>';
+    // requests                
+        $this->Mgr = new RequestMgr('request');      
+        $reqDir = OLDUSERPATH.TRANSFERUSER."/REQ/";
+    // get old requests 
+        $requests = glob($reqDir."*.xml");
+
+        if (count($requests) == 0) {
+            return array('success' => true, 'msg' => 'No requests');
+        }
+
+        $reqXML = new DomDocument("1.0");
+
+        $obj = new stdClass();
+        foreach ($requests as $item) { 
+ 
+           if (!$reqXML->load($item)) {
+                $msg .= 'failed to copy '.substr(basename($item), 0, -4).'<br/>';
+            }           
+            $obj->name = substr(basename($item), 0, -4);
+            $obj->tabId = 1;
+            $obj->outputName = '';
+            $obj->orientation = strtoupper($reqXML->getElementsByTagName('orientation')->item(0)->nodeValue);
+            $obj->format = 'PNG';
+            $obj->title = '';
+            $obj->description = 'From old AMDA';
+            $obj->charSize = 1.3;
+            $obj->thickness = 1;
+            $obj->ppp = 3000;
+            $obj->forcedLayout = false;
+            $obj->forcedMulti = false;
+            $obj->timesrc = 'Interval';
+            $start = $reqXML->getElementsByTagName('StartTime')->item(0)->nodeValue;
+            $obj->startDate = str_replace(":", "-", substr($start,0,10))."T".substr($start,11,8);
+            $tint = $reqXML->getElementsByTagName('TimeInt')->item(0)->nodeValue;
+            $obj->durationDay = "0".substr($tint,0,3);
+            $obj->durationHour = substr($tint,4,2);
+            $obj->durationMin = substr($tint,7,2); 
+            $obj->durationSec = substr($tint,10,2);
+// Panels 
+        
+            $obj->children = array();
+            $panels = array();
+                                   
+            $params = $reqXML->getElementsByTagName('param');
+            foreach ($params as $param) {
+
+                $parId = $param->getAttribute('xml:id');
+
+//check deleted ws_
+                if ($this->ws_deleted && strtolower(substr($parId,0,3) == "ws_")) {
+                    foreach ($this->ws_deleted as $item) {
+                        if ($item === $parId) {
+                               $msg .=    'ws param deleted  '.$parId.'<br/>';
+                             continue 2;
+                        }
+                    }
+                }
+
+               if (substr($parId,0,3) == "WS_")
+                       $parId = strtolower($parId);
+
+                if ($this->deleteParam($parId, true)) {
+                   $msg .=    'param deleted  '.$parId.'<br/>'; 
+                   continue;
+                }  
+                $newParId = $this->updateParams($parId, true);  
+                $panelNumber = $param->getAttribute('panel'); 
+//print_r($obj->name." ".$panelNumber.PHP_EOL);
+// no such panel -> create
+               if (!$panels[$panelNumber]) {
+                    $aPanel = new stdClass();
+                    $aPanel->name = 'Panel '.$panelNumber;
+                    $aPanel->leaf = false;
+                    $aPanel->text = 'Panel '.$panelNumber;
+                    $aPanel->width = $param->getAttribute('width');
+                    $aPanel->height = $param->getAttribute('height');
+                    $aPanel->xTitle = "";
+                    $aPanel->xRangeMin = $param->getAttribute('xmin');
+                    $aPanel->xRangeMax = $param->getAttribute('xmax');
+                    $aPanel->y1Title = "";
+                    $aPanel->y1RangeMin = $param->getAttribute('ymin');
+                    $aPanel->y1RangeMax = $param->getAttribute('ymax');
+                    $aPanel->y2Title = "";
+                    $aPanel->y2RangeMin = 0;
+                    $aPanel->y2RangeMax = 0;
+                    $aPanel->plotType = "TIME";
+                    $panels[$panelNumber] = $aPanel;
+
+                    $panels[$panelNumber]->children = array();                       
+                }
+// add parameter to the panel  
+                $aParameter =  new stdClass();
+                $aParameter->name = $newParId;
+                $aParameter->text = $newParId;
+                $aParameter->leaf = true;
+                $aParameter->yaxe = false;
+//TODO if we need to check this reallY???   
+                $aParameter->isScatter = false; 
+                $aParameter->needsArgs = false; 
+                if ($param->getAttribute('args') === "") 
+                    $aParameter->paramArgs = "select...";
+                else 
+                    $aParameter->paramArgs = $this->convertArgs($newParId, $param->getAttribute('args'));
+ 
+                $panels[$panelNumber]->children[] = $aParameter;
+            }
+// if there are unordered keys json_encode interprate array as object.... 
+            $obj->children = array_values($panels);
+            $obj->nodeType = "request";
+            $obj->leaf = true;  
+
+          $this->Mgr->createObject($obj).PHP_EOL;             
+        }
+ 
+        $msg .= ' ok<br/>';
+
+  return array('success' => true, 'msg' => $msg);
+  }
+
+        public function transferMyData() {
+
+           $msg = '<b>My Data:</b><br/>';
+// start with copying  DATA dir as it is
+
+           foreach (glob(OLDUSERPATH.TRANSFERUSER.'/DATA/*') as $item) {
+                  if (!copy($item, USERDATADIR.basename($item))) {
+                                error_log('can\'t copy '.$item,1,email); 
+                                $msg .= 'failed copy file '.basename($item).'<br/>';
+                    }                   
+            }
+       
+          $filesXml = new DomDocument("1.0");
+    
+          if (!$filesXml->load($this->wsDir.'files.xml')) $msg .= 'no files.xml <br/>';
+          else {
+
+              $fileMgr = new FilesMgr();
+              $filesXmlNew = new DomDocument("1.0");
+              $root = $filesXmlNew->createElement('ws');
+              $filesXmlNew->appendChild($root);
+ 
+              $list = $filesXmlNew->createElement("fileList"); 
+              $list->setAttribute("xml:id", "myData-treeRootNode");
+              $root->appendChild($list);
+ 
+              $files = $filesXml->getElementsByTagName("file");
+
+              $folders = $filesXml->getElementsByTagName("level1");
+
+              if ($folders->length > 0) 
+                foreach ($folders as $folder) {
+                  $newFolder = $filesXmlNew->createElement("folder");
+                  $newFolder->setAttribute("xml:id", $folder->getAttribute("id"));
+                  $newFolder->setAttribute("name", $folder->getAttribute("id"));
+                  $list->appendChild($newFolder);
+                }
+ 
+              foreach ($files as $file) {
+                  $newFile = $filesXmlNew->createElement("file",  $file->getAttribute("title"));
+                  $newFile->setAttribute("xml:id", $file->getAttribute("id"));
+                  $newFile->setAttribute("name", $file->getAttribute("id"));
+                  $format = $file->getElementsByTagName("format")->item(0)->nodeValue;
+                  $newFile->setAttribute("format", $format);
+                  $newFile->setAttribute("uploaded", $file->getElementsByTagName("uploaded")->item(0)->nodeValue);
+                  $newFile->setAttribute("start", $file->getAttribute("start"));
+                  $newFile->setAttribute("stop", $file->getAttribute("stop"));
+// no sampling for cdf in old amda
+                  $minSampling = $file->getAttribute("sampling");
+                  $maxSampling = $file->getAttribute("maxsampling");
+
+                  if (!$minSampling) {
+                       $minSampling = $this->getSampling(USERDATADIR.$file->getAttribute("id"), $format);
+                       $maxSampling = $minSampling;
+                   }
+
+                  $newFile->setAttribute("minsampling", $minSampling); 
+                  $newFile->setAttribute("maxsampling", $maxSampling); 
+//TODO check mask
+                  $newFile->setAttribute("mask",  $file->getAttribute("id")); 
+
+                  if ($file->parentNode->tagName == 'level1')
+                             $filesXmlNew->getElementById($file->parentNode->getAttribute("id"))->appendChild($newFile);
+                  else 
+                      $list->appendChild($newFile); 
+                 } 
+                $filesXmlNew->save(USERWSDIR."Files.xml");
+            } 
+// mydata parameters                
+                $this->Mgr = new DerivedParamMgr('mydataParam');
+                $this->createFolders('mydataList','mydataParam');
+        //TODO folders are they OK?  
+            // get old params  
+                $wsdParams = $this->ws->getElementsByTagName('mydata');
+               
+        //TODO vi ??
+             //   $obj = new stdClass();
+                foreach ($wsdParams as $item) {
+                    $obj = new stdClass();
+                    $obj->name = $item->getElementsByTagName('name')->item(0)->nodeValue;
+                    $obj->nodeType =  "myDataParam";
+                    $obj->leaf = true;
+                    $obj->desc = $item->getAttribute('desc');
+                    $obj->file = $item->getAttribute('fileOrig');
+                    $obj->mask = $item->getAttribute('fileMask');
+                    $obj->fillvalue = $item->getAttribute('dataFillValue');
+                    $obj->minsampling = $item->getAttribute('dataSampling');
+                    $obj->maxsampling = $item->getAttribute('maxSampling');
+                    $obj->format = $item->getAttribute('fileFormat');
+                    $obj->type = $item->getAttribute('dataType');
+                    $obj->size = $item->getAttribute('dataSize');
+                    $obj->ytitle = $item->getAttribute('yTitle');
+                    $obj->realvar =  $item->getAttribute('realName');
+                    $obj->units =  $item->getAttribute('dataUnits');
+                    $obj->legend =  $item->getAttribute('dataLegend');
+
+                    $this->Mgr->objectDom = new DomDocument("1.0"); 
+                    if ($item->parentNode->tagName === 'level1') {
+                            $folder_id = $item->parentNode->getAttribute('id');
+                            $this->Mgr->createObject($obj, $folder_id);
+                        }
+                        else {
+                            $this->Mgr->createObject($obj);
+                        }
+                } 
+
+            $msg .= ' ok<br/>';
+
+         return array('success' => true, 'msg' => $msg);
+        }  
+}
+?>
\ No newline at end of file
diff --git a/php/classes/VOTableMgr.php b/php/classes/VOTableMgr.php
new file mode 100644
index 0000000..52e8e41
--- /dev/null
+++ b/php/classes/VOTableMgr.php
@@ -0,0 +1,576 @@
+<?php
+/**
+ * @class VOTableMgr
+ * @version $Id: VOTableMgr.php 2916 2015-05-19 13:08:33Z elena $ 
+ */
+
+
+//set DEBUG_MODE to TRUE to have some log information in user data dir
+define("DEBUG_MODE",FALSE);
+
+
+class VOTableMgr {
+  private  $xml, $xp;
+  private $log;
+  
+  function __construct() 
+  {
+  	 if (DEBUG_MODE)
+  	   $this->log = fopen(USERDATADIR."logVOTable","w");
+  }
+  
+  function addLog($msg)
+  {
+  	 if (DEBUG_MODE)
+  	   fprintf($this->log,$msg);
+  }
+  
+  function load($fileName)
+  {
+  	 $this->xml =  new DomDocument("1.0");
+    if (!$this->xml->load($fileName))
+    {
+      $this->addLog("Cannot load file ".$fileName."\n");
+      return FALSE;
+    }
+
+    $this->checkIDAttribute();
+    /*if ($this->xml->namespaceURI == '')
+    {
+    	 $this->addLog("File don't have a namespace defined\n");
+      if (!$this->xml->createAttributeNS('http://www.ivoa.net/xml/VOTable/v1.1','xmlns'))
+        $this->addLog("Cannot create namespace attribute\n");
+    }
+      
+    $this->addLog($this->xml->namespaceURI."\n");*/
+      
+    $rootNamespace = $this->xml->lookupNamespaceUri($this->xml->namespaceURI);
+    
+    $this->xp = new domxpath($this->xml);
+    
+    $this->xp->registerNameSpace('x', $rootNamespace);
+    
+    return TRUE;
+  }
+  
+  function isValidSchema()
+  {
+  	 if (!$this->xml)
+  	   return FALSE;
+  	   
+  	   
+  	 //ToDo - BRE - add validation!!
+  	 return TRUE;
+  	   
+  	 if (DEBUG_MODE)
+  	   libxml_use_internal_errors(true);
+  	   
+  	 $vers = $this->getVersion();
+  	   
+  	 $this->addLog("VOTable version : ".$vers."\n");
+  	   
+  	 $result = FALSE;
+  	 
+  	 switch ($vers)
+  	 {
+  	 	 case '1.2' :
+  	 	 	 $result = $this->xml->schemaValidate(XMLPATH.'VOTable-1.2.xsd');
+  	 	 case '1.0' :
+  	 	 	 $result = $this->xml->schemaValidate(XMLPATH.'VOTable-1.0.xsd');
+  	 	 default :
+  	 	   $result = $this->xml->schemaValidate(XMLPATH.'VOTable-1.1.xsd');
+  	 }
+  	 
+  	 if (DEBUG_MODE)
+  	 {
+  	   $errors = libxml_get_errors();
+  	   
+  	   foreach ($errors as $error) 
+  	   {
+  	   	 $msg = ''; 
+  	   
+        switch ($error->level)
+        {
+          case LIBXML_ERR_WARNING:
+            $msg .= ("WARNING ".$error->code.": ");
+            break;
+          case LIBXML_ERR_ERROR:
+            $msg .= ("ERROR ".$error->code.": ");
+            break;
+          case LIBXML_ERR_FATAL:
+            $msg .= ("FATAL ".$error->code.": ");
+            break;
+        }
+        $msg .= ($error->message." - In line : ".$error->line." - Of file : ".$error->file."\n");
+        
+        $this->addLog($msg);
+  	   }
+  	   
+  	   libxml_use_internal_errors(false);
+  	 }
+  	 
+    return $result;
+  }
+  
+  protected function queryResource()
+  {
+  	 return "//x:RESOURCE";
+  }
+  
+  protected function queryTable()
+  {
+  	 return $this->queryResource()."/x:TABLE";
+  }
+  
+  protected function queryDescription()
+  {
+  	 return $this->queryTable()."/x:DESCRIPTION";
+  }
+  
+  protected function queryFields()
+  {
+  	 return $this->queryTable()."/x:FIELD";
+  }
+  
+  protected function queryField($field_id)
+  {
+  	 return $this->queryFields()."[@ID='".$field_id."']";
+  }
+
+  protected function queryFieldByName($field_id)
+  {
+  	 return $this->queryFields()."[@name='".$field_id."']";
+  }
+  protected function queryFieldDescription($field_id)
+  {
+  	 return $this->queryField($field_id)."/x:DESCRIPTION";
+  }
+  
+  protected function queryData()
+  {
+  	 return $this->queryTable()."/x:DATA";
+  }
+  
+  protected function queryTableData()
+  {
+  	 return $this->queryData()."/x:TABLEDATA";
+  }
+  
+  protected function queryTR()
+  {
+  	 return $this->queryTableData()."/x:TR";
+  }
+  
+  //
+  
+  public function getVersion()
+  {
+  	 if (!$this->xml)
+  	 		return '';
+  	 $root = $this->xml->documentElement;
+  	 
+  	 return $root->getAttribute('version');
+  }
+  
+  public function getDescription()
+  {
+  	 if (!$this->xp)
+  	   return '';
+  	
+  	 $desc = $this->xp->query($this->queryDescription());
+  	 
+  	 if ($desc->length < 1)
+  	   return '';
+  	   
+  	 return $desc->item(0)->nodeValue;
+  }
+  
+  public function getFirstTR()
+  {
+  	 if (!$this->xp)
+  	   return NULL;
+  	
+  	 /*$trs = $this->xp->query($this->queryTR()); 
+  	 
+  	 if ($trs->length < 1)
+  	   return NULL;
+  	   
+  	 return $trs->item(0);*/
+  	
+  	 $tabledatas = $this->xp->query($this->queryTableData());
+  	 
+  	 if ($tabledatas->length < 1)
+  	   return NULL;
+  	   
+  	 $tabledata = $tabledatas->item(0);
+  	 
+  	 $node = $tabledata->firstChild;
+  	 
+  	 while($node && ($node->nodeType != 1) && ($node->nodeName != "TR"))
+      $node = $node->nextSibling;
+      
+    return $node;
+  }
+  
+  public function getNextTR($tr)
+  {
+  	 if (!$this->xp)
+  	   return NULL;
+  	
+    while($tr->nextSibling && ($tr->nextSibling->nodeType != 1) && ($node->nodeName != "TR"))
+      $tr = $tr->nextSibling;
+				return $tr->nextSibling;
+  }
+  
+  public function getTDValueByFieldIndex($tr,$field_index)
+  {
+  	 if (!$this->xp)
+  	   return NULL;
+  	
+  	 $tds = $tr->getElementsByTagName("TD");
+  	 
+  	 if (($tds->length < 1) || ($field_index >= $tds->length))
+  	   return NULL;
+  	   
+  	 return $tds->item($field_index)->nodeValue;
+  }
+  
+  protected function isTimeField($field)
+  {
+    if (!$this->xp)
+  	   return FALSE;
+  	
+  	 return (($field->getAttribute("ucd") == "time.epoch") && ($field->getAttribute("xtype") == "dateTime"));
+  }
+  
+  public function getTimeFieldIndex()
+  {
+  	 if (!$this->xp)
+  	   return -1;
+  	
+  	 $fields = $this->xp->query($this->queryFields());
+  	 
+  	 if ($fields->length < 1)
+  	   return -1;
+  	   
+  	 for ($i = 0; $i < $fields->length; $i++)
+  	   if ($this->isTimeField($fields->item($i)))
+  	     return $i;
+  	     
+  	 return -1;
+  }
+  
+  protected function getFieldByID($field_id)
+  {
+  	 if (!$this->xp)
+  	   return NULL;
+  	
+  	 $fields = $this->xp->query($this->queryFields());
+  	 
+  	 if ($fields->length < 1)
+  	   return NULL;
+  	  	   
+  	 foreach ($fields as $field)
+  	   if ($field->getAttribute("ID") == $field_id)
+  	     return $field;
+  	    
+  	 return NULL;
+  }
+
+    protected function getFieldByName($field_id)
+  {
+  	 if (!$this->xp)
+  	   return NULL;
+  	
+  	 $fields = $this->xp->query($this->queryFieldByName($field_id));
+  	 
+  	 if ($fields->length < 1)
+  	   return NULL;
+  	   
+  	 foreach ($fields as $field)
+  	   if ($field->getAttribute("name") == $field_id)
+  	     return $field;
+  	     
+  	 return NULL;
+  }
+
+  protected function checkIDAttribute(){
+
+      $fields = $this->xml->getElementsByTagName('FIELD');
+      $i = 0;
+      foreach ($fields as $field){
+	$i++;
+	if (!$field->hasAttribute("ID")){
+	    $field->setAttribute("ID", "col".$i);
+	}
+      }
+      $this->xml->saveXML();
+
+  }
+
+  public function getFieldIndexByID($field_id)
+  {
+  	 if (!$this->xp)
+  	   return -1;
+  	
+  	 $fields = $this->xp->query($this->queryFields());
+  	 
+  	 if ($fields->length < 1)
+  	   return -1;
+  	   
+  	 for ($i = 0; $i < $fields->length; $i++)
+  	   if ($fields->item($i)->getAttribute("ID") == $field_id)
+  	     return $i;
+  	     
+  	 return -1;
+  }
+  
+  public function getStartStop() 
+  {
+  	 if (!$this->xp)
+  	   return '0 0';
+  	
+    $timeIndex = $this->getTimeFieldIndex();
+    if ($timeIndex < 0)
+      return '0 0';
+        		
+    $tr = $this->getFirstTR();
+        
+    if (!$tr)
+      return '0 0';
+        
+    $start = $this->getTDValueByFieldIndex($tr,$timeIndex);
+        
+    $stop = $start;
+    while ($tr)
+    {
+      $stop = $this->getTDValueByFieldIndex($tr,$timeIndex);
+      $tr = $this->getNextTR($tr);
+    }
+        
+    if (!$start)
+      $start = 0;
+    else
+      $start = strtotime($start);
+          
+    if (!$stop)
+      $stop = 0;
+    else
+      $stop = strtotime($stop);
+      
+    return $start." ".$stop;  
+  }
+  
+  public function getFieldInfoByID($field_id)
+  {
+   if (!$this->xp)
+  	   return array("id"    => $field_id,
+  	                "error" => "No file loaded");
+    $field = $this->getFieldByID($field_id);
+  	 
+  	 if (!$field)
+	    $field = $this->getFieldByName($field_id);
+
+  	 if (!$field)
+  	   return array("id"    => $field_id,
+  	                "error" => "This field doesn't exist");
+  	 return $this->getFieldInfo($field);
+  }
+  	   
+  
+  public function getFieldInfo($field)
+  {
+    if (!$this->xp)
+      return array("id"    => $field_id,
+		  "error" => "No file loaded");
+    $description = '';
+    $desc = $field->getElementsByTagName("DESCRIPTION");
+    if ($desc->length >= 1)
+      $description = $desc->item(0)->nodeValue;
+
+    $size = $field->getAttribute("arraysize");
+    if ($size == '')
+      $size = 1;
+    else
+      $size = intval($size);
+
+    switch ($field->getAttribute("datatype"))
+    {
+    	 case "short" :
+    	 	 $type = "SHORT";
+    	 	 break;
+    	 case "int" :
+    	 	 $type = "INTEGER";
+    	 	 break;
+    	 case "long"   :
+    	 case "double" :
+    	   $type = "DOUBLE";
+    	   break;
+    	 default :
+    		  $type = "FLOAT"; 
+    }
+	if (!$field->getAttribute("ID"))
+	  $id = "col".$n;
+	else $id = $field->getAttribute("ID");
+      
+  	 return array("id"     => $field->getAttribute("ID"),
+                 "type"        => $type,
+                 "name"        => $field->getAttribute("name"),
+                 "ucd"         => $field->getAttribute("ucd"),
+                 "unit"        => $field->getAttribute("unit"),
+                 "size"        => $size,
+                 "description" => $description
+                );
+  }
+  
+  public function getFieldsInfo()
+  {
+   	 if (!$this->xp)
+  	   return array("error" => "No file loaded");
+  	
+    $fields_info = array();
+  	
+  	 $fields = $this->xp->query($this->queryFields());
+  	 
+  	 if ($fields->length < 1)
+  	   return $fields_info;
+  	
+    foreach ($fields as $field)
+    {
+     	if ($this->isTimeField($field))
+        continue;
+      
+      array_push($fields_info,$this->getFieldInfo($field));
+    }
+        
+    return $fields_info;
+  }
+  
+  public function getSamplings() 
+  {
+  	 if (!$this->xp)
+  	   return array("minSampling" => 0,
+                   "maxSampling" => 0);
+  	
+  	 $timeIndex = $this->getTimeFieldIndex();
+    if ($timeIndex < 0)
+      return array("minSampling" => 0,
+                   "maxSampling" => 0);
+  	
+    $tr = $this->getFirstTR();
+
+    if (!$tr)
+      return array("minSampling" => 0,
+                   "maxSampling" => 0);
+
+    $prevTime = 0;
+    while ($tr)
+    {
+      $time = $this->getTDValueByFieldIndex($tr,$timeIndex);
+        	  
+      if ($time)
+      {
+        $time = strtotime($time);
+        if (($prevTime > 0) && ($time-$prevTime > 0))
+          $deltaT[$time-$prevTime]++;
+        $prevTime = $time;
+      }
+        	  
+      $tr = $this->getNextTR($tr);
+    }
+        
+    $minSampling = +1.e31;
+    $maxSampling = 0.0;
+        
+    foreach ($deltaT as $key => $value) 
+    {
+     
+     if ($value/count($deltaT) < 0.10)
+        continue;
+       
+      if ($key < $minSampling) $minSampling = $key;
+      if ($key > $maxSampling) $maxSampling = $key;
+    }
+      
+    return array("minSampling" => $minSampling,
+                 "maxSampling" => $maxSampling);
+  }
+  
+  public function args2vector($file, $paramID){
+
+  $argsArr = explode('_', $paramID);
+
+  $dom = new DOMDocument();
+  $dom->load($file);
+  $fields = $dom->getElementsByTagName('FIELD');
+  $table = $dom->getElementsByTagName('TABLE')->item(0);
+  $i=0;
+  foreach ($fields as $field){
+      if ($field->getAttribute('name') == $argsArr[0]){
+	$unit = $field->getAttribute('unit');
+	$ucd  = $field->getAttribute('ucd');
+	$datatype  = $field->getAttribute('datatype');
+	$firstTD = $i;
+    }
+    $i++;
+  }
+  if ($firstTD > 0){
+    $table->removeChild($fields->item($firstTD + 2));
+    $table->removeChild($fields->item($firstTD + 1));
+    $table->removeChild($fields->item($firstTD));
+    
+    $i = 0;
+    foreach ($fields as $field){
+	$i++;
+	if (strpos($field->getAttribute('ID'),'col') !== FALSE){ 
+	    $field->setAttribute('ID', 'col'.$i);
+	    $dom->saveXML();
+	}
+    }
+    
+    $group = $dom->createElement('GROUP');
+    $group->appendChild(new DOMAttr('ID', 'info_'.$paramID));
+    $table->appendChild($group);
+    
+    $param = $dom->createElement('PARAM');
+    $param->appendChild(new DOMAttr('ID', 'components_'.$paramID));
+    $param->appendChild(new DOMAttr('name', 'components_'.$paramID));
+    $param->appendChild(new DOMAttr('datatype', 'char'));
+    $param->appendChild(new DOMAttr('arraysize', '*'));
+    $param->appendChild(new DOMAttr('value', $argsArr[0].' '.$argsArr[1].' '.$argsArr[2] ));
+    $group->appendChild($param);
+    
+    $new_field = $dom->createElement('FIELD');
+    $new_field->appendChild(new DOMAttr('ID', $paramID));
+    $new_field->appendChild(new DOMAttr('name', $paramID));
+    $new_field->appendChild(new DOMAttr('datatype', $datatype));
+    $new_field->appendChild(new DOMAttr('arraysize', '3'));
+    $new_field->appendChild(new DOMAttr('unit', $unit));
+    $new_field->appendChild(new DOMAttr('ucd', $ucd));
+    $new_field->appendChild(new DOMAttr('ref', 'info_'.$paramID));
+    $table->appendChild($new_field);
+    
+    $trs = $dom->getElementsByTagName('TR');
+    foreach($trs as $tr){
+      $tds = $tr->getElementsByTagName('TD');
+      $value = trim($tds->item($firstTD)->nodeValue).' '.trim($tds->item($firstTD + 1)->nodeValue).' '.trim($tds->item($firstTD + 2)->nodeValue);
+      $toRemote  = $tds->item($firstTD);
+      $tr->removeChild($toRemote);
+       $toRemote = $tds->item($firstTD);
+      $tr->removeChild($toRemote);
+       $toRemote = $tds->item($firstTD);
+      $tr->removeChild($toRemote);
+     
+      $td = $dom->createElement('TD', $value);
+      $tr->appendChild($td);
+    }
+    
+    $dom->save($file);
+    }
+  }
+  
+}
+
+
+
+?>
\ No newline at end of file
diff --git a/php/classes/WSUserMgr.php b/php/classes/WSUserMgr.php
new file mode 100644
index 0000000..0e606f1
--- /dev/null
+++ b/php/classes/WSUserMgr.php
@@ -0,0 +1,60 @@
+<?php
+/**
+ * @class WSUserMgr
+ * @version $Id: WSUserMgr.php 2806 2015-03-02 15:31:05Z natacha $
+ * 
+ */
+
+
+  class WSUserMgr  extends UserMgr {
+  
+  protected $isSoap;
+
+/*****************************************************************
+*                           PUBLIC FUNCTIONS
+*****************************************************************/
+
+      public function init($username,$password,$sessionID,$isSoap) {
+      
+      $this->user = trim($username);
+      $this->sessionID = trim($sessionID);
+      $this->passwd = trim($password);
+      $this->userWS = USERPATH."/".$this->user."/WS/";
+      $this->userdir = USERPATH."/".$this->user."/";
+      $this->userMissions = $this->getAvailableMissionsByUser();
+
+      chmod($this->userWS,0775);
+      if (isset($isSoap))
+	$this->isSoap = $isSoap;
+      else $this->isSoap = false;
+      
+      $this->setPath(); 
+		  
+  
+    if ($this->ddCheckUser() != 0) {        
+	      if ($this->ddLogin() != 0) { // DD Login if user is not registered
+		    if ($this->isSoap) throw new SoapFault("server00","Server Error: AMDA Login procedure failed"); 
+		    else return array("error" => "Server Error: AMDA Login procedure failed");
+		} 	 
+
+	      if ($this->ddCheckUser() != 0) { 
+		  if ($this->isSoap) throw new SoapFault("server01","Server Error: Check User procedure failed");
+		  else return array("error" => "Server Error: CheckUser procedure failed");
+	      }
+	      
+      }
+       return array('success' => true); 
+
+      }
+
+      public function makeUserWS(){
+	$this->makeLocalTree();
+	$this->makeRemoteTree();
+	
+	return  $sessionID = $this->user;
+      
+      }
+      
+ }
+
+?>
diff --git a/php/classes/WebServer.php b/php/classes/WebServer.php
new file mode 100644
index 0000000..f46ee4b
--- /dev/null
+++ b/php/classes/WebServer.php
@@ -0,0 +1,971 @@
+<?php
+/** 
+*   @file WebServer.php
+*   @brief  Web services AMDA
+*
+*   
+*   @version $Id: WebServer.php 2879 2015-04-29 11:47:52Z myriam $ 
+*/
+class WebResultMgr
+{
+  private $resDOM;
+  private $rootEl;
+  private $resXP;
+
+  function __construct()
+  {
+    if (!is_dir(WSRESULT))
+      mkdir(WSRESULT);
+    chmod(WSRESULT,0775);
+
+    $this->resDOM = new DOMDocument("1.0");
+    $this->resDOM->formatOutput = TRUE;
+    $this->resDOM->preserveWhiteSpace = FALSE;
+    
+    if (!file_exists(wsResultsXml))
+    {
+      $this->rootEl = $this->resDOM->createElement('wsresults');
+      $this->resDOM->appendChild($this->rootEl);
+      $this->resDOM->save(wsResultsXml);
+    }
+    
+    $this->resDOM->load(wsResultsXml);
+    
+    $this->resXP = new DOMXPath($this->resDOM);
+    
+    $this->rootEl = $this->resDOM->documentElement;
+  }
+  
+  public function addResult($function_name,$vars,$user,$IP,$output){
+  	$nodes = $this->rootEl->getElementsByTagName($function_name);
+  	if($nodes->length < 1){
+  		 $funcNode = $this->resDOM->createElement($function_name);
+  		 $this->rootEl->appendChild($funcNode);	 
+  	}
+  	else
+  		$funcNode = $nodes->item(0);
+		  
+   $oldOutput = $this->resXP->query('//'.$function_name.'/result[@output="'.$output.'"]');
+   if ($oldOutput->length > 0)
+     $funcNode->removeChild($oldOutput->item(0));
+   	  
+   $resNode = $this->resDOM->createElement('result');
+   $resNode->setAttribute('date',time());
+   $resNode->setAttribute('user',$user);
+//    $resNode->setAttribute('IP',$IP);
+   $resNode->setAttribute('input',json_encode($vars));
+   $resNode->setAttribute('output',$output);
+   $funcNode->appendChild($resNode);
+   
+   $this->resDOM->save(wsResultsXml);
+   
+   return $resNode;
+  }
+  
+  public function getResOutputName($function_name,$user,$suffixe,$extension)
+  {
+    $outputFile = WSRESULT.$function_name."_".$user;
+    if (isset($suffixe))
+      $outputFile .= ("_".$suffixe);
+    if (isset($extension))
+      $outputFile .= (".".$extension);
+    else
+      $outputFile .= ".xml";
+    return $outputFile;
+  }
+}
+
+class WebServer
+{
+  private $isSoap = false;
+  private $userID, $userPWD, $sessionID;
+  private $wsUserMgr;
+  private $resultMgr, $myParamsInfoMgr;
+  private $dataFileName;
+
+  function __construct() {
+    $this->userID  = 'impex';
+    $this->userPWD = 'impexfp7';
+    $this->sessionID = $this->userID;
+    $this->myParamsInfoMgr =  new ParamsInfoMgr();
+    $this->resultMgr = new WebResultMgr();
+  }
+ 
+  protected function init($data) {
+    if(is_object($data))
+    {
+      $vars = get_object_vars($data);
+      $this->isSoap = true; 
+    }
+    else
+      $vars = $data;
+
+    if (isset($vars['userID']))
+    {
+      $this->userID  = $vars['userID'];
+      $this->sessionID = $this->userID;
+    }
+    else {
+      $this->userID  = 'impex';
+      $this->sessionID = $this->userID;
+    }
+    if (isset($vars['password']))
+      $this->userPWD = $vars['password'];
+    else 
+      $this->userPWD = 'impexfp7';
+    return array('success' => true, 'vars' => $vars);
+  }
+
+  private function setID(){
+
+                   $nb_min = 10000;
+                   $nb_max = 99999;
+                   $nombre = mt_rand($nb_min,$nb_max);
+
+		   $this->IP = $this->getIPclient();
+
+              return "PP".$nombre;
+           }
+
+/**
+ *  Function getIPclient return the IP client sent a request for needs DD scripts (DD_htmllogin, Check_User, DD_Search)
+ *
+ *       @param   void
+ *       @return  string  
+ */
+           private  function getIPclient(){
+ 
+             if (getenv('REMOTE_ADDR'))  {
+                     $realIP = getenv('REMOTE_ADDR');
+             }
+             else {
+                         //get local IP
+                      $command="hostname -i";
+                      $realIP = exec($command);
+             }
+ 
+           return $realIP;
+           }
+
+  private function timeInterval2Days($TimeInterval){
+
+        $divDays = 60*60*24;
+        $nbDays = floor($TimeInterval / $divDays);
+        $divHours = 60*60;
+        $nbHours = floor(($TimeInterval - $divDays*$nbDays)/$divHours);
+        $nbMin = floor(($TimeInterval - $divDays*$nbDays - $divHours*$nbHours)/60);
+        $nbSec = $TimeInterval - $divDays*$nbDays - $divHours*$nbHours - $nbMin*60;
+
+        $DD = sprintf("%03d",   $nbDays);                       // format ex. 005 not 5
+        $HH = sprintf("%02d",   $nbHours);                      // format ex. 25 
+        $MM = sprintf("%02d",   $nbMin);                        // format ex. 03 not 3
+        $SS = sprintf("%02d",   $nbSec);                        // format ex. 02 not 2
+
+        return  $DD.':'.$HH.':'.$MM.':'.$SS;
+
+    }
+
+/* Start Time into AMDA format YYYY:DOY-1:HH:MM:SS */
+    private function startTime2Days($startTime){
+
+         $ddStart = getdate($startTime);
+         $date_start = sprintf("%04d",$ddStart["year"]).":".sprintf("%03d", $ddStart["yday"]).":"
+                                   .sprintf("%02d",$ddStart["hours"]).":".sprintf("%02d",$ddStart["minutes"]).":"
+                                   .sprintf("%02d",$ddStart["seconds"]);
+        return $date_start;
+    }
+
+   private function rrmdir($dir){
+      if (is_dir($dir)) {
+        $objects = scandir($dir);
+
+        foreach ($objects as $object) { // Recursively delete a directory that is not empty and directorys in directory 
+          if ($object != "." && $object != "..") {  // If object isn't a directory recall recursively this function 
+            if (filetype($dir."/".$object) == "dir")
+                     $this->rrmdir($dir."/".$object);
+            else
+                    unlink($dir."/".$object);
+          }
+        }
+        reset($objects);
+        rmdir($dir);
+      }
+    }
+
+  protected function initUserMgr() {
+    if (isset($this->wsUserMgr))
+      return array('success' => true);
+      $this->wsUserMgr = new WSUserMgr();
+      $this->wsUserMgr->init($this->userID,$this->userPWD,$this->sessionID, $this->isSoap);
+    
+    return array('success' => true);
+ }
+
+  public function getTimeTablesList($data) {
+    if(is_object($data))
+    {
+      $vars = get_object_vars($data);
+      $this->isSoap = true; 
+    }
+    else
+      $vars = $data;
+    if (isset($vars['userID']) && $vars['userID'] == 'impex'){
+	if ($this->isSoap) throw new SoapFault("server00","Server Error: AMDA Login procedure failed"); 
+	else return array("error" => "Server Error: AMDA Login procedure failed");
+    }
+     
+     
+    $res = $this->init($data);
+    $vars = $res['vars'];
+
+    $ttListWSresult = $this->resultMgr->getResOutputName(__FUNCTION__,$this->userID);
+    
+    $dom = new DOMDocument("1.0");
+    if ($this->userID == 'impex')
+      $loadDom = $dom->load(SHAREDPATH.'WS/Tt.xml');
+    else
+      $loadDom = $dom->load(USERPATH.$this->userID.'/WS/Tt.xml');
+    
+    if ($loadDom == FALSE){
+	if ($this->isSoap) throw new SoapFault("server00","Server Error: AMDA Login procedure failed"); 
+	else return array("error" => "Server Error: AMDA Login procedure failed");
+    }
+    
+    $timetabNode = $dom->documentElement->getElementsByTagName('timetabList');
+
+    if ($timetabNode->length < 1){
+       if ($this->isSoap)  throw new SoapFault("server03","Cannot reach TT list"); 
+      else return array('success' => false, 'message' => "Server Error: Cannot reach TT list");
+    }
+    $outDOM = new DOMDocument("1.0");
+    $outDOM->formatOutput = TRUE;
+    $outDOM->preserveWhiteSpace = FALSE;
+    
+    $newNode = $outDOM->importNode($timetabNode->item(0),TRUE);
+    $outDOM->appendChild($newNode);
+    
+
+    $outXP = new domxpath($outDOM);
+    $ttNodes = $outXP->query('//timetab');
+
+    $outDOM->save($ttListWSresult);
+
+    $wsres = $this->resultMgr->addResult(__FUNCTION__,$vars,$this->userID,$ttListWSresult);
+
+    $ttListResult = 'http://'.str_replace(BASE_PATH,$_SERVER['SERVER_NAME'].APACHE_ALIAS,$ttListWSresult);
+
+    $timeTablesList = array('success' => true, 'TimeTablesList' => $ttListResult);
+
+    return $timeTablesList;
+
+  }
+
+  public function getTimeTable($data) {
+    $res = $this->init($data);
+
+    $vars = $res['vars'];
+    $ttID = $vars['ttID'];
+
+    if ($this->userID == 'impex')
+      $ttSrc = SHAREDPATH.'TT/'.$ttID.'.xml'; 
+    else
+      $ttSrc = USERPATH.$this->userID.'/TT/'.$ttID.'.xml';
+
+    if (!file_exists($ttSrc)) {
+      if ($this->isSoap)  throw new SoapFault("server03","Cannot reach time table"); 
+      else return array('success' => false, 'message' => "Cannot reach time table");      
+    }
+
+    $ttWSresult = $this->resultMgr->getResOutputName(__FUNCTION__,$this->userID,$ttID);
+
+    if (!copy($ttSrc,$ttWSresult)){
+      if ($this->isSoap)  throw new SoapFault("server04","Cannot copy time table"); 
+      else return array('success' => false, 'message' => "Cannot copy time table");        
+    }
+    
+    $wsres = $this->resultMgr->addResult(__FUNCTION__,$vars,$this->userID, $ttWSresult);
+    
+    $myTimeTableMgr = new TimeTableMgr($this->userID);
+    $ttWSresultVot = $myTimeTableMgr->xsl2vot($ttWSresult);
+    if( file_exists ( $ttWSresultVot)){
+      copy($ttWSresultVot, $ttWSresult);
+      unlink( $ttWSresultVot ) ;
+    }
+    return array('success' => true, 'ttFileURL' => 'http://'.str_replace(BASE_PATH,$_SERVER['SERVER_NAME'].APACHE_ALIAS,$ttWSresult));
+
+  }
+  
+  
+  public function isAlive(){
+    $res = $this->init($data);
+    return true;
+  }
+  
+
+ public function getObsDataTree() {
+         
+    $res = $this->init();
+    
+    $resMgr = $this->initUserMgr(); 
+
+    $vars = $res['vars'];
+
+    $locParamSrc = USERPATH.$this->userID.'/WS/LocalParams.xml'; 
+//     $remoteParamSrc = USERPATH.$this->userID.'/WS/RemoteParams.xml';
+    $wsParamSrc = USERPATH.$this->userID.'/WS/WsParams.xml';
+    $locParamResult = $this->resultMgr->getResOutputName(__FUNCTION__,$this->userID.'_'.'LocalParams');
+//     $remoteParamResult = $this->resultMgr->getResOutputName(__FUNCTION__,'RemoteParams');
+    $wsParamResult = $this->resultMgr->getResOutputName(__FUNCTION__,$this->userID.'_'.'WsParams');
+
+    if (!copy($locParamSrc,$locParamResult))
+	$locParamResult = '';  
+    else {
+	$piBase = new DomDocument("1.0");
+	$piBase->formatOutput = true;
+	$piBase->preserveWhiteSpace = false;
+	
+	$dom = new DomDocument("1.0");
+        $dom->load($locParamResult);
+            
+	$xsl = new DomDocument("1.0");
+	$xsl->load(XMLPATH.'dd2WStree.xsl');
+	
+	$xslt = new XSLTProcessor();
+	$xslt->importStylesheet($xsl);
+	  
+	$dom->loadXML($xslt->transformToXML($dom));
+	
+	$dom->formatOutput = true;
+	$dom->preserveWhiteSpace = false;  
+	$chum_ger = $dom->getElementById("Rosetta@C-G : Plot Only!");
+	if ($chum_ger != NULL) $chum_ger->setAttribute("target","Churyumov-Gerasimenko");
+	
+	$dom->save($locParamResult);
+    }
+//     if (!copy($remoteParamSrc,$remoteParamResult))
+// 	$remoteParamResult = '';  
+    if (!copy($wsParamSrc,$wsParamResult))
+	$wsParamResult = '';  
+ 
+    if ($locParamResult !='') $locParamResult = 'http://'.str_replace(BASE_PATH,$_SERVER['SERVER_NAME'].APACHE_ALIAS,$locParamResult);
+//     if ($remoteParamResult !='') $remoteParamResult = 'http://'.str_replace(BASE_PATH,$_SERVER['SERVER_NAME'].APACHE_ALIAS,$remoteParamResult);
+    if ($wsParamResult !='') $wsParamResult = 'http://'.str_replace(BASE_PATH,$_SERVER['SERVER_NAME'].APACHE_ALIAS,$wsParamResult);
+
+  if (($locParamResult =='') && ($remoteParamResult =='') && ($wsParamResult =='')){
+     if ($this->isSoap)  throw new SoapFault("server05","No params descriptions .xml files for ".$this->userID." user"); 
+      else return array('success' => false, 'message' => "No params descriptions .xml files for ".$this->userID." user");
+    } 
+
+    $wsres = $this->resultMgr->addResult(__FUNCTION__,$vars,$this->userID,$wsParamResult.";".$locParamResult.";".$remoteParamResult);
+
+    return  array('success' => true,'WorkSpace' => array("LocalDataBaseParameters"=>$locParamResult, "RemoteDataBaseParameters"=>$remoteParamResult));
+  }
+
+  public function getPlot($data) {
+
+    $res = $this->init($data);
+    $resMgr = $this->initUserMgr();
+    $vars = $res['vars'];
+    $mission = $vars["missionID"];
+
+    $ID = $this->setID();  // unique JobID
+    $resDirName = WSRESULT.$ID; // Define a temporary  directory for results
+
+    if (is_dir($resDirName))
+          $this->rrmdir($resDirName);
+    mkdir($resDirName);
+    chmod($resDirName,0775);
+
+    $dom = new DomDocument("1.0");
+    $dom->load(plotsXml);
+
+    chdir($resDirName); // Down to working directory
+    $fileS = fopen("request.list", "w");
+
+    $missionTag = $dom->getElementById($mission);
+    $params = $missionTag->getElementsByTagName('param');
+
+    $yStart   = 0.1;
+      fwrite($fileS,$params->length.PHP_EOL);
+
+      foreach ($params as $param) {
+         $yStop = $yStart + 0.15;
+         fwrite($fileS,$param->getAttribute('name').' 0 '.$yStart.' 0.95 '.$yStop.' 0 0 0 0'.PHP_EOL);
+         $yStart += 0.15;
+      }
+
+    $startTime = strtotime($vars["startTime"]);
+    $endTime = strtotime($vars["stopTime"]);
+
+    $TIMEINTERVAL = $this->timeInterval2Days($endTime - $startTime);
+    $STARTTIME = $this->startTime2Days($startTime);
+    fwrite($fileS, $STARTTIME.PHP_EOL.$TIMEINTERVAL.PHP_EOL);
+
+    fclose($fileS);
+
+    $myParamBuilder = new ParamBuilder();
+
+//  Process   Local Params without codes if they exist     
+    if (file_exists(Param."LocalParamsList.xml")) {
+	$localParams = new DomDocument('1.0');
+	$localParams->load(Param."LocalParamsList.xml");
+	$xp = new domxpath($localParams);
+	foreach ($params as $param) {
+		$var = $param->getAttribute('name');
+		$paramTag = $xp->query('//PARAM[.="'.$var.'"]');
+		if ($paramTag -> length !== 0) {
+			$myParamBuilder->paramLocalBuild($var);
+		}
+	}
+     }
+
+// Run command
+    $cmd = DDBIN."DD_Plot request.list ".$this->userID." ".$this->IP." ".DDPROJECT." ".DDPROJLIB;
+    $reqMgr = new RequestMgr();
+    $pid =  $reqMgr->background($cmd);
+    sleep(1);
+    $plotWSresult=WSRESULT.$ID."/request.list.png";
+    return array('success' => true, 'plotFileURL' => 'http://'.str_replace(BASE_PATH,$_SERVER['SERVER_NAME'].APACHE_ALIAS,$plotWSresult));
+  }
+
+
+  public function getParameterList($data) {
+         
+    $res = $this->init($data);
+    
+    $resMgr = $this->initUserMgr(); 
+
+    $vars = $res['vars'];
+
+    $locParamSrc = USERPATH.$this->userID.'/WS/LocalParams.xml'; 
+//     $remoteParamSrc = USERPATH.$this->userID.'/WS/RemoteParams.xml';
+    $wsParamSrc = USERPATH.$this->userID.'/WS/WsParams.xml';
+    $locParamResult = $this->resultMgr->getResOutputName(__FUNCTION__,$this->userID.'_'.'LocalParams');
+//     $remoteParamResult = $this->resultMgr->getResOutputName(__FUNCTION__,'RemoteParams');
+    $wsParamResult = $this->resultMgr->getResOutputName(__FUNCTION__,$this->userID.'_'.'WsParams');
+
+    if (!copy($locParamSrc,$locParamResult))
+	$locParamResult = '';  
+    else {
+	$piBase = new DomDocument("1.0");
+	$piBase->formatOutput = true;
+	$piBase->preserveWhiteSpace = false;
+	
+	$dom = new DomDocument("1.0");
+        $dom->load($locParamResult);
+            
+	$xsl = new DomDocument("1.0");
+	$xsl->load(XMLPATH.'dd2WStree.xsl');
+	
+	$xslt = new XSLTProcessor();
+	$xslt->importStylesheet($xsl);
+	  
+	$dom->loadXML($xslt->transformToXML($dom));
+	
+	$dom->formatOutput = true;
+	$dom->preserveWhiteSpace = false;  
+	$chum_ger = $dom->getElementById("Rosetta@C-G : Plot Only!");
+	if ($chum_ger != NULL) $chum_ger->setAttribute("target","Churyumov-Gerasimenko");
+	$dom->save($locParamResult);
+    }
+//     if (!copy($remoteParamSrc,$remoteParamResult))
+// 	$remoteParamResult = '';  
+    if (!copy($wsParamSrc,$wsParamResult))
+	$wsParamResult = '';  
+ 
+    if ($locParamResult !='') $locParamResult = 'http://'.str_replace(BASE_PATH,$_SERVER['SERVER_NAME'].APACHE_ALIAS,$locParamResult);
+//     if ($remoteParamResult !='') $remoteParamResult = 'http://'.str_replace(BASE_PATH,$_SERVER['SERVER_NAME'].APACHE_ALIAS,$remoteParamResult);
+    if ($wsParamResult !='') $wsParamResult = 'http://'.str_replace(BASE_PATH,$_SERVER['SERVER_NAME'].APACHE_ALIAS,$wsParamResult);
+
+  if (($locParamResult =='') && ($remoteParamResult =='') && ($wsParamResult =='')){
+     if ($this->isSoap)  throw new SoapFault("server05","No params descriptions .xml files for ".$this->userID." user"); 
+      else return array('success' => false, 'message' => "No params descriptions .xml files for ".$this->userID." user");
+    } 
+
+    $wsres = $this->resultMgr->addResult(__FUNCTION__,$vars,$this->userID,$wsParamResult.";".$locParamResult.";".$remoteParamResult);
+
+    return  array('success' => true,'ParameterList' => array("UserDefinedParameters"=>$wsParamResult, "LocalDataBaseParameters"=>$locParamResult, "RemoteDataBaseParameters"=>$remoteParamResult));
+  }
+///////////////////////////////////////START GET DATASET   ///////////////////////////////
+  public function getParameter($data) {
+
+    $multiParam = false;
+
+    $res = $this->init($data);
+    
+    $resMgr = $this->initUserMgr();
+
+    if (!$res['success']){
+     if ($this->isSoap)  throw new SoapFault("server01","Cannot init user manager"); 
+      else return array('success' => false, 'message' => "Cannot init user manager");
+    }
+
+    $vars = $res['vars'];
+
+    if ((strtotime($vars["stopTime"]) - strtotime($vars["startTime"])) < 0){
+      if ($this->isSoap)  throw new SoapFault("request01","Start time must be higher than stop time"); 
+      else return array('success' => false, 'message' => "Start time must be higher than stop time");
+    }
+    elseif ((strtotime($vars["stopTime"]) - strtotime($vars["startTime"])) == 0){
+      if ($this->isSoap)  throw new SoapFault("request02","You time interval equal 0 start is ".$vars["stopTime"]." stop is ".$vars["startTime"]); 
+      else return array('success' => false, 'message' => "You time interval equal 0");
+    }
+ 
+    $dataFileName = $this->getDataFileName($vars, $multiParam);
+
+    if ($dataFileName['success']) $this->dataFileName = $dataFileName['fileName'];
+    else {
+      if ($this->isSoap)  throw new SoapFault("request03",$dataFileName['message']); 
+      else return array('success' => false, 'message' => $dataFileName['message']);
+    }
+
+
+    $paramId = array();
+    array_push($paramId, $vars["parameterID"]);
+//     $paramId[] = $vars["parameterID"];
+
+    if (!$vars["timeFormat"])
+      $timeFormat = "ISO8601";
+    else
+      $timeFormat = $vars["timeFormat"];
+
+    if (!$vars["gzip"])
+      $gzip = 0;
+    else
+      $gzip = $vars["gzip"];
+/*
+    if (!$vars["stream"])
+      $stream = 0;
+    else
+      $stream = $vars["stream"];*/
+
+    $res = $this->doDownloadRequest(
+  	          array("startTime" => $vars["startTime"], "stopTime" => $vars["stopTime"], "sampling" => $vars["sampling"]),
+  	          array("params" => $paramId),
+  	          array("userName" => $this->userID, "userPwd" => $this->userPWD, "sessionID" => $this->sessionID),
+  	          array("format" => $vars["outputFormat"], "timeFormat"=> $timeFormat, "gzip"=>$gzip, "stream"=>$stream),
+		  $dataFileName);
+
+ 	 
+    if ($res['success']) return $res;
+    else {
+      if ($this->isSoap)  throw new SoapFault("request03",$res['message']); 
+      else return array('success' => false, 'message' => $res['message']);
+    }
+  }
+///////////////////////////////////////START GET ORBITES   ///////////////////////////////
+  public function getOrbites($data) {
+
+    $multiParam = false;
+
+    $res = $this->init($data);
+
+   $resMgr = $this->initUserMgr();
+
+    if (!$resMgr['success']){
+     if ($this->isSoap)  throw new SoapFault("server01","Cannot init user manager"); 
+      else return array('success' => false, 'message' => "Cannot init user manager");
+    }
+
+    $vars = $res['vars'];
+
+    if ((strtotime($vars["stopTime"]) - strtotime($vars["startTime"])) < 0){
+      if ($this->isSoap)  throw new SoapFault("request01","Start time must be higher than stop time"); 
+      else return array('success' => false, 'message' => "Start time must be higher than stop time");
+    }
+    elseif ((strtotime($vars["stopTime"]) - strtotime($vars["startTime"])) == 0){
+      if ($this->isSoap)  throw new SoapFault("request02","You time interval equal 0 start is ".$vars["stopTime"]." stop is ".$vars["startTime"]); 
+      else return array('success' => false, 'message' => "You time interval equal 0");
+    }
+ 
+    
+    
+    $spacecraft = $vars["spacecraft"];
+    $coordinateSystem = $vars["coordinateSystem"];
+    if ($spacecraft == "GALILEO") $spacecraft = ucfirst(strtolower($spacecraft));
+    if (!$vars["units"])
+      $units = "km";
+    else
+      $units = $vars["units"];
+
+    $paramId = array();
+
+    $orbitRequest = array("startTime" 		=> $vars["startTime"],
+			  "stopTime"  		=> $vars["stopTime"],
+			  "spacecraft"		=> $spacecraft,
+			  "coordinateSystem"	=> $coordinateSystem,
+			  "units"		=> $units
+			 );
+			 
+			 
+    $orbitesParam = $this->getOrbitesParameter($orbitRequest);
+    if ($orbitesParam['success']) $orbParam = $orbitesParam['parameterID'];
+      else {
+      $orbParam = 'successEstfalse';
+      if ($this->isSoap)  throw new SoapFault("request03",$orbitesParam['message']); 
+      else return array('success' => false, 'message' => $orbitesParam['message']);
+    }
+
+     
+     $dataFileName = $this->getDataFileName($orbitesParam, $multiParam);
+
+    if ($dataFileName['success']) $this->dataFileName = $dataFileName['fileName'];
+    else {
+      if ($this->isSoap)  throw new SoapFault("request03",$dataFileName['message']); 
+      else return array('success' => false, 'message' => $dataFileName['message']);
+    }
+    
+    array_push($paramId, $orbParam);
+//     $paramId[] = $vars["parameterID"];
+
+    if (!$vars["timeFormat"])
+      $timeFormat = "ISO8601";
+    else
+      $timeFormat = $vars["timeFormat"];
+
+    if (!$vars["gzip"])
+      $gzip = 0;
+    else
+      $gzip = $vars["gzip"];
+      
+    $res = $this->doDownloadRequest(
+  	          array("startTime" => $vars["startTime"], "stopTime" => $vars["stopTime"], "sampling" => $vars["sampling"]),
+  	          array("params" => $paramId),
+  	          array("userName" => $this->userID, "userPwd" => $this->userPWD, "sessionID" => $this->sessionID),
+  	          array("format" => $vars["outputFormat"], "timeFormat"=> $timeFormat, "gzip"=>$gzip, "stream"=>$stream),
+		  $dataFileName);
+
+ 	 
+    if ($res['success']) return $res;
+    else {
+      if ($this->isSoap)  throw new SoapFault("request03",$res['message']); 
+      else return array('success' => false, 'message' => $res['message']);
+    }
+  }
+  
+///////////////////////////////////////START GET DATASET   ///////////////////////////////
+
+
+  public function getDataset($data) {
+    $multiParam = true;
+
+    $res = $this->init($data);
+    
+    $resMgr = $this->initUserMgr();
+
+    $vars = $res['vars'];
+
+    if ((strtotime($vars["stopTime"]) - strtotime($vars["startTime"])) < 0){
+      if ($this->isSoap)  throw new SoapFault("request01","Start time must be higher than stop time"); 
+      else return array('success' => false, 'message' => "Start time must be higher than stop time");
+    }
+    elseif ((strtotime($vars["stopTime"]) - strtotime($vars["startTime"])) == 0){
+      if ($this->isSoap)  throw new SoapFault("request02","You time interval equal 0"); 
+      else return array('success' => false, 'message' => "You time interval equal 0");
+    }
+ 
+    $dataFileName = $this->getDataFileName($vars, $multiParam);
+
+    if ($dataFileName['success']) $this->dataFileName = $dataFileName['fileName'];
+    else {
+      if ($this->isSoap)  throw new SoapFault("request03",$dataFileName['message']); 
+      else return array('success' => false, 'message' => $dataFileName['message']);
+    }
+    $paramId = array();
+    $localData = simplexml_load_file(USERPATH.$this->userID.'/WS/LocalParams.xml');
+ 
+    if (!$vars["sampling"]){
+$xpath = "//dataset[@xml:id='".$vars['datasetID']."']/@sampling";
+$tmp = $localData->xpath($xpath);
+$vars["sampling"] = (string)$tmp[0];     
+
+$matches=array();
+preg_match("/([a-z])$/", $vars["sampling"], $matches);
+
+
+$dataFileName = $this->getDataFileName($vars, $multiParam);
+
+if ($dataFileName['success']) $this->dataFileName = $dataFileName['fileName'];
+else {
+  if ($this->isSoap)  throw new SoapFault("request03",$dataFileName['message']); 
+  else return array('success' => false, 'message' => $dataFileName['message']);
+}
+
+$vars["sampling"] = strtr($vars["sampling"], array($matches[1] => ""));
+       switch ($matches[1]) {        
+            case 's':            
+             $sampling = floatval($vars["sampling"]);
+             break; 
+            case 'm':            
+             $sampling = floatval($vars["sampling"])*60;
+             break;
+            case 'h':            
+             $sampling = floatval($vars["sampling"])*60*60;
+            break;
+            default: 
+  }
+     }
+
+    $xpath = "//dataset[@xml:id='".$vars['datasetID']."']/parameter/@*[namespace-uri()='http://www.w3.org/XML/1998/namespace' and local-name()='id']";
+    $pars = $localData->xpath($xpath);
+
+    foreach ($pars as $p)
+  $paramId[] = (string)$p[0];
+ 
+    if (!$vars["timeFormat"])
+      $timeFormat = "ISO8601";
+    else
+      $timeFormat = $vars["timeFormat"];
+
+    if (!$vars["gzip"])
+      $gzip = 0;
+    else
+      $gzip = $vars["gzip"];
+
+    $res = $this->doDownloadRequest(
+            array("startTime" => $vars["startTime"], "stopTime" => $vars["stopTime"], "sampling" => $sampling),
+            array("params" => $paramId),
+            array("userName" => $this->userID, "userPwd" => $this->userPWD, "sessionID" => $this->sessionID),
+            array("format" => $vars["outputFormat"], "timeFormat"=> $timeFormat, "gzip"=>$gzip, "stream"=>$stream),
+  $dataFileName);
+
+  
+    if ($res['success']) return $res;
+    else {
+      if ($this->isSoap)  throw new SoapFault("request03",$res['message']); 
+      else return array('success' => false, 'message' => $res['message']);
+    }
+  }
+
+////////////////////////////////////////END GET PARAMETERS  /////////////////////////////////
+  protected function getOrbitesParameter($orbitRequest) {
+
+    $orbitesXml = new DomDocument();
+	    
+    if (file_exists(orbitesXml)) {
+      $orbitesXml -> load(orbitesXml);
+      $xpath = new DOMXpath($orbitesXml);
+      $path = '//orbites[@mission="'.$orbitRequest['spacecraft'].'" and @coordinate_system="'.$orbitRequest['coordinateSystem'].'" and @units="'.$orbitRequest['units'].'" ] ';
+
+      $orbites = $xpath->query($path);
+      foreach ($orbites as $orbite){
+	$paramInfo = $this->myParamsInfoMgr->GetDDInfoFromParameterID($orbite->getAttribute('xml:id'));  
+        $paramStart = $paramInfo['dataset']['starttime'];
+        $paramStop = $paramInfo['dataset']['stoptime'];
+
+        if((strtotime($paramStart) <= strtotime($orbitRequest['startTime']) && (strtotime($orbitRequest['stopTime'])) <= strtotime($paramStop))) { 
+
+       return array('success' => true, 
+        'parameterID' => $orbite->getAttribute('xml:id'),
+        'startTime'   => $orbitRequest['startTime'],
+        'stopTime'    => $orbitRequest['stopTime']        
+        );
+        }
+      }
+      return array('success' => false, 
+      'message' => 
+      "Cannot find orbites for ".$orbitRequest['spacecraft']." between ".$orbitRequest['startTime']." in ".$orbitRequest['units']."  ".$orbitRequest['coordinateSystem']." and ".$orbitRequest['stopTime']." ($paramStart  - $paramStop) ");
+    }
+    else {
+	return array('success' => false, 'message' => "Orbits file doesn't exist"); 
+    }	
+  }
+
+
+  protected function doDownloadRequest($interval,$paramList,$user,$formatInfo,$dataFileName) {
+  
+  
+     $duration = $this->timeIntervalToDuration($interval['startTime'],$interval['stopTime']);
+
+     if ($interval['sampling']) $structure = 0;// sampling
+else $structure = 2;   // not sampling
+
+     $obj = (object)array(
+"nodeType"     => "download",
+"type"         => "Download",
+"downloadSrc"  => "0",
+"structure"    => $structure,
+"sampling"     => $interval['sampling'],
+"output"       => "",
+"header"       => "0",
+"timesrc"      => "Interval",
+"startDate"    => $interval['startTime'],
+"durationDay"  => $duration["days"],
+"durationHour" => $duration["hours"],
+"durationMin"  => $duration["mins"],
+"durationSec"  => $duration["secs"],
+"list"         => $paramList['params'],
+"milli"        => true,
+"fileformat"   => "ASCII",
+"timeformat"   => "YYYY-MM-DDThh:mm:ss",
+"compression"  => "tar+gzip",
+"leaf"         => true,
+    //ToChange
+    "username"     => $user['userName'],
+    "password"     => $user['userPwd'],
+    "sessionID"    => $user['sessionID']
+   );
+
+    $objectMgr = new RequestMgr('download');
+
+    if (!$objectMgr){
+      if ($this->isSoap)  throw new SoapFault("server01","Cannot init request manager"); 
+      else return array('success' => false, 'message' => "Cannot init request manager");
+    }
+   
+//     $res = $objectMgr->execute($obj);
+
+    $downloadResult = $objectMgr->execute($obj); $error = $downloadResult['error'];
+    $pid = $downloadResult['pid'];
+    $bach= false;
+    if ( $downloadResult['pid'] != 0)
+  $bach= true;
+  
+    $jobMgr = new JobsMgr();
+    
+    if ($bach){
+
+if (!$jobMgr){
+  if ($this->isSoap)  throw new SoapFault("server06","Cannot init job manager"); 
+  else return array('success' => false, 'message' => "Cannot init job manager");
+} 
+  
+ while (!($jobMgr->isFinished($pid))){
+  sleep(JOBTIMEOUT);
+}
+
+$newName='result_'.$objectMgr->cachekiller();
+$objectMgr->postProcessing($downloadResult['rawname'], $newName);
+$downloadResult['id']= $downloadResult['rawname'];
+$downloadResult['name'] = $newName;
+$downloadResult['pid'] = 0;
+
+  }
+
+    $from_path = USERPATH.$this->userID.'/RES/'.$downloadResult['id'].'_/';
+
+    if (!file_exists($from_path)){
+      if ($this->isSoap)  throw new SoapFault("server07","User result folder doesn't exist $from_path ERROR $error  "); 
+      else return array('success' => false, 'message' => "User result folder doesn't exist");
+    }
+      
+    $from_file = $from_path.$downloadResult['name'].'.tar.gz';
+
+   if (!file_exists($from_file)){
+      if ($this->isSoap)  throw new SoapFault("server08","Impossible find result file"); 
+      else return array('success' => false, 'message' => "Impossible find result file");
+    }
+
+    if(($downloadResult['pid'] == 0) && file_exists($from_file)){
+if ($formatInfo['format'] == "VOTable"){
+    $res = $objectMgr->generateVOTableFromDownloadResult($downloadResult['id'], $downloadResult['name']);
+    if ($res['success']){
+      $outputFile = $res['files'][0];
+      rename($res['files'][0], WSRESULT.$this->dataFileName.".xml");
+      $outputFile = WSRESULT.$this->dataFileName.".xml";
+    }
+    else {
+      if ($this->isSoap)  throw new SoapFault("server08",$res['message']); 
+      else return array('success' => false, 'message' => $res['message']);
+    }
+}
+elseif ($formatInfo['format'] == "netCDF"){
+  $formatNc = true;
+  if ($this->isSoap)  throw new SoapFault("server09","netCDF format not implemented yet"); 
+    else return array('success' => false, 'message' => "netCDF format not implemented yet");
+}
+else {
+  exec("tar zxvf $from_file");
+  exec("mv $from_path*.txt ".WSRESULT."'".$this->dataFileName.".txt'");
+  $outputFile = WSRESULT.$this->dataFileName.".txt";
+  chmod ($outputFile, 0664);
+}
+    }
+
+    if ($formatInfo['gzip'] == 1){
+      $zipFile = $outputFile.".gz";
+      $this->compress($outputFile, $zipFile);
+      $outputFile = $zipFile;
+    }
+
+    if ($outputFile) {
+      if ($formatInfo['format'] == "VOTable"){
+         $dom = new DOMDocument;
+          $dom->load($outputFile);
+          $tds = $dom->getElementsByTagName('TD');
+    
+          if ($tds->length < 1){
+          if ($this->isSoap)  throw new SoapFault("server10","No data");
+          else return array('success' => false, 'message' => "No data");
+          }
+      }
+      $outputFile = 'http://'.str_replace(BASE_PATH,$_SERVER['SERVER_NAME'].APACHE_ALIAS,$outputFile);
+    }
+
+      if ($bach){
+  $obj = (object)array(
+    "id" => "bkgrd_down_".$pid,
+    "leaf" => true,
+    "nodeType"=>"bkgWorks");
+  $jobMgr->deleteObject($obj);
+  
+}
+else $jobMgr->deleteTmp();
+
+    return  array('success' => true, 'dataFileURLs' => $outputFile);
+     
+  }
+
+   protected function timeIntervalToDuration($startTime,$stopTime) {
+
+      $duration = strtotime($stopTime) - strtotime($startTime);
+      $durationDay  = intval($duration/(86400)); 
+      $duration = $duration - $durationDay*86400;
+      $durationHour = intval($duration/(3600));
+      $duration = $duration - $durationHour*3600;
+      $durationMin = intval($duration/(60));
+      $durationSec = $duration - $durationMin*60;
+      
+      return array("success" => true, "days"  => sprintf("%04s",   strval($durationDay)),
+      "hours" => sprintf("%02s",   strval($durationHour)),
+      "mins"  => sprintf("%02s",   strval($durationMin)),
+      "secs"  => sprintf("%02s",   strval($durationSec))
+      );
+  }
+
+  protected function getDataFileName($vars, $multiParam){
+      if ($vars['startTime'] && $vars['stopTime'] && $vars['parameterID'] && !$multiParam){
+  $fileName = $vars['parameterID']."-".strtotime($vars['startTime'])."-".strtotime($vars['stopTime'])."-".$vars['sampling'];
+  return array('success' => true, 'fileName' => $fileName);
+      }
+      elseif ($vars['startTime'] && $vars['stopTime'] && $vars['datasetID'] && $multiParam){
+  $datasetName = strtr($vars["datasetID"], array(":" => "_"));
+  $fileName = $datasetName."-".strtotime($vars['startTime'])."-".strtotime($vars['stopTime'])."-".$vars['sampling'];
+  return array('success' => true, 'fileName' => $fileName);
+      }
+      else {
+if (!$vars['startTime'])
+$message="Start time not specified";
+if (!$vars['stopTime'])
+$message="Stop time not specified";
+if (!$vars['parameterID'] && !$multiParam)
+$message="Parameter not specified";
+if (!$vars['datasetID'] && $multiParam)
+$message="DataSet not specified";
+return array('success' => false, 'message' => $message);
+      }
+  }
+
+   private  function compress($srcName, $dstName) {
+
+      $fp = fopen($srcName, "r");
+      $data = fread ($fp, filesize($srcName));
+      fclose($fp);
+
+      $zp = gzopen($dstName, "w9");
+      gzwrite($zp, $data);
+      gzclose($zp);
+    }
+
+}
+?>
diff --git a/php/classes/WsrParamMgr.php b/php/classes/WsrParamMgr.php
new file mode 100644
index 0000000..7e3dca4
--- /dev/null
+++ b/php/classes/WsrParamMgr.php
@@ -0,0 +1,166 @@
+<?php
+/**
+ * @class WsrParamMgr
+ * @version $Id: $
+ *    
+ */
+
+  class WsrParamMgr
+  {
+      protected $startTime, $stopTime;
+      protected $productor;
+      protected $parameterID;
+      protected $dataProducteur;
+      
+      function __construct() {
+  	  ini_set("soap.wsdl_cache_enabled", "0"); 
+      }
+      
+      public function setParams($data){
+
+	$this->parameterID	= $data['paramID']; 
+	$this->startTime	= $data['startDate'];	
+	$this->stopTime		= $data['stopDate'];
+	$this->dataProducteur   = $this->getDataProducteur();
+
+      }
+
+      public function updateInterval($start, $stop){         
+          $this->startTime = gmdate("Y-m-d\TH:i:s\Z", $start);
+          $this->stopTime =  gmdate("Y-m-d\TH:i:s\Z", $stop);  
+      }  
+
+      protected function getDataProducteur(){
+      
+    // TODO tests 
+    
+	if (isset($this->parameterID)){
+	  $tmp 		=  explode( '_', $this->parameterID);  
+	  return $tmp[0];
+	}
+	else return false;
+    }
+    
+         protected function makeRequest(){
+	 // genaration webservice request 
+            $tree = tree_CLWEB;
+            $xml = RemoteData.$tree;
+            $dom = new DOMDocument('1.0', 'utf-8');
+
+            if($dom->load($xml)){
+            
+            $paramByID = $dom->getElementById($this->parameterID);
+            if ($paramByID != NULL)
+                $param = $paramByID->getAttribute('cl_id');
+
+            if ($param != ''){
+                $params = array('parameterID'	=>	$param,	
+                                'startTime'	=>	$this->startTime,
+                                'stopTime'	=>	$this->stopTime,
+                                'outputFormat'	=>	'netCDF'
+                                );
+            return $params;
+            }
+            else return false;
+            }
+            else return false;
+      }
+      
+      protected function getDataProducteurWSDL(){
+      
+        if ($this->dataProducteur){
+        $wsdl = wsdl_CLWEB;
+        return $wsdl;
+        }
+        else return false;
+      
+      }
+      
+       protected function addFile($fileName){
+      
+        $myBaseManager = new BaseManager();
+        $start = strtotime($this->startTime);
+        $stop = strtotime($this->stopTime);
+        $mask = $myBaseManager->addWsFile($fileName, $start, $stop); 
+        if ($mask != null) {
+            $startstop = $myBaseManager->getStartStop($myBaseManager->getVi($mask));
+        }
+        $file = getenv('USER_DATA_PATH').$fileName;
+        $status = $this->reformatNcTime($file);
+        if ($status <= 0) {
+                unlink($this->fileName);
+                return array('success' => false, 'error' => 'error '.$timeFormat.PHP_EOL.'Time Format problem');	
+            }
+      return array( 'success' => true, 'file' => $fileName);
+      }
+      
+      protected function reformatNcTime($file) {
+        exec('nctimestring2double '.$file, $results); 
+        return $results[0]; 
+    }
+
+      public function getFileName(){
+	// file name generation with parameter ID(frome [DataProducteur]/base.xml), start & stop time in unix format
+	if ($this->parameterID && $this->parameterID != ''){
+	    $fileName = $this->parameterID.'_'.strtotime($this->startTime).'_'.strtotime($this->stopTime).'.nc';
+	    
+	    return $fileName;
+	}
+	else return false;
+      }
+
+      public function getMask(){
+        if ($this->parameterID && $this->parameterID != ''){
+            $mask = $this->parameterID.'_*.nc';
+            return $mask;
+            }
+        else return false;
+      }
+
+    public function getData(){
+
+      $fileName = $this->getFileName();
+      $newfile = getenv('USER_DATA_PATH').$fileName; 
+      if ($fileName){
+        try {
+                $client = new SoapClient(wsdl_CLWEB,
+                array(
+                        'wsdl_cache' => 0,
+                        'trace' => 1,
+        //	        'exceptions' => 0,
+                        'soap_version'=>SOAP_1_2
+                ));
+        }
+        catch  (SoapFault $exception) {//
+                    error_log("Problem with WSDL".PHP_EOL.$exception->getMessage().PHP_EOL.$exception->getTraceAsString().PHP_EOL."File =  ".$exception->getFile(),1,email);	  
+                    return false;
+        } 
+         
+        $params = $this->makeRequest($this->parameterID); 
+        // call WS 
+         try {
+                $file = $client->getParameter($params);
+            }
+        catch  (SoapFault $exception) {
+                error_log("Problem with query".PHP_EOL.$exception->getMessage().PHP_EOL.$exception->getTraceAsString().PHP_EOL."File =  ".$exception->getFile(),1,email);         
+                return false;
+         }
+        // copy result file to user DATA directory
+        if (!copy($file->dataFileURLs, $newfile)) {                  
+                error_log('Can\'t copy '.$file,1,email);
+                return false;
+        }
+        else {
+            chmod($fileName, 0775);
+            $this->addFile($fileName);
+            $wsrFilenames[$this->parameterID] = $fileName; 
+        }        
+        return $wsrFilenames;    
+       } //end  if ($fileName)
+      else
+          return false;  
+  }
+
+  }
+
+?> 
\ No newline at end of file
diff --git a/php/config.php b/php/config.php
new file mode 100644
index 0000000..53f1ee2
--- /dev/null
+++ b/php/config.php
@@ -0,0 +1,372 @@
+<?php
+ /**
+ * @file config.php
+ * @version $Id: config.php 2368 2014-05-21 08:46:23Z elena $
+ *
+ *
+ */
+
+$useFirePHP = false;
+// require FirePHP files
+if($useFirePHP) {
+	require_once("firephp/FirePHP.class.php");
+	require_once("firephp/fb.php");
+}
+ 
+// define empty fb() function so code does not break 
+// on any forgotten fb() calls later
+else {
+	function fb() {};
+}
+ 
+ob_start();
+
+// all installation dependent staff
+require_once 'my_config.php';
+
+if (is_file('php/amda_version.php') || is_file('amda_version.php'))
+            require_once 'amda_version.php';
+
+// all impex dependent staff
+// if (is_file('php/impex_config.php') || is_file('impex_config.php'))
+//             require_once 'impex_config.php';
+if (is_file('php/impex_config.php'))
+	require_once 'php/impex_config.php';            
+else  require_once 'impex_config.php';
+//---------------------------------------
+
+if (!defined('PHP_VERSION_ID'))
+ {
+    $version = explode('.', PHP_VERSION);
+    define('PHP_VERSION_ID', ($version[0] * 10000 + $version[1] * 100 + $version[2]));
+}
+
+if (!defined('MAGIC_FILE'))
+		define('MAGIC_FILE','/usr/share/misc/magic');
+
+define("MaxGuests", 10);
+define("GuestSessionDuration", 300);   //300 minutes
+define("MaxGuestTimeInterval", 10);   // days
+
+ini_set('upload_max_filesize',30000000);
+// SHOULD BE DEFINED IN MASTER php.ini !!!
+// ini_set('post_max_size',40000000);
+ini_set('memory_limit',128000000);
+
+// max lines of uploaded ascii file to show 
+define('MAX_FILE_INDEX_TO_SHOW', 100);
+// user WS size limit
+define('DISK_QUOTA', 1024*1024*200); // 200MB
+
+// to avoid 403 error while copying from URL
+ini_set('user_agent', 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:7.0) Gecko/201001012 Firefox/7.0');
+
+// private key used to be considerate as a trust client for some functions of DD web service
+define('DDSERVICE_PRIVATEKEY','!%p856Dc');
+
+date_default_timezone_set('UTC');
+// time restriction suffix
+define('restricted', '_restr');
+ 
+// one cycle secs to sleep to allow job be executed
+define('JOBTIMEOUT', '1');
+define('PLOT_CYCLES_NUMBER', 500); // cycles number for PNG
+define('JOB_CYCLES_NUMBER', 5);   // cycles number for all the jobs
+ 
+//TODO secs wait before job is killed  OR 'max_execution_time' - kill automatic?
+//define('TIMEOUT', '100');
+//TODO define max PHP execution
+ini_set('max_execution_time',600);
+
+//Error codes
+define('-1','NAME_EXISTS');
+define('-2','ID_CREATION_ERROR');
+define('-3','NO_SUCH_ID');
+define('-4','NO_SUCH_PARENT_ID');
+define('-5','NO_OBJECT_FILE');
+
+// SVN Repository for local parameters files (DD_*.xml, LocalParams.xml, ...)
+define('SVN_DDMISSIONSINFO', 'svn://cdpp1.cesr.fr/depotINFO/');
+define('SVN_LOCALPARAMSINFO', SVN_DDMISSIONSINFO.'LocalParam/');
+define('SVN_TEMPLATES', SVN_DDMISSIONSINFO.'Templates/');
+
+// EPN-TAP services
+define('EPNTAP_APIS','http://voparis-tap.obspm.fr/__system__/tap/run/tap/sync');
+define('EPNTAP_AMDA','http://cdpp-epntap.cesr.fr/__system__/tap/run/tap/sync');
+
+// General Info dirs; old AMDA 
+define('INFODIR', ROOT_PATH.'INFO/');
+define('XMLDIR', ROOT_PATH.'XML/');
+
+// General Info files; old AMDA
+define('userGroupsXml',XMLDIR.'AMDA_Users.xml');
+
+// PHP classes : new AMDA
+define('CLASSPATH', BASE_PATH.'php/classes/'); 
+define('OLD_CLASSPATH', BASE_PATH.'php/old_amda/');
+define('XMLPATH', BASE_PATH.'php/XML/');
+
+// General Info dirs : new AMDA
+define('DATAPATH', BASE_PATH.'generic_data/');
+
+define('Param', DATAPATH.'Param/'); 
+define('ParamArgs', Param.'Args/');
+define('LocalData', DATAPATH.'LocalData/');
+define('LocalDataParam', LocalData.'Param/');
+define('EPNResources', DATAPATH.'EPNResources/'); 
+define('LocalDataTemplate', LocalData.'Templates/');
+define('RemoteData', DATAPATH.'RemoteData/');
+define('Functions', DATAPATH.'Functions/');
+define('Plot', DATAPATH.'Plot/');
+define('Hst', DATAPATH.'Hst/');
+define('GeneralInfo', DATAPATH.'Info/');
+define('SpecialSettingsDir',DATAPATH.'SpecialSettings/'); 
+
+// General Info files; new  AMDA
+define('paramListXml',Param.'LocalParamsList.xml');
+define('paramXml',Param.'LocalParams.xml');
+define('orbitesXml',Param.'Orbites.xml');
+define('spectraXml',Param.'SpectraParamList.xml');
+define('targetsXml',LocalData.'targets.xml');
+
+define('missionXml',LocalData.'Missions.xml');
+define('internalParams', LocalData.'DD_InternalParams.xml');
+define('FeedbackXml', DATAPATH.'Feedback/Feedback.xml');
+define('TEMPLATES',BASE_PATH.'amda_plus/templates/');
+define('PREDEFINED',BASE_PATH.'amda_plus/predefined/');
+define('PRO',BASE_PATH.'amda_plus/pro/');
+define('specialGrpsXml',SpecialSettingsDir.'Groups.xml');
+
+//Help info dirs
+define('HELPPATH',  BASE_PATH."help/");
+define('targetsSimu',HELPPATH.'simu/TargetsSimu.xml');
+
+//Root User dir : new AMDA
+// All user dirs are defined in UserMgr.php
+define('USERPATH', BASE_PATH.'data/');
+
+// Shared dir
+define('SHAREDPATH', USERPATH.'SHAREDTT/');
+
+// Web Services result directory
+define('WSRESULT', USERPATH.'WSRESULT/');
+
+// Web Service result file
+define('wsResultsXml',WSRESULT.'WSresults.xml');
+
+// Web Service getPlot : list of parameters to plot
+define('plotsXml', BASE_PATH.'public/WebServices/XML/AmdaPlots.xml');
+// Web Service serveurs WSDL
+
+// $_SERVER['SERVER_NAME'] (par apache)  gethostname() (par command)
+$SERVER_NAME =  $_SERVER['SERVER_NAME'] ? $_SERVER['SERVER_NAME'] : gethostname();
+define('wsdl_AMDA', "http://".$SERVER_NAME.APACHE_ALIAS."public/wsdl/Methods_AMDA.wsdl"); 
+ 
+//  All DD scripts ini
+define('DDLIBHOME',DDHOME.'DDLIB/');
+
+// AKKA - DDBIN is now the new kernel bin dir
+define('DDBIN',NEWKERNEL_INSTALL_DIR.'bin/');
+
+if ($is64) {
+      define('DDLIB',DDLIBHOME.'lib64/');
+      define('DDPROJLIB',DDHOME.'AMDALIB/lib64/');
+}
+else {
+      define('DDLIB',DDLIBHOME.'lib/'); 
+      define('DDPROJLIB',DDHOME.'AMDALIB/lib/');
+}
+  
+putenv("LD_LIBRARY_PATH=".SYS_LIBS.":".DDLIB.":".CEFLIB.":".CDFLIB);
+putenv("PATH=./:".DDBIN.":".SYS_BIN.":".BASE_PATH."php/bin");
+
+//AKKA - New DDPATH dir with the new kernel
+putenv("DDPATH=".DDRES_DIR);
+
+putenv("AMDANGLIB=".OLD_CLASSPATH);
+  
+set_include_path(".:".CLASSPATH.":".OLD_CLASSPATH);
+
+global $API;
+ 
+if (!function_exists('__autoload')) {
+     function __autoload($class_name) {
+            require_once $class_name . '.php';
+     }
+}
+ 
+
+$API = array(
+    'AmdaAction'=>array(
+        'methods'=>array(
+	      'getTree'=>array(
+		  'len'=>1
+	      ),
+	      'saveTree'=>array(
+		  'len'=>1
+	      ),
+	      'getInfo'=>array(
+		  'len'=>1
+	      ),
+	      'doNothing'=>array(
+		  'len'=>1
+	      ),
+	      'deleteFromTree'=>array(
+		  'len'=>1
+	      ),
+	      'getObject'=>array(
+		  'len'=>2
+	      ), 
+	      'getAsciiFile'=>array(
+		  'len'=>1
+	      ),
+	      'getTmpObject'=>array(
+		  'len'=>3
+	      ),
+	      'getUploadedObject'=>array(
+		  'len'=>3
+	      ),
+	      'getParamInfo'=>array(
+		  'len'=>1
+	      ),
+	      'deleteObject'=>array(
+		  'len'=>1
+	      ), 
+	      'renameObject'=>array(
+		  'len'=>1
+	      ),
+	      'createObject'=>array(
+		  'len'=>2
+	      ),
+	      'modifyObject'=>array(
+		  'len'=>1
+	      ),
+      'validNameObject'=>array(
+  'len'=>1
+      ),
+	      'getJobs'=>array(
+		  'len'=>0
+	      ),
+	      'execute'=>array(
+		  'len'=>2
+  //		'formHandler'=>true
+	      ),
+	      'killPlotRequest' =>array(
+		  'len'=>1
+	      ),
+	      'merge'=>array(
+		      'len'=>1
+	      ),
+	      'intersect'=>array(
+		      'len'=>1
+	      ),
+	      'loadTTIntervals'=>array(
+	          'len'=>1
+	      ),
+      'saveTTCacheIntervalsInTT'=>array(
+  'len'=>1
+      ),
+      'initTTCache' => array (
+  'len'=>0
+      )	,
+      'initTTCacheFromTT' => array(
+  'len'=>2
+      ),
+      'initTTCacheFromTmpObject' => array(
+  'len'=>2
+      ),
+      'initTTCacheFromUploadedFile' => array(
+  'len'=>2
+      ),
+      'readTTCacheIntervals'=>array(
+  'len'=>1
+      ),
+      'addTTCacheInterval'=>array (
+  'len'=>1
+      ),
+      'removeTTCacheIntervalFromId'=>array (
+  'len'=>1
+      ),
+      'modifyTTCacheInterval' => array(
+  'len'=>1
+      ),
+      'operationTTCacheIntervals' => array(
+  'len'=>2
+      ),
+      'mergeTTCacheIntervals' => array (
+  'len'=>0
+      ),
+      'getTTCacheStatistics' => array (
+  'len'=>0
+      ),
+	      'sendFeedback'=>array(
+		      'len'=>1
+	      ),
+	      'saveState'=>array(
+	          'len'=>1
+	      ),
+	      'loadState'=>array(
+	          'len'=>1
+	      ),
+	      'sendToSAMP'=>array(
+	          'len'=>1
+	      ),
+	      'getHstImagesUrl'=>array(
+	          'len'=>1
+	      ),
+	      'getAPISImagesUrl'=>array(
+	          'len'=>1	      
+	      ),
+              'loadFilterList'=>array(
+                  'len'=>0
+              ),
+	      'loadFilters'=>array(
+	          'len'=>1
+	      ),
+	      'saveFilter'=>array(
+	          'len'=>1
+	      ),
+	      'createFilter'=>array(
+	          'len'=>1
+	      ),
+	      'destroyFilter'=>array(
+	          'len'=>1
+	      ),
+	      'getCrtFilterId'=>array(
+	          'len'=>0
+	      ),
+	      'getCrtFilterResult'=>array(
+	          'len'=>0
+	      ),
+	      'setCrtFilterId'=>array(
+	           'len'=>1
+	      ),
+	      'resetFilter'=>array(
+	           'len'=>0
+	      ),
+	      'logout'=>array(
+	           'len'=>0
+	      ),
+	      'getUserInfo'=>array(
+	           'len'=>0
+	      ),
+          'convertWS'=>array(
+               'len'=>0
+          ),
+          'getRun'=>array(
+               'len'=>1
+          ),
+          'addRun'=>array(
+               'len'=>1
+          ),
+		  //AKKA - New action to clean user WS
+		  'cleanUserWS'=>array(
+				'len'=>0
+		  ),
+               'deleteSpecialInfo'=>array(
+                   'len'=>1
+              )
+	    )
+      ) 
+);
+?>
diff --git a/php/firephp/FirePHP.class.php b/php/firephp/FirePHP.class.php
new file mode 100644
index 0000000..e8dc410
--- /dev/null
+++ b/php/firephp/FirePHP.class.php
@@ -0,0 +1,1784 @@
+<?php
+/**
+ * *** BEGIN LICENSE BLOCK *****
+ *  
+ * This file is part of FirePHP (http://www.firephp.org/).
+ * 
+ * Software License Agreement (New BSD License)
+ * 
+ * Copyright (c) 2006-2010, Christoph Dorn
+ * All rights reserved.
+ * 
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ * 
+ *     * Redistributions of source code must retain the above copyright notice,
+ *       this list of conditions and the following disclaimer.
+ * 
+ *     * Redistributions in binary form must reproduce the above copyright notice,
+ *       this list of conditions and the following disclaimer in the documentation
+ *       and/or other materials provided with the distribution.
+ * 
+ *     * Neither the name of Christoph Dorn nor the names of its
+ *       contributors may be used to endorse or promote products derived from this
+ *       software without specific prior written permission.
+ * 
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ * 
+ * ***** END LICENSE BLOCK *****
+ * 
+ * @copyright       Copyright (C) 2007-2009 Christoph Dorn
+ * @author          Christoph Dorn <christoph@christophdorn.com>
+ * @license         http://www.opensource.org/licenses/bsd-license.php
+ * @package         FirePHPCore
+ */
+
+/**
+ * @see http://code.google.com/p/firephp/issues/detail?id=112
+ */
+if (!defined('E_STRICT')) {
+    define('E_STRICT', 2048);
+}
+if (!defined('E_RECOVERABLE_ERROR')) {
+    define('E_RECOVERABLE_ERROR', 4096);
+}
+if (!defined('E_DEPRECATED')) {
+    define('E_DEPRECATED', 8192);
+}
+if (!defined('E_USER_DEPRECATED')) {
+    define('E_USER_DEPRECATED', 16384);
+} 
+ 
+/**
+ * Sends the given data to the FirePHP Firefox Extension.
+ * The data can be displayed in the Firebug Console or in the
+ * "Server" request tab.
+ * 
+ * For more information see: http://www.firephp.org/
+ * 
+ * @copyright       Copyright (C) 2007-2009 Christoph Dorn
+ * @author          Christoph Dorn <christoph@christophdorn.com>
+ * @license         http://www.opensource.org/licenses/bsd-license.php
+ * @package         FirePHPCore
+ */
+class FirePHP {
+
+    /**
+     * FirePHP version
+     *
+     * @var string
+     */
+    const VERSION = '0.3';    // @pinf replace '0.3' with '%%package.version%%'
+
+    /**
+     * Firebug LOG level
+     *
+     * Logs a message to firebug console.
+     * 
+     * @var string
+     */
+    const LOG = 'LOG';
+  
+    /**
+     * Firebug INFO level
+     *
+     * Logs a message to firebug console and displays an info icon before the message.
+     * 
+     * @var string
+     */
+    const INFO = 'INFO';
+    
+    /**
+     * Firebug WARN level
+     *
+     * Logs a message to firebug console, displays an warning icon before the message and colors the line turquoise.
+     * 
+     * @var string
+     */
+    const WARN = 'WARN';
+    
+    /**
+     * Firebug ERROR level
+     *
+     * Logs a message to firebug console, displays an error icon before the message and colors the line yellow. Also increments the firebug error count.
+     * 
+     * @var string
+     */
+    const ERROR = 'ERROR';
+    
+    /**
+     * Dumps a variable to firebug's server panel
+     *
+     * @var string
+     */
+    const DUMP = 'DUMP';
+    
+    /**
+     * Displays a stack trace in firebug console
+     *
+     * @var string
+     */
+    const TRACE = 'TRACE';
+    
+    /**
+     * Displays an exception in firebug console
+     * 
+     * Increments the firebug error count.
+     *
+     * @var string
+     */
+    const EXCEPTION = 'EXCEPTION';
+    
+    /**
+     * Displays an table in firebug console
+     *
+     * @var string
+     */
+    const TABLE = 'TABLE';
+    
+    /**
+     * Starts a group in firebug console
+     * 
+     * @var string
+     */
+    const GROUP_START = 'GROUP_START';
+    
+    /**
+     * Ends a group in firebug console
+     * 
+     * @var string
+     */
+    const GROUP_END = 'GROUP_END';
+    
+    /**
+     * Singleton instance of FirePHP
+     *
+     * @var FirePHP
+     */
+    protected static $instance = null;
+    
+    /**
+     * Flag whether we are logging from within the exception handler
+     * 
+     * @var boolean
+     */
+    protected $inExceptionHandler = false;
+    
+    /**
+     * Flag whether to throw PHP errors that have been converted to ErrorExceptions
+     * 
+     * @var boolean
+     */
+    protected $throwErrorExceptions = true;
+    
+    /**
+     * Flag whether to convert PHP assertion errors to Exceptions
+     * 
+     * @var boolean
+     */
+    protected $convertAssertionErrorsToExceptions = true;
+    
+    /**
+     * Flag whether to throw PHP assertion errors that have been converted to Exceptions
+     * 
+     * @var boolean
+     */
+    protected $throwAssertionExceptions = false;
+
+    /**
+     * Wildfire protocol message index
+     *
+     * @var int
+     */
+    protected $messageIndex = 1;
+    
+    /**
+     * Options for the library
+     * 
+     * @var array
+     */
+    protected $options = array('maxDepth' => 10,
+                               'maxObjectDepth' => 5,
+                               'maxArrayDepth' => 5,
+                               'useNativeJsonEncode' => true,
+                               'includeLineNumbers' => true);
+
+    /**
+     * Filters used to exclude object members when encoding
+     * 
+     * @var array
+     */
+    protected $objectFilters = array(
+        'firephp' => array('objectStack', 'instance', 'json_objectStack'),
+        'firephp_test_class' => array('objectStack', 'instance', 'json_objectStack')
+    );
+
+    /**
+     * A stack of objects used to detect recursion during object encoding
+     * 
+     * @var object
+     */
+    protected $objectStack = array();
+
+    /**
+     * Flag to enable/disable logging
+     * 
+     * @var boolean
+     */
+    protected $enabled = true;
+
+    /**
+     * The insight console to log to if applicable
+     * 
+     * @var object
+     */
+    protected $logToInsightConsole = null;
+
+    /**
+     * When the object gets serialized only include specific object members.
+     * 
+     * @return array
+     */  
+    public function __sleep()
+    {
+        return array('options','objectFilters','enabled');
+    }
+    
+    /**
+     * Gets singleton instance of FirePHP
+     *
+     * @param boolean $AutoCreate
+     * @return FirePHP
+     */
+    public static function getInstance($AutoCreate = false)
+    {
+        if ($AutoCreate===true && !self::$instance) {
+            self::init();
+        }
+        return self::$instance;
+    }
+    
+    /**
+     * Creates FirePHP object and stores it for singleton access
+     *
+     * @return FirePHP
+     */
+    public static function init()
+    {
+        return self::setInstance(new self());
+    }
+
+    /**
+     * Set the instance of the FirePHP singleton
+     * 
+     * @param FirePHP $instance The FirePHP object instance
+     * @return FirePHP
+     */
+    public static function setInstance($instance)
+    {
+        return self::$instance = $instance;
+    }
+
+    /**
+     * Set an Insight console to direct all logging calls to
+     * 
+     * @param object $console The console object to log to
+     * @return void
+     */
+    public function setLogToInsightConsole($console)
+    {
+        if(is_string($console)) {
+            if(get_class($this)!='FirePHP_Insight' && !is_subclass_of($this, 'FirePHP_Insight')) {
+                throw new Exception('FirePHP instance not an instance or subclass of FirePHP_Insight!');
+            }
+            $this->logToInsightConsole = $this->to('request')->console($console);
+        } else {
+            $this->logToInsightConsole = $console;
+        }
+    }
+
+    /**
+     * Enable and disable logging to Firebug
+     * 
+     * @param boolean $Enabled TRUE to enable, FALSE to disable
+     * @return void
+     */
+    public function setEnabled($Enabled)
+    {
+       $this->enabled = $Enabled;
+    }
+    
+    /**
+     * Check if logging is enabled
+     * 
+     * @return boolean TRUE if enabled
+     */
+    public function getEnabled()
+    {
+        return $this->enabled;
+    }
+    
+    /**
+     * Specify a filter to be used when encoding an object
+     * 
+     * Filters are used to exclude object members.
+     * 
+     * @param string $Class The class name of the object
+     * @param array $Filter An array of members to exclude
+     * @return void
+     */
+    public function setObjectFilter($Class, $Filter)
+    {
+        $this->objectFilters[strtolower($Class)] = $Filter;
+    }
+  
+    /**
+     * Set some options for the library
+     * 
+     * Options:
+     *  - maxDepth: The maximum depth to traverse (default: 10)
+     *  - maxObjectDepth: The maximum depth to traverse objects (default: 5)
+     *  - maxArrayDepth: The maximum depth to traverse arrays (default: 5)
+     *  - useNativeJsonEncode: If true will use json_encode() (default: true)
+     *  - includeLineNumbers: If true will include line numbers and filenames (default: true)
+     * 
+     * @param array $Options The options to be set
+     * @return void
+     */
+    public function setOptions($Options)
+    {
+        $this->options = array_merge($this->options,$Options);
+    }
+
+    /**
+     * Get options from the library
+     *
+     * @return array The currently set options
+     */
+    public function getOptions()
+    {
+        return $this->options;
+    }
+
+    /**
+     * Set an option for the library
+     * 
+     * @param string $Name
+     * @param mixed $Value
+     * @throws Exception
+     * @return void
+     */  
+    public function setOption($Name, $Value)
+    {
+        if (!isset($this->options[$Name])) {
+            throw $this->newException('Unknown option: ' . $Name);
+        }
+        $this->options[$Name] = $Value;
+    }
+
+    /**
+     * Get an option from the library
+     *
+     * @param string $Name
+     * @throws Exception
+     * @return mixed
+     */
+    public function getOption($Name)
+    {
+        if (!isset($this->options[$Name])) {
+            throw $this->newException('Unknown option: ' . $Name);
+        }
+        return $this->options[$Name];
+    }
+
+    /**
+     * Register FirePHP as your error handler
+     * 
+     * Will throw exceptions for each php error.
+     * 
+     * @return mixed Returns a string containing the previously defined error handler (if any)
+     */
+    public function registerErrorHandler($throwErrorExceptions = false)
+    {
+        //NOTE: The following errors will not be caught by this error handler:
+        //      E_ERROR, E_PARSE, E_CORE_ERROR,
+        //      E_CORE_WARNING, E_COMPILE_ERROR,
+        //      E_COMPILE_WARNING, E_STRICT
+    
+        $this->throwErrorExceptions = $throwErrorExceptions;
+    
+        return set_error_handler(array($this,'errorHandler'));     
+    }
+
+    /**
+     * FirePHP's error handler
+     * 
+     * Throws exception for each php error that will occur.
+     *
+     * @param int $errno
+     * @param string $errstr
+     * @param string $errfile
+     * @param int $errline
+     * @param array $errcontext
+     */
+    public function errorHandler($errno, $errstr, $errfile, $errline, $errcontext)
+    {
+        // Don't throw exception if error reporting is switched off
+        if (error_reporting() == 0) {
+            return;
+        }
+        // Only throw exceptions for errors we are asking for
+        if (error_reporting() & $errno) {
+
+            $exception = new ErrorException($errstr, 0, $errno, $errfile, $errline);
+            if ($this->throwErrorExceptions) {
+                throw $exception;
+            } else {
+                $this->fb($exception);
+            }
+        }
+    }
+  
+    /**
+     * Register FirePHP as your exception handler
+     * 
+     * @return mixed Returns the name of the previously defined exception handler,
+     *               or NULL on error.
+     *               If no previous handler was defined, NULL is also returned.
+     */
+    public function registerExceptionHandler()
+    {
+        return set_exception_handler(array($this,'exceptionHandler'));     
+    }
+  
+    /**
+     * FirePHP's exception handler
+     * 
+     * Logs all exceptions to your firebug console and then stops the script.
+     *
+     * @param Exception $Exception
+     * @throws Exception
+     */
+    function exceptionHandler($Exception)
+    {
+    
+        $this->inExceptionHandler = true;
+    
+        header('HTTP/1.1 500 Internal Server Error');
+    
+        try {
+            $this->fb($Exception);
+        } catch (Exception $e) {
+            echo 'We had an exception: ' . $e;
+        }
+        $this->inExceptionHandler = false;
+    }
+  
+    /**
+     * Register FirePHP driver as your assert callback
+     * 
+     * @param boolean $convertAssertionErrorsToExceptions
+     * @param boolean $throwAssertionExceptions
+     * @return mixed Returns the original setting or FALSE on errors
+     */
+    public function registerAssertionHandler($convertAssertionErrorsToExceptions = true, $throwAssertionExceptions = false)
+    {
+        $this->convertAssertionErrorsToExceptions = $convertAssertionErrorsToExceptions;
+        $this->throwAssertionExceptions = $throwAssertionExceptions;
+        
+        if ($throwAssertionExceptions && !$convertAssertionErrorsToExceptions) {
+            throw $this->newException('Cannot throw assertion exceptions as assertion errors are not being converted to exceptions!');
+        }
+        
+        return assert_options(ASSERT_CALLBACK, array($this, 'assertionHandler'));
+    }
+  
+    /**
+     * FirePHP's assertion handler
+     *
+     * Logs all assertions to your firebug console and then stops the script.
+     *
+     * @param string $file File source of assertion
+     * @param int    $line Line source of assertion
+     * @param mixed  $code Assertion code
+     */
+    public function assertionHandler($file, $line, $code)
+    {
+        if ($this->convertAssertionErrorsToExceptions) {
+          
+          $exception = new ErrorException('Assertion Failed - Code[ '.$code.' ]', 0, null, $file, $line);
+    
+          if ($this->throwAssertionExceptions) {
+              throw $exception;
+          } else {
+              $this->fb($exception);
+          }
+        
+        } else {
+            $this->fb($code, 'Assertion Failed', FirePHP::ERROR, array('File'=>$file,'Line'=>$line));
+        }
+    }
+  
+    /**
+     * Start a group for following messages.
+     * 
+     * Options:
+     *   Collapsed: [true|false]
+     *   Color:     [#RRGGBB|ColorName]
+     *
+     * @param string $Name
+     * @param array $Options OPTIONAL Instructions on how to log the group
+     * @return true
+     * @throws Exception
+     */
+    public function group($Name, $Options = null)
+    {
+    
+        if (!$Name) {
+            throw $this->newException('You must specify a label for the group!');
+        }
+        
+        if ($Options) {
+            if (!is_array($Options)) {
+                throw $this->newException('Options must be defined as an array!');
+            }
+            if (array_key_exists('Collapsed', $Options)) {
+                $Options['Collapsed'] = ($Options['Collapsed'])?'true':'false';
+            }
+        }
+        
+        return $this->fb(null, $Name, FirePHP::GROUP_START, $Options);
+    }
+  
+    /**
+     * Ends a group you have started before
+     *
+     * @return true
+     * @throws Exception
+     */
+    public function groupEnd()
+    {
+        return $this->fb(null, null, FirePHP::GROUP_END);
+    }
+
+    /**
+     * Log object with label to firebug console
+     *
+     * @see FirePHP::LOG
+     * @param mixes $Object
+     * @param string $Label
+     * @return true
+     * @throws Exception
+     */
+    public function log($Object, $Label = null, $Options = array())
+    {
+        return $this->fb($Object, $Label, FirePHP::LOG, $Options);
+    } 
+
+    /**
+     * Log object with label to firebug console
+     *
+     * @see FirePHP::INFO
+     * @param mixes $Object
+     * @param string $Label
+     * @return true
+     * @throws Exception
+     */
+    public function info($Object, $Label = null, $Options = array())
+    {
+        return $this->fb($Object, $Label, FirePHP::INFO, $Options);
+    } 
+
+    /**
+     * Log object with label to firebug console
+     *
+     * @see FirePHP::WARN
+     * @param mixes $Object
+     * @param string $Label
+     * @return true
+     * @throws Exception
+     */
+    public function warn($Object, $Label = null, $Options = array())
+    {
+        return $this->fb($Object, $Label, FirePHP::WARN, $Options);
+    } 
+
+    /**
+     * Log object with label to firebug console
+     *
+     * @see FirePHP::ERROR
+     * @param mixes $Object
+     * @param string $Label
+     * @return true
+     * @throws Exception
+     */
+    public function error($Object, $Label = null, $Options = array())
+    {
+        return $this->fb($Object, $Label, FirePHP::ERROR, $Options);
+    } 
+
+    /**
+     * Dumps key and variable to firebug server panel
+     *
+     * @see FirePHP::DUMP
+     * @param string $Key
+     * @param mixed $Variable
+     * @return true
+     * @throws Exception
+     */
+    public function dump($Key, $Variable, $Options = array())
+    {
+        if (!is_string($Key)) {
+            throw $this->newException('Key passed to dump() is not a string');
+        }
+        if (strlen($Key)>100) {
+            throw $this->newException('Key passed to dump() is longer than 100 characters');
+        }
+        if (!preg_match_all('/^[a-zA-Z0-9-_\.:]*$/', $Key, $m)) {
+            throw $this->newException('Key passed to dump() contains invalid characters [a-zA-Z0-9-_\.:]');
+        }
+        return $this->fb($Variable, $Key, FirePHP::DUMP, $Options);
+    }
+  
+    /**
+     * Log a trace in the firebug console
+     *
+     * @see FirePHP::TRACE
+     * @param string $Label
+     * @return true
+     * @throws Exception
+     */
+    public function trace($Label)
+    {
+        return $this->fb($Label, FirePHP::TRACE);
+    } 
+
+    /**
+     * Log a table in the firebug console
+     *
+     * @see FirePHP::TABLE
+     * @param string $Label
+     * @param string $Table
+     * @return true
+     * @throws Exception
+     */
+    public function table($Label, $Table, $Options = array())
+    {
+        return $this->fb($Table, $Label, FirePHP::TABLE, $Options);
+    }
+
+    /**
+     * Insight API wrapper
+     * 
+     * @see Insight_Helper::to()
+     */
+    public static function to()
+    {
+        $instance = self::getInstance();
+        if (!method_exists($instance, "_to")) {
+            throw new Exception("FirePHP::to() implementation not loaded");
+        }
+        $args = func_get_args();
+        return call_user_func_array(array($instance, '_to'), $args);
+    }
+
+    /**
+     * Insight API wrapper
+     * 
+     * @see Insight_Helper::plugin()
+     */
+    public static function plugin()
+    {
+        $instance = self::getInstance();
+        if (!method_exists($instance, "_plugin")) {
+            throw new Exception("FirePHP::plugin() implementation not loaded");
+        }
+        $args = func_get_args();
+        return call_user_func_array(array($instance, '_plugin'), $args);
+    }
+
+    /**
+     * Check if FirePHP is installed on client
+     *
+     * @return boolean
+     */
+    public function detectClientExtension()
+    {
+        // Check if FirePHP is installed on client via User-Agent header
+        if (@preg_match_all('/\sFirePHP\/([\.\d]*)\s?/si',$this->getUserAgent(),$m) &&
+           version_compare($m[1][0],'0.0.6','>=')) {
+            return true;
+        } else
+        // Check if FirePHP is installed on client via X-FirePHP-Version header
+        if (@preg_match_all('/^([\.\d]*)$/si',$this->getRequestHeader("X-FirePHP-Version"),$m) &&
+           version_compare($m[1][0],'0.0.6','>=')) {
+            return true;
+        }
+        return false;
+    }
+ 
+    /**
+     * Log varible to Firebug
+     * 
+     * @see http://www.firephp.org/Wiki/Reference/Fb
+     * @param mixed $Object The variable to be logged
+     * @return true Return TRUE if message was added to headers, FALSE otherwise
+     * @throws Exception
+     */
+    public function fb($Object)
+    {
+        if($this instanceof FirePHP_Insight && method_exists($this, '_logUpgradeClientMessage')) {
+            if(!FirePHP_Insight::$upgradeClientMessageLogged) {    // avoid infinite recursion as _logUpgradeClientMessage() logs a message
+                $this->_logUpgradeClientMessage();
+            }
+        }
+
+        static $insightGroupStack = array();
+
+        if (!$this->getEnabled()) {
+            return false;
+        }
+
+        if ($this->headersSent($filename, $linenum)) {
+            // If we are logging from within the exception handler we cannot throw another exception
+            if ($this->inExceptionHandler) {
+                // Simply echo the error out to the page
+                echo '<div style="border: 2px solid red; font-family: Arial; font-size: 12px; background-color: lightgray; padding: 5px;"><span style="color: red; font-weight: bold;">FirePHP ERROR:</span> Headers already sent in <b>'.$filename.'</b> on line <b>'.$linenum.'</b>. Cannot send log data to FirePHP. You must have Output Buffering enabled via ob_start() or output_buffering ini directive.</div>';
+            } else {
+                throw $this->newException('Headers already sent in '.$filename.' on line '.$linenum.'. Cannot send log data to FirePHP. You must have Output Buffering enabled via ob_start() or output_buffering ini directive.');
+            }
+        }
+      
+        $Type = null;
+        $Label = null;
+        $Options = array();
+      
+        if (func_num_args()==1) {
+        } else
+        if (func_num_args()==2) {
+            switch(func_get_arg(1)) {
+                case self::LOG:
+                case self::INFO:
+                case self::WARN:
+                case self::ERROR:
+                case self::DUMP:
+                case self::TRACE:
+                case self::EXCEPTION:
+                case self::TABLE:
+                case self::GROUP_START:
+                case self::GROUP_END:
+                    $Type = func_get_arg(1);
+                    break;
+                default:
+                    $Label = func_get_arg(1);
+                    break;
+            }
+        } else
+        if (func_num_args()==3) {
+            $Type = func_get_arg(2);
+            $Label = func_get_arg(1);
+        } else
+        if (func_num_args()==4) {
+            $Type = func_get_arg(2);
+            $Label = func_get_arg(1);
+            $Options = func_get_arg(3);
+        } else {
+            throw $this->newException('Wrong number of arguments to fb() function!');
+        }
+
+        if($this->logToInsightConsole!==null && (get_class($this)=='FirePHP_Insight' || is_subclass_of($this, 'FirePHP_Insight'))) {
+            $msg = $this->logToInsightConsole;
+            if ($Object instanceof Exception) {
+                $Type = self::EXCEPTION;
+            }
+            if($Label && $Type!=self::TABLE && $Type!=self::GROUP_START) {
+                $msg = $msg->label($Label);
+            }
+            switch($Type) {
+                case self::DUMP:
+                case self::LOG:
+                    return $msg->log($Object);
+                case self::INFO:
+                    return $msg->info($Object);
+                case self::WARN:
+                    return $msg->warn($Object);
+                case self::ERROR:
+                    return $msg->error($Object);
+                case self::TRACE:
+                    return $msg->trace($Object);
+                case self::EXCEPTION:
+                	return $this->plugin('engine')->handleException($Object, $msg);
+                case self::TABLE:
+                    if (isset($Object[0]) && !is_string($Object[0]) && $Label) {
+                        $Object = array($Label, $Object);
+                    }
+                    return $msg->table($Object[0], array_slice($Object[1],1), $Object[1][0]);
+                case self::GROUP_START:
+                	$insightGroupStack[] = $msg->group(md5($Label))->open();
+                    return $msg->log($Label);
+                case self::GROUP_END:
+                	if(count($insightGroupStack)==0) {
+                	    throw new Error('Too many groupEnd() as opposed to group() calls!');
+                	}
+                	$group = array_pop($insightGroupStack);
+                    return $group->close();
+	            default:
+                    return $msg->log($Object);
+            }
+        }
+
+        if (!$this->detectClientExtension()) {
+            return false;
+        }
+      
+        $meta = array();
+        $skipFinalObjectEncode = false;
+      
+        if ($Object instanceof Exception) {
+    
+            $meta['file'] = $this->_escapeTraceFile($Object->getFile());
+            $meta['line'] = $Object->getLine();
+          
+            $trace = $Object->getTrace();
+            if ($Object instanceof ErrorException
+               && isset($trace[0]['function'])
+               && $trace[0]['function']=='errorHandler'
+               && isset($trace[0]['class'])
+               && $trace[0]['class']=='FirePHP') {
+               
+                $severity = false;
+                switch($Object->getSeverity()) {
+                    case E_WARNING: $severity = 'E_WARNING'; break;
+                    case E_NOTICE: $severity = 'E_NOTICE'; break;
+                    case E_USER_ERROR: $severity = 'E_USER_ERROR'; break;
+                    case E_USER_WARNING: $severity = 'E_USER_WARNING'; break;
+                    case E_USER_NOTICE: $severity = 'E_USER_NOTICE'; break;
+                    case E_STRICT: $severity = 'E_STRICT'; break;
+                    case E_RECOVERABLE_ERROR: $severity = 'E_RECOVERABLE_ERROR'; break;
+                    case E_DEPRECATED: $severity = 'E_DEPRECATED'; break;
+                    case E_USER_DEPRECATED: $severity = 'E_USER_DEPRECATED'; break;
+                }
+                   
+                $Object = array('Class'=>get_class($Object),
+                                'Message'=>$severity.': '.$Object->getMessage(),
+                                'File'=>$this->_escapeTraceFile($Object->getFile()),
+                                'Line'=>$Object->getLine(),
+                                'Type'=>'trigger',
+                                'Trace'=>$this->_escapeTrace(array_splice($trace,2)));
+                $skipFinalObjectEncode = true;
+            } else {
+                $Object = array('Class'=>get_class($Object),
+                                'Message'=>$Object->getMessage(),
+                                'File'=>$this->_escapeTraceFile($Object->getFile()),
+                                'Line'=>$Object->getLine(),
+                                'Type'=>'throw',
+                                'Trace'=>$this->_escapeTrace($trace));
+                $skipFinalObjectEncode = true;
+            }
+            $Type = self::EXCEPTION;
+          
+        } else
+        if ($Type==self::TRACE) {
+          
+            $trace = debug_backtrace();
+            if (!$trace) return false;
+            for( $i=0 ; $i<sizeof($trace) ; $i++ ) {
+    
+                if (isset($trace[$i]['class'])
+                   && isset($trace[$i]['file'])
+                   && ($trace[$i]['class']=='FirePHP'
+                       || $trace[$i]['class']=='FB')
+                   && (substr($this->_standardizePath($trace[$i]['file']),-18,18)=='FirePHPCore/fb.php'
+                       || substr($this->_standardizePath($trace[$i]['file']),-29,29)=='FirePHPCore/FirePHP.class.php')) {
+                    /* Skip - FB::trace(), FB::send(), $firephp->trace(), $firephp->fb() */
+                } else
+                if (isset($trace[$i]['class'])
+                   && isset($trace[$i+1]['file'])
+                   && $trace[$i]['class']=='FirePHP'
+                   && substr($this->_standardizePath($trace[$i+1]['file']),-18,18)=='FirePHPCore/fb.php') {
+                    /* Skip fb() */
+                } else
+                if ($trace[$i]['function']=='fb'
+                   || $trace[$i]['function']=='trace'
+                   || $trace[$i]['function']=='send') {
+
+                    $Object = array('Class'=>isset($trace[$i]['class'])?$trace[$i]['class']:'',
+                                    'Type'=>isset($trace[$i]['type'])?$trace[$i]['type']:'',
+                                    'Function'=>isset($trace[$i]['function'])?$trace[$i]['function']:'',
+                                    'Message'=>$trace[$i]['args'][0],
+                                    'File'=>isset($trace[$i]['file'])?$this->_escapeTraceFile($trace[$i]['file']):'',
+                                    'Line'=>isset($trace[$i]['line'])?$trace[$i]['line']:'',
+                                    'Args'=>isset($trace[$i]['args'])?$this->encodeObject($trace[$i]['args']):'',
+                                    'Trace'=>$this->_escapeTrace(array_splice($trace,$i+1)));
+        
+                    $skipFinalObjectEncode = true;
+                    $meta['file'] = isset($trace[$i]['file'])?$this->_escapeTraceFile($trace[$i]['file']):'';
+                    $meta['line'] = isset($trace[$i]['line'])?$trace[$i]['line']:'';
+                    break;
+                }
+            }
+    
+        } else
+        if ($Type==self::TABLE) {
+          
+            if (isset($Object[0]) && is_string($Object[0])) {
+                $Object[1] = $this->encodeTable($Object[1]);
+            } else {
+                $Object = $this->encodeTable($Object);
+            }
+    
+            $skipFinalObjectEncode = true;
+          
+        } else
+        if ($Type==self::GROUP_START) {
+          
+            if (!$Label) {
+                throw $this->newException('You must specify a label for the group!');
+            }
+          
+        } else {
+            if ($Type===null) {
+                $Type = self::LOG;
+            }
+        }
+        
+        if ($this->options['includeLineNumbers']) {
+            if (!isset($meta['file']) || !isset($meta['line'])) {
+    
+                $trace = debug_backtrace();
+                for( $i=0 ; $trace && $i<sizeof($trace) ; $i++ ) {
+          
+                    if (isset($trace[$i]['class'])
+                       && isset($trace[$i]['file'])
+                       && ($trace[$i]['class']=='FirePHP'
+                           || $trace[$i]['class']=='FB')
+                       && (substr($this->_standardizePath($trace[$i]['file']),-18,18)=='FirePHPCore/fb.php'
+                           || substr($this->_standardizePath($trace[$i]['file']),-29,29)=='FirePHPCore/FirePHP.class.php')) {
+                        /* Skip - FB::trace(), FB::send(), $firephp->trace(), $firephp->fb() */
+                    } else
+                    if (isset($trace[$i]['class'])
+                       && isset($trace[$i+1]['file'])
+                       && $trace[$i]['class']=='FirePHP'
+                       && substr($this->_standardizePath($trace[$i+1]['file']),-18,18)=='FirePHPCore/fb.php') {
+                        /* Skip fb() */
+                    } else
+                    if (isset($trace[$i]['file'])
+                       && substr($this->_standardizePath($trace[$i]['file']),-18,18)=='FirePHPCore/fb.php') {
+                        /* Skip FB::fb() */
+                    } else {
+                        $meta['file'] = isset($trace[$i]['file'])?$this->_escapeTraceFile($trace[$i]['file']):'';
+                        $meta['line'] = isset($trace[$i]['line'])?$trace[$i]['line']:'';
+                        break;
+                    }
+                }      
+            }
+        } else {
+            unset($meta['file']);
+            unset($meta['line']);
+        }
+
+        $this->setHeader('X-Wf-Protocol-1','http://meta.wildfirehq.org/Protocol/JsonStream/0.2');
+        $this->setHeader('X-Wf-1-Plugin-1','http://meta.firephp.org/Wildfire/Plugin/FirePHP/Library-FirePHPCore/'.self::VERSION);
+     
+        $structure_index = 1;
+        if ($Type==self::DUMP) {
+            $structure_index = 2;
+            $this->setHeader('X-Wf-1-Structure-2','http://meta.firephp.org/Wildfire/Structure/FirePHP/Dump/0.1');
+        } else {
+            $this->setHeader('X-Wf-1-Structure-1','http://meta.firephp.org/Wildfire/Structure/FirePHP/FirebugConsole/0.1');
+        }
+      
+        if ($Type==self::DUMP) {
+            $msg = '{"'.$Label.'":'.$this->jsonEncode($Object, $skipFinalObjectEncode).'}';
+        } else {
+            $msg_meta = $Options;
+            $msg_meta['Type'] = $Type;
+            if ($Label!==null) {
+                $msg_meta['Label'] = $Label;
+            }
+            if (isset($meta['file']) && !isset($msg_meta['File'])) {
+                $msg_meta['File'] = $meta['file'];
+            }
+            if (isset($meta['line']) && !isset($msg_meta['Line'])) {
+                $msg_meta['Line'] = $meta['line'];
+            }
+            $msg = '['.$this->jsonEncode($msg_meta).','.$this->jsonEncode($Object, $skipFinalObjectEncode).']';
+        }
+        
+        $parts = explode("\n",chunk_split($msg, 5000, "\n"));
+    
+        for( $i=0 ; $i<count($parts) ; $i++) {
+            
+            $part = $parts[$i];
+            if ($part) {
+                
+                if (count($parts)>2) {
+                    // Message needs to be split into multiple parts
+                    $this->setHeader('X-Wf-1-'.$structure_index.'-'.'1-'.$this->messageIndex,
+                                     (($i==0)?strlen($msg):'')
+                                     . '|' . $part . '|'
+                                     . (($i<count($parts)-2)?'\\':''));
+                } else {
+                    $this->setHeader('X-Wf-1-'.$structure_index.'-'.'1-'.$this->messageIndex,
+                                     strlen($part) . '|' . $part . '|');
+                }
+                
+                $this->messageIndex++;
+                
+                if ($this->messageIndex > 99999) {
+                    throw $this->newException('Maximum number (99,999) of messages reached!');             
+                }
+            }
+        }
+    
+        $this->setHeader('X-Wf-1-Index',$this->messageIndex-1);
+    
+        return true;
+    }
+  
+    /**
+     * Standardizes path for windows systems.
+     *
+     * @param string $Path
+     * @return string
+     */
+    protected function _standardizePath($Path)
+    {
+        return preg_replace('/\\\\+/','/',$Path);    
+    }
+  
+    /**
+     * Escape trace path for windows systems
+     *
+     * @param array $Trace
+     * @return array
+     */
+    protected function _escapeTrace($Trace)
+    {
+        if (!$Trace) return $Trace;
+        for( $i=0 ; $i<sizeof($Trace) ; $i++ ) {
+            if (isset($Trace[$i]['file'])) {
+                $Trace[$i]['file'] = $this->_escapeTraceFile($Trace[$i]['file']);
+            }
+            if (isset($Trace[$i]['args'])) {
+                $Trace[$i]['args'] = $this->encodeObject($Trace[$i]['args']);
+            }
+        }
+        return $Trace;    
+    }
+  
+    /**
+     * Escape file information of trace for windows systems
+     *
+     * @param string $File
+     * @return string
+     */
+    protected function _escapeTraceFile($File)
+    {
+        /* Check if we have a windows filepath */
+        if (strpos($File,'\\')) {
+            /* First strip down to single \ */
+          
+            $file = preg_replace('/\\\\+/','\\',$File);
+          
+            return $file;
+        }
+        return $File;
+    }
+
+    /**
+     * Check if headers have already been sent
+     *
+     * @param string $Filename
+     * @param integer $Linenum
+     */
+    protected function headersSent(&$Filename, &$Linenum)
+    {
+        return headers_sent($Filename, $Linenum);
+    }
+
+    /**
+     * Send header
+     *
+     * @param string $Name
+     * @param string $Value
+     */
+    protected function setHeader($Name, $Value)
+    {
+        return header($Name.': '.$Value);
+    }
+
+    /**
+     * Get user agent
+     *
+     * @return string|false
+     */
+    protected function getUserAgent()
+    {
+        if (!isset($_SERVER['HTTP_USER_AGENT'])) return false;
+        return $_SERVER['HTTP_USER_AGENT'];
+    }
+
+    /**
+     * Get all request headers
+     * 
+     * @return array
+     */
+    public static function getAllRequestHeaders() {
+        static $_cached_headers = false;
+        if($_cached_headers!==false) {
+            return $_cached_headers;
+        }
+        $headers = array();
+        if(function_exists('getallheaders')) {
+            foreach( getallheaders() as $name => $value ) {
+                $headers[strtolower($name)] = $value;
+            }
+        } else {
+            foreach($_SERVER as $name => $value) {
+                if(substr($name, 0, 5) == 'HTTP_') {
+                    $headers[strtolower(str_replace(' ', '-', str_replace('_', ' ', substr($name, 5))))] = $value;
+                }
+            }
+        }
+        return $_cached_headers = $headers;
+    }
+
+    /**
+     * Get a request header
+     *
+     * @return string|false
+     */
+    protected function getRequestHeader($Name)
+    {
+        $headers = self::getAllRequestHeaders();
+        if (isset($headers[strtolower($Name)])) {
+            return $headers[strtolower($Name)];
+        }
+        return false;
+    }
+
+    /**
+     * Returns a new exception
+     *
+     * @param string $Message
+     * @return Exception
+     */
+    protected function newException($Message)
+    {
+        return new Exception($Message);
+    }
+  
+    /**
+     * Encode an object into a JSON string
+     * 
+     * Uses PHP's jeson_encode() if available
+     * 
+     * @param object $Object The object to be encoded
+     * @return string The JSON string
+     */
+    public function jsonEncode($Object, $skipObjectEncode = false)
+    {
+        if (!$skipObjectEncode) {
+            $Object = $this->encodeObject($Object);
+        }
+        
+        if (function_exists('json_encode')
+           && $this->options['useNativeJsonEncode']!=false) {
+    
+            return json_encode($Object);
+        } else {
+            return $this->json_encode($Object);
+        }
+    }
+
+    /**
+     * Encodes a table by encoding each row and column with encodeObject()
+     * 
+     * @param array $Table The table to be encoded
+     * @return array
+     */  
+    protected function encodeTable($Table)
+    {
+    
+        if (!$Table) return $Table;
+        
+        $new_table = array();
+        foreach($Table as $row) {
+      
+            if (is_array($row)) {
+                $new_row = array();
+            
+                foreach($row as $item) {
+                    $new_row[] = $this->encodeObject($item);
+                }
+            
+                $new_table[] = $new_row;
+            }
+        }
+        
+        return $new_table;
+    }
+
+    /**
+     * Encodes an object including members with
+     * protected and private visibility
+     * 
+     * @param Object $Object The object to be encoded
+     * @param int $Depth The current traversal depth
+     * @return array All members of the object
+     */
+    protected function encodeObject($Object, $ObjectDepth = 1, $ArrayDepth = 1, $MaxDepth = 1)
+    {
+        if ($MaxDepth > $this->options['maxDepth']) {
+            return '** Max Depth ('.$this->options['maxDepth'].') **';
+        }
+
+        $return = array();
+    
+        if (is_resource($Object)) {
+    
+            return '** '.(string)$Object.' **';
+    
+        } else    
+        if (is_object($Object)) {
+    
+            if ($ObjectDepth > $this->options['maxObjectDepth']) {
+                return '** Max Object Depth ('.$this->options['maxObjectDepth'].') **';
+            }
+            
+            foreach ($this->objectStack as $refVal) {
+                if ($refVal === $Object) {
+                    return '** Recursion ('.get_class($Object).') **';
+                }
+            }
+            array_push($this->objectStack, $Object);
+                    
+            $return['__className'] = $class = get_class($Object);
+            $class_lower = strtolower($class);
+    
+            $reflectionClass = new ReflectionClass($class);  
+            $properties = array();
+            foreach( $reflectionClass->getProperties() as $property) {
+                $properties[$property->getName()] = $property;
+            }
+                
+            $members = (array)$Object;
+    
+            foreach( $properties as $plain_name => $property ) {
+    
+                $name = $raw_name = $plain_name;
+                if ($property->isStatic()) {
+                    $name = 'static:'.$name;
+                }
+                if ($property->isPublic()) {
+                    $name = 'public:'.$name;
+                } else
+                if ($property->isPrivate()) {
+                    $name = 'private:'.$name;
+                    $raw_name = "\0".$class."\0".$raw_name;
+                } else
+                if ($property->isProtected()) {
+                    $name = 'protected:'.$name;
+                    $raw_name = "\0".'*'."\0".$raw_name;
+                }
+    
+                if (!(isset($this->objectFilters[$class_lower])
+                     && is_array($this->objectFilters[$class_lower])
+                     && in_array($plain_name,$this->objectFilters[$class_lower]))) {
+    
+                    if (array_key_exists($raw_name,$members)
+                       && !$property->isStatic()) {
+                  
+                        $return[$name] = $this->encodeObject($members[$raw_name], $ObjectDepth + 1, 1, $MaxDepth + 1);      
+                
+                    } else {
+                        if (method_exists($property,'setAccessible')) {
+                            $property->setAccessible(true);
+                            $return[$name] = $this->encodeObject($property->getValue($Object), $ObjectDepth + 1, 1, $MaxDepth + 1);
+                        } else
+                        if ($property->isPublic()) {
+                            $return[$name] = $this->encodeObject($property->getValue($Object), $ObjectDepth + 1, 1, $MaxDepth + 1);
+                        } else {
+                            $return[$name] = '** Need PHP 5.3 to get value **';
+                        }
+                    }
+                } else {
+                    $return[$name] = '** Excluded by Filter **';
+                }
+            }
+            
+            // Include all members that are not defined in the class
+            // but exist in the object
+            foreach( $members as $raw_name => $value ) {
+    
+                $name = $raw_name;
+              
+                if ($name{0} == "\0") {
+                    $parts = explode("\0", $name);
+                    $name = $parts[2];
+                }
+              
+                $plain_name = $name;
+    
+                if (!isset($properties[$name])) {
+                    $name = 'undeclared:'.$name;
+    
+                    if (!(isset($this->objectFilters[$class_lower])
+                         && is_array($this->objectFilters[$class_lower])
+                         && in_array($plain_name,$this->objectFilters[$class_lower]))) {
+    
+                        $return[$name] = $this->encodeObject($value, $ObjectDepth + 1, 1, $MaxDepth + 1);
+                    } else {
+                        $return[$name] = '** Excluded by Filter **';
+                    }
+                }
+            }
+            
+            array_pop($this->objectStack);
+            
+        } elseif (is_array($Object)) {
+    
+            if ($ArrayDepth > $this->options['maxArrayDepth']) {
+                return '** Max Array Depth ('.$this->options['maxArrayDepth'].') **';
+            }
+          
+            foreach ($Object as $key => $val) {
+              
+                // Encoding the $GLOBALS PHP array causes an infinite loop
+                // if the recursion is not reset here as it contains
+                // a reference to itself. This is the only way I have come up
+                // with to stop infinite recursion in this case.
+                if ($key=='GLOBALS'
+                   && is_array($val)
+                   && array_key_exists('GLOBALS',$val)) {
+                    $val['GLOBALS'] = '** Recursion (GLOBALS) **';
+                }
+              
+                $return[$key] = $this->encodeObject($val, 1, $ArrayDepth + 1, $MaxDepth + 1);
+            }
+        } else {
+            if (self::is_utf8($Object)) {
+                return $Object;
+            } else {
+                return utf8_encode($Object);
+            }
+        }
+        return $return;
+    }
+
+    /**
+     * Returns true if $string is valid UTF-8 and false otherwise.
+     *
+     * @param mixed $str String to be tested
+     * @return boolean
+     */
+    protected static function is_utf8($str)
+    {
+        if(function_exists('mb_detect_encoding')) {
+            return (mb_detect_encoding($str) == 'UTF-8');
+        }
+        $c=0; $b=0;
+        $bits=0;
+        $len=strlen($str);
+        for($i=0; $i<$len; $i++){
+            $c=ord($str[$i]);
+            if ($c > 128){
+                if (($c >= 254)) return false;
+                elseif ($c >= 252) $bits=6;
+                elseif ($c >= 248) $bits=5;
+                elseif ($c >= 240) $bits=4;
+                elseif ($c >= 224) $bits=3;
+                elseif ($c >= 192) $bits=2;
+                else return false;
+                if (($i+$bits) > $len) return false;
+                while($bits > 1){
+                    $i++;
+                    $b=ord($str[$i]);
+                    if ($b < 128 || $b > 191) return false;
+                    $bits--;
+                }
+            }
+        }
+        return true;
+    } 
+
+    /**
+     * Converts to and from JSON format.
+     *
+     * JSON (JavaScript Object Notation) is a lightweight data-interchange
+     * format. It is easy for humans to read and write. It is easy for machines
+     * to parse and generate. It is based on a subset of the JavaScript
+     * Programming Language, Standard ECMA-262 3rd Edition - December 1999.
+     * This feature can also be found in  Python. JSON is a text format that is
+     * completely language independent but uses conventions that are familiar
+     * to programmers of the C-family of languages, including C, C++, C#, Java,
+     * JavaScript, Perl, TCL, and many others. These properties make JSON an
+     * ideal data-interchange language.
+     *
+     * This package provides a simple encoder and decoder for JSON notation. It
+     * is intended for use with client-side Javascript applications that make
+     * use of HTTPRequest to perform server communication functions - data can
+     * be encoded into JSON notation for use in a client-side javascript, or
+     * decoded from incoming Javascript requests. JSON format is native to
+     * Javascript, and can be directly eval()'ed with no further parsing
+     * overhead
+     *
+     * All strings should be in ASCII or UTF-8 format!
+     *
+     * LICENSE: Redistribution and use in source and binary forms, with or
+     * without modification, are permitted provided that the following
+     * conditions are met: Redistributions of source code must retain the
+     * above copyright notice, this list of conditions and the following
+     * disclaimer. Redistributions in binary form must reproduce the above
+     * copyright notice, this list of conditions and the following disclaimer
+     * in the documentation and/or other materials provided with the
+     * distribution.
+     *
+     * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
+     * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+     * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
+     * NO EVENT SHALL CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+     * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+     * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+     * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+     * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
+     * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
+     * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
+     * DAMAGE.
+     *
+     * @category
+     * @package     Services_JSON
+     * @author      Michal Migurski <mike-json@teczno.com>
+     * @author      Matt Knapp <mdknapp[at]gmail[dot]com>
+     * @author      Brett Stimmerman <brettstimmerman[at]gmail[dot]com>
+     * @author      Christoph Dorn <christoph@christophdorn.com>
+     * @copyright   2005 Michal Migurski
+     * @version     CVS: $Id: FirePHP.class.php 232 2011-06-01 12:55:32Z elena $
+     * @license     http://www.opensource.org/licenses/bsd-license.php
+     * @link        http://pear.php.net/pepr/pepr-proposal-show.php?id=198
+     */
+   
+     
+    /**
+     * Keep a list of objects as we descend into the array so we can detect recursion.
+     */
+    private $json_objectStack = array();
+
+
+   /**
+    * convert a string from one UTF-8 char to one UTF-16 char
+    *
+    * Normally should be handled by mb_convert_encoding, but
+    * provides a slower PHP-only method for installations
+    * that lack the multibye string extension.
+    *
+    * @param    string  $utf8   UTF-8 character
+    * @return   string  UTF-16 character
+    * @access   private
+    */
+    private function json_utf82utf16($utf8)
+    {
+        // oh please oh please oh please oh please oh please
+        if (function_exists('mb_convert_encoding')) {
+            return mb_convert_encoding($utf8, 'UTF-16', 'UTF-8');
+        }
+
+        switch(strlen($utf8)) {
+            case 1:
+                // this case should never be reached, because we are in ASCII range
+                // see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
+                return $utf8;
+
+            case 2:
+                // return a UTF-16 character from a 2-byte UTF-8 char
+                // see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
+                return chr(0x07 & (ord($utf8{0}) >> 2))
+                       . chr((0xC0 & (ord($utf8{0}) << 6))
+                       | (0x3F & ord($utf8{1})));
+
+            case 3:
+                // return a UTF-16 character from a 3-byte UTF-8 char
+                // see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
+                return chr((0xF0 & (ord($utf8{0}) << 4))
+                       | (0x0F & (ord($utf8{1}) >> 2)))
+                       . chr((0xC0 & (ord($utf8{1}) << 6))
+                       | (0x7F & ord($utf8{2})));
+        }
+
+        // ignoring UTF-32 for now, sorry
+        return '';
+    }
+
+   /**
+    * encodes an arbitrary variable into JSON format
+    *
+    * @param    mixed   $var    any number, boolean, string, array, or object to be encoded.
+    *                           see argument 1 to Services_JSON() above for array-parsing behavior.
+    *                           if var is a strng, note that encode() always expects it
+    *                           to be in ASCII or UTF-8 format!
+    *
+    * @return   mixed   JSON string representation of input var or an error if a problem occurs
+    * @access   public
+    */
+    private function json_encode($var)
+    {
+    
+        if (is_object($var)) {
+            if (in_array($var,$this->json_objectStack)) {
+                return '"** Recursion **"';
+            }
+        }
+          
+        switch (gettype($var)) {
+            case 'boolean':
+                return $var ? 'true' : 'false';
+
+            case 'NULL':
+                return 'null';
+
+            case 'integer':
+                return (int) $var;
+
+            case 'double':
+            case 'float':
+                return (float) $var;
+
+            case 'string':
+                // STRINGS ARE EXPECTED TO BE IN ASCII OR UTF-8 FORMAT
+                $ascii = '';
+                $strlen_var = strlen($var);
+
+               /*
+                * Iterate over every character in the string,
+                * escaping with a slash or encoding to UTF-8 where necessary
+                */
+                for ($c = 0; $c < $strlen_var; ++$c) {
+
+                    $ord_var_c = ord($var{$c});
+
+                    switch (true) {
+                        case $ord_var_c == 0x08:
+                            $ascii .= '\b';
+                            break;
+                        case $ord_var_c == 0x09:
+                            $ascii .= '\t';
+                            break;
+                        case $ord_var_c == 0x0A:
+                            $ascii .= '\n';
+                            break;
+                        case $ord_var_c == 0x0C:
+                            $ascii .= '\f';
+                            break;
+                        case $ord_var_c == 0x0D:
+                            $ascii .= '\r';
+                            break;
+
+                        case $ord_var_c == 0x22:
+                        case $ord_var_c == 0x2F:
+                        case $ord_var_c == 0x5C:
+                            // double quote, slash, slosh
+                            $ascii .= '\\'.$var{$c};
+                            break;
+
+                        case (($ord_var_c >= 0x20) && ($ord_var_c <= 0x7F)):
+                            // characters U-00000000 - U-0000007F (same as ASCII)
+                            $ascii .= $var{$c};
+                            break;
+
+                        case (($ord_var_c & 0xE0) == 0xC0):
+                            // characters U-00000080 - U-000007FF, mask 110XXXXX
+                            // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
+                            $char = pack('C*', $ord_var_c, ord($var{$c + 1}));
+                            $c += 1;
+                            $utf16 = $this->json_utf82utf16($char);
+                            $ascii .= sprintf('\u%04s', bin2hex($utf16));
+                            break;
+
+                        case (($ord_var_c & 0xF0) == 0xE0):
+                            // characters U-00000800 - U-0000FFFF, mask 1110XXXX
+                            // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
+                            $char = pack('C*', $ord_var_c,
+                                         ord($var{$c + 1}),
+                                         ord($var{$c + 2}));
+                            $c += 2;
+                            $utf16 = $this->json_utf82utf16($char);
+                            $ascii .= sprintf('\u%04s', bin2hex($utf16));
+                            break;
+
+                        case (($ord_var_c & 0xF8) == 0xF0):
+                            // characters U-00010000 - U-001FFFFF, mask 11110XXX
+                            // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
+                            $char = pack('C*', $ord_var_c,
+                                         ord($var{$c + 1}),
+                                         ord($var{$c + 2}),
+                                         ord($var{$c + 3}));
+                            $c += 3;
+                            $utf16 = $this->json_utf82utf16($char);
+                            $ascii .= sprintf('\u%04s', bin2hex($utf16));
+                            break;
+
+                        case (($ord_var_c & 0xFC) == 0xF8):
+                            // characters U-00200000 - U-03FFFFFF, mask 111110XX
+                            // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
+                            $char = pack('C*', $ord_var_c,
+                                         ord($var{$c + 1}),
+                                         ord($var{$c + 2}),
+                                         ord($var{$c + 3}),
+                                         ord($var{$c + 4}));
+                            $c += 4;
+                            $utf16 = $this->json_utf82utf16($char);
+                            $ascii .= sprintf('\u%04s', bin2hex($utf16));
+                            break;
+
+                        case (($ord_var_c & 0xFE) == 0xFC):
+                            // characters U-04000000 - U-7FFFFFFF, mask 1111110X
+                            // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
+                            $char = pack('C*', $ord_var_c,
+                                         ord($var{$c + 1}),
+                                         ord($var{$c + 2}),
+                                         ord($var{$c + 3}),
+                                         ord($var{$c + 4}),
+                                         ord($var{$c + 5}));
+                            $c += 5;
+                            $utf16 = $this->json_utf82utf16($char);
+                            $ascii .= sprintf('\u%04s', bin2hex($utf16));
+                            break;
+                    }
+                }
+
+                return '"'.$ascii.'"';
+
+            case 'array':
+                /*
+                 * As per JSON spec if any array key is not an integer
+                 * we must treat the the whole array as an object. We
+                 * also try to catch a sparsely populated associative
+                 * array with numeric keys here because some JS engines
+                 * will create an array with empty indexes up to
+                 * max_index which can cause memory issues and because
+                 * the keys, which may be relevant, will be remapped
+                 * otherwise.
+                 *
+                 * As per the ECMA and JSON specification an object may
+                 * have any string as a property. Unfortunately due to
+                 * a hole in the ECMA specification if the key is a
+                 * ECMA reserved word or starts with a digit the
+                 * parameter is only accessible using ECMAScript's
+                 * bracket notation.
+                 */
+
+                // treat as a JSON object
+                if (is_array($var) && count($var) && (array_keys($var) !== range(0, sizeof($var) - 1))) {
+                  
+                    $this->json_objectStack[] = $var;
+
+                    $properties = array_map(array($this, 'json_name_value'),
+                                            array_keys($var),
+                                            array_values($var));
+
+                    array_pop($this->json_objectStack);
+
+                    foreach($properties as $property) {
+                        if ($property instanceof Exception) {
+                            return $property;
+                        }
+                    }
+
+                    return '{' . join(',', $properties) . '}';
+                }
+
+                $this->json_objectStack[] = $var;
+
+                // treat it like a regular array
+                $elements = array_map(array($this, 'json_encode'), $var);
+
+                array_pop($this->json_objectStack);
+
+                foreach($elements as $element) {
+                    if ($element instanceof Exception) {
+                        return $element;
+                    }
+                }
+
+                return '[' . join(',', $elements) . ']';
+
+            case 'object':
+                $vars = self::encodeObject($var);
+
+                $this->json_objectStack[] = $var;
+
+                $properties = array_map(array($this, 'json_name_value'),
+                                        array_keys($vars),
+                                        array_values($vars));
+
+                array_pop($this->json_objectStack);
+              
+                foreach($properties as $property) {
+                    if ($property instanceof Exception) {
+                        return $property;
+                    }
+                }
+                     
+                return '{' . join(',', $properties) . '}';
+
+            default:
+                return null;
+        }
+    }
+
+   /**
+    * array-walking function for use in generating JSON-formatted name-value pairs
+    *
+    * @param    string  $name   name of key to use
+    * @param    mixed   $value  reference to an array element to be encoded
+    *
+    * @return   string  JSON-formatted name-value pair, like '"name":value'
+    * @access   private
+    */
+    private function json_name_value($name, $value)
+    {
+        // Encoding the $GLOBALS PHP array causes an infinite loop
+        // if the recursion is not reset here as it contains
+        // a reference to itself. This is the only way I have come up
+        // with to stop infinite recursion in this case.
+        if ($name=='GLOBALS'
+           && is_array($value)
+           && array_key_exists('GLOBALS',$value)) {
+            $value['GLOBALS'] = '** Recursion **';
+        }
+    
+        $encoded_value = $this->json_encode($value);
+
+        if ($encoded_value instanceof Exception) {
+            return $encoded_value;
+        }
+
+        return $this->json_encode(strval($name)) . ':' . $encoded_value;
+    }
+
+    /**
+     * @deprecated
+     */    
+    public function setProcessorUrl($URL)
+    {
+        trigger_error("The FirePHP::setProcessorUrl() method is no longer supported", E_USER_DEPRECATED);
+    }
+
+    /**
+     * @deprecated
+     */
+    public function setRendererUrl($URL)
+    {
+        trigger_error("The FirePHP::setRendererUrl() method is no longer supported", E_USER_DEPRECATED);
+    }  
+}
diff --git a/php/firephp/LICENSE b/php/firephp/LICENSE
new file mode 100644
index 0000000..3e390f9
--- /dev/null
+++ b/php/firephp/LICENSE
@@ -0,0 +1,29 @@
+Software License Agreement (New BSD License)
+
+Copyright (c) 2006-2009, Christoph Dorn
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+    * Redistributions of source code must retain the above copyright notice,
+      this list of conditions and the following disclaimer.
+
+    * Redistributions in binary form must reproduce the above copyright notice,
+      this list of conditions and the following disclaimer in the documentation
+      and/or other materials provided with the distribution.
+
+    * Neither the name of Christoph Dorn nor the names of its
+      contributors may be used to endorse or promote products derived from this
+      software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/php/firephp/fb.php b/php/firephp/fb.php
new file mode 100644
index 0000000..9ed9c42
--- /dev/null
+++ b/php/firephp/fb.php
@@ -0,0 +1,276 @@
+<?php
+
+/* ***** BEGIN LICENSE BLOCK *****
+ *  
+ * This file is part of FirePHP (http://www.firephp.org/).
+ * 
+ * Software License Agreement (New BSD License)
+ * 
+ * Copyright (c) 2006-2010, Christoph Dorn
+ * All rights reserved.
+ * 
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ * 
+ *     * Redistributions of source code must retain the above copyright notice,
+ *       this list of conditions and the following disclaimer.
+ * 
+ *     * Redistributions in binary form must reproduce the above copyright notice,
+ *       this list of conditions and the following disclaimer in the documentation
+ *       and/or other materials provided with the distribution.
+ * 
+ *     * Neither the name of Christoph Dorn nor the names of its
+ *       contributors may be used to endorse or promote products derived from this
+ *       software without specific prior written permission.
+ * 
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ * 
+ * ***** END LICENSE BLOCK *****
+ * 
+ * @copyright   Copyright (C) 2007-2009 Christoph Dorn
+ * @author      Christoph Dorn <christoph@christophdorn.com>
+ * @license     http://www.opensource.org/licenses/bsd-license.php
+ * @package     FirePHPCore
+ */
+
+if(!class_exists('FirePHP')) {
+    require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'FirePHP.class.php';
+}
+
+/**
+ * Sends the given data to the FirePHP Firefox Extension.
+ * The data can be displayed in the Firebug Console or in the
+ * "Server" request tab.
+ * 
+ * @see http://www.firephp.org/Wiki/Reference/Fb
+ * @param mixed $Object
+ * @return true
+ * @throws Exception
+ */
+function fb()
+{
+    $instance = FirePHP::getInstance(true);
+  
+    $args = func_get_args();
+    return call_user_func_array(array($instance,'fb'),$args);
+}
+
+
+class FB
+{
+    /**
+     * Enable and disable logging to Firebug
+     * 
+     * @see FirePHP->setEnabled()
+     * @param boolean $Enabled TRUE to enable, FALSE to disable
+     * @return void
+     */
+    public static function setEnabled($Enabled)
+    {
+        $instance = FirePHP::getInstance(true);
+        $instance->setEnabled($Enabled);
+    }
+  
+    /**
+     * Check if logging is enabled
+     * 
+     * @see FirePHP->getEnabled()
+     * @return boolean TRUE if enabled
+     */
+    public static function getEnabled()
+    {
+        $instance = FirePHP::getInstance(true);
+        return $instance->getEnabled();
+    }  
+  
+    /**
+     * Specify a filter to be used when encoding an object
+     * 
+     * Filters are used to exclude object members.
+     * 
+     * @see FirePHP->setObjectFilter()
+     * @param string $Class The class name of the object
+     * @param array $Filter An array or members to exclude
+     * @return void
+     */
+    public static function setObjectFilter($Class, $Filter)
+    {
+      $instance = FirePHP::getInstance(true);
+      $instance->setObjectFilter($Class, $Filter);
+    }
+  
+    /**
+     * Set some options for the library
+     * 
+     * @see FirePHP->setOptions()
+     * @param array $Options The options to be set
+     * @return void
+     */
+    public static function setOptions($Options)
+    {
+        $instance = FirePHP::getInstance(true);
+        $instance->setOptions($Options);
+    }
+
+    /**
+     * Get options for the library
+     * 
+     * @see FirePHP->getOptions()
+     * @return array The options
+     */
+    public static function getOptions()
+    {
+        $instance = FirePHP::getInstance(true);
+        return $instance->getOptions();
+    }
+
+    /**
+     * Log object to firebug
+     * 
+     * @see http://www.firephp.org/Wiki/Reference/Fb
+     * @param mixed $Object
+     * @return true
+     * @throws Exception
+     */
+    public static function send()
+    {
+        $instance = FirePHP::getInstance(true);
+        $args = func_get_args();
+        return call_user_func_array(array($instance,'fb'),$args);
+    }
+
+    /**
+     * Start a group for following messages
+     * 
+     * Options:
+     *   Collapsed: [true|false]
+     *   Color:     [#RRGGBB|ColorName]
+     *
+     * @param string $Name
+     * @param array $Options OPTIONAL Instructions on how to log the group
+     * @return true
+     */
+    public static function group($Name, $Options=null)
+    {
+        $instance = FirePHP::getInstance(true);
+        return $instance->group($Name, $Options);
+    }
+
+    /**
+     * Ends a group you have started before
+     *
+     * @return true
+     * @throws Exception
+     */
+    public static function groupEnd()
+    {
+        return self::send(null, null, FirePHP::GROUP_END);
+    }
+
+    /**
+     * Log object with label to firebug console
+     *
+     * @see FirePHP::LOG
+     * @param mixes $Object
+     * @param string $Label
+     * @return true
+     * @throws Exception
+     */
+    public static function log($Object, $Label=null)
+    {
+        return self::send($Object, $Label, FirePHP::LOG);
+    } 
+
+    /**
+     * Log object with label to firebug console
+     *
+     * @see FirePHP::INFO
+     * @param mixes $Object
+     * @param string $Label
+     * @return true
+     * @throws Exception
+     */
+    public static function info($Object, $Label=null)
+    {
+        return self::send($Object, $Label, FirePHP::INFO);
+    } 
+
+    /**
+     * Log object with label to firebug console
+     *
+     * @see FirePHP::WARN
+     * @param mixes $Object
+     * @param string $Label
+     * @return true
+     * @throws Exception
+     */
+    public static function warn($Object, $Label=null)
+    {
+        return self::send($Object, $Label, FirePHP::WARN);
+    } 
+
+    /**
+     * Log object with label to firebug console
+     *
+     * @see FirePHP::ERROR
+     * @param mixes $Object
+     * @param string $Label
+     * @return true
+     * @throws Exception
+     */
+    public static function error($Object, $Label=null)
+    {
+        return self::send($Object, $Label, FirePHP::ERROR);
+    } 
+
+    /**
+     * Dumps key and variable to firebug server panel
+     *
+     * @see FirePHP::DUMP
+     * @param string $Key
+     * @param mixed $Variable
+     * @return true
+     * @throws Exception
+     */
+    public static function dump($Key, $Variable)
+    {
+        return self::send($Variable, $Key, FirePHP::DUMP);
+    } 
+
+    /**
+     * Log a trace in the firebug console
+     *
+     * @see FirePHP::TRACE
+     * @param string $Label
+     * @return true
+     * @throws Exception
+     */
+    public static function trace($Label)
+    {
+        return self::send($Label, FirePHP::TRACE);
+    } 
+
+    /**
+     * Log a table in the firebug console
+     *
+     * @see FirePHP::TABLE
+     * @param string $Label
+     * @param string $Table
+     * @return true
+     * @throws Exception
+     */
+    public static function table($Label, $Table)
+    {
+        return self::send($Table, $Label, FirePHP::TABLE);
+    } 
+
+}
diff --git a/php/impex_config.php b/php/impex_config.php
new file mode 100644
index 0000000..2792128
--- /dev/null
+++ b/php/impex_config.php
@@ -0,0 +1,33 @@
+<?php
+ /**
+ * @file impex_config.php
+ * @version $Id: impex_config.php 2912 2015-05-19 10:29:26Z elena $
+ *
+ */
+    // Simulations DB
+    define('wsdl_LATMOS','http://impex.latmos.ipsl.fr/Methods_LATMOS.wsdl');    
+    //define('wsdl_LATMOS','http://134.157.176.122/Methods_LATMOS.wsdl');
+    define('wsdl_SINP','http://smdc.sinp.msu.ru/impex/SINP_methods.wsdl');
+    define('wsdl_FMI','http://impex-fp7.fmi.fi/ws/Methods_FMI.wsdl');
+    define('wsdl_LESIA', 'http://maser.obspm.fr/IMPExWS/Methods_LESIA-Mag.wsdl');
+    define('wsdl_CLWEB', 'http://clweb.cesr.fr/Methods_CLWEB.wsdl');
+    
+    define('tree_LATMOS','http://impex.latmos.ipsl.fr/tree.xml');
+    define('tree_LESIA','http://maser.obspm.fr/IMPExWS/tree_Mag.xml');
+    define('tree_SINP','http://smdc.sinp.msu.ru/impex/SINP_tree.xml');
+    define('tree_FMI_HYBRID','http://impex-fp7.fmi.fi/ws/Tree_FMI_HYB.xml');
+    define('tree_FMI_GUMICS','http://impex-fp7.fmi.fi/ws/Tree_FMI_GUMICS.xml');
+    define('tree_CCMC','http://apus.cesr.fr/AMDA-IMPEX/public/trees/Tree_CCMC_chablon5.xml');
+    define('tree_CLWEB','CLWeb/base.xml');
+
+    define("baseDirLATMOS", BASE_PATH."generic_data/RemoteData/LATMOS/base.xml");
+    define("baseDirSINP", BASE_PATH."generic_data/RemoteData/SINP/base.xml");
+    define("baseDirCLWEB", BASE_PATH."generic_data/RemoteData/CLWeb/base.xml");
+    define("baseDirFMI_HYB", BASE_PATH."generic_data/RemoteData/FMI_HYBRID/base.xml");
+    define("baseDirFMI_GUMICS", BASE_PATH."generic_data/RemoteData/FMI_GUMICS/base.xml");
+    define("baseDirLESIA", BASE_PATH."generic_data/RemoteData/LESIA/base.xml");
+    define("baseDirCCMC", BASE_PATH."generic_data/RemoteData/CCMC/base.xml");
+    
+    define("tmplGUMICS", BASE_PATH."generic_data/SimuTemplate/templateGUMICS.xml");
+    define("DELTA", 120); // minumum file size in secs
+?>
diff --git a/php/log b/php/log
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/php/log
diff --git a/php/makeMultiMission.php b/php/makeMultiMission.php
new file mode 100644
index 0000000..b2ce092
--- /dev/null
+++ b/php/makeMultiMission.php
@@ -0,0 +1,186 @@
+<?php
+/**  @file makeMultiMission  
+*    @version $Id: makeMultiMission.php 2321 2014-04-26 12:36:18Z elena $
+*    @brief  StandAlone executable launched in BASE_PATH/php to create LOCALLY 
+*    @brief   DD_MISSION.xml and MISSION.xml from templates
+*    @brief   and LocalParamsList.xml and LocalParams.xml
+*    @brief   it is analog of AmdaUpdate.php INSTALL
+*/
+                 require_once "config.php";
+
+                 $missionsDom = new DomDocument("1.0");                   
+                 $missionsDom->load(missionXml);
+                 $locBases = $missionsDom->getElementsByTagName("MissionID");
+ 
+                 foreach ($locBases as $locbase) {                                               		                                   
+                     $multi =  $locbase->getAttribute("missions");
+                     $nameArr = explode(";",$multi);
+  
+		     $templatename = LocalDataTemplate."DD_".$locbase->nodeValue.".template"; 
+		     $paramtemplate = LocalDataTemplate.$locbase->nodeValue.".template";
+		     if (count($nameArr) > 1 &&  
+                         (file_exists($templatename) && file_exists($paramtemplate))) {
+  
+			$suffix = array();
+			foreach ($nameArr as $item) {
+			  $temp = explode("-",$item);
+			  if (count($temp) > 1) {
+			      $suffix[] = $temp[1];
+			  }
+			  else {
+			      $suffix[] = substr($item,-1);
+			  }
+			}
+                   			 
+                        $template = new DomDocument("1.0");
+                        $status = $template->load($templatename);
+ 			
+			$paramdom = new DomDocument("1.0");
+			$status = $paramdom->load($paramtemplate);  
+ 
+ 			 			
+// Create DD_Mission.xml
+			$locbasename =  LocalData."DD_".$locbase->nodeValue.".xml";
+			$locbasedom = new DomDocument("1.0");
+			$root = $locbasedom->importNode($template->documentElement);	
+			$amda = $locbasedom->importNode($template->getElementsByTagName("dataCenter")->item(0));
+			$missionMain = $locbasedom->importNode($template->getElementsByTagName("mission")->item(0)); 
+
+                        $mission = $locbasedom->importNode($template->getElementsByTagName("mission")->item(0), true);
+                      
+                        $targets = $mission->getElementsByTagName("target"); 
+                        $targetNames = array();
+                        foreach ($targets as $target)
+                               if ($target->parentNode->tagName == 'mission')
+                                            $targetNames[] = $target->nodeValue;
+
+                        $observatory = $mission->getElementsByTagName("observatory")->item(0);
+                        $instruments = $observatory->getElementsByTagName("instrument");
+// create param descriptor  Mission.xml
+			$parambasename =  LocalDataParam.$locbase->nodeValue.".xml";
+			$parambasedom = new DomDocument("1.0");
+			$paramroot = $parambasedom->importNode($paramdom->documentElement);	
+   			
+			$instrumentNon = array();
+			foreach ($instruments as $instrument) {
+
+				if ($instrument->hasAttribute("absent")) {
+				    $absent = $instrument->getAttribute("absent");
+				    $absentArray = explode(";",$absent);
+ 			            $tempArr = array();
+
+			 	    if (count($absentArray) > 1) {
+				     	for ($i = 0; $i < count($suffix); $i++) $tempArr[$i] = false;			  				   
+					for ($j = 0; $j < count($absentArray); $j++) {
+					  $temp = array_search($absentArray[$j], $suffix, true); 
+					  $tempArr[$temp] = true;
+				       }
+				        
+			 	    }	
+				     else { 
+                                          for ($i = 0; $i < count($suffix); $i++) {
+					      $tempArr[$i] = $absent == $suffix[$i];
+					}				  				                            
+				    }
+
+			    $instrumentNon[$instrument->getAttribute("name")] = $tempArr;
+			   }
+			}
+
+                        foreach ($targetNames as $targetName) {
+                                $missionMain->appendChild($locbasedom->createElement("target",$targetName));
+                        }
+                                    
+			for ($index = 0; $index < count($suffix); $index++) {
+
+			    $missionArr[$index] = $observatory->cloneNode();			   
+                 
+                            $missionArr[$index]->setAttribute("name", str_replace("XXX", $suffix[$index], $missionArr[$index]->getAttribute("name")));
+                            $missionArr[$index]->setAttribute("xml:id", str_replace("XXX", $suffix[$index], $missionArr[$index]->getAttribute("name")));
+			    $instruments = $observatory->getElementsByTagName("instrument");
+
+			    foreach ($instruments as $instrumentReal){			  
+				if (!$instrumentNon[$instrumentReal->getAttribute("name")] || !$instrumentNon[$instrumentReal->getAttribute("name")][$index])  { 
+				$instrument = $instrumentReal->cloneNode(true);
+				$instrument->setAttribute("desc",str_replace("XXX", $suffix[$index], $instrument->getAttribute("desc")));
+				$instrument->setAttribute("xml:id",str_replace("XXX", $suffix[$index], $instrument->getAttribute("xml:id")));
+                                $tags = array("dataset", "parameter", "component"); 
+
+				foreach ($tags as $tag) {
+				    $all = $instrument->getElementsByTagName($tag);
+				    foreach ($all as $one) {
+					  if ($tag == 'parameter') {
+					      $id = $one->getAttribute("xml:id");
+ // create param tag in param XML descriptor
+					      $param = $paramdom->getElementById($id);
+					      if ($param){
+                                                    $paramAdd = $parambasedom->importNode($param, true);
+						    $paramAdd->setAttribute("xml:id",str_replace("XXX", strtolower($suffix[$index]), $id)); 
+						    $paramAdd->setAttribute("vi",str_replace("XXX", strtolower($suffix[$index]), $paramAdd->getAttribute("vi")));
+						    $yTitle = $paramAdd->getElementsByTagName("YTITLE");
+						    if ($yTitle->length > 0) {
+						      $value =  $yTitle->item(0)->nodeValue;
+						      $yTitle->item(0)->nodeValue = str_replace("XXX", $suffix[$index], $value);
+						    }
+						    $paramroot->appendChild($paramAdd);
+					      }
+					   }
+					  $one->setAttribute("xml:id",str_replace("XXX", strtolower($suffix[$index]), $one->getAttribute("xml:id")));
+					  if ($tag == 'dataset' && $one->hasAttribute("vi")) 
+						$one->setAttribute("vi",str_replace("XXX", strtolower($suffix[$index]), $one->getAttribute("vi")));					  
+				    }
+				  }
+				$missionArr[$index]->appendChild($instrument);
+				}			     
+			   } 
+			     
+			    $missionMain->appendChild($missionArr[$index]);			    
+			  }
+
+                        $amda->appendChild($missionMain);
+			$root->appendChild($amda);
+			$locbasedom->appendChild($root);
+		        $locbasedom->save($locbasename);
+			
+			$parambasedom->appendChild($paramroot);
+			$parambasedom->save($parambasename);		 
+		     }  		    
+       	 	  }
+
+// temporary here
+                 $paramsDom = new DomDocument("1.0");
+       	 	 $paramsDom->formatOutput = true;
+       	 	 $paramsDom->preserveWhiteSpace = false;
+       	 	 $paramsRoot = $paramsDom->createElement('LOCAL');
+       	 	 $paramsDom->appendChild($paramsRoot);
+       	 	 
+       	 	 $listDom = new DomDocument("1.0");
+       	 	 $listDom->formatOutput = true;
+       	 	 $listDom->preserveWhiteSpace = false;
+       	 	 $listRoot = $listDom->createElement('LOCAL');
+       	 	 $listDom->appendChild($listRoot);
+		  		   
+                 $dom = new DomDocument("1.0");
+     	 	 foreach ($locBases as $locbase)
+		    {
+			  $ddparamfilename = $locbase->nodeValue.".xml";
+		
+			  $status = $dom->load(LocalDataParam.$ddparamfilename);       	   
+			  $params = $dom->getElementsByTagName('PARAM');
+		//	  if ($locbase->nodeValue == 'SW_Mars') printf($status.PHP_EOL);
+			  foreach ($params as $param)
+			  {
+				$node = $paramsDom->importNode($param,TRUE);	 
+				$paramsRoot->appendChild($node);
+				$id = $param->getAttribute('xml:id');
+		//	 	if ($locbase->nodeValue == 'SW_Mars') printf($id.PHP_EOL);
+				$node = $listDom->createElement('PARAM',$id);
+				$listRoot->appendChild($node);
+			      
+			  }
+		    }
+       	  
+       	   $paramsDom->save(paramXml);
+       	   $listDom->save(paramListXml);
+
+?>
diff --git a/php/makeOrbits.php b/php/makeOrbits.php
new file mode 100644
index 0000000..e49c76a
--- /dev/null
+++ b/php/makeOrbits.php
@@ -0,0 +1,13 @@
+<?php
+     require_once "config.php"; 
+ 
+      $locBasesDom = new DomDocument("1.0");
+      $locBasesDom->load(missionXml);
+      $locBases = $locBasesDom->getElementsByTagName("MissionID");
+    
+      $postProcessing = new PostProcessing();
+      $postProcessing->createOrbites(paramXml);
+      $postProcessing->createOrbites(LocalDataParam.'InternalParams.xml');
+      $postProcessing->createOrbitesInfoFiles($locBases);
+
+?> 
\ No newline at end of file
diff --git a/php/my_config.php b/php/my_config.php
new file mode 100644
index 0000000..d94c2a8
--- /dev/null
+++ b/php/my_config.php
@@ -0,0 +1,44 @@
+<?php
+/**
+ * @file my_config.php
+ * @version $Id: my_config.php 2372 2014-05-21 09:38:38Z myriam $
+ *
+ *
+ */
+
+//AKKA - Path to AMDA_Integration base dir
+define('INTEGRATION_BASE_PATH', '/home/benjamin/AMDA-GIT/AMDA/AMDA_Integration/');
+
+require_once(INTEGRATION_BASE_PATH.'config/AMDAIntegrationConfig.php');
+//
+
+//AKKA - For compatibility with IHM
+define('BASE_PATH', IHM_SRC_DIR);
+
+define('ROOT_PATH', '/usr/local/AMDA/DDHTML/');
+
+//AKKA - For compatibility with IHM
+define('DDHOME', NEWKERNEL_BASE_PATH.'/build/Debug/');
+ 
+define('CEFLIB', '/usr/local/cef/lib');
+define('CDFLIB', '/usr/local/cdf/lib');
+define('SYS_LIBS', '/lib:/usr/lib:/usr/local/lib64');
+define('SYS_BIN','/bin:/usr/bin/:/usr/local/bin/');
+
+//DD WebServices
+define('INFOSITE', 'http://cdpp1.cesr.fr/BASE/');
+//log for AmdaUpdate/AmdaInstall
+define('log', IHM_SRC_DIR.'LOG');
+// User apache
+define('APACHE_USER', 'apache');
+// Alias for name of AMDA
+define('APACHE_ALIAS', '/NEWAMDA-BENJAMIN/');
+//email to send errors from AmdaUpdate/AmdaInstall
+define('email','brenard@irap.omp.eu');
+
+//DDPATH
+define('DDPROJECT','AMDA'); //'AMDA'
+
+$is64 = true;
+
+?>
diff --git a/php/old_amda/DateClass.php b/php/old_amda/DateClass.php
new file mode 100755
index 0000000..b7be188
--- /dev/null
+++ b/php/old_amda/DateClass.php
@@ -0,0 +1,70 @@
+<?php
+/** @class DateClass
+*   $Id: DateClass.php 1131 2012-12-18 16:49:40Z elena $
+*   @brief extends DateTime class with createFromFormat for php 5.2
+*/
+
+
+class DateClass extends DateTime {
+
+public function getTimestamp(){
+    return $this->format ("U");
+}
+
+/**
+*    This function calculates the number of days between the first and the second date. Arguments must be subclasses of DateTime
+**/
+static function differenceInDays ($firstDate, $secondDate){
+    $firstDateTimeStamp = $firstDate->format("U");
+    $secondDateTimeStamp = $secondDate->format("U");
+    $rv = round ((($firstDateTimeStamp - $secondDateTimeStamp))/86400);
+    return $rv;
+}
+
+/**
+* This function returns an object of DateClass from $time in format $format. See date() for possible values for $format
+**/
+static function createFromFormat ($format, $time){
+    assert ($format!="");
+    if($time==""){
+        return new DateClass();
+    }
+
+    $regexpArray['Y'] = "(?P<Y>[12][90]\d\d)";       
+    $regexpArray['m'] = "(?P<m>0[1-9]|1[012])";
+    $regexpArray['d'] = "(?P<d>0[1-9]|[12][0-9]|3[01])";
+    $regexpArray['-'] = "[-]";
+    $regexpArray['.'] = "[\. /.]";
+    $regexpArray[':'] = "[:]"; 
+    $regexpArray['/'] = "[\/]";     
+    $regexpArray['space'] = "[\s]";
+    $regexpArray['H'] = "(?P<H>0[0-9]|1[0-9]|2[0-3])";
+    $regexpArray['i'] = "(?P<i>[0-5][0-9])";
+    $regexpArray['s'] = "(?P<s>[0-5][0-9])";
+
+    $formatArray = str_split ($format);
+    $regex = "";
+
+    // create the regular expression
+    foreach($formatArray as $character){
+        if ($character==" ") $regex = $regex.$regexpArray['space'];
+        elseif (array_key_exists($character, $regexpArray)) $regex = $regex.$regexpArray[$character];
+    }
+    $regex = "/".$regex."/";
+
+    // get results for regualar expression
+    preg_match ($regex, $time, $result);
+
+    // create the init string for the new DateTime
+    $initString = $result['Y']."-".$result['m']."-".$result['d'];
+
+// if no value for hours, minutes and seconds was found add 00:00:00
+    if (isset($result['H'])) $initString = $initString." ".$result['H'].":".$result['i'].":".$result['s'];
+    else {$initString = $initString." 00:00:00";}
+     
+    $newDate = new DateClass ($initString);
+    return $newDate;
+    }   
+}
+
+?>
diff --git a/php/old_amda/ParamBuilder.php b/php/old_amda/ParamBuilder.php
new file mode 100644
index 0000000..486c5fe
--- /dev/null
+++ b/php/old_amda/ParamBuilder.php
@@ -0,0 +1,526 @@
+<?php
+/**  @class ParamBuilder
+*    @version $Id: ParamBuilder.php 2918 2015-05-19 13:12:09Z elena $ 
+*    @brief 
+*    
+*/
+class ParamBuilder {
+ 
+  private $TargetDir, $PRODIR, $PredefinedDir;
+  public $file;
+  public $components; 
+ 
+  function __construct(){
+     $this->TargetDir = './';
+// new amda
+     $this->PRODIR = TEMPLATES;  
+     $this->PredefinedDir = PREDEFINED;  
+  }
+
+  protected function param2dd($paramID){
+	    $pairs = array(":" => "_");    
+	    return strtr($paramID, $pairs); 
+	  }
+ protected function param2ddPoint($paramID){
+	    $pairs = array(":" => "_", "." => "_");    
+	    return strtr($paramID, $pairs); 
+	  }
+  public function makeNewChain($chain, $vars){
+
+// cleanup components array !!!
+
+       $this->components = array();
+       rsort($vars);
+ 
+          for ($i = 0; $i < count($vars); $i++){
+              $start = 0;
+
+              while (($pos = strpos($chain, $vars[$i], $start)) !== false) {
+
+                  $moreLong = false;
+
+                 if ($i > 0) {                    
+                    for ($k = 0; $k < $i; $k++) {
+                        if (substr($vars[$k],0,strlen($vars[$i])) === $vars[$i]) {
+                            if (strpos($chain, $vars[$k], $pos) !== false) {
+                                    $moreLong = true;  
+                                    $start = $pos+strlen($vars[$k]); 
+                                    $break;
+                                }                                      
+                            }
+                        } 
+                    }
+    
+                  if (!$moreLong) {
+
+                    if (($open = strpos($chain,$vars[$i]."(",$start)) === false) {            
+                            $chain = substr_replace($chain,$vars[$i]."(num)", $pos, strlen($vars[$i])); 
+                            $this->components[] = $vars[$i]."(*)";
+                            $start = $pos+strlen($vars[$i]);                   
+                    }
+                    else {  
+                            $close = strpos($chain, ",num)", $open);
+                            if ($close !== false && ($close-$open) < (strlen($vars[$i])+5)) {
+                                $start = $open+strlen($vars[$i]);  
+                            }                                    
+                            else { 
+                                $close =  strpos($chain,")",$open);
+                                $vector_pos =  strpos($chain,":",$open);
+                                if ($vector_pos === false || $vector_pos > $close) {
+                                    $chain = substr_replace($chain,",num)",$close,1); 
+                                    $this->components[] =  substr($chain,$open,$close-$open).",*)";
+                                }
+                                else {
+                                    $comp = substr($chain, $vector_pos+3, 1);
+                                    $this->components[] =  substr($chain,$open,strlen($vars[$i]))."(".$comp.",*)";
+                                    $chain = substr_replace($chain,",num),".$comp, $close-2, 3);                                  
+                                }
+                                $start = $open+strlen($vars[$i]);    
+                            }
+                    } 
+                }
+              }
+          }
+
+    $this->components = array_unique($this->components);
+  
+   return $chain;
+   }
+  
+ 
+ 
+   public function makeParamCalcul($chain, $vars, $name) {
+
+
+      foreach ($vars as &$var) $var = $this->param2dd($var);
+      $chain = $this->param2dd($chain);
+ 
+      $newChain = $this->makeNewChain($chain, $vars);
+  
+     $function_name =  $name == "" ? "paramcalcul" : strtolower($name)."_calcul";
+     $fillValue =  $name == "" ? "3" : "!Values.F_NAN";         
+
+     $pro = fopen($this->TargetDir.$function_name.".pro", "w");
+     fwrite($pro,"function ".$function_name.",".join(",",$vars).PHP_EOL);
+     fwrite($pro,"common  InternalCommon, FinalTime, num".PHP_EOL);
+     fwrite($pro,"OutPut = REPLICATE(".$fillValue.", N_Elements(FinalTime))".PHP_EOL);
+     fwrite($pro,"num = -1L\n");
+/*
+*       !!!! array_unique($this->components) -> keeps unset empty values!!!
+*/
+
+     foreach ($this->components as $comp) {
+              fwrite($pro," num_ = where(finite(".$comp."), Index)\n");
+              fwrite($pro," if (Index eq 0) then return, OutPut\n"); 
+              fwrite($pro," if (num[0] eq -1L) then num =  num_ $\n else begin\n numTemp = -1L\n k = -1L\n j0 = 0L\n");
+              fwrite($pro," for i = 0L,  n_elements(num) - 1 do begin\n for j = j0, n_elements(num_) - 1 do begin\n");
+              fwrite($pro," if (num[i] eq num_[j]) then begin\n k++\n if (k eq 0) then numTemp = num[i] $\n else numTemp = [numTemp, num[i]]\n");
+              fwrite($pro," j0 = j+1\n break\n endif\n endfor\n endfor\n");
+              fwrite($pro," if (j0 gt 0) then num = numTemp else return, OutPut\n endelse \n");
+       }
+ //  printf, LUN, 'On_error,2'
+      fwrite($pro,"OutPut[num] = ".$newChain.PHP_EOL);
+      fwrite($pro,"return, OutPut".PHP_EOL);
+      fwrite($pro,"end".PHP_EOL);
+      fclose($pro);
+   }
+
+/*
+*     
+*    Make all staff for local params from templates & descriptor XML
+*   
+*/ 
+   public function paramLocalBuild($id) {
+/*
+*   Get Param Info
+*/
+   	
+   	$infoMgr = new ParamsInfoMgr();
+   	$infos = $infoMgr->GetParamInfo($id);	
+	
+   	if (!$infos['success'])
+   	{		 
+   	  die($infos['message']);
+   	}
+   	
+   	
+   	$name        = $infos['codeinfos']['name'];
+   	$vi          = $infos['codeinfos']['vi'];
+   	$size        = $infos['codeinfos']['size'];
+   	$tensor      = $infos['codeinfos']['tensor'];
+       if ($tensor == '')
+	  $tensor = -1;
+   	$value_type  = $infos['codeinfos']['valuetype'];
+   	$fill_value  = $infos['codeinfos']['fillvalue'];
+   	if ($fill_value == "NaN")
+   			$fill_value = "!Values.F_NAN";
+   	$units       = $infos['codeinfos']['units'];
+   	$sampling    = $infos['codeinfos']['minsampling'];
+   	$maxSampling = $infos['codeinfos']['maxsampling'];	
+   	$frame       = $infos['codeinfos']['frame'];
+   	$legend      = $infos['codeinfos']['legend'];
+   	$title       = $infos['codeinfos']['title'];
+   	$plottype    = $infos['codeinfos']['plottype'];
+   	$mission     = $infos['codeinfos']['mission']; 
+	$energychannel = $infos['codeinfos']['energychannel'];
+	if ($energychannel == '')
+	  $energychannel = 'Energy';
+	
+	$ytitle = $units != NULL ? $title.",!C".$units : $title;	
+	$conversion  = $infos['codeinfos']['conversion'];
+        $process  = $infos['codeinfos']['process'];
+    
+/*
+*    Make init
+*/ 
+   
+    if (file_exists($this->PredefinedDir.$id."_init.pro")) {
+        copy($this->PredefinedDir.$id."_init.pro", $this->TargetDir.$id."_init.pro");
+    }
+    else {
+	$newfile = fopen($this->TargetDir.$id."_init.pro","w");
+	$pairs = array("LOCALPARAM" => $id,"LOCALTENSOR"=>$tensor,"LOCALSIZE"=>$size,"LOCALYTITLE"=>"'".$ytitle."'","LOCALPROCESS"=>"'".$process."'", 
+                       "LOCALFRAME"=>"'".$frame."'","LOCALMISSION"=>"'".$mission."'","LOCALPLOTTYPE"=>"'".$plottype."'", "LOCALLEGEND"=>"'".$legend."'");
+	$lines = file($this->PRODIR."localparam_init.pro");
+	for ($i = 0; $i < count($lines); $i++) {
+		$newline = strtr($lines[$i],$pairs); 
+		fwrite($newfile,$newline);
+	}
+	fclose($newfile);
+      
+	if ($size > 1) {
+          $comp = array("/X", "/Y", "/Z");
+// VECTOR
+          if ($size <= 3) {
+              $comp = array("/X", "/Y", "/Z");
+	      for ($i = 0; $i < $size; $i++) {
+				$newfile = fopen($id."_".$i."_init.pro", "w");
+				fwrite($newfile,"pro ".$id."_".$i."_init, FRAME=frame,LOG=log,LIN=lin,COLOR=color,PSYM=psym,AY1TITLE=aytitle, _EXTRA=e".PHP_EOL);
+				fwrite($newfile,"cmd = '".$id."_init, ".$comp[$i]."'".PHP_EOL);
+				fwrite($newfile, "if KEYWORD_SET(COLOR) then cmd += ',COLOR=color'".PHP_EOL);
+				fwrite($newfile, "if KEYWORD_SET(FRAME) then cmd += ',FRAME=frame'".PHP_EOL);
+				fwrite($newfile, "if KEYWORD_SET(PSYM) then cmd += ',PSYM=psym'".PHP_EOL);
+				fwrite($newfile, "if KEYWORD_SET(LOG) then cmd += ',/LOG'".PHP_EOL);
+				fwrite($newfile, "if KEYWORD_SET(LIN) then cmd += ',/LIN'".PHP_EOL);
+				fwrite($newfile, "if KEYWORD_SET(AY1TITLE) then cmd += ',AY1TITLE=ay1title'".PHP_EOL);				
+				fwrite($newfile,"R = execute(cmd)".PHP_EOL);
+				fwrite($newfile,"return".PHP_EOL);
+				fwrite($newfile,"end".PHP_EOL);
+				fclose($newfile);
+		}
+           }
+           elseif ($plottype == "STACK") {
+                               for ($i = 0; $i < $size; $i++) {
+                                $newfile = fopen($id."_".$i."_init.pro", "w");
+                                fwrite($newfile,"pro ".$id."_".$i."_init, LOG=log,LIN=lin,COLOR=color,PSYM=psym,AY1TITLE=aytitle, _EXTRA=e".PHP_EOL);
+                                fwrite($newfile,"cmd = '".$id."_init, CHANNEL=".($i+1)."'".PHP_EOL);
+                                fwrite($newfile, "if KEYWORD_SET(COLOR) then cmd += ',COLOR=color'".PHP_EOL);
+                                fwrite($newfile, "if KEYWORD_SET(PSYM) then cmd += ',PSYM=psym'".PHP_EOL);
+                                fwrite($newfile, "if KEYWORD_SET(LOG) then cmd += ',/LOG'".PHP_EOL);
+                                fwrite($newfile, "if KEYWORD_SET(LIN) then cmd += ',/LIN'".PHP_EOL);
+                                fwrite($newfile, "if KEYWORD_SET(AY1TITLE) then cmd += ',AY1TITLE=ay1title'".PHP_EOL);                          
+                                fwrite($newfile,"R = execute(cmd)".PHP_EOL);
+                                fwrite($newfile,"return".PHP_EOL);
+                                fwrite($newfile,"end".PHP_EOL);
+                                fclose($newfile);
+                }
+
+            }
+// TENSOR; diagonal elements
+          elseif ($size == 9 && $tensor == 2) {
+                $sizeR = array(0, 4, 8);
+                for ($i = 0; $i < 3; $i++) {
+				$newfile = fopen($id."_".$sizeR[$i]."_init.pro", "w");
+				fwrite($newfile,"pro ".$id."_".$sizeR[$i]."_init, LOG=log,LIN=lin,COLOR=color,PSYM=psym,AY1TITLE=aytitle, _EXTRA=e".PHP_EOL);
+				fwrite($newfile,"cmd = '".$id."_init, ".$comp[$i].PHP_EOL);
+				fwrite($newfile, "if KEYWORD_SET(COLOR) then cmd += ',COLOR=color'".PHP_EOL);
+				fwrite($newfile, "if KEYWORD_SET(PSYM) then cmd += ',PSYM=psym'".PHP_EOL);
+				fwrite($newfile, "if KEYWORD_SET(LOG) then cmd += ',/LOG'".PHP_EOL);
+				fwrite($newfile, "if KEYWORD_SET(LIN) then cmd += ',/LIN'".PHP_EOL);
+				fwrite($newfile, "if KEYWORD_SET(AY1TITLE) then cmd += ',AY1TITLE=ay1title'".PHP_EOL);	 	
+				fwrite($newfile,"R = execute(cmd)".PHP_EOL);
+				fwrite($newfile,"return".PHP_EOL);
+				fwrite($newfile,"end".PHP_EOL);
+				fclose($newfile);
+		}
+           }
+	}
+    } 
+/*
+*    Make com
+*/ 
+    if (file_exists($this->PredefinedDir.$id."_com.pro")) {
+       copy($this->PredefinedDir.$id."_com.pro", $this->TargetDir.$id."_com.pro");
+    }
+    else {
+	$newfile = fopen($this->TargetDir.$id."_com.pro","w");
+	$pairs = array("LOCALPARAM" => $id,"LOCALSIZE"=>$size,"LOCALSAMPLING"=>$sampling, "LOCALMAXSAMPLING"=>$maxSampling,"LOCALFILLVALUE"=>$fill_value,
+	               "LOCALPLOTTYPE"=>"'".$plottype."'","LOCALVI"=>"'".$vi."'","LOCALENERGYCHANNEL"=>"'".$energychannel."'",
+			"LOCALCONVERSION" => "'".$conversion."'");
+        
+	$lines = file($this->PRODIR."localparam_com.pro");
+	for ($i = 0; $i < count($lines); $i++) {
+		$newline = strtr($lines[$i],$pairs); 
+		fwrite($newfile,$newline);
+	}
+	fclose($newfile);
+    }
+/*
+*    Make get
+*/ 
+    if (file_exists($this->PredefinedDir."get".$id.".pro")) {
+        copy($this->PredefinedDir."get".$id.".pro", $this->TargetDir."get".$id.".pro");
+    }
+    else {
+	$newfile = fopen($this->TargetDir."get".$id.".pro","w");
+	$pairs = array("LOCALPARAM" => $id,"LOCALSIZE"=>$size,"LOCALPARAMNAME"=>"'".$this->param2ddPoint($name)."'", 
+			"LOCALVI"=>"'".$vi."'", "LOCALDATATYPE" => "'".$value_type."'", "LOCALCONVERSION" => "'".$conversion."'");
+	$lines = file($this->PRODIR."getlocalparam.pro");
+	for ($i = 0; $i < count($lines); $i++) {
+		$newline = strtr($lines[$i],$pairs); 
+		fwrite($newfile,$newline);
+	}
+	fclose($newfile);
+   }
+/*
+*    Make parameter
+*/ 
+    if (file_exists($this->PredefinedDir.$id."_.pro")) {
+        copy($this->PredefinedDir.$id."_.pro", $this->TargetDir.$id."_.pro");
+    }
+    else {
+	$newfile = fopen($this->TargetDir.$id."_.pro","w");
+	$pairs = array("LOCALPARAM" => $id,"LOCALSIZE"=>$size, "LOCALSAMPLING"=>$sampling, "LOCALPARAMNAME"=>"'".$this->param2ddPoint($name)."'", 
+			"LOCALVI"=>"'".$vi."'", "LOCALDATATYPE" => "'".$value_type."'","LOCALFILLVALUE"=>$fill_value,"LOCALPROCESS"=>"'".$process."'",
+			"LOCALCONVERSION" => "'".$conversion."'");
+
+	$lines = file($this->PRODIR."localparam_.pro");
+    
+	for ($i = 0; $i < count($lines); $i++) {
+		$newline = strtr($lines[$i],$pairs); 
+		fwrite($newfile,$newline);
+	}
+	fclose($newfile);
+   }
+}
+
+/*
+*    Make  WS parameter
+*/   
+  public function makeWsParamPlot($ws_object) {
+ 
+
+/*
+*   Make init
+*/
+ 
+    $infoMgr = new ParamsInfoMgr();
+    $infos = $infoMgr->GetParamInfo($ws_object);
+   
+    $Ytitle = $ws_object;
+
+    if ($infos['success']) {
+           
+        if ($infos['infos']['ytitle'] != 'undefined')  
+             $Ytitle =  $infos['infos']['ytitle'];
+         
+        if ($infos['infos']['units'] != 'undefined') 
+             $Ytitle .= ','.$infos['infos']['units'];
+                    
+    }
+
+    $pairs = array("WS" => $ws_object, "TTT" => $Ytitle);
+
+    $newfile = fopen($this->TargetDir.$ws_object."_init.pro","w");
+     
+    $lines = file($this->PRODIR."ws_init.pro");
+    for ($i = 0; $i < count($lines); $i++) {
+             $newline = strtr($lines[$i],$pairs); 
+             fwrite($newfile,$newline);
+     }
+    fclose($newfile);
+
+/*
+* Make Common
+*/
+    $newfile = fopen($this->TargetDir.$ws_object."_com.pro","w");
+     
+    $lines = file($this->PRODIR."ws_com.pro");
+    for ($i = 0; $i < count($lines); $i++) {
+             $newline = strtr($lines[$i],$pairs); 
+             fwrite($newfile,$newline);
+     }
+    fclose($newfile);  
+
+/*
+*   Make Get
+*/
+    $newfile = fopen($this->TargetDir."get".$ws_object.".pro","w");
+     
+    $lines = file($this->PRODIR."getws.pro");
+    for ($i = 0; $i < count($lines); $i++) {
+             $newline = strtr($lines[$i],$pairs); 
+             fwrite($newfile,$newline);
+     }
+    fclose($newfile);  
+
+   
+/*
+*    Make parameter
+*/ 
+
+  	$newfile = fopen($this->TargetDir.$ws_object."_.pro","w");	
+ 	$lines = file($this->PRODIR."ws_.pro");
+    
+ 	for ($i = 0; $i < count($lines); $i++) {
+ 		$newline = strtr($lines[$i],$pairs); 
+ 		fwrite($newfile,$newline);
+ 	}
+ 	fclose($newfile);
+
+ }
+/*
+*    Make  WSD parameter
+*/   
+ 
+  public function makeWsdParam($wsd) {
+
+    copy (OLD_CLASSPATH."getViStart.php",$this->TargetDir."getViStart.php");
+    copy (OLD_CLASSPATH."getViStop.php",$this->TargetDir."getViStop.php");
+    copy (OLD_CLASSPATH."setViStart.php",$this->TargetDir."setViStart.php");
+    copy (OLD_CLASSPATH."setViStop.php",$this->TargetDir."setViStop.php");
+    copy (OLD_CLASSPATH."getFileNames.php",$this->TargetDir."getFileNames.php");
+    copy (OLD_CLASSPATH."getVotVar.php",$this->TargetDir."getVotVar.php");
+    copy (OLD_CLASSPATH."moreData.php",$this->TargetDir."moreData.php");
+
+//TODO do we need wsd_..xml???
+//     $param_xml =   USERWSDIR.$wsd.".xml";
+    $param_xml =   getenv('USER_WS_PATH').$wsd.".xml";
+    $param_dom = new DomDocument("1.0");
+    $param_dom -> load($param_xml);
+/*
+*   Get Param Info
+*/
+    if (strncmp($wsd, "simu_", 5) == 0) {
+      $paramType = 'simu';
+      $isMoreData = 1;
+      $theParam = $param_dom->getElementsByTagName("mysimudata")->item(0);
+    }
+    elseif (strncmp($wsd, "wsr_", 4) == 0) {
+      $paramType = 'wsr';
+      $isMoreData = 1;
+      $theParam = $param_dom->getElementsByTagName("mywsrdata")->item(0);
+    }
+    else {
+      $paramType = 'wsd';
+      $isMoreData = 0;
+      $theParam = $param_dom->getElementsByTagName("mydata")->item(0);
+    }
+      
+    if ($paramType == 'wsr' ||  $paramType == 'simu')
+      $alias = strtolower($theParam->getElementsByTagName("name")->item(0)->nodeValue);
+    else
+      $alias = "wsd_".strtolower($theParam->getElementsByTagName("name")->item(0)->nodeValue);
+ 
+
+    $name = $theParam->getElementsByTagName("realvar")->item(0)->nodeValue;
+    $size = $theParam->getElementsByTagName("size")->item(0)->nodeValue;
+    $format = $theParam->getElementsByTagName("format")->item(0)->nodeValue;
+    $vi = $theParam->getElementsByTagName("vi")->item(0)->nodeValue;
+    $plottypeArr = $theParam->getElementsByTagName("plottype");
+    $plot_type = $plottypeArr->length > 0 ? $plottypeArr->item(0)->nodeValue : 'undefined';
+
+    switch ($size) {
+      case "3" : $tensor = 1; break;
+      case "1" : $tensor = 0; break;
+      default  : $tensor = 2;
+    }
+
+    $value_type = $theParam->getElementsByTagName("type")->item(0)->nodeValue;
+    $fill_value =  $theParam->getElementsByTagName("fillvalue")->item(0)->nodeValue;
+    if (!$fill_value) $fill_value =  -1.e+31;
+    if ($fill_value == "NaN") $fill_value = "!Values.F_NAN";
+    $units = $theParam->getElementsByTagName("units")->item(0)->nodeValue; 
+    if (!$units) $units = "";
+    $sampling =  $theParam->getElementsByTagName("minsampling")->item(0)->nodeValue;  
+    $maxSampling = $sampling;
+    if ($theParam->getElementsByTagName("maxsampling")->item(0)->nodeValue != $sampling) 
+					    $maxSampling =$theParam->getElementsByTagName("maxsampling")->item(0)->nodeValue;
+   
+    $legend =  $theParam->getElementsByTagName("legend")->item(0)->nodeValue;
+    if (!$legend) $legend = " X; Y; Z";
+    $ytitle = $theParam->getElementsByTagName("ytitle")->item(0)->nodeValue; 
+/*
+*    Make init
+*/ 
+   
+	$newfile = fopen($this->TargetDir.$alias."_init.pro","w");
+	$pairs = array("WSDPARAM" => $alias,"WSDTENSOR"=>$tensor,"WSDUNITS"=>"'".$units."'","WSDPLOTTYPE"=>"'".$plot_type."'","WSDSIZE"=>$size,"WSDYTITLE"=>"'".$ytitle."'", "WSDLEGEND"=>"'".$legend."'");
+	$lines = file($this->PRODIR."wsd_init.pro");
+	for ($i = 0; $i < count($lines); $i++) {
+		$newline = strtr($lines[$i],$pairs); 
+		fwrite($newfile,$newline);
+	}
+	fclose($newfile);
+      
+	if ($size > 1) {
+	  $comp = array("/X", "/Y", "/Z");
+	  for ($i = 0; $i < $size; $i++) {
+			    $newfile = fopen($alias."_".$i."_init.pro", "w");
+			    fwrite($newfile,"pro ".$alias."_".$i."_init \n");
+			    fwrite($newfile,"cmd = '".$alias."_init, ".$comp[$i]."'\n");
+			    fwrite($newfile,"R = execute(cmd) \n");
+			    fwrite($newfile,"return \n");
+			    fwrite($newfile,"end \n");
+			    fclose($newfile);
+	    }
+	}
+    
+/*
+*    Make com
+*/ 
+	
+	$newfile = fopen($this->TargetDir.$alias."_com.pro","w");
+	$pairs = array("WSDPARAM" => $alias,"WSDSIZE"=>$size,"WSDSAMPLING"=>$sampling,"WSDMAXSAMPLING"=>$maxSampling, "WSDFILLVALUE"=>$fill_value);
+	$lines = file($this->PRODIR."wsd_com.pro");
+	for ($i = 0; $i < count($lines); $i++) {
+		$newline = strtr($lines[$i],$pairs); 
+		fwrite($newfile,$newline);
+	}
+	fclose($newfile);
+     
+/*
+*    Make get
+*/ 
+
+	$newfile = fopen($this->TargetDir."get".$alias.".pro","w");
+	$pairs = array("WSDPARAM" => $alias,"WSDSIZE"=>$size,"WSDPARAMNAME"=>"'".$name."'", 
+		       "WSDDATATYPE" => "'".$value_type."'","WSDFORMAT" => "'".$format."'", 
+                       "WSDVI" => "'".$vi."'", "WSDMOREDATA" => $isMoreData,"WSDPLOTTYPE"=>"'".$plot_type."'");
+	$lines = file($this->PRODIR."getwsd.pro");
+	for ($i = 0; $i < count($lines); $i++) {
+		$newline = strtr($lines[$i],$pairs); 
+		fwrite($newfile,$newline);
+	}
+	fclose($newfile);
+/*
+*    Make parameter
+*/ 
+
+	$newfile = fopen($this->TargetDir.$alias."_.pro","w");
+	$pairs = array("WSDPARAM" => $alias,"WSDSIZE"=>$size,"WSDSAMPLING"=>$sampling, "WSDPARAMNAME"=>"'".$name."'", 
+			"WSDDATATYPE" => "'".$value_type."'","WSDFORMAT" => "'".$format."'","WSDFILLVALUE"=>$fill_value, "WSDVI" => "'".$vi."'");
+		
+	$lines = file($this->PRODIR."wsd_.pro");
+    
+	for ($i = 0; $i < count($lines); $i++) {
+		$newline = strtr($lines[$i],$pairs); 
+		fwrite($newfile,$newline);
+	}
+	fclose($newfile);
+}  
+ 
+
+}
+
+?>
\ No newline at end of file
diff --git a/php/old_amda/Parser.php b/php/old_amda/Parser.php
new file mode 100755
index 0000000..86e4703
--- /dev/null
+++ b/php/old_amda/Parser.php
@@ -0,0 +1,264 @@
+<?php
+/**  @class Parser
+*    @version $Id: Parser.php 2918 2015-05-19 13:12:09Z elena $ 
+*    @brief 
+*    
+*/
+class Parser {
+
+       public $wsXML, $constantsXML, $functionsXML, $aliasesXML;
+       public $dom;
+       public $idl_pairs = array(">" => " GT ", "<" => " LT ", "&" => " AND ", "|" => " OR ", "=" => " EQ "); 
+
+       public $file;       
+   
+    function __construct(){ 
+          $this->wsXML = USERWSDIR."WsParams.xml";         
+          $this->functionsXML = Functions."functions.xml";
+          $this->constantsXML = Functions."constants.xml";
+          $this->aliasesXML = USERWSDIR."Alias.xml";
+          $this->dom = new DomDocument("1.0");
+      
+       }
+
+/*
+*  Replace Constants, Aliases and WS params by their real values
+*/
+    public function replaceAll($chain){
+ 
+      $newChain = $this->replaceWsParams($chain);
+      $newNewChain = $this->replaceAliases($newChain);
+      $newNewNewChain = $this->replaceConstants($newNewChain);
+  
+     return $newNewNewChain;
+    }
+
+/*
+*  Replace Constants, Aliases and WS params by their real values
+*/
+    public function replaceAllButWS($chain){
+       
+      $newChain = $this->replaceAliases($chain);
+      $newNewChain = $this->replaceConstants($newChain);
+  
+     return $newNewChain;
+    }
+/*
+*  Return array of Variables
+*/ 
+  
+   public function getVars($chain){
+   
+     $arr = $this->delimitIt($chain);
+ 
+     $arr = $this->selectVariables($arr);   
+     $arr = $this->deSelectFunctions($arr);
+  
+     return $arr;
+   }
+
+/*
+*
+*/
+    public function convert2Idl($chain) {
+
+      return (strtr($chain,$this->idl_pairs));
+
+   }
+
+   public function getFunctionsNames() { 
+
+        $this->dom->load($this->functionsXML);    
+        $functions_ = $this->dom->getElementsByTagName("function");
+   
+        for ($i = 0; $i < $functions_->length; $i++) {   
+            $tempArr =  explode('(', $functions_->item($i)->getAttribute("name"));
+            $functions[$i] = $tempArr[0];
+        }
+
+      return $functions;
+    }
+
+    public function deSelectFunctions($arr) { 
+ 
+      $functions = $this->getFunctionsNames();
+ 
+      $arr = array_values($arr);
+
+      $N_arr = count($arr);
+      for ($i = 0; $i < $N_arr; $i++)     
+        foreach($functions as $the_function)        
+            if (strcasecmp(trim($the_function),trim($arr[$i])) == 0) {
+                                         unset($arr[$i]);
+                                         continue 2;
+           }  
+ 
+      return array_values($arr);
+    } 
+
+    public function replaceAliases($chain) { 
+      
+         if ($this->isThereAlias($chain)) {
+            
+              $this->dom->load($this->aliasesXML);    
+              $aliases_ = $this->dom->getElementsByTagName("alias");            
+       
+              if ($aliases_->length > 0 ) {
+                  for ($i = 0; $i <  $aliases_->length; $i++) {            
+                    $aliases["#".$aliases_->item($i)->getAttribute("name")] = "(".$aliases_->item($i)->nodeValue.")";
+      
+                  }
+    
+                  $chainReplaced = strtr($chain, $aliases);  
+        
+                  return $chainReplaced;
+            }
+         }
+       return $chain;
+    }
+   
+  
+     public function replaceConstants($chain) { 
+      
+         if ($this->isThereConstant($chain)) {
+              
+              $this->dom->load($this->constantsXML);    
+              $constants_ = $this->dom->getElementsByTagName("constant");             
+          
+              for ($i = 1; $i <  $constants_->length; $i++) {            
+                $constants["@".$constants_->item($i)->getAttribute("name")] = "(".$constants_->item($i)->nodeValue.")";
+  
+              }
+ 
+              $chainReplaced = strtr($chain, $constants);  
+     
+              return $chainReplaced;
+            }
+       return $chain;
+    }
+
+    public function replaceWsParams($chain) {
+
+         if ($this->isThereWs($chain)) {
+              $this->dom->load($this->wsXML);    
+              $wspar = $this->dom->getElementsByTagName("param");
+            
+              if ($wspar->length > 0) {
+                  for ($i = 0; $i < $wspar->length; $i++) {  
+//Changes: low 'ws'  and attributes        
+                    $wsName = "ws_".$wspar->item($i)->getAttribute('name');
+                    $wsChain = $wspar->item($i)->getAttribute("buildchain");
+                    $wsParams[$wsName]= $wsChain;
+                  } 
+              $chainReplaced = strtr($chain, $wsParams); 
+              return $chainReplaced; 
+             }
+           }
+      return $chain;
+    }
+
+   public function substrAliasWs($chain, $aliasName, $paramName) {
+
+        $aliasName="#".$aliasName;
+        $pos = strpos($chain, $aliasName);
+        while ( $pos !== FALSE ) {
+            $pos = $pos+strlen($aliasName);
+            if (preg_match('/[-+*,^<>&|=\/\[\]\(\)]/', $chain[$pos]) || $chain[$pos] === '') {
+                $chain = substr_replace($chain, $paramName,$pos-strlen($aliasName),strlen($aliasName));
+            }
+            $pos = strpos($chain, $aliasName, $pos);
+        }
+
+        return $chain;
+    }
+
+     public function substrParamWs($chain, $paramName, $aliasName) {
+
+        $aliasName="#".$aliasName;
+        $pos = strpos($chain, $paramName);
+        while ( $pos !== FALSE ) {
+            $pos = $pos+strlen($paramName);
+            if (preg_match('/[-+*,^<>&|=\/\[\]\(\)]/', $chain[$pos]) || $chain[$pos] === '') {
+                $chain = substr_replace($chain, $aliasName,$pos-strlen($paramName),strlen($paramName));
+            }
+            $pos = strpos($chain, $paramName, $pos);
+        }
+
+        return $chain;
+    }
+
+    public function modifyParamWs($chain, $oldAliasName, $newAliasName) {
+
+        $oldAliasName="#".$oldAliasName;
+        $newAliasName="#".$newAliasName;
+        $pos = strpos($chain, $oldAliasName);
+        while ( $pos !== FALSE ) {
+            $pos = $pos+strlen($oldAliasName);
+            if (preg_match('/[-+*,^<>&|=\/\[\]\(\)]/', $chain[$pos]) || $chain[$pos] === '') {
+                $chain = substr_replace($chain, $newAliasName,$pos-strlen($oldAliasName),strlen($oldAliasName));
+            }
+            $pos = strpos($chain, $oldAliasName, $pos);
+        }
+
+        return $chain;
+    }
+
+
+    public function delimitIt($chain) {
+       
+       $delimiter = '[]+,/*()^<>&|=[-]+';    
+       $array = split($delimiter,$chain);
+       if (trim(end($array)) == "") array_pop($array);
+
+       return $array;
+   }
+
+
+  public function selectVariables($arr) {   
+
+      $N_arr = count($arr);
+      for ($i = 0; $i < $N_arr; $i++)  {  
+         $arr[$i] =  trim($arr[$i]);       
+         if (!$this->isVariable($arr[$i]))                                    
+                                       unset($arr[$i]);
+        }
+
+      return array_unique(array_values($arr));
+   }
+
+   
+    public function isNumber($value) { 
+     
+         return preg_match('/^[-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?$/', $value);
+   }
+
+    public function isVariable($value) {
+
+         return preg_match('/^[a-zA-Z]/', $value);
+   }
+
+     public function isConstant($value) {
+
+         return preg_match('/^@/', $value);
+   }
+
+   public function isAlias($value) {
+
+         return preg_match('/^#/', $value);
+   }
+
+   public function isThereConstant($value) {
+
+         return preg_match('/@/', $value);
+   }
+
+    public function isThereWS($value) {
+
+         return preg_match('/ws_/', $value);
+   } 
+     
+  public function isThereAlias($value) {
+
+         return preg_match('/#/', $value);
+   }
+}
\ No newline at end of file
diff --git a/php/old_amda/getFileNames.php b/php/old_amda/getFileNames.php
new file mode 100644
index 0000000..2fdba67
--- /dev/null
+++ b/php/old_amda/getFileNames.php
@@ -0,0 +1,21 @@
+<?php
+   $id = $argv[1];
+   $st = (int)$argv[2];
+   $dt = (int)$argv[3];
+   $dom = new DomDocument("1.0");
+   $dom->load(getenv('USER_DATA_PATH').'base.xml');
+   $vi = $dom->getElementById($id); 
+   $files = $vi->getElementsByTagName("file");
+   if ($files->length > 0)  
+       foreach ($files as $file) {    
+           if ($file->getAttribute("stop") < $st) {              
+           continue;
+           }
+           if ($file->getAttribute("start") >= $st + $dt){ 
+	    break;
+	   }
+//error_log($file->getAttribute("name"),3,'mylog');  
+           echo $file->getAttribute("name").",";
+        }
+   exit();
+?>
diff --git a/php/old_amda/getViStart.php b/php/old_amda/getViStart.php
new file mode 100644
index 0000000..8973f5d
--- /dev/null
+++ b/php/old_amda/getViStart.php
@@ -0,0 +1,11 @@
+<?php
+ /**
+ *  $Id: getViStart.php 2534 2014-10-02 16:17:30Z elena $
+*/
+   $dom = new DomDocument("1.0");
+ 
+   $dom->load(getenv('USER_DATA_PATH').'base.xml');
+   $vi = $dom->getElementById($argv[1]); 
+   echo $vi->getAttribute("start"); 
+   exit();
+?>
\ No newline at end of file
diff --git a/php/old_amda/getViStop.php b/php/old_amda/getViStop.php
new file mode 100644
index 0000000..93dc8e3
--- /dev/null
+++ b/php/old_amda/getViStop.php
@@ -0,0 +1,10 @@
+<?php
+ /**
+ *  $Id: getViStop.php 2534 2014-10-02 16:17:30Z elena $
+*/
+   $dom = new DomDocument("1.0");
+   $dom->load(getenv('USER_DATA_PATH').'base.xml');
+   $vi = $dom->getElementById($argv[1]); 
+   echo $vi->getAttribute("stop"); 
+   exit();
+?>
\ No newline at end of file
diff --git a/php/old_amda/getVotVar.php b/php/old_amda/getVotVar.php
new file mode 100644
index 0000000..fd9cff5
--- /dev/null
+++ b/php/old_amda/getVotVar.php
@@ -0,0 +1,66 @@
+<?php
+
+//putenv("USER_DATA_PATH=/home/benjamin/workspace/AMDA-NG4/data/renard/DATA/");
+//putenv("PHP_CLASSES_PATH=/home/benjamin/workspace/AMDA-NG4/php/classes/");
+
+date_default_timezone_set('UTC');
+
+require getenv('PHP_CLASSES_PATH').'VOTableMgr.php';
+
+$files       = $argv[1];
+$paramId     = $argv[2];
+$dims        = $argv[3];
+$startDouble = $argv[4];
+$intDouble   = $argv[5];
+
+$mgr = new VOTableMgr();
+  
+$files_arr = explode(",",$files);
+
+foreach ($files_arr as $file)
+{
+  $fileName = getenv('USER_DATA_PATH').$file;
+
+  $mgr->load($fileName);
+  	 
+  $timeIndex = $mgr->getTimeFieldIndex();
+  if ($timeIndex < 0)
+    continue;
+  
+  $paramIndex= $mgr->getFieldIndexByID($paramId);
+  if ($paramIndex < 0)
+    continue;
+  
+  $paramInfo = $mgr->getFieldInfoByID($paramId);
+  if (isset($paramInfo["error"]))
+    continue;
+  
+  $tr = $mgr->getFirstTR();
+  
+  $crtTime = $startDouble;
+  
+  while ($tr)
+  {
+  	 $time = strtotime($mgr->getTDValueByFieldIndex($tr,$timeIndex));
+      
+    if ($time > $crtTime)
+	   {
+	     if ($time <= $startDouble + $intDouble)
+	     {
+	       $val = $mgr->getTDValueByFieldIndex($tr,$paramIndex);
+	      
+	        echo $time." ".$val."\n";
+	      
+	        $crtTime = $time;
+	      }
+	      else
+	        break;
+     }
+      
+     $tr = $mgr->getNextTR($tr);
+   }
+}
+
+exit();
+
+?>
\ No newline at end of file
diff --git a/php/old_amda/moreData.php b/php/old_amda/moreData.php
new file mode 100644
index 0000000..3b6101c
--- /dev/null
+++ b/php/old_amda/moreData.php
@@ -0,0 +1,79 @@
+<?php
+ /**
+ *  $Id: moreData.php 2913 2015-05-19 10:30:52Z elena $
+*/
+   require_once ("../../../../php/config.php"); 
+   
+ 
+   $dom = new DomDocument("1.0"); 
+   $dom->load(getenv('USER_DATA_PATH').'base.xml');    
+   $vi = $dom->getElementById($argv[1]);
+ 
+   $requestStart = (int)$argv[2];
+   $requestStop  = (int)$argv[3];
+ 
+   $argumentsByParam = array();
+ 
+   if ($vi->getAttribute("moreData")) {
+
+    $masks = $vi->getElementsByTagName('mask');
+    $mask = $masks->item(0)->nodeValue;
+
+    $isSimu = strncmp($mask, "impex___", 8) === 0 || strncmp($mask, "spase___", 8) === 0;
+    $isClWeb = strncmp($mask, "CLWEB_", 6) === 0;
+ 
+    if ($isSimu) $myParamMgr = new SimuParamMgr();
+    else if ($isClWeb) $myParamMgr = new WsrParamMgr();
+    else exit();
+ 
+    $paramBuilder = new ParamBuilder();
+
+    $paramDom = new DomDocument("1.0");
+    $paramDom->load(getenv('USER_WS_PATH').'WsParams.xml');
+    $xpdSimu = new domxpath($paramDom); 
+      
+    $paramsSimu = $xpdSimu->query("//*[@mask='".$mask."']");  
+    $simuID = $paramsSimu->item(0)->getAttribute('xml:id'); 
+
+    $files = $vi->getElementsByTagName('file'); 
+    $param = $vi->getElementsByTagName('param')->item(0)->nodeValue; 
+    $args = $vi->getElementsByTagName('arguments'); 
+
+    if ($args->item(0)){
+        if ($args->item(0)->hasChildNodes()){
+            $arguments = array(); 
+            foreach ($args->item(0)->childNodes as $child){
+                if ($child instanceof DOMElement){
+                $arguments[$child->nodeName] = $child->nodeValue;
+                }
+            }
+            $argumentsByParam[$param] = $arguments;
+        }
+    }
+    $myBaseManager = new BaseManager();
+    $intervalsToGet = $myBaseManager->intervalsToGet($requestStart, $requestStop, $mask);
+    $start = $intervalsToGet['start'];
+    $stop = $intervalsToGet['stop'];
+    // Data to get
+     if (count($start) > 0) {
+        for ($i = 0; $i < count($start); $i++) {
+
+            $startD = gmdate("Y-m-d\TH:i:s\Z",$start[$i]); 
+            $stopD = gmdate("Y-m-d\TH:i:s\Z",$stop[$i]);
+            if ($isClWeb)  {
+                    $data['paramID'] = $param;
+                    $data['startDate'] = $startD;
+                    $data['stopDate'] = $stopD;
+                    $myParamMgr->setParams($data);
+                    $wsrFileNames = $myParamMgr->getData();
+            }
+            else {
+                    $myParamMgr->setParams($param, $startD, $stopD, $argumentsByParam);
+                    $simuFileNames = $myParamMgr->getSimuData();
+            }         
+        } 
+        $paramBuilder->makeWsdParam($simuID);
+    }
+ }
+ exit();
+?>
\ No newline at end of file
diff --git a/php/old_amda/paramBuild.php b/php/old_amda/paramBuild.php
new file mode 100644
index 0000000..527dd2e
--- /dev/null
+++ b/php/old_amda/paramBuild.php
@@ -0,0 +1,88 @@
+<?php
+
+/** @file paramBuild.php
+*   @brief parameter generator from templates and parameter name
+*   @version $Id: $
+*   @date Tue Sep 11 14:04:55 CEST 2007
+*/
+
+/*
+*  To exclude crazy stuff from parameter name
+*/
+
+ function param2dd($paramID)
+    {
+     $pairs = array("-" => "_", "%" => "_","\\" => "_","$" => "_",":" => "_","+" =>" _","-" => "_","#" => "_","@" => "_", "." => "_",">" => "_", "<" => "_");    
+     return strtr($paramID, $pairs); 
+   }
+
+/*
+* Object -> Stuff for DD Graph
+*/
+    function paramBuild($paramID)
+    {
+       
+           $TargetDir = "./";     //  WHERE CREATE???
+           $PRODIR = TEMPLATES;   
+           $LIBDIR = PREDEFINED; // predefined ext params
+
+           $ddParamID = param2dd($paramID);
+           $paramFunc = strtolower($ddParamID);
+                    
+               $SED = "sed 's/NEWPARAM/".$paramID."/g' ".$PRODIR."newparam_init.pro | sed 's/DDPARAM/".$ddParamID."/g' > ".$TargetDir.$paramFunc."_init.pro";
+               system($SED);
+          
+               $SED = "sed 's/NEWPARAM/".$paramID."/g' ".$PRODIR."newparam_com.pro | sed 's/DDPARAM/".$ddParamID."/g' > ".$TargetDir.$paramFunc."_com.pro";
+               system($SED);
+  
+               $SED = "sed 's/DDPARAM/".$ddParamID."/g' ".$PRODIR."getnewparam.pro > ".$TargetDir."get".$paramFunc.".pro";
+               system($SED);
+
+/*
+*            Add predefined functions if exists
+*/
+             foreach (glob($LIBDIR."*".$paramFunc."*.pro") as $filename) 
+                              copy($filename, str_replace($LIBDIR, $TargetDir, $filename));          
+                      
+     }
+
+/*
+*   components
+*/
+    function paramBuildComp($paramID, $comp)
+    {
+	   $TargetDir = "./";     //  WHERE CREATE???
+           $PRODIR = TEMPLATES;  
+	   $ddParamID = param2dd($paramID);
+	   $paramFunc = strtolower($ddParamID).'_'.$comp;
+
+	   $SED = "sed 's/DDPARAM/".$ddParamID."/g' ".$PRODIR."newparam_XXX_init.pro | sed 's/XXX/".$comp."/g' > ".$TargetDir.$paramFunc."_init.pro";
+	  system($SED);
+
+   }
+/* 
+*  Real Parameter
+*/
+ 
+  function paramBuild_($paramID)
+    {
+         
+          
+           $TargetDir = "./";     //  WHERE CREATE???
+           $PRODIR = TEMPLATES;  
+           $LIBDIR = PREDEFINED; // predefined ext params
+
+           $ddParamID = param2dd($paramID);
+           $paramFunc = strtolower($ddParamID);
+
+/*
+* Add predefined functions if exists  
+*/   
+           if (file_exists($LIBDIR.$paramFunc."_.pro")) copy($LIBDIR.$paramFunc."_.pro",$TargetDir.$paramFunc."_.pro");
+           else
+              {               
+                $SED = "sed 's/NEWPARAM/".$paramID."/g' ".$PRODIR."newparam_.pro | sed 's/DDPARAM/".$ddParamID."/g' > ".$TargetDir.$paramFunc."_.pro";
+                system($SED);
+             }          
+     }                                                               
+?>
diff --git a/php/old_amda/param_info.pro b/php/old_amda/param_info.pro
new file mode 100644
index 0000000..388a071
--- /dev/null
+++ b/php/old_amda/param_info.pro
@@ -0,0 +1,255 @@
+; $Id: param_info.pro,v 1.4 2009/03/30 15:45:33 budnik Exp $
+;
+;+
+; NAME:
+;       PARAM_INFO
+;
+; PURPOSE:
+;       gets CDAWEB parameter Info 
+;         to create AMDA parameter automatically
+;
+;
+; CALLING SEQUENCE:
+;       
+;       PARAM_INFO, CDF_name, ParID
+;
+; INPUTS:
+;       CDF_name:  CDF file name (master CDF or data CDF) 
+;       ParID  :   variable name in CDF notation
+;       
+; KEYWORD PARAMETERS:
+;    
+;      
+; OUTPUTS:
+;          string "paramID%....."
+;       
+; MODIFICATION HISTORY:
+;       Written by:     Elena Budnik
+;       September, 2007       
+;-
+
+ pro Param_Info, CDF_name, ParID
+
+ NODATA = "%-9999"
+
+;------------------- List of Param Attributes used for AMDA ----------------
+
+ AttributesGlobal = ["Source_name", "Descriptor", "Data_type", "Instrument_type"]
+ AttributesCommon = ["FIELDNAM", "DISPLAY_TYPE", "UNITS", "FILLVAL", "Frame", "VALIDMIN","VALIDMAX", "SI_conversion"]
+
+; ALSO EXIST "DICT_KEY", "CATDESC", "AVG_TYPE"
+ AttributeScalar = ["LABLAXIS"] 
+ AttributeVector = ["LABL_PTR_1"]
+      
+   if (file_test(CDF_name) eq 0) then begin
+           print, NODATA
+           return
+   endif
+ 
+   Output = "paramID%" + strjoin(strsplit(ParID,"%&.><",/EXTRACT),"_");
+   cdfID = cdf_open(CDF_name)
+
+;---------------- Get Global Attributes ----------------------
+     On_IoError, NoGlobalAttr 
+     for i = 0, n_elements(AttributesGlobal) - 1 do begin  
+      if (cdf_attexists(cdfid, AttributesGlobal[i])) then cdf_attget, cdfid, AttributesGlobal[i], 0, attvalue $
+          else cdf_attget, cdfid, strupcase(AttributesGlobal[i]), 0, attvalue
+           Output +=  "&&"+strupcase(AttributesGlobal[i])+"%" + strcompress(string(attvalue))
+           continue;
+           NoGlobalAttr: Output += "&&"+strupcase(AttributesGlobal[i]) + NODATA
+     endfor
+   
+     On_IoError, NULL
+;--------------- Get parameter Number -----------------------
+    
+     par_num = cdf_varnum(cdfid, ParID, IsZVar);
+
+;----------- Attributes & Dims for R-vars -----------------------------   
+     if (IsZVar eq 0) then begin   ; r-variable
+           glob = cdf_inquire(cdfid)
+           info = cdf_varinq(cdfid, par_num)
+           outDim = ""
+
+           if (glob.ndims eq 0) then dim = 1 else  begin
+                numDim = where(info.dimvar eq 1, ndim)
+                if (ndim GT 0) then dim = glob.dim[numDim] else dim = 1
+           endelse
+           if (n_elements(dim) eq 1) then outDim = string(dim,format='(i3.3)') else  $
+             for j = 0, n_elements(dim)-1 do outDim +=string(dim[j],format='(i3.3)')+","
+
+;----------  CDF data types to DD
+
+            case info.datatype of
+             "CDF_CHAR": datatype = 0; DD_CHAR
+             
+             "CDF_BYTE": datatype = 5;
+             "CDF_INT1": datatype = 5;
+             
+             "CDF_INT2":  datatype = 4; DD_SHORT
+             "CDF_UCHAR": datatype = 4;
+             "CDF_UINT1": datatype = 4;
+             
+             "CDF_INT4":  datatype = 1; DD_INT 
+             "CDF_UINT2": datatype = 1;
+
+             "CDF_FLOAT": datatype = 2; DD_FLOAT
+             "CDF_REAL4": datatype = 2; 
+
+             "CDF_DOUBLE": datatype = 3; DD_DOUBLE
+             "CDF_REAL8":  datatype = 3;
+             "CDF_UINT4":  datatype = 3;
+            end
+            
+            Output += "&&DATATYPE%" + strcompress(string(datatype)) + "&&DIMENSION%" + outDim 
+              On_IoError, NoAttr
+          
+            for i = 0, N_elements(AttributesCommon)-1 do begin
+             if (cdf_attexists(cdfid, AttributesCommon[i])) then begin
+                cdf_attget, cdfid, AttributesCommon[i], par_num, attvalue
+                Output +=  "&&"+strupcase(AttributesCommon[i])+"%" + strcompress(string(attvalue)) 
+             endif else Output += "&&"+strupcase(AttributesCommon[i])+NODATA 
+              continue
+              NoAttr : Output += "&&"+strupcase(AttributesCommon[i])+NODATA     
+           endfor
+               
+           if (n_elements(dim) eq 1 AND dim[0] eq 1) then begin
+              On_IoError, NoAttr1
+              cdf_attget, cdfid, AttributeScalar[0], par_num, attvalue
+              Output +=  "&&"+AttributeScalar[0]+"%" + strcompress(string(attvalue)) 
+              GOTO, CONT   
+              NoAttr1: Output += "&&"+AttributeScalar[0]+NODATA
+           endif else begin
+              On_IoError, NoAttr2
+              cdf_attget, cdfid, "LABL_PTR_1", par_num, attvalue 
+              var_num = cdf_varnum(cdfid, attvalue, IsZvar)
+              temp=strarr(dim)
+              if (IsZVar) then  cdf_varget, cdfid, var_num, temp, /STRING, /ZVariable $
+                  else cdf_varget, cdfid, var_num, temp, /STRING
+              labelOutput = ""
+; Crazy stuff - don't understand how to treat
+              t_sort = temp(sort(reform(temp,N_elements(temp))))
+              t_temp = t_sort(uniq(t_sort))
+              for j = 0, N_elements(t_temp) - 1  do labelOutput += string(t_temp[j])+"$"
+              Output +=  "&&LABLAXIS%" + strcompress(labelOutput)
+              GOTO, CONT 
+               NoAttr2:  On_IoError, NoAttr3
+                 cdf_attget, cdfid, "DEPEND_1", par_num, attvalue
+                 var_num = cdf_varnum(cdfid, attvalue, IsZvar)
+                 cdf_attget, cdfid, "LABL_PTR_1", var_num, attvalue
+                 var_num = cdf_varnum(cdfid, attvalue, IsZvar)
+                 temp=strarr(dim)
+                 if (IsZVar) then  cdf_varget,cdfid, var_num, temp, /STRING, /ZVARIABLE $
+                   else cdf_varget,cdfid, var_num, temp, /STRING
+                    labelOutput = ""
+                  t_temp = temp(uniq(temp))
+                  for j = 0, N_elements(t_temp)-1 do labelOutput += string(t_temp[j])+"$"
+                  Output +=  "&&LABLAXIS%" + strcompress(labelOutput)
+                  GOTO, CONT 
+
+              NoAttr3: Output += "&&LABLAXIS"+NODATA
+           endelse
+            CONT: On_IoError, NoAttr4 
+            if (cdf_attexists(cdfid, "VIRTUAL")) then begin
+               cdf_attget, cdfid, "VIRTUAL", par_num, attvalue
+               if (attvalue eq "TRUE") then begin
+                  cdf_attget, cdfid, "COMPONENT_0", par_num, attvalue
+                  Output += "&&VIRTUAL%" + attvalue         
+              endif
+            endif
+            NoAttr4: On_IoError, NULL
+           
+      endif else begin ; z-Variable
+
+;----------- Attributes & Dims for Z-vars -----------------------------   
+
+        info = cdf_varinq(cdfid, par_num, /Z)
+        if (n_elements(info.dimvar) GT 1) then begin
+              print, NODATA
+              return
+        endif
+
+        if (info.dimvar eq 0) then dim = 1 else dim = info.dim
+;----------  CDF data types to DD
+
+            case info.datatype of
+             "CDF_CHAR": datatype = 0; DD_CHAR
+             
+             "CDF_BYTE": datatype = 5;
+             "CDF_INT1": datatype = 5;
+             
+             "CDF_INT2": datatype = 4; DD_SHORT
+             "CDF_UCHAR": datatype = 4;
+             "CDF_UINT1": datatype = 4;
+             
+             "CDF_INT4": datatype = 1; DD_INT 
+             "CDF_UINT2": datatype = 1;
+
+             "CDF_FLOAT": datatype = 2; DD_FLOAT
+             "CDF_REAL4": datatype = 2; 
+
+             "CDF_DOUBLE": datatype = 3; DD_DOUBLE
+             "CDF_REAL8":  datatype = 3;
+             "CDF_UINT4":  datatype = 3;
+            end
+        Output += "&&DATATYPE%" + strcompress(string(datatype))+"&&DIMENSION%"+string(dim,format='(i3.3)')
+        On_IoError, NoAttrZ
+ 
+        for i = 0, N_elements(AttributesCommon)-1 do begin
+          if (cdf_attexists(cdfid, AttributesCommon[i])) then begin 
+             cdf_attget, cdfid, AttributesCommon[i], par_num, attvalue, /ZVARIABLE
+             Output +=  "&&"+strupcase(AttributesCommon[i])+"%" + strcompress(string(attvalue)) 
+           endif else Output += "&&"+strupcase(AttributesCommon[i])+NODATA
+            continue 
+            NoAttrZ: Output += "&&"+strupcase(AttributesCommon[i])+NODATA
+       endfor
+       
+          if (dim eq 1) then begin 
+              On_IoError, NoAttrZ1
+              cdf_attget, cdfid, AttributeScalar[0], par_num, attvalue, /ZVARIABLE
+              Output +=  "&&"+AttributeScalar[0]+"%" + strcompress(string(attvalue))  
+              GOTO, CONT1   
+              NoAttrZ1: Output += "&&"+AttributeScalar[0]+NODATA
+           endif else begin
+              On_IoError, NoAttrZ2
+              cdf_attget, cdfid, "LABL_PTR_1", par_num, attvalue, /ZVARIABLE
+              var_num = cdf_varnum(cdfid, attvalue, IsZvar)
+              temp=strarr(dim)
+              if (IsZVar) then  cdf_varget,cdfid, var_num, temp, /STRING, /ZVARIABLE $
+                   else cdf_varget,cdfid, var_num, temp, /STRING
+              labelOutput = ""
+              t_temp  = temp(uniq(temp))
+              for j = 0, N_elements(t_temp)-1 do labelOutput += string(t_temp[j])+"$"
+              Output +=  "&&LABLAXIS%" + strcompress(labelOutput)
+              GOTO, CONT1 
+              NoAttrZ2: 
+               On_IoError, NoAttrZ3
+                 cdf_attget, cdfid, "DEPEND_1", par_num, attvalue, /ZVARIABLE
+                 var_num = cdf_varnum(cdfid, attvalue, IsZvar)
+                 cdf_attget, cdfid, "LABL_PTR_1", var_num, attvalue, /ZVARIABLE
+                 var_num = cdf_varnum(cdfid, attvalue, IsZvar)
+                 temp=strarr(dim)
+                 if (IsZVar) then  cdf_varget,cdfid, var_num, temp, /STRING, /ZVARIABLE $
+                   else cdf_varget,cdfid, var_num, temp, /STRING
+                    labelOutput = ""
+                  t_temp  = temp(uniq(temp))  
+                  for j = 0, N_elements(t_temp)-1 do labelOutput += string(t_temp[j])+"$"
+                  Output +=  "&&LABLAXIS%" + strcompress(labelOutput)
+                  GOTO, CONT1 
+
+             NoAttrZ3: Output += "&&LABLAXIS"+NODATA
+           endelse
+            CONT1: On_IoError, NoAttrZ4  
+            if (cdf_attexists(cdfid, "VIRTUAL",/ZVARIABLE)) then begin
+              cdf_attget, cdfid, "VIRTUAL", par_num, attvalue, /ZVARIABLE
+              if (attvalue eq "TRUE") then begin
+                 cdf_attget, cdfid, "COMPONENT_0", par_num, attvalue, /ZVARIABLE
+                 Output += "&&VIRTUAL%" + attvalue               
+              endif
+            endif
+            NoAttrZ4: On_IoError, NULL  
+     endelse
+     cdf_close,cdfID
+     print, output
+    
+ return 
+ end
diff --git a/php/old_amda/simple_html_dom.php b/php/old_amda/simple_html_dom.php
new file mode 100755
index 0000000..fbe43df
--- /dev/null
+++ b/php/old_amda/simple_html_dom.php
@@ -0,0 +1,975 @@
+<?php
+/*******************************************************************************
+Version: 1.11 ($Rev: 175 $)
+Website: http://sourceforge.net/projects/simplehtmldom/
+Author: S.C. Chen <me578022@gmail.com>
+Acknowledge: Jose Solorzano (https://sourceforge.net/projects/php-html/)
+Contributions by:
+    Yousuke Kumakura (Attribute filters)
+    Vadim Voituk (Negative indexes supports of "find" method)
+    Antcs (Constructor with automatically load contents either text or file/url)
+Licensed under The MIT License
+Redistributions of files must retain the above copyright notice.
+*******************************************************************************/
+
+define('HDOM_TYPE_ELEMENT', 1);
+define('HDOM_TYPE_COMMENT', 2);
+define('HDOM_TYPE_TEXT',    3);
+define('HDOM_TYPE_ENDTAG',  4);
+define('HDOM_TYPE_ROOT',    5);
+define('HDOM_TYPE_UNKNOWN', 6);
+define('HDOM_QUOTE_DOUBLE', 0);
+define('HDOM_QUOTE_SINGLE', 1);
+define('HDOM_QUOTE_NO',     3);
+define('HDOM_INFO_BEGIN',   0);
+define('HDOM_INFO_END',     1);
+define('HDOM_INFO_QUOTE',   2);
+define('HDOM_INFO_SPACE',   3);
+define('HDOM_INFO_TEXT',    4);
+define('HDOM_INFO_INNER',   5);
+define('HDOM_INFO_OUTER',   6);
+define('HDOM_INFO_ENDSPACE',7);
+
+// helper functions
+// -----------------------------------------------------------------------------
+// get html dom form file
+function file_get_html() {
+    $dom = new simple_html_dom;
+    $args = func_get_args();
+    $dom->load(call_user_func_array('file_get_contents', $args), true);
+    return $dom;
+}
+
+// get html dom form string
+function str_get_html($str, $lowercase=true) {
+    $dom = new simple_html_dom;
+    $dom->load($str, $lowercase);
+    return $dom;
+}
+
+// dump html dom tree
+function dump_html_tree($node, $show_attr=true, $deep=0) {
+    $lead = str_repeat('    ', $deep);
+    echo $lead.$node->tag;
+    if ($show_attr && count($node->attr)>0) {
+        echo '(';
+        foreach($node->attr as $k=>$v)
+            echo "[$k]=>\"".$node->$k.'", ';
+        echo ')';
+    }
+    echo "\n";
+
+    foreach($node->nodes as $c)
+        dump_html_tree($c, $show_attr, $deep+1);
+}
+
+// get dom form file (deprecated)
+function file_get_dom() {
+    $dom = new simple_html_dom;
+    $args = func_get_args();
+    $dom->load(call_user_func_array('file_get_contents', $args), true);
+    return $dom;
+}
+
+// get dom form string (deprecated)
+function str_get_dom($str, $lowercase=true) {
+    $dom = new simple_html_dom;
+    $dom->load($str, $lowercase);
+    return $dom;
+}
+
+// simple html dom node
+// -----------------------------------------------------------------------------
+class simple_html_dom_node {
+    public $nodetype = HDOM_TYPE_TEXT;
+    public $tag = 'text';
+    public $attr = array();
+    public $children = array();
+    public $nodes = array();
+    public $parent = null;
+    public $_ = array();
+    private $dom = null;
+
+    function __construct($dom) {
+        $this->dom = $dom;
+        $dom->nodes[] = $this;
+    }
+
+    function __destruct() {
+        $this->clear();
+    }
+
+    function __toString() {
+        return $this->outertext();
+    }
+
+    // clean up memory due to php5 circular references memory leak...
+    function clear() {
+        $this->dom = null;
+        $this->nodes = null;
+        $this->parent = null;
+        $this->children = null;
+    }
+    
+    // dump node's tree
+    function dump($show_attr=true) {
+        dump_html_tree($this, $show_attr);
+    }
+
+    // returns the parent of node
+    function parent() {
+        return $this->parent;
+    }
+
+    // returns children of node
+    function children($idx=-1) {
+        if ($idx===-1) return $this->children;
+        if (isset($this->children[$idx])) return $this->children[$idx];
+        return null;
+    }
+
+    // returns the first child of node
+    function first_child() {
+        if (count($this->children)>0) return $this->children[0];
+        return null;
+    }
+
+    // returns the last child of node
+    function last_child() {
+        if (($count=count($this->children))>0) return $this->children[$count-1];
+        return null;
+    }
+
+    // returns the next sibling of node    
+    function next_sibling() {
+        if ($this->parent===null) return null;
+        $idx = 0;
+        $count = count($this->parent->children);
+        while ($idx<$count && $this!==$this->parent->children[$idx])
+            ++$idx;
+        if (++$idx>=$count) return null;
+        return $this->parent->children[$idx];
+    }
+
+    // returns the previous sibling of node
+    function prev_sibling() {
+        if ($this->parent===null) return null;
+        $idx = 0;
+        $count = count($this->parent->children);
+        while ($idx<$count && $this!==$this->parent->children[$idx])
+            ++$idx;
+        if (--$idx<0) return null;
+        return $this->parent->children[$idx];
+    }
+
+    // get dom node's inner html
+    function innertext() {
+        if (isset($this->_[HDOM_INFO_INNER])) return $this->_[HDOM_INFO_INNER];
+        if (isset($this->_[HDOM_INFO_TEXT])) return $this->dom->restore_noise($this->_[HDOM_INFO_TEXT]);
+
+        $ret = '';
+        foreach($this->nodes as $n)
+            $ret .= $n->outertext();
+        return $ret;
+    }
+
+    // get dom node's outer text (with tag)
+    function outertext() {
+        if ($this->tag==='root') return $this->innertext();
+
+        // trigger callback
+        if ($this->dom->callback!==null)
+            call_user_func_array($this->dom->callback, array($this));
+
+        if (isset($this->_[HDOM_INFO_OUTER])) return $this->_[HDOM_INFO_OUTER];
+        if (isset($this->_[HDOM_INFO_TEXT])) return $this->dom->restore_noise($this->_[HDOM_INFO_TEXT]);
+
+        // render begin tag
+        $ret = $this->dom->nodes[$this->_[HDOM_INFO_BEGIN]]->makeup();
+
+        // render inner text
+        if (isset($this->_[HDOM_INFO_INNER]))
+            $ret .= $this->_[HDOM_INFO_INNER];
+        else {
+            foreach($this->nodes as $n)
+                $ret .= $n->outertext();
+        }
+
+        // render end tag
+        if(isset($this->_[HDOM_INFO_END]) && $this->_[HDOM_INFO_END]!=0)
+            $ret .= '</'.$this->tag.'>';
+        return $ret;
+    }
+
+    // get dom node's plain text
+    function text() {
+        if (isset($this->_[HDOM_INFO_INNER])) return $this->_[HDOM_INFO_INNER];
+        switch ($this->nodetype) {
+            case HDOM_TYPE_TEXT: return $this->dom->restore_noise($this->_[HDOM_INFO_TEXT]);
+            case HDOM_TYPE_COMMENT: return '';
+            case HDOM_TYPE_UNKNOWN: return '';
+        }
+        if (strcasecmp($this->tag, 'script')===0) return '';
+        if (strcasecmp($this->tag, 'style')===0) return '';
+
+        $ret = '';
+        foreach($this->nodes as $n)
+            $ret .= $n->text();
+        return $ret;
+    }
+    
+    function xmltext() {
+        $ret = $this->innertext();
+        $ret = str_ireplace('<![CDATA[', '', $ret);
+        $ret = str_replace(']]>', '', $ret);
+        return $ret;
+    }
+
+    // build node's text with tag
+    function makeup() {
+        // text, comment, unknown
+        if (isset($this->_[HDOM_INFO_TEXT])) return $this->dom->restore_noise($this->_[HDOM_INFO_TEXT]);
+
+        $ret = '<'.$this->tag;
+        $i = -1;
+
+        foreach($this->attr as $key=>$val) {
+            ++$i;
+
+            // skip removed attribute
+            if ($val===null || $val===false)
+                continue;
+
+            $ret .= $this->_[HDOM_INFO_SPACE][$i][0];
+            //no value attr: nowrap, checked selected...
+            if ($val===true)
+                $ret .= $key;
+            else {
+                switch($this->_[HDOM_INFO_QUOTE][$i]) {
+                    case HDOM_QUOTE_DOUBLE: $quote = '"'; break;
+                    case HDOM_QUOTE_SINGLE: $quote = '\''; break;
+                    default: $quote = '';
+                }
+                $ret .= $key.$this->_[HDOM_INFO_SPACE][$i][1].'='.$this->_[HDOM_INFO_SPACE][$i][2].$quote.$val.$quote;
+            }
+        }
+        $ret = $this->dom->restore_noise($ret);
+        return $ret . $this->_[HDOM_INFO_ENDSPACE] . '>';
+    }
+
+    // find elements by css selector
+    function find($selector, $idx=null) {
+        $selectors = $this->parse_selector($selector);
+        if (($count=count($selectors))===0) return array();
+        $found_keys = array();
+
+        // find each selector
+        for ($c=0; $c<$count; ++$c) {
+            if (($levle=count($selectors[0]))===0) return array();
+            if (!isset($this->_[HDOM_INFO_BEGIN])) return array();
+
+            $head = array($this->_[HDOM_INFO_BEGIN]=>1);
+
+            // handle descendant selectors, no recursive!
+            for ($l=0; $l<$levle; ++$l) {
+                $ret = array();
+                foreach($head as $k=>$v) {
+                    $n = ($k===-1) ? $this->dom->root : $this->dom->nodes[$k];
+                    $n->seek($selectors[$c][$l], $ret);
+                }
+                $head = $ret;
+            }
+
+            foreach($head as $k=>$v) {
+                if (!isset($found_keys[$k]))
+                    $found_keys[$k] = 1;
+            }
+        }
+
+        // sort keys
+        ksort($found_keys);
+
+        $found = array();
+        foreach($found_keys as $k=>$v)
+            $found[] = $this->dom->nodes[$k];
+
+        // return nth-element or array
+        if (is_null($idx)) return $found;
+		else if ($idx<0) $idx = count($found) + $idx;
+        return (isset($found[$idx])) ? $found[$idx] : null;
+    }
+
+    // seek for given conditions
+    protected function seek($selector, &$ret) {
+        list($tag, $key, $val, $exp, $no_key) = $selector;
+
+        // xpath index
+        if ($tag && $key && is_numeric($key)) {
+            $count = 0;
+            foreach ($this->children as $c) {
+                if ($tag==='*' || $tag===$c->tag) {
+                    if (++$count==$key) {
+                        $ret[$c->_[HDOM_INFO_BEGIN]] = 1;
+                        return;
+                    }
+                }
+            } 
+            return;
+        }
+
+        $end = (!empty($this->_[HDOM_INFO_END])) ? $this->_[HDOM_INFO_END] : 0;
+        if ($end==0) {
+            $parent = $this->parent;
+            while (!isset($parent->_[HDOM_INFO_END]) && $parent!==null) {
+                $end -= 1;
+                $parent = $parent->parent;
+            }
+            $end += $parent->_[HDOM_INFO_END];
+        }
+
+        for($i=$this->_[HDOM_INFO_BEGIN]+1; $i<$end; ++$i) {
+            $node = $this->dom->nodes[$i];
+            $pass = true;
+
+            if ($tag==='*' && !$key) {
+                if (in_array($node, $this->children, true))
+                    $ret[$i] = 1;
+                continue;
+            }
+
+            // compare tag
+            if ($tag && $tag!=$node->tag && $tag!=='*') {$pass=false;}
+            // compare key
+            if ($pass && $key) {
+                if ($no_key) {
+                    if (isset($node->attr[$key])) $pass=false;
+                }
+                else if (!isset($node->attr[$key])) $pass=false;
+            }
+            // compare value
+            if ($pass && $key && $val  && $val!=='*') {
+                $check = $this->match($exp, $val, $node->attr[$key]);
+                // handle multiple class
+                if (!$check && strcasecmp($key, 'class')===0) {
+                    foreach(explode(' ',$node->attr[$key]) as $k) {
+                        $check = $this->match($exp, $val, $k);
+                        if ($check) break;
+                    }
+                }
+                if (!$check) $pass = false;
+            }
+            if ($pass) $ret[$i] = 1;
+            unset($node);
+        }
+    }
+
+    protected function match($exp, $pattern, $value) {
+        switch ($exp) {
+            case '=':
+                return ($value===$pattern);
+            case '!=':
+                return ($value!==$pattern);
+            case '^=':
+                return preg_match("/^".preg_quote($pattern,'/')."/", $value);
+            case '$=':
+                return preg_match("/".preg_quote($pattern,'/')."$/", $value);
+            case '*=':
+                if ($pattern[0]=='/')
+                    return preg_match($pattern, $value);
+                return preg_match("/".$pattern."/i", $value);
+        }
+        return false;
+    }
+
+    protected function parse_selector($selector_string) {
+        // pattern of CSS selectors, modified from mootools
+        $pattern = "/([\w-:\*]*)(?:\#([\w-]+)|\.([\w-]+))?(?:\[@?(!?[\w-]+)(?:([!*^$]?=)[\"']?(.*?)[\"']?)?\])?([\/, ]+)/is";
+        preg_match_all($pattern, trim($selector_string).' ', $matches, PREG_SET_ORDER);
+        $selectors = array();
+        $result = array();
+        //print_r($matches);
+
+        foreach ($matches as $m) {
+            $m[0] = trim($m[0]);
+            if ($m[0]==='' || $m[0]==='/' || $m[0]==='//') continue;
+            // for borwser grnreated xpath
+            if ($m[1]==='tbody') continue;
+
+            list($tag, $key, $val, $exp, $no_key) = array($m[1], null, null, '=', false);
+            if(!empty($m[2])) {$key='id'; $val=$m[2];}
+            if(!empty($m[3])) {$key='class'; $val=$m[3];}
+            if(!empty($m[4])) {$key=$m[4];}
+            if(!empty($m[5])) {$exp=$m[5];}
+            if(!empty($m[6])) {$val=$m[6];}
+
+            // convert to lowercase
+            if ($this->dom->lowercase) {$tag=strtolower($tag); $key=strtolower($key);}
+            //elements that do NOT have the specified attribute
+            if (isset($key[0]) && $key[0]==='!') {$key=substr($key, 1); $no_key=true;}
+
+            $result[] = array($tag, $key, $val, $exp, $no_key);
+            if (trim($m[7])===',') {
+                $selectors[] = $result;
+                $result = array();
+            }
+        }
+        if (count($result)>0)
+            $selectors[] = $result;
+        return $selectors;
+    }
+
+    function __get($name) {
+        if (isset($this->attr[$name])) return $this->attr[$name];
+        switch($name) {
+            case 'outertext': return $this->outertext();
+            case 'innertext': return $this->innertext();
+            case 'plaintext': return $this->text();
+            case 'xmltext': return $this->xmltext();
+            default: return array_key_exists($name, $this->attr);
+        }
+    }
+
+    function __set($name, $value) {
+        switch($name) {
+            case 'outertext': return $this->_[HDOM_INFO_OUTER] = $value;
+            case 'innertext':
+                if (isset($this->_[HDOM_INFO_TEXT])) return $this->_[HDOM_INFO_TEXT] = $value;
+                return $this->_[HDOM_INFO_INNER] = $value;
+        }
+        if (!isset($this->attr[$name])) {
+            $this->_[HDOM_INFO_SPACE][] = array(' ', '', ''); 
+            $this->_[HDOM_INFO_QUOTE][] = HDOM_QUOTE_DOUBLE;
+        }
+        $this->attr[$name] = $value;
+    }
+
+    function __isset($name) {
+        switch($name) {
+            case 'outertext': return true;
+            case 'innertext': return true;
+            case 'plaintext': return true;
+        }
+        //no value attr: nowrap, checked selected...
+        return (array_key_exists($name, $this->attr)) ? true : isset($this->attr[$name]);
+    }
+
+    function __unset($name) {
+        if (isset($this->attr[$name]))
+            unset($this->attr[$name]);
+    }
+
+    // camel naming conventions
+    function getAllAttributes() {return $this->attr;}
+    function getAttribute($name) {return $this->__get($name);}
+    function setAttribute($name, $value) {$this->__set($name, $value);}
+    function hasAttribute($name) {return $this->__isset($name);}
+    function removeAttribute($name) {$this->__set($name, null);}
+    function getElementById($id) {return $this->find("#$id", 0);}
+    function getElementsById($id, $idx=null) {return $this->find("#$id", $idx);}
+    function getElementByTagName($name) {return $this->find($name, 0);}
+    function getElementsByTagName($name, $idx=null) {return $this->find($name, $idx);}
+    function parentNode() {return $this->parent();}
+    function childNodes($idx=-1) {return $this->children($idx);}
+    function firstChild() {return $this->first_child();}
+    function lastChild() {return $this->last_child();}
+    function nextSibling() {return $this->next_sibling();}
+    function previousSibling() {return $this->prev_sibling();}
+}
+
+// simple html dom parser
+// -----------------------------------------------------------------------------
+class simple_html_dom {
+    public $root = null;
+    public $nodes = array();
+    public $callback = null;
+    public $lowercase = false;
+    protected $pos;
+    protected $doc;
+    protected $char;
+    protected $size;
+    protected $cursor;
+    protected $parent;
+    protected $noise = array();
+    protected $token_blank = " \t\r\n";
+    protected $token_equal = ' =/>';
+    protected $token_slash = " />\r\n\t";
+    protected $token_attr = ' >';
+    // use isset instead of in_array, performance boost about 30%...
+    protected $self_closing_tags = array('img'=>1, 'br'=>1, 'input'=>1, 'meta'=>1, 'link'=>1, 'hr'=>1, 'base'=>1, 'embed'=>1, 'spacer'=>1);
+    protected $block_tags = array('root'=>1, 'body'=>1, 'form'=>1, 'div'=>1, 'span'=>1, 'table'=>1);
+    protected $optional_closing_tags = array(
+        'tr'=>array('tr'=>1, 'td'=>1, 'th'=>1),
+        'th'=>array('th'=>1),
+        'td'=>array('td'=>1),
+        'li'=>array('li'=>1),
+        'dt'=>array('dt'=>1, 'dd'=>1),
+        'dd'=>array('dd'=>1, 'dt'=>1),
+        'dl'=>array('dd'=>1, 'dt'=>1),
+        'p'=>array('p'=>1),
+        'nobr'=>array('nobr'=>1),
+    );
+
+    function __construct($str=null) {
+        if ($str) {
+            if (preg_match("/^http:\/\//i",$str) || is_file($str)) 
+                $this->load_file($str); 
+            else
+                $this->load($str);
+        }
+    }
+
+    function __destruct() {
+        $this->clear();
+    }
+
+    // load html from string
+    function load($str, $lowercase=true) {
+        // prepare
+        $this->prepare($str, $lowercase);
+        // strip out comments
+        $this->remove_noise("'<!--(.*?)-->'is");
+        // strip out cdata
+        $this->remove_noise("'<!\[CDATA\[(.*?)\]\]>'is", true);
+        // strip out <style> tags
+        $this->remove_noise("'<\s*style[^>]*[^/]>(.*?)<\s*/\s*style\s*>'is");
+        $this->remove_noise("'<\s*style\s*>(.*?)<\s*/\s*style\s*>'is");
+        // strip out <script> tags
+        $this->remove_noise("'<\s*script[^>]*[^/]>(.*?)<\s*/\s*script\s*>'is");
+        $this->remove_noise("'<\s*script\s*>(.*?)<\s*/\s*script\s*>'is");
+        // strip out preformatted tags
+        $this->remove_noise("'<\s*(?:code)[^>]*>(.*?)<\s*/\s*(?:code)\s*>'is");
+        // strip out server side scripts
+        $this->remove_noise("'(<\?)(.*?)(\?>)'s", true);
+        // strip smarty scripts
+        $this->remove_noise("'(\{\w)(.*?)(\})'s", true);
+
+        // parsing
+        while ($this->parse());
+        // end
+        $this->root->_[HDOM_INFO_END] = $this->cursor;
+    }
+
+    // load html from file
+    function load_file() {
+        $args = func_get_args();
+        $this->load(call_user_func_array('file_get_contents', $args), true);
+    }
+
+    // set callback function
+    function set_callback($function_name) {
+        $this->callback = $function_name;
+    }
+
+    // remove callback function
+    function remove_callback() {
+        $this->callback = null;
+    }
+
+    // save dom as string
+    function save($filepath='') {
+        $ret = $this->root->innertext();
+        if ($filepath!=='') file_put_contents($filepath, $ret);
+        return $ret;
+    }
+
+    // find dom node by css selector
+    function find($selector, $idx=null) {
+        return $this->root->find($selector, $idx);
+    }
+
+    // clean up memory due to php5 circular references memory leak...
+    function clear() {
+        foreach($this->nodes as $n) {$n->clear(); $n = null;}
+        if (isset($this->parent)) {$this->parent->clear(); unset($this->parent);}
+        if (isset($this->root)) {$this->root->clear(); unset($this->root);}
+        unset($this->doc);
+        unset($this->noise);
+    }
+    
+    function dump($show_attr=true) {
+        $this->root->dump($show_attr);
+    }
+
+    // prepare HTML data and init everything
+    protected function prepare($str, $lowercase=true) {
+        $this->clear();
+        $this->doc = $str;
+        $this->pos = 0;
+        $this->cursor = 1;
+        $this->noise = array();
+        $this->nodes = array();
+        $this->lowercase = $lowercase;
+        $this->root = new simple_html_dom_node($this);
+        $this->root->tag = 'root';
+        $this->root->_[HDOM_INFO_BEGIN] = -1;
+        $this->root->nodetype = HDOM_TYPE_ROOT;
+        $this->parent = $this->root;
+        // set the length of content
+        $this->size = strlen($str);
+        if ($this->size>0) $this->char = $this->doc[0];
+    }
+
+    // parse html content
+    protected function parse() {
+        if (($s = $this->copy_until_char('<'))==='')
+            return $this->read_tag();
+
+        // text
+        $node = new simple_html_dom_node($this);
+        ++$this->cursor;
+        $node->_[HDOM_INFO_TEXT] = $s;
+        $this->link_nodes($node, false);
+        return true;
+    }
+
+    // read tag info
+    protected function read_tag() {
+        if ($this->char!=='<') {
+            $this->root->_[HDOM_INFO_END] = $this->cursor;
+            return false;
+        }
+        $begin_tag_pos = $this->pos;
+        $this->char = (++$this->pos<$this->size) ? $this->doc[$this->pos] : null; // next
+
+        // end tag
+        if ($this->char==='/') {
+            $this->char = (++$this->pos<$this->size) ? $this->doc[$this->pos] : null; // next
+            $this->skip($this->token_blank_t);
+            $tag = $this->copy_until_char('>');
+
+            // skip attributes in end tag
+            if (($pos = strpos($tag, ' '))!==false)
+                $tag = substr($tag, 0, $pos);
+
+            $parent_lower = strtolower($this->parent->tag);
+            $tag_lower = strtolower($tag);
+
+            if ($parent_lower!==$tag_lower) {
+                if (isset($this->optional_closing_tags[$parent_lower]) && isset($this->block_tags[$tag_lower])) {
+                    $this->parent->_[HDOM_INFO_END] = 0;
+                    $org_parent = $this->parent;
+
+                    while (($this->parent->parent) && strtolower($this->parent->tag)!==$tag_lower)
+                        $this->parent = $this->parent->parent;
+
+                    if (strtolower($this->parent->tag)!==$tag_lower) {
+                        $this->parent = $org_parent; // restore origonal parent
+                        if ($this->parent->parent) $this->parent = $this->parent->parent;
+                        $this->parent->_[HDOM_INFO_END] = $this->cursor;
+                        return $this->as_text_node($tag);
+                    }
+                }
+                else if (($this->parent->parent) && isset($this->block_tags[$tag_lower])) {
+                    $this->parent->_[HDOM_INFO_END] = 0;
+                    $org_parent = $this->parent;
+
+                    while (($this->parent->parent) && strtolower($this->parent->tag)!==$tag_lower)
+                        $this->parent = $this->parent->parent;
+
+                    if (strtolower($this->parent->tag)!==$tag_lower) {
+                        $this->parent = $org_parent; // restore origonal parent
+                        $this->parent->_[HDOM_INFO_END] = $this->cursor;
+                        return $this->as_text_node($tag);
+                    }
+                }
+                else if (($this->parent->parent) && strtolower($this->parent->parent->tag)===$tag_lower) {
+                    $this->parent->_[HDOM_INFO_END] = 0;
+                    $this->parent = $this->parent->parent;
+                }
+                else
+                    return $this->as_text_node($tag);
+            }
+
+            $this->parent->_[HDOM_INFO_END] = $this->cursor;
+            if ($this->parent->parent) $this->parent = $this->parent->parent;
+
+            $this->char = (++$this->pos<$this->size) ? $this->doc[$this->pos] : null; // next
+            return true;
+        }
+
+        $node = new simple_html_dom_node($this);
+        $node->_[HDOM_INFO_BEGIN] = $this->cursor;
+        ++$this->cursor;
+        $tag = $this->copy_until($this->token_slash);
+
+        // doctype, cdata & comments...
+        if (isset($tag[0]) && $tag[0]==='!') {
+            $node->_[HDOM_INFO_TEXT] = '<' . $tag . $this->copy_until_char('>');
+
+            if (isset($tag[2]) && $tag[1]==='-' && $tag[2]==='-') {
+                $node->nodetype = HDOM_TYPE_COMMENT;
+                $node->tag = 'comment';
+            } else {
+                $node->nodetype = HDOM_TYPE_UNKNOWN;
+                $node->tag = 'unknown';
+            }
+
+            if ($this->char==='>') $node->_[HDOM_INFO_TEXT].='>';
+            $this->link_nodes($node, true);
+            $this->char = (++$this->pos<$this->size) ? $this->doc[$this->pos] : null; // next
+            return true;
+        }
+
+        // text
+        if ($pos=strpos($tag, '<')!==false) {
+            $tag = '<' . substr($tag, 0, -1);
+            $node->_[HDOM_INFO_TEXT] = $tag;
+            $this->link_nodes($node, false);
+            $this->char = $this->doc[--$this->pos]; // prev
+            return true;
+        }
+
+        if (!preg_match("/^[\w-:]+$/", $tag)) {
+            $node->_[HDOM_INFO_TEXT] = '<' . $tag . $this->copy_until('<>');
+            if ($this->char==='<') {
+                $this->link_nodes($node, false);
+                return true;
+            }
+
+            if ($this->char==='>') $node->_[HDOM_INFO_TEXT].='>';
+            $this->link_nodes($node, false);
+            $this->char = (++$this->pos<$this->size) ? $this->doc[$this->pos] : null; // next
+            return true;
+        }
+
+        // begin tag
+        $node->nodetype = HDOM_TYPE_ELEMENT;
+        $tag_lower = strtolower($tag);
+        $node->tag = ($this->lowercase) ? $tag_lower : $tag;
+
+        // handle optional closing tags
+        if (isset($this->optional_closing_tags[$tag_lower]) ) {
+            while (isset($this->optional_closing_tags[$tag_lower][strtolower($this->parent->tag)])) {
+                $this->parent->_[HDOM_INFO_END] = 0;
+                $this->parent = $this->parent->parent;
+            }
+            $node->parent = $this->parent;
+        }
+
+        $guard = 0; // prevent infinity loop
+        $space = array($this->copy_skip($this->token_blank), '', '');
+
+        // attributes
+        do {
+            if ($this->char!==null && $space[0]==='') break;
+            $name = $this->copy_until($this->token_equal);
+            if($guard===$this->pos) {
+                $this->char = (++$this->pos<$this->size) ? $this->doc[$this->pos] : null; // next
+                continue;
+            }
+            $guard = $this->pos;
+
+            // handle endless '<'
+            if($this->pos>=$this->size-1 && $this->char!=='>') {
+                $node->nodetype = HDOM_TYPE_TEXT;
+                $node->_[HDOM_INFO_END] = 0;
+                $node->_[HDOM_INFO_TEXT] = '<'.$tag . $space[0] . $name;
+                $node->tag = 'text';
+                $this->link_nodes($node, false);
+                return true;
+            }
+
+            // handle mismatch '<'
+            if($this->doc[$this->pos-1]=='<') {
+                $node->nodetype = HDOM_TYPE_TEXT;
+                $node->tag = 'text';
+                $node->attr = array();
+                $node->_[HDOM_INFO_END] = 0;
+                $node->_[HDOM_INFO_TEXT] = substr($this->doc, $begin_tag_pos, $this->pos-$begin_tag_pos-1);
+                $this->pos -= 2;
+                $this->char = (++$this->pos<$this->size) ? $this->doc[$this->pos] : null; // next
+                $this->link_nodes($node, false);
+                return true;
+            }
+
+            if ($name!=='/' && $name!=='') {
+                $space[1] = $this->copy_skip($this->token_blank);
+                $name = $this->restore_noise($name);
+                if ($this->lowercase) $name = strtolower($name);
+                if ($this->char==='=') {
+                    $this->char = (++$this->pos<$this->size) ? $this->doc[$this->pos] : null; // next
+                    $this->parse_attr($node, $name, $space);
+                }
+                else {
+                    //no value attr: nowrap, checked selected...
+                    $node->_[HDOM_INFO_QUOTE][] = HDOM_QUOTE_NO;
+                    $node->attr[$name] = true;
+                    if ($this->char!='>') $this->char = $this->doc[--$this->pos]; // prev
+                }
+                $node->_[HDOM_INFO_SPACE][] = $space;
+                $space = array($this->copy_skip($this->token_blank), '', '');
+            }
+            else
+                break;
+        } while($this->char!=='>' && $this->char!=='/');
+
+        $this->link_nodes($node, true);
+        $node->_[HDOM_INFO_ENDSPACE] = $space[0];
+
+        // check self closing
+        if ($this->copy_until_char_escape('>')==='/') {
+            $node->_[HDOM_INFO_ENDSPACE] .= '/';
+            $node->_[HDOM_INFO_END] = 0;
+        }
+        else {
+            // reset parent
+            if (!isset($this->self_closing_tags[strtolower($node->tag)])) $this->parent = $node;
+        }
+        $this->char = (++$this->pos<$this->size) ? $this->doc[$this->pos] : null; // next
+        return true;
+    }
+
+    // parse attributes
+    protected function parse_attr($node, $name, &$space) {
+        $space[2] = $this->copy_skip($this->token_blank);
+        switch($this->char) {
+            case '"':
+                $node->_[HDOM_INFO_QUOTE][] = HDOM_QUOTE_DOUBLE;
+                $this->char = (++$this->pos<$this->size) ? $this->doc[$this->pos] : null; // next
+                $node->attr[$name] = $this->restore_noise($this->copy_until_char_escape('"'));
+                $this->char = (++$this->pos<$this->size) ? $this->doc[$this->pos] : null; // next
+                break;
+            case '\'':
+                $node->_[HDOM_INFO_QUOTE][] = HDOM_QUOTE_SINGLE;
+                $this->char = (++$this->pos<$this->size) ? $this->doc[$this->pos] : null; // next
+                $node->attr[$name] = $this->restore_noise($this->copy_until_char_escape('\''));
+                $this->char = (++$this->pos<$this->size) ? $this->doc[$this->pos] : null; // next
+                break;
+            default:
+                $node->_[HDOM_INFO_QUOTE][] = HDOM_QUOTE_NO;
+                $node->attr[$name] = $this->restore_noise($this->copy_until($this->token_attr));
+        }
+    }
+
+    // link node's parent
+    protected function link_nodes(&$node, $is_child) {
+        $node->parent = $this->parent;
+        $this->parent->nodes[] = $node;
+        if ($is_child)
+            $this->parent->children[] = $node;
+    }
+
+    // as a text node
+    protected function as_text_node($tag) {
+        $node = new simple_html_dom_node($this);
+        ++$this->cursor;
+        $node->_[HDOM_INFO_TEXT] = '</' . $tag . '>';
+        $this->link_nodes($node, false);
+        $this->char = (++$this->pos<$this->size) ? $this->doc[$this->pos] : null; // next
+        return true;
+    }
+
+    protected function skip($chars) {
+        $this->pos += strspn($this->doc, $chars, $this->pos);
+        $this->char = ($this->pos<$this->size) ? $this->doc[$this->pos] : null; // next
+    }
+
+    protected function copy_skip($chars) {
+        $pos = $this->pos;
+        $len = strspn($this->doc, $chars, $pos);
+        $this->pos += $len;
+        $this->char = ($this->pos<$this->size) ? $this->doc[$this->pos] : null; // next
+        if ($len===0) return '';
+        return substr($this->doc, $pos, $len);
+    }
+
+    protected function copy_until($chars) {
+        $pos = $this->pos;
+        $len = strcspn($this->doc, $chars, $pos);
+        $this->pos += $len;
+        $this->char = ($this->pos<$this->size) ? $this->doc[$this->pos] : null; // next
+        return substr($this->doc, $pos, $len);
+    }
+
+    protected function copy_until_char($char) {
+        if ($this->char===null) return '';
+
+        if (($pos = strpos($this->doc, $char, $this->pos))===false) {
+            $ret = substr($this->doc, $this->pos, $this->size-$this->pos);
+            $this->char = null;
+            $this->pos = $this->size;
+            return $ret;
+        }
+
+        if ($pos===$this->pos) return '';
+        $pos_old = $this->pos;
+        $this->char = $this->doc[$pos];
+        $this->pos = $pos;
+        return substr($this->doc, $pos_old, $pos-$pos_old);
+    }
+
+    protected function copy_until_char_escape($char) {
+        if ($this->char===null) return '';
+
+        $start = $this->pos;
+        while(1) {
+            if (($pos = strpos($this->doc, $char, $start))===false) {
+                $ret = substr($this->doc, $this->pos, $this->size-$this->pos);
+                $this->char = null;
+                $this->pos = $this->size;
+                return $ret;
+            }
+
+            if ($pos===$this->pos) return '';
+
+            if ($this->doc[$pos-1]==='\\') {
+                $start = $pos+1;
+                continue;
+            }
+
+            $pos_old = $this->pos;
+            $this->char = $this->doc[$pos];
+            $this->pos = $pos;
+            return substr($this->doc, $pos_old, $pos-$pos_old);
+        }
+    }
+
+    // remove noise from html content
+    protected function remove_noise($pattern, $remove_tag=false) {
+        $count = preg_match_all($pattern, $this->doc, $matches, PREG_SET_ORDER|PREG_OFFSET_CAPTURE);
+
+        for ($i=$count-1; $i>-1; --$i) {
+            $key = '___noise___'.sprintf('% 3d', count($this->noise)+100);
+            $idx = ($remove_tag) ? 0 : 1;
+            $this->noise[$key] = $matches[$i][$idx][0];
+            $this->doc = substr_replace($this->doc, $key, $matches[$i][$idx][1], strlen($matches[$i][$idx][0]));
+        }
+
+        // reset the length of content
+        $this->size = strlen($this->doc);
+        if ($this->size>0) $this->char = $this->doc[0];
+    }
+
+    // restore noise to html content
+    function restore_noise($text) {
+        while(($pos=strpos($text, '___noise___'))!==false) {
+            $key = '___noise___'.$text[$pos+11].$text[$pos+12].$text[$pos+13];
+            if (isset($this->noise[$key]))
+                $text = substr($text, 0, $pos).$this->noise[$key].substr($text, $pos+14);
+        }
+        return $text;
+    }
+
+    function __toString() {
+        return $this->root->innertext();
+    }
+
+    function __get($name) {
+        switch($name) {
+            case 'outertext': return $this->root->innertext();
+            case 'innertext': return $this->root->innertext();
+            case 'plaintext': return $this->root->text();
+        }
+    }
+
+    // camel naming conventions
+    function childNodes($idx=-1) {return $this->root->childNodes($idx);}
+    function firstChild() {return $this->root->first_child();}
+    function lastChild() {return $this->root->last_child();}
+    function getElementById($id) {return $this->find("#$id", 0);}
+    function getElementsById($id, $idx=null) {return $this->find("#$id", $idx);}
+    function getElementByTagName($name) {return $this->find($name, 0);}
+    function getElementsByTagName($name, $idx=-1) {return $this->find($name, $idx);}
+    function loadFile() {$args = func_get_args();$this->load(call_user_func_array('file_get_contents', $args), true);}
+}
+?>
\ No newline at end of file
diff --git a/php/rest/asciiURL_to_votableURL.php b/php/rest/asciiURL_to_votableURL.php
new file mode 100644
index 0000000..0dbd52c
--- /dev/null
+++ b/php/rest/asciiURL_to_votableURL.php
@@ -0,0 +1,168 @@
+<?php
+// ------------------------------------------------------------------------------
+// A php script which reads an ascii data file and converts it into VOTable file
+//
+// Usage from command line:
+//     php asciiURL_to_votableURL.php asciiURL
+//             asciiURL    url of the ascii file
+//
+// Usage from browser:
+//     http://impex-fp7.fmi.fi/ws/asciiURL_to_votableURL.php?asciiURL
+//             asciiURL    url of the ascii file
+//
+// The script returns the url of the created VOTable file.
+//
+// This script is written for handling ascii data files (from Cluster) provided
+// by Vincent Genot. It makes assumptions about the format of data in the ascii
+// file so it is probably not suitable for handling other ascii files.
+// ------------------------------------------------------------------------------
+
+// -----------------------------------
+// Get the URL of the ascii data file
+// -----------------------------------
+
+if (isset($_GET['url'])) {	// For html calls
+    $url_ascii = $_GET['url'];
+} else {					// For command line
+	if (!isset($argv[1])) die("No url given" . "\n");
+    $url_ascii = $argv[1];
+}
+
+
+// --------------------------------
+// Read the ascii file into memory
+// --------------------------------
+
+$opts = array(
+	'http'=>array(
+		'method'=>"GET",
+		'header'=>"Accept: text/html;\r\nAccept-language: en\r\n",
+		'user_agent' => 'FMI web service'
+	)
+);
+$context = stream_context_create($opts);
+
+$ascii_file = file_get_contents($url_ascii, false, $context);
+if ($ascii_file === false) die("Could not read url " . $url_ascii . "\n");
+
+
+// -------------------------------------------------
+// A simple test that this is indeed our data file:
+// Must start with '# ' string.
+// -------------------------------------------------
+
+if (substr($ascii_file,0,2) !== "# ") die("Ascii file not in proper format " . "\n");
+
+// ------------------------------------------------------
+// Define input parameter array for getVOTableURL method
+// ------------------------------------------------------
+
+$params = array(
+	'Table_name'  => $url_ascii,
+	'Description' => "",
+	'Fields' => array()
+);
+
+
+// -------------------------------------------------------------------
+// Go through the file line by line and extract field names and data
+// -------------------------------------------------------------------
+
+$ascii_table = preg_split("/[\n]+/", $ascii_file);		// Split the ascii file into an array of lines
+
+$First = true;	// Flag for detecting the first non-comment line (= line with field names)
+
+foreach($ascii_table as $line) {
+	// Store comment lines into VOT table description
+	// Comment lines start with character '#'
+
+	if (substr($line,0,1) == "#") {
+		$params['Description'] .= $line . "\n";
+		continue;
+	}
+
+	// If first non-comment line read field names and units. The line content is something like:
+	// it year mo dy hr mn sc msc X Y Z rho ux uy uz Bx(nT) By(nT) Bz(nT) p jx jy jz
+
+	if ($First) {
+		$Field_list = preg_split("/[\s,]+/", trim($line));	// Create an array of field names
+		foreach($Field_list as $field) {
+			$params['Fields'][] = array();			// Create a new associative array for this field
+			$index = count($params['Fields']) - 1;
+
+			// Get name and possible unit (included in parenthesis)
+			preg_match("/([^(]+)[(]*([^)]*)[)]*$/", $field, $matches);
+			$params['Fields'][$index]['name'] = $matches[1];
+			$params['Fields'][$index]['unit'] = $matches[2];	// unit string is "" if no unit defined
+			// Set the datatype attribute. Otherwise Topcat won't recognize the variable
+			if (in_array($matches[1], array('it','year','mo','dy','hr','mn','sc','msc')))
+				$params['Fields'][$index]['datatype'] = 'int';
+			else
+				$params['Fields'][$index]['datatype'] = 'float';
+
+			$params['Fields'][$index]['data'] = array();	// Define the array for data values
+		}
+		$First = false;
+		continue;
+	}
+
+	// Read data line
+	$i = 0;
+	$Value_list = preg_split("/[\s,]+/", trim($line));	// Make an array of data values in this line
+	foreach($Value_list as $value) {
+		$params['Fields'][$i++]['data'][] = $value;		// Add the data value into field's data array
+	}
+}
+
+// ---------------------------------------
+// Add the time column in ISO8601 format.
+// ---------------------------------------
+
+// First try to locate the data arrays for year, mo, dy, hr, mn, sc and msc columns
+foreach($params['Fields'] as $field) {
+	if ($field['name'] == 'year') $year_data = $field['data'];
+	if ($field['name'] == 'mo')   $mo_data = $field['data'];
+	if ($field['name'] == 'dy')   $dy_data = $field['data'];
+	if ($field['name'] == 'hr')   $hr_data = $field['data'];
+	if ($field['name'] == 'mn')   $mn_data = $field['data'];
+	if ($field['name'] == 'sc')   $sc_data = $field['data'];
+	if ($field['name'] == 'msc')  $msc_data = $field['data'];
+}
+
+// If all date arrays are found then create the date string in ISO8601 format
+if (isset($year_data) and isset($mo_data) and isset($dy_data) and isset($hr_data) and isset($mn_data) and isset($sc_data) and isset($msc_data)) {
+	$params['Fields'][] = array();					// Add new field to $params array
+	$index = count($params['Fields']) - 1;			// Index of the new field
+	$params['Fields'][$index]['name'] = 'Time';		// Set the name to 'Time'
+	$params['Fields'][$index]['data'] = array();	// Create array for data values
+	for ($i = 0; $i < count($year_data); $i++) {	// Fill the data array
+		$time_stamp = gmmktime($hr_data[$i], $mn_data[$i], $sc_data[$i], $mo_data[$i], $dy_data[$i], $year_data[$i]);
+		$time_str = gmdate("Y-m-d\TH:i:s", $time_stamp) . "." . substr("000" . $msc_data[$i],-3);
+		$params['Fields'][$index]['data'][] = $time_str;	// Add the value to the end of the data table
+	}
+}
+
+// -------------------------------------------------------------------------
+// More computable quantities (e.g. Btot, Utot) may be added here similarly 
+// -------------------------------------------------------------------------
+
+
+// -----------------------------------------------------------------------------------------------
+// Finally call the getVOTableURL method to create a VOTtable file and store it into FMI's server
+// -----------------------------------------------------------------------------------------------
+
+$methods_file = "http://impex-fp7.fmi.fi/ws/Methods_FMI.wsdl";
+$client = new SoapClient($methods_file);
+
+try {
+	$data_url = $client->getVOTableURL($params);
+}
+catch (Exception $e) {
+	echo "Error : <br />";
+	echo $e->getMessage();
+	exit();
+}
+
+echo $data_url . "\n";
+
+?>
diff --git a/php/rest/getDatasetData.php b/php/rest/getDatasetData.php
new file mode 100755
index 0000000..632587c
--- /dev/null
+++ b/php/rest/getDatasetData.php
@@ -0,0 +1,38 @@
+<?php
+/** 
+*   @file getParameter.php 
+*   @brief  REST interface for service getParameter
+*
+*   
+*   @version $Id:  $ 
+*/
+  ini_set("allow_url_fopen", true);
+  require_once '../config.php';
+
+  $amda_ws = new WebServer();
+  $result = $amda_ws->getDataset($_GET);
+
+  if ($result['success']){
+      $file = str_replace("http://oberoi.cesr.fr/AMDA-WS/",BASE_PATH ,$result['dataFileURLs']);
+
+      if ($file){
+// 	header('Content-type: text/xml');
+//         $contenu = file_get_contents($file); 
+// error_log($contenu,3,'/home/natacha/TMP/tmp.xml');        
+// 	echo $contenu; 
+	
+header('Content-type: text/xml');	
+$doc = new DOMDocument();
+$doc->load($file);
+echo $doc->saveXML();
+	
+
+      }
+    }
+    else {
+      $success = "false";
+      echo '<?xml version="1.0" encoding="UTF-8"?><getParameterResponse>';
+      echo '<success>'.$success.'</success>';
+      echo '<message>'.$result['message'].'</message></getParameterResponse>';  
+    }
+?>
diff --git a/php/rest/getObsDataTree.php b/php/rest/getObsDataTree.php
new file mode 100644
index 0000000..973fde2
--- /dev/null
+++ b/php/rest/getObsDataTree.php
@@ -0,0 +1,24 @@
+<?php
+  
+/** 
+*   @file getObsDataTree.php 
+*   @brief  REST interface for service getObsDataTree
+*
+*   
+*   @version $Id:  $ 
+*/
+
+  require_once '../config.php';
+
+  $amda_ws = new WebServer();
+  $result = $amda_ws->getObsDataTree($_GET);
+
+   if ($result['WorkSpace']){
+      foreach($result['WorkSpace'] as $key => $value) {
+	echo "<$key>$value</$key>";
+      }
+    }
+    else {
+      echo $result['message']; 
+    }
+?>
diff --git a/php/rest/getOrbites.php b/php/rest/getOrbites.php
new file mode 100644
index 0000000..c0c7408
--- /dev/null
+++ b/php/rest/getOrbites.php
@@ -0,0 +1,23 @@
+<?php
+  
+/** 
+*   @file getParameter.php 
+*   @brief  REST interface for service getParameter
+*
+*   
+*   @version $Id:  $ 
+*/
+
+  require_once '../config.php';
+
+  $amda_ws = new WebServer();
+  $result = $amda_ws->getOrbites($_GET);
+
+ if ($result['success']){
+	echo $result['dataFileURLs'];
+   }
+    else {
+     echo $result['message'];  
+    }
+
+?>
\ No newline at end of file
diff --git a/php/rest/getParameter.php b/php/rest/getParameter.php
new file mode 100644
index 0000000..fbd86de
--- /dev/null
+++ b/php/rest/getParameter.php
@@ -0,0 +1,23 @@
+<?php
+  
+/** 
+*   @file getParameter.php 
+*   @brief  REST interface for service getParameter
+*
+*   
+*   @version $Id:  $ 
+*/
+
+  require_once '../config.php';
+
+  $amda_ws = new WebServer();
+  $result = $amda_ws->getParameter($_GET);
+
+ if ($result['success']){
+	echo $result['dataFileURLs'];
+   }
+    else {
+     echo $result['message'];  
+    }
+
+?>
\ No newline at end of file
diff --git a/php/rest/getParameterList.php b/php/rest/getParameterList.php
new file mode 100644
index 0000000..27ac1d6
--- /dev/null
+++ b/php/rest/getParameterList.php
@@ -0,0 +1,24 @@
+<?php
+  
+/** 
+*   @file getParameterList.php 
+*   @brief  REST interface for service getParameterList
+*
+*   
+*   @version $Id:  $ 
+*/
+
+  require_once '../config.php';
+
+  $amda_ws = new WebServer();
+  $result = $amda_ws->getParameterList($_GET);
+
+    if ($result['ParameterList']){
+      foreach($result['ParameterList'] as $key => $value) {
+	echo "<$key>$value</$key><br/>";
+      }
+    }
+    else {
+     echo $result['message'];  
+    }
+?>
diff --git a/php/rest/getTimeTable.php b/php/rest/getTimeTable.php
new file mode 100644
index 0000000..06c88d6
--- /dev/null
+++ b/php/rest/getTimeTable.php
@@ -0,0 +1,25 @@
+<?php
+  
+/** 
+*   @file getTimeTable.php
+*   @brief  REST interface for service getTimeTable
+*
+*   
+*   @version $Id:  $ 
+*/
+
+ require_once '../config.php';
+
+  $amda_ws = new WebServer();
+
+  $result = $amda_ws->getTimeTable($_GET);
+
+ if ($result['success']){
+	echo $result['ttFileURL'];
+   }
+    else {
+     echo $result['message'];  
+    }
+?>
+
+
diff --git a/php/rest/getTimeTablesList.php b/php/rest/getTimeTablesList.php
new file mode 100644
index 0000000..d7f63cf
--- /dev/null
+++ b/php/rest/getTimeTablesList.php
@@ -0,0 +1,25 @@
+<?php
+  
+/** 
+*   @file getTimeTablesList.php
+*   @brief  REST interface for service getTimeTablesList
+*
+*   
+*   @version $Id:  $ 
+*/
+
+ require_once '../config.php';
+
+  $amda_ws = new WebServer();
+
+  $result = $amda_ws->getTimeTablesList($_GET);
+
+  if ($result['success']){
+	echo $result['TimeTablesList'];
+   }
+    else {
+      echo $result['message'];  
+    }
+?>
+
+
diff --git a/php/rest/getVOtable.php b/php/rest/getVOtable.php
new file mode 100644
index 0000000..f480f63
--- /dev/null
+++ b/php/rest/getVOtable.php
@@ -0,0 +1,32 @@
+<?php
+  
+/** 
+*   @file getParameter.php 
+*   @brief  REST interface for service getParameter
+*
+*   
+*   @version $Id:  $ 
+*/
+  ini_set("allow_url_fopen", true);
+  require_once '../config.php';
+
+  $amda_ws = new WebServer();
+  $result = $amda_ws->getDataset($_GET);
+
+  if ($result['success']){
+      $file = str_replace("http://oberoi.cesr.fr/AMDA-WS/",BASE_PATH ,$result['dataFileURLs']);
+
+      if ($file){
+	$contenu = file_get_contents($file); 
+
+	echo $contenu; 
+
+      }
+    }
+    else {
+      $success = "false";
+      echo '<?xml version="1.0" encoding="UTF-8"?><getParameterResponse>';
+      echo '<success>'.$success.'</success>';
+      echo '<message>'.$result['message'].'</message></getParameterResponse>';  
+    }
+?>
diff --git a/php/rest/getVotableFromASCII.php b/php/rest/getVotableFromASCII.php
new file mode 100644
index 0000000..c2852e2
--- /dev/null
+++ b/php/rest/getVotableFromASCII.php
@@ -0,0 +1,182 @@
+<?php
+// ------------------------------------------------------------------------------
+// A php script which reads an ascii data file and converts it into VOTable file
+//
+// Usage from command line:
+//     php asciiURL_to_votableURL.php asciiURL
+//             asciiURL    url of the ascii file
+//
+// Usage from browser:
+//     http://impex-fp7.fmi.fi/ws/asciiURL_to_votableURL.php?asciiURL
+//             asciiURL    url of the ascii file
+//
+// The script returns the url of the created VOTable file.
+//
+// This script is written for handling ascii data files (from Cluster) provided
+// by Vincent Genot. It makes assumptions about the format of data in the ascii
+// file so it is probably not suitable for handling other ascii files.
+// ------------------------------------------------------------------------------
+
+// -----------------------------------
+// Get the URL of the ascii data file
+// -----------------------------------
+
+if (isset($_GET['url'])) {	// For html calls
+    $url_ascii = $_GET['url'];
+} else {					// For command line
+	if (!isset($argv[1])) die("No url given" . "\n");
+    $url_ascii = $argv[1];
+}
+
+
+// --------------------------------
+// Read the ascii file into memory
+// --------------------------------
+
+      $ch = curl_init($url_ascii);
+      curl_setopt($ch,CURLOPT_USERAGENT,'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13');
+      curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
+      curl_setopt($ch, CURLOPT_SSLVERSION,3);
+      $ascii_file = curl_exec($ch);
+      curl_close($ch);
+      if ($ascii_file === false) die("Could not read url " . $url_ascii . "\n");
+// -------------------------------------------------
+// A simple test that this is indeed our data file:
+// Must start with '# ' string.
+// -------------------------------------------------
+
+      if (substr($ascii_file,0,2) !== "# ") die("Ascii file not in proper format " . "\n");
+
+// ------------------------------------------------------
+// Define input parameter array for getVOTableURL method
+// ------------------------------------------------------
+
+  $params = array(
+	  'Table_name'  => $url_ascii,
+	  'Description' => "",
+	  'Fields' => array()
+  );
+
+
+// -------------------------------------------------------------------
+// Go through the file line by line and extract field names and data
+// -------------------------------------------------------------------
+
+$ascii_table = preg_split("/[\n]+/", $ascii_file);		// Split the ascii file into an array of lines
+
+$First = true;	// Flag for detecting the first non-comment line (= line with field names)
+
+foreach($ascii_table as $line) {
+	// Store comment lines into VOT table description
+	// Comment lines start with character '#'
+
+	if (substr($line,0,1) == "#") {
+		$params['Description'] .= $line . "\n";
+		continue;
+	}
+
+	// If first non-comment line read field names and units. The line content is something like:
+	// it year mo dy hr mn sc msc X Y Z rho ux uy uz Bx(nT) By(nT) Bz(nT) p jx jy jz
+
+	if ($First) { 
+	$lineX = str_replace ('X' , 'X(Re)' , $line);
+	$lineY = str_replace ('Y' , 'Y(Re)' , $lineX);
+	$lineZ = str_replace ('Z' , 'Z(Re)' , $lineY);
+	$lineRho = str_replace ('rho' , 'rho(cm-3)' , $lineZ); 
+	$lineUx = str_replace ('ux' , 'ux(km/s)' , $lineRho);
+	$lineUy = str_replace ('uy' , 'uy(km/s)' , $lineUx);
+	$lineUz = str_replace ('uz' , 'uz(km/s)' , $lineUy);
+	$lineP = str_replace ('P' , 'P(nPa)' , $lineUz);
+	$lineJx = str_replace ('jx' , 'jx(mA/m2)' , $lineP);
+	$lineJy = str_replace ('jy' , 'jy(mA/m2)' , $lineJx);
+	$lineJz = str_replace ('jz' , 'jz(mA/m2)' , $lineJy);
+	
+		$Field_list = preg_split("/[\s,]+/", trim($lineJz));	// Create an array of field names
+		foreach($Field_list as $field) {
+			$params['Fields'][] = array();			// Create a new associative array for this field
+			$index = count($params['Fields']) - 1;
+
+			// Get name and possible unit (included in parenthesis)
+			preg_match("/([^(]+)[(]*([^)]*)[)]*$/", $field, $matches);
+			$params['Fields'][$index]['name'] = $matches[1];
+			$params['Fields'][$index]['unit'] = $matches[2];	// unit string is "" if no unit defined
+			// Set the datatype attribute. Otherwise Topcat won't recognize the variable
+			if (in_array($matches[1], array('it','year','mo','dy','hr','mn','sc','msc')))
+				$params['Fields'][$index]['datatype'] = 'int';
+			else
+				$params['Fields'][$index]['datatype'] = 'float';
+
+			$params['Fields'][$index]['data'] = array();	// Define the array for data values
+		}
+		$First = false;
+		continue;
+	}
+
+	// Read data line
+	$i = 0;
+	$Value_list = preg_split("/[\s,]+/", trim($line));	// Make an array of data values in this line
+	foreach($Value_list as $value) {
+		$params['Fields'][$i++]['data'][] = $value;		// Add the data value into field's data array
+	}
+}
+
+// ---------------------------------------
+// Add the time column in ISO8601 format.
+// ---------------------------------------
+
+// First try to locate the data arrays for year, mo, dy, hr, mn, sc and msc columns
+foreach($params['Fields'] as $field) {
+	if ($field['name'] == 'year') $year_data = $field['data'];
+	if ($field['name'] == 'mo')   $mo_data = $field['data'];
+	if ($field['name'] == 'dy')   $dy_data = $field['data'];
+	if ($field['name'] == 'hr')   $hr_data = $field['data'];
+	if ($field['name'] == 'mn')   $mn_data = $field['data'];
+	if ($field['name'] == 'sc')   $sc_data = $field['data'];
+	if ($field['name'] == 'msc')  $msc_data = $field['data'];
+	
+}
+
+// If all date arrays are found then create the date string in ISO8601 format
+if (isset($year_data) and isset($mo_data) and isset($dy_data) and isset($hr_data) and isset($mn_data) and isset($sc_data) and isset($msc_data)) {
+	$params['Fields'][] = array();					// Add new field to $params array
+	$index = count($params['Fields']) - 1;			// Index of the new field
+	$params['Fields'][$index]['name'] = 'Time';		// Set the name to 'Time'
+	$params['Fields'][$index]['data'] = array();	// Create array for data values
+	for ($i = 0; $i < count($year_data); $i++) {	// Fill the data array
+		$time_stamp = gmmktime($hr_data[$i], $mn_data[$i], $sc_data[$i], $mo_data[$i], $dy_data[$i], $year_data[$i]);
+		$time_str = gmdate("Y-m-d\TH:i:s", $time_stamp) . "." . substr("000" . $msc_data[$i],-3);
+		$params['Fields'][$index]['data'][] = $time_str;	// Add the value to the end of the data table
+	}
+}
+
+// -------------------------------------------------------------------------
+// More computable quantities (e.g. Btot, Utot) may be added here similarly 
+// -------------------------------------------------------------------------
+
+
+// -----------------------------------------------------------------------------------------------
+// Finally call the getVOTableURL method to create a VOTtable file and store it into FMI's server
+// -----------------------------------------------------------------------------------------------
+
+$methods_file = "http://impex-fp7.fmi.fi/ws/Methods_FMI.wsdl";
+$client = new SoapClient($methods_file);
+
+try {
+	$data_url = $client->getVOTableURL($params);
+}
+catch (Exception $e) {
+	echo "Error : <br />";
+	echo $e->getMessage();
+	exit();
+}
+
+ if ($data_url){
+	$contenu = file_get_contents($data_url); 
+
+	echo $contenu; 
+
+      }
+    
+// echo $data_url . "\n";
+
+?>
diff --git a/php/router.php b/php/router.php
new file mode 100644
index 0000000..c0ad19d
--- /dev/null
+++ b/php/router.php
@@ -0,0 +1,139 @@
+<?php
+/**
+  *  router.php
+  *  http://www.ibm.com/developerworks/opensource/library/wa-aj-streamline/ 
+  *  @version $Id: router.php 687 2011-12-24 14:36:27Z elena $
+  */
+      
+   require('config.php');
+
+   class ExtAction {
+	  public $action;
+	  public $method;
+	  public $data;
+	  public $tid;
+      }
+      
+   function doRpc($cdata){
+	  global $API;
+     
+	  try {
+	      if(!isset($API[$cdata->action])) {
+		  throw new Exception('Call to undefined action: ' . $cdata->action);
+	      }
+	      $action = $cdata->action;
+	      $a = $API[$action];
+ 
+	      doAroundCalls($a['before'], $cdata);
+
+	      $method = $cdata->method;
+	      $mdef = $a['methods'][$method];
+	      if(!$mdef){
+		  throw new Exception("Call to undefined method: $method on action $action");
+	      }
+	      doAroundCalls($mdef['before'], $cdata);
+
+	      $r = array(
+		  'type'=>'rpc',
+		  'tid'=>$cdata->tid,
+		  'action'=>$action,
+		  'method'=>$method
+	      );
+
+	      $o = new $action();
+ 
+	      $params = isset($cdata->data) && is_array($cdata->data) ? 
+						  $cdata->data : array(); 
+       
+	      $r['result'] = call_user_func_array(array($o, $method), $params);
+  
+	      doAroundCalls($mdef['after'], $cdata, $r);
+	      doAroundCalls($a['after'], $cdata, $r);
+	  } catch(Exception $e) {
+	      $r['type'] = 'exception';
+	      $r['message'] = $e->getMessage();
+	      $r['where'] = $e->getTraceAsString();
+	  }
+ 
+	  return $r;
+      }
+
+   function doAroundCalls(&$fns, &$cdata, &$returnData=null) {
+	  if(!$fns) {
+	      return;
+	  }
+	  if(is_array($fns)) {
+	      foreach($fns as $f) {
+		  $f($cdata, $returnData);
+	      }
+	  } else {
+	      $fns($cdata, $returnData);
+	  }
+      }
+
+
+/**     
+*  Main
+*/
+
+    define('log',fopen('log','w'));
+    $isForm = false;
+    $isUpload = false;
+    
+    
+/*
+*  artificial truc to get $HTTP_RAW_POST_DATA from POST AJAX
+*/
+     if ($_SERVER['REQUEST_METHOD'] === 'POST' && !isset($_POST['extAction'])) { 
+// Read the input from stdin 
+	  $HTTP_RAW_POST_DATA = trim(file_get_contents('php://input'));
+      }
+
+    if(!isset($_GET['sessionID'])) die('NO SESSION ID SPECIFIED');
+
+    $usrMgr = new UserMgr();
+    $usrMgr->setPath();
+       
+    if (isset($HTTP_RAW_POST_DATA)) {
+	header('Content-Type: text/javascript');
+	$data = json_decode($HTTP_RAW_POST_DATA);
+    } else if(isset($_POST['extAction'])) {
+	$isForm = true;
+	$isUpload = $_POST['extUpload'] == 'true';
+	$data = new ExtAction();
+	$data->action = $_POST['extAction'];
+	$data->method = $_POST['extMethod'];
+	$data->tid = isset($_POST['extTID']) ? $_POST['extTID'] : null;    
+	$data->data = array($_POST, $_FILES);
+ 
+    } 
+   else {  
+ 	  die('INVALID REQUEST');
+      }
+ 
+  // $RRR = print_r($data->data, true); 
+ //  $RRR = print_r($data, true); 
+//  fwrite(log,$RRR.PHP_EOL); 
+  
+
+      $response = null;
+      if(is_array($data)) {
+	  $response = array();
+	  foreach($data as $d) {
+	      $response[] = doRpc($d);
+	  }
+      } else {
+ 
+	  $response = doRpc($data);
+      }
+
+      if($isForm && $isUpload) {
+	  echo '<html><body><textarea>';
+	  echo json_encode($response);
+	  echo '</textarea></body></html>';
+      } else {
+        echo json_encode($response);	  
+      }
+
+      fclose(log);
+?>
\ No newline at end of file
diff --git a/php/src/Makefile b/php/src/Makefile
new file mode 100644
index 0000000..2c5890c
--- /dev/null
+++ b/php/src/Makefile
@@ -0,0 +1,98 @@
+INC = -I/usr/include -I/usr/local/include -I/usr/local/cdf/include -I/usr/local/cef/include -I/home/budnik/AMDANEW/DDLIB/include
+LIB = -L/usr/lib -L/usr/local/lib  -L/usr/local/cdf/lib  -L/usr/local/cef/lib -L/home/budnik/AMDANEW/DDLIB/lib
+CFLAGS = -ggdb -DLINUX -march=i686 -fPIC -Dlinux -D_REENTRANT -malign-double
+CC = gcc
+
+EXE = nctimestring2double nctimeinfo getncvars ncvarinfo \
+      cefstartstop cefvarinfo cefinfo cefsampling ceftimeinfo \
+      cdfinfo cdfvarinfo cdfstartstopfromdata cdfsamplingfromdata
+
+lib: $(EXE)
+
+nctimestring2double: nctimestring2double.o
+	${CC} -o nctimestring2double nctimestring2double.o ${LIB} -lDD -lnetcdf
+
+nctimestring2double.o: nctimestring2double.c
+	${CC} ${CFLAGS} -c nctimestring2double.c ${INC}
+
+nctimeinfo: nctimeinfo.o
+	${CC} -o nctimeinfo nctimeinfo.o ${LIB} -lnetcdf
+
+nctimeinfo.o: nctimeinfo.c
+	${CC} ${CFLAGS} -c nctimeinfo.c ${INC}
+
+getncvars: getncvars.o
+	${CC} -o getncvars getncvars.o ${LIB} -lnetcdf
+
+getncvars.o: getncvars.c
+	${CC} ${CFLAGS} -c getncvars.c ${INC}
+
+ncvarinfo: ncvarinfo.o
+	${CC} -o ncvarinfo ncvarinfo.o ${LIB} -lnetcdf
+
+ncvarinfo.o: ncvarinfo.c
+	${CC} ${CFLAGS} -c ncvarinfo.c ${INC}
+
+cefvarinfo: cefvarinfo.o
+	${CC} -o cefvarinfo cefvarinfo.o ${LIB}  -lm -lz -lCEF_gcc -lCIS_gcc
+
+cefvarinfo.o: cefvarinfo.c
+	${CC} ${CFLAGS} -c cefvarinfo.c ${INC}
+
+cefinfo: cefinfo.o
+	${CC} -o cefinfo cefinfo.o ${LIB}  -lm -lz -lCEF_gcc -lCIS_gcc
+
+cefinfo.o: cefinfo.c
+	${CC} ${CFLAGS} -c cefinfo.c ${INC}
+
+cefstartstop: cefstartstop.o
+	${CC} -o cefstartstop  cefstartstop.o ${LIB}  -lm -lz -lCEF_gcc -lCIS_gcc
+
+cefstartstop.o: cefstartstop.c
+	${CC} ${CFLAGS} -c cefstartstop.c ${INC}
+
+cefsampling: cefsampling.o
+	${CC} -o cefsampling cefsampling.o ${LIB}  -lm -lz -lCEF_gcc -lCIS_gcc
+
+cefsampling.o: cefsampling.c
+	${CC} ${CFLAGS} -c cefsampling.c ${INC}
+
+ceftimeinfo: ceftimeinfo.o
+	${CC} -o ceftimeinfo ceftimeinfo.o ${LIB}  -lm -lz -lCEF_gcc -lCIS_gcc
+
+ceftimeinfo.o: ceftimeinfo.c
+	${CC} ${CFLAGS} -c ceftimeinfo.c ${INC}
+
+cdfinfo: cdfinfo.o
+	${CC} -o cdfinfo cdfinfo.o ${LIB} -lcdf
+
+cdfinfo.o: cdfinfo.c
+	${CC} ${CFLAGS} -c cdfinfo.c ${INC}
+
+cdfvarinfo: cdfvarinfo.o
+	${CC} -o cdfvarinfo cdfvarinfo.o ${LIB} -lcdf
+
+cdfvarinfo.o: cdfvarinfo.c
+	${CC} ${CFLAGS} -c cdfvarinfo.c ${INC}
+
+cdfstartstopfromdata: cdfstartstopfromdata.o
+	${CC} -o cdfstartstopfromdata cdfstartstopfromdata.o ${LIB} -lcdf
+
+cdfstartstopfromdata.o: cdfstartstopfromdata.c
+	${CC} ${CFLAGS} -c cdfstartstopfromdata.c ${INC}
+
+cdfsamplingfromdata: cdfsamplingfromdata.o
+	${CC} -o cdfsamplingfromdata cdfsamplingfromdata.o ${LIB} -lcdf
+
+cdfsamplingfromdata.o: cdfsamplingfromdata.c
+	${CC} ${CFLAGS} -c cdfsamplingfromdata.c ${INC}
+
+install:
+	cp $(EXE) ../bin
+
+clean:	
+	tag="*.o ${EXE}";\
+        for file in $$tag; do \
+	echo $$file; rm -f $$file;\
+	done
+	find -name \*~ -delete	
\ No newline at end of file
diff --git a/php/src/cdfinfo.c b/php/src/cdfinfo.c
new file mode 100644
index 0000000..63a7f56
--- /dev/null
+++ b/php/src/cdfinfo.c
@@ -0,0 +1,187 @@
+/**
+*  @file cdfinfo.c
+*  @version $Id: cdfinfo.c,v 1.1 2010/08/31 10:32:55 budnik Exp $
+*  @brief  
+*/
+
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <cdf.h>
+#include <string.h>
+
+#define MAX_FILE_NAME_LEN  120  
+
+void cdf_status_handler (CDFstatus, char *); 
+char * cdf_str_datatype (long);
+
+typedef struct cdfvar {           /* CDF variable structure */
+     char name[CDF_VAR_NAME_LEN+1];   
+     long datatype;                   
+     long numElements;                /* string length for CDF_CHAR, 1 otherwise */
+     long dimensionality;             /* variable dimensionality                 */
+     long dimSizes[CDF_MAX_DIMS];     /* variable dimension sizes                */
+     long recVariance;                /* record variance                         */
+     long numRecs;                    /* # of records this variable contains     */
+} CDFvar;
+
+int main(int argc, char *argv[])
+{
+  
+  CDFvar var;
+  CDFid    id;                     /* CDF file ID      */ 
+  CDFstatus   status;              /* CDF status code */
+   
+  long nZvars, nAttrs, attrId, attrScope, varId; 
+  char attrName[CDF_ATTR_NAME_LEN+1];
+  char fileName[MAX_FILE_NAME_LEN];
+  char   msg[100];
+  int dummy, i;
+  
+   if (argc <= 1) 
+       exit(0);                   /* CDF input file name not specified */
+    else
+        strcpy(fileName, argv[argc-1]);       /* Get the input file name */
+	
+	
+   status = CDFlib (OPEN_, CDF_, fileName, &id,  NULL_);   
+ 		     
+   if (status != CDF_OK)  {
+       strcpy(msg, "OPEN_, CDF_, ");       
+       strcat(msg, fileName);
+       cdf_status_handler (status, msg);
+   }
+ 
+ /*---------------------------------------------------------------------------
+ *   This routine retrievs the following information:
+ *
+ *      nAttr - number of attributes (including global and variable)
+ *      nZvars - number of zVariables
+ *
+ *   CDF file can have both rVariables (old style) and zVariables (new style)
+ *   simultaneously.  zVariable is a superset of rVariable, and it is a lot
+ *   more efficient and offers all the functionality a rVariable offers and 
+ *   more.  Treat all CDF variables as zVariables.
+ *--------------------------------------------------------------------------*/ 
+ 
+  status = CDFlib (SELECT_, CDF_zMODE_, zMODEon2,
+                     GET_, CDF_NUMATTRS_,  &nAttrs, 
+                           CDF_NUMzVARS_,  &nZvars, 
+                     NULL_);
+  if (status != CDF_OK) cdf_status_handler(status, "GET_, CDF_FILEINFO_");
+  
+ // printf(" nAttrs %d Zvars %d\n",nAttrs, nZvars); 
+  
+//  printf ("Attributes:\n");
+  
+  for (attrId = 0; attrId < nAttrs; attrId++) {
+         status = CDFlib (SELECT_, ATTR_, attrId,
+                          GET_, ATTR_NAME_, attrName,  ATTR_SCOPE_, &attrScope,
+                          NULL_);
+         if (status != CDF_OK) cdf_status_handler (status, "SELECT_, ATTR_");     
+      
+         
+//        printf("Attr %d  %s  %d\n", attrId, attrName, attrScope); 
+    }
+    
+ //   printf ("Variables:\n"); 
+    for (varId=0; varId < nZvars; varId++) {
+        status = CDFlib (SELECT_,zVAR_, varId,
+                         GET_, zVAR_NAME_, var.name,
+                               zVAR_DATATYPE_, &var.datatype,
+                               zVAR_NUMELEMS_, &var.numElements,
+                               zVAR_NUMDIMS_, &var.dimensionality,
+                               zVAR_DIMSIZES_, var.dimSizes,
+                               zVAR_NUMRECS_, &var.numRecs,
+                               zVAR_RECVARY_, &var.recVariance,
+                         NULL_);   
+        if (status != CDF_OK) cdf_status_handler (status, "GET_, zVARS_");
+ 
+    //   printf("Varr %d  %s  %s %d\n", varId, var.name, cdf_str_datatype(var.datatype), var.numRecs); 
+      if (var.recVariance != 0 && var.numRecs > 1 && var.datatype != CDF_EPOCH && var.datatype != CDF_EPOCH16) printf("%s \n", var.name);
+     }
+     
+    /* Close the CDF file */
+    status = CDFlib (CLOSE_, CDF_, NULL_);   
+     
+}
+
+
+
+
+void cdf_status_handler (CDFstatus status, char *source)
+{
+   char  message[CDF_STATUSTEXT_LEN+1];
+
+   CDFerror (status, message);              /* Get the appropriate message */
+
+   if (status < CDF_WARN) {
+       printf ("An error has occurred, halting...\n");
+       printf ("%s\n", message);
+       printf ("** Error source: %s\n", source);
+       exit (status);
+   }
+   else if (status < CDF_OK) {
+       printf ("Warning, function may not have compeleted as expected...\n");
+       printf ("%s\n", message);
+   }
+   else if (status > CDF_OK) {
+       printf ("Function compeleted successfully, but be advised that...\n");
+       printf ("%s\n", message);
+   }
+   
+   
+}
+/*--------------------------------------------------------------------------
+ *  This routine returns the string representation of the given CDF 
+ *  datatype.
+ *--------------------------------------------------------------------------*/
+char *  cdf_str_datatype (long type)
+{
+    switch (type) {
+      case CDF_BYTE:
+         return "CDF_BYTE";
+
+      case CDF_INT1:
+         return "CDF_INT1";
+
+      case CDF_CHAR:
+         return "CDF_CHAR";
+
+      case CDF_INT2:
+         return "CDF_INT2";
+
+      case CDF_UCHAR:
+         return "CDF_UCHAR";
+
+      case CDF_UINT1:
+         return "CDF_UINT1";
+
+      case CDF_INT4:
+         return "CDF_INT4";
+
+      case CDF_UINT2:
+         return "CDF_UINT2";
+
+      case CDF_FLOAT:
+         return "CDF_FLOAT";
+
+      case CDF_REAL4:
+         return "CDF_REAL4";
+
+      case CDF_DOUBLE:
+         return "CDF_DOUBLE";
+
+      case CDF_REAL8:
+         return "CDF_REAL8";
+
+      case CDF_UINT4:
+         return "CDF_UINT4";
+
+      case CDF_EPOCH:
+         return "CDF_EPOCH";
+
+      case CDF_EPOCH16:
+         return "CDF_EPOCH16";
+    }
+}
diff --git a/php/src/cdfsamplingfromdata.c b/php/src/cdfsamplingfromdata.c
new file mode 100644
index 0000000..02c54b2
--- /dev/null
+++ b/php/src/cdfsamplingfromdata.c
@@ -0,0 +1,168 @@
+/* $Id: timeResFromData.c,v 1.1 2010/08/31 10:32:55 budnik Exp $ */
+
+/** @file timeResFromData.c
+*   @brief Function to get CDAWEB dataset sampling times from data files
+*/
+#include <stdio.h>
+#include <stdlib.h>
+#include <cdf.h>
+#include <string.h>
+#include <time.h>
+#include <math.h>
+
+#define fileName "temp.cdf"
+#define badFile -100
+
+/*************************************
+   Global variables and structures
+**************************************/
+long  CDFDims,                                         // Number of dimensions in a CDF file
+      CDFVars,                                            // Number of variables in a CDF file
+      CDFDimSizes[CDF_MAX_DIMS],                   // Dimension Sizes in a CDF file
+      CDFencoding,                                    // Data encoding
+      CDFmajority,                                   // Variable majority
+      CDFmaxRec,                                     // max Record number
+      CDFAttrs;                                      // number of CDF Attributes
+   //   CDFdatatype;
+
+struct cdfvar {                              // CDF variable structure
+     char name[CDF_VAR_NAME_LEN+1];
+     long num;                                //variable number
+     long datatype;
+     long numElem;                     // variable dimensionality
+     long recVariance;                 // variable rec Variance
+     long dimVariances[CDF_MAX_DIMS];  // # of data values in dimSizes
+} cdfVar;
+
+
+
+/*--------------------------------------------------------------------------
+ *  Handles a CDF error.
+ *--------------------------------------------------------------------------*/
+void cdf_handle_error(CDFstatus status)
+{
+
+  char  message[CDF_STATUSTEXT_LEN+1];
+
+   CDFerror (status, message);              /* Get the appropriate message */
+   fprintf  (stderr, "%s\n", message);
+   exit(1);
+}
+
+void find_min(int* delta, int nRecs, int minFalse, int* minVal)
+{
+  int i, n, min;
+
+   n = 1;
+   i = 0;
+   while (abs(delta[i]) <= minFalse) i++;
+   if (i < nRecs) {
+     min = abs(delta[i]); 
+ // printf(" first MIN %d \n", min);
+      for (i = 1; i < nRecs; i++) {
+//   printf(" delta %d \n", delta[i]);
+         if (delta[i] == min) n++;
+         if (delta[i] < min && delta[i] > minFalse) {
+              min = delta[i];
+              n = 1;
+        }
+       }
+      } else { min = -10;
+               n = nRecs;
+             }
+  minVal[0] = min;
+  minVal[1] = n; 
+   printf(" MIN %d %d\n", min, n);
+}
+
+int main(int argc, char *argv[])
+{
+
+    long RecStart = 0, RecCount, RecInt = 1;
+    long indices[1] = {0}, intervals[1] = {1}, counts[1] = {1};
+    long varN = -1;  
+    long datatype = 0, attrN, maxEntry;
+    CDFstatus   cstatus;           // CDF status code
+    CDFid id;
+    double *value;
+    int *delta;
+    int i, minFalse = 0, numEnough;
+    int min[2] = {0, 0};
+    char attrValue[300];
+    float Sampling;
+    double epoch16[2];
+    long year, month, day, hour, minute, sec, msec, mksec, nsec, psec;  
+    
+/*********************** Open CDF file *****************************/
+     if ((cstatus = CDFopen(fileName, &id))  != CDF_OK)
+                                cdf_handle_error(cstatus);
+ 
+/*********** treat all vars as zVars with eliminated false dimensionality and get Nrecs **********/
+    
+    if ((cstatus = CDFlib(SELECT_, CDF_zMODE_, zMODEon2, NULL_)) != CDF_OK)
+                                                   cdf_handle_error (cstatus);
+    while (datatype != CDF_EPOCH && datatype != CDF_EPOCH16){
+       varN++;
+       if ((cstatus = CDFlib(SELECT_, zVAR_, varN,
+                          GET_, zVAR_DATATYPE_, &datatype, NULL_)) != CDF_OK)
+                                                    cdf_handle_error (cstatus);
+  
+  //     if (datatype == CDF_EPOCH16)  break;
+      }
+  fprintf(stdout,"DATATYPE %d %d\n", varN, datatype);
+    if ((cstatus = CDFlib(SELECT_, zVAR_, varN,
+                          GET_, zVAR_MAXREC_, &CDFmaxRec, NULL_)) != CDF_OK)
+                                                   cdf_handle_error (cstatus);
+
+    fprintf(stdout,"Max Recs %d\n", CDFmaxRec+1);
+    if (CDFmaxRec < 10) {
+       fprintf(stdout," %d\n", badFile);
+       exit (0);
+    }
+    value = (double *)malloc(sizeof(double)* (CDFmaxRec+1)*((datatype == CDF_EPOCH16)+1));
+
+/******************* Get Epoch  *************************/
+    if ((cstatus = CDFlib (SELECT_,
+                           zVAR_, varN,
+                           zVAR_RECNUMBER_, RecStart,
+                           zVAR_RECCOUNT_, CDFmaxRec+1,
+                           zVAR_RECINTERVAL_, RecInt,
+                           zVAR_DIMINDICES_, indices,
+                           zVAR_DIMCOUNTS_, counts,
+                           zVAR_DIMINTERVALS_, intervals,
+                            GET_, zVAR_HYPERDATA_, value,  NULL_)) != CDF_OK) 
+                                                cdf_handle_error (cstatus);
+  
+     delta = (int *)malloc(sizeof(int)* CDFmaxRec);
+     for (i = 1; i < CDFmaxRec+1; i++)  
+     {
+         if (datatype == CDF_EPOCH16) {
+         epoch16[0] = value[2*(i-1)];
+         epoch16[1] = value[2*(i-1)+1];
+         EPOCH16breakdown(epoch16, &year, &month, &day, &hour, &minute, &sec, &msec, &mksec, &nsec, &psec);
+         value[i-1] = computeEPOCH(year, month, day, hour, minute, sec, msec);
+         epoch16[0] = value[2*i];
+         epoch16[1] = value[2*i+1];
+         EPOCH16breakdown(epoch16, &year, &month, &day, &hour, &minute, &sec, &msec, &mksec, &nsec, &psec);
+         value[i] = computeEPOCH(year, month, day, hour, minute, sec, msec);
+        }
+        delta[i-1] = (int)(value[i] - value[i-1] + 50)/100;
+    }
+ //      fprintf(stdout,"value %f\n", value[11]-value[10]);
+     free(value); 
+ //  fprintf(stdout,"delta %d\n", delta[0]);
+     numEnough = CDFmaxRec/10; 
+     while (min[1] <  numEnough) {
+         fprintf(stdout,"minFalse %d\n", minFalse);
+         find_min(delta, CDFmaxRec, minFalse, min); 
+         minFalse = min[0];
+     }
+     
+     free(delta); 
+     if ((cstatus = CDFlib(CLOSE_, CDF_, NULL_)) != CDF_OK)
+                                 cdf_handle_error (cstatus);
+
+ //   fprintf(stdout,"%d %f\n",min[1], (float)min[0]/100.0);
+      fprintf(stdout,"%f\n",(float)min[0]/10.0);
+  
+}
diff --git a/php/src/cdfstartstopfromdata.c b/php/src/cdfstartstopfromdata.c
new file mode 100644
index 0000000..1859927
--- /dev/null
+++ b/php/src/cdfstartstopfromdata.c
@@ -0,0 +1,127 @@
+/* $Id: StartStopFromData.c,v 1.1 2010/08/31 10:32:55 budnik Exp $ */
+
+/** @file StartStopFromData.c
+*   @brief  
+*/
+#include <stdio.h>
+#include <stdlib.h>
+#include <cdf.h>
+#include <string.h>
+#include <time.h>
+#include <math.h>
+
+#define MAX_FILE_NAME_LEN  120
+#define TIMESHIFT  62167219200.0 
+/*************************************
+   Global variables and structures
+**************************************/
+long  CDFDims,                                         // Number of dimensions in a CDF file
+      CDFVars,                                            // Number of variables in a CDF file
+      CDFDimSizes[CDF_MAX_DIMS],                   // Dimension Sizes in a CDF file
+      CDFencoding,                                    // Data encoding
+      CDFmajority,                                   // Variable majority
+      CDFmaxRec,                                     // max Record number
+      CDFAttrs;                                      // number of CDF Attributes
+   //   CDFdatatype;
+
+struct cdfvar {                              // CDF variable structure
+     char name[CDF_VAR_NAME_LEN+1];
+     long num;                                //variable number
+     long datatype;
+     long numElem;                     // variable dimensionality
+     long recVariance;                 // variable rec Variance
+     long dimVariances[CDF_MAX_DIMS];  // # of data values in dimSizes
+} cdfVar;
+
+
+
+/*--------------------------------------------------------------------------
+ *  Handles a CDF error.
+ *--------------------------------------------------------------------------*/
+void cdf_handle_error(CDFstatus status)
+{
+
+  char  message[CDF_STATUSTEXT_LEN+1];
+
+   CDFerror (status, message);              /* Get the appropriate message */
+   fprintf  (stderr, "%s\n", message);
+   exit(1);
+}
+
+ 
+
+int main(int argc, char *argv[])
+{
+    char fileName[MAX_FILE_NAME_LEN];
+    long RecStart = 0, RecCount, RecInt = 1;
+    long indices[1] = {0}, intervals[1] = {1}, counts[1] = {1};
+    long varN = -1;  
+    long datatype = 0;
+    CDFstatus   cstatus;           // CDF status code
+    CDFid id;
+    double *value;
+    int i;
+    double epoch16[2];
+    long year, month, day, hour, min, sec, msec, mksec, nsec, psec;    
+    
+    if (argc <= 1) 
+       exit(0);                   /* CDF input file name not specified */
+    else
+        strcpy(fileName, argv[argc-1]);       /* Get the input file name */ 
+
+/*********************** Open CDF file *****************************/
+     if ((cstatus = CDFopen(fileName, &id))  != CDF_OK)
+                                cdf_handle_error(cstatus);
+ 
+/*********** treat all vars as zVars with eliminated false dimensionality and get Nrecs **********/
+    
+    if ((cstatus = CDFlib(SELECT_, CDF_zMODE_, zMODEon2, NULL_)) != CDF_OK)
+                                                   cdf_handle_error (cstatus);
+    while (datatype != CDF_EPOCH && datatype != CDF_EPOCH16){
+       varN++;
+       if ((cstatus = CDFlib(SELECT_, zVAR_, varN,
+                          GET_, zVAR_DATATYPE_, &datatype, NULL_)) != CDF_OK)
+                                                    cdf_handle_error (cstatus);
+  
+    //   if (datatype == CDF_EPOCH16)  break;
+      }
+   
+    if ((cstatus = CDFlib(SELECT_, zVAR_, varN,
+                          GET_, zVAR_MAXREC_, &CDFmaxRec, NULL_)) != CDF_OK)
+                                                   cdf_handle_error (cstatus);
+
+ //   fprintf(stdout,"Max Recs %d\n", CDFmaxRec+1);
+    if (CDFmaxRec < 1) exit (0);
+     
+    value = (double *)malloc(sizeof(double)* (CDFmaxRec+1)*((datatype == CDF_EPOCH16)+1));
+
+/******************* Get Epoch  *************************/
+    if ((cstatus = CDFlib (SELECT_,
+                           zVAR_, varN,
+                           zVAR_RECNUMBER_, RecStart,
+                           zVAR_RECCOUNT_, CDFmaxRec+1,
+                           zVAR_RECINTERVAL_, RecInt,
+                           zVAR_DIMINDICES_, indices,
+                           zVAR_DIMCOUNTS_, counts,
+                           zVAR_DIMINTERVALS_, intervals,
+                           GET_, zVAR_HYPERDATA_, value,  NULL_)) != CDF_OK) 
+                                                cdf_handle_error (cstatus);
+  
+    if (datatype == CDF_EPOCH16) {
+        epoch16[0] = value[0];
+        epoch16[1] = value[1];
+        EPOCH16breakdown(epoch16, &year, &month, &day, &hour, &min, &sec, &msec, &mksec, &nsec, &psec);
+        value[0] = computeEPOCH(year, month, day, hour, min, sec, msec);
+        epoch16[0] = value[CDFmaxRec*2];
+        epoch16[1] = value[CDFmaxRec*2+1];
+        EPOCH16breakdown(epoch16, &year, &month, &day, &hour, &min, &sec, &msec, &mksec, &nsec, &psec);
+        value[CDFmaxRec] = computeEPOCH(year, month, day, hour, min, sec, msec);
+    }
+    printf("%f %f\n", value[0]/1000.0-TIMESHIFT, value[CDFmaxRec]/1000.0-TIMESHIFT);
+
+   
+     if ((cstatus = CDFlib(CLOSE_, CDF_, NULL_)) != CDF_OK)
+                                 cdf_handle_error (cstatus);
+    
+      free(value); 
+}
diff --git a/php/src/cdfvarinfo.c b/php/src/cdfvarinfo.c
new file mode 100644
index 0000000..0c1b0c6
--- /dev/null
+++ b/php/src/cdfvarinfo.c
@@ -0,0 +1,296 @@
+/**
+*  @file cdfvarinfo.c
+*  @version $Id: cdfvarinfo.c,v 1.1 2010/08/31 10:32:55 budnik Exp $
+*  @brief  
+*/
+
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <cdf.h>
+#include <string.h>
+
+#define MAX_FILE_NAME_LEN  120  
+
+void cdf_status_handler (CDFstatus, char *); 
+char * cdf_str_datatype (long);
+
+typedef struct cdfvar {           /* CDF variable structure */
+     char name[CDF_VAR_NAME_LEN+1];   
+     long datatype;                   
+     long numElements;                /* string length for CDF_CHAR, 1 otherwise */
+     long dimensionality;             /* variable dimensionality                 */
+     long dimSizes[CDF_MAX_DIMS];     /* variable dimension sizes                */
+     long recVariance;                /* record variance                         */
+     long numRecs;                    /* # of records this variable contains     */
+} CDFvar;
+
+int main(int argc, char *argv[])
+{
+  
+  CDFvar var;
+  CDFid    id;                     /* CDF file ID      */ 
+  CDFstatus   status;              /* CDF status code */
+   
+  long nZvars, nAttrs, attrId, attrScope, varId, datatype, numElements; 
+  char attrName[CDF_ATTR_NAME_LEN+1];
+  char fileName[MAX_FILE_NAME_LEN], varName[CDF_VAR_NAME_LEN+1];
+  char   msg[100];
+  int dummy, i;
+  char          *cPtr;
+  signed char   *scPtr;
+  short         *sPtr;
+  int           *iPtr;
+  float         *fPtr;
+  double        *dPtr;
+  
+  
+    if (argc <= 2) 
+       exit(0);                   /* CDF input file name not specified */
+    else {
+        strcpy(fileName, argv[1]);       /* Get the input file name */
+	strcpy(varName, argv[2]);   
+    }	
+	
+   status = CDFlib (OPEN_, CDF_, fileName, &id,  NULL_);   
+ 		     
+   if (status != CDF_OK)  {
+       strcpy(msg, "OPEN_, CDF_, ");       
+       strcat(msg, fileName);
+       cdf_status_handler (status, msg);
+   }
+ 
+ /*---------------------------------------------------------------------------
+ *   This routine retrievs the following information:
+ *
+ *      nAttr - number of attributes (including global and variable)
+ *      nZvars - number of zVariables
+ *
+ *   CDF file can have both rVariables (old style) and zVariables (new style)
+ *   simultaneously.  zVariable is a superset of rVariable, and it is a lot
+ *   more efficient and offers all the functionality a rVariable offers and 
+ *   more.  Treat all CDF variables as zVariables.
+ *--------------------------------------------------------------------------*/ 
+ 
+  status = CDFlib (SELECT_, CDF_zMODE_, zMODEon2,
+                     GET_, CDF_NUMATTRS_,  &nAttrs, 
+                           CDF_NUMzVARS_,  &nZvars, 
+                     NULL_);
+  if (status != CDF_OK) cdf_status_handler(status, "GET_, CDF_FILEINFO_");
+  
+ // printf(" nAttrs %d Zvars %d\n",nAttrs, nZvars); 
+  
+//  printf ("Attributes:\n");
+  
+  for (attrId = 0; attrId < nAttrs; attrId++) {
+         status = CDFlib (SELECT_, ATTR_, attrId,
+                          GET_, ATTR_NAME_, attrName,  ATTR_SCOPE_, &attrScope,
+                          NULL_);
+         if (status != CDF_OK) cdf_status_handler (status, "SELECT_, ATTR_");     
+      
+         
+  //    printf("Attr %d  %s  %d\n", attrId, attrName, attrScope); 
+    }
+    
+ //   printf ("Variables:\n"); 
+    for (varId=0; varId < nZvars; varId++) {
+      
+        status = CDFlib (SELECT_,zVAR_, varId,
+                         GET_, zVAR_NAME_, var.name,
+                               zVAR_DATATYPE_, &var.datatype,
+                               zVAR_NUMELEMS_, &var.numElements,
+                               zVAR_NUMDIMS_, &var.dimensionality,
+                               zVAR_DIMSIZES_, var.dimSizes,
+                               zVAR_NUMRECS_, &var.numRecs,
+                               zVAR_RECVARY_, &var.recVariance,
+                         NULL_);   
+        if (status != CDF_OK) cdf_status_handler (status, "GET_, zVARS_");
+   
+        if (strcmp(var.name, varName) == 0) { 
+	  
+	                    printf("%s %d %d ", cdf_str_datatype(var.datatype), var.dimensionality, var.numRecs);
+			    for (i = 0; i < var.dimensionality; i++) printf("%d ",var.dimSizes[i]);
+			    printf("\n");
+			    
+			    for (attrId = 0; attrId < nAttrs; attrId++) {   
+			          status = CDFlib (SELECT_, ATTR_, attrId,
+                                                   GET_,    ATTR_NAME_, attrName,
+                                                   ATTR_SCOPE_, &attrScope,
+                                                   NULL_);
+ 						   
+                                  if (status != CDF_OK) cdf_status_handler (status, "SELECT_, ATTR_");
+			          if (attrScope == GLOBAL_SCOPE) continue;
+//printf("\n%d %s ", attrId, attrName);			      
+	                          status = CDFlib (SELECT_, zENTRY_, varId,
+                                                GET_,    zENTRY_DATATYPE_, &datatype,
+                                                      zENTRY_NUMELEMS_, &numElements,
+                                                NULL_);
+//printf("%d %s", numElements,cdf_str_datatype(datatype));						
+				if (status == NO_SUCH_ENTRY) continue;    
+
+                                if (status != CDF_OK) cdf_status_handler (status,"GET_ATTR_INFO_");
+				 
+			        switch (datatype) {
+				     case CDF_CHAR:
+				      cPtr = (char *) malloc(numElements * sizeof(char) + 1);				     
+				      status = CDFlib (GET_, zENTRY_DATA_, cPtr, NULL_);
+				      if (status != CDF_OK) cdf_status_handler (status, msg);	
+//				      printf(" %s",  cPtr);       
+				      free(cPtr);
+				      break;
+
+				  case CDF_BYTE:
+				  case CDF_INT1:
+				      scPtr = (signed char *) malloc (sizeof(signed char) * numElements);				     
+				      status = CDFlib (GET_, zENTRY_DATA_, scPtr, NULL_);
+				      if (status != CDF_OK) cdf_status_handler (status, msg);				     	     
+				      free (scPtr);
+				      break;
+
+				  case CDF_INT2:
+				  case CDF_UCHAR:
+				  case CDF_UINT1:
+				      sPtr = (short *) malloc (sizeof(short) * numElements);				     
+				      status = CDFlib (GET_, zENTRY_DATA_, sPtr, NULL_);
+				      if (status != CDF_OK) cdf_status_handler (status, msg);				     
+				      free (sPtr);
+				      break;
+
+				  case CDF_INT4:
+				  case CDF_UINT2:
+				      iPtr = (int *) malloc (sizeof(int) * numElements);				    
+				      status = CDFlib (GET_, zENTRY_DATA_, iPtr, NULL_);
+				      if (status != CDF_OK) cdf_status_handler (status, msg);				     
+				      free (iPtr);
+				      break;
+
+				  case CDF_FLOAT:
+				  case CDF_REAL4:
+				      fPtr = (float *) malloc (sizeof(float) * numElements);				     
+				      status = CDFlib (GET_, zENTRY_DATA_, fPtr, NULL_);
+				      if (status != CDF_OK) cdf_status_handler (status, msg);				      
+				      free (fPtr);
+				      break;
+
+				  case CDF_DOUBLE:
+				  case CDF_REAL8:
+				  case CDF_UINT4:
+				      dPtr = (double *) malloc (sizeof(double) * numElements);
+				     
+				      status = CDFlib (GET_, zENTRY_DATA_, dPtr, NULL_);
+				      if (status != CDF_OK) cdf_status_handler (status, msg);
+				     
+				      free (dPtr);
+				      break;
+
+				  case CDF_EPOCH:       /* 8-byte real number */ 
+				      dPtr = (double *) malloc (sizeof(double) * numElements);
+				     
+				      status = CDFlib (GET_, zENTRY_DATA_, dPtr, NULL_);
+				      if (status != CDF_OK) cdf_status_handler (status, msg);
+				     
+				      free (dPtr);
+				      break;
+
+				  case CDF_EPOCH16:       /* 16-byte real number */
+				      dPtr = (double *) malloc (sizeof(double) * numElements * 2);				     
+				      status = CDFlib (GET_, zENTRY_DATA_, dPtr, NULL_);
+				      if (status != CDF_OK) cdf_status_handler (status, msg);				      
+				      free (dPtr);
+				      break;
+
+				  default:
+					  printf ("** Error in get_cdf_attribute: bad data type");
+				  }
+				    
+          }
+        break;  
+	}
+     }
+     
+     
+     
+    /* Close the CDF file */
+    status = CDFlib (CLOSE_, CDF_, NULL_);   
+     
+}
+
+
+
+
+void cdf_status_handler (CDFstatus status, char *source)
+{
+   char  message[CDF_STATUSTEXT_LEN+1];
+
+   CDFerror (status, message);              /* Get the appropriate message */
+
+   if (status < CDF_WARN) {
+       printf ("An error has occurred, halting...\n");
+       printf ("%s\n", message);
+       printf ("** Error source: %s\n", source);
+       exit (status);
+   }
+   else if (status < CDF_OK) {
+       printf ("Warning, function may not have compeleted as expected...\n");
+       printf ("%s\n", message);
+   }
+   else if (status > CDF_OK) {
+       printf ("Function compeleted successfully, but be advised that...\n");
+       printf ("%s\n", message);
+   }
+   
+   
+}
+/*--------------------------------------------------------------------------
+ *  This routine returns the string representation of the given CDF 
+ *  datatype.
+ *--------------------------------------------------------------------------*/
+char *  cdf_str_datatype (long type)
+{
+    switch (type) {
+      case CDF_BYTE:
+         return "CDF_BYTE";
+
+      case CDF_INT1:
+         return "CDF_INT1";
+
+      case CDF_CHAR:
+         return "CDF_CHAR";
+
+      case CDF_INT2:
+         return "CDF_INT2";
+
+      case CDF_UCHAR:
+         return "CDF_UCHAR";
+
+      case CDF_UINT1:
+         return "CDF_UINT1";
+
+      case CDF_INT4:
+         return "CDF_INT4";
+
+      case CDF_UINT2:
+         return "CDF_UINT2";
+
+      case CDF_FLOAT:
+         return "CDF_FLOAT";
+
+      case CDF_REAL4:
+         return "CDF_REAL4";
+
+      case CDF_DOUBLE:
+         return "CDF_DOUBLE";
+
+      case CDF_REAL8:
+         return "CDF_REAL8";
+
+      case CDF_UINT4:
+         return "CDF_UINT4";
+
+      case CDF_EPOCH:
+         return "CDF_EPOCH";
+
+      case CDF_EPOCH16:
+         return "CDF_EPOCH16";
+    }
+}
diff --git a/php/src/cefinfo.c b/php/src/cefinfo.c
new file mode 100644
index 0000000..68e8e8c
--- /dev/null
+++ b/php/src/cefinfo.c
@@ -0,0 +1,50 @@
+ /************************************************************/
+ /*        
+/***********************************************************/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <CEF.h>
+#include <string.h>
+#include <time.h>
+#include <math.h>
+ 
+#define MAX_FILE_NAME_LEN  250        // Max. file name length
+
+/**************************
+   Function prototypes
+**************************/
+ 
+ 
+/*--------------------------------------------------------------------------*/
+int main(int argc, char *argv[])
+{
+    
+    t_err  err;
+    t_variable *var; 
+    t_meta *meta;
+    int i,  VarCount;
+   
+
+ 
+/*********************** Open CEF file *****************************/
+   
+       err = Read_CEF_file(argv[1]);
+       VarCount = Variables_count();
+       
+
+     //  fprintf(stdout,"Records Number  %d Vars Num %d\n", RecCount, VarCount);
+  
+       for (i = 0; i < VarCount; i++) {
+	   var  = Get_variable_number(i);
+	   if (var->type != CEF_ISO_TIME  && var->varying) printf("%s \n", var->name);
+	   //fprintf(stdout,"%s %d %d\n", var->name, var->type, var->varying); 	 
+       } 
+       
+       err = Close_CEF_file();
+       
+   //    if ((cef_time = Get_variable("time_tags")) == NULL) exit(1);
+      
+//       meta = Get_meta("Version_number");
+//       version = Get_item(meta->entry, 0);
+}
diff --git a/php/src/cefsampling.c b/php/src/cefsampling.c
new file mode 100644
index 0000000..d81db73
--- /dev/null
+++ b/php/src/cefsampling.c
@@ -0,0 +1,45 @@
+ /************************************************************/
+ /*        
+/***********************************************************/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <CEF.h>
+#include <string.h>
+#include <time.h>
+#include <math.h>
+ 
+#define MAX_FILE_NAME_LEN  250        // Max. file name length
+
+/**************************
+   Function prototypes
+**************************/
+ 
+ 
+/*--------------------------------------------------------------------------*/
+int main(int argc, char *argv[])
+{
+    
+    t_err  err;
+    t_meta * meta;
+ 
+/*********************** Open CEF file *****************************/
+   
+       err = Read_CEF_file(argv[1]);
+        
+       meta = Get_meta ("TIME_RESOLUTION");
+ //      printf(" %s %d %d\n", meta->type,  meta->entry->size, meta->entry->max_size);
+       if (meta != NULL) printf("%s", *meta->entry->item);
+       else printf("-1 ");
+/*       
+       meta = Get_meta ("MIN_TIME_RESOLUTION"); 
+       if (meta != NULL) printf("%s ", *meta->entry->item);
+       else printf("-1 ");
+       
+       meta = Get_meta ("MAX_TIME_RESOLUTION"); 
+       if (meta != NULL) printf("%s\n", *meta->entry->item);
+       else printf("-1\n");
+*/       
+       err = Close_CEF_file();
+    
+}
diff --git a/php/src/cefstartstop.c b/php/src/cefstartstop.c
new file mode 100644
index 0000000..da69388
--- /dev/null
+++ b/php/src/cefstartstop.c
@@ -0,0 +1,45 @@
+ /************************************************************/
+ /*        
+/***********************************************************/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <CEF.h>
+#include <string.h>
+#include <time.h>
+#include <math.h>
+ 
+#define MAX_FILE_NAME_LEN  250        // Max. file name length
+
+/**************************
+   Function prototypes
+**************************/
+ 
+ 
+/*--------------------------------------------------------------------------*/
+int main(int argc, char *argv[])
+{
+    
+    t_err  err;
+    t_meta * meta;
+ 
+/*********************** Open CEF file *****************************/
+   
+       err = Read_CEF_file(argv[1]);
+        
+       meta = Get_meta ("FILE_TIME_SPAN");
+ //      printf(" %s %d %d\n", meta->type,  meta->entry->size, meta->entry->max_size);
+       if (meta != NULL) printf("%s", *meta->entry->item);
+       else printf("-1 ");
+/*       
+       meta = Get_meta ("MIN_TIME_RESOLUTION"); 
+       if (meta != NULL) printf("%s ", *meta->entry->item);
+       else printf("-1 ");
+       
+       meta = Get_meta ("MAX_TIME_RESOLUTION"); 
+       if (meta != NULL) printf("%s\n", *meta->entry->item);
+       else printf("-1\n");
+*/       
+       err = Close_CEF_file();
+    
+}
diff --git a/php/src/ceftimeinfo.c b/php/src/ceftimeinfo.c
new file mode 100644
index 0000000..8155902
--- /dev/null
+++ b/php/src/ceftimeinfo.c
@@ -0,0 +1,53 @@
+ /************************************************************/
+ /*        
+/***********************************************************/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <CEF.h>
+#include <string.h>
+#include <time.h>
+#include <math.h>
+ 
+#define MAX_FILE_NAME_LEN  250        // Max. file name length
+#define DAYS_1958_1970  4383
+#define MILLI_PER_DAY  86400000
+
+
+/**************************
+   Function prototypes
+**************************/
+ 
+ 
+/*--------------------------------------------------------------------------*/
+int main(int argc, char *argv[])
+{
+    
+    t_err  err;
+    int i, RecCount, VarCount;
+    t_variable *cef_time, *var;
+    double ddTime0, ddTimeN, step, SHIFT;
+    
+    
+    SHIFT = (double)DAYS_1958_1970 * (double)MILLI_PER_DAY;
+/*********************** Open CEF file *****************************/
+   
+       err = Read_CEF_file(argv[1]);
+       RecCount = Records_count();
+       VarCount = Variables_count();
+     
+       for (i = 0; i < VarCount; i++) {
+           var  = Get_variable_number(i);
+           if (var->type == CEF_ISO_TIME ) break; 
+       } 
+       cef_time = Get_variable(var->name);
+       
+        ddTime0 = ((T1D(cef_time, 0, 0) - SHIFT) / 1000.0); 
+        ddTimeN = ((T1D(cef_time, RecCount-1, 0) - SHIFT) / 1000.0); 
+        step = ((T1D(cef_time, 1, 0) - SHIFT) / 1000.0) - ddTime0; 
+        printf("%lf %lf %f", ddTime0, ddTimeN, step);
+
+       
+       err = Close_CEF_file();
+    
+}
diff --git a/php/src/cefvarinfo.c b/php/src/cefvarinfo.c
new file mode 100644
index 0000000..304dfa3
--- /dev/null
+++ b/php/src/cefvarinfo.c
@@ -0,0 +1,73 @@
+/************************************************************/
+/*        
+/***********************************************************/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <CEF.h>
+#include <string.h>
+#include <time.h>
+#include <math.h>
+ 
+#define MAX_FILE_NAME_LEN  250        // Max. file name length
+
+/**************************
+   Function prototypes
+**************************/
+ 
+char * cef_str_datatype (long);
+
+/*--------------------------------------------------------------------------*/
+int main(int argc, char *argv[])
+{
+    
+    t_err  err;
+    t_variable *var; 
+    t_meta *meta;
+    int i;
+    
+ //   char  fileName[MAX_FILE_NAME_LEN];
+ 
+//    int mode, tm, nb_entry = 0; 
+  
+ 
+/*********************** Open CEF file *****************************/
+   
+       err = Read_CEF_file(argv[1]);
+       var = Get_variable(argv[2]);
+       printf("%s %d %d", cef_str_datatype(var->type), var->nb_size, var->nb_elem);
+       for (i = 0; i < var->nb_size; i++) printf(" %d",  var->size[i]);
+
+	// fprintf(stdout,"%s %d %d\n", var->name, var->type, var->varying); 	 
+      
+   //    if ((cef_time = Get_variable("time_tags")) == NULL) exit(1);
+        err = Close_CEF_file();   
+  //     meta = Get_meta("Version_number");
+//       version = Get_item(meta->entry, 0);
+}
+/*--------------------------------------------------------------------------
+ *  This routine returns the string representation of the given CDF 
+ *  datatype.
+ *--------------------------------------------------------------------------*/
+char *  cef_str_datatype (long type)
+{
+    switch (type) {
+      
+    
+      case CEF_CHAR:
+         return "CEF_CHAR";
+
+      case CEF_INT:
+         return "CEF_INT";
+
+      case CEF_FLOAT:
+         return "CEF_FLOAT";
+ 
+      case CEF_DOUBLE:
+         return "CEF_DOUBLE";
+ 
+      case CEF_ISO_TIME:
+         return "CEF_TIME";
+
+    }
+}
\ No newline at end of file
diff --git a/php/src/getncvars.c b/php/src/getncvars.c
new file mode 100644
index 0000000..2947b4f
--- /dev/null
+++ b/php/src/getncvars.c
@@ -0,0 +1,50 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <netcdf.h>
+
+/**************************
+   Function prototypes
+**************************/
+ 
+void handle_netcdf_error (int);
+
+main(int argc, char **argv)
+{
+      int ncID;
+      int i, status, nvars;
+      
+      char varname[NC_MAX_NAME];
+	    
+      
+        if (argc <= 1) {
+            printf("Incorrect number of arguments\n"); 
+   	    exit(0);
+	}
+	
+	if((status = nc_open(argv[1],0,&ncID)) != NC_NOERR){
+	    printf("%d",status);
+	    exit(0);
+	}
+			 	
+	 status = nc_inq_nvars(ncID, &nvars);
+	 for (i = 0; i < nvars; i++) {
+	     status = nc_inq_varname(ncID, i, varname);	     
+	      if (strncmp(varname,"Time",4) != 0 && 
+		  strncmp(varname,"StartTime",9) != 0 && 
+		  strncmp(varname,"StopTime",8) != 0) 
+			    printf("%s#",varname);  
+	 }
+
+	 status = nc_close(ncID);
+}
+/*--------------------------------------------------------------------------
+ *  Handles a netCDF error.
+ *--------------------------------------------------------------------------*/
+
+void handle_netcdf_error(int status) {
+  fprintf(stderr, "%s\n", nc_strerror(status));  
+}
+
+
+
diff --git a/php/src/nctimeinfo.c b/php/src/nctimeinfo.c
new file mode 100644
index 0000000..bc93039
--- /dev/null
+++ b/php/src/nctimeinfo.c
@@ -0,0 +1,88 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <netcdf.h>
+
+
+/**************************
+   Function prototypes
+**************************/
+ 
+void handle_netcdf_error (int);
+
+main(int argc, char **argv)
+{
+      int ncID, timeID, dimids[NC_MAX_DIMS];
+      size_t nrecs;
+      double time_double[3], sampling, sampling_min = 100000;      
+      int i, status, nvars;
+      
+      char varname[NC_MAX_NAME];
+	
+      size_t TimeStart = 0;
+      size_t TimeCount = 3;  
+      
+      
+        if (argc <= 1) {
+            printf("Incorrect number of arguments\n"); 
+   	    exit(0);
+	}
+	
+	if((status = nc_open(argv[1],0,&ncID)) != NC_NOERR){
+	    printf("%d",status);
+	    exit(0);
+	}
+		
+	if ((status = nc_inq_varid (ncID, "Time", &timeID)) != NC_NOERR) {
+	      printf("%d",status);
+	      exit(0);                
+	} 
+	
+	if ((status = nc_inq_vardimid(ncID, timeID, dimids)) != NC_NOERR){
+	      printf("%d", status);
+	      exit(0); 
+	}
+	
+	if ((status = nc_inq_dimlen(ncID,dimids[0], &nrecs)) != NC_NOERR){	 
+	      printf("%d", status);
+	      exit(0);  
+	} 
+	
+	if ((status =  nc_get_vara_double(ncID, timeID, &TimeStart, &TimeCount,  time_double)) != NC_NOERR){
+		printf("%d", status);
+		exit(0);  
+	}  
+		 
+	for (i = 0; i < 2; i++) {
+	   sampling = time_double[i+1] - time_double[i];
+	   if (sampling < sampling_min) sampling_min = sampling;	  
+	 }
+	  
+	 printf("%lf:", time_double[0]);        
+	 
+	 TimeStart = nrecs - 3;
+	 if ((status =  nc_get_vara_double(ncID, timeID, &TimeStart, &TimeCount,  time_double)) != NC_NOERR){
+		printf("%d", status);
+		exit(0);  
+	} 	
+	printf("%lf#", time_double[2]);
+	
+	for (i = 0; i < 2; i++) {
+	   sampling = time_double[i+1] - time_double[i];
+	   if (sampling < sampling_min) sampling_min = sampling;	  
+	 }
+	 
+	printf("%lf", sampling_min);
+ 
+	status = nc_close(ncID);
+}
+/*--------------------------------------------------------------------------
+ *  Handles a netCDF error.
+ *--------------------------------------------------------------------------*/
+
+void handle_netcdf_error(int status) {
+  fprintf(stderr, "%s\n", nc_strerror(status));  
+}
+
+
+
diff --git a/php/src/nctimestring2double.c b/php/src/nctimestring2double.c
new file mode 100644
index 0000000..3b215e2
--- /dev/null
+++ b/php/src/nctimestring2double.c
@@ -0,0 +1,171 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <netcdf.h>
+#include <DD.h>
+
+#define THIS_OK	1
+#define UNKNOWN_TIME_FORMAT -100
+
+/**************************
+   Function prototypes
+**************************/
+ 
+void handle_netcdf_error (int);
+double ISO2Double(char *);
+
+
+main(int argc, char **argv)
+{
+      int ncID, timeID, newTimeID, ndims, dimids[NC_MAX_DIMS];
+      nc_type type;
+      size_t len, nrecs;
+      double *time_double;
+      char varname[NC_MAX_NAME];
+       
+      int i, ii, j, status, nvars;
+      dd_time_t Time; 
+      char IsoTime[24];
+      
+      static size_t TimeStart[2] = {0L,0L};
+      static size_t TimeCount[2] = {1L,17L};
+       
+       
+      char SpecialSymbol[9] = {' ', '#', '%', '@', '+', '.', '>', '<', '-'};
+      
+      
+        if (argc <= 1) {
+            printf("Incorrect number of arguments\n"); 
+   	    exit(0);
+	}
+	
+	/* open nc file to write */
+	if((status = nc_open(argv[1],NC_WRITE|NC_SHARE,&ncID)) != NC_NOERR){
+	    printf("%d",status);
+	    exit(0);
+	}
+		
+	if ((status = nc_inq_varid(ncID, "Time", &timeID)) != NC_NOERR) {
+	      timeID = 0; 	                     
+	} 
+	
+	if ((status = nc_inq_vartype(ncID, timeID, &type)) != NC_NOERR) {
+	      printf("%d",status);
+	      exit(0);   		 
+	} 
+	
+	if (type == NC_DOUBLE)  {
+	      printf("%d", THIS_OK);
+	      exit(0); 
+	}
+      
+	if (type != NC_CHAR)  {
+	      printf("%d", UNKNOWN_TIME_FORMAT);
+	      exit(0); 
+	}
+	
+	if ((status = nc_inq_varndims(ncID, timeID, &ndims)) != NC_NOERR) {
+	      printf("%d", status);
+	      exit(0); 
+	} 
+	
+	if ((status = nc_inq_vardimid(ncID, timeID, dimids)) != NC_NOERR){
+	      printf("%d", status);
+	      exit(0); 
+	}
+	
+	if ((status = nc_inq_dimlen(ncID,dimids[1], &len)) != NC_NOERR){	 
+	      printf("%d", status);
+	      exit(0);  
+	} 
+	
+	if ((status = nc_inq_dimlen(ncID,dimids[0], &nrecs)) != NC_NOERR){	 
+	      printf("%d", status);
+	      exit(0);  
+	} 
+	
+//TODO all possible char formats	
+	if (len != 17 && len != 23 && len != 24) {
+	      printf("%d", UNKNOWN_TIME_FORMAT);
+	      exit(0);  	  	  
+	}
+	  
+       time_double = (double *)malloc(sizeof(double)*nrecs);
+       
+       if (len == 17) {
+	  for (i = 0; i < nrecs; i++) {
+	      if ((status =  nc_get_vara_text(ncID,  timeID, TimeStart,  TimeCount,  Time)) != NC_NOERR){
+		      printf("%d", status);
+		      exit(0);  
+	      }  
+	      
+	      TimeStart[0]++;
+	      time_double[i] = DD_Time2Double(Time);
+	  }
+       }
+       else {
+	  TimeCount[1] = len;
+	  for (i = 0; i < nrecs; i++) {
+	      if ((status =  nc_get_vara_text(ncID,  timeID, TimeStart,  TimeCount,  IsoTime)) != NC_NOERR){
+		      printf("%d", status);
+		      exit(0);  
+	      }  
+	      
+	      TimeStart[0]++;
+	      time_double[i] = ISO2Double(IsoTime);
+	  }
+       }
+       
+      /* get info on number of variables */
+        status = nc_inq_nvars(ncID, &nvars);       	 
+	
+	status = nc_redef(ncID);
+        for (j = 0; j < nvars; j++) {      
+      /* get the name of variable by its ID */
+          status = nc_inq_varname(ncID, j, varname);                
+      /* Replace special symbols with underscore(s) */      
+          for (ii = 0; ii < 9; ii++) 
+            for (i = 0; i < strlen(varname); i++) {
+                  if (varname[i] == SpecialSymbol[ii]) varname[i] = '_'; 
+              }
+      /* Rename the variable */      
+            status = nc_rename_var(ncID, j, varname);
+            nc_sync(ncID);      
+        }
+        status = nc_rename_var(ncID, timeID, "TimeString");
+	status = nc_def_var(ncID, "Time", NC_DOUBLE, 1, &dimids[0], &newTimeID);
+	status = nc_enddef(ncID);
+	
+	status = nc_put_var_double(ncID,newTimeID,time_double); 
+        nc_sync(ncID);
+	
+	printf("%d", THIS_OK);
+        status = nc_close(ncID);
+}
+/*--------------------------------------------------------------------------
+ *  Handles a netCDF error.
+ *--------------------------------------------------------------------------*/
+
+void handle_netcdf_error(int status) {
+  fprintf(stderr, "%s\n", nc_strerror(status));  
+}
+
+/*--------------------------------------------------------------------------
+ *   ISO time to DD Double (UNIX)
+ *   2007-07-12T13:08:02.000
+ *--------------------------------------------------------------------------*/
+ double ISO2Double(char *IsoTime) {   
+   dd_tmstr_t *Time;
+   int UT[7];
+
+   sscanf(IsoTime, "%d-%d-%dT%d:%d:%d.%d", 
+                              &UT[0],&UT[1],&UT[2],&UT[3],&UT[4],&UT[5],&UT[6]); 
+
+   Time = (dd_tmstr_t *)UT2double(UT);
+  
+  return  Time->times;
+}
+ 
+
+
+
diff --git a/php/src/ncvarinfo.c b/php/src/ncvarinfo.c
new file mode 100644
index 0000000..ab2d99d
--- /dev/null
+++ b/php/src/ncvarinfo.c
@@ -0,0 +1,70 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <netcdf.h>
+ 
+/**************************
+   Function prototypes
+**************************/
+ 
+void handle_netcdf_error (int);
+ 
+
+main(int argc, char **argv)
+{
+      int ncID, varID, ndims, dimids[NC_MAX_DIMS];
+      nc_type type;
+      size_t len, nrecs;
+      char varname[NC_MAX_NAME];
+       
+      int i, ii, j, status;
+
+        if (argc <= 2) {
+            printf("Incorrect number of arguments\n"); 
+   	    exit(0);
+	}
+	
+	/* open nc file to write */
+	if((status = nc_open(argv[1],NC_WRITE|NC_SHARE,&ncID)) != NC_NOERR){
+	    printf("%d",status);
+	    exit(0);
+	}
+		
+	if ((status = nc_inq_varid(ncID, argv[2], &varID)) != NC_NOERR) {
+	      printf("%d",status);
+	      exit(0);                
+	} 
+	
+	if ((status = nc_inq_vartype(ncID, varID, &type)) != NC_NOERR) {
+	      printf("%d",status);
+	      exit(0);   		 
+	} 
+ 
+	if ((status = nc_inq_varndims(ncID, varID, &ndims)) != NC_NOERR) {
+	      printf("%d", status);
+	      exit(0); 
+	} 
+	
+	if ((status = nc_inq_vardimid(ncID, varID, dimids)) != NC_NOERR){
+	      printf("%d", status);
+	      exit(0); 
+	}
+	         
+        printf("%d %d ", type, ndims);
+	for (i = 0; i < ndims; i++) {
+	       status = nc_inq_dimlen(ncID, dimids[i], &len);
+	       printf("%d ", len);
+	} 
+        status = nc_close(ncID);
+}
+/*--------------------------------------------------------------------------
+ *  Handles a netCDF error.
+ *--------------------------------------------------------------------------*/
+
+void handle_netcdf_error(int status) {
+  fprintf(stderr, "%s\n", nc_strerror(status));  
+}
+
+
+
+
diff --git a/php/uploadFile.php b/php/uploadFile.php
new file mode 100644
index 0000000..3f316a6
--- /dev/null
+++ b/php/uploadFile.php
@@ -0,0 +1,299 @@
+<?php
+ /**
+ * @file uploadFile
+ * @brief
+ * @author Elena
+ * @version $Id: uploadFile.php 2905 2015-05-18 10:08:24Z elena $
+ *
+ */
+
+        function file_upload_error_message($error_code) {
+        
+            switch ($error_code) {
+                case UPLOAD_ERR_INI_SIZE:
+                    return 'The uploaded file exceeds the upload_max_filesize directive in php.ini';
+                case UPLOAD_ERR_FORM_SIZE:
+                    return 'The uploaded file exceeds max file size of '.maxSize;
+                case UPLOAD_ERR_PARTIAL:
+                    return 'The uploaded file was only partially uploaded';
+                case UPLOAD_ERR_NO_FILE:
+                    return 'No file was uploaded';
+                case UPLOAD_ERR_NO_TMP_DIR:
+                    return 'Missing a temporary folder';
+                case UPLOAD_ERR_CANT_WRITE:
+                    return 'Failed to write file to disk';
+                case UPLOAD_ERR_EXTENSION:
+                    return 'File upload stopped by extension';
+                case UPLOAD_ERR_EMPTY: 
+                    return 'File is empty';
+                default:
+                    return 'Unknown upload error';
+            }
+        } 
+ 
+        function getUrlFileSize($URL) {
+                $ch = curl_init($URL);
+                curl_setopt($ch, CURLOPT_NOBODY, true);
+                curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
+                curl_setopt($ch, CURLOPT_HEADER, true);
+                curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
+                $data = curl_exec($ch);
+                curl_close($ch);
+
+                $ContentLength = 1000000000000000000;
+                if (preg_match('/Content-Length: (\d+)/', $data, $matches)) {
+                $ContentLength = (int)$matches[1];
+                }
+        return $ContentLength;
+        }
+
+    /**
+    *  Main
+    */ 
+        define("UPLOAD_ERR_EMPTY",5);
+
+        require_once 'config.php';
+
+       // error_reporting(E_ERROR | E_WARNING | E_PARSE);
+
+        if (!isset($_POST['sessionID'])) 
+        {
+            $response = array( 'success' => false, 'error' => ': Check that uploaded file size is less than '.ini_get('upload_max_filesize')); 
+            die(json_encode($response));           
+        }
+
+        define('USERDATADIR', USERPATH."/".$_POST['sessionID']."/DATA/");
+        define('USERTEMPDIR', USERPATH."/".$_POST['sessionID']."/TEMP/");
+        define('USERWSDIR', USERPATH."/".$_POST['sessionID']."/WS/"); 
+        define('USERWORKINGDIR', USERPATH."/".$_POST['sessionID']."/RES/");
+        define('ATTACHMENTDIR', DATAPATH."/Feedback/Attach/");
+        define('maxSize',$_POST['MAX_FILE_SIZE'] < ini_get('upload_max_filesize'));
+
+        if (!is_dir(USERTEMPDIR)) mkdir(USERTEMPDIR.'/', 0755, true);
+        if (!is_dir(ATTACHMENTDIR)) mkdir(ATTACHMENTDIR.'/', 0755, true);
+
+        if (!$_FILES['attachment'] && !$_FILES['localFileName'] && !$_FILES['localTTName'] && 
+            !$_POST['remoteFile'] && !$_POST['remoteTT']) 
+        {
+            $response = array( 'success' => false, 'error' => 'UNDEFINED ACTION'); 
+            die(json_encode($response));
+        }
+ 
+        $fileFrmt = $_POST['filefrmt'];
+        $timeFrmt = $_POST['timefrmt'] ?  $_POST['timefrmt'] : null;
+        $timeSmplg = $_POST['timesmpl'] ?  $_POST['timesmpl'] : null;
+        $nonStd = $_POST['nonstd'] ?  $_POST['nonstd'] : null;
+        $timeLength = $_POST['timelength'] ?  $_POST['timelength'] : null;
+        $doy = $_POST['doy'] ?  $_POST['doy'] : null;
+
+        $allFormats = array('fileFormat' => $fileFrmt, 'timeFormat' => $timeFrmt, 'doy' => $doy,
+                            'timeSampling' => $timeSmplg, 'nonStandard' => $nonStd, 'timeLength' => $timeLength);
+ 
+        if ($_POST['filesrc'] == 'URL') 
+                                $fromURL = true;  
+        else  
+                                $fromURL = false;
+        // to check ws sizw
+        $wsMgr = new UserMgr();
+
+        if ($fromURL) 
+        {
+        // url files check
+            if ($_POST['remoteFile']) 
+            {
+                $remoteName = $_POST['remoteFile'];
+                $fileName = substr(strrchr($remoteName,"/"),1);
+                $localName = USERDATADIR.$fileName; 		 
+                $isFile = true;
+            }
+            else 
+            {
+                $remoteName = $_POST['remoteTT'];
+                $fileName = substr(strrchr($remoteName,"/"),1);
+                $localName = USERTEMPDIR.$fileName; 		 		 	     
+                $isFile = false;
+            }
+      
+            $url = null;
+
+            if (substr($remoteName,0,4) == 'http')  
+                                                $url = 'http';
+            if (substr($remoteName,0,3) == 'ftp') 
+                                                $url = 'ftp';
+
+            if (!$url) 
+            {
+                $response = array( 'success' => false, 'error' => 'Unknown net protocol'); 
+                die(json_encode($response));
+            }
+
+            if (file_exists($localName) && $isFile) 
+            {
+                $response = array( 'success' => false, 'error' => 'File  '.$fileName.' exists'); 
+                die(json_encode($response));		 
+            }
+
+            if ($url == 'ftp') 
+                                $fileSize = filesize($remoteName);
+            else 
+                                $fileSize = getUrlFileSize($remoteName);
+
+            if (!$fileSize) 
+            {
+                $response = array( 'success' => false, 'error' => 'Can\'t estimate file size '.$fileName); 
+                die(json_encode($response));
+            }
+               
+            if ($file['size'] > DISK_QUOTA) 
+            {
+                $response = array( 'success' => false, 'error' => 'The file you selected is too big for allowed disk quota'); 
+                die(json_encode($response));
+            }
+             
+            if ($wsMgr->getWsSize() + $fileSize > DISK_QUOTA && $isFile) 
+            {
+                $response = array( 'success' => false, 'error' => 'Please clean up you workspace. You are about to exceed available disk space'); 
+                die(json_encode($response));
+            }
+
+            if ($fileSize > maxSize) 
+            {
+                $response = array( 'success' => false, 'error' => 'The uploaded file exceeds '.maxSize); 
+                die(json_encode($response));
+            }
+
+            if (!copy($remoteName, $localName)) 
+            {
+                $response = array( 'success' => false, 'error' => 'Can\'t copy '.$fileName); 
+                die(json_encode($response));
+            }
+
+            if (is_executable($localName))
+            {
+                $response = array( 'success' => false, 'error' => 'File '.$fileName.' is executable');		   
+                unlink($localName);
+                die(json_encode($response));		   
+            }
+
+            if ($isFile) 
+            {
+                $fileMgr = new FilesMgr();
+                $amdaStat = new AmdaStats($_POST['sessionID']);
+                if ($amdaStat->success)
+                    $amdaStat->addTask('upload', $_POST['sessionID'], null);
+            }
+            // Time Table
+            else 
+            {
+                $response = array( 'success' => true, 'file' => $fileName, 'format' => $_POST['ttfrmt'] );	  	     
+                die(json_encode($response)); 
+            }      
+        }
+        else 
+        {
+            // local files check
+            if ($_FILES['localFileName']) 
+            {
+                $file = $_FILES['localFileName']; 
+                $localName = USERDATADIR.$file['name'];
+                $isFile = true;
+            }
+            else if ($_FILES['attachment']) 
+            {
+                $file = $_FILES['attachment'];
+                $file['name'] = str_replace(" ","_",$file['name']);
+                $file['name'] = $_POST['sessionID'].'_'.date("Y-m-d\TH:i:s").'_'.$file['name'];
+                $localName = ATTACHMENTDIR.$file['name'];
+                $isFile = false;
+            }
+            else 
+            {
+                $file = $_FILES['localTTName'];
+                $localName = USERTEMPDIR.$file['name'];		     
+                $isFile = false;
+            }
+ 	
+            if($file['size'] === 0 && $file['error'] === 0){
+                $file['error'] = 5;
+            }
+
+            if ($file['error'] !== 0) 
+            {
+                $response = array( 'success' => false, 'error' => file_upload_error_message($file['error'])); 		   
+                die(json_encode($response));
+            }
+
+            if (file_exists($localName) && $isFile) 
+            {
+                $response = array( 'success' => false, 'error' => 'File  '.$file['name'].' exists'); 		  
+                die(json_encode($response));
+            }
+      
+            if (is_executable($file['tmp_name']))
+            {
+                $response = array( 'success' => false, 'error' => 'File '.$file['name'].' is executable'); 		  
+                unlink($file['tmp_name']);
+                die(json_encode($response));		   
+            }
+
+            if (!is_uploaded_file($file['tmp_name'])) 
+            {
+                $response = array( 'success' => false, 'error' => 'File '.$file['name'].' WASN\'T UPLOADED');		   
+                unlink($file['tmp_name']);
+                die(json_encode($response));		    
+            }	 
+                
+            if ($file['size'] > DISK_QUOTA) 
+            {
+                $response = array( 'success' => false, 'error' => 'The file you selected is too big for allowed disk quota'); 
+                die(json_encode($response));
+            }
+
+            if ($wsMgr->getWsSize() + $file['size'] > DISK_QUOTA) 
+            {
+                $response = array( 'success' => false, 'error' => 'Please clean up your workspace. You are about to exceed available disk space'); 
+                die(json_encode($response));
+            }
+                    
+            if (!rename($file['tmp_name'], $localName)) 
+            {
+                $response = array( 'success' => false, 'error' => 'Cannot copy file '.$file['name']);		    
+                unlink($file['tmp_name']);
+                die(json_encode($response));		    
+            }
+ 	  
+            if (file_exists($localName) && !$isFile) 
+            {
+                if ($_POST['ttfrmt'] == 'VOT') 
+                {
+                    $votMgr = new VOTableMgr();
+                    if (!$votMgr->load($localName) || !$votMgr->isValidSchema())
+                    {	   	
+                        $response = array( 'success' => false, 'error' => 'File  '.$file['name'].' is not valid'); 			   
+                        unlink($localName);
+                        die(json_encode($response));
+                    } 
+                }  
+            }
+
+            $fileName = $file['name'];
+
+            if ($isFile) 
+            {
+                $fileMgr = new FilesMgr();
+                $amdaStat = new AmdaStats($_POST['sessionID']);
+                if ($amdaStat->success)
+                    $amdaStat->addTask('upload', $_POST['sessionID'], null);
+            }
+            // Time Table
+            else 
+            {
+                $response = array( 'success' => true, 'file' => $fileName, 'format' => $_POST['ttfrmt'] );	  	    
+                die(json_encode($response)); 
+            } 
+        }
+ 	 
+        $response = $fileMgr->addFile($fileName, $allFormats);
+ 	         
+    echo json_encode($response);
+?>
diff --git a/public/WebServices/XML/AmdaPlots.xml b/public/WebServices/XML/AmdaPlots.xml
new file mode 100755
index 0000000..823bdae
--- /dev/null
+++ b/public/WebServices/XML/AmdaPlots.xml
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<des>
+  <missions>
+    <mission xml:id='ACE' name='ACE'>         
+	  <param name='sw_vb' class="plasma" description="velocity_magnitude" instrument="SWEPAM"/> 
+	  <param name='sw_t' class="plasma" description="temperature_radial" instrument="SWEPAM"/>	             
+	  <param name='sw_n' class="plasma" description="ion_density" instrument="SWEPAM"/>
+	  <param name='imf' class="mag" description="magnetic_field_vector" instrument="MAG"/> 
+	  <param name='imf_mag'  class="mag" description="magnetic_field_magnitude" instrument="MAG"/>	  
+    </mission>
+    <mission xml:id='WIND' name='WIND'>
+	  <param name='wnd_swe_vmag' class="plasma" description="velocity_magnitude" instrument="SWE"/> 	         
+          <param name='wnd_swe_vth' class="plasma" description="v_thermal" instrument="SWE"/> 
+          <param name='wnd_swe_n' class="plasma" description="ion_density" instrument="SWE"/> 
+	  <param name='wnd_b' class="mag" description="magnetic_field_vector" instrument="MFI"/> 
+	  <param name='wnd_bmag' class="mag" description="magnetic_field_magnitude" instrument="MFI"/>	  
+    </mission> 
+    <mission xml:id='STEREO-A' name='STA'>
+	  <param name='vpbulk_sta' class="plasma" description="velocity_magnitude" instrument="PLASTIC"/>
+	  <param name='vth_sta' class="plasma" description="v_thermal" instrument="PLASTIC"/>
+	  <param name='np_sta' class="plasma" description="ion_density" instrument="PLASTIC"/>
+	  <param name='sta_b' class="mag" description="magnetic_field_vector" instrument="MAG" />	
+	  <param name='sta_btot' class="mag" description="magnetic_field_magnitude" instrument="MAG" />	 
+    </mission>  
+    <mission xml:id='STEREO-B' name='STB'>
+	  <param name='vpbulk_stb' class="plasma" description="velocity_magnitude" instrument="PLASTIC"/>
+	  <param name='vth_stb' class="plasma" description="v_thermal" instrument="PLASTIC"/>
+	  <param name='np_stb' class="plasma" description="ion_density" instrument="PLASTIC"/>
+	  <param name='stb_b' class="mag" description="magnetic_field_vector" instrument="MAG"/>	
+	  <param name='stb_btot' class="mag" description="magnetic_field_magnitude" instrument="MAG"/>	 
+    </mission> 
+    <mission xml:id='VEX' name='VEX'>         
+	  <param name='vex_mag_4s' class="mag" description="magnetic_field_magnitude" instrument="MAG"/>
+	  <param name='vex_mag_4s_tot' class="mag" description="magnetic_field_magnitude" instrument="MAG"/>
+    </mission>    
+    <mission xml:id='OMNI' name='OMNI'>         
+	  <param name='omni_sw_v' class="plasma" description="velocity" instrument="imf/sw/indices"/>
+	  <param name='omni_sw_t' class="plasma" description="temperature" instrument="imf/sw/indices"/>
+	  <param name='omni_sw_n' class="plasma" description="density" instrument="imf/sw/indices"/>
+	  <param name='omni_imf' class="mag" description="magnetic_field_magnitude" instrument="imf/sw/indices"/>
+	  <param name='omni_imf_mag' class="mag" description="magnetic_field_magnitude" instrument="imf/sw/indices"/>
+    </mission>    
+    <mission xml:id='GEOMAG' name='GEOMAG'>         
+	  <param name='omni_kp' class="mag" description="geomagnetic_indices" instrument="imf/sw/indices"/>
+	  <param name='omni_dst' class="mag" description="geomagnetic_indices" instrument="imf/sw/indices"/>
+	  <param name='omni_ae' class="mag" description="geomagnetic_indices" instrument="imf/sw/indices"/>
+    </mission>    
+  </missions> 
+</des>
diff --git a/public/wsdl/Methods_AMDA.wsdl b/public/wsdl/Methods_AMDA.wsdl
new file mode 100644
index 0000000..1e0d852
--- /dev/null
+++ b/public/wsdl/Methods_AMDA.wsdl
@@ -0,0 +1,1264 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<wsdl:definitions xmlns:xs="http://www.w3.org/2001/XMLSchema"
+    xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:tns="http://cdpp-irap/IMPEX/v0.1"
+    xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+    name="Methods_AMDA" targetNamespace="http://cdpp-irap/IMPEX/v0.1">
+
+    <wsdl:types>
+        <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
+            xmlns:tns="http://cdpp-irap/IMPEX/v0.1" elementFormDefault="unqualified"
+            targetNamespace="http://cdpp-irap/IMPEX/v0.1" version="1.0">
+            <xs:element name="emptyElement">
+                <xs:complexType>
+                    <xs:sequence/>
+                </xs:complexType>
+            </xs:element>
+            <xs:element name="emptyAlive">
+                <xs:complexType>
+                    <xs:sequence/>
+                </xs:complexType>
+            </xs:element>
+            <xs:element name="getTimeTablesList" type="tns:getTimeTablesList"/>
+            <xs:element name="getTimeTablesListResponse" type="tns:getTimeTablesListResponse"/>
+
+            <xs:element name="getTimeTable" type="tns:getTimeTable"/>
+            <xs:element name="getTimeTableResponse" type="tns:getTimeTableResponse"/>
+
+            <xs:element name="getParameterList" type="tns:getParameterList"/>
+            <xs:element name="getParameterListResponse" type="tns:getParameterListResponse"/>
+
+            <xs:element name="getParameter" type="tns:getParameter"/>
+            <xs:element name="getParameterResponse" type="tns:getParameterResponse"/>
+            
+             <xs:element name="getDataset" type="tns:getDataset"/>
+            <xs:element name="getDatasetResponse" type="tns:getDatasetResponse"/>
+            
+             <xs:element name="getPlot" type="tns:getPlot"/>
+            <xs:element name="getPlotResponse" type="tns:getPlotResponse"/>
+
+            <xs:element name="getOrbites" type="tns:getOrbites"/>
+            <xs:element name="getOrbitesResponse" type="tns:getOrbitesResponse"/> 
+
+            <xs:element name="getObsDataTreeResponse" type="tns:getObsDataTreeResponse"/>
+            
+            <xs:element name="alive" type="xs:boolean"/>
+            
+            <xs:complexType name="getObsDataTreeResponse">
+                <xs:sequence>
+                    <xs:element name="success" minOccurs="0" maxOccurs="1" type="xs:boolean">
+                        <xs:annotation>
+                            <xs:documentation>If methode is OK success = true, else success = false</xs:documentation>
+                        </xs:annotation>
+                    </xs:element>
+                    <xs:element name="WorkSpace" type="tns:WorkSpace" minOccurs="1" maxOccurs="1">
+                        <xs:annotation>
+                            <xs:documentation>Url's of AmdaUserTree file which must be generated
+                                after connections. Contents: AMDA local parameters, Remote
+                                Parameters, Shared Predefined Parameters. </xs:documentation>
+                        </xs:annotation>
+                    </xs:element>
+                </xs:sequence>
+            </xs:complexType>
+
+            <xs:complexType name="getTimeTablesList">
+                <xs:sequence>
+                    <xs:element name="userID" type="xs:string" minOccurs="0" maxOccurs="1">
+                        <xs:annotation>
+                            <xs:documentation>ID of AMDA user storing in the 3DView. Must TBD. If no
+                                user ID, result is shared Timetables from IMPEX user.
+                            </xs:documentation>
+                        </xs:annotation>
+                    </xs:element>
+                    <xs:element name="password" type="xs:string" minOccurs="0" maxOccurs="1">
+                        <xs:annotation>
+                            <xs:documentation>Crypt Password of AMDA user storing in the 3DView.
+                                Must TBD encryption types</xs:documentation>
+                        </xs:annotation>
+                    </xs:element>
+                </xs:sequence>
+            </xs:complexType>
+
+            <xs:complexType name="getTimeTablesListResponse">
+                <xs:sequence>
+                    <xs:element name="success" minOccurs="0" maxOccurs="1" type="xs:boolean">
+                        <xs:annotation>
+                            <xs:documentation>Url of TimeTables storage file with TimeTables
+                                ID's.</xs:documentation>
+                        </xs:annotation>
+                    </xs:element>
+                    <xs:element name="TimeTablesList" minOccurs="0" maxOccurs="1" type="xs:anyURI">
+                        <xs:annotation>
+                            <xs:documentation>Url of TimeTables storage file with TimeTables
+                                ID's.</xs:documentation>
+                        </xs:annotation>
+                    </xs:element>
+                </xs:sequence>
+            </xs:complexType>
+
+            <xs:complexType name="getParameterList">
+                <xs:sequence>
+                    <xs:element name="userID" type="xs:string" minOccurs="1" maxOccurs="1">
+                        <xs:annotation>
+                            <xs:documentation>ID of AMDA user</xs:documentation>
+                        </xs:annotation>
+                    </xs:element>
+                    <xs:element name="password" type="xs:string" minOccurs="0" maxOccurs="1">
+                        <xs:annotation>
+                            <xs:documentation>Crypt Password of AMDA user storing in the 3DView.
+                                Must TBD encryption types</xs:documentation>
+                        </xs:annotation>
+                    </xs:element>
+                </xs:sequence>
+            </xs:complexType>
+
+            <xs:complexType name="getParameterListResponse">
+                <xs:sequence>
+                    <xs:element name="success" minOccurs="0" maxOccurs="1" type="xs:boolean">
+                        <xs:annotation>
+                            <xs:documentation>Url of TimeTables storage file with TimeTables
+                                ID's.</xs:documentation>
+                        </xs:annotation>
+                    </xs:element>
+                    <xs:element name="ParameterList" type="tns:ParameterList" minOccurs="1"
+                        maxOccurs="1">
+                        <xs:annotation>
+                            <xs:documentation>Url of AmdaUserTree file which must be generated after
+                                the user connections Contents: User groups local parameters, User
+                                remote parameters, user predefined parameters. </xs:documentation>
+                        </xs:annotation>
+                    </xs:element>
+                </xs:sequence>
+            </xs:complexType>
+
+            <xs:simpleType name="enumSpacecraft">
+                <xs:restriction base="xs:string">
+                    <xs:enumeration value="Cassini_Public"/>
+                    <xs:enumeration value="Galileo"/>
+                    <xs:enumeration value="Voyager_1"/>
+                    <xs:enumeration value="Voyager_2"/>
+                    <xs:enumeration value="Pioneer_10"/>
+                    <xs:enumeration value="Pioneer_11"/>
+                    <xs:enumeration value="PVO"/>
+                    <xs:enumeration value="ACE"/>
+                    <xs:enumeration value="VEX"/>
+                    <xs:enumeration value="MEX"/>
+                    <xs:enumeration value="MGS"/>
+                    <xs:enumeration value="MAVEN"/>
+                    <xs:enumeration value="MESSENGER"/>
+                    <xs:enumeration value="ULYSSES"/>
+                    <xs:enumeration value="Stereo-A"/>
+                    <xs:enumeration value="Stereo-B"/>
+                    <xs:enumeration value="WIND"/>
+                    <xs:enumeration value="THEMIS-A"/>
+                    <xs:enumeration value="THEMIS-B"/>
+                    <xs:enumeration value="THEMIS-C"/>
+                    <xs:enumeration value="THEMIS-D"/>
+                    <xs:enumeration value="THEMIS-E"/>
+                    <xs:enumeration value="CLUSTER1"/>
+                    <xs:enumeration value="CLUSTER2"/>
+                    <xs:enumeration value="CLUSTER3"/>
+                    <xs:enumeration value="CLUSTER4"/>
+                    <xs:enumeration value="DoubleStar1"/>
+                    <xs:enumeration value="IMP-8"/>
+                    <xs:enumeration value="GEOTAIL"/>
+                    <xs:enumeration value="POLAR"/>
+                    <xs:enumeration value="INTERBALL-Tail"/>
+                    <xs:enumeration value="ISEE-1"/>
+                    <xs:enumeration value="ISEE-2"/>
+                </xs:restriction>
+            </xs:simpleType>
+
+            <xs:simpleType name="WorkSpaceValue">
+                <xs:restriction base="xs:string">
+                    <xs:enumeration value="TimeTables"/>
+                    <xs:enumeration value="UserDefinedParameters"/>
+                    <xs:enumeration value="LocalDataBaseParameters"/>
+                    <xs:enumeration value="RemoteDataBaseParameters"/>
+                </xs:restriction>
+            </xs:simpleType>
+            
+              <!-- ==========================
+Coordinate System Name
+
+Identifiers of the origin and orientation
+of a set of typically orthogonal axes.
+========================== -->
+   <xsd:simpleType name="enumCoordinateSystemName">
+      <xsd:annotation>
+         <xsd:documentation xml:lang="en">
+               Identifiers of the origin and orientation
+               of a set of typically orthogonal axes.
+            </xsd:documentation>
+      </xsd:annotation>
+      <xsd:restriction base="xsd:string">
+         <xs:enumeration value="CPHIO"/>
+         <xs:enumeration value="GPHIO"/>
+         <xs:enumeration value="IPHIO"/>
+         <xs:enumeration value="EPHIO"/> 
+         <xs:enumeration value="Equatorial"/> 
+         <xsd:enumeration value="CGM">
+            <xsd:annotation>
+               <xsd:documentation xml:lang="en">
+            Corrected Geomagnetic - A coordinate system
+            from a spatial point with GEO radial distance
+            and geomagnetic latitude and longitude, follow
+            the epoch-appropriate IGRF/DGRF model field
+            vector through to the point where the field
+            line crosses the geomagnetic dipole equatorial
+            plane. Then trace the dipole magnetic field
+            vector Earthward from that point on the equatorial
+            plane, in the same hemisphere as the original
+            point, until the initial radial distance is
+            reached. Designate the dipole latitude and
+            longitude at that point as the CGM latitude
+            and longitude of the original point. See &lt;http://nssdc.gsfc.nasa.gov/space/cgm/cgmm_des.html&gt;
+         </xsd:documentation>
+            </xsd:annotation>
+         </xsd:enumeration>
+         <xsd:enumeration value="Carrington">
+            <xsd:annotation>
+               <xsd:documentation xml:lang="en">
+            A coordinate system which is centered at the
+            Sun and is "fixed" with respect to the synodic
+            rotation rate; the mean synodic value is about
+            27.2753 days. The Astronomical Almanac gives
+            a value for Carrington longitude of 349.03
+            degrees at 0000 UT on 1 January 1995.
+         </xsd:documentation>
+            </xsd:annotation>
+         </xsd:enumeration>
+         <xsd:enumeration value="DM">
+            <xsd:annotation>
+               <xsd:documentation xml:lang="en">
+            Dipole Meridian - A coordinate system centered
+            at the observation point. Z axis is parallel
+            to the Earth's dipole axis, positive northward.
+            X is in the plane defined by Z and the line
+            linking the observation point with the Earth's
+            center. Y is positive eastward. See &lt;http://cdpp.cnes.fr/00428.pdf&gt;
+         </xsd:documentation>
+            </xsd:annotation>
+         </xsd:enumeration>
+         <xsd:enumeration value="GEI">
+            <xsd:annotation>
+               <xsd:documentation xml:lang="en">
+            Geocentric Equatorial Inertial - A coordinate
+            system where the Z axis is along Earth's spin
+            vector, positive northward. X axis points
+            towards the first point of Aries (from the
+            Earth towards the Sun at the vernal equinox).
+            See Russell, 1971
+         </xsd:documentation>
+            </xsd:annotation>
+         </xsd:enumeration>
+         <xsd:enumeration value="GEO">
+            <xsd:annotation>
+               <xsd:documentation xml:lang="en">
+            Geographic - geocentric corotating - A coordinate
+            system where the Z axis is along Earth's spin
+            vector, positive northward. X axis lies in
+            Greenwich meridian, positive towards Greenwich.
+            See Russell, 1971.
+         </xsd:documentation>
+            </xsd:annotation>
+         </xsd:enumeration>
+         <xsd:enumeration value="GSE">
+            <xsd:annotation>
+               <xsd:documentation xml:lang="en">
+            Geocentric Solar Ecliptic - A coordinate system
+            where the X axis is from Earth to Sun. Z axis
+            is normal to the ecliptic, positive northward.
+            See Russell, 1971.
+         </xsd:documentation>
+            </xsd:annotation>
+         </xsd:enumeration>
+         <xsd:enumeration value="GSEQ">
+            <xsd:annotation>
+               <xsd:documentation xml:lang="en">
+            Geocentric Solar Equatorial - A coordinate
+            system where the X axis is from Earth to Sun.
+            Y axis is parallel to solar equatorial plane.
+            Z axis is positive northward. See Russell,
+            1971
+         </xsd:documentation>
+            </xsd:annotation>
+         </xsd:enumeration>
+         <xsd:enumeration value="GSM">
+            <xsd:annotation>
+               <xsd:documentation xml:lang="en">
+            Geocentric Solar Magnetospheric - A coordinate
+            system where the X axis is from Earth to Sun,
+            Z axis is northward in a plane containing
+            the X axis and the geomagnetic dipole axis.
+            See Russell, 1971
+         </xsd:documentation>
+            </xsd:annotation>
+         </xsd:enumeration>
+         <xsd:enumeration value="HAE">
+            <xsd:annotation>
+               <xsd:documentation xml:lang="en">
+            Heliocentric Aries Ecliptic - A coordinate
+            system where the Z axis is normal to the ecliptic
+            plane, positive northward. X axis is positive
+            towards the first point of Aries (from Earth
+            to Sun at vernal equinox). Same as SE below.
+            See Hapgood, 1992.
+         </xsd:documentation>
+            </xsd:annotation>
+         </xsd:enumeration>
+         <xsd:enumeration value="HCC">
+            <xsd:annotation>
+               <xsd:documentation xml:lang="en">
+            Heliocentric Cartesian - A 3-D orthonormal
+            coordinate system that is primarily intended
+            to specify with two dimensions a point on
+            the solar disk. The Z axis points toward the
+            observer. The Y axis lies in the plane defined
+            by the solar spin vector and the Z axis, positive
+            northward. The X axis is perpendicular to
+            the Y and Z axes, positive toward solar west.
+            Standard representation for this system is
+            via the point's x and y values, expressed
+            either as physical distances or as fractions
+            of the solar disk radius.
+         </xsd:documentation>
+            </xsd:annotation>
+         </xsd:enumeration>
+         <xsd:enumeration value="HCI">
+            <xsd:annotation>
+               <xsd:documentation xml:lang="en">
+            Heliographic Carrington Inertial.
+         </xsd:documentation>
+            </xsd:annotation>
+         </xsd:enumeration>
+         <xsd:enumeration value="HCR">
+            <xsd:annotation>
+               <xsd:documentation xml:lang="en">
+            Heliocentric Radial - A 3-D orthonormal coordinate
+            system that is primarily intended to specify
+            with two dimensions a point on the solar disk.
+            The Z axis points toward the observer. The
+            Y axis lies in the plane defined by the solar
+            spin vector and the Z axis, positive northward.
+            The X axis is perpendicular to the Y and Z
+            axes, positive toward solar west. Standard
+            representation for this system is via the
+            point's distance rho from the Z axis [Rho
+            = SQRT(x**2 + y**2)] and its phase angle psi
+            measured counterclockwise from the +Y axis
+            [psi = arctan (-y/x)]
+         </xsd:documentation>
+            </xsd:annotation>
+         </xsd:enumeration>
+         <xsd:enumeration value="HEE">
+            <xsd:annotation>
+               <xsd:documentation xml:lang="en">
+            Heliocentric Earth Ecliptic - A coordinate
+            system where the Z axis is normal to the ecliptic
+            plane, positive northward. X axis points from
+            Sun to Earth. See Hapgood, 1992
+         </xsd:documentation>
+            </xsd:annotation>
+         </xsd:enumeration>
+         <xsd:enumeration value="HEEQ">
+            <xsd:annotation>
+               <xsd:documentation xml:lang="en">
+            Heliocentric Earth Equatorial - A coordinate
+            system where the Z axis is normal to the solar
+            equatorial plane, positive northward. X axis
+            is generally Earthward in the plane defined
+            by the Z axis and the Sun-Earth direction.
+            See Hapgood, 1992.
+         </xsd:documentation>
+            </xsd:annotation>
+         </xsd:enumeration>
+         <xsd:enumeration value="HG">
+            <xsd:annotation>
+               <xsd:documentation xml:lang="en">
+            Heliographic - A heliocentric rotating coordinate
+            system where the Z axis is normal to the solar
+            equatorial plane, positive northward. X, Y
+            axes rotate with a 25.38 day period. The zero
+            longitude (X axis) is defined as the longitude
+            that passed through the ascending node of
+            the solar equator on the ecliptic plane on
+            1 January, 1854 at 12 UT. See &lt;http://nssdc.gsfc.nasa.gov/space/helios/coor_des.html&gt;
+         </xsd:documentation>
+            </xsd:annotation>
+         </xsd:enumeration>
+         <xsd:enumeration value="HGI">
+            <xsd:annotation>
+               <xsd:documentation xml:lang="en">
+            Heliographic Inertial - A heliocentric coordinate
+            system where the Z axis is normal to the solar
+            equatorial plane, positive northward. X axis
+            is along the intersection line between solar
+            equatorial and ecliptic planes. The X axis
+            was positive at SE longitude of 74.367 deg
+            on Jan 1, 1900. (See SE below.) See &lt;http://nssdc.gsfc.nasa.gov/space/helios/coor_des.html&gt;
+         </xsd:documentation>
+            </xsd:annotation>
+         </xsd:enumeration>
+         <xsd:enumeration value="HPC">
+            <xsd:annotation>
+               <xsd:documentation xml:lang="en">
+            Helioprojective Cartesian = A 3-D orthonormal
+            (left-handed) coordinate system that is primarily
+            intended to specify with two dimensions a
+            point on the solar disk. The Z axis points
+            from the observer to the center of the solar
+            disk. The Y axis lies in the plane defined
+            by the solar spin vector and the Z axis, positive
+            northward. The X axis is perpendicular to
+            the Y and Z axes, positive toward solar west.
+            Given as the distance between the observer
+            and the center of the solar disk, the standard
+            representation of an (x,y) point on the solar
+            disk is via the point's longitude angle [arctan
+            (x/d)] and latitude angle [arctan y/d].
+         </xsd:documentation>
+            </xsd:annotation>
+         </xsd:enumeration>
+         <xsd:enumeration value="HPR">
+            <xsd:annotation>
+               <xsd:documentation xml:lang="en">
+            Helioprojective Radial - A 3-D orthonormal
+            (left-handed) coordinate system that is primarily
+            intended to specify with two dimensions a
+            point on the solar disk. The Z axis points
+            from the observer to the center of the solar
+            disk. The Y axis lies in the plane defined
+            by the solar spin vector and the Z axis, positive
+            northward. The X axis is perpendicular to
+            the Y and Z axes, positive toward solar west.
+            Given as the distance between the observer
+            and the center of the solar disk, the standard
+            representation for this system of an (x,y)
+            point on the solar disk is via the point's
+            latitude angle theta {= arctan [SQRT(x**2
+            + y**2)]/d]} or equivalent declination parameter
+            delta (= theta - 90 deg), and its phase angle
+            psi as measured counter- clockwise from the
+            +Y axis [psi = arctan (-y/x)].
+         </xsd:documentation>
+            </xsd:annotation>
+         </xsd:enumeration>
+         <xsd:enumeration value="J2000">
+            <xsd:annotation>
+               <xsd:documentation xml:lang="en">
+            An astronomical coordinate system which uses
+            the mean equator and equinox of Julian date
+            2451545.0 TT (Terrestrial Time), or January
+            1, 2000, noon TT. (aka J2000) to define a
+            celestial reference frame.
+         </xsd:documentation>
+            </xsd:annotation>
+         </xsd:enumeration>
+         <xsd:enumeration value="LGM">
+            <xsd:annotation>
+               <xsd:documentation xml:lang="en">
+            Local Geomagnetic - A coordinate system used
+            mainly for Earth surface or near Earth surface
+            magnetic field data. X axis northward from
+            observation point in a geographic meridian.
+            Z axis downward towards Earth's center. In
+            this system, H (total horizontal component)
+            = SQRT (Bx^2 + By^2) and D (declination angle)
+            = arctan (By/Bx)
+         </xsd:documentation>
+            </xsd:annotation>
+         </xsd:enumeration>
+         <xsd:enumeration value="MAG">
+            <xsd:annotation>
+               <xsd:documentation xml:lang="en">
+            Geomagnetic - geocentric. Z axis is parallel
+            to the geomagnetic dipole axis, positive north.
+            X is in the plane defined by the Z axis and
+            the Earth's rotation axis. If N is a unit
+            vector from the Earth's center to the north
+            geographic pole, the signs of the X and Y
+            axes are given by Y = N x Z, X = Y x Z.. See
+            Russell, 1971, and &lt;http://cdpp.cnes.fr/00428.pdf&gt;
+         </xsd:documentation>
+            </xsd:annotation>
+         </xsd:enumeration>
+         <xsd:enumeration value="MFA">
+            <xsd:annotation>
+               <xsd:documentation xml:lang="en">
+            Magnetic Field Aligned - A coordinate system
+            spacecraft-centered system with Z in the direction
+            of the ambient magnetic field vector. X is
+            in the plane defined by Z and the spacecraft-Sun
+            line, positive sunward. See &lt;http://cdpp.cnes.fr/00428.pdf&gt;
+         </xsd:documentation>
+            </xsd:annotation>
+         </xsd:enumeration>
+         <xsd:enumeration value="RTN">
+            <xsd:annotation>
+               <xsd:documentation xml:lang="en">
+            Radial Tangential Normal. Typically centered
+            at a spacecraft. Used for IMF and plasma V
+            vectors. R (radial) axis is radially away
+            from the Sun, T (tangential) axis is normal
+            to the plane formed by R and the Sun's spin
+            vector, positive in the direction of planetary
+            motion. N (normal) is R x T.
+         </xsd:documentation>
+            </xsd:annotation>
+         </xsd:enumeration>
+         <xsd:enumeration value="SC">
+            <xsd:annotation>
+               <xsd:documentation xml:lang="en">
+            Spacecraft - A coordinate system defined by
+            the spacecraft geometry and/or spin. Often
+            has Z axis parallel to spacecraft spin vector.
+            X and Y axes may or may not corotate with
+            the spacecraft. See SR and SR2 below.
+         </xsd:documentation>
+            </xsd:annotation>
+         </xsd:enumeration>
+         <xsd:enumeration value="SE">
+            <xsd:annotation>
+               <xsd:documentation xml:lang="en">
+            Solar Ecliptic - A heliocentric coordinate
+            system where the Z axis is normal to the ecliptic
+            plane, positive northward. X axis is positive
+            towards the first point of Aries (from Earth
+            to Sun at vernal equinox). Same as HAE above.
+            See &lt;http://nssdc.gsfc.nasa.gov/space/helios/coor_des.html&gt;
+         </xsd:documentation>
+            </xsd:annotation>
+         </xsd:enumeration>
+         <xsd:enumeration value="SM">
+            <xsd:annotation>
+               <xsd:documentation xml:lang="en">
+            Solar Magnetic - A geocentric coordinate system
+            where the Z axis is northward along Earth's
+            dipole axis, X axis is in plane of z axis
+            and Earth-Sun line, positive sunward. See
+            Russell, 1971.
+         </xsd:documentation>
+            </xsd:annotation>
+         </xsd:enumeration>
+         <xsd:enumeration value="SR">
+            <xsd:annotation>
+               <xsd:documentation xml:lang="en">
+            Spin Reference - A special case of a Spacecraft
+            (SC) coordinate system for a spinning spacecraft.
+            Z is parallel to the spacecraft spin vector.
+            X and Y rotate with the spacecraft. See &lt;http://cdpp.cnes.fr/00428.pdf&gt;
+         </xsd:documentation>
+            </xsd:annotation>
+         </xsd:enumeration>
+         <xsd:enumeration value="SR2">
+            <xsd:annotation>
+               <xsd:documentation xml:lang="en">
+            Spin Reference 2 - A special case of a Spacecraft
+            (SC) coordinate system for a spinning spacecraft.
+            Z is parallel to the spacecraft spin vector.
+            X is in the plane defined by Z and the spacecraft-Sun
+            line, positive sunward. See &lt;http://cdpp.cnes.fr/00428.pdf&gt;
+         </xsd:documentation>
+            </xsd:annotation>
+         </xsd:enumeration>
+         <xsd:enumeration value="SSE">
+            <xsd:annotation>
+               <xsd:documentation xml:lang="en">
+            Spacecraft Solar Ecliptic - A coordinate system
+            used for deep space spacecraft, for example
+            Helios. - X axis from spacecraft to Sun. Z
+            axis normal to ecliptic plane, positive northward.
+            Note: Angle between normals to ecliptic and
+            to Helios orbit plane ~ 0.25 deg.
+         </xsd:documentation>
+            </xsd:annotation>
+         </xsd:enumeration>
+         <xsd:enumeration value="SSE_L">
+            <xsd:annotation>
+               <xsd:documentation xml:lang="en">
+            Selenocentric Solar Ecliptic.  The X axis
+            points from the center of the Earth's moon
+            to the sun, the Z axis is normal to the ecliptic
+            plane, positive northward.  And the Y axis
+            completes the right-handed set of axes.
+         </xsd:documentation>
+            </xsd:annotation>
+         </xsd:enumeration>
+         <xsd:enumeration value="SpacecraftOrbitPlane">
+            <xsd:annotation>
+               <xsd:documentation xml:lang="en">
+            A coordinate system where X lies in the plane
+            normal to and in the direction of motion of
+            the spacecraft, Z is normal to this plane
+            and Y completes the triad in a right-handed
+            coordinate system.
+         </xsd:documentation>
+            </xsd:annotation>
+         </xsd:enumeration>
+         <xsd:enumeration value="WGS84">
+            <xsd:annotation>
+               <xsd:documentation xml:lang="en">
+            The World Geodetic System (WGS) defines a
+            reference frame for the earth, for use in
+            geodesy and navigation. The WGS84 uses the
+            zero meridian as defined by the Bureau International
+            de l'Heure.
+         </xsd:documentation>
+            </xsd:annotation>
+         </xsd:enumeration>
+         <xsd:enumeration value="MSO">
+            <xsd:annotation>
+               <xsd:documentation xml:lang="en">
+                  Coordinate Sytem Related to Mars or Mercury
+                  Depending on the Targeted Region
+        </xsd:documentation>
+            </xsd:annotation>
+         </xsd:enumeration>
+         <xsd:enumeration value="VSO">
+            <xsd:annotation>
+               <xsd:documentation xml:lang="en">
+                  Coordinate Sytem Related to Venus
+        </xsd:documentation>
+            </xsd:annotation>
+         </xsd:enumeration>
+      </xsd:restriction>
+   </xsd:simpleType>
+
+            <xs:complexType name="ParameterList">
+                <xs:sequence>
+                    <xs:element minOccurs="0" maxOccurs="1" name="UserDefinedParameters"
+                        type="xs:anyURI"/>
+                    <xs:element minOccurs="0" maxOccurs="1" name="LocalDataBaseParameters"
+                        type="xs:anyURI"/>
+                    <xs:element minOccurs="0" maxOccurs="1" name="RemoteDataBaseParameters"
+                        type="xs:anyURI"/>
+                </xs:sequence>
+            </xs:complexType>
+
+
+            <xs:complexType name="WorkSpace">
+                <xs:sequence>
+                    <xs:element minOccurs="0" maxOccurs="1" name="LocalDataBaseParameters"
+                        type="xs:anyURI"/>
+                    <xs:element minOccurs="0" maxOccurs="1" name="RemoteDataBaseParameters"
+                        type="xs:anyURI"/>
+                </xs:sequence>
+            </xs:complexType>
+
+            <xs:complexType name="getParameter">
+                <xs:sequence>
+                    <xs:element name="startTime" type="xs:string" minOccurs="1" maxOccurs="1">
+                        <xs:annotation>
+                            <xs:documentation>Start time in ISO 8601 format</xs:documentation>
+                        </xs:annotation>
+                    </xs:element>
+                    <xs:element name="stopTime" type="xs:string" minOccurs="1" maxOccurs="1">
+                        <xs:annotation>
+                            <xs:documentation>Stop time in ISO 8601 format</xs:documentation>
+                        </xs:annotation>
+                    </xs:element>
+                    <xs:element name="parameterID" type="xs:string" minOccurs="1" maxOccurs="1">
+                        <xs:annotation>
+                            <xs:documentation>Id of parameter defined in
+                                Amda LocalParams.xml</xs:documentation>
+                        </xs:annotation>
+                    </xs:element>
+                    <xs:element name="sampling" type="xs:float" minOccurs="0" maxOccurs="1">
+                        <xs:annotation>
+                            <xs:documentation>Sampling or average time in sec</xs:documentation>
+                        </xs:annotation>
+                    </xs:element>
+                    <xs:element name="userID" type="xs:string" minOccurs="0" maxOccurs="1">
+                        <xs:annotation>
+                            <xs:documentation>ID of AMDA user storing in the 3DView. Must TBD For
+                                public data is optional. </xs:documentation>
+                        </xs:annotation>
+                    </xs:element>
+                    <xs:element name="password" type="xs:string" minOccurs="0" maxOccurs="1">
+                        <xs:annotation>
+                            <xs:documentation>Crypt Password of AMDA user storing in the 3DView.
+                                Must TBD encryption types Required for predefined parameters.
+                            </xs:documentation>
+                        </xs:annotation>
+                    </xs:element>
+                    <xs:element name="outputFormat" minOccurs="0" maxOccurs="1">
+                        <xs:annotation>
+                            <xs:documentation> Choice is possible between the two formats: netCDF,
+                                ASCII and VOTable. If the format is not specified it will be netCDF
+                                by default</xs:documentation>
+                        </xs:annotation>
+                        <xs:simpleType>
+                            <xs:restriction base="xs:string">
+                                <xs:enumeration value="netCDF"/>
+                                <xs:enumeration value="VOTable"/>
+                                <xs:enumeration value="ASCII"/>
+                            </xs:restriction>
+                        </xs:simpleType>
+                    </xs:element>
+                    <xs:element name="timeFormat" minOccurs="0" maxOccurs="1">
+                        <xs:annotation>
+                            <xs:documentation> Choice is possible between the two formats: ISO 8601
+                                or unixtime. If the format is not specified it will be ISO 8601 by
+                                default</xs:documentation>
+                        </xs:annotation>
+                        <xs:simpleType>
+                            <xs:restriction base="xs:string">
+                                <xs:enumeration value="ISO8601"/>
+                                <xs:enumeration value="unixtime"/>
+                            </xs:restriction>
+                        </xs:simpleType>
+                    </xs:element>
+                    <xs:element name="gzip" minOccurs="0" maxOccurs="1" type="xs:integer">
+                        <xs:annotation>
+                            <xs:documentation>1 to compress data with gzip (0 by
+                                default)</xs:documentation>
+                        </xs:annotation>
+                    </xs:element>
+                </xs:sequence>
+            </xs:complexType>
+
+            <xs:complexType name="getParameterResponse">
+                <xs:sequence>
+                    <xs:element name="success" minOccurs="0" maxOccurs="1" type="xs:boolean">
+                        <xs:annotation>
+                            <xs:documentation>Url of TimeTables storage file with TimeTables
+                                ID's.</xs:documentation>
+                        </xs:annotation>
+                    </xs:element>
+                    <xs:element maxOccurs="unbounded" minOccurs="0" name="dataFileURLs"
+                        type="xs:anyURI">
+                        <xs:annotation>
+                            <xs:documentation>URLs of results data files. If not URLs - not data for
+                                required parameters</xs:documentation>
+                        </xs:annotation>
+                    </xs:element>
+                </xs:sequence>
+            </xs:complexType>
+            
+             <xs:complexType name="getDataset">
+                <xs:sequence>
+                    <xs:element name="startTime" type="xs:string" minOccurs="1" maxOccurs="1">
+                        <xs:annotation>
+                            <xs:documentation>Start time in ISO 8601 format</xs:documentation>
+                        </xs:annotation>
+                    </xs:element>
+                    <xs:element name="stopTime" type="xs:string" minOccurs="1" maxOccurs="1">
+                        <xs:annotation>
+                            <xs:documentation>Stop time in ISO 8601 format</xs:documentation>
+                        </xs:annotation>
+                    </xs:element>
+                    <xs:element name="datasetID" type="xs:string" minOccurs="1" maxOccurs="1">
+                        <xs:annotation>
+                            <xs:documentation>Id of Data Sets defined in 
+                                Amda LocalParams.xml</xs:documentation>
+                        </xs:annotation>
+                    </xs:element>
+                    <xs:element name="sampling" type="xs:float" minOccurs="0" maxOccurs="1">
+                        <xs:annotation>
+                            <xs:documentation>Sampling or average time in sec</xs:documentation>
+                        </xs:annotation>
+                    </xs:element>
+                    <xs:element name="userID" type="xs:string" minOccurs="0" maxOccurs="1">
+                        <xs:annotation>
+                            <xs:documentation>ID of AMDA user. For
+                                public data is optional. </xs:documentation>
+                        </xs:annotation>
+                    </xs:element>
+                    <xs:element name="password" type="xs:string" minOccurs="0" maxOccurs="1">
+                        <xs:annotation>
+                            <xs:documentation>Crypt Password of AMDA user.
+                                Must TBD encryption types Required for predefined parameters.
+                            </xs:documentation>
+                        </xs:annotation>
+                    </xs:element>
+                    <xs:element name="outputFormat" minOccurs="0" maxOccurs="1">
+                        <xs:annotation>
+                            <xs:documentation> Choice is possible between the 3 formats: netCDF,
+                                ASCII and VOTable. If the format is not specified it will be netCDF
+                                by default</xs:documentation>
+                        </xs:annotation>
+                        <xs:simpleType>
+                            <xs:restriction base="xs:string">
+                                <xs:enumeration value="netCDF"/>
+                                <xs:enumeration value="VOTable"/>
+                                <xs:enumeration value="ASCII"/>
+                            </xs:restriction>
+                        </xs:simpleType>
+                    </xs:element>
+                    <xs:element name="timeFormat" minOccurs="0" maxOccurs="1">
+                        <xs:annotation>
+                            <xs:documentation> Choice is possible between the two formats: ISO 8601
+                                or unixtime. If the format is not specified it will be ISO 8601 by
+                                default</xs:documentation>
+                        </xs:annotation>
+                        <xs:simpleType>
+                            <xs:restriction base="xs:string">
+                                <xs:enumeration value="ISO8601"/>
+                                <xs:enumeration value="unixtime"/>
+                            </xs:restriction>
+                        </xs:simpleType>
+                    </xs:element>
+                    <xs:element name="gzip" minOccurs="0" maxOccurs="1" type="xs:integer">
+                        <xs:annotation>
+                            <xs:documentation>1 to compress data with gzip (0 by
+                                default)</xs:documentation>
+                        </xs:annotation>
+                    </xs:element>
+                </xs:sequence>
+            </xs:complexType>
+
+            <xs:complexType name="getDatasetResponse">
+                <xs:sequence>
+                    <xs:element name="success" minOccurs="0" maxOccurs="1" type="xs:boolean">
+                        <xs:annotation>
+                            <xs:documentation>Url of TimeTables storage file with TimeTables
+                                ID's.</xs:documentation>
+                        </xs:annotation>
+                    </xs:element>
+                    <xs:element maxOccurs="unbounded" minOccurs="0" name="dataFileURLs"
+                        type="xs:anyURI">
+                        <xs:annotation>
+                            <xs:documentation>URLs of results data files. If not URLs - not data for
+                                required parameters</xs:documentation>
+                        </xs:annotation>
+                    </xs:element>
+                </xs:sequence>
+            </xs:complexType>           
+
+             <xs:complexType name="getPlot">
+                <xs:sequence>
+                    <xs:element name="startTime" type="xs:string" minOccurs="1" maxOccurs="1">
+                        <xs:annotation>
+                            <xs:documentation>Start time in ISO 8601 format</xs:documentation>
+                        </xs:annotation>
+                    </xs:element>
+                    <xs:element name="stopTime" type="xs:string" minOccurs="1" maxOccurs="1">
+                        <xs:annotation>
+                            <xs:documentation>Stop time in ISO 8601 format</xs:documentation>
+                        </xs:annotation>
+                    </xs:element>
+                    <xs:element name="missionID" type="xs:string" minOccurs="1" maxOccurs="1">
+                        <xs:annotation>
+                            <xs:documentation>Id of mission defined in 
+                                Amda LocalParams.xml</xs:documentation>
+                        </xs:annotation>
+                    </xs:element>
+                    <xs:element name="userID" type="xs:string" minOccurs="0" maxOccurs="1">
+                        <xs:annotation>
+                            <xs:documentation>ID of AMDA user</xs:documentation>
+                        </xs:annotation>
+                    </xs:element>
+                    <xs:element name="password" type="xs:string" minOccurs="0" maxOccurs="1">
+                        <xs:annotation>
+                            <xs:documentation>Password of AMDA</xs:documentation>
+                        </xs:annotation>
+                    </xs:element>
+                </xs:sequence>
+            </xs:complexType>
+
+            <xs:complexType name="getPlotResponse">
+                <xs:sequence>
+                    <xs:element name="success" minOccurs="0" maxOccurs="1" type="xs:boolean">
+                        <xs:annotation>
+                            <xs:documentation>Url of png plot</xs:documentation>
+                        </xs:annotation>
+                    </xs:element>
+                    <xs:element name="plotFileURL" type="xs:anyURI" minOccurs="1" maxOccurs="1">
+                        <xs:annotation>
+                            <xs:documentation>URL of png file</xs:documentation>
+                        </xs:annotation>
+                    </xs:element>
+                </xs:sequence>
+            </xs:complexType>           
+
+            <xs:complexType name="getOrbites">
+                <xs:sequence>
+                    <xs:element name="startTime" type="xs:string" minOccurs="1" maxOccurs="1">
+                        <xs:annotation>
+                            <xs:documentation>Start time in ISO 8601 format</xs:documentation>
+                        </xs:annotation>
+                    </xs:element>
+                    <xs:element name="stopTime" type="xs:string" minOccurs="1" maxOccurs="1">
+                        <xs:annotation>
+                            <xs:documentation>Stop time in ISO 8601 format</xs:documentation>
+                        </xs:annotation>
+                    </xs:element>
+                    <xs:element name="spacecraft" type="tns:enumSpacecraft" maxOccurs="1" minOccurs="1">
+                        <xs:annotation>
+                            <xs:documentation>List of spavecrafts from AMDA</xs:documentation>
+                        </xs:annotation>
+                    </xs:element>
+                    <xs:element name="coordinateSystem" type="tns:enumCoordinateSystemName" minOccurs="1" maxOccurs="1">
+                        <xs:annotation>
+                            <xs:documentation>Coordinate System Name</xs:documentation>
+                        </xs:annotation>
+                    </xs:element>
+                    <xs:element name="units" minOccurs="0" maxOccurs="1">
+                        <xs:annotation>
+                            <xs:documentation>Units of orbits: radius or km. By default km</xs:documentation>
+                        </xs:annotation>
+                        <xs:simpleType>
+                            <xs:restriction base="xs:string">
+                                <xs:enumeration value="km"/>
+                                <xs:enumeration value="Rs"/>
+                                <xs:enumeration value="Rj"/>
+                                <xs:enumeration value="Rca"/>
+                                <xs:enumeration value="Rga"/>
+                                <xs:enumeration value="Rio"/>
+                                <xs:enumeration value="Reu"/>
+                                <xs:enumeration value="Rv"/>
+                                <xs:enumeration value="Rm"/>
+                                <xs:enumeration value="Re"/>
+                                <xs:enumeration value="AU"/>
+                            </xs:restriction>
+                        </xs:simpleType>
+                    </xs:element>
+                    <xs:element name="sampling" type="xs:float" minOccurs="0" maxOccurs="1">
+                        <xs:annotation>
+                            <xs:documentation>Sampling or average time in sec</xs:documentation>
+                        </xs:annotation>
+                    </xs:element>
+                    <xs:element name="userID" type="xs:string" minOccurs="0" maxOccurs="1">
+                        <xs:annotation>
+                            <xs:documentation>ID of AMDA user storing in the 3DView. Must TBD For
+                                public data is optional. </xs:documentation>
+                        </xs:annotation>
+                    </xs:element>
+                    <xs:element name="password" type="xs:string" minOccurs="0" maxOccurs="1">
+                        <xs:annotation>
+                            <xs:documentation>Crypt Password of AMDA user storing in the 3DView.
+                                Must TBD encryption types Required for predefined parameters.
+                            </xs:documentation>
+                        </xs:annotation>
+                    </xs:element>
+                    <xs:element name="outputFormat" minOccurs="0" maxOccurs="1">
+                        <xs:annotation>
+                            <xs:documentation> Choice is possible between the two formats: netCDF,
+                                ASCII and VOTable. If the format is not specified it will be netCDF
+                                by default</xs:documentation>
+                        </xs:annotation>
+                        <xs:simpleType>
+                            <xs:restriction base="xs:string">
+                                <xs:enumeration value="netCDF"/>
+                                <xs:enumeration value="VOTable"/>
+                                <xs:enumeration value="ASCII"/>
+                            </xs:restriction>
+                        </xs:simpleType>
+                    </xs:element>
+                    <xs:element name="timeFormat" minOccurs="0" maxOccurs="1">
+                        <xs:annotation>
+                            <xs:documentation> Choice is possible between the two formats: ISO 8601
+                                or unixtime. If the format is not specified it will be ISO 8601 by
+                                default</xs:documentation>
+                        </xs:annotation>
+                        <xs:simpleType>
+                            <xs:restriction base="xs:string">
+                                <xs:enumeration value="ISO8601"/>
+                                <xs:enumeration value="unixtime"/>
+                            </xs:restriction>
+                        </xs:simpleType>
+                    </xs:element>
+                    <xs:element name="gzip" minOccurs="0" maxOccurs="1" type="xs:integer">
+                        <xs:annotation>
+                            <xs:documentation>1 to compress data with gzip (0 by
+                                default)</xs:documentation>
+                        </xs:annotation>
+                    </xs:element>
+                </xs:sequence>
+            </xs:complexType>
+
+            <xs:complexType name="getOrbitesResponse">
+                <xs:sequence>
+                    <xs:element name="success" minOccurs="0" maxOccurs="1" type="xs:boolean">
+                        <xs:annotation>
+                            <xs:documentation>Url of TimeTables storage file with TimeTables
+                                ID's.</xs:documentation>
+                        </xs:annotation>
+                    </xs:element>
+                    <xs:element maxOccurs="unbounded" minOccurs="0" name="dataFileURLs"
+                        type="xs:anyURI">
+                        <xs:annotation>
+                            <xs:documentation>URLs of results data files. If not URLs - not data for
+                                required parameters</xs:documentation>
+                        </xs:annotation>
+                    </xs:element>
+                </xs:sequence>
+            </xs:complexType>
+            
+            <xs:complexType name="getTimeTable">
+                <xs:sequence>
+                    <xs:element name="userID" type="xs:string" minOccurs="0" maxOccurs="1">
+                        <xs:annotation>
+                            <xs:documentation>ID of AMDA user storing in the 3DView. Must
+                                TBD</xs:documentation>
+                        </xs:annotation>
+                    </xs:element>
+                    <xs:element name="password" type="xs:string" minOccurs="0" maxOccurs="1">
+                        <xs:annotation>
+                            <xs:documentation>Crypt Password of AMDA user storing in the 3DView.
+                                Must TBD encryption types Required for predefined parameters.
+                            </xs:documentation>
+                        </xs:annotation>
+                    </xs:element>
+                    <xs:element name="ttID" type="xs:string" minOccurs="1" maxOccurs="1">
+                        <xs:annotation>
+                            <xs:documentation>Id of time tables(TT) defined in
+                                AmdaUserTree.xml</xs:documentation>
+                        </xs:annotation>
+                    </xs:element>
+                </xs:sequence>
+            </xs:complexType>
+            <xs:complexType name="getTimeTableResponse">
+                <xs:sequence>
+                    <xs:element name="success" minOccurs="0" maxOccurs="1" type="xs:boolean">
+                        <xs:annotation>
+                            <xs:documentation>Url of TimeTables storage file with TimeTables
+                                ID's.</xs:documentation>
+                        </xs:annotation>
+                    </xs:element>
+                    <xs:element name="ttFileURL" type="xs:anyURI" minOccurs="1" maxOccurs="1">
+                        <xs:annotation>
+                            <xs:documentation>URL of TT file</xs:documentation>
+                        </xs:annotation>
+                    </xs:element>
+                </xs:sequence>
+            </xs:complexType>
+
+        </xs:schema>
+    </wsdl:types>
+
+    <!--		WSDL MESSAGE		-->
+
+    <!-- <wsdl:message name="getObsDataTree">
+        <wsdl:part name="parameters" element="tns:getObsDataTree">
+        </wsdl:part>
+    </wsdl:message>-->
+
+    <wsdl:message name="isAlive">
+        <wsdl:part name="parameters" element="tns:emptyAlive"> </wsdl:part>
+    </wsdl:message>
+
+    <wsdl:message name="isAliveResponse">
+        <wsdl:part name="parameters" element="tns:alive"> </wsdl:part>
+    </wsdl:message>
+    
+    <wsdl:message name="getObsDataTree">
+        <wsdl:part name="parameters" element="tns:emptyElement"> </wsdl:part>
+    </wsdl:message>
+
+    <wsdl:message name="getObsDataTreeResponse">
+        <wsdl:part name="parameters" element="tns:getObsDataTreeResponse"> </wsdl:part>
+    </wsdl:message>
+
+    <wsdl:message name="getTimeTablesList">
+        <wsdl:part name="parameters" element="tns:getTimeTablesList"> </wsdl:part>
+    </wsdl:message>
+
+    <wsdl:message name="getTimeTablesListResponse">
+        <wsdl:part name="parameters" element="tns:getTimeTablesListResponse"> </wsdl:part>
+    </wsdl:message>
+
+    <wsdl:message name="getParameterList">
+        <wsdl:part name="parameters" element="tns:getParameterList"> </wsdl:part>
+    </wsdl:message>
+
+    <wsdl:message name="getParameterListResponse">
+        <wsdl:part name="parameters" element="tns:getParameterListResponse"> </wsdl:part>
+    </wsdl:message>
+
+    <wsdl:message name="getParameter">
+        <wsdl:part name="parameters" element="tns:getParameter"> </wsdl:part>
+    </wsdl:message>
+
+    <wsdl:message name="getParameterResponse">
+        <wsdl:part name="parameters" element="tns:getParameterResponse"> </wsdl:part>
+    </wsdl:message>
+
+    <wsdl:message name="getDataset">
+        <wsdl:part name="parameters" element="tns:getDataset"> </wsdl:part>
+    </wsdl:message>
+
+    <wsdl:message name="getDatasetResponse">
+        <wsdl:part name="parameters" element="tns:getDatasetResponse"> </wsdl:part>
+    </wsdl:message>
+
+    <wsdl:message name="getPlot">
+        <wsdl:part name="parameters" element="tns:getPlot"> </wsdl:part>
+    </wsdl:message>
+
+    <wsdl:message name="getPlotResponse">
+        <wsdl:part name="parameters" element="tns:getPlotResponse"> </wsdl:part>
+    </wsdl:message>
+
+
+    <wsdl:message name="getOrbites">
+        <wsdl:part name="parameters" element="tns:getOrbites"> </wsdl:part>
+    </wsdl:message>
+
+    <wsdl:message name="getOrbitesResponse">
+        <wsdl:part name="parameters" element="tns:getOrbitesResponse"> </wsdl:part>
+    </wsdl:message>
+
+    <wsdl:message name="getTimeTable">
+        <wsdl:part name="parameters" element="tns:getTimeTable"> </wsdl:part>
+    </wsdl:message>
+
+    <wsdl:message name="getTimeTableResponse">
+        <wsdl:part name="parameters" element="tns:getTimeTableResponse"> </wsdl:part>
+    </wsdl:message>
+
+
+    <!--		WSDL portTYPE		-->
+
+    <wsdl:portType name="Methods_AMDA">
+         <wsdl:operation name="isAlive">
+            <wsdl:input message="tns:isAlive"> </wsdl:input>
+            <wsdl:output message="tns:isAliveResponse"> </wsdl:output>
+        </wsdl:operation>
+         
+        <wsdl:operation name="getObsDataTree">
+            <wsdl:input message="tns:getObsDataTree"> </wsdl:input>
+            <wsdl:output message="tns:getObsDataTreeResponse"> </wsdl:output>
+        </wsdl:operation>
+
+        <wsdl:operation name="getTimeTablesList">
+            <wsdl:input message="tns:getTimeTablesList"> </wsdl:input>
+            <wsdl:output message="tns:getTimeTablesListResponse"> </wsdl:output>
+        </wsdl:operation>
+
+        <wsdl:operation name="getParameterList">
+            <wsdl:input message="tns:getParameterList"> </wsdl:input>
+            <wsdl:output message="tns:getParameterListResponse"> </wsdl:output>
+        </wsdl:operation>
+
+        <wsdl:operation name="getParameter">
+            <wsdl:input message="tns:getParameter"> </wsdl:input>
+            <wsdl:output message="tns:getParameterResponse"> </wsdl:output>
+        </wsdl:operation>
+
+        <wsdl:operation name="getDataset">
+            <wsdl:input message="tns:getDataset"> </wsdl:input>
+            <wsdl:output message="tns:getDatasetResponse"> </wsdl:output>
+        </wsdl:operation>
+        
+        <wsdl:operation name="getPlot">
+            <wsdl:input message="tns:getPlot"> </wsdl:input>
+            <wsdl:output message="tns:getPlotResponse"> </wsdl:output>
+        </wsdl:operation>
+        
+        <wsdl:operation name="getOrbites">
+            <wsdl:input message="tns:getOrbites"> </wsdl:input>
+            <wsdl:output message="tns:getOrbitesResponse"> </wsdl:output>
+        </wsdl:operation>
+
+        <wsdl:operation name="getTimeTable">
+            <wsdl:input message="tns:getTimeTable"> </wsdl:input>
+            <wsdl:output message="tns:getTimeTableResponse"> </wsdl:output>
+        </wsdl:operation>
+    </wsdl:portType>
+
+
+    <!--		WSDL OPERATIONS		-->
+
+    <wsdl:binding name="Methods_AMDASoapBinding" type="tns:Methods_AMDA">
+        <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
+        
+         <wsdl:operation name="isAlive">
+            <soap:operation soapAction="" style="document"/>
+            <wsdl:input>
+                <soap:body use="literal"/>
+            </wsdl:input>
+            <wsdl:output>
+                <soap:body use="literal"/>
+            </wsdl:output>
+        </wsdl:operation>
+        
+        <wsdl:operation name="getObsDataTree">
+            <soap:operation soapAction="" style="document"/>
+            <wsdl:input>
+                <soap:body use="literal"/>
+            </wsdl:input>
+            <wsdl:output>
+                <soap:body use="literal"/>
+            </wsdl:output>
+        </wsdl:operation>
+
+        <wsdl:operation name="getTimeTablesList">
+            <soap:operation soapAction="" style="document"/>
+            <wsdl:input>
+                <soap:body use="literal"/>
+            </wsdl:input>
+            <wsdl:output>
+                <soap:body use="literal"/>
+            </wsdl:output>
+        </wsdl:operation>
+
+        <wsdl:operation name="getParameterList">
+            <soap:operation soapAction="" style="document"/>
+            <wsdl:input>
+                <soap:body use="literal"/>
+            </wsdl:input>
+            <wsdl:output>
+                <soap:body use="literal"/>
+            </wsdl:output>
+        </wsdl:operation>
+
+        <wsdl:operation name="getParameter">
+            <soap:operation soapAction="" style="document"/>
+            <wsdl:input>
+                <soap:body use="literal"/>
+            </wsdl:input>
+            <wsdl:output>
+                <soap:body use="literal"/>
+            </wsdl:output>
+        </wsdl:operation>
+
+        <wsdl:operation name="getDataset">
+            <soap:operation soapAction="" style="document"/>
+            <wsdl:input>
+                <soap:body use="literal"/>
+            </wsdl:input>
+            <wsdl:output>
+                <soap:body use="literal"/>
+            </wsdl:output>
+        </wsdl:operation>
+ 
+        <wsdl:operation name="getPlot">
+            <soap:operation soapAction="" style="document"/>
+            <wsdl:input>
+                <soap:body use="literal"/>
+            </wsdl:input>
+            <wsdl:output>
+                <soap:body use="literal"/>
+            </wsdl:output>
+        </wsdl:operation>
+ 
+        <wsdl:operation name="getOrbites">
+            <soap:operation soapAction="" style="document"/>
+            <wsdl:input>
+                <soap:body use="literal"/>
+            </wsdl:input>
+            <wsdl:output>
+                <soap:body use="literal"/>
+            </wsdl:output>
+        </wsdl:operation>
+        
+        <wsdl:operation name="getTimeTable">
+            <soap:operation soapAction="" style="document"/>
+            <wsdl:input>
+                <soap:body use="literal"/>
+            </wsdl:input>
+            <wsdl:output>
+                <soap:body use="literal"/>
+            </wsdl:output>
+        </wsdl:operation>
+    </wsdl:binding>
+
+    <!--		WSDL SERVICE		-->
+
+    <wsdl:service name="Methods_AMDA">
+        <wsdl:port name="Methods_AMDAPort" binding="tns:Methods_AMDASoapBinding">
+            <soap:address location="http://cdpp1.cesr.fr/AMDA-NG/php/AMDA_METHODS_WSDL.php"/>
+        </wsdl:port>
+    </wsdl:service>
+</wsdl:definitions>
diff --git a/sencha.sh b/sencha.sh
new file mode 100755
index 0000000..e422430
--- /dev/null
+++ b/sencha.sh
@@ -0,0 +1,11 @@
+#!/bin/sh
+UNAME="$(uname)"
+ARGUMENTS=$*
+DIRNAME="$(dirname $0)/lib/JSBuilder"
+if [ $UNAME = "Darwin" ] ; then
+    OS="mac"
+else
+    OS="linux"
+fi
+CMD="$DIRNAME/jsdb/$OS/jsdb -path $DIRNAME $DIRNAME/bin/Dispatch.js $ARGUMENTS"
+$CMD
--
libgit2 0.21.2